/*----------------------------------------------- 名称:串口通信 网站: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++; } }
新闻热点
疑难解答