標(biāo)題: at89c52單片機(jī)匯編語(yǔ)言鍵盤掃描實(shí)驗(yàn)程序含Proteus仿真 [打印本頁(yè)]

作者: lx20000904    時(shí)間: 2021-4-28 20:10
標(biāo)題: at89c52單片機(jī)匯編語(yǔ)言鍵盤掃描實(shí)驗(yàn)程序含Proteus仿真
proteus 版本8.9
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機(jī)源程序如下:
  1.                    ORG 0000H
  2.      MOV P2,#00H  ;關(guān)閉顯示
  3. MAIN:MOV DPTR,#TABLE ;指向段碼表首地址
  4.      MOV R0,#0
  5.      MOV R1,#01H        ;點(diǎn)亮第一個(gè)數(shù)碼管(共陽(yáng)極)位碼
  6. NEXT:MOV DPTR,#TABLE
  7.          MOV P2,#0
  8.          MOV A,R0               
  9.      MOVC A,@A+DPTR
  10.      MOV P0,A                ;送段碼
  11.      MOV A,R1
  12.      MOV P2,A                ;送位碼
  13.      ACALL DELAY   ;調(diào)用延時(shí)1ms
  14.      MOV P2,#0                ;關(guān)閉一個(gè)數(shù)碼管
  15.      INC R0                        ;段碼地址+1
  16.      MOV A,R1            ;保存段碼
  17.          RL A                        ;左移點(diǎn)亮下一個(gè)數(shù)碼管
  18.          MOV R1,A                ;保存位碼
  19.          ACALL DELAY        ;延時(shí)1ms
  20.          CJNE A,#80H,NEXT;顯示前七個(gè)數(shù)碼管
  21.          MOV P2,#80H        ;顯示第8位
  22.      MOV A,#7
  23.      MOVC A,@A+DPTR          ;查段碼表得第8個(gè)數(shù)碼管段碼
  24.      MOV P0,A                   ;送第8位段碼
  25.      ACALL DELAY                ;延時(shí)1ms
  26.          SJMP MAIN                         ;循環(huán)
  27. DELAY:
  28.      MOV R6,#2
  29.   L2:MOV R7,#7DH
  30.      NOP
  31.      NOP
  32.   L1:DJNZ R7,L1
  33.      DJNZ R6,L2
  34.      RET
  35. TABLE:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
  36.      END
復(fù)制代碼

所有資料51hei提供下載:
鍵盤掃描.zip (129.6 KB, 下載次數(shù): 19)







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