ly《单片机原理与应用》.docx
- 文档编号:4322890
- 上传时间:2022-11-29
- 格式:DOCX
- 页数:13
- 大小:776.16KB
ly《单片机原理与应用》.docx
《ly《单片机原理与应用》.docx》由会员分享,可在线阅读,更多相关《ly《单片机原理与应用》.docx(13页珍藏版)》请在冰豆网上搜索。
ly《单片机原理与应用》
《单片机原理与应用》实验报告
班级:
11050941
学号:
姓名:
、、
实验报告
实验:
实验一实验题目:
无符号双字节乘法运算子程序
姓名:
学号:
1105094140
专业:
信息对抗
一、实验目的
熟悉MCS-51指令系统,学会使用KeilC编程软件。
熟悉汇编语言编程。
二、实验原理
R6R7
R2R3
R4R5
BA
BA
BA
(B)R2(B+B+A)R3(R4+A+A)R4R5
三、流程图
四、源程序
五、实验结果及分析
(记录单步调试时观察到的各个寄存器变化、遇到的问题及解决方法)
实验:
实验二实验题目:
P1口实验
姓名:
学号:
1105094140
专业:
信息对抗
一、实验目的
1.学习P1口的输出输入使用方法。
2.学习延时子程序的编写和使用。
二、实验原理
P1口为准双向口,P1口的每一位都能独立地定义为输入位或输出位。
作为输入位时,必须向锁存器相应位写入“1”,该位才能作为输入。
8031中所有口锁存器在复位时均置为“1”,如果后来在口锁存器写过“0”,在需要时应写入一个“1”,使它成为一个输入。
可以用第二个实验做一下实验。
先按要求编好程序并调试成功后,可将P1口锁存器中置“0”,此时将P1做输入口,会有什么结果。
再来看一下延时程序的实现。
现常用的有两种方法,一是用定时器中断来实现,一是用指令循环来实现。
在系统时间允许的情况下可以采用后一种方法。
本实验系统晶振为6.144MHZ,则一个机器周期为12÷6.144us即1÷0.512us。
现要写一个延时0.1s的程序,可大致写出如下:
MOVR7,#X
(1)
DEL1:
MOVR6,#200
(2)
DEL2:
DJNZR6,DEL2(3)
DJNZR7,DEL1(4)
上面MOV、DJNZ指令均需两个机器周期,所以每执行一条指令需要1÷0.256us,现求出X值:
1÷0.256+X(1÷0.256+200×1÷0.256+1÷0.256)=0.1×10⁶
指令
(1)指令
(2)指令(3)指令(4)
所需时间所需时间所需时间所需时间
X=(0.1××10⁶-1÷0.256)/(1÷0.256+200×1÷0.256+1÷0.256)=127D=7FH
经计算得X=127。
代入上式可知实际延时时间约为0.100215s,已经很精确了。
P1口输出实验
P1口输入实验
三、流程图
循环点亮发光二极管
通过发光二极管将P1口的状态显示
四、源程序
五、实验结果及分析
(记录单步调试时观察到的各个寄存器变化、遇到的问题及解决方法)
实验:
实验三实验题目:
定时器实验
姓名:
学号:
1105094140
专业:
信息对抗
一、实验目的
1.学习8031内部计数器的使用和编程方法。
2.进一步掌握中断处理程序的编写方法。
二、实验原理
1.定时常数的确定
定时器/计数器的输入脉冲周期与机器周期一样,为振荡频率的1/12。
本实验中时钟频率为6.0MHZ,现要采用中断方法来实现0.5秒延时,要在定时器1中设置一个时间常数,使其每隔0.1秒产生一次中断,CPU响应中断后将R0中计数值减一,令R0=05H,即可实现0.5秒延时。
时间常数可按下述方法确定:
机器周期=12÷晶振频率=12/(6×10⁶)=2us
设计数初值为X,则(2e+16-X)×2×
=0.1,可求得X=15535
化为十六进制则X=3CAFH,故初始值为TH1=3CH,TL1=AFH
2.初始化程序
包括定时器初始化和中断系统初始化,主要是对IP、IE、TCON、TMOD的相应位进行
正确的设置,并将时间常数送入定时器中。
由于只有定时器中断,IP便不必设置。
3.设计中断服务程序和主程序
中断服务程序除了要完成计数减一工作外,还要将时间常数重新送入定时器中,为下一次中断做准备。
主程序则用来控制发光二极管按要求顺序燃灭。
3、流程图
四、源程序
五、实验结果及分析
(记录单步调试时观察到的各个寄存器变化、遇到的问题及解决方法)
实验:
实验四实验题目:
数码显示实验
姓名:
学号:
1105094140
专业:
信息对抗
一、实验目的
1.进一步掌握定时器的使用和编程方法。
2.了解七段数码显示数字的原理。
3.掌握用一个段锁存器,一个位锁存器同时显示多位数字的技术。
二、实验原理
本试验采用动态显示。
动态显示就是一位一位地轮流点亮显示器的各个位(扫描)。
将8031CPU的P1口当作一个锁存器使用,74LS273作为段锁存器。
利用定时器1定时中断,控制电子钟走时,利用实验箱上的六个数码管显示分、秒,做成一个电子钟。
显示格式为:
分秒
定时时间常数计算方法为:
定时器1工作于方式1,晶振频率为6MHZ,故预置值Tx为:
(2e+16-Tx)x12x1/(6x10e+6)=0.1s
Tx=15535D=3CAFH,故TH1=3CH,TL1=AFH
三、流程图
四、源程序
五、实验结果及分析
(记录单步调试时观察到的各个寄存器变化、遇到的问题及解决方法)
实验:
实验五实验题目:
BCD码与ASCII码转换程序
姓名:
学号:
1105094140
专业:
信息对抗
一、实验目的
熟悉MCS-51指令系统,学会使用KeilC编程软件。
熟悉汇编语言编程。
二、实验原理
将本人的班号学号以压缩的BCD码的形式由低到高存放在50H开始的单元中,如11050941班,学号为01的同学,将1150H、0551H、0952H、4153H、0154H。
然后编程将50H~54H中压缩的BCD码转换成ASCII码,并由低到高存放在60H开始的单元中。
三、流程图
四、源程序
五、实验结果及分析
(记录单步调试时观察到的各个寄存器变化、遇到的问题及解决方法)
实验:
实验六实验题目:
A/D转换实验
姓名:
学号:
1105094140
专业:
信息对抗
一、实验目的
1.掌握A/D转换与单片机的接口方法。
2.了解A/D芯片ADC0809转换性能及编程方法。
3.通过实验了解单片机如何进行数据采集。
二、实验原理
A/D转换器大致有三类:
一是双积分A/D转换器,优点是精度高,抗干扰性好,价格便宜,但速度慢;二是逐次逼近法A/D转换器,精度、速度、价格适中;三是并行A/D转换器,速度快,价格也昂贵。
实验用的ADC0809属第二类,是八位A/D转换器。
每采集一次需100us。
ADC0809START端为A/D转换启动信号,ALE端为通道选择地址的锁存信号。
实验电路中将其相连,以便同时锁存通道地址并开始A/D采样转换,故启动A/D转换只需如下两条指令:
MOVDPTR,#PORT
MOVX@DPTR,A
A中为何内容并不重要,这是一次虚拟写。
在中断方式下,A/D转换结束后会自动产生EOC信号,将其与8031CPU板上的INT0相连接。
在中断处理程序中,使用如下指令即可读取A/D转换的结果:
MOVDPTR,#PORT
MOVXA,@DPTR
三、流程图
四、源程序
五、实验结果及分析
(记录单步调试时观察到的各个寄存器变化、遇到的问题及解决方法)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机原理与应用 ly 单片机 原理 应用