/******************************************************* 一、程序說明: 這是一個最簡單的USART(通用異步收發(fā)器)的發(fā)送程序,采用三線 TXD、RXD、GND通過RS232接口與電腦傳送數(shù)據(jù),此程序是循環(huán)地向電腦 傳送0XOA、OXOB、OXOC、OXOD、OXOE、OXOF這6個字節(jié)。通過一般網(wǎng) 上下載的串口通信工具即可接收到。
二、硬件連接: 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[]數(shù)組賦值。 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; //啟動發(fā)送,TSR開始移位操作。 while (TXIF==0); //等待中斷,在此為查詢方式。 while (TRMT==0); //判斷是否TSR發(fā)送完畢,未完等待。 TXEN=0; //關(guān)發(fā)送功能,防止TXREG空時,TXIF產(chǎn)生置位。 } } }
void usart_init(void) { TXSTA=0X04; //設定TXSTA寄存器。 SPBRG=25; //4MHZ, BRGH=1, 9600BPS. PIE1=0; //清除PIE1所有中斷使能。 RCSTA=0X80; //禁止接收。 }
/***********END**********************/