打印
[51单片机]

红外接收端老是进入中断程序

[复制链接]
4040|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
discover568|  楼主 | 2013-10-18 23:08 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
做一个红外学习的板子,通过定时器来识别外部的红外信号,然后将信号发送出去。现在遇到的问题是单片机上电后,在没有发送红外信号的情况下,老是进入到红外中断程序中,红外接收端连接的是P3.3,设置是下降沿触发进入中断。(程序初始化程序如下贴出)当发送红外信号时单片机就会卡死,请高手指导下,万分感谢!
void InitTimer0(void)
{
    //TMOD = 0x01;
    TH0 = 0x0FF;          //50us
    TL0 = 0x0D2;
    //EA = 1;
    ET0 = 1;        //允许定时器中断
    TR0 = 1;
}

/***********************************************
串口通讯初始化
***********************************************/
void InitUART(void)
{
    //TMOD = 0x20;
        //PCON=0x00; /*SMOD=0,波特率不翻倍*/
    SCON = 0x50;
    TH1 = 0xFD;
    TL1 = TH1;
    //EA = 1;
    ES = 1;
    TR1 = 1;
}
void init(void)
{
        ir=1 ;                //红外端口写 1
       
        TMOD=0x21;            //定时器0模式1,16 位自动装载模式;定时器1模式2,8 位自动装载模式
        InitTimer0();        //定时器T0,时间50us
        InitUART();                //打开串口通讯,波特率9600,晶振11.0592MHz
        EA=1 ;                    //开总中断

        EX1=1;//允许外部中断
        IT1=1; //红外接收中断,INT1下降沿触发

}
void int1()interrupt 2
{
        TR0=1;//开定时器中断

       
        temp=0x55;
        SendOneByte(temp);

相关帖子

沙发
discover568|  楼主 | 2013-10-19 10:42 | 显示全部楼层
我用的是ACUTE,同时打开,没有看到有红外的信号。有什么办法可以消除下外界的干扰吗?初次做这个,请指教!

使用特权

评论回复
板凳
discover568|  楼主 | 2013-10-20 11:00 | 显示全部楼层
现在看到P3.3口设置INT1=1,为下降沿触发中断,我在中断程序中设置进入后会发送一个字符到PC。但手动将P3.3口的电平拉低后,PC没有收到字符,推断单片机没有进入中断程序。请问是怎么回事?

使用特权

评论回复
地板
discover568|  楼主 | 2013-10-23 17:41 | 显示全部楼层
感谢大家的回答,之前问的有些矛盾,是因为定位不准。

使用特权

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

本版积分规则

8

主题

43

帖子

0

粉丝