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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

單片機LCD1602顯示編譯錯誤error C129: missing ';' before '_at_0x3b'

查看數(shù): 3943 | 評論數(shù): 5 | 收藏 1
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發(fā)布時間: 2021-5-11 18:56

正文摘要:

編一個LCD1602顯示的程序,程序是按教材抄的,編譯時出現(xiàn)MAIN.C(15): error C129: missing ';' before '_at_0x3b'這個錯誤,想知道怎么結決 程序如下 #include<reg51.h> #include<intrins.h> #define PCF85 ...

回復

ID:213173 發(fā)表于 2021-5-12 06:23
不知是教材錯誤還是樓主太粗心,抄寫錯誤有好多。
  1. #include<reg51.h>
  2. #include<intrins.h>
  3. #define PCF8591_WRITE 0x90
  4. #define PCF8591_READ 0x91
  5. sbit SDA=P2^0;
  6. sbit SCL=P2^1;
  7. #define disdata P0
  8. sbit LCD_RS=P2^3;
  9. sbit LCD_RW=P2^4;
  10. sbit LCD_EN=P2^5;
  11. unsigned char code dis1[]="0-0.00V  1-0.00V";
  12. unsigned char code dis2[]="2-0.00V  3-0.00V";
  13. unsigned int data dis[4];
  14. unsigned char data receivebuf[4];
  15. //char code reserve[3]_at_0x3b;
  16. //us延時函數(shù)(4.34us)
  17. void delayNOP()
  18. {
  19.         _nop_();
  20.         _nop_();
  21.         _nop_();
  22.         _nop_();
  23. }
  24. //ms延時函數(shù)
  25. void delayms(unsigned int ms)
  26. {
  27.         unsigned char i;
  28.         while  (ms--)
  29.         {
  30.                 for(i=0;i<114;i++)
  31.                 ;
  32.         }
  33. }

  34. //檢查LCD忙狀態(tài)
  35. bit lcd_busy()
  36. {
  37.         bit result;
  38.         P0=0xff;
  39.         LCD_RS=0;
  40.         LCD_RW=1;
  41.         result=(bit)(P0&0x80);
  42.         delayNOP();
  43.         LCD_EN=0;
  44.         LCD_EN=1;
  45.         return (result);
  46. }

  47. //寫指令數(shù)據(jù)到LCD
  48. void lcd_wcmd(unsigned char cmd)
  49. {
  50.         while(lcd_busy());
  51.         LCD_RS=0;
  52.         LCD_RW=0;
  53.         P0=cmd;
  54.         delayNOP();
  55.         LCD_EN=0;
  56.         LCD_EN=1;
  57. }
  58. //寫顯示數(shù)據(jù)到LCD
  59. void lcd_wdat(unsigned char dat)
  60. {
  61.         while (lcd_busy());
  62.         LCD_RS=1;
  63.         LCD_RW=0;
  64.         P0=dat;
  65.         delayNOP();
  66.         LCD_EN=0;
  67.         LCD_EN=1;
  68. }
  69. //LCD初始化設定
  70. void lcd_init()
  71. {
  72.         delayms(15);
  73.         lcd_wcmd(0x38);
  74.         delayms(5);
  75.         lcd_wcmd(0x38);
  76.         delayms(5);
  77.         lcd_wcmd(0x38);
  78.         delayms(5);
  79.         lcd_wcmd(0x0c);
  80.         delayms(5);
  81.         lcd_wcmd(0x06);
  82.         delayms(5);
  83.         lcd_wcmd(0x01);
  84.         delayms(5);
  85. }
  86. //設定顯示位置
  87. void lcd_pos(unsigned char pos)
  88. {
  89.         lcd_wcmd(pos|0x80);
  90. }
  91. //數(shù)據(jù)處理與顯示
  92. void show_value(unsigned char ad_data)
  93. {
  94.         dis[2]=ad_data/51;
  95.         dis[2]=dis[2]+0x30;
  96.         dis[3]=ad_data%51;
  97.         dis[3]=dis[3]*10;
  98.         dis[1]=dis[3]/51;
  99.         dis[1]=dis[1]+0x30;
  100.         dis[3]=ad_data%51;
  101.         dis[3]=dis[3]*10;
  102.         dis[0]=dis[3]/51;
  103.         dis[0]=dis[0]+0x30;
  104. }
  105. //啟動i2c
  106. void iic_start(void)
  107. {
  108.         SDA=1;
  109.         SCL=1;
  110.         delayNOP();
  111.         SDA=0;
  112.         delayNOP();
  113.         SCL=0;
  114. }
  115. //停止i2c
  116. void iic_stop(void)
  117. {
  118.         SDA=0;
  119.         SCL=1;
  120.         delayNOP();
  121.         SDA=1;
  122.         delayNOP();
  123.         SCL=0;
  124. }
  125. //初始化i2c
  126. void iicInit(void)
  127. {
  128.         SCL=0;
  129.         iic_stop();
  130. }
  131. //應答子程序
  132. void slave_ACK(void)
  133. {
  134.         SDA=0;
  135.         SCL=1;
  136.         delayNOP();
  137.         SCL=0;
  138.         SDA=1;
  139. }
  140. //非應答子程序
  141. void slave_NOACK(void)
  142. {
  143.         SDA=1;
  144.         SCL=1;
  145.         delayNOP();
  146.         SDA=0;
  147.         SCL=0;
  148.         SDA=0;
  149. }
  150. //檢查應答子程序
  151. void check_ACK(void)
  152. {
  153.         SDA=1;
  154.         SCL=1;
  155.         F0=0;
  156.         delayNOP();
  157.         if(SDA==1)
  158.                 F0=1;
  159.         SCL=0;
  160. }
  161. //發(fā)送1個字節(jié)
  162. void IICSendByte(unsigned char indata)
  163. {
  164.         unsigned char n=8;
  165.         while(n--)
  166.         {
  167.                 SDA=(bit)(indata &0x80);
  168.                 SCL=1;
  169.                 delayNOP();
  170.                 SCL=0;
  171.                 indata=indata<<1;
  172.         }
  173. }
  174. //接收一個字節(jié)
  175. unsigned char IICreceiveByte(void)
  176. {
  177.         unsigned char n=8;
  178.         unsigned char tdata=0;
  179.         while(n--)
  180.         {
  181.                 SDA=1;
  182.                 SCL=1;
  183.                 tdata=tdata<<1;
  184.                 if(SDA==1)
  185.                 tdata=tdata|0x01;
  186.                 else
  187.                 tdata=tdata&0xfe;
  188.                 SCL=0;
  189.         }
  190.         return(tdata);
  191. }
  192. //發(fā)送數(shù)據(jù)子程序
  193. void DAC_PCF8591(unsigned char controlbyte,unsigned char w_data)
  194. {
  195.         iic_start();
  196.         delayNOP();
  197.         IICSendByte(PCF8591_WRITE);
  198.         check_ACK();
  199.         IICSendByte(controlbyte&0x77);
  200.         check_ACK();
  201.         IICSendByte(w_data);
  202.         check_ACK();
  203.         iic_stop();
  204.         delayNOP();
  205.         delayNOP();
  206. }
  207. //A/D轉換
  208. void ADC_PCF8591(unsigned char controlbyte)
  209. {
  210.         unsigned char i=0;
  211.         iic_start();
  212.         IICSendByte(PCF8591_WRITE);
  213.         check_ACK();
  214.         IICSendByte(controlbyte);
  215.         check_ACK();
  216.         iic_start();
  217.         IICSendByte(PCF8591_READ);
  218.         check_ACK();
  219.         IICreceiveByte();
  220.         slave_ACK();
  221.         while(i<3)
  222.         {
  223.                 receivebuf[i++]=IICreceiveByte();
  224.                 slave_ACK();
  225.         }
  226.         receivebuf[3]=IICreceiveByte();
  227.         slave_NOACK();
  228.         iic_stop();
  229. }
  230. //主函數(shù)
  231. void main(void)
  232. {
  233.         unsigned char i;
  234.         delayms(10);
  235.         lcd_init();
  236.         lcd_pos(0);
  237.         for(i=0;i<16;i++)
  238.                 lcd_wdat(dis1[i]);
  239.         lcd_pos(0x40);
  240.                 for(i=0;i<16;i++)
  241.         lcd_wdat(dis2[i]);
  242.         while(1)
  243.         {
  244.                 iicInit();
  245.                 ADC_PCF8591(0x04);
  246.                 while(F0)
  247.                 {
  248.                         iicInit();
  249.                         ADC_PCF8591(0x04);
  250.                 }
  251.                 show_value(receivebuf[0]);
  252.                 lcd_pos(0x02);
  253.                 lcd_wdat(dis[2]);
  254.                 lcd_pos(0x04);
  255.                 lcd_wdat(dis[1]);
  256.                 lcd_wdat(dis[0]);
  257.                
  258.                 show_value(receivebuf[1]);
  259.                 lcd_pos(0x0b);
  260.                 lcd_wdat(dis[2]);
  261.                 lcd_pos(0x0d);
  262.                 lcd_wdat(dis[1]);
  263.                 lcd_wdat(dis[0]);
  264.                
  265.                 show_value(receivebuf[2]);
  266.                 lcd_pos(0x42);
  267.                 lcd_wdat(dis[2]);
  268.                 lcd_pos(0x44);
  269.                 lcd_wdat(dis[1]);
  270.                 lcd_wdat(dis[0]);
  271.                
  272.                 show_value(receivebuf[3]);
  273.                 lcd_pos(0x4b);
  274.                 lcd_wdat(dis[2]);
  275.                 lcd_pos(0x4d);
  276.                 lcd_wdat(dis[1]);
  277.                 lcd_wdat(dis[0]);
  278.                
  279.                 iicInit();
  280.                 DAC_PCF8591(0x40,receivebuf[0]);
  281.                
  282.                 while(F0)
  283.                 {        
  284.                         iicInit();
  285.                         DAC_PCF8591(0x40,receivebuf[0]);
  286.                 }
  287.         }
  288. }
復制代碼





ID:917199 發(fā)表于 2021-5-11 19:26
char code reserve[3]_at_0x3b;
這句不太對,你確定沒抄錯?
有code,后面很可能有很長一串缺失
ID:723431 發(fā)表于 2021-5-11 19:14
田所浩二單推人 發(fā)表于 2021-5-11 19:12
你那么大個延時函數(shù)哪兒去了

啊這,不好意思,沒粘全
ID:893765 發(fā)表于 2021-5-11 19:12
你那么大個延時函數(shù)哪兒去了

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美午夜一区 | 亚洲精品一| m豆传媒在线链接观看 | 日韩精品在线看 | 亚洲成人a v | 国色天香综合网 | 91精品国产一区二区三区香蕉 | 国产羞羞视频在线观看 | 99久久影院| 亚洲一二三区精品 | 精品久久久久久久久久久下田 | 日韩不卡一区二区三区 | 免费av播放| 欧美精品在线视频 | 国产高清久久久 | 国产一区二区三区不卡av | 91青青草视频 | 91麻豆精品国产91久久久更新资源速度超快 | 国产成视频在线观看 | 亚洲久久久 | 成人免费看黄 | 一区二区三区在线电影 | 日本午夜在线视频 | av一二三区 | 亚洲国产精品第一区二区 | 久综合 | 福利视频一区二区三区 | 天天成人综合网 | 99亚洲精品视频 | 日韩欧美中文字幕在线视频 | 国产在线观看一区二区 | 福利片在线观看 | www.99热 | 国产精品视频一二三区 | 欧美日韩在线播放 | 欧美性受xxx | 婷婷久久网 | 九九久久国产精品 | 欧美日一区二区 | 国产精品不卡 | av日韩高清 |