关于一个c51的表设计。
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
单片机汇编源程序如下:
- LEDBUF EQU 30H
- HOUR EQU 40H
- MINUTE EQU 41H
- SECOND EQU 42H
- C100us EQU 43H
- TICK EQU 10000
- T100us EQU 256-100
- LJMP START
- ORG 000BH
- TOINT:PUSH PSW
- PUSH ACC
- MOV A,C100us+1
- JNZ GOON
- DEC C100us
- GOON: DEC C100us+1
- MOV A,C100us
- ORL A,C100us+1
- JNZ EXIT
- MOV C100us,#HIGH(TICK)
- MOV C100us+1,#LOW(TICK)
- INC SECOND
- MOV A,SECOND
- CJNE A,#60,EXIT
- MOV SECOND,#0
- INC MINUTE
- MOV A,MINUTE
- CJNE A,#60,EXIT
- MOV MINUTE,#0
- INC HOUR
- MOV A,HOUR
- CJNE A,#24,EXIT
- MOV HOUR,#0
- EXIT: POP ACC
- POP PSW
- RETI
- DELAY:
- MOV R7,#0FFH
- DELAYLOOP:
- DJNZ R7,DELAYLOOP
- DJNZ R6,DELAYLOOP
- RET
- LEDMAP:
- DB 3FH,06H,5BH,4FH
- DB 66H,6DH,7DH,07H
- DB 7FH,6FH,77H,7CH
- DB 39H,5EH,79H,71H
- DISPLAYLED:
- MOV R0,#LEDBUF
- MOV R1,#6
- MOV R2,#01111111B
- LOOP: MOV A,#0
- MOV P0,A
- MOV A,@R0
- MOV P0,A
- MOV A,R2
- MOV P3,A
- MOV R6,#01H
- CALL DELAY
- MOV A,R2
- RR A
- MOV R2,A
- INC R0
- DJNZ R1,LOOP
- RET
- TOLED: MOV DPTR,#LEDMAP
- MOVC A,@A+DPTR
- RET
- START: MOV TMOD,#02H
- MOV TH0,#T100us
- MOV TL0,#T100us
- MOV IE,#10000010B
- MOV HOUR,#0
- MOV MINUTE,#0
- MOV SECOND,#0
- MOV C100us,#HIGH(TICK)
- MOV C100us+1,#LOW(TICK)
- SETB TR0
- MLOOP: MOV A,HOUR
- MOV B,#10
- DIV AB
- CALL TOLED
- MOV LEDBUF,A
- MOV A,B
- CALL TOLED
- ORL A,#80H
- MOV LEDBUF+1,A
- MOV A,MINUTE
- MOV B,#10
- DIV AB
- CALL TOLED
- MOV LEDBUF+2,A
- MOV A,B
- CALL TOLED
- ORL A,#80H
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
表设计 课程设计.zip
(50.84 KB, 下载次数: 58)
|