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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機程序好多錯誤 求指導

[復制鏈接]
跳轉到指定樓層
樓主
ID:1062123 發表于 2023-2-7 22:20 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include <REGX52.H>
typedef unsigned char u8;
typedef unsigned int u16;
#define SMG PORT P0
#define KEY_MATRIX_PORT P1
u8 gsmg_code[16]={0x3f,0x06,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;
         }
         else 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;
         }
         else 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 POR=0Xfd);
                return key is;
         }
         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();
                if(key!=0)
                P0=gsmg[key-1];
        }
}
   
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:903582 發表于 2023-2-7 23:22 | 只看該作者
你把錯誤也貼出來啊 ,我們又不是編譯器
回復

使用道具 舉報

板凳
ID:883242 發表于 2023-2-7 23:53 | 只看該作者
只看到第一個錯誤
#define SMG PORT P0
這里SMG PORT中間加空格就是兩個東西了,要寫成SMG_PORT
回復

使用道具 舉報

地板
ID:844772 發表于 2023-2-8 00:01 來自觸屏版 | 只看該作者
key is 少_。  
回復

使用道具 舉報

5#
ID:94031 發表于 2023-2-8 06:08 | 只看該作者
u8 gsmg_code[16]={0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f,0x77,
0x7c,0x39,0x5e,0x79,0x71}最后要有分號。
回復

使用道具 舉報

6#
ID:94031 發表于 2023-2-8 06:32 | 只看該作者
case 0x77:key_is 1;break;應該 key_is = 1;
回復

使用道具 舉報

7#
ID:94031 發表于 2023-2-8 06:38 | 只看該作者
while(KEY_MATRIX_PORT=0Xfb);應該while(KEY_MATRIX_PORT==0Xfb);
回復

使用道具 舉報

8#
ID:596109 發表于 2023-2-8 08:33 | 只看該作者
                        case 0x7e:key is 4;break;                         case 0xbe:key is 8;break;                         case 0xde:key is 12;break;                         case 0xee:key is 16;break,k
回復

使用道具 舉報

9#
ID:596109 發表于 2023-2-8 08:34 | 只看該作者
                        case 0x7e:key is 4;break;                         case 0xbe:key is 8;break;                         case 0xde:key is 12;break;                         case 0xee:key is 16;break //key is改成key_is =
回復

使用道具 舉報

10#
ID:76318 發表于 2023-2-8 11:34 | 只看該作者
#include <REGX52.H> typedef unsigned char u8; typedef unsigned int u16; #define SMG_PORT P0                                       //P0口接數碼管 #define KEY_MATRIX_PORT P1                                               //P1口接矩陣按鍵 u8 gsmg_code[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};          //0~9 a~f 全滅        共陰數碼管 void delay_10us(u16 ten_us) {      while(ten_us--); } u8 key_matrix(void)                                               //按鍵函數         高四位接行線,低四位接列線 {      u8 key_is=0;                                                                   //鍵值變量       KEY_MATRIX_PORT =0xf7;                                   //按鍵賦值        1111 0111      if(KEY_MATRIX_PORT!=0xf7)                           //有鍵按下               {          delay_10us(100);                         //延時          switch(KEY_MATRIX_PORT )                                  //匹配鍵值           {                 case 0x77:key_is=1;break;                   //0111 0111         鍵值1                 case 0xb7:key_is=5;break;                   //1011 0111         鍵值5                 case 0xd7:key_is=9;break;                   //1101 0111         鍵值9                 case 0xe7:key_is=13;break;                   //1110 0111         鍵值13           }                                                     while(KEY_MATRIX_PORT!=0xf7);                           //等待松手                   return key_is;                                                           //返回鍵值      }          KEY_MATRIX_PORT =0xfb;                         //按鍵賦值   1111 1011     if(KEY_MATRIX_PORT!=0xfb)                      //有鍵按下   不等于1111 1011      {          delay_10us(100);                          //延時          switch(KEY_MATRIX_PORT)                   //匹配           {                 case 0x7b:key_is=2;break;                   //0111 1011  鍵值2                 case 0xbb:key_is=6;break;                   //1011 1011  鍵值6                 case 0xdb:key_is=10;break;                   //1101 1011  鍵值10                 case 0xeb:key_is=14;break;                   //1110 1011  鍵值14           }          while(KEY_MATRIX_PORT!=0xfb);                   //等待松手             return key_is;                                                           //返回鍵值      }           KEY_MATRIX_PORT =0xfd;                               //按鍵賦值   1111 1101     if(KEY_MATRIX_PORT!=0xfd)                      //有鍵按下         {          delay_10us(100);                          //延時          switch(KEY_MATRIX_PORT)                   //匹配           {                 case 0x7d:key_is=3;break;          //0111 1101  鍵值3                 case 0xbd:key_is=7;break;                   //1011 1101  鍵值7                 case 0xdd:key_is=11;break;                   //1101 1101  鍵值11                 case 0xed:key_is=15;break;                   //1110 1101        鍵值15           }          while(KEY_MATRIX_PORT!=0xfd);             //等待松手            return key_is;                                   //返回鍵值      }           KEY_MATRIX_PORT =0xfe;                               //按鍵賦值        1111 1110     if(KEY_MATRIX_PORT !=0xfe)                                           //有鍵按下   不等于1111 1110      {           delay_10us(100);                               //延時           switch(KEY_MATRIX_PORT )                                   //匹配            {                 case 0x7e:key_is=4;break;                   //0111 1110  鍵值4                 case 0xbe:key_is=8;break;                   //1011 1110  鍵值8                 case 0xde:key_is=12;break;                   //1101 1110  鍵值12                 case 0xee:key_is=16;break;                   //1110 1110  鍵值16            }           while(KEY_MATRIX_PORT!=0xfe);            //等待松手              return key_is;                                                   //返回鍵值      } } void main()                                               //主函數 {              u8 key=0;                                       //定義鍵值變量    SMG_PORT=gsmg_code[16];                         //熄滅數碼管        while(1)     {          key=key_matrix();                               //讀取按鍵值               SMG_PORT=gsmg_code[key-1];                           //P0顯示鍵值     } }
回復

使用道具 舉報

11#
ID:1062123 發表于 2023-2-8 12:22 | 只看該作者
謝謝大家建議很好我都采納了
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 秋霞电影一区二区 | 国产亚洲一区精品 | 99re在线视频观看 | 青草青草久热精品视频在线观看 | 在线日韩欧美 | 免费性视频| 国产成人av一区二区三区 | 91免费看片| 黄色国产在线播放 | av中文在线观看 | 国产精品毛片一区二区三区 | 国产日韩免费视频 | 成人h动漫精品一区二区器材 | 伊人狠狠操 | 亚洲精品乱码久久久久久蜜桃 | 亚洲国产精品一区二区久久 | 91香蕉视频在线观看 | 国产一区二区三区 | 在线视频 中文字幕 | 爱爱小视频 | 国产高清视频在线观看 | 成年人国产在线观看 | 亚洲乱码一区二区三区在线观看 | 成人高清在线 | 国产一区精品在线 | 亚洲国产aⅴ成人精品无吗 亚洲精品久久久一区二区三区 | 日韩一区在线播放 | 日韩插插 | 国产精品v| www.伊人.com | 中文字幕电影在线观看 | 久久久久久毛片免费观看 | 亚洲成人午夜在线 | 亚洲精品日韩欧美 | 超碰在线免费公开 | 亚洲国产欧美日韩 | 国产黄色一级电影 | 欧美日韩国产精品一区二区 | 中文视频在线 | 羞羞视频免费观 | 国产精品一区久久久久 |