串口自动波特率设置程序

发布者:rho27最新更新时间:2018-01-15 来源: eefocus关键字:串口  自动波特率  设置程序 手机看文章 扫描二维码
随时随地手机看文章

在另外一套程序中并没有ISP功能,要实现程序的更新功能,要了解芯片的IAP调用,这一点在芯片的资料上也有介绍,然后就是接收上位机的程序,一般是通过串口,下面介绍一下P89C51RD2的串口自动波特率设置,程序源码主要摘录于《 单片机 与嵌入式系统》,现在贴出完整的源码:

        ;==============================
        ;初始化串口,自适应波特率;上位机
        ;发送两个字符'U',如果接收到一个
        ;字符'U',那么初始化成功
        ;==============================
SERIAL_INIT:
        MOV     TMOD,#02H ;T1工作模式2,定时器
        MOV     T2CON,#30H ;T2工作为串行口波特率发生器
        CLR     A
        MOV     TL2,A
        MOV     TH2,A         ;TH2=0000H
        JNB     P3.0,$       ;若P3.0=0 则等待直到其变为1
        JB       P3.0,$     ;若P3.0=1 则等待直到下降沿到来
        SETB     TR2         ;启动T2定时器
        JNB     P3.0,$       ;若P3.0=0 则等待直到上升沿到来
        CLR     TR2

        ;计算波特率
        MOV     A,TL2
        SWAP   A
        ANL     A,#0FH       ;取TL2高四位
        MOV     R0,A
        MOV     A,TH2
        SWAP   A
        ANL     A,#0F0H     ;取TH2低四位
        ORL     A,R0
        MOV     R0,A         ;组合后送入R0
        MOV     A,TH2
        SWAP   A
        ANL     A,#0FH       ;取TH2高四位
        MOV     R1,A
        MOV     A,R0   ;以上程序实现T2中数据除以16送R1和R0保存
        CPL A         ;低位取反
        MOV     TL2,A
        MOV     RCAP2L,A
        MOV     A,R1
        CPL A         ;高位取反
        MOV     TH2,A
        MOV     RCAP2H,A
        ;校验波特率
        SETB     TR2
        MOV     SCON,#52H   ;串行口方式1,TI=1
RREV0:   ACALL   REV_SEND0 ;接收一个字符"U"
        CJNE     A,#55H,RREV0     ;判断A="U"?
        RET           ;如果收到字符"U",则串口初始化完成

        ;==============================
        ;接收一个数据并返回给上位机
        ;==============================
REV_SEND0:
        JNB     RI, $
        CLR     RI
        MOV     A,SBUF       ;接收数据
        JNB     TI,$
        CLR     TI
        MOV     SBUF,A       ;发送数据
        RET


关键字:串口  自动波特率  设置程序 引用地址:串口自动波特率设置程序

上一篇:RS232通信程序
下一篇:按键的多次击键组合判别技巧汇编源程序

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

串口 COM口 USB-TTL RS-232 RS-485 不同标准 区别
有几个概念玩嵌入式的同志经常搞混。也不怨谁,现在的卖家为了一点可怜的销量都在故意混淆串口的概念。 如果你发现本文有哪里含糊,或者任何一点有可能影响理解的地方,请留言,我会修正以便帮助后来的朋友。   Point (所有要点都在这,请仔细阅读): 1、串口、COM口是指的物理接口形式(硬件)。而TTL、RS-232、RS-485指的是串口的电平标准(电信号)。 2、接线的时候,一般只接GND、RX(接收)、TX(发送)。不会接入Vcc等电源线,避免与目标设备上的供电冲突。            (接线法则:主机的 TX 接目标设备的 RX ,主机的 RX  接目标设备的 TX ,但是很多设计人员为了接线更为直观而故
[嵌入式]
STM8S处理串口中断注意
//溢出处理-如果发生溢出需要先清除ORE,再读DR寄存器 则可清除不断入中断的问题 if(USART_GetFlagStatus(USART1,USART_FLAG_ORE)==SET) { USART_ClearFlag(USART1,USART_FLAG_ORE); //清除ORE USART_ReceiveData(USART1); //读DR }
[单片机]
单片机虚拟串口及界面设置
虚拟串口 虚拟串口是计算机通过软件模拟的串口,当其它设计软件使用到串口的时候,可以通过调用虚拟串口仿真模拟,以查看所设计的正确性。首先要安装虚拟串口设置的软件,网上有很多设置虚拟串口的软件,我用的是VSPD,可试用1个月,试用期过后,该软件将不能使用,但不用担心,所设置的虚拟串口不会消失,可以继续使用。 设置界面: 我设置的是COM3和COM4,软件只能成对设置,主要是因为通信时,一方可以监视另一方,如果仅设置1个虚拟串口的话,如你用COM3发送接收数据,但发送了什么接收到什么,你无法验证其正确与来源。这是人家编写软件的高明之处。软件设置时将所设置的两个虚拟串口对接,这样就可实现发送与接收的监视。从设备管理器中可以看到
[单片机]
单片机虚拟<font color='red'>串口</font>及界面<font color='red'>设置</font>
STM32CubeMX学习教程之八:DAC输出电压,ADC读取电压输出到串口
这一篇教程目标是由DAC输出一个阶梯电压,把它连接到一个ADC,由ADC读取这个电压并输出到串口。 软件: STM32CubeMX V4.25.0 System Workbench V2.4 固件库版本: STM32Cube FW_F1 V1.6.1 硬件: OneNet 麒麟座V2.3 首先用一条杜邦线短接PA4和PA6两个引脚。我们会把PA4配置为DAC,PA6配置为ADC。 在STM32CubeMX中新建项目,选择正确的MCU型号 首先设置RCC和SYS,如下图 配置USART1为Asychronous模式 UART1配置用默认的115200,8, None和
[单片机]
STM32CubeMX学习教程之八:DAC输出电压,ADC读取电压输出到<font color='red'>串口</font>
011课 串口(UART)的使用
一、什么是UART uart:通用异步收发器,简称串口,通过一定的设置好的串口协议来传输数据。 二、UART的组成结构 串口协议的组成 一根发送线、一根接收线、一根地线,双全工的工作方式。 收发器的组成 包括波特率发生器、发送器、接收器、控制逻辑、数据缓存区组成。 三、UART的工作原理 串口协议的工作原理 串口协议由开始位、数据位、校验位、停止位组成。可以设置多少位组成。 开始位:在发送数据之前会将电压拉低,即开始位,接收方此时开始计时; 数据位:发送方将数据以帧为单位,通过高低电平表示数据二进制代码发送出去,接收方在接受带开始位后1.5位后,开始采集接收的数据; 校验位:通过计算数据为和校验位加起来
[单片机]
011课 <font color='red'>串口</font>(UART)的使用
使用51的定时器模拟串口
对于一部分坑爹的51单片机来说,压根就米有串口啊!!特别是用来做小东西的利器:STC15F100系列的,坑爹到串口都米有的地步。当然,我们可以使用软件来模拟串口。可惜,软件模拟的串口速度那个慢(12T单片机),误码率比硬件串口那个高 但是总比没有的好。这个玩意不像硬件一样能支持全双工(12T的。1T的可以,毕竟12T的定时器中断频率快了主程序直接会被阻塞了 )。 另外STC的手册上面说的8位自动重载定时器竟然TMOD等于6!导致我搞了一下午都调不通,没想到老妖写错了 定时器重载模式应该是=2.我现在想把TMOD寄存器的O去掉,再用这个词问候他们全家!! 顺便说一句,1T的51单片机足够在定时器里实现全双工,这就是为什么老妖说真实波
[单片机]
STM32 串口DMA方式接收
STM32 是一款基于ARM Cortex-M3内核的32位MCU,主频最高可达72M。最近因为要在车机上集成TPMS功能, 便开始着手STM32的开发工作,STM32F10x系列共有5个串口(USART1~USART5),支持DMA方式通信,DMA方式由于不需要CPU的参与,而是直接由DMA控制器完成串口数据的读写,因而可以很大程度的提高CPU的利用率。在使用STM32串口之前需要做一系列的初始化工作: 1.RCC(复位和时钟控制寄存器)初始化,启用GPIO、DMA、USART时钟。 2.NVIC(嵌套向量中断控制寄存器)初始化,完成各个硬件中断的配置。 3.USART初始话,配置串口,设置DMA通道等。 4.DMA初始化,完成D
[单片机]
基于ARM7和VC平台的高分辨率红外触摸屏设计
    触摸屏是结合显示器使用的一种透明的绝对定位系统,透明和优良的定位原理是它的技术特征。目前应用在各场合的触摸屏主要有四种:电阻式触摸屏、电容式触摸屏、表面声波触摸屏和红外触摸屏。其中红外触摸屏的视觉效果和定位原理都优于其它触摸屏技术,而且不受电流、电压和静电干扰,可以适宜恶劣的环境条件。但是,与其它三种触摸屏相比,红外触摸屏也存在分辨率低的问题,这一点严重影响了红外触摸屏的实际应用。   为此,本文采用ARM7和VC提出了一种高分辨率的红外触摸屏的实现方案。该方法通过ARM7对接收管和发射管的控制,来实时采集与发射管一一对应的接收管的光通量,然后计算鼠标位置,最后通过VC编程来实现在Windows下的鼠标驱动。   1硬
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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