单片机IO口模拟串口程序(发送+接收)

单片机IO口模拟串口程序(发送+接收)

ID:40264036

大小:51.50 KB

页数:9页

时间:2019-07-29

单片机IO口模拟串口程序(发送+接收)_第1页
单片机IO口模拟串口程序(发送+接收)_第2页
单片机IO口模拟串口程序(发送+接收)_第3页
单片机IO口模拟串口程序(发送+接收)_第4页
单片机IO口模拟串口程序(发送+接收)_第5页
资源描述:

《单片机IO口模拟串口程序(发送+接收)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实用文档前一阵一直在做单片机的程序,由于串口不够,需要用IO口来模拟出一个串口。经过若干曲折并参考了一些现有的资料,基本上完成了。现在将完整的测试程序,以及其中一些需要总结的部分贴出来。程序硬件平台:11.0592M晶振,STC单片机(兼容51)/****************************************************************在单片机上模拟了一个串口,使用P2.1作为发送端*把单片机中存放的数据通过P2.1作为串口TXD发送出去***************************************

2、************************/#include#include#includetypedefunsignedcharuchar;inti;ucharcodeinfo[]={0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55};sbitnewTXD=P2^1;//模拟串口的发送端设为P2.1voidUartInit(){SCON=0x50;//SCON:serailmode1,8-b

3、itUARTTMOD

4、=0x21;//T0工作在方式1,十六位定时PCON

5、=0x80;//SMOD=1;TH0=0xFE;//定时器0初始值,延时417us,目的是令模拟串口的波特率为2400bpsfosc=11.0592MHzTL0=0x7F;//定时器0初始值,延时417us,目的是令模拟串口的波特率为2400bpsfosc=11.0592MHz//TH0=0xFD;//定时器0初始值,延时417us,目的是令模拟串口的波特率为2400bpsfosc=18.432MHz//TL0=0x7F;//定时器0初始值,延时417us,目的是令模拟串口的波

6、特率为2400bpsfosc=18.432MHz}voidWaitTF0(void){文案大全实用文档while(!TF0);TF0=0;TH0=0xFE;//定时器重装初值fosc=11.0592MHzTL0=0x7F;//定时器重装初值fosc=11.0592MHz//TH0=0xFD;//定时器重装初值fosc=18.432MHz//TL0=0x7F;//定时器重装初值fosc=18.432MHz}voidWByte(ucharinput){//发送启始位ucharj=8;TR0=1;newTXD=(bit)0;WaitTF0();//发送8位数

7、据位while(j--){newTXD=(bit)(input&0x01);//先传低位WaitTF0();input=input>>1;}//发送校验位(无)//发送结束位newTXD=(bit)1;WaitTF0();TR0=0;}voidSendata(){for(i=0;i

8、######################################/****************************************************************模拟接收程序,这个程序的作用从模拟串口接收数据,然后将这些数据发送到实际串口*在单片机上模拟了一个串口,使用P3.2作为发送和接收端*以P3.2模拟串口接收端,从模拟串口接收数据发至串口***************************************************************/#include#i

9、nclude#includetypedefunsignedcharuchar;//这里用来切换晶振频率,支持11.0592MHz和18.432MHz//#defineF18_432#defineF11_0592uchartmpbuf2[64]={0};//用来作为模拟串口接收数据的缓存struct{ucharrecv:6;//tmpbuf2数组下标,用来将模拟串口接收到的数据存放到tmpbuf2中ucharsend:6;//tmpbuf2数组下标,用来将tmpbuf2中的数据发送到串口}tmpbuf2_point=

10、{0,0};sbitnewRXD=P3^2;//模拟串口的接收端设为P3.2voidUartI

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。