欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 單片機(jī)電子表原理圖和代碼不是很匹配?求幫助 [打印本頁]

作者: jjh170102    時間: 2020-6-16 19:25
標(biāo)題: 單片機(jī)電子表原理圖和代碼不是很匹配?求幫助
本帖最后由 jjh170102 于 2020-6-20 22:15 編輯

做一個簡易的電子表,按鍵是能夠控制啟動暫停和分鐘的加減,但是原理圖和代碼不是很匹配,按鍵控制的是時鐘的加減,顯示也左移了一格,求大神幫忙修改一下程序,求求了.附上代碼:
                ORG  0000H
                LJMP  START
                ORG  000BH
                LJMP  INIT0
START:  MOV  R0,#70H;主程序開始
        MOV  R7,#0CH
INIT:   MOV  @R0,#00H
        INC  R0
                DJNZ  R7,INIT
                MOV  72H,#10;對連字符進(jìn)行裝值
                MOV  75H,#10
                MOV  TMOD,#01H;選擇定時器/計數(shù)器T0的方式1
                MOV  TL0,#0B0H;對地位賦初值
                MOV  TH0,#03CH;高位賦初值
                SETB  EA
                SETB  ET0
                SETB  TR0
START1: LCALL  SCAN
        LCALL  KEYSCAN
        SJMP  START1
DL1MS:  MOV  R6,#14H;延時1子程序
DL1:    MOV   R7,#19H
DL2:    DJNZ  R7,DL2
                DJNZ  R6,DL1
                RET
DL20MS: ACALL  SCAN;延時20ms子程序
        ACALL  SCAN
        ACALL  SCAN
        RET;數(shù)碼管顯示程序開始
SCAN:   MOV  A,78H
        MOV  B,#0AH
        DIV  AB;時間秒的十位送給A,時間秒的個位送給B
        MOV  71H,A;時間秒要顯示的十位
        MOV  70H,B;時間秒要顯示的個位
        MOV  A,79H
        MOV  B,#0AH
        DIV  AB;;時間分的十位送給A,時間分的個位送給B
        MOV  74H,A;時間分要顯示的十位送地址
        MOV  73H,B;時間分要顯示的個位送地址
        MOV  A,7AH
        MOV  B,#0AH
        DIV  AB;時間時的十位送給A,時間時的個位送給B
        MOV  77H,A;;時間時顯示的十位送地址
        MOV  76H,B;時間時要顯示的個位送地址
        MOV  R1,#70H
        MOV  R5,#01H
        MOV  R3,#08H
SCAN1:  MOV  A,R5;數(shù)碼管的顯示程序
        MOV  P2,A
        MOV  A,@R1
        MOV  DPTR,#TAB
        MOVC  A,@A+DPTR;對字段表取值表示
        MOV  P0,A
        MOV  A,R5
        LCALL  DL1MS
        INC  R1
        MOV  A,R5
                RL  A
                MOV  R5,A
                DJNZ  R3,SCAN1
                MOV  P2,#00H
                MOV  P0,#0FFH
                RET;”0-9”和“-”的字段表
TAB:    DB  3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,40H;定時/計數(shù)器T0中斷程序
INIT0:  PUSH  ACC
                PUSH  PSW
                CLR  ET0
                CLR  TR0
                MOV  TL0,#0B0H
                MOV  TH0,#03CH
                SETB  TR0
                INC  7BH
                MOV  A,7BH
                CJNE  A,#19H,OUTT0;50ms是否到20次,沒有到就繼續(xù)執(zhí)行50ms的延時
                MOV  7BH,#00
                INC  78H
                MOV  A,78H
                CJNE  A,#3CH,OUTT0;一秒的延時是否計到60次,沒有就繼續(xù)執(zhí)行
                MOV  78H,#00
                INC  79H
                MOV A,79H
                CJNE  A,#3CH,OUTT0
                MOV  79H,#00
                INC  7AH
                MOV  A,7AH
                CJNE A,#18H,OUTT0;60分鐘的延時是否計到24次,沒有就繼續(xù)執(zhí)行程序
                MOV  7AH,#00
OUTT0:  SETB ET0;啟動定時器T0
                POP  PSW
                POP  ACC
                RETI;按鍵處理程序
KEYSCAN:CLR  EA
                JNB  P1.0,KEYSCAN0;P1.0有按鍵按下則跳轉(zhuǎn)到子程序
                JNB  P1.1,KEYSCAN1;P1.1有按鍵按下則跳轉(zhuǎn)到子程序
                JNB  P1.2,KEYSCAN2;P1.2有按鍵按下則跳轉(zhuǎn)到子程序
KEYOUT: SETB  EA
                RET
KEYSCAN0:LCALL  DL20MS;20ms的延時消抖
                JB  P1.0,KEYOUT
WAIT0:  JNB  P1.0,WAIT0;判斷按鍵是否松手,松手就往下執(zhí)行程序
                INC  7CH
                MOV  A,7CH
                CLR  ET0
                CLR  TR0
                CJNE  A,#03H,KEYOUT;按下第一次和第二次對時、分選定
                MOV  7CH,#00;按下第三次時就啟動計時
                SETB  ET0
                SETB  TR0
                SJMP  KEYOUT
KEYSCAN1:LCALL  DL20MS;按鍵加一的程序
                JB  P1.1,KEYOUT
WAIT1:  JNB  P1.1,WAIT1
                MOV  A,7CH
                CJNE  A,#02H,KSCAN11;如果功能鍵按下則對時加一調(diào)整
                INC  79H
                CJNE  A,#3CH,KEYOUT;如果加到60則清零?
                MOV  79H,#00
                SJMP  KEYOUT
KSCAN11:INC  7AH;如果功能鍵是按下第二次則對分進(jìn)行加一調(diào)整
                MOV  A,7AH
                CJNE  A,#18H,KEYOUT
                MOV  7AH,#00
                SJMP  KEYOUT
KEYSCAN2:LCALL  DL20MS;延時消抖程序
                JB  P1.2,KEYOUT
WAIT2:  JNB  P1.2,WAIT2;判斷是否放開按鍵
                MOV  A,7CH
                CJNE  A,#02H,KSCAN21;如果功能鍵是按下第一次對時進(jìn)行減一
                DEC  79H
                MOV  A,79H
                CJNE  A,#0FFH,KEYOUT
                MOV  79H,#3BH
                SJMP  KEYOUT
KSCAN21:DEC  7AH;如果功能鍵是按下第二次則對分進(jìn)行減一
                CJNE  A,#0FFH,KEYOUT
                MOV  7AH,#17H
                SJMP  KEYOUT
                END
                下面是原理圖截圖



]RR_$LKX@EAA]H`()[O`)1L.png (72.17 KB, 下載次數(shù): 67)

]RR_$LKX@EAA]H`()[O`)1L.png

Keil.rar

22.36 KB, 下載次數(shù): 6

代碼和仿真圖


作者: jjh170102    時間: 2020-6-20 18:49
求助各位大佬幫忙看一下
作者: jjh170102    時間: 2020-6-20 21:53
麻煩哪位大佬幫忙看一下




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1