久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

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

QQ登錄

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

搜索
查看: 2609|回復(fù): 0
收起左側(cè)

單片機(jī)鍵盤掃描顯示匯編源碼

[復(fù)制鏈接]
ID:568296 發(fā)表于 2019-6-20 20:47 | 顯示全部樓層 |閱讀模式
這次做的單片機(jī) 鍵盤掃描顯示匯編源碼
一、實(shí)驗(yàn)?zāi)康?div id="nrjzhdrpvdvp" class="blockcode">
  1. ORG 0000H
  2. AJMP MAIN
  3. LEDMAP:
  4. DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H
  5. DB 7FH, 6FH, 77H, 7CH, 39H, 5EH, 79H, 71H
  6. ;  八段管顯示碼
  7. Delay: MOV R6, #01H;  延時(shí)子程序
  8. Delay1:MOV R7, #00H
  9. Delay2:DJNZ R7, Delay2
  10. DJNZ R6, Delay1
  11. RET
  12. DisplayLED:
  13. MOV R0, #60H
  14. MOV R1, #06H ; 共 共 6  個(gè)八段管
  15. MOV R2, #00100000B ;  從左邊開(kāi)始顯示
  16. Loop:
  17. MOV DPTR, #8002H
  18. MOV A, #00H
  19. MOVX @DPTR, A;  關(guān)所有八段管
  20. MOV A, @R0
  21. MOV DPTR, #8004H ;  段控制口
  22. MOVX @DPTR, A
  23. MOV DPTR, #8002H ;  位控制口
  24. MOV A, R2
  25. MOVX @DPTR,A ; 顯示一位八段管
  26. ACALL Delay
  27. MOV A, R2 ;  顯示下一位
  28. RR A
  29. MOV R2,A
  30. INC R0
  31. DJNZ R1, Loop
  32. RET
  33. TestKey:
  34. MOV DPTR, #8002H
  35. MOV A, #00H
  36. MOVX @DPTR, A;  輸出線置為 0
  37. MOV DPTR, #8001H
  38. MOVX A, @DPTR ;  讀入鍵狀態(tài)
  39. CPL A
  40. ANL A, #0FH ;  高四位不用
  41. RET
  42. KeyTable: ;  鍵碼定義
  43. DB 16H, 15H, 14H, 0FFH
  44. DB 13H, 12H, 11H, 10H
  45. DB 0DH, 0CH, 0BH, 0AH
  46. DB 0EH, 03H, 06H, 09H
  47. DB 0FH, 02H, 05H, 08H
  48. DB 00H, 01H, 04H, 07H
  49. GetKey:
  50. MOV DPTR, #8002H
  51. MOV R1, #00100000B
  52. MOV R2, #06H
  53. KLoop:
  54. MOV A, R1 ;  找出鍵所在列
  55. CPL A
  56. MOV DPTR, #8002H
  57. MOVX @DPTR, A
  58. CPL A
  59. RR A
  60. MOV R1,A ;  下一列
  61. MOV DPTR, #8001H
  62. MOVX A, @DPTR
  63. CPL A
  64. ANL A, #0FH
  65. JNZ Goon1 ;  該列有鍵入
  66. DJNZ R2, KLoop
  67. MOV R2, #0FFH ;  沒(méi)有鍵按下,
  68. 回 返回 0FFH
  69. AJMP Exit
  70. Goon1:
  71. MOV R1,A; 值 鍵值 = 列 列 *4 + 行 行
  72. MOV A, R2
  73. DEC A
  74. RL A
  75. RL A
  76. MOV R2, A ; R2 = (R2-1)*4
  77. MOV A, R1 ; R1  中為讀入的行值
  78. MOV R1, #04H
  79. LoopC:
  80. RRC A ;  移位找出所在行
  81. JC Exit
  82. INC R2 ; R2 =R2+  行值
  83. DJNZ R1, LoopC
  84. Exit:
  85. MOV A, R2 ;  取出鍵碼
  86. MOV DPTR, #KeyTable
  87. MOVC A, @A+DPTR
  88. MOV R2, A
  89. WaitRelease:
  90. MOV DPTR, #8002H ;  等鍵釋放
  91. CLR A
  92. ACALL TestKey
  93. JNZ WaitRelease
  94. MOV A, R2
  95. RET
  96. MAIN:
  97. MOV 60H, #0FFH ; 示 顯示 8.8.8.8.
  98. MOV 61H, #0FFH
  99. MOV 62H, #0FFH
  100. MOV 63H, #0FFH
  101. MOV 64H, #00H
  102. MOV 65H, #00H
  103. MLoop: ACALL DisplayLED ;  顯示
  104. ACALL TestKey ;  有鍵入?
  105. JZ MLoop ;  無(wú)鍵入,  繼續(xù)顯示
  106. ACALL GetKey ;  讀入鍵碼
  107. ANL A, #0FH ;  顯示鍵碼
  108. MOV DPTR, #LEDMap
  109. MOVC A, @A+DPTR
  110. MOV 65H,A
  111. LJMP MLoop
  112. END
復(fù)制代碼

1 .掌握鍵盤和顯示器的接口方法和編程方法
2 .掌握鍵盤掃描和數(shù)碼管顯示器的工作原理
二、 實(shí)驗(yàn)內(nèi)容
利用實(shí)驗(yàn)儀上的鍵盤掃描電路和顯示電路 , 做一個(gè)掃描鍵盤和數(shù)碼顯示實(shí)驗(yàn) , 把按鍵
輸入的鍵碼在六位數(shù)碼管上顯示出來(lái)。實(shí)驗(yàn)程序分為三個(gè)模塊:
① 鍵輸入模塊:掃描鍵盤、讀取一次鍵盤并將鍵值存入鍵值緩沖單元。
② 顯示模塊:將顯示單元的內(nèi)容在顯示器上動(dòng)態(tài)顯示。


回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久伊人精品 | 日韩免费在线视频 | 国产一区二区 | 成人欧美一区二区三区在线播放 | 二区在线观看 | 久久精品视频一区二区 | 91精品综合久久久久久五月天 | 日韩av中文 | 国产高清美女一级a毛片久久w | 久久蜜桃av一区二区天堂 | 欧美黄 片免费观看 | 中文字幕91 | 欧美在线观看一区二区 | 国产精品一区二区三区免费观看 | 亚洲欧美一区二区三区情侣bbw | 日韩av在线免费 | 欧美在线视频一区二区 | 精品欧美二区 | 成人小视频在线 | 成人深夜小视频 | 国产真实精品久久二三区 | 美女视频一区 | 日韩午夜在线播放 | 欧美日韩亚洲在线 | 9久9久 | 日本超碰 | 国产日韩欧美一区二区 | 狠狠做深爱婷婷综合一区 | 欧美日韩高清免费 | av影音| 国产精品视频www | 日韩中文字幕在线播放 | 国产免费视频 | 亚洲人在线播放 | 欧美精品在线免费 | 欧美日韩中文在线 | 天天操 夜夜操 | 在线看片福利 | 亚洲日本免费 | 国产亚洲成av人在线观看导航 | 国色天香成人网 |