打印

51单片机求助~

[复制链接]
1397|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
L的世界|  楼主 | 2013-7-26 15:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

刚开始学习51单片机  要求是
同时用两个定时器控制蜂鸣器发声,定时器0控制频率,定时器1控制同个频率持续的时间,间隔300ms依次输出1,10,50,100,200,400,800,
1k(hz)的方波。
我的蜂鸣器是p1.2口
#include <reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar num,b;
uint count;
sbit speak=P1^2;
uint code freq[]={1000,100,20,10,5,1}
void main()
{
        EA=1;
        ET0=1;
        ET1=1;
        TMOD=0x11;
        TH0=(65535-500)/256;
        TL0=(65535-500)%256;
        TH1=(65535-50000)/256;
        TL1=(65535-50000)%256;
        TR0=1;
        TR1=1;
        while(1);
}

void speak_ferq() interrupt 1
{
        TH0=(65535-500)/256;
        TL0=(65535-500)%256;
        count++;
        if(count==freq[num])
        {
                speak=!speak;
        }
}

void speak_kg() interrupt 3
{
        TH1=(65535-50000)/256;
        TL1=(65535-50000)%256;
        b++;
        if(b==6)
        {
                TR0=!TR0;
                num++;
                if(num==12);
                {
                        num=0;
                }
        }
}

提示信息
PROJECT2.C(19): error C231: 'TR0': redefinition
PROJECT2.C(20): error C231: 'TR1': redefinition
PROJECT2.C(20): error C231: 'TR1': redefinition
PROJECT2.C(21): error C141: syntax error near 'while'
PROJECT2.C(21): error C141: syntax error near '1'

我试着看了下 头文件 TR0 和TR1 的定义正确 while 附件的语法错误还没找到。。。。。。:L

相关帖子

沙发
yunan0808| | 2013-7-26 15:24 | 只看该作者
我帮你调试好了,是你这里少个分号uint code freq[]={1000,100,20,10,5,1}

使用特权

评论回复
板凳
南宫云明| | 2013-7-26 15:26 | 只看该作者
uint code freq[]={1000,100,20,10,5,1}
少一个分号!!!

使用特权

评论回复
地板
L的世界|  楼主 | 2013-7-26 15:35 | 只看该作者
恩  解决了~谢谢 上面两位~。。 少了分号 我在while(1)附件找了半天:dizzy:

使用特权

评论回复
5
NE5532| | 2013-7-26 21:21 | 只看该作者
L的世界 发表于 2013-7-26 15:35
恩  解决了~谢谢 上面两位~。。 少了分号 我在while(1)附件找了半天

当编译器乱报的时候,就应该怀疑是不是掉分号了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

2

帖子

1

粉丝