×
单片机 > 单片机程序设计 > 详情

PIC16F877异步串口中断探析

发布时间:2020-05-16 发布时间:
|
PIC16F877单片机的异步串口中断程序:
 
#include
#define uchar unsigned char
#define uint  unsigned int
__CONFIG(0x3B31);
void init();
void main()
{
 init();
// TXREG=0x31;  //发送
 while(!TRMT); //发送结束退出
 while(1);
}
void init()
{
 TRISD = 0;
 PORTD = 0;
 TRISC = 0x80;  //RX方向必须为输出.或者:TRISC|= 0xC0;
 TXSTA=0x24;  //发送状态寄存器:使能发送,高速(高速与低速波特率差4倍,即9600与2400)
 RCSTA=0x90;  //接收状态寄存器:使能串行端口,使能接收
 SPBRG=25;  //波特率为9600
 GIE=1;   //使能全局中断
 PEIE=1;   //使能外设中断
 RCIE=1;   //使能串口中断
}
void interrupt com()
{
 if(RCIE&&RCIF)
 {
// TXREG=RCREG;
 if(RCREG == 0x01) {PORTD = 0xff; TXREG = 0x11;}
 if(RCREG == 0x02) {PORTD = 0x55;TXREG = 0xFF;} 
  while(!TRMT);//这一句不能少,否则收不到
 }
}
 


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
基于AT91M42800A的LED显示系统设计