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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機(jī)沒有任何錯誤警告實(shí)驗(yàn)效果完全沒有,矩陣按鍵的

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1062123 發(fā)表于 2023-2-8 12:55 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
#include <REGX52.H>
typedef unsigned char u8;
typedef unsigned  int u16;
#define KEY_MATRIX_PORT P1
#define SMG_PORT P0
u8 gsmg_code[17]={0x3f,0x0b,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void delay_10us(u16 ten_us)
{
        while(ten_us--);
}
u8 key_matrix(void)
{
        u8 key_is=0;
         KEY_MATRIX_PORT=0xf7;
         if( KEY_MATRIX_PORT!=0xf7)
         {         delay_10us(1000);
                 switch( KEY_MATRIX_PORT)
                {
                        case 0x77:key_is=1;break;
                        case 0xb7:key_is=5;break;
                        case 0xd7:key_is=9;break;
                        case 0xe7:key_is=13;break;
                }         
         }
         while(KEY_MATRIX_PORT!=0xf7);
         return key_is;
         KEY_MATRIX_PORT=0xfb;
         if( KEY_MATRIX_PORT!=0xfb)
         {          delay_10us(1000);
                 switch( KEY_MATRIX_PORT)
                {
                        case 0x7b:key_is=2;break;
                        case 0xbb:key_is=6;break;
                        case 0xdb:key_is=10;break;
                        case 0xeb:key_is=14;break;
                }         
         }
         while(KEY_MATRIX_PORT!=0xfb);
         return key_is;
KEY_MATRIX_PORT=0xfd;
         if( KEY_MATRIX_PORT!=0xfd)
         {           delay_10us(1000);
                 switch( KEY_MATRIX_PORT)
                {
                        case 0x7d:key_is=3;break;
                        case 0xbd:key_is=7;break;
                        case 0xdd:key_is=11;break;
                        case 0xed:key_is=15;break;
                }         
         }
         while(KEY_MATRIX_PORT!=0xfd);
         return key_is;
         KEY_MATRIX_PORT=0xfe;
         if( KEY_MATRIX_PORT!=0xfe)
         {           delay_10us(1000);
                 switch( KEY_MATRIX_PORT)
                {
                        case 0x7e:key_is=4;break;
                        case 0xbe:key_is=8;break;
                        case 0xde:key_is=12;break;
                        case 0xee:key_is=16;break;
                }         
         }
         while(KEY_MATRIX_PORT!=0xfe);
         return key_is;
}                                          
void main()
{        u8 key=0;
        while(1)
        {
                key=key_matrix();
               
                SMG_PORT=gsmg_code[key-1];
        }
}

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

使用道具 舉報

沙發(fā)
ID:213173 發(fā)表于 2023-2-8 14:32 | 只看該作者
  1. #include <REG51.H>
  2. typedef unsigned char u8;
  3. typedef unsigned  int u16;
  4. #define KEY_MATRIX_PORT P1
  5. #define SMG_PORT P0
  6. u8 gsmg_code[17]={0x3f,0x06,0x5b,0x4f,0x66,
  7. 0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,
  8. 0x39,0x5e,0x79,0x71,0x40};
  9. u8 key_is=16;

  10. void delay_10us(u16 ten_us)
  11. {
  12.         while(ten_us--);
  13. }
  14. void  key_matrix(void)
  15. {
  16.         static bit a=0;
  17.         KEY_MATRIX_PORT=0xf0;
  18.         if(KEY_MATRIX_PORT!=0xf0)
  19.         {
  20.                 delay_10us(1000);
  21.                 if(KEY_MATRIX_PORT!=0xf0 && a==0)
  22.                 {
  23.                         a=1;
  24.                         switch(KEY_MATRIX_PORT)
  25.                         {
  26.                                 case(0Xe0):key_is = 0;break;
  27.                                 case(0Xd0):key_is = 1;break;
  28.                                 case(0Xb0):key_is = 2;break;
  29.                                 case(0X70):key_is = 3;break;
  30.                         }         
  31.                         KEY_MATRIX_PORT=0x0f;
  32.                         switch(KEY_MATRIX_PORT)
  33.                         {
  34.                                 case(0X0e):key_is += 0;break;
  35.                                 case(0X0d):key_is += 4;break;
  36.                                 case(0X0b):key_is += 8;break;
  37.                                 case(0X07):key_is +=12;break;
  38.                         }
  39.                 }
  40.         }
  41.         else                                //按鍵抬起
  42.         {
  43.                 a=0;
  44.         }
  45. }
  46. void main()
  47. {
  48.         while(1)
  49.         {
  50.                 key_matrix();
  51.                 SMG_PORT=gsmg_code[key_is];
  52.         }
  53. }
復(fù)制代碼


回復(fù)

使用道具 舉報

板凳
ID:161164 發(fā)表于 2023-2-8 14:46 | 只看該作者
真機(jī)還是仿真?
回復(fù)

使用道具 舉報

地板
ID:275826 發(fā)表于 2023-2-8 15:05 | 只看該作者
KEY_MATRIX_PORT=0xf7;          if( KEY_MATRIX_PORT!=0xf7)          {       delay_10us(1000);                  switch( KEY_MATRIX_PORT&0xf0)                 {                         case 0x70:key_is=1;break;                         case 0xb0:key_is=5;break;                         case 0xd0:key_is=9;break;                         case 0xe0:key_is=13;break;                 }                                         while(KEY_MATRIX_PORT&0xf0!=0xf0);                             return key_is;                                 }
回復(fù)

使用道具 舉報

5#
ID:94031 發(fā)表于 2023-2-8 15:58 | 只看該作者
改了一下,請參考。

#include <REGX52.H>
typedef unsigned char u8;
typedef unsigned  int u16;
#define KEY_MATRIX_PORT P1
#define SMG_PORT P0
u8 gsmg_code[17]={0x3f,0x0b,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};

u8 key_matrix(void)
{
        u8 jisu;
        u8 key_is=0;

        KEY_MATRIX_PORT=0xf7;
        jisu=0;
        while( KEY_MATRIX_PORT!=0xf7)
        {
                 switch( KEY_MATRIX_PORT)
                {
                        case 0x77:key_is=1;break;
                        case 0xb7:key_is=5;break;
                        case 0xd7:key_is=9;break;
                        case 0xe7:key_is=13;break;
                }
                jisu=jisu+1;if(jisu>200){break;}
        }
         
         KEY_MATRIX_PORT=0xfb;
        jisu=0;
        while( KEY_MATRIX_PORT!=0xfb)
        {   
                switch( KEY_MATRIX_PORT)
                {
                        case 0x7b:key_is=2;break;
                        case 0xbb:key_is=6;break;
                        case 0xdb:key_is=10;break;
                        case 0xeb:key_is=14;break;
                }
                jisu=jisu+1;if(jisu>200){break;}
         }
                  
   KEY_MATRIX_PORT=0xfd;
         jisu=0;
         while( KEY_MATRIX_PORT!=0xfd)
         {     
                 switch( KEY_MATRIX_PORT)
                 {
                                case 0x7d:key_is=3;break;
                                case 0xbd:key_is=7;break;
                                case 0xdd:key_is=11;break;
                                case 0xed:key_is=15;break;
                 }
                 jisu=jisu+1;if(jisu>200){break;}
         }
                                 
         KEY_MATRIX_PORT=0xfe;
         jisu=0;
         while( KEY_MATRIX_PORT!=0xfe)
         {        
                        switch( KEY_MATRIX_PORT)
                        {
                                case 0x7e:key_is=4;break;
                                case 0xbe:key_is=8;break;
                                case 0xde:key_is=12;break;
                                case 0xee:key_is=16;break;
                        }
      jisu=jisu+1;if(jisu>200){break;}                       
         }
         return key_is;
}                                          
void main()
{
        u8 key=0;
        while(1)
        {
                key=key_matrix();
         
                SMG_PORT=gsmg_code[key-1];
        }
}

回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 精品无码久久久久国产 | 99久久中文字幕三级久久日本 | 在线视频国产一区 | 日韩视频一区二区三区 | 日批免费看 | 日韩精品一区二区在线观看 | 99爱视频 | 亚洲美女一区 | 久久久久久av | 日韩欧美三级在线 | 三级特黄特色视频 | 日日碰狠狠躁久久躁96avv | 中文字幕乱码一区二区三区 | 久久国产精品无码网站 | 中文字幕一区二区三区四区 | 日韩中文字幕网 | 精品一区在线 | 欧美性一区二区三区 | 日韩在线中文字幕 | 日韩免费视频一区二区 | 欧美精品一区二区三区四区五区 | 精品国产乱码一区二区三区 | 国产高清精品一区二区三区 | 超碰导航 | 亚洲综合首页 | 91欧美精品成人综合在线观看 | 成在线人视频免费视频 | 99在线资源 | 欧美日韩亚洲视频 | 99re视频| 99精品视频免费观看 | 中文字幕久久精品 | 免费观看一级毛片视频 | 狠狠躁天天躁夜夜躁婷婷老牛影视 | 国产精品久久久久一区二区三区 | 国产成人精品一区二 | 精品视频一区二区三区在线观看 | 国产高清一二三区 | 欧美日韩在线一区二区三区 | 欧美三级在线 | 欧美日韩在线电影 |