找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

帖子
查看: 4212|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

數(shù)碼管顯示4x4鍵盤(pán)的鍵號(hào)的單片機(jī)匯編程序與仿真

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:241260 發(fā)表于 2017-10-21 01:33 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
數(shù)碼管顯示4x4鍵盤(pán)的鍵號(hào)仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)

目錄..................................................................................................................................................1
數(shù)碼管顯示4x4矩陣鍵盤(pán)的鍵號(hào)    2
摘要    2
    關(guān)鍵詞    2
第一章 硬件    2
AT89C51    2
4*4鍵盤(pán)    6
第二章 軟件    9
    KEIL4    9
   匯編程序    10
   Proteus    15
   仿真電路圖    17
第三章 實(shí)物    17
   材料    17
   實(shí)物展示    18
第四章 課程設(shè)計(jì)心得    19
參考文獻(xiàn)    20


單片機(jī)源程序(匯編語(yǔ)言)如下:
  1. scan_code EQU 30H
  2.           ORG 0000H
  3.                   JMP start
  4.                   ORG 0030H
  5. start:   
  6.           MOV P0,#0FFH ;初始化p0口,使輸出無(wú)顯示
  7. loop:                                    ; 循環(huán)調(diào)用read—key獲取鍵盤(pán)信息,若鍵盤(pán)按下,
  8.          CALL read_key        ; 則用R7返回鍵值信息
  9.          CJNE R7,#0FFH,next         ; 若R7返回值不為0xff,則調(diào)用顯示函數(shù)
  10.                   JMP loop
  11. next:                                             ;顯示程序
  12.           MOV A,R7
  13.                   MOV DPTR,#disp_code
  14.                  MOVC A,@A+DPTR
  15.                   MOV P0,A
  16.                   JMP loop
  17. read_key:
  18.           MOV scan_code,#7FH
  19.                   MOV P1,#0FH
  20.                   MOV A,P1
  21.                   MOV R7,#0FFH
  22.                  CJNE A,#0FH,wait_key   ;鍵盤(pán)按下則p1的值會(huì)改變
  23.                   JMP end_key
  24. wait_key:
  25.          CALL delay_10ms        ;延時(shí)10ms,若p1口仍右鍵按下,則跳到scan—key
  26.                   MOV A,P1
  27.                   MOV R7,#0FFH
  28.                   MOV R6,#4
  29.                  CJNE A,#0FH,scan_key
  30.                   JMP end_key
  31. scan_key:
  32.           MOV P1,scan_code       ;將0x7f循環(huán)右移并賦給P1
  33.                   MOV A,P1
  34.                  CJNE A,scan_code,get_key;p1的值改變則確定出其行數(shù)
  35.                    RR A
  36.                   MOV scan_code,A
  37.                  DJNZ R6,scan_key
  38.                   JMP end_key
  39. get_key:
  40.    ;       MOV P1,#0FH
  41.         ;          MOV R1,P1
  42.         ;         CJNE R1,#0FH,$
  43.                   MOV R7,#4
  44. get_key0:
  45.           JNB ACC.0,add_r6;移位循環(huán)判斷最低位,為0則確定其列數(shù)
  46.                    RR A
  47.                  DJNZ R7,get_key0
  48.                   MOV R7,#0FFH
  49.                   JMP end_key
  50. add_r6:
  51.           DEC R6        ;從第0個(gè)鍵盤(pán)數(shù)起,數(shù)滿(R6-1)*4個(gè)鍵盤(pán),再加上第R6行
  52.                   MOV A,R6      ;的列數(shù)R7-1,便得第幾個(gè)鍵盤(pán)按下
  53.                   MOV B,#4
  54.                   MUL AB
  55.                   DEC R7
  56.                   ADD A,R7
  57.                   MOV R7,A
  58. end_key:
  59.           RET
  60. delay_10ms:
  61.           MOV R7,#10
  62. delay0:
  63.           MOV R6,#0FAH
  64. delay1:
  65.           NOP                    ;   1us
  66.                   NOP                        ;  1us
  67. ……………………

  68. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼



所有資料51hei提供下載:
數(shù)碼管顯示4x4矩陣鍵盤(pán)的鍵號(hào).zip (354.64 KB, 下載次數(shù): 32)



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

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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