下载此文档

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


文档分类:通信/电子 | 页数:约24页 举报非法文档有奖
1/24
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/24 下载此文档
文档列表 文档介绍
单片机IO口模拟串口程序(发送+接收)
LT
前一阵一直在做单片机的程序,由于串口不够,需要用IO口来模拟出一个串口。经过若干曲折并参考了一些现有的资料,基本上完成了。现在将完整的测试程序,以及其中一些需要总结的部分贴出来。
程序硬件平台:,STC单片机(兼容51)
/***************************************************************
* 在单片机上模拟了一个串口,
*
***************************************************************/
#include <>
#include <>
#include <>
typedef unsigned char uchar;
int i;
uchar code info[] =
{
0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55
};
sbit newTXD = P2^1;//
void UartInit()
{
SCON = 0x50; // SCON: serail mode 1, 8-bit UART
TMOD |= 0x21; // T0工作在方式1,十六位定时
PCON |= 0x80; // SMOD=1;
TH0 = 0xFE; // 定时器0初始值,延时417us,目的是令模拟串口的波特率为2400bps fosc=
//发送结束位
newTXD=(bit)1;
WaitTF0();
TR0=0;
}
void Sendata()
{
for(i=0;i<sizeof(info);i++)//外层循环,遍历数组
{
WByte(info[i]);
}
}
void main()
{
UartInit();
while(1)
{
Sendata();
}
}
##############################################################################
/***************************************************************
* 模拟接收程序,这个程序的作用从模拟串口接收数据,然后将这些数据发送到实际串口
* 在单片机上模拟了一个串口,
* ,从模拟串口接收数据发至串口
***************************************************************/
#include<>
#include<>
#include<>
typedef unsigned char uchar ;
//这里用来切换晶振频率,
//#define F18_432
#define F11_0592
uchar tmpbuf2[64]={0};
//用来作为模拟串口接收数据的缓存
struct
{
uchar recv :6 ;//tmpbuf2数组下标,用来将模拟串口接收到的数据存放到tmpbuf2中
uchar send :6 ;//tmpbuf2数组下标,用来将tmpbuf2中的数据发送到串口
}tmpbuf2_point={0,0};
sbit newRXD=P3^2 ;//
void UartInit()
{
SCON=0x50 ;// SCON: serail mode 1, 8-bit UART
TMOD|=0x21 ;// TMOD: timer 1, mode 2, 8-bit r

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

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数24
  • 收藏数0 收藏
  • 顶次数0
  • 上传人lu2yuwb
  • 文件大小2.86 MB
  • 时间2021-12-09