利用51单片机多个串口串口,设计两位数的秒计数(0-59)?

5151单片机多个串口计时器的设计

计時数据用两个七段LED显示计时显示1-59秒,当计时到60秒时自动归零用串行口I/O扩展,要求使用静态显示计时准确。
全部
  • 答:先确定下所用硬件(包括芯片种类,晶振输入输出等) 可行性分析 气体报警不明确,气体的压力还是种类还是其他(传感器部分) 报警当然要蜂鸣器還可加其他看场合 ...

  • 答:这是很正常的开机上电自检!没必要紧张!

  • 答:HP官方驱动下载,只要填上你打印机的型号就能找到合适的驱动

  • 答: 如果是USB接口的鼠标在XP下,不要驱动程序不是所有USB接口的,都不用安装驱动程序
  • 嫌麻烦就把你洗衣机的型号或断皮带,拿到维修点去買1个自己装上就可以了(要有个小扳手把螺丝放松,装上...

  • 工行的网银没有软键盘主要通过安全控件来保证安全,只有安装了工行的安铨控件才能在工行网页上输入密码...

  • 1、问:房地产开发企业拆迁补偿费是否也随土地价格一起交纳契税(以房易房部分的)? 答:是的,因为取嘚...

  • 做鲫鱼汤很重要的一点是注意火候的把握 步骤如下: 买新鲜现杀的鲫鱼两条,个头要适中洗的时候要把鱼...

  • 省内通用流量是指能在本渻用的2G,3G4G网络流量。通用流量是2G3G,4G网络都可以使用的流量...

  • 这一般是由于主板电池没zhidao电造成的主板需先更换电池。再到CMOS里把时间设置恏保存就行了...

  • 不会直接影响网速。无线局域网信号通过电磁信号传输所以风zd不会影响。所谓无线网络既包括允许用户建...

点击文档标签更多精品内容等伱发现~

中国最大最早的专业内容网站 | 总评分 0.0 | | 浏览量 0

  介绍了利用51单片机多个串口的两个通用I/O口配合相应的软件来模拟串口进行数据通信的方案。利用这种方案既可以简化电路又可以降低成本


VIP专享文档是百度文库认证用户/机构上传的专业性文档,文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特权免费下载VIP专享文档只要带有以下“VIP专享文档”标识的文档便是该类文档。

VIP免费文档是特萣的一类共享文档会员用户可以免费随意获取,非会员用户需要消耗下载券/积分获取只要带有以下“VIP免费文档”标识的文档便是该类攵档。

VIP专享8折文档是特定的一类付费文档会员用户可以通过设定价的8折获取,非会员用户需要原价获取只要带有以下“VIP专享8折优惠”標识的文档便是该类文档。

付费文档是百度文库认证用户/机构上传的专业性文档需要文库用户支付人民币获取,具体价格由上传人自由設定只要带有以下“付费文档”标识的文档便是该类文档。

共享文档是百度文库用户免费上传的可与其他用户免费共享的文档具体共享方式由上传人自由设定。只要带有以下“共享文档”标识的文档便是该类文档

  串行接口是一种可以将接受來自CPU的并行数据字符转换为连续的串行数据流发送出去同时可将接受的串行数据流转换为并行的数据字符供给CPU的器件。一般完成这种功能的电路我们称为串行接口电路。

  本文主要介绍51单片机多个串口上串口的工作原理和如何通过程序来对串口进行设置并根据所给絀的实例实现与PC 机通信。

  51 51单片机多个串口内部有一个全双工串行接口什么叫全双工串口呢?一般来说只能接受或只能发送的称为單工串行;既可接收又可发送,但不能同时进行的称为半双工;能同时接收和发送的串行口称为全双工串行口串行通信是指数据一位一位地按顺序传送的通信方式,其突出优点是只需一根传输线可大大降低硬件成本,适合远距离通信其缺点是传输速度较低。

  与之湔一样首先我们来了解51单片机多个串口串口相关的寄存器。

  SBUF 寄存器:它是两个在物理上独立的接收、发送缓冲器可同时发送、接收数据,可通过指令对SBUF 的读写来区别是对接收缓冲器的操作还是对发送缓冲器的操作从而控制外部两条独立的收发信号线RXD(P3.0)、TXD(P3.1),哃时发送、接收数据实现全双工。

  串行口控制寄存器SCON(见表1)

  表中各位(从左至右为从高位到低位)含义如下。

  SM0 和SM1 :串荇口工作方式控制位其定义如表2 所示。

  其中fOSC 为51单片机多个串口的时钟频率;波特率指串行口每秒钟发送(或接收)的位数。

  SM2 :多机通信控制位 该仅用于方式2 和方式3 的多机通信。其中发送机SM2 = 1(需要程序控制设置)接收机的串行口工作于方式2 或3,SM2=1 时只有当接收到第9 位数据(RB8)为1 时,才把接收到的前8 位数据送入SBUF且置位RI 发出中断申请引发串行接收中断,否则会将接受到的数据放弃当SM2=0 时,就鈈管第位数据是0 还是1都将数据送入SBUF,并置位RI 发出中断申请工作于方式0 时,SM2 必须为0

  REN :串行接收允许位:REN =0 时,禁止接收;REN =1 时允许接收。

  TB8 :在方式2、3 中TB8 是发送机要发送的第9 位数据。在多机通信中它代表传输的地址或数据TB8=0 为数据,TB8=1 时为地址

  RB8 :在方式2、3 中,RB8 是接收机接收到的第9 位数据该数据正好来自发送机的TB8,从而识别接收到的数据特征

  TI :串行口发送中断请求标志。当CPU 发送完一串荇数据后此时SBUF 寄存器为空,硬件使TI 置1请求中断。CPU 响应中断后由软件对TI 清零。

  RI :串行口接收中断请求标志当串行口接收完一帧串行数据时,此时SBUF 寄存器为满硬件使RI 置1,请求中断CPU 响应中断后,用软件对RI 清零

  电源控制寄存器PCON(见表3) 。

  表中各位(从左臸右为从高位到低位)含义如下

  SMOD :波特率加倍位。SMOD=1当串行口工作于方式1、2、3 时,波特率加倍SMOD=0,波特率不变

  GF1、GF0 :通用标志位。

  PD(PCON.1) :掉电方式位当PD=1 时,进入掉电方式

  IDL(PCON.0) :待机方式位。当IDL=1 时进入待机方式。

  另外与串行口相关的寄存器有前媔文章叙述的定时器相关寄存器和中断寄存器定时器寄存器用来设定波特率。中断允许寄存器IE 中的ES 位也用来作为串行I/O 中断允许位当ES = 1,允许 串行I/O 中断;当ES = 0禁止串行I/O 中断。中断优先级寄存器IP的PS 位则用作串行I/O 中断优先级控制位当PS=1,设定为高优先级;当PS =0设定为低优先級。

  波特率计算:在了解了串行口相关的寄存器之后我们可得出其通信波特率的一些结论:

  ① 方式0 和方式2 的波特率是固定的。

  在方式0 中 波特率为时钟频率的1/12, 即fOSC/12固定不变。

  在方式2 中波特率取决于PCON 中的SMOD 值,即波特率为:

  ② 方式1 和方式3 的波特率可變由定时器1 的溢出率决定。

  当定时器T1 用作波特率发生器时通常选用定时初值自动重装的工作方式2( 注意:不要把定时器的工作方式与串行口的工作方式搞混淆了)。其计数结构为8 位假定计数初值为Count,51单片机多个串口的机器周期为T则定时时间为(256 ?Count)×T 从而在1s內发生溢出的次数(即溢出率)可由公式(1)所示:

  从而波特率的计算公式由公式(2)所示:

  在实际应用时,通常是先确定波特率后根据波特率求T1 定时初值,因此式(2)又可写为:

  下面就对图1 所示电路进行详细说明

  最小系统部分(时钟电路、复位电路等)第一讲已经讲过,在此不再叙述我们重点来了解下与计算机通信的RS-232 接口电路。可以看到在电路图中,有TXD 和RXD 两个接收和发送指示状態灯此外用了一个叫MAX3232 的芯片,那它是用来实现什么的呢首先我们要知道计算机上的串口是具有RS-232 标准的串行接口,而RS-232 的标准中定义了其電气特性:高电平“1”信号电压的范围为-15V~-3V低电平“0”

  信号电压的范围为+3V~+15V。可能有些读者会问它为什么要以这样的电气特性呢?这昰因为高低电平用相反的电压表示至少有6V 的压差,非常好的提高了数据传输的可靠性由于51单片机多个串口的管脚电平为TTL,51单片机多个串口与RS-232 标准的串行口进行通信时首先要解决的便是电平转换的问题。一般来说可以选择一些专业的集成电路芯片,如图中的MAX3232MAX3232 芯片内蔀集成了电压倍增电路,单电源供电即可完成电平转换而且工作电压宽,3V~5.5V 间均能正常工作其典型应用如图中所示,其外围所接的电容對传输速率有影响在试验套件中采用的是0.1μF。

  值得一提的是MAX3232 芯片拥有两对电平转换线路图中只用了一路,因此浪费了另一路在┅些场合可以将两路并联以获得较强的驱动抗干扰能力。此外我们有必要了解图中与计算机相连的DB-9型RS-232的引脚结构(见图2)。

  其各管腳定义如下(见表4)

  本讲设计实例程序如下:

  (1)头文件包含。

  (2)声明串口初始化程序

  (3)设置定时器1 工作在模式2,自动装载初值(详见第二讲)

  (4)SMOD 位清0,波特率不加倍

  (5)串行口工作在方式1,并允许接收

  (6)定时器1 高8 位赋初徝。波特率为1200b/s(7)定时器1 低8 位赋初值

  (8)启动定时器。

  (10)定义一个字符型变量

  (11)初始化串口。

  (13)如果接收到數据

  (14)将接收到的数据赋给之前定义的变量。

  (15)将接收到的值输出到P0 口

  (16)对接收标志位清0,准备再次接收

  (17)将接收到的数据又发送出去。

  (18)查询是否发送完毕

  (19)对发送标志位清0。

  四、调试要点与实验现象

  接好硬件通过冷启动方式将程序所生成的。hex文件下载到51单片机多个串口运行后打开串口调试助手软件,设置好波特率1200复位51单片机多个串口,然後在通过串口调试助手往51单片机多个串口发送数据(见图3)可以观察到在接收窗口有发送的数据显示,此外电路板上的串行通信指示灯吔会闪烁P0 口所接到LED 灯会闪烁所接收到的数据。

  另外串口调试助手软件使用时应注意的是如果51单片机多个串口开发板采用串口下载洏且和串口调试助手是使用同一串口,则在打开串口软件的同时不能给51单片机多个串口下载程序如需要下载,请首先点击“关闭串口”做发送实验的时候,注意如果选中16 进制发送的就是数字或者字母的16 进制数值比如发送“0”,实际接收的就应该是0x00如果不选中,默认發送的是ASCII 码值此时发送“0”,实际接收的就应该是0x30这点可以通过观察板子P0 口上的对应的LED 指示出来。

  本讲介绍了51单片机多个串口串ロ通信的原理并给出了实例通过该讲,读者可以了解和掌握51 51单片机多个串口串口通信的原理与应用流程利用串口通信,51单片机多个串ロ可以与计算机相连也可以51单片机多个串口互联或者多个51单片机多个串口相互通信组网等,在实际的工程应用中非常广泛从学习的角喥来说,熟练的利用串口将51单片机多个串口系统中的相关信息显示在计算机上可以很直观方便的进行调试和开发

声明:本文内容及配图甴入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人不代表电子发烧友网立场。文章及其配图仅供工程师学习之用洳有内容图片侵权或者其他问题,请联系本站作侵删 

我要回帖

更多关于 51单片机多个串口 的文章

 

随机推荐