找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5161|回复: 2
打印 上一主题 下一主题
收起左侧

求助编译错误error C141: syntax error near 'void', expected '__asm'

[复制链接]
跳转到指定楼层
楼主
ID:978933 发表于 2021-11-7 16:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
18B20.c(128): error C141: syntax error near 'void', expected '__asm'
新手求助,谢谢大家
单片机源程序如下:
  1. #include <reg52.h>

  2. sbit RS=P2^0;   
  3. sbit RW=P2^1;
  4. sbit E=P1^2;
  5. sbit DQ=P1^4;

  6. int readtemp=0;
  7. unsigned char str[]={"0123456789"};
  8. unsigned char s[]={"Temperature:"};



  9. void delay(unsigned int n)
  10. {
  11.   unsigned i=0,j=0;
  12.     for(i=0;i<n;i++)
  13.     {
  14.       for(j=0;j<120;j++);
  15.     }
  16. }

  17. void Init_DS18B20(void)         //3õê¼»ˉ
  18. {
  19.   unsigned char x=0;
  20.   DQ = 1;         
  21.   delay(8);  
  22.   DQ = 0;         
  23.   delay(80);
  24.   DQ = 1;         
  25.   delay(14);
  26.   x=DQ;            
  27.   delay(20);
  28. }               

  29. unsigned char ReadOneChar(void)
  30.   {
  31.     unsigned char i=0;
  32.     unsigned char dat = 0;
  33.     for (i=8;i>0;i--)
  34.     {
  35.       DQ = 0;
  36.       dat>>=1;
  37.       DQ = 1;
  38.       if(DQ)
  39.       dat|=0x80;
  40.       delay(4);
  41.      }
  42.      return(dat);
  43.   }
  44.         
  45. void WriteOneChar(unsigned char dat)
  46.         
  47. {
  48.   unsigned char i=0;
  49.   for (i=8; i>0; i--)
  50.   {
  51.    DQ = 0;           
  52.    DQ = dat&0x01;
  53.    if(DQ){delay(1);DQ=1;}
  54.          else{delay(5);DQ = 1;}
  55.    dat>>=1;
  56.    }
  57. }

  58. unsigned char ReadTemperature(void)//¶áζè
  59. {                                                         
  60. unsigned char a=0,b=0;
  61. unsigned int temp=0;
  62. Init_DS18B20();
  63. WriteOneChar(0xCC);  
  64. WriteOneChar(0x44);  
  65. delay(100);    //
  66. Init_DS18B20();
  67. WriteOneChar(0xCC);  
  68. WriteOneChar(0xBE);  
  69. delay(100);
  70. a=ReadOneChar();   
  71. b=ReadOneChar();     
  72. temp=((b*256+a)>>4);
  73. return(temp);
  74. }



  75. void writedat(unsigned char dat)
  76. {
  77.   RS=1;
  78.         RW=0;
  79.         E=0;  
  80.         P1=dat;
  81.         delay(5);
  82.         E=1;
  83.         E=0;
  84. }

  85. void writecom(unsigned char com)//D′Ãüáîoˉêy
  86. {
  87.   RS=0;  
  88.         RW=0;  
  89.         E=0;   
  90.         P1=com;
  91.         delay(5);
  92.         E=1;
  93.         E=0;
  94. }



  95. //********************************************************
  96. void lcd_send(unsigned char i,unsigned char j,unsigned char str[],unsigned char n)
  97. {
  98.     //??:????i,??j,????,??????n
  99.     unsigned char x=0;
  100.     if(i==1)
  101.     {writecom(0x80+j);}
  102.     else
  103.     {writecom(0x80+0x40+j);}
  104.     for(x=0;x<n;x++)
  105.     {
  106.          writedat(str[x]);
  107.         delay(150);
  108.     }
  109. //********************************************************



  110. void initlcd()//3õê¼»ˉLCD1602
  111. {
  112.   writecom(0x38);  
  113.         writecom(0x0c);  
  114.         writecom(0x06);
  115.         writecom(0x01);
  116. }

  117. void display()//ÏÔê¾oˉêy
  118. {
  119.         unsigned int temp0=0,temp1=0,temp2=0,i=0;
  120.         temp0=readtemp/100;
  121.         temp1=(readtemp%100)/10;
  122.         temp2=readtemp%10;
  123.         writecom(0x80);  
  124.         delay(5);            
  125.         while(s[i]!='\0')
  126.         {
  127.           writedat(s[i]);
  128.                 delay(5);
  129.                 i++;
  130.         }
  131.         
  132.         writecom(0x80+0x40+5);  
  133.         delay(5);
  134.         writedat(str[temp0]);
  135.         delay(5);           
  136.         writedat(str[temp1]);
  137.         delay(5);            
  138.         writedat(str[temp2]);
  139.         delay(5);         
  140.         writedat(0xDF);
  141.         delay(5);         
  142.         writedat('C');
  143.         delay(5);           
  144. }

  145. void main()
  146. {
  147.         initlcd();
  148.         while(1)
  149.         {
  150.          readtemp=ReadTemperature();
  151.          display();
  152.         }
  153. }
复制代码


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:883242 发表于 2021-11-7 18:26 | 只看该作者
lcd_send这个函数缺了最后结束的花括号。
回复

使用道具 举报

板凳
ID:933089 发表于 2021-11-7 22:09 | 只看该作者
在123行底下加上一个反括号 }
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表