求助观察单片机中断函数是否执行?,本人设计单片机串口通讯的电路,代码很简单,在中断函数中放了一个指示灯,观察中断函数有没有运行,这个指示灯没亮,主函数中的指示灯是亮的,这样中断函数是不是没有执行,请各位老师帮看一下,谢谢。
#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 ; //指示灯
}
,中断中的LED不亮说明中断没有发生。主函数中的指示灯跟中断没有关系,开机就亮的。,是的,中断没有发生,不知道怎么回事,代码试了好多。
,那就好好检查串口和波特率初始化。, 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; //
就是不行,唉