这是我学习PIC单片机调试过程中尝试的PIC单片机串口发送实验,当按键RB0有按下时,num自加,同时RC0端口接的LED翻转,并把num的数传给发送寄存器发送至电脑端,波特率为9600,4M晶振.
代码如下:
#include
__CONFIG(0x3B31);
unsigned int num=0;
void GPIO_init()
{
TRISB=0xff;
TRISC=0xfe;
TRISC0=0;
OPTION_REG=0x07;
}
void delay(unsigned int x)
{
unsigned int i,j;
for(i=x;i>0;i–)
for(j=110;j>0;j–);
}
void serialinit()
{
TXSTA=0x24;
RCSTA=0x90;
SPBRG=25;
GIE=1;
PEIE=1;
TXIE=0;
}
void key_scan()
{
if(RB00)
{
delay(15);
if(RB00)
{
num++;
TXIE=1;
TXIF=1;
if(!(num%2))
{
RC0=~RC0;
}
while(!RB0);
}
}
}
void interrupt serial0()
{
if(TXIE&&TXIF)
{
TXIF=0;
TXIE=0;
//RCREG=num;
if(num==30)
{
num=0;
TXREG=0x80;
}
else
TXREG=num;
while(!TRMT);
}
}
void main()
{
GPIO_init();
serialinit();
while(1)
{
key_scan();
}
}
代码不太会排版.如有会的大大教教以后发布就可以调整了.