转载自:http://www.jdgcs.org/kb/51%E5%8D%95%E7%89%87%E6%9C%BA%E4%B8%B2%E5%8F%A3%E6%B5%8B%E8%AF%95%E7%A8%8B%E5%BA%8F+-+C51%E6%BA%90%E4%BB%A3%E7%A0%81&structure=%E5%8D%95%E7%89%87%E6%9C%BA
串口发送任意字符到单片机 单片机通过P0口LED灯显示
比如 发送16进制的 00 单片机的LED灯全亮 发送FF灯全灭
首先 烧写程序到单片机 晶振 11.0592MHZ
连接好串口线
打开串口调试软件 选择好COM端口
设置波特率为9600
#include #include unsigned char tmp; void send_char(unsigned char txd); main() { TMOD = 0x20; // 定时器1工作于8位自动重载模式, 用于产生波特率 TH1 = 0xFD; // 波特率9600 TL1 = 0xFD; SCON = 0x50; // 设定串行口工作方式 PCON &= 0xef; // 波特率不倍增 TR1 = 1; // 启动定时器1 IE = 0x0; // 禁止任何中断 while(1) { if(RI) // 是否有数据到来 { RI = 0; tmp = SBUF; // 暂存接收到的数据 P0 = tmp; // 数据传送到P0口 send_char(tmp); // 回传接收到的数据 } } } void send_char(unsigned char txd) // 传送一个字符 { SBUF = txd; while(!TI); // 等特数据传送 TI = 0; // 清除数据传送标志 } |