目录
一、实验一··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软件能使我们方便的搭建电路,同时在没有元器件的情况下进行便于仿真,方便我们在将程序写入单片机前确认运行是否正确,同时可