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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

補上一條,protues版矩陣鍵盤發送字符到靜態數碼管

[復制鏈接]
跳轉到指定樓層
樓主
protues仿真圖:

  1. /*******************************************************************************
  2. *  標題:                  矩陣鍵盤顯示數字到靜態數碼管                         *
  3. *  時間                      2018年7月17日00:45:03                                                   *
  4. *                                                                                                                                                           *
  5. *  實驗說明:用矩陣鍵盤上的16個按鍵,分別為0、1、3、4、5、6、7、8、9、a、b、c  *
  6. d、e、f顯示到靜態數碼管上                                   *                                   *
  7. ********************************************************************************
  8. * 實驗心得:                                                                                                                               *
  9. 1.測試行(row)的時候就是線是豎著的的那一列為1,測試列(col)的時候就是                   *
  10. 線是橫著的那幾行為1                                                                                                                           *
  11. 2.調用函數void KeyScan(void);時,調用的時候只需要寫KeyScan就行,不然調試不成功 *
  12. ********************************************************************************/


  13. #include <reg52.h>

  14. #define GPIO_KEY P1
  15. #define GPIO_SHOW P2

  16. unsigned char code DIG_CODE[16]={0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07,
  17.                                  0x7F, 0x6F, 0x77, 0x7C, 0x39, 0x5E, 0x79, 0x71};
  18. void KeyScan(void);
  19. void Delay10ms(unsigned int c);
  20. unsigned int KeyValue;
  21. void main()
  22. {

  23.    while(1)
  24.   {
  25.      
  26.     KeyScan();
  27.         GPIO_SHOW=DIG_CODE[KeyValue];

  28.    


  29.         /******************************************************
  30.         *******************************************************
  31.         if語句的算法
  32.          if(KeyValue==0)
  33.          P2=~DIG_CODE[0];
  34.          if(KeyValue==1)
  35.          P2=~DIG_CODE[1];
  36.          if(KeyValue==2)
  37.          P2=~DIG_CODE[2];
  38.          if(KeyValue==3)
  39.          P2=~DIG_CODE[3];
  40.          if(KeyValue==4)
  41.          P2=~DIG_CODE[4];
  42.          if(KeyValue==5)
  43.          P2=~DIG_CODE[5];
  44.          if(KeyValue==6)
  45.          P2=~DIG_CODE[6];
  46.          if(KeyValue==7)
  47.          P2=~DIG_CODE[7];
  48.          if(KeyValue==8)
  49.          P2=~DIG_CODE[8];
  50.          if(KeyValue==9)
  51.          P2=~DIG_CODE[9];
  52.          if(KeyValue==10)
  53.          P2=~DIG_CODE[10];
  54.          if(KeyValue==11)
  55.          P2=~DIG_CODE[11];
  56.          if(KeyValue==12)
  57.          P2=~DIG_CODE[12];
  58.          if(KeyValue==13)
  59.          P2=~DIG_CODE[13];
  60.          if(KeyValue==14)
  61.          P2=~DIG_CODE[14];
  62.          if(KeyValue==15)
  63.          P2=~DIG_CODE[15];
  64.         *************************************************/
  65.    }
  66. }

  67. void KeyScan(void)          //測試行(row)的時候就是線是豎著的的那一列為1,測試列(col)的時候就是線是橫著的那幾行為1
  68. {
  69.         char a = 0;
  70.         GPIO_KEY=0x0f;
  71.         if(GPIO_KEY!=0x0f)//讀取按鍵是否按下
  72.         {
  73.                 Delay10ms(1);//延時10ms進行消抖
  74.                 if(GPIO_KEY!=0x0f)//再次檢測鍵盤是否按下
  75.                 {
  76.                        
  77.                         //測試列
  78.                         GPIO_KEY=0X0F;
  79.                         switch(GPIO_KEY)
  80.                         {
  81.                                 case(0X07):        KeyValue=0;break;
  82.                                 case(0X0b):        KeyValue=4;break;
  83.                                 case(0X0d): KeyValue=8;break;
  84.                                 case(0X0e):        KeyValue=12;break;
  85.                         }
  86.                         //測試行
  87.                         GPIO_KEY=0XF0;
  88.                         switch(GPIO_KEY)
  89.                         {
  90.                                 case(0X70):        KeyValue=KeyValue+3;break;
  91.                                 case(0Xb0):        KeyValue=KeyValue+2;break;
  92.                                 case(0Xd0): KeyValue=KeyValue+1;break;
  93.                                 case(0Xe0):        KeyValue=KeyValue;break;
  94.                         }
  95.                         while((a<50) && (GPIO_KEY!=0xf0))         //檢測按鍵松手檢測
  96.                         {
  97.                                 Delay10ms(1);
  98.                                 a++;
  99.                         }
  100.                 }
  101.         }
  102. }

  103. /*******************************************************************************
  104. * 函 數 名         : Delay10ms
  105. * 函數功能                   : 延時函數,延時10ms
  106. * 輸    入         : 無
  107. * 輸    出         : 無
  108. *******************************************************************************/

  109. void Delay10ms(unsigned int c)   //誤差 0us
  110. {
  111.     unsigned char a, b;

  112.         //--c已經在傳遞過來的時候已經賦值了,所以在for語句第一句就不用賦值了--//
  113.     for (;c>0;c--)
  114.         {
  115.                 for (b=38;b>0;b--)
  116.                 {
  117.                         for (a=130;a>0;a--);
  118.                 }         
  119.         }      
  120. }

復制代碼



矩陣鍵盤protues版.rar

25.84 KB, 下載次數: 21, 下載積分: 黑幣 -5

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 99免费看 | 国产亚洲一区在线 | 欧美日韩一本 | 91porn在线观看 | 成人高清视频在线观看 | 欧美九九 | 91国内在线观看 | 欧美一区2区三区3区公司 | 亚洲一区二区三区免费在线观看 | 黄视频在线网站 | 亚洲精品二区 | 国产成人一区二区三区久久久 | 亚洲一区二区精品视频 | 夜久久 | 在线视频 亚洲 | 国产黑丝av | 成人h视频在线观看 | 欧美一区二区三区 | 中文字幕av在线 | 久久一二区 | 男女网站视频 | 欧美成人高清 | 久久久久久国产精品 | 亚洲天堂日韩精品 | 91精品国产综合久久福利软件 | 国产乱码精品1区2区3区 | 欧美一区二区三区在线 | 91成人免费观看 | 国产小视频在线观看 | 久久99精品久久久 | 国产成人精品免费视频大全最热 | 久久久久综合 | 精品一区二区三区免费视频 | 九九在线视频 | 久久久久亚洲 | 婷婷色成人 | 国产精品久久久久久久7电影 | 国产成人精品一区二区三区视频 | 亚洲成人午夜在线 | 欧美精品在线一区二区三区 | 中文字幕一区二区三区在线乱码 |