标题: 請人幫忙~在我電子鐘程式加入每5秒顯示日期 [打印本页]

作者: 黃昭旨    时间: 2016-11-7 21:13
标题: 請人幫忙~在我電子鐘程式加入每5秒顯示日期
                        SecLine  BIT        0               
                        ScanLine EQU         41H
                        Sec              EQU         42H
                        Min              EQU         43H
                        Hour             EQU    44H
                        Month     EQU    45H
                        Date       EQU    46H
                MINUITEKEY    BIT    P3.4
                HOURKEY               BIT    P3.5
                        D1          EQU    47H
                        D2              EQU    48H
               
                ORG  0000H
                AJMP START
                ORG  000BH
                AJMP TIMER0               
                ORG  001BH
                AJMP TIMER1               

START:        MOV SP,#60H
                MOV DPTR,#TABLE
                MOV R0,#30H
                MOV 30H,#00               
                MOV 31H,#00               
                MOV 32H,#00               
                MOV 33H,#00               
                MOV ScanLine,#11110111B
                SETB SecLine
                MOV Hour,#00H
                MOV Sec,#00H
                MOV Min,#00H
                SETB EA
                SETB ET0
                SETB ET1
                MOV TMOD,#00100001B   
                MOV TH0,#0ECH
                MOV TL0,#78H
                MOV TH1,#6
                MOV TL1,#6
                SETB TR0
                SETB TR1
                MOV R4,#200
                MOV R5,#10
                MOV R6,#2                                       
                ACALL CONV                                       
CHECK_MINUITE:
                                JB MINUITEKEY,CHECK_HOUR
                                MOV A,Min
                                ADD A,#1
                                DA A
                                MOV Min,A                                               
                                CJNE A,#60H,G1
                                MOV Min,#0

G1:                                ACALL CONV
                                ACALL DELAY
                                JNB MINUITEKEY,G1
CHECK_HOUR:               
                                JB HOURKEY,CHECK_MINUITE
                                MOV A,Hour
                                ADD A,#1
                                DA A
                                MOV Hour,A
                                CJNE A,#24H,G2
                                MOV Hour,#0

G2:                                ACALL CONV                                               
                                ACALL DELAY
                                JNB HOURKEY,G2
                               
                                AJMP CHECK_MINUITE
                               
LOOP:        SJMP LOOP
TIMER0: PUSH ACC               
                CLR        TR0
                MOV TH0,#0F4H
                MOV TL0,#78H
                MOV A,@R0
                MOVC A,@A+DPTR
                JB SecLine,KEEP
                MOV R3,ScanLine
                CJNE R3,#11111101B,KEEP
                ANL A,#01111111B       
KEEP:        MOV P0,A
                INC R0                                               
                MOV A,ScanLine
                MOV P2,A
                RR A
                MOV ScanLine,A
                CJNE A,#10111111B,EXIT0
                MOV R0,#30H
                MOV ScanLine,#11110111B                                                               
                                            
EXIT0:        SETB TR0
                POP ACC                                                               
                RETI                          
EXIT1:
                ACALL CONV
TIMER1:        PUSH ACC
                CLR TR1
                                                       
                DJNZ R4,S2                       
                MOV R4,#200
                DJNZ R5,S2
                MOV R5,#10
                CPL SecLine
                DJNZ R6,S2
                MOV R6,#2                       
                               
                MOV A,Sec
                ADD A,#1
                DA A
                MOV Sec,A                                                 
                CJNE A,#60H,S2
                MOV Sec,#0
                MOV A,Min
                ADD A,#1
                DA A
                MOV Min,A
                CJNE A,#60H,S1
                MOV Min,#0
                MOV        A,Hour
                ADD A,#1
                DA A
                MOV Hour,A
                CJNE A,#24H,S1
                MOV Hour,#0
                                                               
S1:                ACALL CONV
S2:         SETB TR1
                POP ACC
                RETI
               
CONV:       
                MOV R1,#33H
                MOV A,Hour
                ANL A,#0F0H
                SWAP A
                MOV @R1,A                       
                                               
                                               
                  DEC R1
                MOV A,Hour
                ANL A,#0FH
                MOV @R1,A                       
               
                  DEC R1
                MOV A,Min
                ANL A,#0F0H
                SWAP A
                MOV        @R1,A                       
               
                  DEC R1
                MOV A,Min
                ANL A,#0FH
                MOV @R1,A                       
                                               
                RET


TABLE:  DB 0C0H,0F9H,0A4H,0B0H,99H
                DB 92H,82H,0F8H,80H,90H
               
DELAY:  MOV D1,#250
DL1:        MOV D2,#200
DL2:    DJNZ D2,$
                DJNZ D1,DL1
                RET
               
                END

51 AVR最小系統.pdf

656.92 KB, 下载次数: 4

硬體結構


作者: wuyibin2003    时间: 2016-11-8 15:22
汇编的 不好弄 很吃力啊
作者: yzwzfyz    时间: 2016-11-8 18:33
请先给自己程序的每一句加个注解。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1