八段数码管显示,10s倒计时仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
单片机源程序如下:
- ORG 0100H ;MAIN起始地址为0100H
- MAIN: MOV R0,#09H ;把09H赋值给R0
- MOV DPTR,#TABLE ;把表格中的值赋给DPTR
- DISP: MOV A,R0 ;把R0的值赋给A
- MOVC A,@A+DPTR ;查表指令
- MOV P1,A ;A送给P1口
- ACALL DELAY ;调用延时DELAY
- DEC R0 ;减一指令
- CJNE R0,#0FFH,DISP ;比较R0和(-1)的补码,不相等时则转移到DISP
- AJMP MAIN ;跳回主程序
- RET
- DELAY: MOV R1,#90 ;把100送给R1
- LOOP0: MOV R2,#100 ;把100送给R2
- LOOP1: MOV R3,#50 ;把50送给R3
- LOOP2: DJNZ R3,LOOP2 ;R3减一不为零则跳转到LOOP2
- DJNZ R2,LOOP1 ;R2减一不为零则跳转到LOOP1
- DJNZ R1,LOOP0 ;R1减一不为零则跳转到LOOP0
- RET
- TABLE: DB 03H, 9FH
- DB 25H, 0DH
- DB 99H, 49H
- DB 0C1H, 1FH
- DB 01H, 19H
- END
复制代码
所有资料51hei提供下载:
10秒倒计时.zip
(48.25 KB, 下载次数: 35)
|