版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目5
简易声光报警器设计目录任务5-1定时器控制LED闪烁5.1定时/计数器任务5-2中断流水灯的循环点亮5.2中断系统任务5-4模拟交通灯控制系统设计任务5-3
数码秒表设计任务拓展:智慧交通灯系统的设计项目导读本项目聚焦单片机定时器与中断应用,通过实践任务助读者掌握交通灯控制系统编程与硬件设计。内容从LED闪烁到交通灯逻辑切换、中断处理,配电路设计、源程序解析与调试建议。助读者构建交通灯系统,理解单片机时间控制与中断机制,提升综合应用能力,为后续开发奠基。思维导图任务5-1定时器控制LED闪烁1、目的与要求通过使用单片机定时器方式实现一个LED定时闪烁的控制系统,熟悉单片机定时器的编程控制方法,包括定时器工作方式设定、初始值设置等。用单片机控制一个LED,使其以1秒为周期闪烁(亮1秒、灭1秒)。通过定时器的轮询方式实现精准的时间控制。2、电路设计单片机与LED采用简单连接方式,LED的一端连接单片机的P1.0引脚,另一端通过限流电阻连接到电源。确保限流电阻的阻值适当,以保护LED和单片机端口,如图所示。3、源程序设计用单片机定时器T0的工作方式1编制1s延时程序,假定系统采用12MHz晶振,T0的工作方式1定时时间为500ms,再循环2次即可定时到1s。LED闪烁控制程序如下:说明:定时器配置:定时器T0工作在工作方式1(16位定时器),初值计算为产生500ms的定时时间。通过循环计数两次500ms,实现1秒的周期。轮询方式:通过while(TF0==0);语句轮询定时器溢出标志(TF0),当定时器溢出时,退出循环,完成一次500ms的延时。LED控制:通过P1.0引脚控制LED的亮灭。在主循环中,切换LED状态并调用延时函数,实现1秒的闪烁周期。4、任务总结本程序是一个简单的LED定时闪烁设计,实现了LED以1秒为周期的亮灭控制。程序使用了定时器T0的轮询方式来实现精准的定时,通过计数和状态切换的方式控制LED的闪烁。主要组成部分:全局变量:count用于记录500ms的计数,led_state用于记录LED状态(亮/灭)。延时函数:delay_1s()使用定时器T0的轮询方式实现1秒的延时。主函数:初始化LED状态,进入主循环,不断切换LED状态并调用延时函数。5.1定时/计数器5.1定时/计数器在测量控制系统中,通常需要定时钟来实现定时控制、测量或延时动作等功能,并要求具备计数功能以对外部事件进行计数,例如测量电动机转速、频率、工件数量等。单片机内部的定时/计数器是一个常用的功能部件。C51单片机有T0、T1两定时器,均由八位寄存器TH、TL组成。图示T0内部结构与控制信号,T1同。T0和T1有如下功能:
两个定时器都有定时或事件计数的功能,由软件选择是定时工作方式还是计数工作方式。
定时/计数器实际上是16位加1计数器。T0由两个八位特殊功能寄存器TH0和TL0构成,T1由两个八位特殊功能寄存器TH1和TL1构成。
T0和T1受特殊功能寄存器TMOD和TCON控制。5.1.1定时/计数器的结构1.定时方式
,开关S打向上,计数器TH0、TL0的计数脉冲来自振荡器的12分频后的脉冲(即fosc/12),即对系统的机器周期计数。当开关K合上,每周期计数器TH0、TL0加1;计到预设值回零,置中断标志TF0(或TF1),产生中断。例如,周期2μs,计3周期即6μs置中断标志。中断时,预定初值载入负值(补码)。最高脉冲频率fosc/12。2.计数方式
,开关S打向下,计数器T0、T1的计数脉冲分别来自于引脚T0(P3.4)或引脚TI(P3.5)上的外部脉冲。开关K合上,计数器对外部脉冲下降沿加1计数,至预定值回零并置位中断标志位TF0(或TF1),产生溢出中断。计数脉冲最高频率≤f_fosc/24。5.1.2定时/计数器的寄存器1.T/C0和T/C1的寄存器定时/计数器0和定时/计数器1是所有51系列单片机都具有的功能,对它们的控制是通过定时/计数器模式寄存器TMOD和定时/计数器控制寄存器TCON来实现的。(1)定时/计数器模式寄存器TMOD
定时/计数器模式寄存器TMOD
定时/计数器的工作模式设置(2)定时/计数器控制寄存器TCON2.T/C2的寄存器与T/C2相关的寄存器有控制寄存器T2CON和模式寄存器T2MOD(1)定时/计数器2控制寄存器T2CON(2)定时/计数器2模式寄存器T2MOD当定时器2工作于16位自动重载模式时,可对其编程实现向上计数或向下计数。定时/计数器控制寄存器TCON定时/计数器2控制寄存器T2CON的定义定时/计数器2的工作方式设置定时/计数器2模式寄存器T2MOD5.1.3定时/计数器的工作方式定时/计数器有四种工作方式,即方式0、方式1、方式2和方式3.它们通过设置相工应的寄存器来选择。对于增强型51单片机,定时/计数器2的使用略有不同,但它也有三种工作方式,即捕获方式、自动重装载方式和波特率发生器方式。1、方式0方式0是13位计数结构的工作方式,其计数器由TH0的全部8位和TL0的低5位构成。当TL0的低5位计数溢出时,向TH0进位,而13位计数全部溢出时,则向计数溢出标志位TF0进位。2、方式1方式1是16位计数结构的工作方式,计数器由TH0的全部8位和TL0的全部8位构成。与方式0基本相同,区别仅在于工作方式1的计数器TL0和TH0组成16位计数器,从而比工作方式0有更宽的定时/计数范围。3、方式2八位自动装入时间常数工作方式。由TL1构成八位计数器,TH1仅用来存放时间常数。4、方式3两个8位方式。方式3只适用于定时器0,如果设置定时器1为工作方式3,则定时器1将处于关闭状态。5、T/C2的工作方式定时/计数器2既可以用作定时器,又可以用作事件计数器。其工作方式由特殊寄存器T2CON中的C/T2位选择。定时器2有三种工作方式:捕获方式、自动重装载(向上或向下计数)方式和波特率发生器方式。(1)捕获方式在捕获方式下,通过T2CON控制位EXEN2来选择两种方式。(2)自动重装载方式当定时器2工作于16位自动重载方式时,可对其编程而实现向上计数或向下计数。(3)波特率发生器方式通过设置T2CON中的TCLK或RCLK可选择定时器2作为波特率发生器。任务5-2中断流水灯的循环点亮1、目的与要求通过使用单片机定时器中断与P1口控制,设计一个流水灯循环点亮的控制系统,熟悉单片机定时器中断控制与P1口输出控制方法,掌握流水灯控制逻辑。用单片机控制8个LED,利用P1口控制8个LED形成流水灯效果,按照从左到右依次点亮然后熄灭的循环方式。要求每个LED点亮时间间隔为0.5秒。2、电路设计单片机的P1口连接8个LED,每个LED通过一个限流电阻连接到电源。各LED及限流电阻应正确连接至P1口对应引脚(P1.0~P1.7),确保电路安全。3、源程序设计用单片机定时器T0的工作方式1编制0.5秒延时程序,假定系统采用12MHz晶振,通过定时器中断控制流水灯的循环点亮。说明:定时器配置:定时器T0工作在方式1,初值设定为定时500ms。通过中断处理,每500ms触发一次,用于更新流水灯状态。阵列控制:led_data数组定义了流水灯的点亮顺序,每个元素对应一种点亮模式(低位优先点亮P1.0)。中断逻辑:中断函数中通过递增index控制流水灯状态切换,从左到右依次点亮到全灭后重新循环。4、任务总结本程序通过定时器中断实现流水灯的循环点亮控制,利用P1口输出不同的字节值,实现了8个LED的流水灯效果。使用中断方式提高了程序的时间精度与稳定性,适合用于各类LED循环显示需求场景的开发与设计。5.2中断系统当CPU和外设交换信息时,存在着快速CPU和慢速外设间的矛盾,机器内部有时也可能出现突发事件,为此,计算机中通常采用中断技术。5.2.1什么是中断1.中断中断是CPU因内外部事件或预先安排事件而暂停当前程序,去服务该事件,服务完再返回原程序。2.中断源中断源即中断原因,可为I/O设备、故障、时钟及人为设置。3.中断优先级和嵌套多中断源同时申请时,CPU按优先级响应。高优先级中断能中断低优先级中断处理,称为中断嵌套。4.中断系统能实现中断功能并能对中断进行管理的硬件和软件称为中断系统。中断请求是在执行程序的过程中随机发生的,中断系统要解决的问题如下:
CPU在不断执行指令的过程中,是如何检测到随机发生的中断请求的?
如何使中断的双方(CPU方和中断源方)均能人为控制——允许中断或禁止中断?
由于中断的产生存在随机性,因此不可能在程序中使用调用子程序指令或转移指令,那么如何实现正确的转移,从而更好地为该中断源服务呢?
中断源有多个,而CPU只有一个,当有多个中断源同时有中断请求时,用户怎么控制CPU按照自己的需要安排响应次序?
中断服务完毕,如何正确地返回到原断点处?5.2.2中断系统的结构51单片机中断系统的结构如图所示,由5个中断请求源INT0、T0、INT1、T1、TI/RI;中断标志寄存器(TCON);中断允许寄存器(IE);全局中断允许;中断优先级寄存器(IP)和查询硬件等组成。通过对各种寄存器的读/写来控制单片机的中断类型、中断开/关和中断源的优先级。1、中断请求(1)外部中断请求源(2)内部中断请求源2、
中断允许寄存器IE在51单片机中断系统中,中断的允许或禁止是由片内可进行位寻址的8位中断允许寄存器IE来控制的,如表所列。要设置允许外部中断0、1允许,其他不允许,则IE的值如表所列,即IE=85H。
TCON寄存器结构
SCON寄存器3、中断源机入口地址C51单片机有6个中断源,5个在片内,1个在片外,它们在程序存储器中有固定的中断入口地址,当CPU响应中断时,硬件自动形成这些地址,由此进入中断服务程序;6个中断源有两级中断优先级,可形成中断嵌套。这6个中断源的符号、名称、产生条件及中断服务程序的入口地址如表所示。5.2.3中断控制相关的寄存器1、中断允许控制寄存器IE(地址OA8H)每个中断源都可以通过置位或清除中断允许控制寄存器IE中的相关中断允许控制位分别使得中断源有效或无效。IE还包括一个中断允许总控制位EA,它能一次禁止所有中断。中断允许寄存器如表
所示。2、定时/计数器控制寄存器(TCON)(地址88H)该寄存器用于保存外部中断请求以及定时器的计数溢出。寄存器的内容及位地址如表
所示。3,串行口控制寄存器(SCON)(98H)串行口控制寄存器与中断有关的控制位共两位,如表所示。4,中断优先级寄存器IP(地址8BH)单片机设自然和人工优先级。AT89S52设两优先级,有中断同级则依自然优先级。六中断源自然优先级:外中断0→定时0→外中断1→定时1→串口→定时2。优先级由IP寄存器设,IP某位为1则高优,否则低优。5.2.4中断响应过程单片机在机器周期S5P2期间采样中断源,S6期间查询中断标志。若标志为1,则在S1期间按优先级处理中断。中断响应后,标志自动清除,程序计数器PC内容压栈保护,中断矢量装入PC,执行中断服务程序。下列三种情况中的一种发生时,CPU将封锁对中断的响应。
CPU正在处理一个同级或更高级别的中断请求。
现行的机器周期不是当前正执行指令的最后一个周期。我们知道,单片机有单周期、双周期、三周期指令,当前执行的指令是单字节没有关系,如果是双字节或四字节的,就要等整条指令都执行完了,才能响应中断(因为中断查询是在每个机器周期都可能查到的)。
当前正执行的指令是返回指令(RETI)或访问IP、IE寄存器的指令时,则CPU至少再执行一条指令才应中断。CPU响应中断的过程分为以下几个步骤:(1)保存断点,即将下一个执行指令地址存入堆栈。(2)查找中断入口,根据6个中断源,找到对应的入口地址。这些地址和编号在表中列出,服务程序入口地址间隔8字节。(3)执行中断处理程序。(4)中断返回,完成中断指令后,返回主程序继续执行。5.2.5C51中断的程序设计C51使用户能编写高效的中断服务程序。编译器在规定的中断源的矢量地址中放入无条件转移指令,使CPU响应中断后自动地从矢量地址跳转到中断服务程序的实际地址,而无需用户去安排。中断服务程序被定义为函数,函数的完整定义如下:返回值
函数名([参数])[模式][再入]interruptn[usingm]下面分别介绍后面三个参数。1.再入通过属性关键字reentrant将函数定义为再入函数,这样函数才能被递归调用。这是因为在C51中,普通函数(非再入的)不能被递归调用,只有再入函数才可被递归调用。2.interruptninterruptn表示将函数声明为中断服务函数,n为中断源编号,它可以是0~31间的整数,不允许为带运算符的表达式。n通常取以下值:
0:外部中断0。
1:定时器/计数器0溢出中断。
2:外部中断1。
3:定时器/计数器1溢出中断。
4:串行口发送与接收中断。3.usingm定义函数所使用的工作寄存器组,m的取值范围为0~3,可缺省,它对目标代码有如下作用:函数入口处将当前寄存器保存,使用m指定的寄存器组,函数退出时原寄存器组恢复。选择不同的工作寄存器组,可方便实现寄存器组的现场保护。值得注意的是,中断服务函数不允许用于外部函数,因为它对目标代码有下面这些影响:
当调用函数时,SFR中的ACC、B、DPH、DPL和PSW在实际需要时应该入栈。
如果不使用寄存器组切换,中断函数所需的所有工作寄存器Rn都应该入栈。
函数退出前,所有工作寄存器应该出栈。
函数由RETI终止指令。【实例】中断的应用。要求:电路原理图如图所示。每按一次键,产生一次中断,P1口输出并取反,用C语言编程。【实例】利用中断来点亮灯用
引脚的按钮控制P1口的灯,要求每按一下按钮就申请一次中断,点亮一盏灯,依次点亮八盏灯中的一盏。要求采用边沿触发。程序如下:任务5-3数码秒表设计1、目的与要求通过由两个LED数码管显示的数码秒表控制系统的设计制作,熟悉单片机定时/计数器及中断的编程控制方法,包括定时器工作方式设定、初始值设置、中断编程、中断函数的应用等。用单片机控制两个LED数码管,采用静态连接方式,要求两个数码管显示00-99计数,时间间隔为1s。2、电路设计单片机与两个共阳极数码管采用静态连接方式,数码管的段码分别由P1口和P2口控制,公共端接高电平,数码秒表控制电路参考图进行设计。3、源程序设计用单片机定时器T1的工作方式1编制1s延时程序,假定系统采用12MHz晶振,T1的工工作方式1定时时间为50ms,再循环20次即可定时到1s。0~99秒秒表的控制程序如下。(1)全局变量是相对于局部变量而言的,凡是在函数外部定义的变量都是全局变量,可以默认有extern说明符,因此也称为外部变量。外部变量定义后,其后面的所有函数均可以使用。(2)对定时器编程需要的步骤:定时器初始化(设置工作方式)、初值计算和设置、启动定时器计数、计数溢出处理(程序中采用中断处理)。(3)对中断编程需要的步骤:开放中断源允许、开放总中断允许、中断函数编程。(4)只有当定时器T1定时50ms时间到时,T1申请中断,在中断允许的情况下,程序才自动跳转到T1中断函数timer_1()执行。4、任务总结本程序是一个数码秒表设计,实现了从00秒到99秒的计时功能,并使用两个静态数码管来显示当前的秒数。程序使用了定时器T1的中断功能来实现每50毫秒的定时,并通过计数和累加的方式达到每秒的更新。主要组成部分:(1)全局变量:(2)定时器T1中断函数timer_1():(3)显示函数disp(unsignedchari):(4)主函数main():任务5-4模拟交通灯控制系统设计1、目的与要求通过对模拟交通灯控制系统的制作,让读者掌握定时器和中断系统的综合应用,进一步熟练软、硬件联调方法。设计并实现单片机交通灯控制系统,实现以下三种情况下的交通灯控制。(1)正常情况下双方向轮流点亮交通灯,交通灯的状态如表所示。(2)特殊情况时,A方向放行。(3)有紧急车辆通过时,A、B方向均为红灯。紧急情况优先级高于特殊情况。2、电路设计本任务涉及定时控制东、南、西、北四个方向上的12盏交通信号灯,且出现特殊和紧急情况时,能及时调整交通灯的指示状态。采各控制端口线的分配及控制状态如表
所示。根据以上分析,我们采用如图所示的电路连接方法。3、源程序设计在正常情况下,交通灯控制程序的流程图如图所示。在中断情况下,中断服务程序的流程图如图所示。4、程序下载调试(1)首先观察正常情况下交通灯的状态,体会定时器的作用。(2)观察特殊情况时交通灯的状态,掌握中断程序的调试方法。(3)观察紧急情况下交通灯的状态,理解中断优先级的概念。5、任务小结该程序是一个交通灯控制系统实现,其核心功能是模拟现实中的交通信号灯切换逻辑,并能响应两种不同的中断情况以处理紧急或特殊状况。(1)延时函数实现(2)中断处理(3)主循环逻辑任务拓展:智慧交通灯系统的设计1、目的与要求通过设计一个基于单片机的智慧交通灯系统,深入了解单片机定时器、中断以及输入输出接口的应用。掌握如何利用单片机对交通灯系统进行定时控制,实现不同方向交通信号的有序切换,并能通过行人请求等外部输入动态调整信号灯状态。要求设计的智慧交通灯系统能够按如下时间规则运行:南北方向绿灯亮30秒后黄灯亮3秒,接着转为红灯亮;东西方向绿灯亮25秒后黄灯亮3秒,接着转为红灯亮。同时,系统应具备“车流量感知”功能,当检测到某方向车流量(模拟)增大时,能自动延长该方向绿灯时间5秒。此外,还要考虑行人过街请求,当行人按下按钮后,在不影响整体交通规则的前提下,尽快切换信号灯,为行人开放通行时间。2、电路设计交通灯硬件部分主要由红、黄、绿三色LED灯组成,分别代表不同方向的交通信号。以南北方向和东西方向为例,每个方向的红黄绿三色灯分别连接到单片机的P1口和P2口,如P1.0-P1.2控制南北方向红黄绿灯,P2.0-P2.2控制东西方向红黄绿灯。行人请求按钮连接至单片机的外部中断引脚,如P3.2(外部中断0),用于触发行人过街请求。车流量传感器信号模拟输入可通过简单的开关连至单片机的P3.3等其他输入引脚。3、源程序参考定时器配置:使用定时器T0,工作于方式1,分频后产生1ms定时。系统时间基准设定为1ms,通过定时器中断累加实现秒级延时控制。系统晶振频率为12MHz,定时器T0的初值设定为(65536-1ms*fosc/12)。知识梳理与总结定时器的应用本质单片机定时器是精准时间控制的核心工具,通过设定初值和选择合适的工作模式,可实现从毫秒到秒级的延时。例如,在LED闪烁和数码秒表任务中,定时器T0或T1工作于16位模式,利用12MHz晶振的时钟信号,经分频和计数实现精确延时。延时函数的编写通常结合循环结构与定时器溢出标志,完成特定时间间隔的控制。中断系统的机制与优势中断系统使单片机能够实时响应外部事件和内部定时需求。当中断源发出请求,CPU暂停当前任务,转而执行中断服务程序,处理紧急事件后自动恢复原任务。在交通灯控制系统中,外部中断用于处理紧急和特殊情况,通过设置中断优先级,确保高优先级中断(如紧急车辆通过)能打断低优先级中断(如特殊情况放行),实现系统的灵活性和实时性。硬件设计的关键点硬件设计是软件功能实现的基石。在LED控制和交通灯系统中,单片机引脚与LED、数码管等外设的连接需合理规划。例如,使用限流电阻保护LED,避免过流损坏;数码管的段码和位选控制要与单片机IO口匹配,确保信号正确输出。同时,外部中断引脚的连接要符合触发条件,如下降沿触发需正确配置电路。综合能力的培养通过这些项目,读者能够系统掌握单片机定时器和中断的编程与应用,提升硬件电路设计与调试能力。在实践中,学会将理论知识转化为实际可用的嵌入式系统,为后续复杂项目开发积累经验。这种综合能力的培养,不仅有助于解决实际问题,更为深入学习物联网、智能硬件等前沿领域奠定坚实基础。谢谢项目6
简易声光报警器设计目录任务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芯片的典型应用电路
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 培训主管半年度绩效考核考评表
- 项目管理团队风险评估预案
- 娱乐主播内容制作与推广KPI考核表
- 助力心理成长共创阳光心态小学主题班会课件
- 信息系统安全演练备案函(6篇)
- 诚信伴我成长-小学主题班会课件
- 关于2026年5月客户退货处理流程的安排通知函3篇范本
- 设计优化绩效考核表
- 物流与供应链系统优化分析报告
- 小学主题班会课件:礼仪教育塑造未来
- GA/T 1215-2025中小学与幼儿园周边道路交通组织设计与交通设施设置规范
- 2026年四川省成都市中考语文真题(试题+答案)
- 2025年食品安全事故应急处置全流程培训
- 2026年淡水养殖高级水产工程师答辩题库
- 探秘南海IODP349基底玄武岩中钙质碳酸盐岩脉:岩石学与地球化学的深度剖析
- 上市公司收购方案
- GB/T 14233.2-2025医用输液、输血、注射器具检验方法第2部分:生物学试验方法
- 2025年基本公共卫生服务项目(慢阻肺健康管理)培训试题(附答案)
- 供应商资质与实力评估体系模板
- GB/T 4662-2025滚动轴承额定静载荷
- 路灯节能改造工程项目可行性研究报告
评论
0/150
提交评论