单片机模拟串口收发实例程序

上传人:大米 文档编号:563847748 上传时间:2023-02-25 格式:DOC 页数:5 大小:40.50KB
返回 下载 相关 举报
单片机模拟串口收发实例程序_第1页
第1页 / 共5页
单片机模拟串口收发实例程序_第2页
第2页 / 共5页
单片机模拟串口收发实例程序_第3页
第3页 / 共5页
单片机模拟串口收发实例程序_第4页
第4页 / 共5页
单片机模拟串口收发实例程序_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《单片机模拟串口收发实例程序》由会员分享,可在线阅读,更多相关《单片机模拟串口收发实例程序(5页珍藏版)》请在金锄头文库上搜索。

1、单片机模拟串口实例程序作者:Mr Li 联系方式:发布日期:2010年12月15日单片机:STC12C5A60S2晶振:11.0592MHz该文档模拟了串口的收发,采用中断方式接收,接收口用P3.3,利用外部中断方式实现模拟串口中断接收。发送口用P2.3。以下是模拟串口收发程序实例#define uchar unsigned char#define uint16 unsigned intsbitSimulateUart1_RXD=P33;sbitSimulateUart1_TXD=P23;/sbit SimulateUart1_En=P22;/ 模拟串口1的485收发使能typedef str

2、uctuint16 baud;/波特率uchar databit;/数据位uchar paritybit;/检验位0 无校验 1 奇校验 2 偶校验uchar stopbit;/停止位 1: 1位停止位 2: 2位停止位uint16 bitdelay;/该变量用于模拟串口发送和接收时候位电平保持延时周期数,/单位为10us,其值由初始化时候计算所得uchar ReBuff64;uchar ReTmpBuff64;uchar ReByte; uchar RePoint;uchar ReCount;uchar ReOutTime;uchar CS;uchar ReSuccessFlag;Simul

3、ateUartInfo_E;SimulateUartInfo_E SimulateUart1Info;/*函数名称:DelayUs函数功能:微妙延时函数,每次延时10us入口参数:n:需要延时的基数出口参数:无*/void DelayUs(uint16 n)uchar i;for(;n0;n-)for(i=0;i1;if(SimulateUart1_RXD)dat |=0x80;DelayUs(SimulateUart1Info.bitdelay);/;加上奇偶位检测,该程序我省去了该奇偶位的判断,用户若需要,可自行添加while(!SimulateUart1_RXD);/该程序只适用于1位停

4、止位的情况return dat;/*函数名称:SimulateUART1_SendByte函数功能:模拟串口1发送单字节 数据入口参数:dat:需要发送的字节数据出口参数:无说明:该函数仅用作发送8位数据位的数据,若是其他不足8位的,用户自行修改代码*/void SimulateUart1_SendOneByte(uchar dat)uchar data i,n,count;count = 0;SimulateUart1_En = 0;/发送使能,该语句用于控制485芯片发送使能for(i=0;ii)&0x01)count+;n = SimulateUart1Info.databit;Simu

5、lateUart1_TXD = 0;/发送起始位DelayUs(SimulateUart1Info.bitdelay);/此处延时必须根据初始化时候设置的各种参数决定while(n-)SimulateUart1_TXD=dat&0x01;/低位在前,高位在后DelayUs(SimulateUart1Info.bitdelay);/位电平保持延时dat = dat1;/发送校验位/此处是否发送校验位根据初始化时候设定情况if(SimulateUart1Info.paritybit)/有校验位if(SimulateUart1Info.paritybit=1)/奇校验if(count%2)SimulateUart1_TXD=0;elseSimulateUart1_TXD=1;else /偶校验if(count%2)SimulateUart1_TXD=1;elseSimulateUart1_TXD=0;DelayUs(SimulateUart1Info.bitdelay);SimulateUart1_TXD = 1;/发送结束位,该程序只适用于1位停止位的情况/SimulateUart1_En =1;/接收使能,该语句用于控制485芯片接收使能DelayMs(1);/每发送完一个字节延时1毫秒,用于加长多字节发送时候/字符之间的间隔时间

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 营销创新

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号