整理单片机串口小招数

发布者:风清扬yx最新更新时间:2017-07-09 来源: 21ic关键字:单片机串口  串口发送器 手机看文章 扫描二维码
随时随地手机看文章

招一:把函数发生器当串口发送器来用

如果要调试串口,而你只有一块扳没有计算机,这种情况下,可以用函数发生器当串口发送器来用。若波特率是9600,需将函数发生器频率调到9600/2=4800HZ上,输出的TTL电平直接到RXD;如果使用的是RS232接口,频率不变的话就选函数双极性(交流输出)发生器。在这里提醒一下,电平有峰峰值到12VPP就够了。此时单片机收到数据必须是55H,可以用MOV P1、SBUF、在P1上测量电压,没显示也可以测串口了。

理由:55H 是01010101 串口启始位是0,先发55H最低位,于是一帧就是0(启始)101010101(停止)-0(启始)101010101(停止),正好是1/2波特率的方波。

招二:如果串口要实现远距离传输,怎么知道传输的可靠性和信号与传输媒介的适配性呢?

可以发送00H 0FFH 55H,如果这三个值都能正确接受,那网络一定能可靠传输了,这就是以点代面的测试方法。

理由:00H 0FFH是最宽的脉冲和电平(代表能量)最大/最小的脉冲,用信号系统话说他们代表是直流,而55H是最窄脉冲,它代表是最高频和能量中间值。既然最低的能过,最大也能过,最宽能过最窄也能过,大能量(抗干扰强)低能量(代表抗干扰弱)中能量也能过,那么完全不用担心中间值过不了。

招三:用同步头初始实现波特率自适应和判断数据包起始

同步头用谁?——7FH,且开始同步时连续发送。看7FH的发送0起始11111110---1停止。011111110是相当对称的,当你收到两个0中间夹了连续个1的数据后,只要用连续1的时间除以0的持续时间=7,说明这就是同步头了,且一个标准码元持续时间就是码元0的持续时间,其波特率=1/(0码元持续时间)。

举一个管窥的例子,如下:

有一个长度达16位的计数器(长管)只有一个输出例如最高位Q15(在管子末端去窥),现在根据Q15的状态1/0能窥探到什么?

(1)当Q15=1时,说明管子里至少有32768个以上的豹纹(进管子的脉冲)。

(2)Q15=0时,管子里至多有32767豹纹。

(3)如果把管子里的1称着豹纹明花,0为暗花的话,当Q15无论从1到0还是0到1的跳变,管子里一定都只有暗花了(Q14及以下全部复位了)。

(4)知道了这个原理就可以用串联(记数/或者叫推移)方法来读取前Q0到Q14位,例如当前Q15=1,单片机只送一个脉冲进去了Q15就=0了(1-0跳变),说明管子里有65535个豹纹没推出!这种情况最多推移32768次一定能将Q15推移为0,而且此时Q0到Q15就全部复位了(这叫计数复位)。

(5)当Q15=0时请自行分析,唯一要说明的是,当Q15有0到1跳变后是Q0到Q14的复位,有没有必要再推32768次把整个管子推来复位呢,没必要的,32768就是做起始基数。

不采用管窥,要读完这16位的数据需要16根口线,现在呢只需要2根,而可靠性会大大提高。损失的唯一是速度,因为并行读取要比这里的串行读取快,这样做非常值得。

再举一个例子,散热器的选取:

一般来说,稳压器和功率驱动器都是很热的设备,在弱电(强电请别对号入坐)领域,系统散热做的怎么样?是否安全?可以用加电开始时功率芯片上温度上升的速率来判断系统的热安全性。

(1)如果手摸着管子,温度上升很慢,是缓升,即在全功率(极限)常温25度下摸一分种都不烫手,就用对管子本身做高温实验了,这个管子就是在70度高温环境下都能正常工作,可以放心,热量会随着温度升高散热加快最终会恒定下来。

(2)如果摸着瞬间变得很热就取下来,是一定不行的。因为它产生大量的热,即使到了管子的高温极限,它自身高散热性能也抵消不了积热,必然被烧毁。几秒钟的触摸就可以判断了,并不需要做漫长的高温实验,所以说对任何状况的洞悉能力很重要。


关键字:单片机串口  串口发送器 引用地址:整理单片机串口小招数

上一篇:单片机和数字电路怎么抗干扰
下一篇:中颖单片机双核(DSP和MCU)SH99F100基于工业控制中的应用

推荐阅读最新更新时间:2024-03-16 15:35

Python实现的简单的单片机串口助手程序
项目中遇到需要用电脑通过串口来控制单片机IO口,查询了一些资料,可以使用python来实现简单的串口通信, 所以用python实现了一个简单的单片机串口助手,可以将串口助手发往单片机的字符回传给串口助手。也可以 将配合单片机程序对单片机进行控制。 python实现的串口助手代码如下: import time; #需要调用延时函数 import serial #需要调用串口库 import binascii #需要将传送的字符进行转换 if __name__ == '__main__': ser = serial.Serial(); #生成串口 ser.baudrate = 4800 #设
[单片机]
Python实现的简单的<font color='red'>单片机串口</font>助手程序
STM32单片机串口功能实现
STM32学习笔记心得四: =============串口通信================ 1.通信方式 处理器和外围设备进行通信的方式:并行通信和串行通信 并行通信: 传输原理:数据的每一个位都在同时传输 优点: 速度快 缺点: 占用很多引脚资源 串行通信: 传输原理:数据按位的顺序传输 优点: 占用引脚少 缺点: 传输速度慢 -------------------------------------------------- 对于大部分的设备来讲,引脚资源是有限的,所以在通信方面要节约IO口 串口作为MCU的重要外接设备,同时也作为软件调试手段 串行通信按照传送的方向
[单片机]
PL2303单片机串口转USB口实现串行通信
引言 随着科学技术的快速发展,单片机的应用已经渗入到了生产、生活的方方面面,其应用范围越来越广泛,应用前景越来越好。基于单片机的开发应用在目前创新技术发展中一支独秀,非常受广大科技爱好者、在校大学生以及科技开发工作者的青睐。多功能、超强型的单片机在市场上也层出不穷,为单片机的开发应用提供了很好的基础。目前,在单片机的应用系统设计中,USB接口的使用越来越多,简化了单片机系统与外部系统进行信息交换的接口电路,提高了信息交换的可靠性及交换速度。目前市场上提供的各类型单片机品种中,有些型号的单片机在其内部集成有USB接口部件,但大部分的单片机不含有USB接口电路。对芯片内部不含有USB串行接口的单片机,进行USB接口设计时,要通过外
[单片机]
PL2303<font color='red'>单片机串口</font>转USB口实现串行通信
51单片机串口通信实验电路详解
  51单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8004单片机,后来随着Flash rom技术的发展,8004单片机取得了长足的进展,成为应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。   很多公司都有51系列的兼容机型推出,今后很长的一段时间内将占有大量市场。51单片机是基础入门的一个单片机,还是应用最广泛的一种。需要注意的是51系列的单片机一般不具备自编程能力。   单片机的串口通信看起来是很复杂的,主要是因为他用到了更多的寄存器,与前面的知识相比他更具综合能力,写起来考虑的问题自然也变多了。而前面学习过的定时器
[单片机]
51<font color='red'>单片机串口</font>通信实验电路详解
单片机串口通信笔记(中断复习)
把单片机当做一个APP,中断系统就是其中的一项功能。这个功能强不强大,是衡量一个APP的标准。 这项功能的作用是帮助你处理突发事件的。我们做事都有个优先级。你放在中断系统里的事情肯定是要优先处理的事情,所以当中断触发的时候,单片机要停下它当前做的事,来处理中断中的事。也就是说,单片机要在中断触发时,停止运行主函数里的代码,转而运行中断里的代码。等到中断的代码运行完毕之后,再继续运行主函数的代码。 中断这一项功能是要手动打开的,所以在主函数的一开始就要先打开中断系统的开关。也就是EA=1,EA=0表示关掉所有的中断,EA=1表示打开。 中断可以被6种方式触发,有以下六种。 1.外部中断0,当P3.2口输入低电平时触发 2.外
[单片机]
51单片机串口实验时波特率怎么调才合适
一般而言,波特率的高低与串口传输距离和使用环境有关,距离越远,波特率一般越低,使用环境干扰越大,波特率越低,如果是在同一块板上的串口通讯,可以做到很高,比如115200bps,另外最好使用11.0592M之类的晶振,这样标准波特率可以做到没有误差。 通过我的使用经验,一般RS232传输距离在1米以内的话,115200bps的波特率是没有什么问题的。10米以内的话9600bps肯定可以稳定传输(关键是要保证电压,也就是解决压降的问题。)。超过10米的话最好用485了。
[单片机]
单片机串口接收中断老是接收到00 00 00 00
发现一个问题,串口接收中断 Sendstring( Receiving ............ ); //串口向终端发送字符串,结尾处回车换行 Sendstring( ---------------------- ); void revdata(void) interrupt 4 { unsigned char temp; while(RI==0); //if(RI==0) //return; // //如果没有接收中断标志,返回 RI = 0; //清串行中断标志位 temp = SBUF; //接收缓冲器中的字符 Sendchar(temp);
[单片机]
STC12单片机串口2的应用
心得:串口2只能使用 独立波特率发生器 作为波特率发生器; 串口1可以用定时器1做波特率发生器,也可以选择 独立波特率发生器 作为波特率发生器。 stc12c5a.h stc12的头文件从: http://www.51hei.com/mcu/3282.html 这里下载. 双串口.c //******************************(STC12串口2应用)***************************************** // 马梓熔 //2012-12-4 //*****************************************************************
[单片机]
STC12<font color='red'>单片机串口</font>2的应用
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved