sltalex 发表于 2011-11-2 08:46:21

at芯片的程序改stc芯片的,该如何修改。已附上程序

#include <at89x51.h>
#define kai 0; //串口接收到0时,P1.0输出0,开台灯
#define guan 1;//串口接收到1时,P1.0输出1,关台灯
unsigned char a;//a用来存放串口接收到的数据
sbit JDQ=P1^0; //继电器接P1.0,P1.0脚出来接一个10K电阻再接到S8550三极管的基极
               //集电极接地,发射极接继电器的线圈到5V电源上,
                           //线圈两脚之间接一个IN4007二极管,注意二极管的负极要接5V电压处
                           //正极接三极管的发射极。

main()
{
        TMOD=0x20;//定时器1使用初值自动重装方式,方式2
        TH1=0xfd;
        TL1=0xfd;//9600波特率初值
        TR1=1;//允许定时器计数
        SM0=0;//方式1设置
        SM1=1;
        REN=1; //允许串口接收
        EA=1;//开总中断
        ES=1;//开串口中断
        while(1)
        {
           if(a==1)//如果a=1,P1.0=0,继电器吸合,台灯打开
           {
                  JDQ=kai; //P1.0=0,
           }
           else if(a==2)//如果a=2,P1.0=1,继电器松开,台灯关闭
           {
                           JDQ=guan;//P1.0=1,
           }
           else ;
       
        }

}

void serial() interrupt 4 //串口中断函数
{
   if(RI==1)//如果是接收中断,进行下面工作
        {
                a=SBUF;//串口接收到到的数据存放到a中
                RI=0;//接收中断标志位标志
        }
        if(TI==1)//如果是发送中断,直接清零发送中断标志,不做任何工作
        {
                TI=0; //发送中断标志位清零
        }
}




以上是at芯片的语音控制代码。我要改成在stc下使用。但不管怎么改a都没有值。进不了a的那几个条件,知道是哪里的问题吗?该如何修改呢

sltalex 发表于 2011-11-2 15:00:46

模块的txd到3.0rxd到3.1 模块发信息到单片机。单片机无反应

sltalex 发表于 2011-11-3 08:47:53

搞定了。rxd和txd 接错线了。程序是没问题的
页: [1]
查看完整版本: at芯片的程序改stc芯片的,该如何修改。已附上程序