各位大虾,已下是小弟写的一点小程序,出了点问题,请教各位。
①RD1脚我接了一个LED,但不知道为什么,它一直都是亮着的,不会灭。而且单片机发回来的数据有些是乱码。②当我把总中断GIE关掉的时候,LED是正常亮与灭的
#include<pic.h>
#define uchar unsigned char
#define uint unsigned int
__CONFIG(0x3B31);
void delay(uint a)//延时
{
uint i,j;
for(i=a;i--;i>0)
for(j=100;j--;j>0)
;
}
void USART_INT()//初始化串口与RD1端口的LED
{
TRISC=0XFF;//RC端口设置输入
TRISD=0X00;//RD端口输出
PORTD=0x00;//灭LED
GIE=1;
PEIE=1;
PIE1=0X30;
SPBRG=25;
TXSTA=0X24;
RCSTA=0X90;
}
void main()
{
USART_INT();
PORTD=0XFF;
delay(300);
PORTD=0x00;
while(1)
;
}
void interrupt usart()//中断
{
if(RCIE&&RCIF==1)//读中断
{
RCIF=0;
TXREG=RCREG;
}
if(TXIE&&TXIF==1)//发中断
{
TXIF=0;
RD1=!RD1;
}
}
|