中断入口 关闭计数控制位 计数值减1 装入时间常数 开放计数控制位 返回 2、主程序流程图
21
3、 程序清单:
入口 置首显示代码(A),初始地址偏移量(R1),计数初值(R0) 定时器1初始化,设计数初值 开放EA,ET1,TR1 N R0=0 Y 装计数初值于R0 指向下一个显示代码单元 N 地址偏移=10 装入初始偏移量 从表中取显示代码 显示 ORG 0000H
LJMP
START
ORG 001BH JMP IT11
ORG
0030H START: MOV
A,#0FAH
22
MOV MOV MOV
R1,#03H R0,#0AH TMOD,#10H
MOV TL1,#00H MOV TH1,#38H ORL SETB
IE,#88H TR1 R0,#00,DISP R0,#0AH R1
R1,#0BH,LOOP2 R1,#03 A,R1
A,@A+PC DISP
LOOP1: CJNE
MOV INC CJNE MOV
LOOP2: MOV
MOVC LJMP
DB 0FAH,0F5H,0AFH,5FH,0AAH,55H,00H,0FFH
P0,A LOOP1
DISP: MOV
JMP
IT11: CLR
TR1 R0 TL1,#00H TH1,#38H TR1
DEC MOV
MOV SETB RETI END
五、思考题:
1、 改变发光二极管闪烁的间隔时间。
2 、P1口添加一个暂停按键,当该键按下时显示暂停,保持当前状态;再次按键,继续显示。 3、去掉定时与中断,编写延时子程序。
4、P1口添加多个按键,分别对应实现不同的显示功能。(例如:暂停键、显示状态顺序执行和 逆序执行键??)
23
实验三 数码显示实验
一、实验目的
1.进一步掌握定时器的使用和编程方法。 2.了解七段数码显示数字的原理。
3.熟练掌握Keil uVision4和Proteus联调的方法。 二、实验内容
做一个电子钟:利用定时器0定时中断,控制电子钟走时;利用单片机上的四位数码管显示分钟和秒钟。 三、程序流程图和源程序 1、主程序流程图
初始化程序 开始计数 R0,扫描初值—R2 显示缓冲单元首址—
取显示单元值,转为段码送段数据口
扫描值送位数据口
显示单元地址加一
扫描值带进位位(=0)右移一位
N 扫描值=0?
Y 取分、秒计数值,经变换放入相应显示单元
24
2、中断子程序流程图:
中断入口 定时器置初值 Y
N 计时单元=10? Y 计时单元置0 秒加一,十进制调整
N
N
3、程序清单: ST_ADDR EQU 0000H BUF EQU 23H
秒值=60? Y 秒置0,分加一,十进制调整 分值=60? Y 分置0 返 回 25