当前位置:文档之家› 80C51串行口通信

80C51串行口通信

80C51串行口通信
80C51串行口通信

80C51串行口通信

80C51串行口的结构

TXD 是80C51单片机的P3.1口

RXD 是80C51单片机的P3.0口

T1 溢出率是定时器1 的溢出率 SMOD

是发送速率倍频的 16分频

T1每溢出一次发送一位,里面复杂咱们不管,每次发送完后TI

申请中断,就是串口每次发送完一个字节去申请一个中断,每接受完一个字节它也要申请一次中断。接受完了通过移位寄存器

SBUF 取走。发送也用SBUF .

单片机上有两个物理上独立的接受,发送缓冲器SBUF,它们占用同一地址99H;接受器是双缓冲结构;发送缓冲器,因为发送时CPU是主动的,不会产生重叠错误。

解释下这句话意思:物理上独立的但是地址相同,但是具体内部构造咱们不去了解它。2个寄存器一个负责发一个负责收,接受是双缓冲的结构。如果去取数据

A=SBUF ; 发送数据

SBUF =A; 就是说SBUF =A 就把A

发出去了。 A= SBUF 就是把 SBUF

的值给取出来给了A。单片机的串口就是这么简单。主要要搞好中断和比特率。

80C51串行口的控制寄存器

SCON

是一个特殊功能寄存器,用以设定串行口的工作方式、接受/发送控制以及设置状态标志;

有此图课看出地址诶98H 能对8整除所以可以进行位操作。

●SMO 和SM1为工作方式选择位,可选择四种工作方式:如下图

串行口有4种工作方式。 0 、1、2、3。 f方式0 可以看出

是移位寄存器就是一位一位移位了,波特率是固定的晶

振除以12

Fosc(oscillator 振荡器),方式1 是10位异步收发器(8位数据),波特率可变。一下 2、3

类同。我们主要掌握方式1就OK。用的最多的也是方式1。波特率用软件控制,设置多少就多少。由于选择方式1

所以SMO SM1

就是 0

1 。

●SM2,多机通信控制位,主要用于方式2和方式3。当接收机的SM2=1时可以利用收到的RB8来控制是否激活RI(RB8=0时不激活RI,收到的信息丢弃;RB8=1时收到的数据进入SBUF,并激活RI,进而在中断服务中将数据从SBUF读走)。当SM2=0时,不论收到的RB8为0和1,均可以使收到的数据进入SBUF,并激活RI(即此时RB8不具有控制RI激活的功能)。通过控制SM2,可以实现多机通信。

在方式0时,SM2必须是0。在方式1时,若SM2=1,则只有接收到有效停止位时,RI才置1。

因为我们就是1个单片机所以SM2就是0了。有效停止位用到RB8

有用到校验的时候

●REN,允许串行接收位。由软件置REN=1,则启动串行口接收数据;若软件置REN=0,则禁止接收。

所以我们需要设置为1,就能接受数据了。 REN=1;

●TB8,在方式2或方式3中,是发送数据的第九位,可

以用软件规定其作用。可以用作数据的奇偶校验位,或

在多机通信中,作为地址帧/数据帧的标志位。

在方式0和方式1中,该位未用。

而我们用方式1 所以不设置也可以,给0也没问题,因为这个寄存器上电时候全都是0.

●RB8,在方式2或方式3中,是接收到数据的第九位,作为奇偶校验位或地址帧/数据帧的标志位。在方式1时,若SM2=0,则RB8是接收到的停止位。

因为我们是方式1所以不用管它了。SM2=0 所以这里接

到是停止位。因为我们不用校验位 TB8

RB8 都设置0就行了。

●TI,发送中断标志位。在方式0时,当串行发送第8

位数据结束时,或在其它方式,串行发送停止位的开始时,由内部硬件使TI置1,向CPU发中断申请。在中断

服务程序中,必须用软件将其清0,取消此中断申请。

●RI,接收中断标志位。在方式0时,当串行接收第8

位数据结束时,或在其它方式,串行接收停止位的中间时,由内部硬件使RI置1,向CPU发中断申请。也必须

在中断服务程序中,用软件将其清0,取消此中断申请。 TI RI

这两位比较重要 TI 是发送停止位硬件置1,

申请中断,响应中端时候必须清0,这个中断就退出了,不然就会又进入中断了。RI 类似。所刚开始的时候是硬件置1

所以不用管。给0 0 就行了。

PCON 寄存器中有一位SMOD与串行口工作有关:

PCON寄存器是单片机的跟电源有关系的。

比如让单片机进入、休眠、掉电、低功耗状态等。其他

几位可以去找找看资料。

SMOD(PCON.7)

波特率倍增位。在串行口方式1、方式2、方式3时,波特率与SMOD有关,当SMOD=1时,波特率提高一倍。复位时,SMOD=0。

就是工作的时候你想让波特率加倍就把SMOD

=1就行了。咱们不用设置它

80C51串行口的工作方式

一、方式0

方式0时,串行口为同步移位寄存器的输入输出方式。主要用于扩展并行输入或输出口。数据由RXD(P3.0)引脚输入或输出,同步移位脉冲由TXD(P3.1)引脚输出。发送和接收均为8位数据,低位在先,高位在后。波特率固定为fosc/12。

1、方式0输出

方式0咱们就不用看了

二、方式1

方式1是10位数据的异步通信口。TXD为数据发送引脚,RXD为数据接收引脚,传送一帧数据的格式如图所示。

其中1位起始位,8位数据位,1位停止位。

写入SBUF 就是SBUF = 0X01

这就写入了、停一下 TXD 就发起始数据

停止停止开始的时候TI就置1.说明数据就发完了。

2、方式1输入

方式1的输入就是接受端

用软件置REN为1时,接收器以所选择波特率的16倍速率采样RXD引脚电平,检测到RXD引脚输入电平发生负跳变时,则说明起始位有效,将其移入输入移位寄存器,并开始接收这一帧信息的其余位。接收过程中,数据从输入移位寄存器右边移入,起始位移至输入移位寄存器最左边时,控制电路进行最后一次移位。当RI=0,且SM2=0(或接收到的停止位为1)时,将接收到的9位数据的前8位数据装入接收SBUF,第9位(停止位)进入RB8,并置RI=1,向CPU请求中断。

这样理解是收到起始位就收数据从低位开始收收到停止位中间 RI 置1

三、方式2和方式3(我这里提供点资料,用的几率不大)

方式2或方式3时伟11位数据的异步通信口。TXD位数

据发送引脚,RXD 为数据的接受引脚。

方式2和方式3时起始位1位,数据9位(含1位附加的第9位,发送时为SCON中的TB8,接收时为RB8),停止位1位,一帧数据为11位。方式2的波特率固定为晶振频率的1/64或1/32,方式3的波特率由定时器T1的溢

出率决定。

1、方式2和方式3输出

发送开始时,先把起始位0输出到TXD引脚,然后发送移位寄存器的输出位(D0)到TXD引脚。每一个移位脉冲都使输出移位寄存器的各位右移一位,并由TXD引脚输出。

第一次移位时,停止位“1”移入输出移位寄存器的第9位上,以后每次移位,左边都移入0。当停止位移至输出位时,左边其余位全为0,检测电路检测到这一条件时,使控制电路进行最后一次移位,并置TI=1,向CPU 请求中断。

2、方式2和方式3输入

接收时,数据从右边移入输入移位寄存器,在起始位0移到最左边时,控制电路进行最后一次移位。当RI=0,且SM2=0(或接收到的第9位数据为1)时,接收到的数据装入接收缓冲器SBUF和RB8(接收数据的第9位),置RI=1,向CPU请求中断。如果条件不满足,则数据丢失,且不置位RI,继续搜索RXD引脚的负跳变。

四、波特率的计算这个重点一定要掌握

在串行通信中,收发双方对发送或接收数据的速率要有

约定。通过软件可对单片机串行口编程为四种工作方式,其中方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可变的,由定时器T1的溢出率来决定。

串行口的四种工作方式对应三种波特率。由于输入的移

位时钟的来源不同,所以,各种方式的波特率计算公式

也不相同。

方式0的波特率 = fosc/12

方式2的波特率 =(2SMOD/64)·

fosc

smod 要么0 要么1 32分子1 和64分子1

晶振频率

方式1的波特率 =(2SMOD/32)·(T1溢出率)

方式3的波特率 =(2SMOD/32)·(T1溢出率)这就是公式不要问为什么了,T1的溢出率怎么计算呢?看下面

当T1作为波特率发生器时,最典型的用法是使T1工作在自动再装入的8位定时器方式(即方式2,且TCON的TR1=1,以启动定时器)。这时溢出率取决于TH1中的计数值。

定时器作为波特率发生器时,就是定时器工作在方式2 自动重装

T1 溢出率 = fosc /{12×[256 -(TH1)]}

T1 溢出率就是1秒钟溢出多少次。如果你装满就255

256-255=1 12*1 =12 12M晶振除以12

=1 所以就是1秒溢出一次。依次类推你算下。

在单片机的应用中,常用的晶振频率为:12MHz和

11.0592MHz。所以,选用的波特率也相对固定。常用的串行口波特率以及各参数的关系如表所示。

现在算一个波特率

如11.0592的晶振

我们直接设置 SMOD =0 那么2的0次方等于1 因为 11059200 除以 9600 =

1152 、

为什么选用11.0592的晶振就是波特率好算上面是一个整数1152

所以波特率容易算。如果用12MHZ

结果会有小数。就会有误差不精确。如果串口通讯就会出错,因为晶振采样率采错位置了。

得到TH1 = 253 换成16进制=FD 查上表

一致。现在很多人图方便直接用软件来计算了。但是这个过程还是必须的要了解的。还有一点是就是SMOD 这一位是设置倍频的。

串行口工作之前,应对其进行初始化,主要是设置产生波特率的定时器1、串行口控制和中断控制。具体步骤如下:

确定T1的工作方式(编程TMOD寄存器);

计算T1的初值、装载TH1/TL1;

启动T1(变成TCON中的TR1位)

确定串行口控制(编程SCON寄存器);

串行口在中断方式工作时,要进行中断设置(编程IE、IP寄存器)。(就是如果用中断还得配置串行口优先级IP

寄存器 IE寄存器)

单片机串行口应用举例

在计算机组成的测控系统中,经常要利用串行通信方式

进行数据传输。80C51单片机的串行口为计算机间的通

信提供了极为便利的条件。利用单片机的串行口还可以

方便地扩展键盘和显示器,对于简单的应用非常便利。

这里仅介绍单片机串行口在通信方面的应用。

一、单片机与单片机的通信。

(一)、点对点的通信

1、硬件连接

(二)、多机通信

个人理解:这个串口多机通信其实跟I2C

同步通信协议差不多。区别是串口是异步的。而I2C是

同步通信的。是在时钟沿的跳变期间发生变化作为开始。

(之前本人学过ARM

I2C总线协议,大概还记得点)。

1、硬件连接

单片机构成的多机系统常采用总线型主从式结构。所谓

主从式,即在数个单片机中,有一个是主机,其余的是

从机,从机要服从主机的调度、支配。80C51单片机的

串行口方式2和方式3适于这种主从式的通信结构。当然采用不同的通信标准时,还需进行相应的电平转换,有

时还要对信号进行光电隔离。在实际的多机应用系统中,常采用RS-485串行标准总线进行数据传输。

2、通信协议

所有从机的SM2位置1,处于接收地址帧状态。

主机发送一地址帧,其中8位是地址,第9位为地址/数据的区分标志,该位置1表示该帧为地址帧。

所有从机收到地址帧后,都将接收的地址与本机的地址

比较。对于地址相符的从机,使自己的SM2位置0(以接

收主机随后发来的数据帧),并把本站地址发回主机作为应答;对于地址不符的从机,仍保持SM2=1,对主机随

后发来的数据帧不予理睬。

从机发送数据结束后,要发送一帧校验和,并置第9位(TB8)为1,作为从机数据传送结束的标志。

主机接收数据时先判断数据接收标志(RB8),若RB8=1,表示数据传送结束,并比较此帧校验和,若正确则回送

正确信号00H,此信号命令该从机复位(即重新等待地址帧);若校验和出错,则发送0FFH,命令该从机重发数据。若接收帧的RB8=0,则存数据到缓冲区,并准备接

收下帧信息。

主机收到从机应答地址后,确认地址是否相符,如果地

址不符,发复位信号(数据帧中TB8=1);如果地址相符,则清TB8,开始发送数据。

从机收到复位命令后回到监听地址状态(SM2=1)。否则开始接收数据和命令。

3、应用程序

主机发送的地址联络信号为:00H,01H,02H ,…

…(即从机设备地址),地址FFH为命令各从机复位,即恢复SM2=1。

主机命令编码为:01H,主机命令从机接收数据;02H,主机命令从机发送数据。其它都按02H对待。

RRDY=1:表示从机准备好接收。

TRDY=1:表示从机准备好发送。

ERR=1:表示从机接收的命令是非法的。

程序分为主机程序和从机程序。约定一次传递数据为16个字节,以01H地址的从机为例。

我们重点是要会程序去控制单片机和计算机来传输数据。

-------------------------------------------------------------------------------------

写一个程序:

思路:首先得让单片机能收到数据,这数据怎么给单片机呢?我们用计算机来发,用串口调试助手,记住不能和下载程序工具STC-ISP用同一个串口,不然会冲突,

单片机原理及接口技术 课后习题答案 第六 七章

单片机原理及接口技术课后习题答案李朝青 课后习题答案2009-11-22 15:07 阅读510 评论1 字号:大中小https://www.doczj.com/doc/5517744767.html,第六章 第6章习题答案 1、定时器模式2有什么特点?适用于什么场合? 答: (1)模式2把TL0(或TL1)配置成一个可以自动重装载的8位定时器/计数器。TL0计数溢出时不仅使溢出中断标志位TF0置1,而且还自动把 TH0中的内容重新装载到TL0中。TL0用作8位计数器,TH0用以保 存初值。 (2)用于定时工作方式时间(TF0溢出周期)为,用于计数工作方式时,最大计数长度(TH0初值=0)为28=256个外部脉冲。 这种工作方式可省去用户软件重装初值的语句,并可产生相当精确定时时间,特别适于作串行波特率发生器。 2、单片机内部定时方式产生频率为100KH Z等宽矩形波,假定单片机的晶振频率为12MH Z,请编程实现。 答: T0低5位:1BH T0高8位:FFH MOV TMOD,#00H ;设置定时器T0工作于模式0

MOV TL0,#1BH ;设置5ms定时初值 MOV TH0,#0FFH SETB TR0 ;启动T0 LOOP:JBC TF0,L1 ;查询到定时时间到?时间到转L1 SJMP LOOP ;时间未到转LOOP,继续查询L1:MOV TL0,#1BH ;重新置入定时初值 MOV TH0,#0FFH CPL P1.0 ;输出取反,形成等宽矩形波 SJMP LOOP ;重复循环 3、89C51定时器有哪几种工作模式?有何区别? 答:有四种工作模式:模式0,模式1,模式2,模式3 (1)模式0:选择定时器的高8位和低5位组成一个13位定时器/计数器。 TL低5位溢出时向TH进位,TH溢出时向中断标志位TF进位,并 申请中断。 定时时间t=(213-初值)×振荡周期×12;计数长度位213=8192个外部脉冲 (2)模式1:与模式0的唯一差别是寄存器TH和TL以全部16位参与操作。 定时时间t=(216-初值)×振荡周期×12;计数长度位216=65536个外部 脉冲 (3)模式2:把TL0和TL1配置成一个自动重装载的8位定时器/计数器。 TL用作8位计数器,TH用以保存初值。TL计数溢出时不仅使TF0 置1,而且还自动将TH中的内容重新装载到TL中。 定时时间t=(28-初值)×振荡周期×12;计数长度位28=256个外部脉冲 (4)模式3:对T0和T1不大相同 若设T0位模式3,TL0和TH0被分为两个相互独立的8位计数器。TL0为8位计数器,功能与模式0和模式1相同,可定时可计数。 TH0仅用作简单的内部定时功能,它占用了定时器T1的控制位TR1和中断标志位TF1,启动和关闭仅受TR1控制。 定时器T1无工作模式3,但T0在工作模式3时T1仍可设置为0~2。

51单片机与PC机通信资料

《专业综合实习报告》 专业:电子信息工程 年级:2013级 指导教师: 学生:

目录 一:实验项目名称 二:前言 三:项目内容及要求 四:串口通信原理 五:设计思路 5.1虚拟串口的设置 5.2下位机电路和程序设计 5.3串口通信仿真 六:电路原理框图 七:相关硬件及配套软件 7.1 AT89C51器件简介 7.2 COMPIN简介 7.3 MAX232器件简介 7.4友善串口调试助手 7.5 虚拟串口软件Virtual Serial Port Driver 6.9八:程序设计 九:proteus仿真调试 十:总结 十一:参考文献 一:实验项目名称:

基于51单片机的单片机与PC机通信 二:前言 在国内外,以PC机作为上位机,单片机作为下位机的控制系统中,PC机通常以软件界面进行人机交互,以串行通信方式与单片机进行积极交互,而单片机系统根据被控对象配置相应的前向,后向信息通道,工作时作为主控机测对象,作为被控机接受PC机监督,指挥,定期或受命向上位机提供对象及本身的工作状态信息。 目前,随着集成电路集成度的增加,电子计算机向微型化和超微型化方向发展,微型计算机已成为导弹,智能机器人,人类宇宙和太空和太空奥妙复杂系统不可缺少的智能部件。在一些工业控制中,经常需要以多台单片机作为下位机执行对被控对象的直接控制,以一台PC机为上位机完成复杂的数据处理,组成一种以集中管理、分散控制为特点的集散控制系统。 为了提高系统管理的先进性和安全性,计算机工业自动控制和监测系统越来越多地采用集总分算系统。较为常见的形式是由一台做管理用的上位主计算机(主机)和一台直接参与控制检测的下位机(单片机)构成的主从式系统,主机和从机之间以通讯的方式来协调工作。主机的作用一是要向从机发送各种命令及参数:二是要及时收集、整理和分析从机发回的数据,供进一步的决策和报表。从机被动地接受、执行主机发来的命令,并且根据主机的要求向主机回传相应烦人实时数据,报告其运行状态。 用串行总线技术可以使系统的硬件设计大大简化、系统的体积减小、可靠性提高。同时,系统的更改和扩充极为容易。MCS-51系列单片机,由于内部带有一个可用于异步通讯的全双工的穿行通讯接口,阴齿可以很方便的构成一个主从式系统。 串口是计算机上一种非常通用的设备通讯协议,大多数计算机包容两个基于RS232的串口。串口同时也是仪器仪表设备通过用的通讯协议,很多GPIB兼容的设备也带有RS-232口。同时串口通讯协议也可以用于获取远程采集设备数据。所以,深入的理解学习和研究串口通信相关知识是非常必要的。此次毕业设计选题为“PC机与MCS-51单片机的串口通讯”,使用51单片机来实现一个主从式

汇编语言实现串口通信(PC和单片机间)教学文案

8.用C语言或汇编语言实现串口通信(PC和单片机间) 上位机和下位机的主从工作方式为工业控制及自动控制系统所采用。由于PC 机分析能力强、处理速度更快及单片机使用灵活方便等特点,所以一般都将PC 机作为上位机,单片机作为下位机,二者通过RS-232或者RS-485接收、发送数据和传送指令。单片机可单独处理数据和控制任务,同时也将数据传送给PC机,由PC机对这些数据进行处理或显示 1 硬件电路的设计 MCS-51单片机有一个全双工的串行通讯口UART,利用其RXD和TXD与外界进行通信,其内部有2个物理上完全独立的接收、发送缓冲器SBUF,可同时发送和接收数据。所以单片机和PC机之间可以方便地进行串口通讯。单片机串口有3条引线:TXD(发送数据),RXD(接收数据)和GND(信号地)。因此在通信距离较短时可采用零MODEM方式,简单三连线结构。IBM-PC机有两个标准的RS-232串行口,其电平采用的是EIA电平,而MCS-51单片机的串行通信是由TXD(发送数据)和RXD(接收数据)来进行全双工通信的,它们的电平是TTL电平;为了PC机与MCS-51 机之间能可靠地进行串行通信,需要用电平转换芯片,可以采用MAXIM公司生产的专用芯片MAX232进行转换。电路如图1所示。硬件连接时,可从MAX232中的2路发送器和接收器中任选一路,只要注意发送与接收的引脚对应关系即可。接口电路如图3.5所示。

总体设计按照整体设计思路方案绘制原理图如下所示: 2 系统软件设计 软件设计分上位机软件设计和下位机软件设计。这两部分虽然在不同的机器上编写和运行,但它们要做的工作是对应的:一个发送,另一个接收。为了保证数据通信的可靠性,要制定通信协议,然后各自根据协议分别编制程序。现约定通信协议如下:PC机和单片机都可以发送和接收。上位机和下位机均采用查询方式发送控字符和数据、中断方式接收控制字符和数据。采用RS-232串口异步通信, 1上位PC机与下位单片机异步串行通信的通信协议

C51单片机和电脑串口通信电路图

C51单片机和电脑串口通信电路图与源码 51单片机有一个全双工的串行通讯口,所以单片机和电脑之间可以方便地进行串口通讯。进行串行通讯时要满足一定的条件,比如电脑的串口是RS232电平的,而单片机的串口是TTL电平的,两者之间必须有一个电平转换电路,我们采用了专用芯片MAX232进行转换,虽然也可以用几个三极管进行模拟转换,但是还是用专用芯片更简单可靠。我们采用了三线制连接串口,也就是说和电脑的9针串口只连接其中的3根线:第5脚的GND、第2脚的RXD、第3脚的TXD。这是最简单的连接方法,但是对我们来说已经足够使用了,电路如下图所示,MAX232的第10脚和单片机的11脚连接,第9脚和单片机的10脚连接,第15脚和单片机的20脚连接。 串口通讯的硬件电路如上图所示 在制作电路前我们先来看看要用的MAX232,这里我们不去具体讨论它,只要知道它是TTL和RS232电平相互转换的芯片和基本的引脚接线功能就行了。通常我会用两个小功率晶体管加少量的电路去替换MAX232,可以省一点,效果也不错,下图就是MAX232的基本接线图。

按图7-3加上MAX232就可以了。这大热天的拿烙铁焊焊,还真的是热气迫人来呀:P串口座用DB9的母头,这样就可以用买来的PC串口延长线进行和电脑相连接,也可以直接接到电脑com口上。

为了能够在电脑端看到单片机发出的数据,我们必须借助一个WINDOWS软件进行观察,这里我们利用一个免费的电脑串口调试软件。本串口软件在本网站https://www.doczj.com/doc/5517744767.html,可以找到 软件界面如上图,我们先要设置一下串口通讯的参数,将波特率调整为4800,勾选十六进制显示。串口选择为COM1,当然将网站提供的51单片机实验板的串口也要和电脑的COM1连接,将烧写有以下程序的单片机插入单片机实验板的万能插座中,并接通51单片机实验板的电源。

51单片机与PC串口通讯

目录 第1章需求分析 ............................................................................................................................ - 1 - 1.1课题名称 (1) 1.2任务 (1) 1.3要求 (1) 1.4设计思想 (1) 1.5课程设计环境 (1) 1.6设备运行环境 (2) 1.7我在本实验中完成的任务 (2) 第2章概要设计 ............................................................................................................................ - 2 - 2.1程序流程图 (2) 2.2设计方法及原理 (3) 第3章详细设计 ............................................................................................................................ - 3 - 3.1电路原理 (3) 3.1.1STC89C52芯片 ............................................................................................................. - 3 -3.2串口通信协议 (4) 3.3程序设计 (5) 3.3.1主程序模块 .................................................................................................................... - 5 - 3.3.2串口通讯模块 ................................................................................................................ - 6 - 3.3.3控制部分文件 ................................................................................................................ - 8 - 3.3.4公共部分模块 .............................................................................................................. - 11 -3.4电路搭建 (12) 3.4.1电路原理图 .................................................................................................................. - 12 -第4章上位机关键代码分析 ...................................................................................................... - 12 - 4.1打开串口操作 (12) 4.2后台线程处理串口程序 (15) 4.3程序运行界面 (18) 第5章课程设计总结与体会 ...................................................................................................... - 19 -第6章致谢 .................................................................................................................................. - 19 -参考文献........................................................................................................................................... - 19 -

MCS-51单片机串行口工作方式与波特率计算举例

MCS-51单片机串行口工作方式与波特率计算举例 1)方式0 方式0是外接串行移位寄存器方式。工作时,数据从RXD串行地输入/输出,TXD 输出移位脉冲,使外部的移位寄存器移位。波特率固定为fosc/12(即,TXD每机器周期输出一个同位脉冲时,RXD接收或发送一位数据)。每当发送或接收完一个字节,硬件置TI=1或RI=1,申请中断,但必须用软件清除中断标志。 实际应用在串行I/O口与并行I/O口之间的转换。 2)方式1 方式1是点对点的通信方式。8位异步串行通信口,TXD为发送端,RXD为 接收端。一帧为10位,1位起始位、8位数据位(先低后高)、1位停止位。波特率由T1或T2的溢出率确定。 在发送或接收到一帧数据后,硬件置TI=1或RI=1,向CPU申请中断;但必须用软件清除中断标志,否则,下一帧数据无法发送或接收。 (1)发送:CPU执行一条写SBUF指令,启动了串行口发送,同时将1写入 输出移位寄存器的第9位。发送起始位后,在每个移位脉冲的作用下,输出移位寄存器右移一位,左边移入0,在数据最高位移到输出位时,原写入的第9位1的左边全是0,检测电路检测到这一条件后,使控制电路作最后一次移位,/SEND 和DATA无效,发送停止位,一帧结束,置TI=1。 (2)接收:REN=1后,允许接收。接收器以所选波特率的16倍速率采样RXD 端电平,当检测到一个负跳变时,启动接收器,同时把1FFH写入输入移位寄存器(9位)。由于接、发双方时钟频率有少许误差,为此接收控制器把一位传送时间16等分采样RXD,以其中7、8、9三次采样中至少2次相同的值为接收值。接收位从移位寄存器右边进入,1左移出,当最左边是起始位0时,说明已接收8位数据,再作最后一次移位,接收停止位。此后: A、若RI=0、SM2=0,则8位数据装入SBUF,停止位入RB8,置RI=1。

51单片机usart通信程序(有CRC校验)

#include #include #include #define uchar unsigned char #define uint unsigned int //uchar const table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; uchar p[]={0x01,0x03,0x25,0x23,0x00,0x01}; /* CRC 高位字节值表*/ uchar const crchi[] = { 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0/**/, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40 } ; /* CRC低位字节值表*/ uchar const crclo[] = { 0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06/**/, 0x07, 0xC7, 0x05, 0xC5, 0xC4, 0x04, 0xCC, 0x0C, 0x0D, 0xCD, 0x0F, 0xCF, 0xCE, 0x0E, 0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09, 0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9, 0x1B, 0xDB, 0xDA, 0x1A, 0x1E, 0xDE, 0xDF, 0x1F, 0xDD, 0x1D, 0x1C, 0xDC, 0x14, 0xD4, 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3,

MCS-51单片机串行接口

第七章MCS-51单片机串行接口 第一节串行通信的基本概念 (一)学习要求 1.掌握串行通信的基本概念。 2. 掌握异步通信和同步通信的区别。 (二)内容提要 一:基本概念及分类 串行通信是将数据的各位一位一位地依次传送。适合于计算机之间、计算机与外部设备之间的远距离通信。 串行通信从传输方式分为: 单工方式、半双工方式、全双工方式。 从接收方式来说,串行通信有两种方式: 异步通信方式、同步通信方式。 二:串行口的功能 MCS-51单片机中的异步通信串行接口能方便地与其他计算机或传送信息的外围设备(如串行打印机、CPU终端等)实现双机、多机通信。 串行口有4种工作方式,见表7-1。方式0并不用于通信,而是通过外接移位寄存器芯片实现扩展并行I/O接口的功能。该方式又称为移位寄存器方式。方式1、方式2、方式3都是异步通信方式。方式1是8位异步通信接口。一帧信息由10位组成,其格式见图7-2a。方式1用于双机串行通信。方式2、方式3都是9位异步通信接口、一帧信息中包括9位数据,1位起始位,1位停止位,其格式见图7-2b。方式2、方式3的区别在于波特率不同,方式2、方式3主要用于多机通信,也可用于双机通信。 表7-1 (三)习题与思考题 1、什么是并行通信?什么是串行通信?各有何优缺点? 答:并行通信指数据的各位同时传输的通信方式,串行通信是指各位数据逐位顺序传输的通信方式。 2、什么是异步通信?什么是同步通信?各有何优缺点? 3、什么是波特率?某异步串行通信接口每分钟传送1800个字符,每个字符由11位组成,请计算出传送波特率。 第二节MCS-51串行接口的组成 (一)学习要求

【最新编排】基于51单片机的DHT11串口通讯

//****************************************************************// // DHT 使用范例 //单片机 AT89S5 或 STC89C5 RC // 功能 串口发送温湿度数据波特率 9600 //硬件连接 P .0口为通讯口连接DHT ,DHT 地电源和地连接单片机地 电源和地 单片机串口加MAX 3 连接电脑 // 公司 济南联诚创发科技有限公司 //****************************************************************// #include #include // typedef unsigned char U8; /* defined for unsigned 8-bits integer variable 无符号8位整型变量 */ typedef signed char S8; /* defined for signed 8-bits integer variable 有符号8位整型变量 */ typedef unsigned int U 6; /* defined for unsigned 6-bits integer variable 无符号 6位整型变量 */ typedef signed int S 6; /* defined for signed 6-bits integer variable 有符号 6位整型变量 */ typedef unsigned long U3 ; /* defined for unsigned 3 -bits integer variable 无符号3 位整型变量 */ typedef signed long S3 ; /* defined for signed 3 -bits integer variable 有符号3 位整型变量 */ typedef float F3 ; /* single precision floating point variable (3 bits) 单精度浮点数 3 位长度 */ typedef double F64; /* double precision floating point variable (64bits) 双精度浮点数 64位长度 */ // #define uchar unsigned char #define uint unsigned int #define Data_0_time 4 //----------------------------------------------// //----------------IO口定义区--------------------// //----------------------------------------------// sbit P _0 = P ^0 ; sbit P _ = P ^ ; sbit P _ = P ^ ; sbit P _3 = P ^3 ;

51单片机串口通信,232通信,485通信,程序

51单片机串口通信,232通信,485通信,程序代码1:232通信 #include #define uchar unsigned char #define uint unsigned int uchar flag,a,i; uchar code table[]="i get"; void init() { TMOD=0X20; TH1=0XFD; TH0=0XFD; TR1=1; REN=1; SM0=0; SM1=1; EA=1; ES=1; } void main() { init();

while(1) { if(flag==1) { ES=0; for(i=0;i<6;i++) { SBUF=table[i]; while(!TI); TI=0; } SBUF=a; while(!TI); TI=0; ES=1; flag=0; } } } void ser() interrupt 4 {

RI=0; a=SBUF; flag=1; } 代码2:485通信 #include #include"1602.h" #define uchar unsigned char #define uint unsigned int unsigned char flag,a,i; uchar code table[]="i get "; void init() { TMOD=0X20; TH1=0Xfd; TL1=0Xfd; TR1=1; REN=1; SM0=0; SM1=1; EA=1; ES=1;

} void main() { init_1602(); init(); while(1) { if(flag==1) { display(0,a); } } } void ser() interrupt 4 { RI=0; a=SBUF; flag=1; }

(完整版)第六章80C51的串行口习题及答案

第六章80C51的串行口习题及答案 1、80C51单片机串行口有几种工作方式?如何选择?简述其特点? 答:80C51单片机串行口有4种工作方式。各方式的特点: 方式0:串行口为同步移位寄存器的输入输出方式。主要用于扩展并行输入或输出口。波特率固定为晶振频率的1/12。 方式1:为10位数据异步通信口。波特率可变。 方式2或方式3:为11位数据的异步通信口。方式2波特率固定,相对于固定的晶振频率只有两种波特率。方式3波特率可变。 使用时,根据需要和各方式的特点配合选择。 2、串行通信的接口标准有哪几种? 答:串行通信接口标准有:1.RS_232C接口;2.RS_422A接口;3. RS_485接口。 3、在串行通信中,通信速率与传输距离之间的关系如何? 答:在串行通信中,传输距离与传输速率的关系:当传输线使用每0.3m(约1ft)有50pF电容的非平衡屏蔽双绞线时,传输距离随传输速率的增加而减小。 5、利用单片机串行口扩展24个发光二极管和8个按键,要求画出电路图并编 写程序,使24个发光二极管按照不同的顺序发光(发光的时间间隔为1s)。答:实现电路图如下: 扩展I/O口时使用方式0,波特率固定,实现程序如下: BOOT:CLR EA

MOV SCON,#10H CLR P1.0 ;关闭I0扩展口 CLR P1.1 CLR P1.2 CLR P1.3 ;对键盘扩展芯片165使能 MAIN: SETB P1.0 ;对第一个扩展IO口芯片使能 ACALL DISPLAY CLR P1.0 SETB P1.1 ;第一个扩展IO口顺序显示完毕,对第二个扩展IO芯片使能 ACALL DISPLAY CLR P1.1 SETB P1.2 ACALL DISPLAY CLR P1.2 SJMP MAIN ;循环显示 DISPLAY: MOV A,#00000001b ;从第一个开始 MOV R4,#8 ;送显示长度 LOOP: MOV SBUF, A CALL DELAY1S DJNZ R4, LOOP RET END 6、编制图6.30的中断方式的数据接收程序。

单片机原理及应用第四版林立第七章选择题答案

第七章选择题答案 (1)从串口接收缓冲器中将数据读入到变量temp中的C51语句是______。 A.temp = SCON;B.temp = TCON;C.temp = DPTR;D.temp = SBUF; (2)全双工通信的特点是,收发双方______。 A.角色固定不能互换 B.角色可换但需切换 C .互不影响双向通信 D.相互影响互相制约 (3)80C51的串口工作方式中适合多机通信的是______。 A.工作方式0B.工作方式1C.工作方式2D.工作方式3 (4)80C51串行口接收数据的次序是下述的顺序______。 ①接收完一帧数据后,硬件自动将SCON的RI置1 ②用软件将RI清零 ③接收到的数据由SBUF读出④置SCON的REN为1,外部数据由RXD(P3.0)输入 A.①②③④B.④①②③C.④③①②D.③④①② (5)80C51串行口发送数据的次序是下述的顺序______。 ①待发数据送SBUF ②硬件自动将SCON的TI置1 ③经TXD(P3.1)串行发送一帧数据完毕④用软件将SCON的TI清零 A.①③②④B.①②③④C.④③①②D.③④①② (6)80C51用串口工作方式0时______。 A.数据从RXD串行输入,从TXD串行输出 B.数据从RXD串行输出,从TXD串行输入 C.数据从RXD串行输入或输出,同步信号从TXD输出 D.数据从TXD串行输入或输出,同步信号从RXD输出 (7)在用接口传送信息时,如果用一帧来表示一个字符,且每帧中有一个起始位、一个结束位和若干个数据位,该传送属于______。 A.异步串行传送B.异步并行传送C.同步串行传送D.同步并行传送 (8)80C51的串口工作方式中适合点对点通信的是______。 A.工作方式0B.工作方式1C.工作方式2D.工作方式3 (9)80C51有关串口内部结构的描述中______是不正确的。 A.51内部有一个可编程的全双工串行通信接口 B.51的串行接口可以作为通用异步接收/发送器,也可以作为同步移位寄存器 C.串行口中设有接收控制寄存器SCON D.通过设置串口通信的波特率可以改变串口通信速率 (10)80C51有关串口数据缓冲器的描述中______是不正确的。 A.串行口中有两个数据缓冲器SUBF B.两个数据缓冲器在物理上是相互独立的,具有不同的地址 C.SUBF发只能写入数据,不能读出数据 D.SUBF收只能读出数据,不能发送数据 (11)80C51串口发送控制器的作用描述中______是不正确的。 A.作用一是将待发送的并行数据转为串行数据 B.作用二是在串行数据上自动添加起始位、可编程位和停止位 C.作用三是在数据转换结束后使中断请求标志位TI自动置1 D.作用四是在中断被响应后使中断请求标志位TI自动清零 (12)下列关于80C51串口接收控制器的作用描述中______是不正确的。

51单片机与串口通信代码

51单片机与串口通信代码 2011年04月22日 17:18 本站整理作者:佚名用户评论(0) 关键字:串口通信(35) 串口调试 1. 发送:向总线上发命令 2. 接收:从总线接收命令,并分析是地址还是数据。 3. 定时发送:从内存中取数并向主机发送. 经过调试,以上功能基本实现,目前可以通过上位机对单片机进行实时控制。 程序如下: //这是一个单片机C51串口接收(中断)和发送例程,可以用来测试51单片机的中断接收 //和查询发送,另外我觉得发送没有必要用中断,因为程序的开销是一样的 #i nclude #i nclude #i nclude #define INBUF_LEN 4 //数据长度 unsigned char inbuf1[INBUF_LEN]; unsigned char checksum,count3 , flag,temp,ch; bit read_flag=0; sbit cp=P1^1; sbit DIR=P1^2; int i; unsigned int xdata *RAMDATA; /*定义RAM地址指针*/ unsigned char a[6] ={0x11,0x22,0x33,0x44,0x55,0x66} ; void init_serialcomm(void) { SCON=0x50; //在11.0592MHz下,设置串行口波特率为9600,方式1,并允许接收

PCON=0x00; ES=1; TMOD=0x21; //定时器工作于方式2,自动装载方式 TH0=(65536-1000)%256; TL0=(65536-1000)/256; TL1=0xfd; TH1=0xfd; ET0=1; TR0=1; TR1=1; // TI=0; EA=1; // TI=1; RAMDATA=0x1F45; } void serial () interrupt 4 using 3 { if(RI) { RI=0; ch=SBUF; TI=1; //置SBUF空 switch(ch) { case 0x01 :printf("A"); TI=0;break; case 0x02 :printf("B"); TI=0;break; case 0x03 :printf("C"); TI=0;break;

基于单片机的双机串行通信

河南机电高等专科学校2015-2016学年第1学期通信实训报告 系别:电子通信工程系 班级: xxxxxx 学号: 13xxxxxxxxx 姓名: xxxxxxx 2015年12月

基于51单片机的双机串行通信 摘要:串行通信是单片机的一个重要应用,本次课程设计就是要利用单片机来完成一个系统,实现爽片单片机床航通信,通信的结果使用数码管进行显示,数码管采用查表方式显示,两个单片机之间采用RS-232进行双击通信。在通信过程中,使用通信协议进行通信。 关键字:通信双机 一、总体设计 1设计目的 1.通过设计相关模块充分熟悉51单片机的最小系统的组成和原理; 2.通过软件仿真熟悉keil和proteus的配合使用; 3.通过软件编程熟悉51的C51编程规范; 4.通过实际的硬件电路搭设提高实际动手能力。 2.设计要求: 两片单片机之间进行串行通信,A机将0x06发送给B机,在B机的数码管上静态显示1,B机将0~f动态循环发送到A机,并在其数码管上显示。 3.设计方案: 软件部分,通过通信协议进行发送接收,A机先送0x06(B机数码管显示1)给B机(B机静态显示),当从机接收到后,向B机发送代表0-f的数码管编码数组。B收到0x06后就把数码表TAB[16]中的数据送给从机。 二、硬件设计 单片机串行通信功能 计算机与外界的信息交换称为通信,常用的通信方式有两种:并行通信和串行通信。51单片机用4个接口与外界进行数据输入与数据输出就是并行通信,并行通信的特点是传输信号的速度快,但所用的信号线较多,成本高,传输的距离较近。串行通信的特点是只用两条信号线(一条信号线,再加一条地线作为信号回路)即可完成通信,成本低,传输的距离较远。 51单片机的串行接口是一个全双工的接口,它可以作为UART(通用异步接受和发送器)用,也可以作为同步移位寄存器用。51单片机串行接口的结构如下:

51单片机串口通信的原理与应用流程解析

51单片机串口通信的原理与应用流程解析 一、原理简介 51 单片机内部有一个全双工串行接口。什么叫全双工串口呢?一般来说,只能接受或只能发送的称为单工串行;既可接收又可发送,但不能同时进行的称为半双工;能同时接收和发送的串行口称为全双工串行口。串行通信是指数据一位一位地按顺序传送的通信方式,其突出优点是只需一根传输线,可大大降低硬件成本,适合远距离通信。其缺点是传输速度较低。 与之前一样,首先我们来了解单片机串口相关的寄存器。 SBUF 寄存器:它是两个在物理上独立的接收、发送缓冲器,可同时发送、接收数据,可通过指令对SBUF 的读写来区别是对接收缓冲器的操作还是对发送缓冲器的操作。从而控制外部两条独立的收发信号线RXD(P3.0)、TXD(P3.1),同时发送、接收数据,实现全双工。 串行口控制寄存器SCON(见表1)。 表1 SCON寄存器 表中各位(从左至右为从高位到低位)含义如下。 SM0 和SM1 :串行口工作方式控制位,其定义如表2 所示。 表2 串行口工作方式控制位 其中,fOSC 为单片机的时钟频率;波特率指串行口每秒钟发送(或接收)的位数。 SM2 :多机通信控制位。该仅用于方式2 和方式3 的多机通信。其中发送机SM2 = 1(需要程序控制设置)。接收机的串行口工作于方式2 或3,SM2=1 时,只有当接收到第9 位数据(RB8)为1 时,才把接收到的前8 位数据送入SBUF,且置位RI 发出中断申请引发串行接收中断,否则会将接受到的数据放弃。当SM2=0 时,就不管第位数据是0 还是1,都将数据送入SBUF,并置位RI 发出中断申请。工作于方式0 时,SM2 必须为0。

80C51串行口通信

80C51串行口通信 80C51串行口的结构 TXD 是80C51单片机的P3.1口 RXD 是80C51单片机的P3.0口 T1 溢出率是定时器1 的溢出率 SMOD 是发送速率倍频的 16分频 T1每溢出一次发送一位,里面复杂咱们不管,每次发送完后TI 申请中断,就是串口每次发送完一个字节去申请一个中断,每接受完一个字节它也要申请一次中断。接受完了通过移位寄存器 SBUF 取走。发送也用SBUF .

单片机上有两个物理上独立的接受,发送缓冲器SBUF,它们占用同一地址99H;接受器是双缓冲结构;发送缓冲器,因为发送时CPU是主动的,不会产生重叠错误。 解释下这句话意思:物理上独立的但是地址相同,但是具体内部构造咱们不去了解它。2个寄存器一个负责发一个负责收,接受是双缓冲的结构。如果去取数据 A=SBUF ; 发送数据 SBUF =A; 就是说SBUF =A 就把A 发出去了。 A= SBUF 就是把 SBUF 的值给取出来给了A。单片机的串口就是这么简单。主要要搞好中断和比特率。 80C51串行口的控制寄存器 SCON 是一个特殊功能寄存器,用以设定串行口的工作方式、接受/发送控制以及设置状态标志;

有此图课看出地址诶98H 能对8整除所以可以进行位操作。 ●SMO 和SM1为工作方式选择位,可选择四种工作方式:如下图 串行口有4种工作方式。 0 、1、2、3。 f方式0 可以看出 是移位寄存器就是一位一位移位了,波特率是固定的晶 振除以12 Fosc(oscillator 振荡器),方式1 是10位异步收发器(8位数据),波特率可变。一下 2、3 类同。我们主要掌握方式1就OK。用的最多的也是方式1。波特率用软件控制,设置多少就多少。由于选择方式1 所以SMO SM1 就是 0 1 。

第七章串行接口答案

第七章串行接口答案 7·1 什么是串行异步通信?它有哪些特点?有哪几种帧格式? 答:串行通信是所传送数据的各位按顺序一位一位地发送或接收。串行通信分同步和异步两种方式。 在异步通信中数据或字符是一帧(frame)一帧地传送的。帧定义为一个字符的完整的通信格式,通常也称为帧格式。 它的主要特点:由于异步通信每传送一帧有固定格式,通信双方只需按约定的帧格式来发送和接收数据,所以硬件结构比同步通信方式简单;此外,它还能利用校验位检测错误。 帧格式的一般形式是先用一个起始位"0"表示字符的开始,然后是数据位,其后是奇偶校验位,最后是停止位,用以表示字符的结束。不同的帧格式主要表现在数据位可以不同,例如其位数为5~8位,停止位可以是1、1.5、2位;起始位和奇偶校验位可以有,也可以没有。起始位、数据位、奇偶校验位、停止位的不同组合就形成了多种形式的帧格式。不同的计算机规定适用的帧格式有所不同,例如适用于80C51的帧格式只有三种:8位数据位;一位起始位、8位数据位、一位停止位;一位起始位、8位数据位、一位奇偶校验位、一位停止位。 7·2 某异步通信接口按方式3传送,己知其每分钟传送3600个字符,计算其传送波特率。 答:设每个字符由1个起始位、8个数据位、1个可编程位和1个停止位组成,则其传送波特率为: llb×3600/60s=660b/s

7·3 为什么定时器Tl用做串行口波特率发生器时,常采用工作方式2?若己知系统时钟频率、通信选用的波特率,姑何计算其初值? 答:在串行通信中,收发双方对发送或接收的数据速率(即波特率)要有一定的约定。我们通过软件对80C51串行口编程可约定4种工作方式。其中方式0和方式2波特率是固定的,而方式1和方式3的波特率是可变的,由定时器Tl的溢出率控制。定时器Tl用做串行口波特率发生器时,因为工作方式2是自动重装载方式,因而当定时器Tl作波特率发生器时常采用工作方式2。 在方式2中,TLl作计数用,但自动重装载的值放在THl内。假如已知系统时钟频率、通信选用的波特率,计算初值的方法如下:设计数初值为X,那么每过"256一X"个机器周期定时器1就会产生一次溢出。溢出周期是: 12 T= ×(256-X) f ose 因溢出率为溢出周期之倒数,因此 2SMOD f ose 波特率= × 32 l2×(256-X) 则定时器Tl在方式2 时的初值为: f ose×2SMOD X=256- 384×波特率

相关主题
文本预览
相关文档 最新文档