在第3)个条件中,需要加上两个七段显示器,设计为二位数计时器
有个小程序,参考一下
扫描方式的二位数计时器
01 ORG 00H
02 MOV R0,#00H; 设置起始计数值为00
03 AGAIN:MOV R3,#25H; 在R3中设置LOOP的循环次数
04 LOOP:MOV A,R0
05 ANL A,#0FH; 取显示码的个位数
06 ORL A,#00000000B; 设置扫描码为个位数
07 MOV P0,A; 显示个位数
08 LCALL DELAY; 延时2.53ms
09 MOV A,R0
10 SWAP A
11 ANL A,#0FH;取显示码的十位数
12 ORL A,#00010000B;设置扫描码为十位数
13 MOV P0,A;显示十位数
14 LCALL DELAY
15 DJNZ R3,LOOP; 检查每一个数的显示时间是否已到
16 MOV A,R0
17 INC A;显示值加1
18 DA A;十进制调整
19 MOV R0,A
20 JC OVER; 检查计数值是否已超过99
21 JMP AGAIN
22 OVER:CLR C;清除进位标志以免影响下一次的DA调整结果
23 JMP AGAIN
24 DELAY:MOV R6,#10; 延时2.53ms
25 L1:MOV R7,#250
26 L2:DJNZ R7,L2
27 DJNZ R6,L1
28 RET
29 END
|