单片机原理与应用(C语言版)(微课版)课件 项目6 串口控制数码管显示系统设计_第1页
单片机原理与应用(C语言版)(微课版)课件 项目6 串口控制数码管显示系统设计_第2页
单片机原理与应用(C语言版)(微课版)课件 项目6 串口控制数码管显示系统设计_第3页
单片机原理与应用(C语言版)(微课版)课件 项目6 串口控制数码管显示系统设计_第4页
单片机原理与应用(C语言版)(微课版)课件 项目6 串口控制数码管显示系统设计_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目1

简易声光报警器设计目录任务6-1串口彩屏显示系统设计6.1串行通信基础6.251单片机的串行接口任务6-2双机通信系统设计6.3串行通信协议6.4串行口的I/O端口扩展任务拓展:双机通信控制LED显示项目导读本项目聚焦于串口控制数码管显示系统设计,旨在深入学习串口通信原理与编程技巧。通过实际项目,将掌握利用单片机实现串口数据传输,并控制数码管显示的关键技术。项目涵盖硬件设计,包括单片机选型、数码管连接、电源管理等,以及软件编程,涉及串口初始化、数据发送与接收函数编写等。我们从基础的串行通信原理讲起,对比并行与串行、单工与双工、异步与同步通信,让对数据传输方式有全面认识。接着详细剖析51单片机串行接口结构、工作模式、波特率设定及初始化流程,为后续设计奠定基础。任务6-1以简单彩屏显示系统为例,给出完整程序示例,助理解数据从单片机到显示终端的完整链路。任务6-2拓展到双机通信,实现两台单片机相互控制,提升系统复杂度与实用性。后续拓展任务进一步强化双机通信在实际场景中的应用,如控制LED显示状态。思维导图任务6-1串口彩屏显示系统设计1、目的与要求通过设计一个基于单片机的串口彩屏显示系统,学习串口通信的基本原理和编程方法。

掌握如何通过串口发送数据到彩屏,并控制其显示内容。2、硬件设计本系统硬件设计基于AT89C51单片机和串口彩屏显示模组。单片机作为核心控制器,负责数据处理和指令发送;彩屏模组用于接收数据并显示。电源模块为单片机和彩屏提供稳定工作电压。电路设计上,单片机的P3.0(TXD)与彩屏的RXD相连,P3.1(RXD)与彩屏的TXD相连,实现串口通信;GND共地。电源模块独立连接,保证系统稳定运行。通过该设计,单片机可将数据发送至彩屏,彩屏实时显示内容。3、源程序设计以下是一个简单的串口彩屏显示系统的程序示例。单片机通过串口发送数据到彩屏,彩屏接收到数据后进行显示。4、程序总结本任务设计基于AT89C51单片机的串口彩屏显示系统。硬件含单片机、串口彩屏和电源模块。单片机通过P3.0、P3.1与彩屏连接。软件实现串口初始化、字符和字符串发送。程序示例展示串口发送字符串到彩屏并显示。6.1串行通信基础6.1串行通信基础串行通信是计算机与外部信息交换的基础方式,逐位传送字符二进制位。在单片机等控制系统中应用广泛。51单片机串口为全双工接口,可同时收发数据。串口成本低、易操作、线路简单,实现双向通信。单片机串口功能强大,可与其他单片机、电脑、模块通信,拓展了应用范畴,强化了硬件配置。51单片机内置UART,支持串口通信。终端与其他设备(例如其他终端、计算机和外部设备)通过数据传输进行通信。数据传输可以通过两种方式进行:并行通信和串行通信。1.并行通信6.1.1并行通信与串行通信在计算机和终端之间的数据传输通常是通过电缆或信道上的电流或电压变化实现的。如果一组数据的各数据位在多条线上同时被传送,这种传输被称为并行通信,如图所示。2.串行通信串行通信是指通信的发送方和接收方之间数据信息的传输是在单根数据线上进行的,以每次一个二进制的0、1为最小单位逐位进行传输,如图所示。6.1.2单工通信与双工通信按照数据传送的方向不同,数据通信可以分为单工、半双工和全双工三种。1.单工通信单工通信的信道是单向的,发送端和接收端身份固定,发送端只能发送信息,不能接收信息,而接收端只能接收信息,不能发送信息,数据信号仅从发送端传送到接收端,即信息流是单方向的。2.半双工通信半双工通信是指两台相互通信的设备均具有收发数据的能力,但在某一时间内只能执行一种收或发的操作,不能同时执行收发两种操作。3.全双工通信全双工通信又称为双向同时通信,即通信的双方可以同时发送和接收信息,要实现双工通信一般需要使用两个信道来完成。6.1.3异步通信与同步通信按照数据的同步方式,串行通信可以分为同步通信和异步通信两大类。同步通信是按照软件识别同步字符的方式来实现数据的发送和接收,而异步通信是按照字符的再同步技术实现的通信。1、异步通信在异步通信中,数据通常以字符为单位组成数据帧来进行传送。发送端和接收端由各自的时钟来控制发送和接收。在异步通信中,帧格式一般是由起始位、数据位、奇偶校验位、停止位组成。详细介绍如下。起始位:是字符的开始,起始位用0,以表示数据发送的开始。数据位:紧跟起始位之后,它由5~8位数据组成,低位在前,高位在后。奇偶校验位:位于数据位之后,用于保证串行通信的可靠性。停止位:该位是字符的最后一位,用1表示,用于向接收端表示一个字符已经发送完毕。2、同步通信同步通信中,数据包包含同步字符、数据字符和校验字符。同步字符在帧头,标志数据开始;数据字符长度由双方决定;校验字符在末尾,用于检验数据正确性。同步字符可统一或双方自定,如单同步字符帧结构中常用ASCII码的SYN(16H)。同步通信传输速率高,但需发送和接收时钟严格同步,发送端时钟脉冲同时传至接收端。6.251单片机的串行接口51单片机的串行口为全双工异步通信接口,可以进行串行通信,也可以将串口用于系统扩展。6.2.1串行口结构与控制51单片机有一个可编程的全双工异步串行通信接口,它可作异步串行通信(UART)用,也可作同步移位寄存器用,其帧格式可有8位、10位或11位,并能设置各种波特率,给使用者带来很大的灵活性。1、串行口结构51单片机串行口的结构如图所示。51单片机通过引脚RXD(P3.0)串行数据接收端和引脚TXD(P3.1)串行数据发送端与外界进行通信。2、工作原理假设有两个单片机串行通信,甲机为发送,乙机为接收,以图为例来说明发送和接收的过程。由上面的介绍可以得出下面两点结论。

查询方式发送的过程:发送一个数据-查询TI-发送下一个数据(先发后查);查询方式接收的过程:查询RI-读入一个数据→查询RI-读下一个数据(先查后收)。以上过程将体现在编程中。

无论单片机之间还是单片机和PC之间,串行通信双方的波特率必须相同。3、波特率的设定在串行通信中,收发双方对发送和接收数据的速率(即波特率)要有一定的约定。51单片机的波特率发生器的时钟来源有两种:一是来自于系统时钟的分频钟,由于系统时钟的频率是固定的,所以此种方式的波特率是固定的;另一种是由定时器T1提供,波特率由T1工作于定时方式2(八位自动重载方式)。6.2.2设置工作方式根据串行通信数据格式和波特率的不同,51单片机的串行口有4种工作方式,即方式0、方式1、方式2和方式3,通过设置SCON的SMO和SM1来选择。对这几种工作方式具体介绍如下。1、方式0方式0是同步移位寄存器输入/输出方式,常用做串行1O扩展,具有固定的波特率:fos/12.同步发送或接收,由TXD提供移位脉冲,RXD用做数据输入/输出通道。发送或接收的是8位数据,低位在前,高位在后。2、方式1方式1是10位异步通信方式,一位起始位(0),八位数据位,一位停止位(1);可变波特率,由TI的溢出率决定。3、方式2和方式3方式2和方式3具有多机通信功能,两种方式除了波特率的设置不同外,其余完全相同。帧结构为11位,包括一位起始位0、八位数据位、一位校验位TB8/RB8和一位停止位。在方式2中,波特率固定为fosc/64或fosc/32,由PCON寄存器中的SMOD位选择。6.2.3设置波特率1、波特率波特率是串行通信的重要指标,用于表示数据传输的速度,波特率定义为每秒钟传送的二进制位的比特数。在异步通信中,发送一位数据的时间叫做位周期,用T表示。2、

设置波特率方式0和方式2的波特率是固定的,方式1和方式3的波特率是变化的,是由TI的溢出率决定的。TI是可编程的,可选的范围比较大,因此方式1和方式3是最常用的工作方式。当T1作为串行口的波特率发生器时,串行口方式1或方式3的波特率由下式确定:表列出了最常用的波特率及相应的fosc、T1工作方式及初值。6.2.4串行口初始化在51单片机中,串行口的初始化是串行通信过程中非常重要的一步。正确的初始化设置可以确保数据传输的准确性和可靠性。以下是串行口初始化的基本步骤和注意事项。1.设置串行口工作模式根据通信需求,选择合适的工作模式(方式0、方式1、方式2或方式3)。这需要通过配置SCON寄存器中的SM0和SM1位来实现。2.配置波特率波特率的设置取决于所选的工作模式。对于方式0和方式2,波特率是固定的;而对于方式1和方式3,波特率是可变的,需要通过定时器T1来设置。通常,波特率的设置涉及到定时器的初值计算和PCON寄存器的配置。3.配置串行口参数根据通信协议,设置数据位、停止位和校验位。例如,在方式1中,通常设置为8位数据位,1位停止位,无校验。4.使能串行中断如果需要使用中断方式处理串行通信,需要使能串行中断和全局中断。5.测试通信在初始化完成后,可以通过发送和接收测试数据来验证串行口的配置是否正确。6.错误处理在实际应用中,还需要考虑错误处理机制,如校验错误、帧错误等,并根据需要进行相应的处理。通过以上步骤,可以完成51单片机串行口的基本初始化设置。在实际应用中,可能还需要根据具体的硬件连接和通信协议进行更详细的配置和优化。任务6-2双机通信系统设计1、目的与要求单片机甲机的P3.4外接按键K2,PO、P2端口作为输出口,外接一个2位LED数码管;单片机乙机P3.3外接按键K1,P0端口外接8位LED。要求使用单片机串行通信,甲机按键K2每被按下1次,乙机的LED移位1次;乙机按键K1每被按下1次,甲机的LED数码管加1显示。2、原理及实现硬件电路图设计如图所示。注意图中的晶振电路、复位电路没有绘制。本任务为双工单片机通信,甲、乙机能收发数据。甲机发按键K1中断次数,收乙机数据并显示;用INT1、RI中断,数据发送用查询。乙机发按键K2中断次数,收甲机数据;用INT0中断,数据收发用查询。其程序流程图如图所示。3、源程序设计参考程序如下:1)甲机源程序/**********************************************************文件名:甲机程序.c单片机型号:STC89C51RC晶振频率:11.0592MHz说明:甲机控制乙机LED流水灯,接收乙机数码管显示数据************************************************************/2)乙机源程序/**********************************************************文件名:乙机程序.c单片机型号:STC89C51RC晶振频率:11.0592MHz说明:乙机控制甲机数码管显示数据,接收甲机LED移位方式发送和接收使用中断法************************************************************/4、程序总结双机通信系统设计本项目设计双机通信系统,用两台单片机实现相互控制和数据交换。甲机按键K2控制乙机LED显示,接收乙机数据并在数码管显示;乙机按键K1控制甲机数码管加1显示,接收甲机数据并控制LED。硬件用STC89C51RC单片机,串行通信传输数据。甲机用两个中断,乙机用一个中断,实时响应按键操作和数据交换。程序设计中,甲乙机均查询方式发送数据,中断方式接收数据,保证系统稳定可靠。在实现过程考虑中断优先级和串口通信初始化设置,确保数据传输准确实时。系统简洁明了,实用可扩展,为后续项目提供参考。6.3串行通信协议6.3串行通信协议微处理器中常用的集成串行总线包括通用异步接收发送器(UART)、串行外设接口(SerialPeripheralInterface,SPI)、内部集成电路(I2C)等,而微处理器与外设的接口则主要有美国电子工业协会(EIA)的串行通信接口(RS-232、RS-422和RS-485)、通用串行总线(USB)以及IEEE1394接口(firewire)等。1、通用异步串行接口UARTUART是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实现全双工传送和接收。在嵌入式设计中,UART用于微处理器控制外围器件与PC机进行通信。本项目中讨论的51单片机串行接口即为UART接口。目前,市场上使用的UART接口有两种:异步通信接口、异步与同步通信接口。6.3.1常用串行通信协议2、串行外设接口SPI串行外设接口(SPI)是由摩托罗拉公司开发的全双工同步串行总线,该总线大量用在与EPROM、ADC、FRAM和显示驱动器之类的慢速外设器件通信。该总线的通信方式采用主一从配置方式。它有以下四个信号:MOSI(主出/从入)、MISO(主入/从出)、SCK(串行时钟)、SS(从属选择)。芯片上SS的引脚数决定了可连到总线上的器件数量。3、双线同步总线I2C总线I2C(Inter-IntergratedCircuit)总线是由工荷兰飞利浦(Philips)公司推出的芯片间串行传输总线,它以两根连线实现完善的全双工同步数据传送,可以方便地构成多机系统和外围设备扩展系统。它是同步通信的一种特殊形式,具有接口线少、控制方式简单、器件封装体积小、通信速率较高等优点,已经成为微电子通信控制领域广泛采用的一种总线标准。I2C总线由SDA(串行数据线)和SCL(串行时钟线)两根线构成,可在CPU与被控IC之间、IC与IC之间进行发送和接收数据的双向传送,总线上的每个器件通过软件寻址来识别。6.3.2串行通信接口标准RS-232RS-232C在早期并非专门为计算机通信而设计,所以出现了25针和9针的D型连接器这两种不同类型。不过,鉴于当下微机普遍采用9针的D型连接器,此处就只对9针D型连接器的信号及引脚情况进行介绍,其具体如图所示。1、RS-232C信号(1)基本的数据传送引脚

TXD(TransmittedData):数据发送引脚。串行数据从该引脚发出。

RXD(ReceivedData):数据接收引脚。串行数据由此引脚输入。

GND(Ground):信号地线。(2)握手信号

RTS(RequesttoSend):请求发送信号,输出信号。

CTS(CleartoSend):清除传送,是对RTS的响应信号,输入信号。

DCD(DataCarrierDetection):数据载波检测,输入信号。

DSR(DataSetReady):数据通信准备就绪,输入信号。

DTR(DataTerminalReady):数据终端就绪,输出信号,表明计算机已经做好接收准备。2、电器特性美国电子工业协会(EIA)公布了一种异步通信标准,采用的是EIA电平。其规定如下。(1)在TXD和RXD上(2)在RTS、CTS、DSR、DTR、DCD等控制线上(3)RS-232的EIA电平和TTL电平转换3、电平变换电路由于单片机采用的是TTL电平,而串行通信采用的是EIA电平,这样就需要一个电路来使得两电平互转。新型电平转换芯片MAX232,可以实现TTL电平与RS-232电平的双向转换。MAX232内部有电压倍增电路和转换电路,仅需外接5个电容和+5V电源即可工作,如图所示。4、单片机(甲机)和单片机(乙机)的连接由于单片机的串行口不提供握手信号,因此通常采用直接数据传送方式,如果需要握手信号,可由P1口编程产生所需的信号。5、单片机和主机(PC)连接单片机和PC的串行通信接口电路如图所示。6.3.3RS-422通信协议1、RS-422协议基础和MAX491RS-422通信协议的核心思想是使用平衡差分电平来传输信号,即每一路信号都是用一对以地为参考的对称正负信号,在实际的使用过程中不需要使用地信号线。RS-422是一种全双工的接口标准,可以同时进行数据的收、发,其有点对点和广播两种通信方式,在广播模式下只允许在总线上挂接一个发送设备,而接收设备可以最多为10个,最高速率为10Mb/s,最远传输距离为1219m。最常见的RS-422通信芯片是美信公司(MAXIM)的MAX491,其封装如图所示,引脚封装说明如下。RO:数据接收输出引脚

:接收器输出使能引脚

:驱动器输出使能端引脚DI:驱动器输入引脚Y:

Y:驱动器同相输出端引脚。

Z:驱动器反相输出端引脚。

A:接收器同相输入端引脚。

B:接收器反相输入端引脚。

GND:电源地信号引脚。

Vcc:5V电源信号引脚。2、RS-422的应用电路使用两片MAX491或者其他RS-422接口芯片进行51单片机系统的点对点通信的逻辑模型如图所示。使用多片MAX491或者其他RS-422接口芯片构成的一点对多点通信的逻辑模型如图所示。图所示是51单片机应用系统的典型RS-422接口电路。6.3.4RS-485通信协议RS-485接口标准是RS-422接口标准的半双工版本。1.RS-485协议基础和MAX485在RS-485接口标准中只需要使用A、B两根输出引脚即可完成点对点以及多点对多点的数据交换,目前的RS-485接口标准版本允许在一条总线上挂接多达256个节点,并且通信速度最高可以达到32Mb/s,距离可以到几千米。最常见的RS-485接口标准器件是美信公司(MAXIM)的MAX485,其封装如图所示,引脚封装说明如下。

RO:数据接收输出引脚

:接收器输出使能引脚

DE:驱动器输出使能端

DI:驱动器输入引脚

A:接收器和驱动器同相输入端引脚。

B:接收器和驱动器反相输入端引脚。

GND:电源地信号引脚。

Vcc:5V电源信号引脚。2、RS-485的应用电路图所示是多点对多点系统的MAX485电路逻辑模型。图所示是在51单片机系统中使用MAX485芯片的典型应用电路图。6.4串行口的I/O端口扩展6.4.1采用串行口扩展并行输入口51单片机有一个全双工的串行口,其工作方式1、2、3用于异步串行通信,工作方式0用于同步串行输入/输出。利用串行通信接口的方式0,可以实现并行I/O端口的扩展。利用51单片机的串行口扩展16位并行输入口的实用电路如图

所示,采用两片74LS165,单片机的P3.0(RXD)引脚是串行数据的输入端,P3.1(TXD)引脚送出74LS165的移位脉冲,P3.1引脚连接两片74LS165的时钟端CLK,P1.0引脚与它们的控制端S/L相连,右边的74LS165的数据输出位QH与左边74LS165的信号输入端SIN相连。74LS165芯片如右图所示,对引脚说明如下。(1)D0~D7:并行输入口。(2)QH:串行输出口。(3)CLK:时钟输入。(4)SIN:串行输入口,通过它可以将多个74LS165连接起来。(5)S/L:移位/装载数据控制。6.4.2采用串行口扩展并行输出口采用74LS164是一个串入并出的8位移位寄存器,其外形和引脚如图所示。其中,Q0~Q7为并行输出端;A、B为串行输人端。CLR为清除端,当CLR=0时,输出清零;任务拓展:双机通信控制LED显示1、目的与要求单片机甲机(U1)P1端口外接8位拨码开关;单片机乙机(U2)PO1口外接8个LED,要求使用单片机串行通信,在查询状态下使单片机乙机求的8个LED能够显示单片机甲机8位拨码开关的状态。2、原理及实现本任务属于单片机双机通信,这两个单片机都工作在半工状态,即甲机只负责将拨码开关的状态发送出去,乙机只负责将开关状态接收过来并进行显示。本任务采用查询方式实现通信,甲机将P1端口的状态通过SBUF发送出去,在发送的过程中判断TI是否为1,若为1,则表示数据帧发送完毕,否则继续发送;乙机通过SBUF接收数据,在接收过程中判断RI

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论