单片机实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
一、实验一··1
二、实验二··7
三、实验三··11
四、实验四··15
DOC格式.
实验一定时/计数器验证实验
一、实验目的
熟悉定时/计数器T0的特点,学会合理选择定时方式并能根据具体情况结合软件的方式定时。
二、实验设备及器件
IBM PC机一台 PROTEUS 硬件仿真软件 Keil C51。
三、实验容
用AT89C51单片机的定时/计数器T0产生1s的定时时间,作为秒计数时间,当1s产生时秒计数加1;秒计数到60时,自动从0开始。
四、实验要求
要求采用Proteus软件实现上述实验。
五、实验步骤
1.打开Proteus ISIS编辑环境,按照表1-1所列的元件清单添加元件。
表1-1 元件清单
元件全部添加后,在Proteus ISIS的编辑区域中按图1-1所示的原理图连接硬件电路。
图1-1 电路原理图
2.根据参考程序绘出流程图,并辅以适当的说明。
流程图如图1-2所示:
图1-2 程序流程图
3.打开KeilμVision4,新建Keil项目,选择AT89C51单片机作为CPU,将参考
程序导入到“Source Group 1”中。在“Options for Target”对话窗口中,选中“Output”选项卡中的“Create HEX File”选项和“Debug”选项卡中的“Use:Proteus VSM Simulator”选项。编译汇编源程序,改正程序中的错误。
4.在Proteus ISIS中,选中AT89C51并单击鼠标左键,打开“Edit Component”
对话窗口,设置单片机晶振频率为12MHz,在此窗口中的“Program File”
栏中,选择先前用Keil生成的.HEX文件。在Proteus ISIS的菜单栏中选择“File”→“Save Design”选项,保存设计,在Proteus ISIS的菜单栏中,打开“Debug”下拉菜单,在菜单中选中“Use Remote Debug
Monitor”选项,以支持与Keil的联合调试。
5.在Keil的菜单栏中选择“Debug”→“Start/Stop Debug Session“选项,
或者直接单击工具栏中的“Debug”→“Start/Stop Debug Session”图标,进入程序调试环境。按“F5”键,顺序运行程序。调出“Proteus ISIS”界面可以看到7段数码管显示从0~59s的计数值,每个数值显示1s,如图1-3所示。
图 1-3 程序运行结果
六、实验程序
SECOND EQU 30H
COUNT EQU 31H
ORG 00H
LJMP START
ORG 0BH
LJMP INT_T0
START: MOV SECOND,#00H
MOV COUNT,#00H
MOV DPTR,#TABLE
CLR A
MOV P0,A
MOV P2,A
MOV TMOD,#00H
MOV TH0,#(65536-50000)/256
MOV TL0,#(65536-50000)MOD 256
SETB TR0
SETB ET0
SETB EA
MOV IE,#82H
LJMP $
INT_T0:MOV TH0,#(65536-50000)/256 MOV TL0,#(65536-50000)MOD 256
INC COUNT
MOV A,COUNT
CJNE A,#20,I2
MOV COUNT,#00H
INC SECOND
MOV A,SECOND
CJNE A,#60,I1
MOV SECOND,#00H
I1: MOV A,SECOND
MOV B,#10H
DIV AB
MOVC A,A+DPTR
MOV P0,A
MOV A,B
MOVC A,A+DPTR
MOV P2,A
I2: RETI
TABLE: DB 3FH,06H,5BH,4FH,66H
DB 6DH,7DH,07H,7FH,6FH
END
七、思考题
1.罗列一下Proteus软件的能带给我们的好处,指出一点最能帮助你的地方。
使用Proteus软件能使我们方便的搭建电路,同时在没有元器件的情况下进行便于仿真,方便我们在将程序写入单片机前确认运行是否正确,同时可
在采购器件之前即可开始开发产品,而不必等到器件采购完后搭建电路才进行程序调试。
2.用Proteus界面中的播放键运行仿真与KeilμVision4的环境中联调运行它
们两者的区别在什么地方?
用Proteus界面中的播放键运行仿真仅可以观察运行结果,即程序运行在硬件表面上的表现。而联调的时候可以再Keil软件里查看各寄存器和存储器的状况,即硬件的部情况。
3.Keil软件软件仿真与Proteus的仿真对比。
使用Proteus仿真可从硬件的角度观察仿真结果,使仿真结果更加形象直观,使我们可从硬件运行状态清楚的判断运行结果是否正确。而在Keil环境中则是从程序的角度通过观察程序中数据的变化来观察仿真结果,需要对程序运行结果充分了解。
八、实验总结及相关问题
通过本次实验了解了Ptoteus软件的使用方法,以及在掌握了Keil的使用方法下,学会了Proteus与Keil软件联调的方法。
在用Proteus中由于忽略了要在总线处放置网络标号导致联调失败,最后通过观察发现数码管引脚电平无变化发现此问题,放置网络标号后运行仿真时数码管引脚电平发生变化可是数码管却没有变亮,经过多次检查接线,未发现接线错误后,觉得可能是软件本身错误,故将总线及数码管周围硬件线路重新绘制一遍后再次运行仿真及可得到图1-3的结果。