下载此文档

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


文档分类:通信/电子 | 页数:约17页 举报非法文档有奖
1/17
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/17 下载此文档
文档列表 文档介绍
前一阵一直在做单片机的程序,由于串口不够,需要用IO口来模拟出一个串口。经过若干曲折并参考了一些现有的资料,基本上完成了。现在将完整的测试程序,以及其中一些需要总结的部分贴出来。程序硬件平台:,STC单片机(兼容51)/*****************************************************************在单片机上模拟了一个串口,***************************************************************/#include<>#include<>#include<>typedefunsignedcharuchar;inti;ucharcodeinfo[]={0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55};sbitnewTXD=P2^1;//(){=0x50;//SCON:serailmode1,8-bitUART|=0x21;//T0工作在方式1,十六位定时PCON|=0x80;//SMOD=1;TH0=0xFE;//定时器0初始值,延时417us,目的是令模拟串口的波特率为2400bpsfosc==0x7F;//定时器0初始值,延时417us,目的是令模拟串口的波特率为2400bpsfosc=//TH0=0xFD;//定时器0初始值,延时417us,目的是令模拟串口的波特率为2400bpsfosc=//TL0=0x7F;//定时器0初始值,延时417us,目的是令模拟串口的波特率为2400bpsfosc=}voidWaitTF0(void){while(!TF0);TF0=0;TH0=0xFE;TL0=0x7F;//定时器重装初值fosc=//定时器重装初值fosc=//TH0=0xFD;//定时器重装初值fosc=//TL0=0x7F;//定时器重装初值fosc=}voidWByte(ucharinput){//发送启始位ucharj=8;TR0=1;newTXD=(bit)0;WaitTF0();//发送8位数据位while(j--){newTXD=(bit)(input&0x01);WaitTF0();input=input>>1;}//发送校验位(无)//发送结束位newTXD=(bit)1;WaitTF0();TR0=0;}voidSendata(){//先传低位for(i=0;i<sizeof(info);i++)//外层循环,遍历数组{WByte(info[i]);}}voidmain(){UartInit();while(1){Sendata();}}##############################################################################/****************************************************************串口**模拟接收程序,这个程序的作用从模拟串口接收数据,然后将这些数据发送到实际在单片机上模拟了一个串口,,从模拟串口接收数据发至串口***************************************************************/#include<>#include<>#include<>typedefunsignedcharuchar;//这里用来切换晶振频率,//#defineF18_432#defineF11_0592uchartmpbuf2[64]={0};//用来作为模拟串口接收数据的缓存struct{ucharrecv:6;//tmpbuf2数组下标,用来将模拟串口接收到的数据存放到tmpbuf2中ucharsend:6;//tmpbuf2数组下标,用来将tmpbuf2中的数据发送到串口}tmpbuf2_point={0,0};sbitnewRXD=P3^2;//(){=0x50;//SCON:ser

单片机IO口模拟串口程序(发送 接收) 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息