C51——串口通信

本文介绍了串口通信的基本协议,包括波特率、起始位、数据位和停止位。在C51单片机中,P3.0口用作接收口,P3.1口作为发送口。通信过程中,tclock生成晶振和脉冲,移位寄存器用于数据传输,起始位为0,停止位为1,状态标志如TI和RI用于指示发送和接收的状态。
摘要由CSDN通过智能技术生成

1、串口通信的协议:
波特率、起始位、停止位、数据位。

2、1帧数据位10位,1位起始位+8位数据位+1位停止位
C51单片机中p3.0口为接收口,3.1口为发送口

3、时序图:
transmit(发送):
tclock产生晶振和脉冲,
shift移位寄存器
startbit起始位为0,TI=0
TXD(DATA OUT),根据时钟移位发送,d0-d7
stopbit停止位为1,TI=1

receive(接收):
tclock产生晶振和脉冲
shift移位寄存器
startbit起始位为0,RI=0
RXD(DATA IN),根据时钟移位接收
stopbit停止位为1,RI=1

51与PC通信 1 #include "at89x51.h" 2 #include "must.h" 3 sfr port_display = 0xa0;// 4 Uchar8 incept_data[10]; // 接收缓冲区 5 Uchar8 incept_index = 0; // 接收计数 6 Uchar8 send_data[10]={0,1,2,3,4,5,6,7,8,9}; // 发送缓冲区 7 Uchar8 send_index = 0; // 发送计数 8 Uchar8 table[]={ // 0~9 共饮共阴极数码管 9 0x3F, 10 0x06, 11 0x5B, 12 0x4F, 13 0x66, 14 0x6D, 15 0x7D, 16 0x07, 17 0x7F, 18 0x6F}; 19 /*********************************************************************************** 20 函数功能:延时y*1ms 21 入口参数:y 22 出口参数:无 23 ********************************************************************************/ 24 void Delay_1ms(Uint16 y) 25 { 26 1 Uint16 i,j; 27 1 for(i=0;i<y;i++) 28 1 { 29 2 for(j=0;j<60;j++) 30 2 {;} 31 2 } 32 1 } 33 /******************************************************************** 34 函数功能:设置串口通信方式 35 入口参数: 36 com_baud 串口波特率选择 37 1-----------300 38 2-----------600 39 3-----------1200 40 4-----------2400 41 5-----------4800 42 6-----------9600 43 7-----------19200 44 8-----------57600 45 46 出口参数:无 47 *********************************************************************/ 48 void Com_init(Uchar8 com_baud) 49 { 50 1 Uchar8 THTL; 51 1 switch (com_baud) 52 1 { 53 2 case 1: THTL = 64; break; //波特率300 54 2 case 2: THTL = 160; break; //600 55 2 case 3: THTL = 208; break; //1200 C51 COMPILER V8.08 COM_TEXT 05/24/2009 17:48:04 PAGE 2 56 2 case 4: THTL = 232; break; //2400 57 2 case 5: THTL = 244; break; //4800 58 2 case 6: THTL = 250; break; //9600 59 2 case 7: THTL = 253; break; //19200 60 2 case 8: THTL = 255; break; //57600 61 2 default: THTL = 208; //1200 62 2 } 63 1 SCON = 0x50; // 设定串行口工作方式 64 1 TMOD = 0x20; // 定时器1工作于8位自动重载模式, 用于产生波特率 65 1 PCON = 0x80; // 波特率倍增 66 1 RI = 0; // 清收标志 67 1 TI = 0; // 清发标志 68 1 TR1 = 1; // 启动定时器1 69 1 TH1 = THTL; 70 1 TL1 = THTL; 71 1 ES=1; 72 1 EA=1; 73 1 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值