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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1240|回復: 0
打印 上一主題 下一主題
收起左側

新手關于單片機矩陣鍵盤和點陣程序的求助

[復制鏈接]
跳轉到指定樓層
樓主
剛學單片機沒多久,現在下想寫一個程序,按下矩陣鍵盤S6的時候點陣最外圈亮,然后按下S11讓點陣熄滅,我現在寫出來讓點陣亮的程序了,但是怎么讓它熄滅呢?我代碼里面注釋掉的原本是想讓點陣熄滅的代碼,但是發現并不可行。我將注釋掉的部分寫到 if(key_number==0) 里面的while(1)循環里面也不可行。
另外我打開單片機電源的時候點陣也會亮,但是并沒有規律,每次打開亮的圖形都不一樣,是怎么回事?就像最下面兩張圖那樣子。

單片機源程序如下:
  1. #include <reg52.h>
  2. #include <intrins.h>
  3. sbit DIO=P3^4;
  4. sbit S_CLK=P3^5;
  5. sbit R_CLK=P3^6;
  6. unsigned char key_number=1;
  7. unsigned char table1[8]={0x00,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x00};
  8. unsigned char ximie[8]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};
  9. void delay(unsigned int x)
  10. {
  11.     unsigned char i, j;
  12.     while(x>0){
  13.             _nop_();   
  14.             i = 2;
  15.             j = 199;
  16.             do
  17.             {
  18.             while (--j);
  19.             } while (--i);
  20.             x--;
  21.     }
  22. }
  23. void KeyScan()
  24. {
  25.         P3=0xf0;//列掃描
  26.         if(P3!=0xf0)
  27.         {
  28.                 delay(10);
  29.                 if(P3!=0xf0)
  30.                 {
  31.                         switch(P3)
  32.                         {
  33.                                 case 0xe0:key_number=0;break;
  34.                                 case 0xd0:key_number=1;break;
  35.                                 case 0xb0:key_number=2;break;
  36.                                 case 0x70:key_number=3;break;
  37.                         }
  38.                         P3=0x0f;//列掃描
  39.                         switch(P3)
  40.                         {
  41.                                 case 0x0e:key_number=key_number;break;
  42.                                 case 0x0d:key_number=key_number+4;break;
  43.                                 case 0x0b:key_number=key_number+8;break;
  44.                                 case 0x07:key_number=key_number+12;break;
  45.                         }
  46.                 }
  47.         }        
  48. }
  49. void Send_Byte(unsigned char dat)
  50. {
  51.         unsigned char i;
  52.         R_CLK=0;
  53.         for(i=0;i<8;i++)
  54.         {
  55.                 S_CLK=0;
  56.                 if(dat&0x01)
  57.                         DIO=1;
  58.                 else
  59.                         DIO=0;
  60.                 S_CLK=1;
  61.                 dat>>=1;
  62.         }
  63. }
  64. void main()
  65. {
  66.         while(1)
  67.         {
  68.                 unsigned char k,ROW;
  69.                 ROW=0x80;
  70.                 KeyScan();
  71.                 if(key_number==0)
  72.                 {
  73.                         while(1)
  74.                         {
  75.                                 for(k=0;k<8;k++)
  76.                                 {
  77.                                         Send_Byte(table1[k]);
  78.                                         Send_Byte(ROW);
  79.                                         R_CLK=1;
  80.                                         ROW=_cror_(ROW,1);
  81.                                 }
  82.                         }
  83.                 }
  84. //                if(key_number==5)
  85. //                {
  86. //                        for(k=0;k<8;k++)
  87. //                        {
  88. //                                Send_Byte(ximie[k]);
  89. //                                Send_Byte(ROW);
  90. //                                R_CLK=1;
  91. //                                ROW=_cror_(ROW,1);
  92. //                        }        
  93. //                }
  94.         }
  95. }
復制代碼

點陣.png (918.01 KB, 下載次數: 39)

點陣原理圖

點陣原理圖

矩陣鍵盤.png (66.92 KB, 下載次數: 37)

矩陣鍵盤原理圖

矩陣鍵盤原理圖

IMG_1732.JPG (2 MB, 下載次數: 40)

IMG_1732.JPG

IMG_1733.JPG (2.25 MB, 下載次數: 35)

IMG_1733.JPG
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美成人免费电影 | 午夜精品久久久久久久星辰影院 | 午夜看片 | 日韩精品在线免费观看视频 | 精品国产鲁一鲁一区二区张丽 | 日韩一区二区在线视频 | 国产99久久精品一区二区300 | 亚洲欧美综合 | 在线看黄免费 | 色爱综合 | 青青艹在线视频 | 午夜av一区二区 | 超碰在线播 | 久久av网站| 国产精品特级片 | 日本久草 | 亚洲天堂男人的天堂 | 亚洲精品一区二区 | 天天插日日操 | 精品久久久久久久久久 | 国产免费一区二区三区 | 精品视频在线观看 | 久久精品国产精品青草 | 黑人巨大精品欧美一区二区免费 | 久久久久久国产精品 | 在线视频一区二区三区 | 精品一区二区三区在线观看国产 | 99色在线视频 | 看片地址 | 精品欧美乱码久久久久久 | 午夜一区二区三区在线观看 | 成人午夜精品一区二区三区 | 日日干天天操 | 国产91在线 | 中日 | 欧美日韩亚洲一区 | 草草草网站 | 美女天天操 | 国产精品久久欧美久久一区 | 亚洲黄色成人网 | 国产精品免费观看视频 | 精品国产99 |