/******************************************************* 一、程序说明: 这是一个最简单的USART(通用异步收发器)的发送程序,采用三线 TXD、RXD、GND通过RS232接口与电脑传送数据,此程序是循环地向电脑 传送0XOA、OXOB、OXOC、OXOD、OXOE、OXOF这6个字节。通过一般网 上下载的串口通信工具即可接收到。
二、硬件连接: 1,MCU-PIC16F877A。(当然可以选择其它IC) 2,采用4。00晶体。 3,连接: MCU Pin25-----> RS232 Pin11. MCU Pin26-----> RS232 Pin12. RS232 Pin14---> COM1 Pin2. RS232 Pin13---> COM1 Pin3. PCB GND ------> COM1 Pin5(GND) *******************************************************/ #include "pic.h"
void usart_init(void); unsigned char txbuff[6]; char k=0;
void main(void) { TRISC=0X80; //设定RC7为输入,RC6为输出。 PORTC=0; usart_init(); //串口初始化。 INTCON=0; //清中断 PEIE=1; GIE=1; while(1) { txbuff[0]=0x0a; //txbuff[]数组赋值。 txbuff[1]=0x0b; txbuff[2]=0x0c; txbuff[3]=0x0d; txbuff[4]=0x0e; txbuff[5]=0x0f; for (k=0;k<6;k++) { TXREG = txbuff[k]; TXEN=1; //启动发送,TSR开始移位操作。 while (TXIF==0); //等待中断,在此为查询方式。 while (TRMT==0); //判断是否TSR发送完毕,未完等待。 TXEN=0; //关发送功能,防止TXREG空时,TXIF产生置位。 } } }
void usart_init(void) { TXSTA=0X04; //设定TXSTA寄存器。 SPBRG=25; //4MHZ, BRGH=1, 9600BPS. PIE1=0; //清除PIE1所有中断使能。 RCSTA=0X80; //禁止接收。 }
/***********END**********************/