下载此文档

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


文档分类:通信/电子 | 页数:约9页 举报非法文档有奖
1/9
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/9 下载此文档
文档列表 文档介绍
前一阵一直在做单片机的程序, 由于串口不够,需要用IO口来模拟出一个串口。 经过若干曲折并参考了一些现有的资料,基本上完成了。现在将完整的测试程序,以及其中一些需要总结的部分贴出来。程序硬件平台: ,STC单片机(兼容 51)/**************************************************************** 在单片机上模拟了一个串口,使用 ***************************************************************/#include <>#include <>#include <>typedef unsigned char uchar;int i;ucharcodeinfo[]={0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55};sbitnewTXD=P2^1;//模拟串口的发送端设为 UartInit(){SCON=0x50; //SCON:serailmode1,8-bitUARTTMOD|=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=}void WaitTF0( void){while (!TF0);TF0=0;TH0=0xFE;// 定时器重装初值fosc==0x7F;// 定时器重装初值fosc=//TH0=0xFD;// 定时器重装初值fosc=//TL0=0x7F;// 定时器重装初值fosc=}void WByte(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;}void Sendata(){for(i=0;i<sizeof(info);i++) //外层循环,遍历数组{WByte(info[i]);}}void main(){UartInit();while (1){Sendata();}}#################

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

非法内容举报中心
文档信息
  • 页数9
  • 收藏数0 收藏
  • 顶次数0
  • 上传人459972402
  • 文件大小21 KB
  • 时间2019-08-17
最近更新