全球旧事资料 分类
实验四电子钟定时器、中断综合实验一、实验目的
熟悉MCS51类CPU的定时器、中断系统编程方法,了解定时器的应用、实时程序的设计和调试技巧。
二、实验内容编写一个时钟程序,产生一个50ms的定时中断,对定时中断计数,将时、分、秒显示
在数码管上。
三、程序框图
开始
中断开始
初始化堆栈给时钟单元赋初值
使用定时器方式一相关寄存器赋初值
开中断开定时器
恢复定时器初值
50ms单元1
50ms单元20?NY
50ms单元复位0秒单元1
N分单元60?Y
分单元复位0时单元1
N时单元24?Y
时单元复位0
调显示
刷新标志1?NY
清0刷新标志
秒单元60?NY
秒单元复位0分单元1
1→刷新显示标志中断返回
中断处理
主程序
四、实验步骤1、连线说明:D3区:CLKD3区:CSD3区:A02、时间显示在数码管上
电子钟程序框图

B2区:2MA3区:CS5A3区:A0
五、程序清单ms50secmi
hourbufferEXTRN
DATADATADATADATADATACODEDisplay8ORGLJMP
31H32H33H34H35H
0000HSTAR
存放多少个50ms秒分时显示缓冲区
fORG
LJMP
ORG
STAR
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
SETB
STAR1
LCALL
JNB
CLR
SJMP
中断服务程序
INT_Timer0MOV
MOV
PUSH
MOV
INC
CJNE
MOV
INC
INC
CJNE
MOV
INC
INC
CJNE
MOV
INC
INC
CJNE
MOV
ExitI
t1SETB
ExitI
t
POP
RETI
HexToBCDMOV
DIV
MOV
INC
000BHINT_Timer00100HSP60Hms50Ahour12mi
59sec50TH060TL0176TMOD1IE82HTR0DisplayF0F0STAR1
定时器T0中断处理入口地址
堆栈清零ms50设定初值125950
定时中断计数器初值定时50ms定时器0:方式一允许定时器0中断开定时器T0调用显示
需要重新显示时间
TL01765TH06001HR1ms50R1R120ExitI
tR10R1R1R160ExitI
t1R10R1R1R160ExitI
t1R10R1R1R124ExitI
t1R10F001H
50ms单元加1恢复初值秒加1
分加1
时加1
B10ABR0BR0
fDisplay
MOVINCRETMOVMOVACALLMOVINCMOVACALLMOVINCMOVACALLMOVLCALLRETEND
R0AR0
R0bufferAsecHexToBCDR010HR0Ami
HexToBCDR010HR0AhourHexToBCDR0bufferDisplay8
第三位不显示第六位不显示
六、思考题1、电子钟走时精度与哪些有关系?中断程序中给TL0赋值为什么与初始化程序中不一
样?2、使用定时器方式二,重新编写程序。
fr
好听全球资料 返回顶部