原创 有关单片机串口的几个小招数但愿你能用得上

2008-4-30 21:54 5204 6 7 分类: MCU/ 嵌入式

1.可用函数发生器当串口发送器用
如果你要调试串口,只有一块扳,计算机又不在手边,你可以用函数发升器当串口发送器来用,如你的波特率是9600,那你把函数发生器频率调到9600/2=4800HZ上输出TTL电平直接到RXD上就行了,如果是RS232接口,你频率不变就选函数发生器双极性(交流输出)就是了,注意电平有峰峰值12VPP就够了,此时你的单片机收到数据必须是55H,你可以用MOV P1,SBUF,P1上去测电压,这样没显示也可测试串口了.
理论依旧:55H 01010101 串口启始位是0,先发55H最低位,于是一帧就是0(启始)101010101(停止)................0(启始)101010101(停止)......正好是1/2波特率的方波.

2.
如果你的串口要实现远距离传输,你怎么知道传输的可靠性和信号与传输媒介的适配性呢?
你可以这样来做:发送00H 0FFH 55H,如果这三个值都能正确接受,那网络一定能可靠传输了,这就是以点代面的测试方法.
理由:00H 0FFH是最宽的脉冲和电平(代表能量)最大/最小的脉冲,用信号系统话说他们代表是直流,55H是最窄脉冲,它代表是最高频和能量中间值.既然最低的能过,最大也能过,最宽能过最窄也能过,大能量(抗干扰强)低能量(代表抗干扰弱)中能量也能过,你会相信中间的和中不垃圾的过不了吗!

3.
用同步头初始实现波特率自适应和判断数据包起始
同步头用谁?------7FH,且开始同步时连续发送!
7FH的发送  0起始11111110---1停止
011111110多对称!当你收到两个0中间夹了连续个1的数据后,只要用连续1的时间除以0的持续时间=7,说明这就是同步头了,且一个标准码元持续时间就是码元0的持续时间,其波特率=1/(<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />0元持续时间)<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

m5802677_287752981 2014-12-10 08:30

謝謝分享
相关推荐阅读
echo2005 2010-02-06 22:27
单片机自学_4(4×4键盘扫描程序)
说明:本程序为4×4键盘扫描程序,是经过验证显示正确的。功能:4×4键盘,总共16个键,分别依次编号,当按到相应的按键的时候,数码管显示相应的编号。编号依次为:1,2,3,4,5,6,7,8,9,A,...
echo2005 2010-02-05 12:17
自学单片机_3(数码管按流水灯计数)
说明:每一个程序都是通过手头上的现有的片子,通过ISP下载可以实现的,有什么问题,欢迎大家指点,纠正。实现目的:流水灯每左移一次,蜂鸣器响;当8个流水灯分别显示完后,数码管个位开始计数;当数码管个位计...
echo2005 2010-02-03 19:29
连续两天收到EDN从北京邮寄的礼物,将以照片的形式发出,表示感谢!
前天与今天连续两天收到EDN从北京邮寄的礼物,感到很意外,也很惊喜,一个是2010年的礼物,一个是EDN杂志2010年2月份的杂志,娜娜为了让我看到自己成为了“最热心的回帖网友”,特地用特快从北京邮寄...
echo2005 2010-01-30 22:01
自学单片机_2(键盘按键显示)
#include<reg52.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned int...
echo2005 2010-01-29 23:26
单片机自学-1(流水灯每0.5秒移动一位,同时蜂鸣器响,数码管计数)
#include<reg52.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned int...
echo2005 2010-01-29 22:20
LED驱动点滴
              LED驱动点滴<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&...
EE直播间
更多
我要评论
1
6
关闭 站长推荐上一条 /3 下一条