模拟串口的实现单片机IO口
一般的单片机都只有一个串口,所以必须模拟一个出来。
/*
sbit TXD1= P1^4;//define p14 as the analog transmit port
sbit RXD1= P1^2;//define p12 as the analog recieve port
*/
#include "REG52.H"
#define uint unsigned int
#define uchar unsigned char
#include
void WaitTF0(void);
void TIMEINI(void)//counter initial
{
TMOD=0x02;
TH0=0xA0;、//9600 BPS
TL0=TH0;
TR0=1;
TF0=0;
}
void WByte(uchar input)//send function
{
uchar i=8;
TR0=1;
TXD1=0;//begin bit
WaitTF0();
//send the Byte
while(i--)
{
TXD1=input&0x01;//send Byte from low bit to high bit
WaitTF0();
input=input>>1;//right shift
}
TXD1=1;//stop bit
WaitTF0();
TR0=0;//stop the counter
}
uchar RByte()//the recieve function
{
uchar Output=0;
uchar i=8;
while(RXD1);
i=i;
i=i;
i=i;
i=i;
i=i;
i=i;
i=i;
TR0=1;//计数器开始工作
WaitTF0();
while(i--)//接收8位数据位
{
Output>>=1;
if(RXD1)Output=Output|0x80;//recieve from the high bit to low bit
WaitTF0();
}
TR0=0;
returnOutput;
}
void WaitTF0(void)//check the counter
{
while(!TF0);
TF0=0;
}
模拟串口单片机IO 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)