找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

這個匯編程序 為什么數(shù)碼管只能顯示0呢,鍵盤沒有反應(yīng)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:729389 發(fā)表于 2020-4-15 11:02 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
ORG 0000H
      LJMP MAIN
      ORG 0030H
MAIN: ACALL KEYSCAN
      MOV A,30H
   MOV DPTR,#TABLE
   MOVC A,@A+DPTR
   MOV P2,A
   ACALL DELAY
   SJMP MAIN
KEYSCAN: MOV P3,#0FH
         MOV A,P3
   ANL A,#0FH
   MOV R3,A
   MOV P3,#0F0H
   MOV A,P3
   ANL A,#0F0H
   ORL A,R3
   CJNE A,#0FFH,KEYPRO
   RET
KEYPRO: MOV R3,A
        MOV DPTR,#KEYVALUE
  MOV R4,#0FFH
KEY1: INC R4
      MOV A,R4
   MOV DPTR,#KEYVALUE
      MOVC A,@A+DPTR
      MOV 20H,R3
       CJNE A,20H,KEY1
    MOV A,R4
    MOV 30H,A
       RET
DELAY:MOV R5,#40H
      NEXT1:MOV R6,#80H
      NEXT2:MOV R7,#90H
      DJNZ R7,$
   DJNZ R1,NEXT2
   DJNZ R0,NEXT1
   RET
KEYVALUE:DB 0E7H,0D7H,0B7H,77H,0EBH,0DBH,0BBH,7BH
         DB 0EDH,0DDH,0BDH,7DH,0EEH,0DEH,0BEH,7EH
TABLE:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH
      END

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

使用道具 舉報

沙發(fā)
ID:267719 發(fā)表于 2020-4-16 10:17 | 只看該作者
當按鍵抖動的時候,你得到的P3口的值并不是你KEYVALUE中的任何值,導(dǎo)致死循環(huán)在KEY1:和CJNE A,20H,KEY1之間不會退出。所以只能顯示開始的0.

KEY1: INC R4
      MOV A,R4
   MOV DPTR,#KEYVALUE
      MOVC A,@A+DPTR
      MOV 20H,R3
       CJNE A,20H,KEY2
    MOV A,R4
    MOV 30H,A
       RET
KEY2:CJNE R4,#10H,KEY1  ;如果16個都不是 則返回
    RET

另外,DELAY中的錯誤:DJNZ R1,NEXT2 應(yīng)該為 DJNZ R6,NEXT2
DJNZ R0,NEXT1 應(yīng)該為 DJNZ R5,NEXT1
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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