找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1740|回复: 15
收起左侧

视频教程照搬的单片机程序编译错误,为啥会这样啊?

[复制链接]
ID:288012 发表于 2019-3-24 18:42 来自手机 | 显示全部楼层 |阅读模式
大神帮看看吧!完全是按视频上讲的写的代码,为啥视频上的可以,到我这就出问题了?
QQ*
QQ*
回复

使用道具 举报

ID:234075 发表于 2019-3-24 22:44 | 显示全部楼层
重复定义!把你的程序开始部分发出来看看
回复

使用道具 举报

ID:337069 发表于 2019-3-24 23:27 | 显示全部楼层
重定义,看看包含的头文件
回复

使用道具 举报

ID:424598 发表于 2019-3-24 23:35 来自手机 | 显示全部楼层
放头文件没
回复

使用道具 举报

ID:164602 发表于 2019-3-25 08:38 | 显示全部楼层
把头文件去掉就好了。
这样的重复定义问题,都是这个原因
回复

使用道具 举报

ID:288012 发表于 2019-3-25 09:35 来自手机 | 显示全部楼层
zhb2004xp 发表于 2019-3-24 22:44
重复定义!把你的程序开始部分发出来看看

开始部分是这样的
`%E7`HGSL%O3(N2`0SDH~JK.png
回复

使用道具 举报

ID:426861 发表于 2019-3-25 10:31 | 显示全部楼层
重复定义,找到所有提示报警的定义都是在什么地方定义了
回复

使用道具 举报

ID:490426 发表于 2019-3-25 10:33 | 显示全部楼层
将你的头文件新建一个文件放入,然后指定文件的寻找地址。
回复

使用道具 举报

ID:288012 发表于 2019-3-25 12:36 来自手机 | 显示全部楼层
HC6800-ES-V2.0 发表于 2019-3-25 08:38
把头文件去掉就好了。
这样的重复定义问题,都是这个原因

还是不行啊,问题更多啦
回复

使用道具 举报

ID:288012 发表于 2019-3-25 12:37 来自手机 | 显示全部楼层
xujiabin 发表于 2019-3-25 10:33
将你的头文件新建一个文件放入,然后指定文件的寻找地址。

不是很懂,具体如何操作
回复

使用道具 举报

ID:432823 发表于 2019-3-25 13:18 | 显示全部楼层
这是头文件包含有问题,一是无,二是重复定义,三是编译器路径中无头文件。
回复

使用道具 举报

ID:288012 发表于 2019-3-25 17:00 | 显示全部楼层
yaoji123 发表于 2019-3-25 13:18
这是头文件包含有问题,一是无,二是重复定义,三是编译器路径中无头文件。

具体如何解决,为什么会出现这种问题,编别的程序就没有
回复

使用道具 举报

ID:432823 发表于 2019-3-25 20:12 | 显示全部楼层
看不到完整程序无法帮你处理
回复

使用道具 举报

ID:288012 发表于 2019-3-26 21:47 | 显示全部楼层
yaoji123 发表于 2019-3-25 20:12
看不到完整程序无法帮你处理

  1. #include<reg52.h>
  2. #include<intrins.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. sbit wela=P2^7;
  6. sbit dula=P2^6;
  7. void delay(uint z)
  8. {
  9.         uint x,y;
  10.          for(x=z;x>0;x--)
  11.                  for(y=0;y<110;y++);
  12. }

  13. uchar temp,t0,t1,bai,shi,ge,flag,flag1;
  14.   uint shu;

  15. uchar code table[]={
  16. 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,
  17. 0x77,0x7c,0x39,0x5e,0x79,0x71
  18.                   0x76,0x79,0x38,0x3f,0                                         //hello ????
  19. }; ///??????Ч???0~15

  20. void init()        ///?????
  21. {
  22. shu=432;
  23. temp=0xfe;
  24. P1=temp;
  25. TMOD=0x11;///????????????
  26. TH0=(65536-50000)/256;
  27. TL0=(65536-50000)%256;
  28. TH1=(65536-50000)/256;
  29. TL1=(65536-50000)%256;
  30. EA=1;
  31. ET0=1;
  32. ET1=1;
  33. TR0=1;
  34. TR1=1;//????????
  35. }

  36. void timer0() interrupt 1
  37. {
  38.         TH0=(65536-50000)/256;
  39.         TL0=(65536-50000)%256;       
  40.         t0++;
  41.         if(flag!=1)
  42.         {
  43.                 if(t0==10)
  44.         {
  45.                 t0=1;
  46.                 temp=_crol_(temp,1);
  47.                 P1=temp;
  48.         }       
  49.         }
  50.    else
  51.            {
  52.                 if(t0%4==0)
  53.                                 P1=~P1;
  54.                 if(t0==60)
  55.                 {        TR0=0;
  56.                         P1=0xff;
  57.                         flag1=1;
  58.                         }               
  59.         }
  60. }

  61. void timer1() interrupt 3
  62. {
  63.         TH1=(65536-50000)/256;
  64.         TL1=(65536-50000)%256;       
  65.         t1++;
  66.         if(t1==2)
  67.         {
  68.                 t1=0;
  69.                 shu        -- ;
  70.                 bai=shu/100;
  71.                 shi=shu%100/10;
  72.                 ge=shu%10;
  73.                 if(shu==398)
  74.                         {
  75.                                 TR0=0;
  76.                                 TH0=(65536-50000)/256;
  77.                                 TL0=(65536-50000)%256;
  78.                                 TR0=1;
  79.                                 flag=1;
  80.                                 t0=0;
  81.                                 P1=0xff;///???ALL
  82.                                 TR1=0;
  83.                         }
  84.         }
  85. }

  86. void display(uchar aa,uchar bb,uchar cc,uchar bai,uchar shi,uchar ge)
  87. {
  88.         dula=1;P0=table[aa];dula=0;P0=0xff;wela=1;P0=0xfe;wela=0;delay(1);
  89.                 dula=1;P0=table[bb];dula=0;P0=0xff;wela=1;P0=0xfd;wela=0;delay(1);
  90.                 dula=1;P0=table[cc];dula=0;P0=0xff;wela=1;P0=0xfb;wela=0;delay(1);

  91.         dula=1;P0=table[bai];dula=0;P0=0xff;wela=1;P0=0xf7;wela=0;delay(1);
  92.                 dula=1;P0=table[bai];dula=0;P0=0xff;wela=1;P0=0xef;wela=0; delay(1);
  93.                         dula=1;P0=table[bai];dula=0;P0=0xff;wela=1;P0=0xdf;wela=0; delay(1);
  94. }

  95. void main(void)
  96. {  
  97.         init();
  98.         while(1)
  99.         {
  100.          if(flag1!=1)
  101.         display(7,6,5,bai,shi,ge);
  102.         else
  103.         display(16,17,18,18,19,20);       
  104.         }       
  105. }

复制代码
回复

使用道具 举报

ID:288012 发表于 2019-3-26 21:49 | 显示全部楼层
yaoji123 发表于 2019-3-25 20:12
看不到完整程序无法帮你处理

下面这个是完整程序,大神帮我看看吧

  1. #include<reg52.h>
  2. #include<intrins.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. sbit wela=P2^7;
  6. sbit dula=P2^6;
  7. void delay(uint z)
  8. {
  9.         uint x,y;
  10.          for(x=z;x>0;x--)
  11.                  for(y=0;y<110;y++);
  12. }

  13. uchar temp,t0,t1,bai,shi,ge,flag,flag1;
  14.   uint shu;

  15. uchar code table[]={
  16. 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,
  17. 0x77,0x7c,0x39,0x5e,0x79,0x71
  18.                   0x76,0x79,0x38,0x3f,0                                         //hello ????
  19. }; ///??????Ч???0~15

  20. void init()        ///?????
  21. {
  22. shu=432;
  23. temp=0xfe;
  24. P1=temp;
  25. TMOD=0x11;///????????????
  26. TH0=(65536-50000)/256;
  27. TL0=(65536-50000)%256;
  28. TH1=(65536-50000)/256;
  29. TL1=(65536-50000)%256;
  30. EA=1;
  31. ET0=1;
  32. ET1=1;
  33. TR0=1;
  34. TR1=1;//????????
  35. }

  36. void timer0() interrupt 1
  37. {
  38.         TH0=(65536-50000)/256;
  39.         TL0=(65536-50000)%256;       
  40.         t0++;
  41.         if(flag!=1)
  42.         {
  43.                 if(t0==10)
  44.         {
  45.                 t0=1;
  46.                 temp=_crol_(temp,1);
  47.                 P1=temp;
  48.         }       
  49.         }
  50.    else
  51.            {
  52.                 if(t0%4==0)
  53.                                 P1=~P1;
  54.                 if(t0==60)
  55.                 {        TR0=0;
  56.                         P1=0xff;
  57.                         flag1=1;
  58.                         }               
  59.         }
  60. }

  61. void timer1() interrupt 3
  62. {
  63.         TH1=(65536-50000)/256;
  64.         TL1=(65536-50000)%256;       
  65.         t1++;
  66.         if(t1==2)
  67.         {
  68.                 t1=0;
  69.                 shu        -- ;
  70.                 bai=shu/100;
  71.                 shi=shu%100/10;
  72.                 ge=shu%10;
  73.                 if(shu==398)
  74.                         {
  75.                                 TR0=0;
  76.                                 TH0=(65536-50000)/256;
  77.                                 TL0=(65536-50000)%256;
  78.                                 TR0=1;
  79.                                 flag=1;
  80.                                 t0=0;
  81.                                 P1=0xff;///???ALL
  82.                                 TR1=0;
  83.                         }
  84.         }
  85. }

  86. void display(uchar aa,uchar bb,uchar cc,uchar bai,uchar shi,uchar ge)
  87. {
  88.         dula=1;P0=table[aa];dula=0;P0=0xff;wela=1;P0=0xfe;wela=0;delay(1);
  89.                 dula=1;P0=table[bb];dula=0;P0=0xff;wela=1;P0=0xfd;wela=0;delay(1);
  90.                 dula=1;P0=table[cc];dula=0;P0=0xff;wela=1;P0=0xfb;wela=0;delay(1);

  91.         dula=1;P0=table[bai];dula=0;P0=0xff;wela=1;P0=0xf7;wela=0;delay(1);
  92.                 dula=1;P0=table[bai];dula=0;P0=0xff;wela=1;P0=0xef;wela=0; delay(1);
  93.                         dula=1;P0=table[bai];dula=0;P0=0xff;wela=1;P0=0xdf;wela=0; delay(1);
  94. }

  95. void main(void)
  96. {  
  97.         init();
  98.         while(1)
  99.         {
  100.          if(flag1!=1)
  101.         display(7,6,5,bai,shi,ge);
  102.         else
  103.         display(16,17,18,18,19,20);       
  104.         }       
  105. }

复制代码
回复

使用道具 举报

ID:490426 发表于 2019-3-28 13:08 | 显示全部楼层
wswymy 发表于 2019-3-25 12:37
不是很懂,具体如何操作

在你的工程文件里新建一个文件,将头文件放入,然后指定头文件寻找路径。或者打开头文件加入#ifndef  #define  #endif
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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