我给它输入1还是没反映,调试了好久,大家看看。

2019-07-15 21:01发布

#include <reg51.h>
#define uint unsigned int
#define uchar unsigned char
sbit Beep =  P1^5 ;
uint z,flag,a;
uchar b;
void delay(uint i);
void init();
void wuyuanbeep(uint z);
void main()
{
         init();
         while(1)
         {
                 if(flag==1)
                {
                        ES=0;
                        flag=0;
                        SBUF=a;
                        switch(SBUF)
                        {       
                                case 1:wuyuanbeep(400);break;
                                   case 2:wuyuanbeep(200);break;
                                case 3:wuyuanbeep(100);break;
                                case 4:wuyuanbeep(0);break;
                        }                                 
                 }
         }
}

void wuyuanbeep(uint z)
{
         Beep= 1;
         delay(z);
         Beep= 0;
         delay(z);
}

void ser() interrupt 4
{
        RI=0;
        a=SBUF;
        flag=1;
}

void init()
{
         TMOD=0x20;
         TH1=0xfd;
         TL1=0xfd;
         EA=1;
         ES=1;
         REN=1;
         SM0=0;
         SM1=1;
}

void delay(unsigned int i)
{
    char j;
    for(i; i > 0; i--)
        for(j = 110; j > 0; j--);
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
neuangel
1楼-- · 2019-07-15 21:25
是不是在初始化函数内 少了一句 TR1=1???
neuangel
2楼-- · 2019-07-16 01:42
是不是在初始化函数内 少了一句 TR1=1???
nickychung
3楼-- · 2019-07-16 06:13
neuangel 发表于 2014-1-16 16:51
是不是在初始化函数内 少了一句 TR1=1???

加上去也不行啊。
neuangel
4楼-- · 2019-07-16 08:50
我也不知道了,我也刚开始学嵌入式编程,要是硬件问题说不定还能解决一下
neuangel
5楼-- · 2019-07-16 11:35
 精彩回答 2  元偷偷看……
chenhengjin
6楼-- · 2019-07-16 13:38
void init()
{
         TMOD=0x20;
         TH1=0xfd;
         TL1=0xfd;
         EA=1;
         ES=1;
         REN=1;
         SM0=0;
         SM1=1;
}


少了一句TR1=1;     //开定时器1

一周热门 更多>