PIC微控制器串列埠傳送與按鍵
阿新 • • 發佈:2019-02-07
這是我學習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(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();
}
}
程式碼不太會排版.如有會的大大教教以後釋出就可以調整了.