/*----------------------------------------------- 名稱:串口通信 網站:www.doflye.net 編寫:shifang 日期:2009.5 修改:無 內容:連接好串口或者usb轉串口至電腦,下載該程序,打開電源 打開串口調試程序,將波特率設置為9600,無奇偶校驗 晶振11.0592MHz,發送和接收使用的格式相同,如都使用 字符型格式,設置正確后接受框可以看到UART test,技術論壇:www.doflye.net thank you! ------------------------------------------------*/ #include<reg52.h> //包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義 #include"delay.h" /*------------------------------------------------ 函數聲明 ------------------------------------------------*/ void SendStr(unsigned char *s); /*------------------------------------------------ 串口初始化 ------------------------------------------------*/ void InitUART (void) { SCON = 0x50; // SCON: 模式 1, 8-bit UART, 使能接收 TMOD |= 0x20; // TMOD: timer 1, mode 2, 8-bit 重裝 TH1 = 0xFD; // TH1: 重裝值 9600 波特率 晶振 11.0592MHz TR1 = 1; // TR1: timer 1 打開 EA = 1; //打開總中斷 //ES = 1; //打開串口中斷 } /*------------------------------------------------ 主函數 ------------------------------------------------*/ void main (void) { InitUART(); while (1) { SendStr("UART test,技術論壇:www.doflye.net thank you!"); DelayMs(240);//延時循環發送 DelayMs(240); } } /*------------------------------------------------ 發送一個字節 ------------------------------------------------*/ void SendByte(unsigned char dat) { SBUF = dat; while(!TI); TI = 0; } /*------------------------------------------------ 發送一個字符串 ------------------------------------------------*/ void SendStr(unsigned char *s) { while(*s!='/0')// /0 表示字符串結束標志, //通過檢測是否字符串末尾 { SendByte(*s); s++; } }
新聞熱點
疑難解答