找回密码
 立即注册

QQ登录

只需一步,快速开始

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

51单片机动态显示数码管程序的问题error C141: syntax error near '=', expected '...

[复制链接]
ID:576177 发表于 2019-7-9 11:17 | 显示全部楼层 |阅读模式
这是我写的动态显示数码管的程序,但是却报错如下:
事牍芟允?c(37): error C141: syntax error near '=', expected '__asm'
我找了一下,发现是 smg=smgduan;这出问题了 ,想问一下 宏定义的smg是不能给它赋值吗?
单片机源程序如下:
  1. #include "reg52.h"

  2. typedef unsigned char u8;
  3. typedef unsigned int u16;
  4. u8 code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
  5.            0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//显示0~F的值,code值的是将smgduan[]存放在ROM中,而不是RAM中,这样可以节约资源
  6. #define smg P0;         
  7. sbit LSA=P2^2;
  8. sbit LSB=P2^3;
  9. sbit LSC=P2^4;
  10. void delay100us(void)   //误差 0us
  11. {
  12.     unsigned char a,b;
  13.     for(b=1;b>0;b--)
  14.         for(a=47;a>0;a--);
  15. }
  16. void smgshow(u8 i)
  17. {
  18. switch(i)
  19. {
  20.   case 0:LSC=0;LSB=0;LSA=0;break;
  21.   case 1:LSC=0;LSB=0;LSA=1;break;
  22.   case 2:LSC=0;LSB=1;LSA=0;break;
  23.   case 3:LSC=0;LSB=1;LSA=1;break;
  24.   case 4:LSC=1;LSB=0;LSA=0;break;
  25.   case 5:LSC=1;LSB=0;LSA=1;break;
  26.   case 6:LSC=1;LSB=1;LSA=0;break;
  27.   case 7:LSC=1;LSB=1;LSA=1;break;
  28. }
  29. smg=smgduan[i];
  30. delay100us();
  31. smg=0x00;
  32. }

  33. void delay10ms(void)   //误差 0us
  34. {
  35.     unsigned char a,b,c;
  36.     for(c=1;c>0;c--)
  37.         for(b=38;b>0;b--)
  38.             for(a=130;a>0;a--);
  39. }

  40. void main()
  41. {
  42. u8 i;
  43. while(1)
  44. {
  45.   for(i=0;i<=7;i++)
  46.   {
  47.    smgshow(i);
  48.    
  49.   }
  50. }
  51. }
复制代码
回复

使用道具 举报

ID:56665 发表于 2019-7-9 16:02 | 显示全部楼层
smgduan你定义的是数组
回复

使用道具 举报

ID:576177 发表于 2019-7-9 16:09 | 显示全部楼层
我知道了(笑哭)  #define smg P0;    这个我写错了 应该是#define smg P0  没有分号
回复

使用道具 举报

ID:155507 发表于 2019-7-9 19:06 | 显示全部楼层
#define 宏定义 错误 不需要加 ;
#define smg P0;   
要改
#define smg P0
回复

使用道具 举报

ID:581665 发表于 2019-7-10 16:08 | 显示全部楼层
C的格式错误,宏定义后没有 “  ;  ”
回复

使用道具 举报

ID:524818 发表于 2019-7-10 22:59 | 显示全部楼层
keil错误提示不能按字义去分析,好多时候就是语法错误,比如少了个或是多了个分号
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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