/******************************************************* 一、程序說明: 這是一個最簡單的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**********************/