基于单片机的可程控顺序系统论文_第1页
基于单片机的可程控顺序系统论文_第2页
基于单片机的可程控顺序系统论文_第3页
基于单片机的可程控顺序系统论文_第4页
基于单片机的可程控顺序系统论文_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

1、 PAGE36 / NUMPAGES361 引言1.1程序控制顺序系统意义单片机控制技术应用十分广泛,其核心技术是单片机控制系统的设计。其中单片机在控制系统中的应用是越来越普遍了。单片机控制系统是以单片机(CPU)为核心部件,扩展一些外部接口和设备,组成单片机工业控制机,主要用于工业过程控制。要进行单片机系统设计首先必须具有一定的硬件基础知识;其次,需要具有一定的软件设计能力,能够根据系统的要求,灵活地设计出所需要的程序;第三,具有综合运用知识的能力。最后,还必须掌握生产过程的工艺性能与被测参数的测量方法,以与被控对象的动、静态特性,有时甚至要求给出被控对象的数学模型。 顺序控制是工业生产中一

2、个比较典型的控制方式。因为一个产品的生产过程,实际就是按照一定的顺序和一定工艺要求进行的加工过程,不论其生产流程多么复杂,总可以把流程分成若干个工作步骤,每个工作步骤又可以分为几个加工的顺序段,并使每一个顺序执行一个特定的操作。这样经过若干个加工顺序段之后就可以得到最后的产品。采用顺序控制系统的意义,就是根据生产工艺的要求,按照预先规定的顺序,在各个输入信号的作用下,使生产过程的各个执行机构自动的按照顺序动作,顺序控制已被广泛的应用在加工,装配,包装等自动化生产设备中,是工业自动化的分支。顺序控制的设计,一般采用PLC,工控机和单片机来实现,而单片机作为一种低成本实现方式,在小型控制装置中得到

3、了广泛的应用。目前单片机顺序控制软件的设计,一般针对具体工业过程进行的,生产工艺改变则控制软件必须重新设计。如果控制软件设计成通用化的形式,则将可以接节省设计人员的大大量重复劳动,缩短顺序控制系统的开发周期。1.2 顺序控制的历史以与发展状况20世纪50年代大多采用继电器的固定式顺序控制系统,50年代后期采用二极管的矩阵式顺序控制系统,到60年代末出现了可编程顺序控制系统。70年代以来,顺序控制技术迅速发展,并逐步采用微型计算机,向小型化和大型多功能方向发展。图1-1示出了顺序系统控制结构。检测元件测出被控对象(如加热反应炉)的状态(如加料完毕),测量信号送到顺序控制器处理并发出控制信号,通过

4、执行器使被控对象改变到一个新的状态(如接通加热器)。顺序控制器常采用各种开关(如限位开关、接近开关)、光电转换元件、穿孔纸带等来设定工作条件;常用的执行器有电磁阀、电机、电磁铁、电热器等(图1-2)。它们接通或断开时便改变被控对象原来的状态。顺序控制器分为固定式顺序控制器、矩阵式顺序控制器和可编程操作信号处理逻辑处理故障状态显示和报警比较输出执行器检测元件被控对象键盘输入信号控制信号阀值给定状态量图1-1 顺序系统控制结构输入信号顺序控制器执行器手动开关限位开关接近开关光电转换其他传感器电磁阀电机电磁铁电热器其他顺序控制器图1-2 顺序控制器常用的控制元件和执行器序控制器三类。由于微型机和配套

5、芯片的发展,可编程顺序控制器应用日益广泛。顺序控制器一般用于生产过程的开关量控制。动力设备的起动和停止、加热或冷冻设备的接通和断开、信号灯的亮与灭等都是开关量信号。生产线、自动机床和各种设备都有许多开关量信号需要顺序控制。因此,顺序控制器广泛应用于机械、冶金、电力、石油、化工、煤炭、建材、纺织、。随着电子信息产业的高速发展,应用微处理器的顺序控制系统将会得到更大的发展。2顺序控制的设计任务与方案论证2.1可程控的顺序系统系统可以程序控制;第一步至第二步各为XXX秒;第三步至第四步各为XXXX秒;显示顺序过程XXX步XXX秒X循环;设计过程显示电路;设计中断扫描方式的键盘输入;设计直流电源。2.

6、2 方案论证方案1:采用PLC作为核心控制部件。使用PLC步进控制,结构如图2-1所示,步1的M1得电条件是受控机械原位开关X1处于压合状态(若受控机械有多个执行机构,则要求每个执行机构的原位开关均处于压合状态),满足原位条件后按起动按钮X0才能得电。M1得电后自锁,并为步2提供步进条件信号(M1的常开触点)。步1的执行动作完成时触发的行程开关信号X2作为步2的转步条件信号。步2的M2的输入满足其步进条件和转步条件后得电自锁,并为步3提供步进条件信号。按此规律即可实现后续每一工作步辅助继电器的得电和自锁。停止步M5的步进条件信号和转步条件信号分别为:最后一个工作步M4发出的步进条件信号(M4的

7、常开触点)和该步动作完成时所触发的转步信号X1。由于M5的得电信号令控制系统失电,所以M5的回路不自锁,而且要将其常闭触点串联在步1回路的最左端。从步2起后续各个步的回路构成分支回路。一旦M5得电便使整个系统失电。如不用分支回路的结构,可以把M5常闭触点分别串联在每步辅助继电器的回路上。应该注意的是:无论工作步还是停止步,如果某步的转步指令信号有多个,则应将多个转步指令信号互相串联。显示部分采用LED显示管。图2-1 plc步进控制梯形图方案2:采用AT89C51单片机,P0口接74LS373地址锁存器,由地址锁存器接8255I/O口扩展芯片,P2.4,P2.5,P2.6接一个3-8译码,输出

8、端YO接8255的片选信号端,8255的PB口做矩阵式键盘接口,PA口接发光二极管,采用共阳级的方式,运用中断方式查询是否有按健按下。秒信号的产生是利用对单片机部定时器T1产生的中断信号进行多次累加后形成的。该信号还经过60次计数后产生分频信号,最后,再以分钟为时间间隔从设置好的定时时间数据逐一递减并随时显示剩余的定时时间参数,形成倒计数的显示方式,共99S。显示采用动态扫描电路,共阳级方式接入。由P1.0P1.3提供LED显示信息。P1.4P1.5LED显示的片选口,按键设置分为16个,09号键为数字键,设定时间和步数。10号键为工作步骤顺序设定键,设置0-9步的工作步骤顺序,11号键时间设

9、定键,用来设置时间,12号键为循环次数键用来设置循环次数,13号键为确认键,用来确定具体设置完成,14号键为开始键,决定程序的开始运行,15号键为停止键。所有时间都可程控。方案比较:方案1,控制系统比较复杂,且没有达到最精确的时间。硬件过于复杂。方案2,按键简单,采用矩阵的键盘接口,按键控制简单。按键数目和方案相似,但按键的功能明确,时间、循环次数设定简单,LED显示采用动态扫描方式。且所有时间,循环次数都可程控,综上所述,我们可以完全有理由的选择方案2。硬件电路的设计尽管单片机集成度高,部含有I/O控制线,ROM,RAM和定时/计数器。但在组成单片机系统时,扩展若干接口仍是设计者必不可少的任

10、务。扩展接口有2种方案,一种是购置现成的接口板,另一种是根据系统实际需要,选用适合的芯片进行设计控制系统。就后一种而言,主要包括以下几个方面的容。基本系统的构成:一个独立的单片机核心系统,一般由时钟电路、地址锁存器电路、地址译码器、存储器扩展、模拟量输入通道的扩展、模拟量输出通道的扩展、开关量的I/O接口设计、键盘输入和显示电路等组成。(1)存储器扩展由于单片机有4种不同的存储器,且程序存储器和数据存储器是分别编址的,所以单片机的存储器容量与同样位数的微型机相比扩大了一倍多。扩展时,首先要注意单片机的种类;另一方面要把程序存储器和数据存储器分开。(2)模拟量输入通道的扩展主要有以下2个问题:一

11、个是数据采集通道的结构形式,一般单片机控制系统都是多通道系统。因此选用何种结构形式采集数据,是进行模拟量输入通道设计首先要考虑的问题。多数系统都采用共享A/D和S/H形式。但是当被测参数为几个相关量时,则需选用多路S/H,共享A/D形式。对于那些参数比较多的分布式控制系统,可把模拟量先就地进行A/D转换,然后再送到主机中处理。对于那些被测参数一样(或相似)的多路数据采集系统,为减少投资,可采用模拟量多路转换,共享仪用放大器、S/H和A/D的所谓地电平多路切换形式。另外一个问题是A/D转发器的选择,设计时一定要根据被控对象的实际要求选择A/D转换器,在满足系统要求的前提下,尽量选用位数比较低的A

12、/D转换器。(3)模拟量输出通道的扩展模拟量输出通道是单片机控制系统与执行机构(或控制设备)连接的纽带和桥梁。设计时要根据被控对象的通道数与执行机构的类型进行选择。对于那些可直接接受数字量的执行机构,可由单片机直接输出数字量,如步进电机或开关、继电器系统等。对于那些需要接收模拟量的执行机构,则需要用D/A转化,即把数字量变成模拟量后,再带动执行机构。 (4)开关量的I/O接口设计由于开关量只有2种状态“1”或“0”,所以,每个开关量只需一位二进制数表示即可。因为MCS51系列单片机设有一个专用的布尔处理机,因而对于开关量的处理尤为方便。为了提高系统的抗干扰能力,通常采用光电隔离器把单片机与外部

13、设备隔开。(5)操作面板操作面板是人机对话的纽带,它根据具体情况,可大可小。为了便于现场操作人员操作,单片机控制系统设计一个操作面板的要求:操作方便、安全可靠、并具有自保功能,即使是误操作也不会给生产带来恶果。(6)系统速度匹配 在不影响系统总功率的前提下,时钟频率选得低一些较好,这样可降低系统对其他元器件工作速度的要求,从而降低成本和提高系统的可靠性。但系统频率选的比较高时,要设法使其他元器件与主机匹配。总体结构框图如下图3-1所示输入部分(由键盘电路组成)完成设置时间功能,循环次数输出部分(完成相应的顺序过程)显示部分(LED显示器)完成显示时间的循环次数的功能中央处理部分(由单片机AT8

14、9C51担当)完成处理数据功能图3-1 总体结构框图利用键盘扫描电路来完成按键设置时间,发光二极管点亮次序,利用LED接口显示电路来显示当前的工作步骤时间,发光二极管依次点亮作输为出部分。3.1 主控部件设计此次设计我们采用AT89C51单片机,提供以下标准功能:8k字节Flash闪烁存储器,256字节部RAM,32个I/O口线,3个16位定时/计数器,一个6向量两级中断结构,一个全双工串行通信口,片振荡器和时钟电路。同时,AT89C51可降至0HZ的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU工作,但允许RAM,定时/计数器,串行通信口与中断系统继续工作,掉电方式保存R

15、AM中的容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。引脚图如图3-2所示: 图3-2 AT89C51引脚图3.1.189C51单片机的特点与MCS-51产品指令和引脚完全兼容; 8K字节可重擦写FLASH闪存;1000次擦写周期; 全静态操作:0Hz-24MHz; 三级加密程序存储器; 256X8字节部RAM;32个可编程I/O口线; 3个16位定时/计数器; 8个中断源; 可编程串行UART通道; 低功耗空闲和掉电模式。3.1.289C51单片机引脚说明P0口P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8个TTL

16、逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活部上拉电阻。在FLASH编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。P1口P1口是一个带部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过部的上拉电阻把端口拉到高电平,此时可作输出口。作输入口使用时,因为部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。与AT89C51不同之处是,P1.0和P1.1还可分别作为定时/计数器2的外部计数输入

17、(P1.0/T2)和输入(P1.1/T2EX),FLASH编程和程序校验期间,P1接收低8位地址。 P2口P2是一个带部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口P2写“1”,通过部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。 在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVXDPTR指令)时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器(如执行MOVXRI指令)时,P2口输出P2锁存器的容。FLASH编程或校验时,P2亦接收高位地址和一

18、些控制信号。 P3口P3口是一组带有部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,它们被部上拉电阻拉高并可作为输入端口。此时,被外部拉低的P3口将用上拉电阻输出电流。P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,如下表所示:P3.0 RXD(串行输入口);P3.1 TXD(串行输出口);P3.2 INT0(外部中断0);P3.3 INT1(外部中断1);P3.4 T0 (定时/计数器0);P3.5 T1 (定时/计数器1);P3.6 WR (外部数据存储器写选通);P3.7 RD (外部数据存储器读选通)。此外

19、,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。 RST复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。ALE/PROG当访问外部程存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。 FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。 如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和M

20、OVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。 PSEN程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C51由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。 EA/VPP外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时部会锁存EA端状态。 如EA端为高电平(接Vcc端),CPU则执行部程序存储器的指令。FLASH存储器编程时,该引

21、脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。3.1.38255引脚功能 图3-3 8255A引脚图RESET:复位输入线,当该输入端外于高电平时,所有部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。 CS:片选信号线,当这个输入引脚为低电平时,表示芯片被选中,允许8255与CPU进行通讯。 RD:读信号线,当这个输入引脚为低电平时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。 WR:写入信号,当这个输入引脚为低电平时,允许CPU将数据或控制字写8255。 D0D7:三态双向数据总线,8255与CP

22、U数据传送的通道,当CPU 执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。 PA0PA7:端口A输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入锁存器。 PB0PB7:端口B输入输出线,一个8位的I/O锁存器, 一个8位的输入输出缓冲器。 PC0PC7:端口C输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入缓冲器。端口C可以通过工作方式设定而分成2个4位的端口, 每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口3.1.4 时钟电路的设计单片机的时钟信号用来提供单片

23、机片各种微操作的时间基准,复位操作则使单片机的片电路初始化,使单片机从一种确定的初态开始运行。89C51单片机的时钟信号通常用两种电路形式得到:部振荡方式和外部振荡方式。在引脚XTAL1和XTAL2外接晶体振荡器(简称晶振)或瓷谐振器,就构成了部振荡方式。由于单片机部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。部振荡方式的外部电路如下图所示。图中,电容器Cl,C2起稳定振荡频率、快速起振的作用,其电容值一般在5-33pF。晶振频率的典型值为12MHz,采用6MHz的情况也比较多。部振荡方式所得的时钟信号比较稳定,实用电路中使用较好。如图3-3,:图3-4 振荡电

24、路图3.1.5复位电路的设计单片机复位是使CPU和系统中的其他功能部件都处立个确定的初始状态,并从这个状态开始工作,例如复位后PC0000H,使单片机从第个单元取指令。大论是在单片机刚开的接广电源时,还是断电后或者发生故障后都要复位,所以我们必须弄清楚89C51单片机复位的条件、复体电路和复位后状态。单片机复位的条件是:必须使RSW阳或RST引脚(9)加上持续两个机器周期(即24个振荡周期)的高电平。例如,若时钟频率为12MHz,每机器周期为1s,则只需2s以上时间的高点平,在RST引脚出现高电平后的第二个机器周期执行复位。具体电路设计的分析和比较:1、方案一:此方案中采用上电复位电路。电路如

25、图3-5所示。图3-5 上电复位电路图上电式复位电路的特点是很方便,当有电源接通给单片机时,此电路就可以自动产生复位信号。它是利用电容充电来实现的。在接电瞬间,RESET端的电位与VCC一样,随着充电电流的减少,RESET的电位逐渐下降。只要保证RESET为高电平的时间大于两个机器周期,才能正常复位。2、方案二:此方案中采用了按键式的复位电路,如下图3-6所示:这种复位电路的特点就是上电以后,可以随时通过按键来发出复位信号。若要复位,只需按图中的RESET键,此时电源VCC经电阻R1、R2分压,在RESET端产生一个复位高电平。这对系统的可控性是很有帮助的。3.2方案比较前面已经介绍了复位电路

26、的两种形式,其实对系统而言并没有什么大的区别,但考虑到系统调试时的方便,本系统采用了按键复位方式。当调试不成功时,经过调整后,只需单片机复位即可进行下一次的调试。这也降低了其他硬件由于电源供电问题,而导致的调试不成功。所以,最终选定按键复位电路为单片机部分的复位电路。图3-6 按键复位电路图3.2.1外围芯片的选用硬件锁存接口采用8位锁存器。373为三态输出的八D透明锁存器,共有54/74S373和54/74LS373两种线路结构型式。373为三态输出的8 D透明锁存器, 373的输出端O0-O7可直接与总线相连。当三态允许控制端OE为低电平时,O0-O7为正常逻辑状态,可用来驱动负载或总线。

27、当OE为高电平时,O0-O7呈高阻态,即不驱动总线,也不为总线的负载,但锁存器部的逻辑操作不受影响。当锁存允许端LE为高电平时,O随数据D而变。当LE为低电平时,O被锁存在已建立的数据电平。当LE端施密特触发器的输入滞后作用,使交流和直流噪图3-7SN74LS373N 8位锁存器声抗扰度被改善400mV。 373引出端符号: D0D7数据输入端OE三态允许控制端(低电平有效) LE锁存允许端O0-O7输出端 最后我选用SN74LS373N锁存器,引脚如图3-7所示:3.2.2译码器SN74LS138D译码器SN74LS138D原理图如下图3-8所示:图3-8 译码器SN74LS138D原理图由

28、图可知,该译码器有3个输入端A、B、C,它们共有8种状态的组合,即可译出8个输出信号Y0-Y7,故该译码器称为3线8线译码器。该译码器的主要特点是,EA、EB为低电平有效用。由功能表可知,当EA为低电平,译码器处于工作状态。3.3矩阵式键盘的结构与工作原理在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式,在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9

29、键)。由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些,上图中,列线通过电阻接正电源,并将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。这样,当按键没有按下时,所有的输出端都是高电平,代表无键按下。行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。故此我们使用矩阵式键盘。如图3-9所示:图3-9 矩阵式键盘矩阵式键盘PCB如图3-10所示。图3-10矩阵式键盘PCB图3.3.1键盘扫描方式介绍(1)中断方式:在中断模式下,按键的数量受到外部中断源的限制

30、,在有特殊场合的需要下,还可以借用部的定时中断。所以在这样的模式下,按键的数目小于外部中断源和定时器数量之和。(2)程序查询方式:通过读I/O状态,当有键被按下时相应的I/O口线变为低电平,而未被按下的键对应的I/O口线保持为高电平,这样通过读I/O口状态可判断是否有键按下和哪一个键被按下,在需要键盘输入的时候,调用扫描程序,获得扫描的状态值。由于采用这种结构,在不需要输入的时刻,CPU是不对键盘进行相应的扫描,键盘被旁路。(3)定时查询方式:和程序查询方式一样,也是通过读I/O状态,当有键被按下时相应的I/O口线变为低电平,而未被按下的键对应的I/O口线保持为高电平,这样通过读I/O口状态可

31、判断是否有键按下和哪一个键被按下,不同的是定时查询是利用定时器产生中断,每次中断查询一次I/O端口,实时性较强。本次设计中我们采用中断扫描的方式。3.3.2键盘抖动消除方法键盘是由若干按键组成的开关矩阵,它是微型计算机最常用的输入设备,用户可以通过键盘向计算机输入指令、地址和数据。一般单片机系统中采用非编码键盘,非编码键盘是由软件来识别键盘上的闭合键,它具有结构简单,使用灵活等特点,因此被广泛应用于单片机系统。如图3-11所示: 图3-11 非编码键盘按键开关的抖动问题 组成键盘的按键有触点式和非触点式两种,单片机中应用的一般是由机械触点构成的。在下图中,当开关S未被按下时,输入端为高电平,S

32、闭合后,输入端为低电平。由于按键是机械触点,当机械触点断开、闭合时,会有抖动动,输入端的波形如图3-10所示。这种抖动对于人来说是感觉不到的,但对计算机来说,则是完全可以感应到的,因为计算机处理的速度是在微秒级,而机械抖动的时间至少是毫秒级,对计算机而言,这已是一个“漫长”的时间了。前面我们讲到中断时曾有个问题,就是说按键有时灵,有时不灵,其实就是这个原因,你只按了一次按键,可是计算机却已执行了多次中断的过程,如果执行的次数正好是奇数次,那么结果正如你所料,如果执行的次数是偶数次,那就不对了。为使CPU能正确地读出输入口的状态,对每一次按键只作一次响应,就必须考虑如何去除抖动,常用的去抖动的方

33、法有两种:硬件方法和软件方法硬件消抖:硬件削抖是采用硬件电路的方法对键盘的按下抖动与释放抖动进行削抖,经过削抖电路后使按键的电平信号只有两种稳定的状态。常用的削抖电路有触发器削抖电路、滤波削抖电路两种。硬件削抖电路如图3-12所示: 图3-12 硬件削抖电路软件消抖:是在单片机获得P1口为低的信息后,不是立即认定S1已被按下,而是延时10毫秒或更长一些时间后再次检测P1口,如果仍为低,说明S1的确按下了,这实际上是避开了按键按下时的抖动时间。而在检测到按键释放后(P1口为高)再延时5-10个毫秒,消除后沿的抖动,然后再对键值处理。不过一般情况下,我们通常不对按键释放的后沿进行处理,实践证明,也

34、能满足一定的要求。当然,实际应用中,对按键的要求也是千差万别,要根据不同的需要来编制处理程序,但以上是消除键抖动的原则。这里我们采用软件消抖的方法。3.4 显示电路的设计3.4.1过程显示电路的设计在本次设计中,应用八个二极管代表过程显示电路。与8255的PA口连接,采用共阳级加上一个上拉电阻即可。如图3-12所见。单片机在上电初始后,其各端口输出为高电平。如果我们现在想连接在PA.0口的LED1亮,那么我们只要把PA.0口的电平变为低电平就可以了。想让LED1灭,LED0亮,只需将PA.0升高,PA.1变低,LED1就熄灭LED2随后既点亮!依此始类推如下所示8只LED便变会一亮一暗代表一个

35、顺序的过程.图3-13 过程显示电路3.4.2状态显示电路的设计在本次设计中,应用LED显示器作为顺序控制系统的输出器件,用来显示顺序系统的时间,循环次数,以与工作步骤。由若干个发光二极管组成,当发光二极管导通时,相应的一个点或一个笔画发亮,控制不同组合的发光二极管导通,能够显示各种字符,常用的LED显示器有7段和“米”字段之分,分为共阳极和共阴极两种。如图3-14,3-15所示,图3-14 共阴极显示电路 3-15 共阳极显示电路共阴极LED显示器的发光二极管的阴极连接在一起,通常次公共阴极接地,当某个发光二极管的阳极为高电平时,发光二极管点亮。共阳极LED显示器的发光二极管的阳极连接在一起

36、,通常此公共阳极接正电压,当某个发光二极管的阴极接低电平时,相应的段被点亮。在此次设计中,LED显示器 用来显示过程步骤,时间,以与循环次数,不需要特殊字符,所以采用7段LED显示器,外形图如下 3-16 LED显示电路此电路中,74L373用于驱动LED的8位段码,8位LED相应的ag段连在一起,它们的公共端分别连至由74LS138译码选通后经DS75492反相驱动的输出端。这样当选通某一位LED时,相应的地址线(DS75492输出端)输出的是高电平,所以我们的LED选用共阳LED数码管。LED点亮的时间太短,LED的亮度太低,肉眼无法看清,所以一般均取几个ms左右为宜,这就要求在编写程序时

37、,选通某一位LED使其点亮并保持一定的时间,程序上常采用的是调用延时子程序。在C51指令中,延时子程序是相当简单的,并且延时时间也很容易更改,可参见程序清单中的DELAY延时子程序。为简单起见,我们只是编写了8位LED同步显示0000000011111111直到99999999数字,并且反复循环。程序很简单,流程图略去。显示电路原理如图3-17所示显示电路PCB如果3-18所示图3-17 显示电路原理图动态扫描的频率有一定的要求,频率太低,LED将出现闪烁现象。如频率太高,由于每个图3-18 显示电路PCB图7段LED字型码如表3-1。 表 3-1 7段LED字型码表显示字符 共阴极字型码共阳

38、极字型码 03FHC0H 106HF9H 25BHA4H34FHB0H466H99H56DH92H67DH82H707HF8H87FH80H96FH90H4 软件设计(1) 此次设计中,系统程序采用主程序、显示子程序、键盘分析子程序、T0 中断服务程序.T1中断服务程序。(2) 显示子程序采用查表法将部RAM容译成段码, 送至74LS273字形口锁存器。(3) 键盘分析子程序完成键盘扫描, 10ms 延时去抖动, 判键值, 等键释放, 10 ms 延时去抖动任务。(4) INT1中断服务程序主要功能键盘扫描、设置程序的开始,扫描PB口按键号按下,INT1中断停止所有程序的运行。4.1 主程序的

39、流程图系统初始化扫描功能键盘是否为外部中断0数目?P2.1存储工作步骤数据寄存.P2.2存储循环次数P2.5P2.3 P2.4存储时间确认键显示电路显示过程电路显示NY开 始停 止4-1 主程序流程图4.2程序设计程序设计可分为三部分。(1)键盘输入。通过中断方式,确定有按健输入。再通过键盘扫描来确定具体的按键。需要注意的是在键盘扫描时需进行消抖处理(2)发光二极管显示部分,通过设置工作步骤,点两发光二极管,一个发光二极管代表一个工作步骤。(3)数码管显示和指示灯输出。根据获取的键值编码,选择相应的功能,驱动数码管和指示灯显示。5 直流稳压电源的设计小功率稳压电源由电源变压器、整流电路、滤波电

40、路和稳压电路四个部分组成,如图5-1所示。 + 电 源 + 整 流 + 滤 波 + 稳 压 + u1u2 u3 uI U0_ 变压器 _ 电 路 _ 电 路 _ 电 路 _ u1 u2 u3uIU0t0 t0 t0 t0 t0 图5-1 稳压电源的组成框图与整流与稳压过程5.1 整流和滤波电路在稳压电源中一般用四个二极管组成桥式整流电路,整流电路的作用是将交流电压u2变换成脉动的直流电压u3。滤波电路一般由电容组成,其作用是把脉动直流电压u3中的大部分纹波加以滤除,以得到较平滑的直流电压UI。UI与交流电压u2的有效值U2的关系为:在整流电路中,每只二极管所承受的最大反向电压为: 流过每只二极

41、管的平均电流为:其中:R为整流滤波电路的负载电阻,它为电容C提供放电通路,放电时间常数RC应满足:其中:T=20ms是50Hz交流电压的周期。5.2 稳压电路由于输入电压u1发生波动、负载和温度发生变化时,滤波电路输出的直流电压UI会随着变化。因此,为了维持输出电压UI稳定不变,还需加一级稳压电路。稳压电路的作用是当外界因素(电网电压、负载、环境温度)发生变化时,能使输出直流电压不受影响,而维持稳定的输出。稳压电路一般采用集成稳压器和一些外围元件所组成。采用集成稳压器设计的稳压电源具有性能稳定、结构简单等优点。集成稳压器的类型很多,在小功率稳压电源中,普遍使用的是三端稳压器。按输出电压类型可分

42、为固定式和可调式,此外又可分为正电压输出或负电压输出两种类型。固定电压输出稳压器常见的有CW78(LM78)系列三端固定式正电压输出集成稳压器;CW79(LM79)系列三端固定式负电压输出集成稳压器。三端是指稳压电路只有输入、输出和接地三个接地端子。型号中最后两位数字表示输出电压的稳定值,有5V、6V、9V、15V、18V和24V。稳压器使用时,要求输入电压UI与输出电压Uo的电压差UI- Uo2V。稳压器的静态电流Io = 8mA。当Uo = 5-18V时,UI的最大值UImax= 35V;当Uo=18-24V时,UI的最大值UImax = 40V。它们的引脚功能与组成的典型稳压电路见附录图

43、A所示。5.3 可调式三端集成稳压器可调式三端集成稳压器是指输出电压可以连续调节的稳压器,有输出正电压的CW317系列(LM317)三端稳压器;有输出负电压的CW337系列(LM337)三端稳压器。在可调式三端集成稳压器中,稳压器的三个端是指输入端、输出端和调节端。稳压器输出电压的可调围为Uo=1.2 37V,最大输出电流Iomax =1.5A。输入电压与输出电压差的允许围为:UI -Uo = 3-40V在此次设计中我们所应用到的单片机上5V,所以使用LM7805完全满足。5.4电源电路的原理图图5-2 电源原理图电源电路PCB如图5-3所示图5-3 电源PCB图6 顺序系统的系统调试软件调试

44、是通过对程序的汇编、连接、执行来发现程序中存在的语法错误与逻辑错误并加以排除纠正的过程。在计算机上,利用汇编软件将源程序进行汇编,变成可执行的代码,在汇编中出现了一些错误,经改正后,使得编译通过。编译通过后,采用动态测试的方法,对源程序进行调试,配合仿真器伟福实验箱,通过单步运行,设置断点等方法查看是否有错误发生。最后将正确的程序同过EPROM,固化在EPROM中。硬件调试首先采用静态调试的方法,用万用表等工具,根据硬件逻辑图,仔细检查电路板的线路连接是否正确,核对各个元器件的型号,规格,安装是否符合本次设计的要求,特别注意的电源的检查,防止电源的短路以与级性的错误,重点检查了系统总线是否存在

45、相互短路或与其他信号线的短路。之后检查单片机引脚的电位,测量个点电平是否正常。最后进行总调试,将除了单片机以外,插上所有的元器件,把仿真器的插头直接插在样机上的89C51的插座,与开发系统的仿真器相连,进行联机仿真测试。经过上述测试后,确定本次设计完全符合要求!总 结通过为期两个多月的毕业设计,我感觉有很大的收获:首先,通过学习使自己对课本上的知识可以应用于实际,使得理论与实际相结合,加深自己对课本知识的更好理解,同时从实际硬件电路的搭建、调试到软件系统程序的编写、调试,所有工作形成了一个完整的系统。整个工作过程培养了我独立科研的能力,也培养了我工程学的思维能力,让我受益匪浅,为我以后的工作奠

46、定了基础.由于我单独设计的,在汇编程序和电路的硬件设计中,锻炼了自己的逻辑思维能力,提高了自学能力。在两个月的时间里,我积极地去完成课程设计,并且坚持实验室做设计,完成程序的调试和仿真工作。在绘制电路原理图时,由于粗心大意,使得某些元器件搞错或是在PROTEL中找不到元器件的元件库,同时由于一开始对元器件得摆放位置不合理,使在对相应的元器件进行连线时,使得布线看得比较乱,整个图看起来,显得不够清楚。在老师指导下,对元器件重新得进行布置,再使用元件编号对元器件进行编号,这样一来,就省下了进行布线的麻烦,使整个图看起来又清晰又明了。第二步就是使用WAVE600软件进行汇编语言,我做的是顺序控制,因

47、此需要编辑主程序、键盘程序以与显示程序,在参考单片机原理与应用这本后,编辑出了键盘和显示程序,这时,就出现了错误,在书本上这两个程序是独立的程序,但我在使用时是在一起作为子程序使用,因此必须使两个程序相互关联起来,再经过老师的知道、同学得帮助和自己的努力思考下,终于解决了这个问题。还有就是在进行调试得时候会出现程序转跳错、程序错误或是输入、输出错误等问题,在耐心得查看现出错误得程序处,看这条错误程序得上下几行程序以与错误程序在程序中得作用,在老师和同学得帮助下,一一修改了错误序,或是删掉不合理得程序,重新编辑新得程序。总之,论文的完成让我学到了很多东西,也还存在很多问题,望各位老师批评指正,也

48、为我以后工作提出宝贵意见。参考文献:1 候朝帧,微机与单片机应用基础M,理工大学,20052 余永权,单片机应用系统的功率接口技术M,北航,20063 罗宜晶,多媒体计算机软件大全M,电子科技大学,20054 高海生等,单片机应用技术大全M,西南交大,20055 何立民,单片机应用技术选编 1/2/3M,北航,20046 DALAS Semiconductor,Aatomatic Identification Data BookM,20057 秉操,单片机接口技术与其在单片机的应用M,电子编辑部,20058 汝全,微机与单片机接口与应用M,电子科技大学出版,20069 林间,湍,使用电子电路大

49、全(一二三)M,电子工业,200510 甘娜,微机原理与接口技术M,交通大学,200611 育荣,曾彦贺,Delphi 从入门到精通M,清华大学,200512 守义,单片机应用技术M,电子科技大学,200513 王承发,邱祥辉,微型计算机原理与应用(修订版)M,200614 徐惠民,安德宁,单片微型计算机原理、接口与应用M,有点大学,200315 白驹垳,雷晓平,单片计算机与其应用M,电子科技大学,200716 HYPERLINK :/ 21ic .21ic.致 本论文是在杰老师亲切关怀和悉心指导下完成的。在整个毕业设计任务和论文的完成过程中,老师都付出了很多的心血,从论文的选题、开题到方案设

50、计与最后的论文撰写、修改都离不开老师的精心指导。老师在百忙之中仍抽出宝贵的时间和我研究、讨论论文和设计中所遇到的难点,直到我寻找解决问题的途径,他渊博的知识、严谨的治学态度以与对国学术动态敏锐的洞察力,使我受益匪浅,终生难忘。在此,我要真诚地感杰老师。在这一个学期的学习和生活中,得到了许多同学的帮助,在此我要感帮助我的全体同学们,是他们给我提供了一个良好的学习和研究环境,在和他们的讨论和交流过程中,使我增长了不少知识,积累了不少经验。而除了以上提到的之外,当然还要很多的人曾经帮助过我。他们在各自的岗位上默默地做出了贡献,为我和像我一样的许多人服务。所以在这里,我要向所有关心和帮助过我的人表示我

51、最诚挚的祝福和感。附录二 LED动态显示源程序#include#include#include#include#define UN unsigned charUN read_1byte();void write_1byte(unsigned char x);void WriteToChip(UN a,b);void read(UN h,l,d);void JiaMi51();void JiaMi53();void ck(UN x);void csf();UN d104;void del05s();UN btl_bz;UN icxh;unsigned int AllByte;/需读出的字节数不16位sbit lsledcs =P37;void delay();UN zh_adh8252r(UN x);UN zh_adh8252w(UN x);sfr16 DPTR=0 x82;sbit ACC0=ACC0;sbit ACC1=ACC1;sbit ACC2=ACC2;sbit ACC3=ACC3;sbit ACC4=ACC4;sbit ACC5=ACC5;sbit ACC6=ACC6;sbit ACC7=ACC7;unsigned char bdata bm;sbit bm0=bm0;sbit b

温馨提示

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

评论

0/150

提交评论