专注电子技术学习与研究
当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

PIC16F877异步串口中断探析

作者:佚名   来源:不详   点击数:  更新时间:2014年08月31日   【字体:

 PIC16F877单片机的异步串口中断程序:

 
#include<pic.h>
#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);//这一句不能少,否则收不到
 }
}
 
关闭窗口