给你个参考,不是这个单片机的,你按照这种思路做
实验程序
用 IO 口模拟串口输出的程序如下:
#include<reg52.h>
sbit TXD1 = P2^0; //用IO口模拟串口发送端
sbit RXD1 = P2^1; //用IO口模拟串口接收端
bit T96; //位变量
//----------------------------------------
void Wait96(void) //延时,控制波特率
{
while(T96); //等待出现0
T96 = 1; //清标志
}
//----------------------------------------
void WByte(char x) //发送一帧数据
{
char i;
TL0 = 160; //初值=256-96=160
TXD1 = 0; //发送起始位0
TR0 = 1; //启动定时器
Wait96(); //等待96T
for (i = 0; i < 8; i++) { //8位数
TXD1 = x & 1; //先传低位
x >>= 1;
Wait96(); //等待96T
}
TXD1 = 1; //发送结束位1
Wait96(); //等待96T
TR0 = 0; //关闭定时器
}
//----------------------------------------
void main()
{
char i;
TMOD = 0x02; //T0定时方式2
TH0 = 160; //初值=256-96=160
IE = 0x82;
T96 = 1; //清标志
while(1) {
for (i = 0x41; i < 0x5b; i++) //A~Z
WByte(i);
WByte(0x0D);
WByte(0x0A);
}
}
//----------------------------------------
void inttime0() interrupt 1 //T0中断
{
T96 = 0; //设置标志
}
|