【ppe溯源码系统】【原图网站源码】【vertx web 源码】蜂鸣器源码keil_蜂鸣器程序keil

时间:2024-12-28 19:34:39 来源:涨停 源码 分类:百科

1.为什么keil4编译蜂鸣器程序是蜂鸣l蜂提示TEXT1.C(8): error C141: syntax error near 'sbit'
2.使用51单片机蜂鸣器播放音乐 求keil程序

蜂鸣器源码keil_蜂鸣器程序keil

为什么keil4编译蜂鸣器程序是提示TEXT1.C(8): error C141: syntax error near 'sbit'

       不清楚这个ADCU是什么单片机,不过你要看清楚,器源人家是码k鸣器ppe溯源码系统不是支持这种接口宏定义,就算支持接口宏定义,程序是蜂鸣l蜂原图网站源码不是也像单片机一样这样定义的,会不会是器源vertx web 源码其他方式定义的。如果同一样,码k鸣器那么请把 第七行 重新删除一遍,程序很可能里面存在非法字符。蜂鸣l蜂

使用单片机蜂鸣器播放音乐 求keil程序

       //主程序查音符码,器源将不同的码k鸣器初值装入定时器,定时器每中断一次,程序P3.7取反一次,蜂鸣l蜂支付聚合 源码形成不同频率的器源方波

       //代表低音哆 代表高音哆 1代表中音哆

       //代表低音来 代表高音来 2代表中音来,是码k鸣器katago围棋源码不是翻译乐谱很方便

       #include<reg.h>

       sbit SPK = P3^7; //P3.7外接扬声器,可以改成你所说的P1^5

       #define uint unsigned int;

       #define uchar unsigned char;

       uint x,y;

       uint i,j,k;

       //以下是根据歌谱转来的音乐代码 3代表中音咪 1个全音被分成4个1/4 音符

       //小燕子第一句 3,5,,6,5,5,5,5, 是高音哆 ,后面4个5,是因为这个音节占4拍

       uchar code MUSIC[]={ 3,5,,6,5,5,5,5, 3,5,6,,5,5,5,5, ,,,,,,,, ,,6,,5,5,5,5, 3,3,5,6,6,5,6, ,,,5,6,6,6,6, 3,3,1,1,2,2,2,2,2,

        2,2,2,3,5,5,5,5, ,,2,3,5,5,5,5, 2,1,,1,,,,, 0,0,0,0,,,1,1, ,,,,1,1,1,1, 5,5,6,6,4,4,3,3, 2,2,2,2,2,2,5,5, 5,5,2,2,4,4,3,3, 2,2,1,2,4,4,4,4,

        ,,1,1,2,2,4,4, 2,1,,1,,,,, ,,,,,,,, ,,,,,,,, 0,0,5,5,5,5,0,0, 5,5,5,5,4,4,4,4,

        5,5,5,5,2,2,2,2, 2,2,5,5,4,4 ,4,4, ,,1,1,2,2,2,2, 4,4,2,2,2,2,4,4, 5,5,5,5,5,5,6,6, ,,,,6,6,,,

        ,,6,6,5,5,5,5, 5,5,6,6,5,5,4,4, 2,2,2,2,2,2,5,5, 5,5,2,2,4,4,3,3, 2,2,1,2,4,4,4,4, ,,1,1,2,2,4,4,

        2,1,,1,,,,, ,,,,,,,, 5,5,6,6,5,5,6,6, 5,5,4,4,5,5,5,5, 1,1,2,2,1,1,2,2, ,,,,1,1,1,1,

        5,5,6,6,5,5,6,6, ,,6,6,5,5,5,5, 1,1,2,2,1,1,2,2, ,,,,1,1,1,1, 5,5,6,6,5,5,4,4, 5,5,5,5,1,1,2,2, ,,,,1,1,1,1,

        5,5,6,6,5,5,5,5, 1,1,2,2,1,1,1,1, 5,5,6,6,5,5,5,5, 1,1,2,2,1,1,1,1, 5,5,5,5,1,1,1,1, 5,5,5,5,1,1,1,1, 5,5,5,5,1,1,5,5,

        1,1,5,5,1,1,5,5, 1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1, 0,0,1,1,1,1,0,0, 5,5,5,5,4,4,4,4, 5,5,5,5,2,2,2,2, 2,2,5,5,4,4,4,4,

        6,6,1,1,2,2,2,2, 4,4,2,2,2,2,4,4, 5,5,5,5,5,5,6,6, ,,,,6,6,,, ,,6,6,5,5,5,5, 5,5,6,6,5,5,4,4, 2,2,2,2,2,2,5,5,

        5,5,2,2,4,4,3,3, 2,2,1,,4,4,4,4, ,,1,1,2,2,4,4, 4,4,6,6,5,5,5,5, 5,5,5,5,5,5,5,5, 6,6,6,6,5,5,5,5};

       uchar code table[] = { 0,0xfc,0xfc,0xfd,0xfd,0xfd,0xfd,0xfe,0,0,0, //定时半周期的初始值中音 4 5 高8位

       //三个0是补位码,为了使表格整齐,便于按规律查询 首个0是休止符个

        0xf8,0xf9,0xfa,0xfa,0xfb,0xfb,0xfc,0,0,0, //低音1 2 3 4 5 高8位 个

        0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xff, //高音1 2 3 4 5 高8位 7个

        0,0x,0xad,0,0x,0x,0xc8,0x,0,0,0, //中音 4 5 低8位 个

        0x,0x,0x,0x,0x,0x,0x0c,0 ,0,0, //低音1 2 3 4 5 6 7低8位个

        0x,0x,0x,0x9a,0xc1,0xe4,0x}; //高音1 2 3 4 5 6 7低8位 7个

       void delay(i) //晶振MHZ时延时1ms

       {

        for(j=i;j>0;j--)

        for(k=;k>0;k--);

       }

       void TIM0_ISR() interrupt 1

       {

        SPK=!SPK;//定时取反,形成方波

        TH0=table[x]; //重新载入定时半周期的初始值

        TL0=table[x+];//为什么加 ++7=

        }

        void main(void)

        {

        TMOD|=0x;

        EA=1;

        ET0=1;

        while(1)

        {

        y=0;

        while(y<)//此乐谱里面有个音符

        {

        x=MUSIC[y];//查乐谱表

        TH0=table[x]; //查不同音节的定时器初值

        TL0=table[x+];

        TR0=1; //打开定时器

       if(y>)//两首曲子不同节奏,延时不同

       {

        delay(); //延时ms

       }

       else

        {

        delay(); //延时ms

       }

       y++;

       TR0=0;

        }

        }

        }