PIC单片机串口发送与按键

2019-04-15 11:44发布

这是我学习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(RB0
0)
{
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();
}
} 代码不太会排版.如有会的大大教教以后发布就可以调整了.