自制程序,不喜勿喷
汇编时钟程序。4位共阳管。P0口段码,P2.0~P2.3位码。显示毫秒和秒。三个按键一个控制时钟开始走,一个控制暂停和继续。。。一个按键清0
- ;12M晶振 2011 04 20 调试完成
- STRT EQU P3.2
- STP EQU P3.3
- CLRR EQU P3.5
- ORG 00H
- SJMP MAIN
- ORG 0BH
- AJMP T0INT
- ORG 30H
- MAIN: MOV SP,#60H
- MOV R3,#10
- MOV R4,#20
- MOV TMOD,#01H ;定时器T0工作方式1
- MOV TH0,#0D8H ;10MS定时初值
- MOV TL0,#0F0H
- SETB ET0
- SETB EA
- k1: LCALL DISP
- JB STRT,K2
- LCALL DISP
- JNB STRT,$-3
- AJMP START
- k2: LCALL DISP
- JB STP,K3
- LCALL DISP
- JNB STP,$-3
- AJMP SS
- K3: LCALL DISP
- JB CLRR,K1
- LCALL DISP
- JNB CLRR,$-3
- AJMP CLEAR
- START: SETB TR0
- CLR F0 ;如无此条,暂停后,不是按继续键,而是按开始键继续走时,下次按暂停键时,不能暂停
- AJMP K1
- SS: CPL F0
- JNB F0,START
- STOP: CLR TR0
- AJMP K2
- CLEAR: CLR TR0
- MOV A,#0
- MOV 20H,A
- MOV 21H,A
- MOV 22H,A
- MOV 23H,A
- MOV 24H,A
- MOV 25H,A
- AJMP K3
- DISP: MOV A,24H
- MOV B,#10
- DIV AB
- MOV 20H,B ;余数(MS个位数)
- MOV 21H,A ;商(MS十位数)
- MOV A,25H
- MOV B,#10
- DIV AB
- MOV 22H,B ;余数(S个位数)
- MOV 23H,A ;商(S十位数)
- MOV A,20H ;MS个位
- ACALL SEG7
- MOV P0,A
- SETB P2.4
- ACALL DLY
- CLR P2.4
- MOV A,21H ;MS十位
- ACALL SEG7
- MOV P0,A
- SETB P2.5
- ACALL DLY
- CLR P2.5
- MOV A,22H ;S个位
- ACALL SEG7
- MOV P0,A
- CLR P0.7
- SETB P2.6
- ACALL DLY
- CLR P2.6
- MOV A,23H ;S十位
- ACALL SEG7
- MOV P0,A
- SETB P2.7
- ACALL DLY
- CLR P2.7
- RET
- T0INT: MOV TH0,#0D8H
- MOV TL0,#0F0H
- INC 24H
- MOV A,24H
- CJNE A,#99,T0INTR
- MOV 24H,#0
- INC 25H
- MOV A,25H
- CJNE A,#60,T0INTR
- MOV 25H,#0
- T0INTR: RETI
- DLY: MOV R7,#10
- D1: MOV R6,#50
- DJNZ R6,$
- DJNZ R7,D1
- RET
- SEG7: INC A
- MOVC A,@A+PC
- RET
- DB 0C0H;0
- DB 0F9H;1
- DB 0A4H;2
- DB 0B0H;3
- DB 099H;4
- DB 092H;5
- DB 082H;6
- DB 0F8H;7
- DB 080H;8
- DB 090H;9
- END
复制代码
全部资料51hei下载地址:
dan pian ji .zip
(15.54 KB, 下载次数: 77)
|