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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

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

51單片機(jī)編譯的時(shí)候出現(xiàn)一大堆錯(cuò)誤?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:656393 發(fā)表于 2020-4-4 15:46 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
本帖最后由 liyihang 于 2020-4-4 16:50 編輯

51單片機(jī) 麻煩大佬幫忙看看這些問題怎么解決
電路工程文件和源程序在附件里
要實(shí)現(xiàn)的功能如下:
密碼檢測(cè)狀態(tài):系統(tǒng)啟動(dòng)時(shí),進(jìn)入密碼檢測(cè)狀態(tài),默認(rèn)顯示PA----
                      若正確輸入4位密碼時(shí),進(jìn)入學(xué)號(hào)顯示狀態(tài)
                      若輸入密碼錯(cuò)誤,數(shù)碼管顯示EE----,蜂鳴器在密碼錯(cuò)誤時(shí)發(fā)生報(bào)警,仍處于密碼檢測(cè)狀態(tài)
學(xué)號(hào)顯示狀態(tài):學(xué)號(hào)顯示nE+學(xué)號(hào)后四位,一直閃爍直到離開本狀態(tài)
                      按下按鍵*,可實(shí)現(xiàn)工作狀態(tài)切換

編譯時(shí)錯(cuò)誤如下圖所示:                    

單片機(jī)源程序如下:
  1. #include<reg51.h>

  2. sbit BEEP=P2^3;
  3. sbit DACS=P2^4;
  4. sbit DAWR=P2^5;
  5. sbit DULA=P2^6;
  6. sbit WELA=P2^7;

  7. //共陰數(shù)碼管段碼
  8. unsigned char code segCC[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

  9. //共陽數(shù)碼管段碼
  10. unsigned char code segCA[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};

  11. //延時(shí)函數(shù)
  12. void Delay(unsigned int i)
  13. {
  14.         unsigned int j;
  15.         while(i--)
  16.         {
  17.                         for(j=0;j<32;j++);                //延時(shí)
  18.         }
  19. }

  20. //3-1、增加狀態(tài)變量,修改顯示函數(shù)Display0()
  21. unsigned char segWE6[]={0x01,0x02,0x04,0x08,0x10,0x20};
  22. unsigned char segDU6[]={0x8C,0x88,0xBF,0xBF,0xBF,0xBF};
  23. unsigned char segDU2[]={0xAB,0x86,0xC0,0xF9,0xA4,0xB0};

  24. //關(guān)鍵性變量
  25. unsigned char sysflg; //系統(tǒng)狀態(tài)變量,0-密碼檢測(cè),1-密碼錯(cuò)誤檢測(cè),2-學(xué)號(hào)顯示,3-DAC轉(zhuǎn)換
  26. //-----------------------顯示密碼檢測(cè)界面-----------------------//
  27. void Display0()
  28. {
  29.         char i;
  30.         for(i=0;i<6;i++)
  31.         {
  32.         DULA=0;WELA=0;
  33.         P0=segWE6[i];WELA=1;WELA=0;
  34.         P0=segDU6[i];DULA=1;DULA=0;
  35.         Delay(5);
  36.         }
  37. }

  38. //按鍵掃描函數(shù),返回值為對(duì)應(yīng)的按鍵編碼
  39. unsigned char GetKey()
  40. {        unsigned char i,j,k=0,l;
  41.         unsigned char KeyScanCode[]={0xef,0xdf,0xbf,0x7f};                //行列掃描的行列碼
  42.         unsigned char KeyCodeTable[]={0xee,0xed,0xeb,0xde,0xdd,0xdb,0xbe,0xbd,0xbb,0x7e,0x7d,0x7b};
  43.         
  44.         P3=0x0f;
  45.         if(P3!=0x0f)                //如果有按鍵被按下
  46.         {
  47.                 for(i=0;i<4;i++)                //依次進(jìn)行掃描
  48.                 {
  49.                         P3=KeyScanCode[i];
  50.                         for(j=0;j<3;j++)
  51.                         {
  52.                                 k=i*3+j;                                                //計(jì)算對(duì)應(yīng)的按鍵編碼
  53.                                 if(P3==KeyCodeTable[k])
  54.                                 {
  55.                                         l=k+1;                                                        //根據(jù)鍵值調(diào)整到對(duì)應(yīng)按鍵
  56.                                         if(l==11)        l=0;                //按鍵0,調(diào)整鍵值為0
  57.                                         if(l==12)        l=11;                //按鍵#,調(diào)整鍵值為11,按鍵*鍵值仍為10
  58.                                         return        l;                                        //返回按鍵編碼
  59.                                 }
  60.                         }
  61.                 }
  62.         }
  63.         else
  64.         {
  65.                 return 0xFF;                                        //或者返回0xff
  66.         }
  67. }

  68. void main()
  69. {
  70.         //-----數(shù)碼管顯示部分-----//
  71.         if(sysflg==0)
  72.         {
  73.                 segDU6[0]=0x8C;
  74.                 segDU6[1]=0x88;
  75.                 Display0();
  76.         }
  77.         else if(sysflg==1)
  78.         {
  79.                 segDU6[0]=0x86;
  80.                 segDU6[1]=0x86;
  81.                 Display0();
  82.                 BEEP=0;
  83.                 Delay(5);
  84.                 BEEP=1;
  85.                 Delay(3);
  86.         }
  87.         //-----按鍵檢測(cè)部分-----//
  88.         keyA=GetKey();
  89.         if(keyB!=keyA)
  90.         {
  91.                 keyB=keyA;
  92.                 if((keyA>=0) && (keyA<10) && (sysflg<=1))
  93.                 {                                                        }
  94.                 else if(keyA==10)
  95.                 {                                                        }
  96.                 else if(keyA==11)
  97.                 {                                                        }
  98.         }
  99. }

  100.         //存儲(chǔ)的密碼
  101.   unsigned char code pwd[]={1,2,3,4};
  102.                 if((keyA>=0) && (keyA<10) && ((sysflg<=1))
  103.                 {
  104.                         segDU6[segidx+2]=segCA[keyA];
  105.                         if(keyA!=pwd[segidx])        errflg=1;
  106.                         segidx++;
  107.                         if(segidx==4)
  108.                         {
  109.                                 segidx=0;
  110.                                 if(errflg==1)        sysflg=1;
  111.                                 else if(errflg==1)        sysflg=2;
  112.                                 errflg=0;
  113.                         }
  114.                 }
  115. //-----------------------顯示學(xué)號(hào)界面-----------------------//
  116. void Display2()
  117. {
  118.         char i;
  119.         for(i=0;i<6;i++)
  120.         {
  121.                 DULA=0;WELA=0;
  122.                 P0=segWE6[i];WELA=1;WELA=0;
  123.                 P0=segDU2[i];DULA=1;DULA=0;
  124.                 Delay(5);
  125.         }
  126. }
  127.                 else if(sysflg==2)
  128.                 {
  129.                         if(sysCNT<200)                Display2();
  130.                         else
  131.                         {
  132.                                 DULA=0;WELA=0;
  133.                                 P0=0;WELA=1;WELA=0;
  134.                                 P0=0;DULA=1;DULA=0;
  135.                         }
  136.                 }
  137.                         
  138.                 //====3、延時(shí)計(jì)數(shù)部分====
  139.                 sysCNT++;
  140.                 if(sysCNT==500)        sysCNT=0;
  141.                 Delay(5);
  142.         }
  143. }
復(fù)制代碼

所有資料51hei提供下載:
單片機(jī).rar (38.91 KB, 下載次數(shù): 8)



電路圖.png (194.15 KB, 下載次數(shù): 20)

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

使用道具 舉報(bào)

來自 3#
ID:546770 發(fā)表于 2020-4-4 18:28 | 只看該作者
幫你修改了語法錯(cuò)誤,我的電腦沒有安裝proteus,邏輯錯(cuò)誤就沒辦法了,你這個(gè)應(yīng)該是網(wǎng)上拷貝的吧,以后盡量自己寫或者看書上。

單片機(jī).rar

49.97 KB, 下載次數(shù): 24

回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:378116 發(fā)表于 2020-4-4 17:03 | 只看該作者
點(diǎn)擊錯(cuò)誤行,即可看到錯(cuò)誤是什么
回復(fù)

使用道具 舉報(bào)

地板
ID:367369 發(fā)表于 2020-4-4 19:24 | 只看該作者
哪里抄的代碼,連keyA,keyB,segidx這些未定義都不知道,111行多了個(gè)(
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 午夜影院在线观看免费 | 国产一区二区中文字幕 | 欧美精品福利视频 | 国产高清视频在线观看 | 亚洲国产一区在线 | 一级二级三级在线观看 | 亚洲欧美在线观看 | 欧美精品在线免费 | 欧美极品视频在线观看 | 亚洲精品性视频 | 中文字幕在线观看精品 | 精品一区二区三区在线观看 | 国产精品欧美一区二区三区 | 欧美男人亚洲天堂 | 久久乐国产精品 | 日韩av免费在线观看 | 亚洲精品久久久久久久不卡四虎 | 国产精品欧美一区二区三区不卡 | 国产成人精品久久二区二区91 | 一区二区免费看 | 天天人人精品 | 午夜精品久久久久久久星辰影院 | 伦理午夜电影免费观看 | 日韩中文字幕在线 | 另类 综合 日韩 欧美 亚洲 | 成人小视频在线观看 | 久久精品91久久久久久再现 | 欧美日一区 | 91久久精品一区二区二区 | 久草精品视频 | 久久99深爱久久99精品 | av日韩在线播放 | 色姑娘av| 日韩在线三级 | 亚洲精品一区二区三区丝袜 | 久久精品一区二区三区四区 | 精品一区二区三区在线观看 | 日本精品一区二区三区在线观看视频 | 中文字幕国产一区 | 成人欧美一区二区三区黑人孕妇 | 99国产精品99久久久久久 |