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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2399|回復: 12
收起左側

單片機矩陣按鍵顯示字符的程序的問題

[復制鏈接]
ID:951587 發表于 2021-7-10 18:31 | 顯示全部樓層 |閱讀模式
#include "reg52.h"
typedef unsigned char u8;
typedef unsigned int u16;

#define DIG P0         //數碼管顯示io
#define KEY P1         //矩陣按鍵io
char a=0;
u8 x;
u8 y;
char s=x*y-1;

u8 code fuhao[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void delay(u16 i)
{
   while(i--);
}
void juzhen()
{
   KEY=0x0f;   //高4低,低4高
   if(KEY!=0x0f)         //有按鍵被按下
   {
        delay(1000);          //防誤觸?
        if(KEY!=0x0f)
         {
         switch(KEY)   //按鍵所在列                   // 設i行和j列  s結果=i*j-1
          {
           case(0x07):y=1;break;//           1
           case(0x0b):y=2;break;//           2
           case(0x0d):y=3;break;//           3
           case(0x0e):y=4;break;//           4
          }
          KEY=0xf0;         //高4低,低4高
          switch(KEY)  //按鍵所在行
          {
           case(0x70):x=1;break;  //  1
           case(0xb0):x=2;break;//  2
           case(0xd0):x=3;break; // 3
           case(0xe0):x=4;break;        // 4
          }
          while((a<50)&&(KEY!=0xf0)) //長按退出
          {
           delay(1000);
           a++;
          }
         }
   }
}
void main()
{
               
                         while(1);
                         {
                          juzhen();
                          DIG=fuhao[ s];
                         }
}
測試時報錯c247,有大佬知道犯了什么錯嗎

回復

使用道具 舉報

ID:539024 發表于 2021-7-10 21:47 | 顯示全部樓層
247應該是在第247行有錯誤,你看后面提示就行啊,就知道是什么錯誤了
回復

使用道具 舉報

ID:951722 發表于 2021-7-11 10:40 | 顯示全部樓層
本帖最后由 噔噔燈燈 于 2021-7-11 10:42 編輯

#include "reg52.h"
typedef unsigned char u8;
typedef unsigned int u16;

#define DIG P0         //數碼管顯示io
#define KEY P1         //矩陣按鍵io
char a=0;
u8 x;
u8 y;
char s;

u8 code fuhao[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void delay(u16 i)
{
   while(i--);
}
void juzhen()
{
   KEY=0x0f;   //高4低,低4高
   if(KEY!=0x0f)         //有按鍵被按下
   {
        delay(1000);          //防誤觸?
        if(KEY!=0x0f)
         {
         switch(KEY)   //按鍵所在列                   // 設i行和j列  s結果=i*j-1
          {
           case(0x07):y=1;break;//           1
           case(0x0b):y=2;break;//           2
           case(0x0d):y=3;break;//           3
           case(0x0e):y=4;break;//           4
          }
          KEY=0xf0;         //高4低,低4高
          switch(KEY)  //按鍵所在行
          {
           case(0x70):x=1;break;  //  1
           case(0xb0):x=2;break;//  2
           case(0xd0):x=3;break; // 3
           case(0xe0):x=4;break;        // 4
          }
          while((a<50)&&(KEY!=0xf0)) //長按退出
          {
           delay(1000);
           a++;
          }
         }
   }
}
void main()
{

                         while(1);
                         {
                          juzhen();
                          s==x*y-1;
                          DIG=fuhao[ s];
                         }
}
回復

使用道具 舉報

ID:951722 發表于 2021-7-11 10:41 | 顯示全部樓層
把s的聲明的內容放到主函數里
回復

使用道具 舉報

ID:161164 發表于 2021-7-11 22:54 | 顯示全部樓層
while(1);//<<<多了個";"
回復

使用道具 舉報

ID:213173 發表于 2021-7-12 06:09 | 顯示全部樓層
char s=x*y-1;語法錯誤,可以改為#define s x*y-1,不過這個x*y-1算法本身也是錯的。
回復

使用道具 舉報

ID:934353 發表于 2021-7-13 10:30 | 顯示全部樓層
能發一下你按鍵與單片機的接線圖嗎,感覺你的按鍵判斷程序怪怪的,需要看一下電路圖,而且你主程序的while(1)后面加了“;”,就是死循環了,程序運行到這里都進行不到下面
回復

使用道具 舉報

ID:897180 發表于 2021-7-14 00:03 | 顯示全部樓層
x,y變量只是聲明,沒有初始化,所以char s=x*y-1;報錯
回復

使用道具 舉報

ID:951587 發表于 2021-8-3 00:30 | 顯示全部樓層
噔噔燈燈 發表于 2021-7-11 10:41
把s的聲明的內容放到主函數里

大佬,為什么要放在主函數里,不能把它設為全局嗎?
回復

使用道具 舉報

ID:951587 發表于 2021-8-3 00:34 | 顯示全部樓層
開心就好hhhh 發表于 2021-7-13 10:30
能發一下你按鍵與單片機的接線圖嗎,感覺你的按鍵判斷程序怪怪的,需要看一下電路圖,而且你主程序的while ...

網上買的普中51開發板,其實那分號刪不刪應該都是能正常run起來的(,出錯了應該不是這個分號的問題
回復

使用道具 舉報

ID:951587 發表于 2021-8-3 00:39 | 顯示全部樓層
噔噔燈燈 發表于 2021-7-11 10:41
把s的聲明的內容放到主函數里

是因為執行完juzhen()子函數前x和y沒有初始化,所以s無法賦值嗎
回復

使用道具 舉報

ID:951587 發表于 2021-8-3 11:25 | 顯示全部樓層
wulin 發表于 2021-7-12 06:09
char s=x*y-1;語法錯誤,可以改為#define s x*y-1,不過這個x*y-1算法本身也是錯的。

c學的不是很好,matlab能這樣寫就照做了()
回復

使用道具 舉報

ID:934353 發表于 2021-8-4 10:03 | 顯示全部樓層
winfredt 發表于 2021-8-3 00:34
網上買的普中51開發板,其實那分號刪不刪應該都是能正常run起來的(,出錯了應該不是這個分號的問題

所以你要發一下編譯后的結果,一般錯在哪都會寫的很明白的
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 看片国产 | 国产一区二区a | 丝袜久久| 日韩欧美二区 | 欧美日韩高清在线一区 | 免费看日韩视频 | 亚洲成av人影片在线观看 | 中文字幕乱码一区二区三区 | 久久精品播放 | 啪啪av| 国产精品久久久久久久午夜片 | 国产精品久久久久久久模特 | 国产免费自拍 | 狠狠色香婷婷久久亚洲精品 | 国产91在线播放 | 国产精品久久毛片av大全日韩 | 91精品在线看 | 中文字幕福利 | 搞av.com| 色在线看 | 免费一级做a爰片久久毛片潮喷 | 日韩欧美在线免费观看视频 | 粉嫩av| 精精精精xxxx免费视频 | 麻豆精品久久 | 中文字幕在线观看国产 | 精品一区二区在线视频 | 玖玖国产 | 国产精品一区二区视频 | 一区二区免费在线观看 | 亚洲国产精品久久久久秋霞不卡 | 精品三级在线观看 | 国产一区二区精品在线观看 | 日本视频在线播放 | 日韩欧美视频网站 | 免费大黄视频 | 欧美黄视频 | 91直接看 | 农村妇女毛片精品久久久 | 日韩国产在线观看 | 成人免费福利视频 |