单片机io口模拟rs232串口c语言程序

单片机io口模拟rs232串口c语言程序

ID:34748123

大小:70.63 KB

页数:6页

时间:2019-03-10

单片机io口模拟rs232串口c语言程序_第1页
单片机io口模拟rs232串口c语言程序_第2页
单片机io口模拟rs232串口c语言程序_第3页
单片机io口模拟rs232串口c语言程序_第4页
单片机io口模拟rs232串口c语言程序_第5页
资源描述:

《单片机io口模拟rs232串口c语言程序》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、单片机I/O口模拟RS232串口C语言程序#includesbitBT_SND=P1^0;sbitBT_REC=P1^1;/**********************************************IO口模拟232通讯程序使用两种方式的C程序占用定时器0**********************************************/#defineMODE_QUICK#defineF_TMF0#defineTIMER0_ENABLETL0=TH0;TR0=1;#defineTIMER0_

2、DISABLETR0=0;sbitACC0=ACC^0;sbitACC1=ACC^1;sbitACC2=ACC^2;sbitACC3=ACC^3;sbitACC4=ACC^4;sbitACC5=ACC^5;sbitACC6=ACC^6;sbitACC7=ACC^7;voidIntTimer0()interrupt1{F_TM=1;}//发送一个字符voidPSendChar(unsignedcharinch){#ifdefMODE_QUICKACC=inch;F_TM=0;BT_SND=0;//startbitTIMER0_ENABL

3、E;//启动while(!F_TM);BT_SND=ACC0;//先送出低位F_TM=0;while(!F_TM);BT_SND=ACC1;F_TM=0;while(!F_TM);BT_SND=ACC2;F_TM=0;while(!F_TM);BT_SND=ACC3;F_TM=0;while(!F_TM);BT_SND=ACC4;F_TM=0;while(!F_TM);BT_SND=ACC5;F_TM=0;while(!F_TM);BT_SND=ACC6;F_TM=0;while(!F_TM);BT_SND=ACC7;F_TM=0;w

4、hile(!F_TM);BT_SND=1;F_TM=0;while(!F_TM);TIMER0_DISABLE;//停止timer#elseunsignedcharii;ii=0;F_TM=0;BT_SND=0;//startbitTIMER0_ENABLE;//启动while(!F_TM);while(ii<8){if(inch&1){BT_SND=1;}else{BT_SND=0;}F_TM=0;while(!F_TM);ii++;inch>>=1;}BT_SND=1;F_TM=0;while(!F_TM);#endifTIMER

5、0_DISABLE;//停止timer}//接收一个字符unsignedcharPGetChar(){#ifdefMODE_QUICKTIMER0_ENABLE;F_TM=0;while(!F_TM);//等过起始位ACC0=BT_REC;TL0=TH0;F_TM=0;while(!F_TM);ACC1=BT_REC;F_TM=0;while(!F_TM);ACC2=BT_REC;F_TM=0;while(!F_TM);ACC3=BT_REC;F_TM=0;while(!F_TM);ACC4=BT_REC;F_TM=0;while(!

6、F_TM);ACC5=BT_REC;F_TM=0;while(!F_TM);ACC6=BT_REC;F_TM=0;while(!F_TM);ACC7=BT_REC;F_TM=0;while(!F_TM){if(BT_REC){break;}}TIMER0_DISABLE;//停止timerreturnACC;#elseunsignedcharrch,ii;TIMER0_ENABLE;F_TM=0;ii=0;rch=0;while(!F_TM);//等过起始位while(ii<8){rch>>=1;if(BT_REC){rch

7、=0x8

8、0;}ii++;F_TM=0;while(!F_TM);}F_TM=0;while(!F_TM){if(BT_REC){break;}}TIMER0_DISABLE;//停止timerreturnrch;#endif}//检查是不是有起始位bitStartBitOn(){return(BT_REC==0);}voidmain(){unsignedchargch;TMOD=0x22;/*定时器1为工作模式2(8位自动重装),0为模式2(8位自动重装)*/PCON=00;TR0=0;//在发送或接收才开始使用TF0=0;TH0=(256-

9、96);//9600bps就是1000000/9600=104.167微秒执行的timer是//104.167*11.0592/12=96TL0=TH0;ET0=1;EA=1;PSendChar(0x55);PSendC

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

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

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