找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2665|回复: 5
收起左侧

单片机C语言编译错误error C129: missing ';' before 'LED1'

[复制链接]
ID:974311 发表于 2021-10-24 15:32 | 显示全部楼层 |阅读模式
怎么改都有这个错误DS1302.c(20): error C129: missing ';' before 'LED1'
单片机源程序如下:
  1. #include <reg52.h>
  2. #include <intrins.h>  
  3. #define unsigned char u8

  4. sbit RS=P2^0;   
  5. sbit RW=P2^1;
  6. sbit E=P1^2;
  7. sbit T_RST=P1^3;
  8. sbit T_CLK=P1^7;
  9. sbit T_IO=P2^3;


  10. sbit s7=P3^0;
  11. sbit s6=P3^1;
  12. sbit s5=P3^2;
  13. sbit s4=P3^3;



  14. u8 LED1,LED2,LED4,LED5,LED7,LED8;
  15. u8 time1,time2,time4,time5,time7,time8;

  16. u8 select_function;

  17. unsigned char timechar[]={"TIME:"};
  18. unsigned char datechar[]={"DATE:"};

  19. void Timer0Init()
  20. {
  21.         TMOD=0X01;
  22.         TH0=0XD8;
  23.         TL0=0XF0;
  24.         ET0=1;
  25.         EA=1;
  26.         TR0=1;
  27. }


  28. void time_calculate()
  29. {
  30.         time1++;
  31.         if(time1==60)
  32.         {
  33.                 time1=0;
  34.                 time2++;
  35.         }
  36.         if(time2==60)
  37.         {
  38.                 time2=0;
  39.                 time3++;
  40.         }
  41.         if(time3==24)
  42.         {
  43.                 time1=0;
  44.                 time2=0;
  45.                 time3++;
  46.         }
  47. }
  48. //*********************************************************************************




  49. void  WriteB(unsigned char  dat)
  50. {
  51.    unsigned char  i;
  52.    for(i=8; i>0; i--)
  53.   {
  54.         T_IO=dat&0x01;
  55.         T_CLK = 1;
  56.         T_CLK = 0;
  57.         dat = dat >> 1;
  58.    }
  59. }

  60. unsigned char  ReadB(void)
  61. {
  62.     unsigned char i,readdat=0;
  63.     for(i=8; i>0; i--)
  64.     {
  65.         readdat=readdat>>1;
  66.         if(T_IO)
  67.         {
  68.             readdat|=0x80;
  69.         }
  70.         T_CLK = 1;
  71.         T_CLK = 0;            
  72.     }
  73.     return(readdat);
  74. }

  75. void  W1302(unsigned char address,unsigned char dat)
  76. {
  77.     T_RST = 0;
  78.     T_CLK = 0;
  79.     _nop_();
  80.     _nop_();
  81.     T_RST = 1;
  82.     _nop_();
  83.     _nop_();
  84.     WriteB(address);         
  85.     WriteB(dat);           
  86.     T_CLK = 1;
  87.     T_RST =0;
  88. }

  89. unsigned char  R1302(unsigned char  address)
  90. {
  91.     unsigned char dat=0;
  92.     T_RST = 0;
  93.     T_CLK = 0;
  94.     T_RST = 1;
  95.     WriteB(address);           
  96.     dat = ReadB();           
  97.     T_CLK = 1;
  98.     T_RST =0;
  99.     return(dat);
  100. }

  101. void delay(unsigned int n)
  102. {
  103.   unsigned i=0,j=0;
  104.     for(i=0;i<n;i++)
  105.     {
  106.       for(j=0;j<120;j++);
  107.     }
  108. }
  109. void writedat(unsigned char dat)
  110. {
  111.   RS=1;
  112.     RW=0;  
  113.     E=0;   
  114.     P0=dat;
  115.     delay(5);
  116.     E=1;
  117.     E=0;
  118. }

  119. void writecom(unsigned char com)
  120. {
  121.   RS=0;
  122.     RW=0;  
  123.     E=0;  
  124.     P0=com;
  125.     delay(5);
  126.     E=1;
  127.     E=0;
  128. }
  129. void Initlcd()
  130. {
  131.     writecom(0x38);  
  132.     writecom(0x0c);  
  133.     writecom(0x06);  
  134.     writecom(0x01);  
  135. }


  136. void keypros()
  137. {
  138.         if(s6==0)
  139.         {
  140.                 delay(10);
  141.           if(s6==0)
  142.            {
  143.                    select_function++;
  144.                    if(select_function==4)select_function=0;
  145.                    if(select_function!=0)TRO=0;
  146.            }while(!s6);
  147.           if(select_function==0)TRO=1;
  148.    }
  149.         /**********************************************************/
  150.         if(select_function==1)
  151.         {
  152.                 if(s5==0)
  153.                 {
  154.                         time1++;
  155.                         if(time1>=60)time1=0
  156.                         }while(!s5);
  157.                 if(s4==0)
  158.                 {
  159.                         if(time1==0)time1=60;
  160.                         time1--;
  161.                 }while(!s4);
  162.         }
  163.         /**********************************************************/
  164. if(select_function==2)
  165.         {
  166.                 if(s5==0)
  167.                 {
  168.                         time2++;
  169.                         if(time2>=60)time2=0
  170.                         }while(!s5);
  171.                 if(s4==0)
  172.                 {
  173.                         if(time2==0)time2=60;
  174.                         time2--;
  175.                 }while(!s4);
  176.         }
  177. /**********************************************************/
  178.         if(select_function==3)
  179.         {
  180.                 if(s5==0)
  181.                 {
  182.                         time3++;
  183.                         if(time3>=24)time3=0
  184.                         }while(!s5);
  185.                 if(s4==0)
  186.                 {
  187.                         if(time3==0)time3=24;
  188.                         time3--;
  189.                 }while(!s4);
  190.         }
  191.         LED1=time1%10;
  192.         LED1=time1/10;
  193.         
  194.         LED2=time2%10;
  195.         LED2=time2/10;
  196.         
  197.         LED3=time3%10;
  198.         LED3=time3/10;
  199.         
  200. }
  201. //************************ÖD¶Ï£¨Ã¿¸ô10msÖD¶Ïò»′Σ¬Ë¢DÂ걼䣩***********
  202. void Timer0() interrupt 1
  203. {
  204.         static unsigned int k=0;
  205.         TH0=0xD8;
  206.         TL0=0xF0;
  207.         k++;
  208.         if(k==50)
  209.         {
  210.                 k=0;
  211.                 timer_calculate();
  212.         }
  213. }



  214. //*********************************************************************
  215. void display()
  216. {
  217.    lcd_pos(0x07);
  218.          lcdwriteData(LED8+'0');
  219.    lcd_pos(0x08);
  220.          lcdwriteData(LED7+'0');
  221.          lcd_pos(0x09);
  222.          lcewriteData('-');
  223. /*****************************/
  224.          lcd_pos(0x0A);
  225.          lcdwriteData(LED5+'0');
  226.    lcd_pos(0x0B);
  227.          lcdwriteData(LED4+'0');
  228.          lcd_pos(0x0C);
  229.          lcewriteData('-');
  230. /****************************/
  231.          lcd_pos(0x0D);
  232.          lcdwriteData(LED2+'0');
  233.    lcd_pos(0x0E);
  234.          lcdwriteData(LED1+'0');
  235.          lcd_pos(0x0F);
  236.          lcewriteData('-');
  237.          
  238. }
  239. //***********************************************************************




  240. //***********************************************************************

  241. void main()
  242. {
  243.     Initlcd();
  244.     show_string(display);
  245.         Time0Init();
  246.         LED1=0;
  247.         LED2=0;
  248.         LED3=0;
  249.         LED4=0;
  250.         LED5=0;
  251.         LED6=0;
  252.         LED7=0;
  253.         LED8=0;
  254.         select_function=0;
  255.         time1=0;
  256.         time2=0;
  257.         time3=0;
  258.         
  259.         show_string(display)

  260.     while(1)
  261.     {
  262.                         keypros();
  263.       display();
  264.     }
  265. }
复制代码

回复

使用道具 举报

ID:973695 发表于 2021-10-24 22:08 | 显示全部楼层
第3行#define unsigned char u8  用错了,   改为  typedef unsigned char u8;  
回复

使用道具 举报

ID:916650 发表于 2021-10-24 22:22 | 显示全部楼层
因该是 #define u8 unsigned char才对
回复

使用道具 举报

ID:304725 发表于 2021-10-24 23:08 | 显示全部楼层
双击错误跳到程序错误处
回复

使用道具 举报

ID:624769 发表于 2021-10-25 01:05 | 显示全部楼层
如果,你不愿意用typedef , 非要用 define 的话,

要这样写:
#define u8      unsigned char

当然,正确的用法,应该是typedef,用define的话,以后,会有很多吃苦头的地方。
回复

使用道具 举报

ID:908826 发表于 2021-10-25 08:02 | 显示全部楼层
#define u8 unsigned char   应该是这么写,你的顺序错了,导致u8并没有实现宏定义
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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