找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2464|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

51單片機(jī)匯編程序求助(先按下K1后按下K2顯示器就加一,反過來就減一)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:265018 發(fā)表于 2017-12-28 09:11 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
想要實(shí)現(xiàn)的目的是先按下K1后按下K2顯示器就加一,反過來就減一?墒钦{(diào)了一個(gè)晚上感覺開關(guān)這里還是不對求大神看一下!
ORG   0000H                        ;程序儲存器規(guī)劃
    LJMP  MAIN                ;跳轉(zhuǎn)到主程序
    ORG   0003H     ;T0中斷  
    LJMP  KEY1                ;轉(zhuǎn)向外部中斷0中斷服務(wù)程序
    ORG   0013H     ;T1中斷   
    LJMP  KEY2                ;轉(zhuǎn)向外部中斷0中斷服務(wù)程序
        ORG   0100H                ;主程序

MAIN:
    MOV   SP, #5FH         ;堆棧重新設(shè)置到從60H開始的片內(nèi)RAM區(qū)
    SETB  EA         ;總中斷開關(guān)打開  
    SETB  EX0        ;INT0中斷打開
    SETB  EX1                 ;INT1中斷打開
    SETB  IT0        ;T0口下降沿觸發(fā)
    SETB  IT1        ;T1口下降沿觸發(fā)  
;-----------------------------------------
        MOV   R1, #00   ;R0初始值設(shè)為00
MAIN1:
    CALL  JISHU                ;調(diào)用JISHU計(jì)數(shù)部分
    CALL  PRINT                ;調(diào)用PRINT顯示部分        
        JMP   MAIN1
;-----------------------------------------
KEY1:
        LCALL DELAY
        JNB   P3.3, JIAYI
        JNB   P3.2,  TX1

        RETI


JIAYI:
        INC   R1
        CJNE  R1, #101, TX1          ;若R1小于101則跳轉(zhuǎn)到TS1,大于則繼續(xù)
    MOV   R1, #100
TX1:RETI
;-----------------------------------------
KEY2:        
        JNB   P3.2,JIANYI
        JNB   P3.3, TS1
        LCALL DELAY
        RETI
JIANYI:
        DEC   R1
           CJNE  R1, #255, TS1
    MOV   R1, #0
TS1:RETI
;-----------------------------------------
JISHU:
    MOV   DPTR, #TAB   
    MOV   R0, #33H
    MOV   A, R1
    MOV   B, #100
    DIV   AB                    ;十位個(gè)位分離
    MOVC  A, @A + DPTR
    MOV   @R0, A
    INC   R0
    MOV   A, B           ;B為余數(shù)
    MOV   B, #10
    DIV   AB
    MOVC  A, @A + DPTR
    MOV   @R0, A
    INC   R0
    MOV   A, B           ;B為余數(shù)表示個(gè)位數(shù)
    MOVC  A, @A + DPTR
    MOV   @R0, A
    RET
;-----------------------------------------
TAB: DB  0C0H, 0F9H, 0A4H, 0B0H, 99H, 92H, 82H, 0F8H, 80H, 90H
;-----------------------------------------
PRINT:   
    MOV   R0, #33H
    MOV   R5, #04H
    MOV   R4, #3
LOOP4:
    MOV   P0, @R0
    MOV   P2, R5
    MOV   A, R5
    RR    A
    MOV   R5, A
    INC   R0
    DJNZ  R7, $
    DJNZ  R7, $
    ANL   P2, #0
    DJNZ  R4, LOOP4
    RET
;-----------------------------------------
DELAY:MOV 33H,#10
D1:   MOV 31H,#200
D2:   MOV 30H,#250
      DJNZ 30H,$
      DJNZ 32H,D2
      DJNZ 33H,D1
      RET
END

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:123289 發(fā)表于 2017-12-28 22:14 | 只看該作者
程序構(gòu)思混亂。
將你的構(gòu)思畫個(gè)框圖,再研究一下。
回復(fù)

使用道具 舉報(bào)

板凳
ID:262845 發(fā)表于 2018-1-2 14:03 | 只看該作者
按下K1后程序保持,按下K2,變量加1,顯示器數(shù)值加一。反之,則反。
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表