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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3324|回復: 8
收起左側(cè)

keil編譯單片機程序出現(xiàn)129和136錯誤

[復制鏈接]
ID:881592 發(fā)表于 2021-4-12 09:34 | 顯示全部樓層 |閱讀模式
小白一枚,本學期有單片機的課就在網(wǎng)上找了個程序練習,但對于129和136錯誤不知該怎么下手,還請大神們指點迷津一下
批注 2021-04-12 145835.png
#include<reg51.h>
#include<intrins.h>
#define  uchar  unsigned  char  //定義數(shù)據(jù)類型
#define  uint  unsigned  int
bit  flag;  //標志位
/**************1602顯示字符***************/
uchar  code  table[]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39};
//1602顯示數(shù)組
uchar  code  tab[]="**  GAS  ALARM  **";  //1602顯示字符
uchar  code  table1[]="  NOW:";
uchar  code  table2[]=" %";
/**************1602控制端口管腳定義***************/
sbit  lcdrs=P3^0;
sbit  lcdrw=P3^1;
sbit  lcden=P3^2;
sbit  start=P3^4;
/**************AD0809控制端口定義***************/
sbit  eoc=P3^3;
sbit  oe=P3^5;
sbit  CLK=P3^6;
/**************其他變量***************/
uchar  shi, ge, shi1, bai1, num;
uint  temp;
uchar  count;  //蜂鳴器常量
/**************系統(tǒng)延時函數(shù)***************/
void  delay(uint  z)
{
uint  x, y;
for(x=z; x>0; x--)
for(y=110; y>0; y--);
}
/**************蜂鳴器延時(500HZ)***************/
void  dely500(void)
{  
unsigned  char  i;  
for(i=250; i>0; i--)  
{  
_nop_();  
  }
}
/**************1602命令函數(shù)***************/
void  write _com(uchar  com)
{
lcdrs=0;
P1=com;
delay(1);  
lcden=1;  
delay(1);
lcden=0;
}
/**************1602數(shù)據(jù)函數(shù)***************/
void  write _data(uchar date)
{   
lcdrs=1;
P1=date;
delay(1);
lcden=1;
delay(1);
lcden=0;
}
/**************系統(tǒng)初始化***************/
void  init()
{  
oe=0;
lcden=0;
lcdrw=0;
write_com(0x38);
write_com(0x0c);
write_com(0x06);
write_com(0x01);
write_com(0x80);
temp=0;
TMOD=0x01;
TH0=(65536-500)/256;
TL0=(65536-500)%256;
EA=1;
ET0=1;
TR0=1;
}
/**************1602顯示函數(shù)***************/
void  voltage(uchar  ge,uchar  shi,uchar  bai1)
{  
shi=temp/1000;
ge=temp%1000/100;
shi1=temp%100/10;
bai1=temp%10;
write_com(0x80);
for(num=0;
num<16;num++)
{
write_data(tab[num]);
}
write_com(0xc0);
for(num=0;num<6;num++)
{
write_data(table1[num]);
}
write_com(0xc7);
write_data(table[shi]);
delay(1);
write_com(0xc8);
write_data(table[ge]);
delay(1);

write_com(0xc9);
write_data('.');
delay(1);

write_com(0xca);
write_data(table[shi1]);
delay(1);

write_com(0xcb);
write_data(table[bai1]);
delay(1);

write_com(0xcc);
for(num=0;num<2;num++)
{
write_data(table2[num]);
}
/***********AD轉(zhuǎn)換控制程序**********/     
start=0;
start=1;
start=0;
while(!eoc);
oe=1;
temp=P2;
oe=0;
temp=(temp*2*1*98.039216/100);  //AD采樣換算
/*****蜂鳴器報警程序*******/
/**可燃氣體爆炸濃度:5%--16%,本設(shè)計設(shè)置為5%--15%**/         
if(temp>=200)
{           
for(count=200;count>0;count--)
{  
P0_7=~P0_7;
dely500();
}
for(count=200;count>0;count--)
{  
P0_7=~P0_7;
dely500();
dely500();
}
}
}
/**************中斷***************/
void  timer0()  interrupt  1
{
TH0=(65536-500)/256;
TL0=(65536-500)%256;
CLK=~CLK;  //CLK按位取反,代替方波脈沖
}
void main()
{
init();
while(1)
{
  voltage(ge,shi,bai1);
}           
}




回復

使用道具 舉報

ID:451718 發(fā)表于 2021-4-12 11:09 | 顯示全部樓層
void  首字母小寫!!!
回復

使用道具 舉報

ID:883031 發(fā)表于 2021-4-12 14:00 | 顯示全部樓層
/**************蜂鳴器延時(500HZ)***************/
Void ; dely500(void)
{  
unsigned char  i;  
for(i=250; i>0; i--)  
{  
_nop_();
  }
}
/**************1602命令函數(shù)***************/
Void; write; _com(uchar  com)
{
lcdrs=0;
P1=com;
delay(1);
lcden=1;
delay(1);
lcden=0;
}
/**************1602數(shù)據(jù)函數(shù)***************/
Void; write; _data(uchar date)
{   
lcdrs=1;
P1=date;
delay(1);
lcden=1;
}
/**************系統(tǒng)初始化***************/
Void; init()
{  
oe=0;
lcden=0;
lcdrw=0;
write_com(0x38);
write_com(0x0c);
write_com(0x06);
write_com(0x01);
write_com(0x80);
temp=0;
TMOD=0x01;
TH0=(65536-500)/256;
TL0=(65536-500)%256;
EA=1;
ET0=1;
TR0=1;
}
這些函數(shù)的定義中,為什么void后邊都加“;”?不出錯才說明編譯器有問題。
回復

使用道具 舉報

ID:881592 發(fā)表于 2021-4-12 15:03 | 顯示全部樓層
cn_zhx 發(fā)表于 2021-4-12 14:00
/**************蜂鳴器延時(500HZ)***************/
Void ; dely500(void)
{  

不好意思,這兩天找的程序太多,搞錯了,錯誤序號也記錯了
回復

使用道具 舉報

ID:881592 發(fā)表于 2021-4-12 15:11 | 顯示全部樓層
cn_zhx 發(fā)表于 2021-4-12 14:00
/**************蜂鳴器延時(500HZ)***************/
Void ; dely500(void)
{  

發(fā)帖是的程序是直接復制的,所以錯誤較多,我已經(jīng)重新編輯了貼子并附上錯誤截圖。我修改后的錯誤代號是129和136,”其中129是說在"_data"前加“;”可“write_data”不是往里寫數(shù)據(jù)么,為什么要加分號?
回復

使用道具 舉報

ID:881592 發(fā)表于 2021-4-12 15:12 | 顯示全部樓層
robinsonlin 發(fā)表于 2021-4-12 11:09
void  首字母小寫!!!

是的,這點老師講過,是我抄代碼的時候粗心了
回復

使用道具 舉報

ID:155507 發(fā)表于 2021-4-12 16:38 | 顯示全部樓層
給你改了,對比一下就知道哪里錯了。

  1. #include <reg51.h>
  2. #include <intrins.h>
  3. #define  uchar  unsigned  char  //定義數(shù)據(jù)類型
  4. #define  uint   unsigned  int
  5. bit  flag;  //標志位
  6. /**************1602顯示字符***************/
  7. uchar  code  table[]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39};
  8. //1602顯示數(shù)組
  9. uchar  code  tab[]="**  GAS  ALARM  **";  //1602顯示字符
  10. uchar  code  table1[]="  NOW:";
  11. uchar  code  table2[]=" %";
  12. /**************1602控制端口管腳定義***************/
  13. sbit  lcdrs=P3^0;
  14. sbit  lcdrw=P3^1;
  15. sbit  lcden=P3^2;
  16. sbit  start=P3^4;
  17. /**************AD0809控制端口定義***************/
  18. sbit  eoc=P3^3;
  19. sbit  oe =P3^5;
  20. sbit  CLK=P3^6;
  21. /**************其他變量***************/
  22. sbit  P0_7=P0^7;   //------>???少寫
  23. uchar  shi, ge, shi1, bai1, num;
  24. uint  temp;
  25. uchar  count;  //蜂鳴器常量
  26. /**************系統(tǒng)延時函數(shù)***************/
  27. void  delay(uint  z)
  28. {
  29.         uint  x, y;
  30.         for(x=z; x>0; x--)
  31.             for(y=110; y>0; y--);
  32. }
  33. /**************蜂鳴器延時(500HZ)***************/
  34. void  dely500(void)
  35. {  
  36.         unsigned  char  i;  
  37.         for(i=250; i>0; i--)  
  38.         {  
  39.                 _nop_();  
  40.         }
  41. }
  42. /**************1602命令函數(shù)***************/
  43. void  write_com(uchar  com)  //---->多了個空格字符
  44. {
  45.         lcdrs=0;
  46.         P1=com;
  47.         delay(1);  
  48.         lcden=1;  
  49.         delay(1);
  50.         lcden=0;
  51. }
  52. /**************1602數(shù)據(jù)函數(shù)***************/
  53. void  write_data(uchar date)  //--->多了個空格字符
  54. {   
  55.         lcdrs=1;
  56.         P1=date;
  57.         delay(1);
  58.         lcden=1;
  59.         delay(1);
  60.         lcden=0;
  61. }
  62. /**************系統(tǒng)初始化***************/
  63. void  init()
  64. {  
  65.         oe=0;
  66.         lcden=0;
  67.         lcdrw=0;
  68.         write_com(0x38);
  69.         write_com(0x0c);
  70.         write_com(0x06);
  71.         write_com(0x01);
  72.         write_com(0x80);
  73.         temp=0;
  74.         TMOD=0x01;
  75.         TH0=(65536-500)/256;
  76.         TL0=(65536-500)%256;
  77.         EA=1;
  78.         ET0=1;
  79.         TR0=1;
  80. }
  81. /**************1602顯示函數(shù)***************/
  82. void  voltage(uchar  ge,uchar  shi,uchar  bai1)
  83. {  
  84.         shi=temp/1000;
  85.         ge=temp%1000/100;
  86.         shi1=temp%100/10;
  87.         bai1=temp%10;
  88.         write_com(0x80);
  89.         for(num=0;
  90.         num<16;num++)
  91.         {
  92.                 write_data(tab[num]);
  93.         }
  94.         write_com(0xc0);
  95.         for(num=0;num<6;num++)
  96.         {
  97.                 write_data(table1[num]);
  98.         }
  99.         write_com(0xc7);
  100.         write_data(table[shi]);
  101.         delay(1);
  102.         write_com(0xc8);
  103.         write_data(table[ge]);
  104.         delay(1);

  105.         write_com(0xc9);
  106.         write_data('.');
  107.         delay(1);

  108.         write_com(0xca);
  109.         write_data(table[shi1]);
  110.         delay(1);

  111.         write_com(0xcb);
  112.         write_data(table[bai1]);
  113.         delay(1);

  114.         write_com(0xcc);
  115.         for(num=0;num<2;num++)
  116.         {
  117.                 write_data(table2[num]);
  118.         }
  119.         /***********AD轉(zhuǎn)換控制程序**********/     
  120.         start=0;
  121.         start=1;
  122.         start=0;
  123.         while(!eoc);
  124.         oe=1;
  125.         temp=P2;
  126.         oe=0;
  127.         temp=(temp*2*1*98.039216/100);  //AD采樣換算
  128.         /*****蜂鳴器報警程序*******/
  129.         /**可燃氣體爆炸濃度:5%--16%,本設(shè)計設(shè)置為5%--15%**/         
  130.         if(temp>=200)
  131.         {           
  132.                 for(count=200;count>0;count--)
  133.                 {  
  134.                         P0_7=~P0_7;
  135.                         dely500();
  136.                 }
  137.                 for(count=200;count>0;count--)
  138.                 {  
  139.                         P0_7=~P0_7;
  140.                         dely500();
  141.                         dely500();
  142.                 }
  143.         }
  144. }
  145. /**************中斷***************/
  146. void  timer0()  interrupt  1
  147. {
  148.         TH0=(65536-500)/256;
  149.         TL0=(65536-500)%256;
  150.         CLK=~CLK;  //CLK按位取反,代替方波脈沖
  151. }
  152. void main()
  153. {
  154.         init();
  155.         while(1)
  156.         {
  157.                 voltage(ge,shi,bai1);
  158.         }           
  159. }



復制代碼
回復

使用道具 舉報

ID:881592 發(fā)表于 2021-4-12 22:00 | 顯示全部樓層
angmall 發(fā)表于 2021-4-12 16:38
給你改了,對比一下就知道哪里錯了。

謝謝您,認真看了您的代碼并對比了一下,真的是醍醐灌頂,感謝!
回復

使用道具 舉報

ID:311846 發(fā)表于 2021-4-14 15:33 | 顯示全部樓層
函數(shù)名包含迷之空格
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品日日夜夜 | 成人一区二区在线 | 亚洲va欧美va天堂v国产综合 | 性精品| 91看片在线 | 中文字幕高清 | 在线免费国产 | 成人免费在线视频 | 欧美性精品 | 久久久久久久一区 | 国产视频福利在线观看 | 日韩在线 | av黄色国产 | 男女羞羞视频在线看 | 日本特黄a级高清免费大片 国产精品久久性 | 久久久av| 欧美日韩高清在线一区 | 久久99精品久久久久久国产越南 | 久久久久亚洲 | 二区欧美 | 成人欧美一区二区三区黑人孕妇 | 欧美成视频 | 国产精品久久久久久久久久免费看 | 超碰成人免费 | 日韩高清在线 | japan21xxxxhd美女| 日韩在线不卡视频 | 青青草网站在线观看 | 精品日韩 | 久久久无码精品亚洲日韩按摩 | 国产盗摄视频 | 精品人伦一区二区三区蜜桃网站 | 免费一级欧美在线观看视频 | 国产精品视频免费观看 | 欧美日一区 | 亚洲电影免费 | 黄免费观看视频 | aaa级片 | 国产精品一区三区 | 一级黄色毛片子 | 久久久夜夜夜 |