1. 程式人生 > >PIC微控制器串列埠傳送與按鍵

PIC微控制器串列埠傳送與按鍵

這是我學習PIC微控制器除錯過程中嘗試的PIC微控制器串列埠傳送實驗,當按鍵RB0有按下時,num自加,同時RC0埠接的LED翻轉,並把num的數傳給傳送暫存器傳送至電腦端,波特率為9600,4M晶振.

程式碼如下:
#include<pic.h>
__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();
}
}

程式碼不太會排版.如有會的大大教教以後釋出就可以調整了.