1748|0

2015

帖子

0

TA的资源

纯净的硅(中级)

楼主
 

单片机串口编程进阶 [复制链接]

本帖最后由 Aguilera 于 2019-3-10 12:36 编辑

能够在一个标准的MSC51单片机上,编制出来了能够实现通讯的UART通讯程序时,问题并没有结束。您还需要进一步了解的知识还包括下面几个方面:


1,非标准的MSC51单片机


        市面上有大量的“51兼容单片机”,但是,通常这些单片机的兼容性仅仅表现在机器指令系统兼容、最基础的一些特殊寄存器兼容,对于UART来说,未必兼容。


        使用这一类单片机时,您需要注意的是下面几点:


                A,UART工作模式。有可能会牵扯到1到3个不同的寄存器,这些寄存器必须要仔细的检查,设置成您         所需要的通讯编码模式。


                B,UART时钟发生器。有可能并不使用MSC51所使用的时钟发生方法,您需要仔细的阅读单片机规格        书,确定如何设置UART的时钟发生器。


                C,IO端口性质。当您设置使能UART时,相应的IO端口并不一定能够符合您所想的IO性质,需要额外        的对该单片机相应IO端口设置合适的输入、输出性质。


2,32位单片机


        32位单片机在使用UART时,会有更多的可选编程项,并且通常会有配套的IO库来帮助编程者实现功能。仔细的阅读IO库的使用方法,并且选择您所需要的合适的波特率、通讯位数等设置项,然后使用相应的库函数来设置您所需要的通讯设置。


3,软件串口


       有些低成本单片机,不带有硬件UART,或者有些单片机因为复用IO,不得不放弃使用硬件UART时,就需要使用软件模拟的UART了。使用软件模拟UART功能时,通常会使用一个延时软件来模拟波特率发生器的功能(有时也可以使用时钟中断来操作),那么最重要的事情是检查波特率是否合适,通常需要配合示波器观察通讯波形,确定延时是否准确,保证波特率符合要求。


        下面是一个软件UART的例子。该例子使用10位通讯字,P0.0作为TX管脚使用。

#include “reg51.h”

#include
sbit UARTO        = P0^0;
void UART_Delay( void )

{

unsigned char DelayNum;

// 该数据决定延时长短,需要在软件实际运转时,调整该数据

DelayNum = 50;

while( DelayNum -- ){};

// 后面的几个 NOP,对延时进行微调

_nop_( );

_nop_( );

_nop_( );

}

// 这个发送程序以通讯字10位为例

void UART_Send( unsigned char TChar
{
unsigned char UartCnt;
unsigned char SendData;
bit EAState;
EAState = EA;
SendData = TChar;
EA = 0;
UARTO = 0;
UART_Delay( );
// 后面的几个 NOP,对延时进行微调。
// 以保证起始位和后面的数据位在时间上一致
_nop_( );
_nop_( );
for( UartCnt = 0; UartCnt < 8; UartCnt ++ )

{

If( SendData & 0x01 )
UARTO = 1;
else
UARTO = 0;
UART_Delay( );
SendData  >>= 1;
}
UARTO = 1;
UART_Delay( );
UART_Delay( );
EA = EAState;
}

 
点赞 关注

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表