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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機矩陣鍵盤檢測實驗

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:296857 發(fā)表于 2018-3-25 18:55 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
實驗?zāi)康?/strong>:
學(xué)會矩陣鍵盤的檢測,掌握數(shù)碼管靜態(tài)顯示原理。
實驗現(xiàn)象:
依次按下 4*4 矩陣鍵盤上從第 1 到第 20 個鍵,同時在六位數(shù)碼管上依次顯示 0、1、2、3、 4、5、6、7、8、9、A、B、C、D、E、F
實驗說明:
本開發(fā)板上數(shù)碼管為共陰極。靜態(tài)數(shù)碼管顯示原理(視頻中有詳細(xì)介紹):這里就共陰極數(shù)碼管顯示原理進(jìn)行講解,一位數(shù)碼管內(nèi)一共有 8 個發(fā)光二極管,對共陰極來說其 8 個發(fā)光二極管的陰極在數(shù)碼管內(nèi)部全部接在一起,也就是“共陰”說法的來源,陽極是獨立的,設(shè)計電路時一般把陰極接地,當(dāng)我們從外部給任一個陽極加一個高電平時這個發(fā)光二極管就亮了,如果想要出一個 8 字,并且把右下角的小數(shù)點也點亮的話,那可以給 8 個陽極全送高電平,想讓數(shù)碼管顯示幾就給相對應(yīng)的發(fā)光二極管送高電平,因此我們在顯示數(shù)字的時候首先做的就是給 0-9 十個數(shù)字編好碼,在要它亮什么數(shù)字的時候直接把這個編碼送到它的陽極就行了。另外說一下,一般的數(shù)碼管每一段亮至少需要 10 個毫安的電流,而單片機的 IO 口送不出如此大的電流,所以我們需要加數(shù)碼管的驅(qū)動電路,可以用上拉電阻的方法,也可以使用專門的驅(qū)動芯片,本開發(fā)板使用的 74HC573,其輸出電流較大,足夠點亮數(shù)碼管。本開發(fā)板上的六位數(shù)碼管中每個相同段號(段指 a,b,c,d,e,f,g,h)全部是接在一起的,其中每一個位(陰極)是獨立的,所以在做靜態(tài)顯示的時候所有的數(shù)碼管只能顯示相同的數(shù)字,當(dāng)然可以控制哪幾位顯示,如果讓它們顯示不同的數(shù)字那就得給每一個數(shù)碼管加一套驅(qū)動電路了。但這樣做是沒有必要的,后面我們會講到關(guān)于數(shù)碼管動態(tài)顯示原理。
下面給出本開發(fā)板共陰極數(shù)碼管數(shù)字編碼

矩陣鍵盤的四行分別與 P3.0-P3.3 連接,四列分別與 P3.4-P3.7 連接。

硬件電路:

代碼:
  1. #include<reg51.h>  
  2. sbit beep=P2^3;
  3. sbit dula=P2^6;  
  4. sbit wela=P2^7;  
  5. unsigned char i=100;  unsigned char j,k,temp,key; void delay(unsigned char i) {   
  6. for(j=i;j>0;j--)  
  7. for(k=125;k>0;k--);
  8. }  
  9. unsigned char code table[]= {
  10. 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71
  11. };  
  12. display(unsigned char num) {  
  13. P0=table[num]; dula=1;
  14. dula=0;  
  15. P0=0xc0;  
  16. wela=1;   
  17. wela=0;  
  18. }
  19. void main()
  20. {
  21. dula=0;
  22. wela=0;
  23. while(1)
  24. {
  25. P3=0xfe;   
  26. temp=P3;   
  27. temp=temp&0xf0;
  28. if(temp!=0xf0)   
  29. {  
  30. delay(10);   
  31. if(temp!=0xf0)
  32. {  
  33. temp=P3;  
  34. switch(temp) {  
  35. case 0xee:
  36. key=0;
  37. break;
  38. case 0xde:
  39. key=1;
  40. break;
  41. case 0xbe:
  42. key=2;
  43. break;
  44. case 0x7e:
  45. key=3; break;
  46. }  
  47. while(temp!=0xf0)
  48. {  
  49. temp=P3;   
  50. temp=temp&0xf0;
  51. beep=0;  
  52. }  
  53. beep=1;
  54. display(key);
  55. P1=0xfe;   
  56. }
  57. }
  58. P3=0xfd;  
  59. temp=P3;  
  60. temp=temp&0xf0; if(temp!=0xf0)  
  61. {  
  62. delay(10);  
  63. if(temp!=0xf0) {  
  64. temp=P3;
  65. switch(temp) {
  66. case 0xed:
  67. key=4;
  68. break;
  69. case 0xdd:
  70. key=5;
  71. break;
  72. case 0xbd:
  73. key=5;
  74. break;
  75. case 0xbd:
  76. key=6;
  77. break;
  78. case 0x7d:
  79. key=7; break;
  80. }  
  81. while(temp!=0xf0) {  
  82. temp=P3;  
  83. temp=temp&0xf0;
  84. beep=0;  
  85. }  beep=1;
  86. display(key);
  87. P1=0xfc;  
  88. }
  89. }  
  90. P3=0xfb;  
  91. temp=P3;  
  92. temp=temp&0xf0;
  93. if(temp!=0xf0)  
  94. {  
  95. delay(10);  
  96. if(temp!=0xf0)
  97. {  
  98. temp=P3;  
  99. switch(temp)
  100. {  
  101. case 0xeb:
  102. key=8;
  103. break;
  104. case 0xdb:
  105. key=9;
  106. break;
  107. case 0xbb:
  108. key=10;
  109. break;
  110. case 0x7b:
  111. key=11; break;
  112. }  
  113. while(temp!=0xf0)
  114. {  
  115. temp=P3;  
  116. temp=temp&0xf0;
  117. beep=0;  
  118. }  
  119. beep=1;
  120. display(key);
  121. P1=0xf8;  
  122. }
  123. }  
  124. P3=0xf7;  
  125. temp=P3;  
  126. temp=temp&0xf0;
  127. if(temp!=0xf0)  
  128. {  
  129. delay(10);  
  130. if(temp!=0xf0)
  131. {  
  132. temp=P3;
  133. switch(temp)
  134. {  
  135. case 0xe7:
  136. key=12;
  137. break;
  138. case 0xd7:
  139. key=13;
  140. break;
  141. case 0xb7:
  142. key=14;
  143. break;
  144. case 0x77:
  145. key=15; break;
  146. }  
  147. while(temp!=0xf0)
  148. {  
  149. temp=P3;  
  150. temp=temp&0xf0;
  151. beep=0;  
  152. }  
  153. beep=1;
  154. display(key);
  155. P1=0xf0;  
  156. }
  157. }
  158. }
  159. }
復(fù)制代碼

全部資料51hei下載地址:
代碼.pdf (271.02 KB, 下載次數(shù): 8)


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

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 91精品国产91久久久久久密臀 | 在线激情视频 | 亚洲一区中文字幕在线观看 | 成人免费激情视频 | 久久这里只有精品首页 | 欧美极品一区二区 | 国产精品久久久久久久免费大片 | 97精品国产97久久久久久免费 | 视频一区在线观看 | 日本特黄a级高清免费大片 成年人黄色小视频 | 奇米四色在线观看 | 国产精品高潮呻吟久久 | 久久久久久久一级 | 中文字幕人成乱码在线观看 | 精品欧美一区二区精品久久 | 久久久国产一区二区三区 | 欧美激情视频一区二区三区在线播放 | 99re在线视频 | 精品免费国产视频 | 91社区在线高清 | 欧美专区在线 | 免费不卡av | 91国内视频在线 | 中文字幕一二三区 | 国产精品18hdxxxⅹ在线 | 美女久久久久久久久 | 99福利在线观看 | 特级黄色毛片 | 久久精品视频免费观看 | 欧美精品网站 | 久久中文网 | 久久久精品综合 | 成人a免费| 毛片大全 | 日韩电影a | 日韩精品一区二区三区在线观看 | 欧美福利 | 亚洲精品一区二区三区 | 欧美成年人视频在线观看 | 久久夜视频 | 日韩精品1区2区3区 爱爱综合网 |