51單片機與PC串口通信程序及硬件電路圖


#include
#define BUFFERLEGTH 10
//-----------------------------------------------------------------
void UART_init(); //串口初始化函數
void COM_send(void); //串口發送函數
char str[20];
char j;
//-------------------------------------------------------------------
void main(void)
{
unsigned char i;
UART_init();
j=0; //初始化串口
for(i = 0;i < 10 ;i++)
{
COM_send(); //首先發送一次數據作為測試用
};
while(1);
}
//-------------------------------------------------------------
//--------------------------------------------------------------------------------------------------
// 函數名稱: UART_init()串口初始化函數
// 函數功能: 在系統時鐘為11.059MHZ時,設定串口波特率為9600bit/s
// 串口接收中斷允許,發送中斷禁止
//--------------------------------------------------------------------------------------------------
void UART_init()
{
//初始化串行口和波特率發生器
SCON =0x50; //選擇串口工作方式1,打開接收允許
TMOD =0x20; //定時器1工作在方式2,定時器0工作在方式1
TH1 =0xfA; //實現波特率9600(系統時鐘11.0592MHZ)
PCON = 0x80;
TR1 =1; //啟動定時器T1
ET1 =0;
ES=1; //允許串行口中斷
PS=1; //設計串行口中斷優先級
EA =1; //單片機中斷允許
}
//------------------------------------------------------------
void COM_send(void)
{
unsigned char point = 0;
for(point=0;str[point]!=
主站蜘蛛池模板:
兴海县|
靖远县|
兴化市|
贺兰县|
灵山县|
锦州市|
赤水市|
宣化县|
吉首市|
武乡县|
西乌珠穆沁旗|
武汉市|
通城县|
乃东县|
苗栗市|
务川|
广元市|
开远市|
陆川县|
广昌县|
根河市|
安新县|
五峰|
贵州省|
泽库县|
彭泽县|
华池县|
新建县|
莫力|
仙桃市|
临泽县|
大庆市|
宁津县|
天峨县|
静宁县|
灵寿县|
泰顺县|
邹城市|
洞口县|
禹城市|
高唐县|