标题: 求助观察单片机中断函数是否执行? [打印本页]

作者: zjgeser    时间: 2021-1-26 15:01
标题: 求助观察单片机中断函数是否执行?
本人设计单片机串口通讯的电路,代码很简单,在中断函数中放了一个指示灯,观察中断函数有没有运行,这个指示灯没亮,主函数中的指示灯是亮的,这样中断函数是不是没有执行,请各位老师帮看一下,谢谢。

#include        "15W4KxxS4.H"

typedef unsigned char uchar;
typedef unsigned int uint;

void IO_init()
{
  P1M1 = 0x00;        P1M0 = 0x00;
        P2M1 = 0x00;        P2M0 = 0xFF;
        P3M1 = 0x00;        P3M0 = 0xFE;
        P1 = 0xFF ;
        P2 = 0x00 ;
        P3 = 0x00 ;
}        

sbit p33 = P3^3 ;
sbit p22 = P2^2 ;
sbit p23 = P2^3 ;

void Serial_Init()
{
    TMOD = 0x20;    //
    TH1 = 0xdc;        //
    TL1 = 0xdc;        //
    TR1 = 1;        //
    REN = 1;        //
    SM0 = 0;        //
    SM1 = 1;        //
    EA = 1;            //
    ES = 1;            //
}

void ser() interrupt 4        //
{
    RI = 0 ;//
          TI = 0 ;
    p33 = 1 ;  //指示灯,观察中断函数是否执行
}


void main()
{
    IO_init();
    Serial_Init();

    while(1)
    {
       SBUF = 0xff ;
                         p23 = 1 ;  //指示灯
}


作者: munuc_w    时间: 2021-1-26 15:42
中断中的LED不亮说明中断没有发生。主函数中的指示灯跟中断没有关系,开机就亮的。
作者: zjgeser    时间: 2021-1-26 15:53
是的,中断没有发生,不知道怎么回事,代码试了好多。


作者: wwh2382    时间: 2021-1-26 16:19
注意看红圈中的内容

作者: munuc_w    时间: 2021-1-26 16:32
那就好好检查串口和波特率初始化。
作者: zjgeser    时间: 2021-1-26 16:58
    TMOD = 0x20;    //
          AUXR &= 0xbf;                //¶¨ê±Æ÷1ê±ÖóÎaFosc/12,¼′12T
          AUXR &= 0xfe;                //′®¿ú1Ñ¡Ôñ¶¨ê±Æ÷1Îa2¨ìØÂê·¢éúÆ÷
    TH1 = 0xfd;        //
    TL1 = 0xfd;        //
    TR1 = 1;        //
    REN = 1;        //
    SM0 = 0;        //
    SM1 = 1;        //
    EA = 1;            //
    ES = 1;            //

就是不行,唉
作者: zjgeser    时间: 2021-1-26 17:19
    TMOD = 0x20;    //
    AUXR &= 0xdf;                //定时器1时钟为Fosc/12,即12T
    AUXR &= 0xfe;                //串口1选择定时器1为波特率发生器
          
    TH1 = 0xfd;        //
    TL1 = 0xfd;        //
    TR1 = 1;        //
    REN = 1;        //
    PCON = 0x00 ;  //SMOD = 0 ;
    SM0 = 0;        //
    SM1 = 1;        //
    EA = 1;            //
    ES = 1;            //
实在找不出错误了。难过
作者: zjgeser    时间: 2021-1-26 17:26
谢谢wwh2382 ,我再看看
作者: zjgeser    时间: 2021-1-26 17:36
搞好了,谢谢4楼的大师,谢谢各位师傅,谢谢,改成定时器2就可以了。
作者: 人人学会单片机    时间: 2021-1-26 18:34
STC单片机串口发送 不需要while死等 串口接收执行软件复位 http://www.51hei.com/bbs/dpj-200927-1.html




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1