基于单片机的交通灯控制系统

2024-09-07

基于单片机的交通灯控制系统(共8篇)

基于单片机的交通灯控制系统 篇1

单片机原理及系统课程设计报告

基于单片机的交通灯控制系统 引言

单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域具有广泛的应用。本文设计了基于单片机的交通灯控制系统以AT89C51单片机为核心芯片,通过控制三色LED灯的亮灭来控制各车道的通行。设计方案及原理

本系统由AT89C51单片机、红、黄、绿LED交通信号灯、共阴极数码管、紧急通车开关等模块组成该电路具有设计简单,显示亮度高,能耗小,可靠性高灯特点。其总体设计框图如图1所示。

复位电路七段数码管倒计时显示电路AT89C51晶振电路A、B车道LED显示电路按键电路

图1 系统总体设计方框图

2.1 系统设计

交通灯控制系统主要控制A,B两车道的交通,以AT89C51单片机为核心芯片,通过控制三色LED灯的亮灭来控制各车道的通行;另外通过3个按键来模拟各车道有无车辆的情况和有紧急车辆的情况。根据设计要求,制定总体设计思想如下:

(1)用AT89C51单片机控制交通灯电路,晶振采用12MHz。(2)用发光二极管模拟交通信号灯,用按键开关模拟车辆检测信号。

(3)有紧急车辆通过时,按下K3开关使A、B车道均为红灯,禁行20s。此时,

基于单片机的交通灯控制系统 篇2

在十字路口设置交通灯可以对交通进行有效的疏通, 并为交通参与者的安全提供了强有力的保障。但是随着社会、经济的快速发展, 原先的交通灯控制系统已经不能适应现在日益繁忙的交通状况。如何改善交通灯控制系统, 使其适应现在的交通状况, 成为研究的课题。

传统的十字路口交通控制灯, 通常的做法是:事先经过车辆流量的调查, 运用统计的方法将两个方向红绿灯的延时预先设置好。然而, 实际上车辆流量的变化往往是不确定的, 有的路口在不同的时段甚至可能产生很大的差异。即使是经过长期运行、较适用的方案, 仍然会发生这样的现象:绿灯方向几乎没有什么车辆, 而红灯方向却排着长队等候通过。这种流量变化的偶然性是无法建立准确模型的, 统计的方法已不能适应迅猛发展的交通现状, 更为现实的需要是能有一种能够根据流量变化情况自适应控制的交通灯。

目前, 大部分城市中十字路口交通灯的控制普遍采用固定转换时间间隔的控制方法。由于十字路口不同时刻车辆的流量是复杂的、随机的和不确定的, 采用固定时间的控制方法, 经常造成道路有效利用时间的浪费, 出现空等现象, 影响了道路的畅通, 还行成了拥堵现象。为此, 采用不依赖数学模型的模糊控制方法设计交通灯控制器, 能较好地解决这个问题。为保证交通控制的可靠、稳定, 选择了能够在恶劣的电磁干扰环境下正常工作的单片机是必要的。

8051单片机交通灯控制系统集成自动控制技术、计量技术、新传感器技术、计算机管理技术于一体的机电一体化产品;充分利用计算机技术对生产过程进行集中监视、控制管理和分散控制;充分吸收了分散式控制系统和集中控制系统的优点, 采用标准化、模块化、系统化设计, 配置灵活、组态方便。

2 交通灯简介

当今, 红绿灯安装在各个道口上, 已经成为疏导交通车辆最常见和最有效的手段。绿灯是通行信号, 面对绿灯的车辆可以直行, 左转弯和右转弯, 除非另一种标志禁止某一种转向。左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。红灯是禁行信号, 面对红灯的车辆必须在交叉路口的停车线后停车。黄灯是警告信号, 面对黄灯的车辆不能越过停车线, 但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。

3 芯片简介

MSC-51芯片简介。

8051是MC S-51系列单片机的典型产品, 我们以这一代表性的机型进行系统的讲解。8051单片机包含中央处理器、程序存储器 (ROM) 、数据存储器 (RAM) 、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线, 包括以下几部分。

中央处理器、数据存储器 (RAM) 、程序存储器 (ROM) 、定时/计数器 (ROM) 、中断系统、时钟电路、并行输入输出 (I/O) 口:8051共有4组8位I/O口 (P0、P1、P2或P3) , 用于对外部数据的传输。全双工串行口:8051内置一个全双工串行通信口, 用于与其它设备间的串行数据传送, 该串行口既可以用作异步通信收发器, 也可以当同步移位器使用。

4 对多个方案进行比较、设计与论证

包括电源提供方案、显示界面方案、输入方案, 而且还对交通灯显示时序和交通灯显示时间进行理论分析与计算。东西和南北方向的放行时间的长短是依据路口的各个方向平时的车流量来设定, 并且S1、S2、S3、S4各个状态保持的时间之有严格的对应关系, 其公式如下所示:

(1) 结合交通灯控制系统的要求, 进行灯控制电路设计、倒计时显示电路设计, 违规车辆检测电路设计, 从主要部件的选择、流程的分析、程序思路和按键子程序流程图的产生来完成本次设计任务。

(2) 通过对系统的调试和检测, 再进行系统性梳理, 进行测试、数据及结果分析, 包括状态灯显示测试、数码管的测试、整体电路测试, 将隐藏的不足之处加以修正和完善, 确保系统能顺利运行。

摘要:自从交通灯诞生以来, 设计方法很多, 从而使交通灯显得更加智能化。本系统以单片机系统为核心, 采用键盘、LED显示器的系统等组成。系统除基本交通灯功能外, 还具有倒计时、时间设置、紧急情况处理、分时段调整信号灯的点亮时间、违规车辆检测等功能, 其中的模拟输入设备和通信设备更是符合交通灯控制系统的要求与特点, 能够方便地联网通信。

关键词:AT89S51,交通规则,LED,8051

参考文献

[1]秦宇峰.基于PLC的交通灯控制系统[J].考试周刊, 2011 (23) .

[2]杨辉.PLC应用设计实例——交通灯控制[J].硅谷, 2011 (7) .

[3]马巍.单片机控制交通灯[J].职业, 2011 (5) .

[4]高阳.一种基于凌阳单片机的交通灯控制系统[J].内蒙古科技与经济, 2011 (3) .

基于单片机的交通灯控制系统 篇3

关键词 单片机 交通控制 整体设计

中图分类号:TP311.1 文献标识码:A

1单片机交通控制系统的通行方案设计

设在十字路口,分为东西向和南北向,在任一时刻只有一个方向通行,另一方向禁行,持续一定时间,经过短暂的过渡时间,将通行禁行方向对换。

通过路口交通灯状态的分析,我们可以把这四个状态归纳如下:

(1)东西方向红灯灭,同时绿灯亮,南北方向黄灯灭,同时红灯亮,倒计时20秒。此状态下,东西向禁止通行,南北向允许通行。

(2)东西方向绿灯灭,同时黄灯亮,南北方向红灯亮,倒计时2秒。此状态下,除了已经正在通行中的其他所以车辆都需等待状态转换。

(3)南北方向红灯灭,同时绿灯亮,东西方向黄灯灭,同时红灯亮,倒计时20秒。此状态下,东西向允许通行,南北向禁止通行。

(4)南北方向绿灯灭,同时黄灯亮,东西方向红灯亮,倒计时2秒。此状态下,除了已经正在通行中的其他所以车辆都需等待状态转换。

东西南北四个路口均有红绿黄3灯和数码显示管2个,在任一个路口,遇红灯禁止通行,转绿灯允许通行,之后黄灯亮警告行止状态将变换。

2 单片机交通控制系统的功能要求

2.1 倒计时显示

倒计时显示是用来减少驾驶员在信号灯色改变的关键时刻做出复杂判断的1种方法,它可以提醒驾驶员灯色发生改变的时间,帮助驾驶员在“停止”和“通过”两者间作出合适的选择。

2.2 车流量检测及调整

车辆检测器作为智能交通系统的基本组成部分,在智能交通系统中占有重要的地位。现阶段,车辆检测器检测方式有很多,各有其优缺点。一般车流量检测器采用传感器+单片机+外围器件来实现。而且,目前国内使用的红绿灯都是固定的红绿灯时间,并自动切换。红灯时间和绿灯时间,是根据道口东西向和南北向的车流量,利用统计方法确定的。交通警察不断观察十字路口的两个方向,根据车辆密度和流速决定是否切换红绿灯,以保证最佳的道路交通控制状态。

2.3 时间手动设置

除系统根据车流量自动控制调整,也可以通过键盘进行手动设置,增加了人为的可控性,避免自动故障和意外发生,并在紧急状态下,可设置所有灯变为红灯。键盘是单片机系统中最常用的人机接口,一般情况下有独立式和行列式两种。前者软件编写简单,但在按键数量较多时特别浪费I/0口资源,一般用于按键数量少的系统。后者适用于按键数量较多的场合,但是在单片机I/0口资源相对较少而需要较多按键时,此方法仍不能满足设计要求。

2.4 紧急处理

交通路口出现紧急状况在所难免,如特大事件发生,救护车等急行车通过等,我们都必须尽量允许其畅通无阻,毕竟在这种情况下是分秒必争的,时时刻刻关系着公共财产安全,个人生死攸关等。由此在交通控制中增设禁停按键,就可达到想此目的。

2.5 违规检测

交通规则必须人人遵守,但是违反规则,如闯红灯等,也时有发生,交警等交通管理人员虽然可以进行实时监管,但是耗费精力,在路口设置检测传感器就可以进行自动的警报提示。

3 单片机交通控制系统的基本构成及原理

单片机设计交通灯控制系统,可用单片机直接控制信号灯的状态变化,基本上可以指挥交通的具体通行,当然,接入LED数码管就可以显示倒计时以提醒行使者,更具人性化。本系统在此基础上,加入了违规检测电路和车流量检测电路为单片机采集数据,单片机对此进行具体处理,及时调整控制指挥,为了超越视觉指挥的局限性,同时接上蜂鸣器,在听觉上加强了指挥提醒作用。据此,本设计系统以单片机为控制核心,连接成最小系统,由车流量检测模块,违规检测模块,和按键设置模块等产生输入,信号灯状态模块,LED倒计时模块和蜂鸣器状态模块接受输出。下图为系统的总体框图。

键盘设置模块对系统输入模式选择及具体通行时间设置的信号,系统进入正常工作状态,执行交通灯状态显示控制,同时将时间数据倒计时输入到LED数码管上实时显示。在此过程中还要实时捕捉违规检测和紧急按键信号,以达到对异常状态进行实时控制的目的。急停按键和违规检测随时调用中断。

在模式选择上,若为自动模式,将不断调用车流量检测模块对车流量进行检测统计,到达一定时间将修正通行时间一满足不同路况的需要。

4 结语

基于单片机的交通灯控制系统 篇4

关键词:倒计时 89C51芯片

MCU-based simulation system for traffic lights(Major of Applied Electronic Technology, Information and Engineering College Biao Zhang)Abstract:This system consists of single-chip microcomputer system, LED display, traffic light presentation system.System includes the basic functions of traffic lights, also has a countdown, the time setting, emergency handling, at times to adjust the light signal in accordance with the specific circumstances of time and manual control functions.Keywords:countdown 89C51 引言

随着我国国民经济的迅速发展,城市街道车辆大幅度增长,给城市交通带来巨大压力,交通拥堵已经成为影响城市可持续发展的一个全局性问题。而街道各十字路口,又是车辆通行的瓶颈所在。已有的许多建立在精确模型基础上的交通系统控制方案都存在着一定的局限性。研究车辆通行规律,找出提高十字路口车辆通行效率的有效方法,对缓解交通阻塞,提高畅通率具有十分现实的意义。地面道路是一个庞大的网络,交通状况十分复杂,使目前交通灯控制器的单一时段控制已不能满足现代交通流量的多变性,特别是在交通流量高峰时,往往会造成交通路口的通过率下降,甚至出现交通混乱现象,城市的交通拥挤问题正逐渐引起人们的注意。道路平面交叉口(简称交叉口)是交通网中通行能力的“隘口”和交通事故的“多发源”,国内外城市的交通事故约有一半发生在交叉口。因此,交叉口这个事故多发源不能不引起人们的高度关注。随着交通技术、电子技术的发展及微机技术的应用,人们设计出了适应各种需要的交通检测器、信号控制机和交通信号灯。1 方案的论证及确定

题目要求系统紧急情况处理,我们讨论了两种方案。

方案一:采用8255扩展I/O口及键盘,显示等。该方案的优点是:使用灵活可编程,并且有 RAM,及计数器。若用该方案,可提供较多I/O口,但操作起来稍显复杂。方案二:采用89C51来控制键盘及数码管显示。该芯片有较宽的工作电压(2.7V-6V),128*8B内置RAM,4KB可在线重复编程的闪烁存储器。完全可以满足系统需求,由于不需要外部EPROM芯片,可以简化电路设计。由于该系统对于交通灯及LED的控制,只用单片机本身的I/O口就可实现,且本身的计数器及RAM已经够用,故选择方案二。2 电路的设计及原理的分析 2.1 系统总框图及工作原理

设计思路:设一个字路口,1,3为南北方向,2,4为东西方向。一开始1,3路口红绿灯亮通车,2,4路口红灯亮,同时LED开始倒计时。一段时间后,1,3路口绿灯灭,黄灯开始闪烁,然后等LED倒计时完毕1,3路口红灯亮,同时2,4路口绿灯亮通车,LED重新倒计时开始。一段时间后2,4路口绿灯灭,黄灯开始闪烁,等LED倒计时完毕2,4路口红灯亮,同时1,3路口绿灯亮通车。接下去重复上述过程。LED倒计时的手动控制:设计根据车流量的大小,设置了6个倒计时时间。分别是15s,30s,45s,60s,75s,90s。系统正常工作时,按一下按键2,LED闪烁,这时便可以通过按键1调节倒计时时间。按照按的次数不同循环显示。选定时间后按按键2系统开始正常工作。警车情况:警车情况由按键1来模拟。当系统正常工作时,按下按键1,黄灯闪烁,然后四路灯全部红灯。再按下按键1系统开始重新工作;按键3为复位键。2.2 硬件电路的设计

由于整个系统由AT89C51芯片控制。简单模拟一个十字路口的交通灯的工作情况。四路共12盏交通灯(4红,4黄,4绿)采用发光二极管模拟。倒计时功能用两个共阳LED数码管来实现。按键1用来模拟警车通过时的情况。按键2用来确定是否根据不同的车流量调节LED数码管倒计时的时间。所以本系统主要的驱动电路有两部分,分别是数码管的驱动电路和红绿灯驱动电路。

2.2.1 数码管显示驱动电路

数码管显示驱动电路采用“三极管驱动的并行LED数码管动态扫描显示”(图2)。三极管用于位选起到开关的作用,P1口作为段选。当三极管基极高电平时,三极管截止,数码管不工作。基极低电平时,三极管导通,数码管公共端为高电平,数码管工作同时点亮。然后通过程序的设置使用按键1和按键2来改变数码管上显示的数字。2.2.2 红绿灯显示驱动电路 2.2.3 系统整体电路图

本设计主要是由LED数码管驱动电路,红绿灯驱动电路,AT89C51微控制器三部分组成。系统的整体电路如图4: 3 硬件主要器件的介绍 主芯片:AT89C51单片机由中央处理器(CPU),内部数据存储器(内RAM),内部程序存储器(内部ROM),2个16位的定时器/计数器,4个8位的I/O口(PO、Pl、PZ、P3),1个全双工的可编程串行口,时钟电路,中断系统,8部分组成。结构图如图5:

发光二极管:本设计使用的是普通单色发光二极管,它具有体积小、工作电压低、工作电流小、发光均匀稳定、响应速度快、寿命长等优点,可用各种直流、交流、脉冲等电源驱动点亮。由于它属于电流控制型半导体器件,使用时需串接合适的限流电阻。4 系统的实际应用

本系统只是对一个十字路口交通灯工作情况的简单模拟,如果要应用到实际中去,还要改进。首先是灯的改进,如果要应用到实际中去的话,灯就得用大功率高亮度的LED。其次是倒计时LED数码管也要改为大型的LED数码管。这样一来原本的驱动电路就要改进。此外在倒计时时间的调整和警车通过等特殊情况的功能上要改进为自动检测和控制功能。这样才能达到实际应用的目的。

4.1 实际应用的驱动电路

由于实际交通信号灯的功率都在10W~20W,因此要使用高功率驱动电路。下面是驱动芯片AMC7150的实际应用电路图(图6):

AMC7150 最多可以驱动8个 LED 可以调节频率 AMC7150则内建PWM(脉冲宽度调变)与功率晶体管,只需五颗外部零件。该组件输入工作电压在4V~40V间,最高驱动电流达1.5安培,可以驱动24W的高功率LED。工作频率可由外部电容控制而达200KHz,只要调整外部电阻值即可达到变更输出电流的目的。4.2 动态车辆检测

实际应用中根据车流量大小来调整倒计时时间的长短是全自动的,这就需要一个能对过往车辆检测的电路系统,以随时确定车流量的大小,以便对倒计时时间的调整,使交通秩序达到最好状态。

为此,系统将加入一个动态车辆检测电路(图7)。其工作情况是埋设在各车道安全线前方路面下的环形线圈传感器与振荡器匹配,形成一定频率的周期信号。该信号经施密特整形电路转化为脉宽信号后可作为计数脉冲。当有车辆通过该环形线圈时,线圈磁场发生变化,从而导致计数脉冲数量的变化。将100ms时间内没有车通过时的频率计数作为基准计数Base,实际计数为Num。当NumBase>0时,就可判定有车辆通过。4.3 警车声的自动识别

由于警车声的频率是特定的,因此只要将收集的频率和警车频率比较,如果相同,则可以判定有警车开过路口,此时交通灯就可以作出相应的反映。如果不同则判定无警车通过。为了提高判定的精确度,可以取警车的三个不同频率来做判定。程序流程图 6 系统调试

本毕业论文调试分键盘模块、信号灯模块、倒计时模块。各个独立模块功能调试成功后,将这些模块程序通过主程序合并在一起,最后再对合并后的总程序进行调试。各软件模块首先要通过PC和仿真器进行软件调试,当仿真效果符合要求后,再烧写进单片机看能否在实际电路板上正常工作。编程语言的软件设计采用MCS-51汇编语言编写,所使用的调试软件包括伟福Keil uVision2和MedWin2.39,所使用的仿真器有INSIGHT公司的ME-52A仿真器。数码管问题:虽然本次设计的最终方案是采用共阳极的七段数码管实现显示功能,最初数码管显示不正常,出现闪烁现象。通过调试发现这是由于延时时间选择不当造成的和一些电源的电压可能不够的原因够成的。由于数码管是采用动态显示方式,为了使人眼产生视觉暂留效果,每一次显示时都必须加入适当的时间。通过上述的改变,以基本实现正常。

发光二极管的问题:在设计调试的时候由于一接电源,数个二极管始终不亮,最后用万用表测试了下,才知道原来因为电流过大,二极管被击穿了!于是我在二极管和芯片之间连上了限流电阻,结果表明上述问题基本解决,但还是有个别的二极管还是存在少许问题,我个人认为是二极管本身的材质引起的,而不是软件问题。结论与谢辞

系统采用51系列单片机AT89C51为中心器件来设计交通灯控制器,实现了能根据实际车流量通过按键的P3口设置红、绿灯燃亮时间的功能;显示时间直接通过P1口输出;交通灯信号通过平常PC口输出;系统设计简便、实用性强、操作简单、程序设计简便。系统不足之处不能控制车的左、右转、以及自动根据车流改变红绿灯时间等。这是由于本身地理位置以及车流量情况所定,如果有需要可以设计扩充原系统来实现。由于个人的能力有限有些地方还有不足,但此毕业设计锻炼了个人的能力和处理事情的能力,对以前所学的一些软件个程序的编写也有了很大的认识。通过这次毕业设计,使我得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼。使我在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧(特别是汇编语言)的掌握方面都能向前迈了一大步,为日后成为合格的应用型人才打下良好的基础。

在本文即将结束之际,我要由衷地感谢在我毕业设计阶段,乃至3年大学学习生活中帮助过我的师长与同学。在毕业设计完成的过程中得到了许多老师和单位领导的帮助,学院的老师们严谨治学的教学使我受益非浅。本论文的选题、研究内容、研究方法及论文的形成是在范灵芝老师支持、鼓励和悉心指导下完成的,她是我获得深思熟虑的意见和概念清晰的见解的来源,她不惜花费自己时间对本论文提出许多意见和建议,既激发了我的灵感,又给了我持久不断的鼓励。在论文完成的过程中倾注了导师大量的心血,在论文完成之际,特向我尊敬的老师表示衷心的感谢。***

组装及调试 划分出相互独立的电路模块,便于分别安装调试。每安装好一个模块,就上电测试一下。(1)硬件调试:

硬件调试是利用DVCC实验与开发系统、基本测试仪器(万用表、示波器等),检查用户系统硬件中存在的故障。其中硬件调试可分为静态调试与动态调试两步进行。静态调试是在用户系统未工作时的一种硬件检测。

第一步:目测。检查外部的各种元件或者是电路是否有断点。第二步用万用表测试。先用万用表复核目测中有疑问的连接点,再检测各种电源线与地线之间是否有短路现象。

第三步加电检测。给板加电,检测所有插座或是器件的电源端是否符合要求的值 第四步是联机检查。因为只有用单片机开发系统才能完成对用户系统的调试。

动态调试是在用户系统工作的情况下发现和排除用户系统硬件中存在的器件内部故障、器件连接逻辑错误等的一种硬件检查。动态调试的一般方法是由近及远、由分到合。由分到合是指首先按逻辑功能将用户系统硬件电路分为若干块,当调试电路时,与该元件无关的器件全部从用户系统中去掉,这样可以将故障范围限定在某个局部的电路上。当各块电路无故障后,将各电路逐块加入系统中,在对各块电路功能及各电路间可能存在的相互联系进行调试。由分到合的调试既告完成。由近及远是将信号流经的各器件按照距离单片机的逻辑距离进行由近及远的分层,然后分层调试。调试时,仍采用去掉无关元件的方法,逐层调试下去,就会定位故障元件了。(2)软件调试:

软件调试是通过对程序的汇编、连接、执行来发现程序中存在的语法错误与逻辑错误并加以排除纠正的过程。用软件WAVE6000进行调试。

设计总结

这次课程设计碰到了不少困难,也走了不少弯路。因此想给参考者讲述自己的一些经验:(1)在设计电路图时除了要择优电路之外,还应当考虑经济性。因为课程设计的目的是为了提高我们的动手能力,所以应把经济作为第一考虑要素。

(2)用protel 99SE制作原理图时一定要清楚管脚标号的顺序,这是为让封装做得更好而做的准备。当然最好的是自己建立一个元件库,这样做可使自己做的原理图可读性更好,可移植性也更好。另外要注意的是一定要有控制元件工作的电源(一般都是5v左右)。还有就是网络标号一定要保证正确。总之一定要按部就班,不可跳步骤,这会对接下来的工作繁琐度有很大的影响。(3)在做PCB板图时,针对这个电路最好先自动布局看清大概,然后手工布局。要手工布线。这是因为电路元件较少,人工布局排线更好。单层布线最好先手工布线后自动布线。为保证后期制作电路板的质量,要注意焊孔的类型及尺寸。针对现有技术及考虑到发热量等各方面,电线宽度最好要大于15mil。

(4)电路板的制作过程没什么感想,就按步骤来就可以了。在焊接过程中一定要保证焊接质量,这对以后的调试有重大影响。同时焊接质量好坏对仪器的精度有一定的影响。在焊接过程中一定要注意管脚标号。注意不要焊得太久,以免烧坏元器件。

通过这次对单片机交通信号灯的设计与制作,使我了解了设计一个嵌入式产品的大概流程,在这次设计中让我学到了不少东西。本系统是以单片机AT89S52芯片为核心部件,实现了能根据实际车流量通过AT89S52芯片设置红、绿灯燃亮时间的功能。此次在软件上是花费时间最多的,我们上网找资料,上图书馆,尽可能的了解有关于交通灯这方面的知识。通过这次计算机课程设计,使我得到了一次用理论知识、实践技能和解决问题全面系统的锻炼。使我在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧(特别是汇编语言)的掌握方面都能向前迈了一大步。在实际接线中有着各种各样的条件制约着,因此结果并不重要,我们要重视过程,我们懂得了过程,学到了方法就是我们最大的收获。在设计时应考虑诸多因素与实际的差异,从诸多方法中选择最优的就可以了。单片机课程设计与总结报告 摘要

近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。交通信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。本系统采用单片机AT89C51为中心器件来设计交通灯控制器,系统实用性强、操作简单、扩展性强。目录

一.设计任务„„„„„„„„„„

二.交通灯的设计程序框图„„„„„„

三.交通灯程序的主程序„„„„„„

四.系统硬件电路的设计„„„„„„„„

五.原理图„„„„„„

六.检测与调试„„„„„„„„„„„.七.总结与体会„„„„„„„„„„„„.八.致谢„„„„„„„„„„„„.一.设计任务

(一)、功能及技术指标要求 设计交通灯的基本要求:设计一个交通灯,要应用DVCC实验系统。

(二)、设计内容

按设计技术指标进行交通灯的硬件和软件设计。

(三)设计思路及关键技术

一个完整的交通灯相当于一个简单的单片机系统,该系统有交通灯设置电路、单片机、显示电路等构成。单片机是集成的IC芯片,只需根据实际设计要求选型。其他部分都需要根据应用要求和性能指标自行设计。

基于单片机的交通灯的设计时要充分的认识以下两个问题:

1.因为本实验是交通灯控制实验,所以要先了解实际交通灯的变化规律。假设一个十字路口为东西南北走向。初始状态0为东西红灯,南北红灯。然后转状态1南北绿灯通车,东西红灯。过一段时间转状态2,南北绿灯闪几次转亮黄灯,延时几秒,东西仍然红灯。再转状态3,东西绿灯通车,南北红灯。过一段时间转状态4,东西绿灯闪几次转亮黄灯,延时几秒,南北仍然红灯。最后循环至状态1。

2.双色LED是由一个红色LED管芯和一个绿色LED管芯封装在一起,公用负端。当红色正端加高电平,绿色正端加低电平时,红灯亮;红色正端加低电平,绿色正端加高电平时,绿灯亮;两端都加高电平时,黄灯亮。二.交通灯的设计程序框图 开始 ↓

四个路口红灯亮 ↓

东西绿灯亮,南北红灯亮,延时 ↓

东西黄灯闪烁,南北红灯亮,延时 ↓

东西红灯亮,南北绿灯亮,延时 ↓

东西红灯亮,南北黄灯闪烁,延时 ↓

三.交通灯程序的主程序 程序如下:

ORG 0000H

SJMP A3

;四盏红灯亮 A3:MOV SP,#60H

MOV A, #24H

MOV P1, A

CLR P3.4

CLR P3.3

SETB P3.5

SETB P3.2

;显示5秒

MOV R4,#05H LOOP1:MOV R2,#03H

LCALL xian

;调显示子程序

DJNZ R4,LOOP1

MOV R4,#00H

MOV R2,#03H

LCALL xian

;东西绿灯亮,南北红灯亮 A2:MOV A,#0CH

CLR P3.5

MOV P1,A

SETB P3.3 CLR P3.4

SETB P3.2

;显示20秒

MOV R4,#14H

LOOP2 :MOV R2,#03H

LCALL xian

;调显示子程序

DJNZ R4,LOOP2

MOV R4,#00H

MOV R2,#03H

LCALL xian

;调显示子程序

SETB P3.2

CLR P3.3

;显示5秒

MOV R4 ,#05H

;东西黄灯亮,南北红灯亮 LOOP9:MOV A,#14H

MOV P1 ,A

CLR P3.5

SETB P3.4

MOV R2,#02H

LCALL xian

;调显示子程序

MOV R2,#01H

;定时

LCALL DELAY

;调延时子程序

;南北红灯亮

MOV A ,#04H

MOV P1 ,A

CLR P3.4

CLR P3.5

MOV R2,#01H

;定时

LCALL DELAY

;调延时子程序

DJNZ R4,LOOP9

MOV R4,#00H

MOV R2,#03H

LCALL xian

;调显示子程序

;东西红灯亮,南北绿灯亮 A8: MOV A, #61H

MOV P1,A

CLR P3.4

CLR P3.3

CLR P3.2

SETB P3.5

;显示20秒

MOV R4,#14H

LOOP3: MOV R2,#03H

LCALL xian;调显示子程序

DJNZ R4,LOOP3

MOV R4,#00H

MOV R2,#03H

LCALL xian;调显示子程序

SETB P3.5

MOV R4 ,#05H LOOP10: MOV R2,#02H

LCALL xian;调显示子程序

;东西红灯亮,南北黄灯亮 A0:MOV A,#0A2H

MOV P1,A

CLR P3.4

CLR P3.3

CLR P3.2

MOV R2,#01H

;定时

LCALL DELAY;调延时子程序

;东西红灯亮

MOV A,#20H

MOV P1,A

CLR P3.4

CLR P3.3

CLR P3.2

MOV R2,#01H

;定时

LCALL DELAY

;调延时子程序

DJNZ R4,LOOP10

MOV R4,#00H

MOV R2,#03H

LCALL xian

;调显示子程序

LJMP A2

;延时子程序 DELAY:PUSH 2

PUSH 1

PUSH 0 DELAY1: MOV 1,#00H DELAY2:MOV 0,#0B2H

DJNZ 0,$

DJNZ 1,DELAY2

DJNZ 2,DELAY1

POP 0

POP 1

POP 2

DJNZ R2 ,DELAY

RET

;显示子程序

xian: MOV A,R4

MOV B,#10

DIV AB

MOV R6,A

MOV DPTR,#TAB

MOV A,B

MOVC A,@A+DPTR

MOV SBUF,A

MOV R7,#0FH H55S:DJNZ R7,H55S

MOV A,R6

MOVC A,@A+DPTR

MOV SBUF,A

MOV R7,#0FH H55S1:DJNZ R7,H55S1

LCALL DELAY

RET

TAB:DB 0fch,60h,0dah,0f2h,66h,0b6h,0beh,0e0h

DB 0feh,0f6h,0eeh,3eh,9ch,7ah,9eh,8eh

END 四.系统硬件电路的设计

(1)芯片由DVCC实验系统提供(AT89C51)1.主要特性: •与MCS-51 兼容

•4K字节可编程闪烁存储器 寿命:1000写/擦循环 数据保留时间:10年 •全静态工作:0Hz-24Hz •三级程序存储器锁定 •128*8位内部RAM •32可编程I/O线

•两个16位定时器/计数器 •5个中断源

•可编程串行通道

•低功耗的闲置和掉电模式 •片内振荡器和时钟电路 2.管脚说明:

VCC:供电电压。

GND:接地。

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。

P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示: 口管脚备选功能

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(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。

RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。

/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2:来自反向振荡器的输出。

3.振荡器特性: XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。

4.芯片擦除:整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。

(2)完整的DVCC实验箱面板

(3)硬件电路连接说明

五.原理图

六.检测与调试

1、硬件调试:

硬件调试是利用DVCC实验与开发系统、基本测试仪器(万用表、示波器等),检查用户系统硬件中存在的故障。

硬件调试可分为静态调试与动态调试两步进行。静态调试是在用户系统未工作时的一种硬件检测。

第一步:目测。检查外部的各种元件或者是电路是否有断点。第二步用万用表测试。先用万用表复核目测中有疑问的连接点,再检测各种电源线与地线之间是否有短路现象。

第三步加电检测。给板加电,检测所有插座或是器件的电源端是否符合要求的值 第四步是联机检查。因为只有用单片机开发系统才能完成对用户系统的调试。

动态调试是在用户系统工作的情况下发现和排除用户系统硬件中存在的器件内部故障、器件连接逻辑错误等的一种硬件检查。动态调试的一般方法是由近及远、由分到合。由分到合是指首先按逻辑功能将用户系统硬件电路分为若干块,当调试电路时,与该元件无关的器件全部从用户系统中去掉,这样可以将故障范围限定在某个局部的电路上。当各块电路无故障后,将各电路逐块加入系统中,在对各块电路功能及各电路间可能存在的相互联系进行调试。由分到合的调试既告完成。由近及远是将信号流经的各器件按照距离单片机的逻辑距离进行由近及远的分层,然后分层调试。调试时,仍采用去掉无关元件的方法,逐层调试下去,就会定位故障元件了。

2、软件调试:

软件调试是通过对程序的汇编、连接、执行来发现程序中存在的语法错误与逻辑错误并加以排除纠正的过程。七.总结与体会

本系统是以单片机AT89C51芯片为核心部件,实现了能根据实际车流量通过AT89C51芯片设置红、绿灯燃亮时间的功能。此次在软件上是花费时间最多的,我们上网找资料,上图书馆,尽可能的了解有关于交通灯这方面的知识。通过这次毕业设计,使我得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼。使我在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧(特别是汇编语言)的掌握方面都能向前迈了一大步。八.致谢

单片机定时器控制交通灯程序1 篇5

/* 名称:定时器控制交通指示灯

说明:东西向绿灯亮5s后,黄灯闪烁,闪烁5次亮红灯,红灯亮后,南北向由红灯变成绿灯,5s后南北向黄灯闪烁,闪烁5次后亮红灯,东西向绿灯亮,如此往复。*/ #include #define uchar unsigned char #define uint unsigned int sbit RED_A=P0^0;//东西向指示灯

sbit YELLOW_A=P0^1;sbit GREEN_A=P0^2;sbit RED_B=P0^3;//南北向指示灯

sbit YELLOW_B=P0^4;sbit GREEN_B=P0^5;//延时倍数,闪烁次数,操作类型变量

uchar Time_Count=0,Flash_Count=0,Operation_Type=1;//定时器0中断函数 void T0_INT()interrupt 1 { TL0=-50000/256;TH0=-50000%256;switch(Operation_Type){

case 1: //东西向绿灯与南北向红灯亮5s

RED_A=0;YELLOW_A=0;GREEN_A=1;

RED_B=1;YELLOW_B=0;GREEN_B=0;

if(++Time_Count!=100)return;//5s(100*50ms)切换

Time_Count=0;

Operation_Type=2;

break;

case 2: //东西向黄灯开始闪烁,绿灯关闭

if(++Time_Count!=8)return;

Time_Count=0;

YELLOW_A=~YELLOW_A;GREEN_A=0;

if(++Flash_Count!=10)return;//闪烁

Flash_Count=0;

Operation_Type=3;

break;

case 3: //东西向红灯与南北向绿灯亮5s

RED_A=1;YELLOW_A=0;GREEN_A=0;

RED_B=0;YELLOW_B=0;GREEN_B=1;

if(++Time_Count!=100)return;//5s(100*50ms)切换

Time_Count=0;

Operation_Type=4;

break;

case 4: //南北向黄灯开始闪烁,绿灯关闭

if(++Time_Count!=8)return;

Time_Count=0;

YELLOW_B=~YELLOW_B;GREEN_A=0;

if(++Flash_Count!=10)return;

Flash_Count=0;

Operation_Type=1;

break;}

} //主程序 void main(){ TMOD=0x01;

//T0方式1 IE=0x82;TR0=1;while(1);}

基于单片机的逆变电源系统设计 篇6

1.1逆变电源数字化控制技术的发展 随着网络技术的发展,对逆变电源提出了更高的要求,高性能的逆变电源必须满足:高输入功率因数,低输出阻抗;暂态响应快速,稳态精度高;稳定性高,效率高,可靠性高;电磁干扰低等。要实现这些功能,离不开数字化控制技术。1.2传统逆变电源控制技术

1.2.1传统逆变电源控制技术的缺点 传统的逆变电源多为模拟控制系统。虽然模拟控制技术已经非常成熟,但其存在很多固有的缺点:控制电路的元器件比较多,电路复杂,所占的体积较大;灵活性不够,硬件电路设计好了,控制策略就无法改变;调试不方便,由于所采用器件特性的差异,致使电源一致性差,且模拟器件的工作点的漂移,导致系统参数的漂移。模拟方式很难实现逆变电源的并联,所以逆变电源数字化控制是发展的趋势,是现代逆变电源研究的一个热点。1.2.2传统逆变电源控制技术的改进

为了改善系统的控制性能,通过模拟、数字(A/D)转换器,将微处理器与系统相连,在微处理器中实现数字控制算法,然后通过输入、输出口或脉宽调制口(pulse width modulation, PWM)发出开关控制信号。微处理器还能将采集的功率变换装置工作数据,显示或传送至计算机保存。一些控制中所用到的参考值可以存储在微处理器的存储器中,并对电路进行实时监控。微处理器的使用在很大程度上提高了电路系统的性能,但由于微处理器运算速度的限制,在许多情况下,这种微处理器辅助的电路控制系统仍旧要用到运算放大器等模拟控制元件。近年来随着大规模集成电路技术的发展,一些专用心片的产生,使逆变电源的全数字控制成为现实。实时地读取逆变电源的输出,并实时地处理,使得一些先进的控制策略应用于逆变电源控制成为可能,从而可对非线性负载动态变化时产生的谐波进行动态补偿,将输出谐波达到可以接受的水平。

1.3逆变电源数字化控制技术的现状

1.3.1逆变电源控制技术数字化、智能化、网络化

随着电机控制专用芯片的出现和控制理论的普遍发展,逆变电源技术朝着全数化智能化及网络化的方向发展,逆变电源的数字控制技术发生了一次大飞跃。逆变电源数字化控制的优点在于各种控制策略硬件电路基本是一致的,要实现各种控制策略,无需变动硬件电路,只需修改软件即可,大大缩短了开发周期,而且可以应用一些新型的复杂控制策略,各电源之间的一致性很好,这样为逆变电源的进一步发展提供了基础,而且易组成可靠性高的大规模逆变电源并联运行系统。

1.3.2逆变电源数字化需要解决的一些难题

数字化是逆变电源发展的主要方向,但还是需要解决以下一些难题:

a)逆变电源输出要跟踪的是一个按正弦规律变化的给定信号,它不同于一般开关电源的常值控制。在闭环控制下,给定信号与反馈信号的时间差就体现为明显的相位差,这种相位差与负载是相关的,这就给控制器的设计带来了困难。

b)逆变电源输出滤波器对系统的模型影响很大,输入电压的波动幅值和负载的性质,大小的变化范围往往比较大,这些都增加了控制对象的复杂性,使得控制对象模型的高阶性、不确定性、非线性显著增加。

c)对于数字式PWM,都存在一个开关周期的失控区间,一般是在每个开关周期的开始或上个周期之末来确定本次脉冲的宽度,即使这时系统发生了变化,也只能在下一个开关周期对脉冲宽度做出调整,所以现在逆变电源的数字化控制引起了广泛的关注。1.4逆变电源数字化的各种控制策略

逆变电源数字控制方法成为当今电源研究领域的一个热点,与数字化相对应,各种各样的离散控制方法也纷纷涌现,包括数字比例-积分-微分(PI)调节器控制、无差拍控制、数字滑变结构控制、模糊控制以及各种神经网络控制等,从而有力地推动逆变电源控制技术的发展。

1.4.1数字PI控制

数字PI控制以参数简单、易整定等特点得到了广泛应用。逆变器采用模拟数字PI控制时,如果只是输出电压的瞬时值反馈,其动态性能和非线性负载时的性能不会令人满意;如果是输出滤波电感或输出滤波电容的电流瞬时值引入反馈,其性能将得到较大改进,然而,庞大的模拟控制电路使控制系统的可靠性下降,调试复杂,不易于整定。数字信号处理芯片的出现使这个问题得以迅速解决,如今各种补偿措施及控制方式可以很方便地应用于逆变电源的数字PI控制中,控制器参数修改方便,调试简单。

但是,数字PI控制算法应用到逆变电源的控制中,不可避免地产生了一些局限性:一方面是系统的采样量化误差,降低了算法的分辨率,使得PI调节器的精度变差;另一方面,采样和计算延时使被控系统成为一个具有纯时间滞后的系统,造成PI控制器设计困难,稳定性减小,随着高速专用芯片及高速A/D的发展,数字PI控制技术在逆变电源的控制中会有进一步的应用。

1.4.2滑模变结构控制

滑模变结构控制(sliding mode variable structure control,SVSC)最显著的特点是对参数变化和外部扰动不敏感,即鲁棒性强,加上其固有的开关特性,因此非常适用于闭环反馈控制的电能变换器。

基于微处理器的离散滑模控制使逆变器输出波形有较好的暂态响应,但系统的稳态性能不是很理想。具有前馈控制的离散滑模控制系统[1],暂态性能和稳态精度得到提高,但如果系统过载时,滑模控制器的负担将变得非常重。自矫正离散滑模控制可以解决这个问题。

逆变器的控制器由参数自适应的线性前馈控制器和非线性滑模控制器组成,滑模控制器仅在负载导致输出电压变化时产生控制力,稳态的控制力主要由前馈控制器提供,滑模控制器的切换面(超平面)是根据优化准则进行设计的。1.4.3无差拍控制

无差拍控制(deadbeat control)是一种基于电路方程的控制方式,其控制的基本思想是将输出正弦参考波等间隔地划分为若干个取样周期,根据电路在每一取样周期的起始值,用电路理论算出关于取样周期中心对称的方波脉冲作用时,负载输出在取样周期末尾时的值。这个输出值的大小,与方波脉冲的极性与宽度有关,适当控制方波脉冲的极性与宽度,就能使负载上的输出在取样周期的末后与输出参考波形相重合[2]。不断调整每一取样周期内方波脉冲的极性与宽度,就能在负载上获得谐波失真小的输出。因此,即使在很低的开关频率下,无差拍控制也能够保证输出波形的质量,这是其它控制方法所不能做到的,但是,其也有局限性:由于采样和计算时间的延迟,输出脉冲的占空比受到很大限制;对于系统参数的变化反应灵敏,如电源电压波动、负载变动,系统的鲁棒性差。

对于采样和计算延时的影响,一种方法是通过修改输出脉冲方式的方法来减小计算延时造成的占空比局限;另一种方法是通过状态观测器对系统状态提前进行预测,用观测值替代实际值进行控制,从而避免采样和计算延时对系统的影响。为了提高系统的鲁棒性,一种方法是采用负载电流预测方法来减小负载变动对电源输出的影响,但实际改善的程度有限;另一种可行的方法是对系统参数进行在线辨识,从而实时确定控制器参数,以达到良好的控制效果。但是,在线系统辨识的计算复杂度和存储量都非常大,一般的微处理器很难在很短的时间内完成,因此实现的可能性不大,所以还没有一种比较好的方法来解决无差拍控制鲁棒性差的问题。正是由于无差拍控制在电源控制中的不足及局限性到目前还难以解决,使得无差拍控制在工业界的应用还有待不断的深入研究。1.4.4重复控制

逆变器采用重复控制(repetitive control)是为了克服整流型非线性负载引起的输出波形周期性的畸变,它通常与其他PWM控制方式相结合。重复控制的思想是假定前一周期出现的基波波形将在下一基波周期的同一时间重复出现,控制器根据给定信号和反馈信号的误差来确定所需的校正信号,然后在下一个基波周期的同一时间将此信号叠加到原控制信号上,以消除后面各周期中将出现的重复畸变[3]。

虽然重复控制使系统获得了很好的静态性能,且易于实现,但该技术却不能够获得好的动态性能。自适应重复控制方案成功地应用于逆变器的控制中。

模糊控制(fuzzy control)能够在准确性和简洁性之间取得平衡,有效地对复杂的电力电子系统做出判断和处理。将模糊控制应用于逆变器,具有如下优点:模糊控制器的设计不需被控对象的精确数学模型,并且有较强的鲁棒性和自适应性;查找模糊控制表只需占有处理器很少的时间,可采用较高采样率来补偿模糊规则和实际经验的偏差。

将输出电压和滤波电感电流反馈,即电压误差和电感电流作为输入模糊变量,可以实现逆变器的模糊控制,整流性负载时,其输出电压总谐波失真(total harmonic distortion,TH)小于5%,将模糊控制与无差拍控制相结合,可用来补偿由于非线性负载导致的电压降落,[5-6]。模糊控制从模仿人的思维外特性入手,模仿人的模糊信息处理能力。它对系统的控制是以人的经验为依据的,而人的经验正是反映人在思维过程中的判断、推理、归纳。理论上已经证明,模糊控制可以任意精度逼近任何线性函数,但受到当前技术水平的限制,模糊变量的分档和模糊规则都受到一定的限制,隶属函数的确定还没有统一的理论指导,带有一定的人为因素,因此,模糊控制的精度有待于进一步提高。

此外神经网络控制是一种使用人工神经网络的控制方法。因为人工神经网络是建立在强有力的数学基础上,所以它有很大的潜力,这个数学基础包括各种各样的已被充分理解的数学工具。在无模型自适应控制器中,人工神经网络也是一个重要组成部分。但由于神经网络的实现技术没有突破,还没有成功地应用于逆变电源的控制中。

第二章 推挽型逆变器的基础知识 2.1 开关型逆变器 广义地说,凡用半导体功率器件作为开关,将一种电源形态转变为另一种形态的主电路都叫做开关变换电路,这种变换可以是交流电和直流电之间的变换,也可以是电压或电流幅值的变换,或者是交流电的频率、相数等的变换。按电力电子的习惯称谓,基本的电力电子电路可以分为四大类型,即AC——DC电路、DC——AC电路、AC——AC电路、DC——DC电路。本文中的逆变电路就属DC——AC电路。开关逆变器中的开关都是在某一固定频率下工作,这种保持开关频率恒定,但改变接通时间长短(即脉冲宽度),使负载变化时,负载上电压变化不大的方法,称脉宽调制法(Pluse Width Modulation,简称为PWM)[4]。由于电子开关按外加控制脉冲而通断,控制与本身流过的电流、二端所加的电压无关,因此电子开关称为“硬开关”。凡用脉宽调制方式控制电子开关的开关逆变器,称为PWM开关型逆变器。本文是用SPWM专用产生芯片控制电子开关的通断,属硬开关技术。相对应有另一类控制技术“软开关”,它是一种使电子开关在其两端电压为零时导通电流,或使流过电子开关电流为零时关断的控制技术。软开关的开通、关断损耗理想值为零,损耗很小,开关频率可以做到很高。2.2 推挽型电路

各种变换电路按其是否具备电能回馈能力分为非回馈型和回馈型,非回馈型电路按其输出端与输入端是否电气个力分为非隔离型和隔离型。隔离型电路又分为正激型、反激型、半桥型、全桥型和推挽型。带中心抽头变压器原边两组线圈轮流工作的线路一般称为推挽线路,它不太适合离线变换器的应用。推挽型电路的一个突出优点是变压器双边励磁,在输入回路中仅有1个开关的通态压降,而半桥型电路和全桥型电路都有2个,因此在同样的条件下,产生的通态损耗较小,而且不需驱动隔离,驱动电路简单,这对很多输入电压较低的电源十分有利,因此低电压输入类电源应用推挽型电路比较合适。但是功率开关所承受的电压应大于2。

2.2.1 线路结构

图1-1 推挽型电路原理图

推挽型电路的原理图如图1-1所示。主变压器 原边绕组 接成推挽形式,副变绕组 接成全波整流形式。

2.2.2 工作原理

由于驱动电路作用,两个功率开关管、交替导通。当 导通时,加到 上,所有带“.” 端为正。功率开关管 通过变压器耦合作用承受 的电压。副边绕组 “.” 为正,电流流经、L到负载上。原边电流是负载折算至原边的电流及原边电感所定的磁化电流之和。导通期间,原边电流随时间而增加,导通时间由驱动电路决定。关断时,由于原边能量的储存和漏电感的原因,的漏极电压将升高.2.2.2推挽型逆变器的变压器设计

推挽型逆变器设计在整个电源的设计过程中具有最为重要的地位,一旦完成设计,不宜轻易改变,因此设计时对各方面问题考虑周全,避免返工,造成时间和经费的浪费。下面介绍具体设计。变压器是开关电源中的核心元件,许多其他主电路元器件的参数设计都依赖于变压器的参数,因此应该首先进行变压器的设计。高频变压器工作时的电压、电流都不是正弦波,因此其工作状况同工频变压器是很不一样的,设计公式也有所不同。需要设计的参数是电压比、铁心的形式和尺寸、各绕组匝数、导体截面积和绕组结构等,所依据的参数是工作电压、工作电流和工作频率等[5]。另外,变压器兼有储能,限流,隔离的作用.在磁心大小,原边电感,气隙大小,原,副边线圈匝数的选择,以及在磁心内直流成分和交流成分之间的相互影响都应在设计中细致考虑.第三章 基于单片机的控制系统设计

按照设计的要求,基于单片机AT89C52的设计主要实现以下功能:SA828的初始化及控制、ADC0809采样的数据的处理和输出显示电压频率。选用单片机作为主控器件,控制部分的原理框图如下:

图3-1 控制系统原理框图 3.1 系统硬件电路的设计

图3-2为控制部分的电路原理图。电路主要由AT89C52单片机、四位显示及驱动电路、AD采样电路、复位电路等组成。

图3-2 3.1.1 AT89C52单片机

AT89C52是美国ATMEL公司生产的低电压,高性能CMOS 8为单片机,片内含8k bytes 的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,与标准MCS-51指令系统及8052善拼引脚兼容,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89C52单片机适合于许多较为复杂控制应用场合。[6] 主要性能参数:

与MCS-51产品指令和引脚完全兼容 8k字节可充擦写Flash闪速存储器 1000次擦写周期

全静态操作:0Hz—24MHz 三级加密程序存储器 256×8字节内部RAM 32个可变成I/O口线 3个16位定时计数器 8个中断源

可编程串行UART通道 低功耗空闲和掉电模式 功能特性概述:

AT89C52提供以下标准功能:8k字节Flash闪速存储器,256字节内部RAM,32个I/O口线,3个16位定时/计数器,一个6向量两极中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C52可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时器/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其他所有部件工作直到下一个硬件复位。引脚功能: Vcc:电源电压 GND:地

P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。

在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。

P1口:P1是一个带有内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口P1写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。

与AT89C51不同之处是,P1.0和P1.1还可分别作为定时/计数器2的外部技术输入(P1.0/T2)和输入(P1.1/T2EX)。

Flash编程和程序校验期间,P1接收低8位地址。

P2口:P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口P2写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。

在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX @DPTR指令)时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器(如执行MOVX @RI指令)时,P2口输出P2锁存器的内容。

Flash编程或校验时,P2亦接收高位地址和一些控制信号。

P3口:P3口是一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,他们被内部上拉电阻拉高可作为输入端口。此时,被外部拉低的P3口将用上拉电阻输出电流。

P3口出了作为一般的I/O线外,更重要的用途是它的第二功能,如下表: 端口引脚 第二功能

P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2(外中断0)P3.3(外中断1)

P3.4 T0(定时/计数器0)P3.5 T1(定时/计数器1)

P3.6(外部数据存储器写选通)P3.7(外部数据存储器读选通)

此外,P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。

RST:复位输入。当振荡器工作时,RST引脚出现两个周期以上高电平将使单片机复位。XTAL1:振荡器反相放大器的及内部时钟发生器的输入端。XTAL2:振荡器反相放大器的输出端。对于本次设计的引脚使用情况如下: P1口:控制LED数码管8位段码;P3.0,P3.1,P3.4,P3.5:数码管位选通口;XTAL:接晶振;RST:接复位电路;P0: ADC0809的结果输入;SA828的控制字口;P2.0:SA828的片选;P2.7:ADC0809的片选;P3.2:外部中断0.AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8KB的可反复擦写的Flash只读程序存储器和256×8位的随机存取数据存储器(RAM),3个16位定时/计数器、6个中断源、低功耗空闲和掉电方式等特点。器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,可以满足系统要求。系统采用5V电源电压,外接12M晶振。3.1.2显示电路

显示的方法分为动态显示和静态显示。所谓静态显示就是在同一时刻只显示一种字符,其显示方法简单,只需将显示段码送至段码口,并把位控字送至位控口即可。动态显示是利用人眼对视觉的残留效应,采用动态扫描显示的方法。[7]本设计采用动态显示,显示电路采用四位一体共阳极LED数码管,从P1口输出段码,位选控制端接于P3.0,P3.1,P3.4,P3.5。段驱动采用74LS245,位选驱动采用74LS244。硬件连接图如下: 图3-3 显示部分硬件连接图 3.1.3 A/D转换电路

A/D转换器采用集成电路0809完成,0809是8位MOS型A/D转换器。[] 1).主要特性

① 8路8位A/D转换器,即分辨率8位;② 具有转换起停控制端;

③ 转换时间为100μs;

④ 单个+5V电源供电;

⑤ 模拟输入电压范围0~+5V,不需零点和满刻度校准;

⑥ 工作温度范围为-40~+85摄氏度;

⑦ 低功耗,约15mW。

2).内部结构

ADC0809是CMOS单片型逐次逼近式A/D转换器,内部结构如图所示,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型D/A转换器、逐次逼近寄存器、三态输出锁存器等其它一些电路组成。因此,ADC0809可处理8路模拟量输入,且有三态输出能力,既可与各种微处理器相连,也可单独工作。输入输出与TTL兼容。

图3-4ADC0809内部结构框图 3).外部特性(引脚功能)

ADC0809芯片有28条引脚,采用双列直插式封装,如图3-5 所示。下面说明各引脚功能。

IN0~IN7:8路模拟量输入端。

2-1~2-8:8位数字量输出端。

ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路。如表所示。

ALE:地址锁存允许信号,输入,高电平有效。图 3-5 ADC0809引脚图

START: A/D转换启动信号,输入,高电平有效。

EOC: A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。

OE:数据输出允许信号,输入,高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。

CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ。REF(+)、REF(-):基准电压。Vcc:电源,单一+5V。GND:地。

表3-6 ADDA、ADDB、ADDC真值表

ADC0809的工作过程是:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。4).AD0809与控制电路的连接如下图:

图 3-7 AD0809的连接电路 3.1.4 SPWM波形电路

由于逆变开关管的开关时间要由载波与调制波的交点来决定。在调制波的频率、幅值和载波的频率这3项参数中.不论哪一项发生变化时,都使得载波与调制波的交点发生变化。因此,在每一次调整时,都要重新计算交点的坐标。显然,单片机的计算能力和速度不足以胜任这项任务。过去通常的作法是:对计算作一些简化,并事先计算出交点坐标.将其制成表格,使用时进行查表调用。但即使这样,单片机的负担也很重。

为了减轻单片机的负担,一些厂商推出了专用于生成三相或单相SPWM波控制信号的大规模集成电路芯片,如HEF4752、SLE4520、SA828、SA838等等。采用这样的集成电路芯片,可以大大地减轻单片机的负担,使单片机可以空出大量的机时用于检测和监控。这里详细介绍SA828三相SPWM波控制芯片的主要特点、原理和编程。3.1.5 SA828主要特点

⑴.适用于英特尔和摩托罗拉两种总线格式,接口通用性好, 编程,操作简单,方便,快捷。⑵.应用常用的对称的双边采样法产生PWM波形, 波形产生数字化,无时漂,无温漂稳定性好。

⑶.在外接时钟频率为12.5MHZ时载波频率可高达24KHZ,可实现静音运行。最小脉宽和死区时间通过软件设置完成,既节约了硬件成本,又使修改灵活方便。

调制频率范围宽,精度高(12位),输出正弦波频率可达4KHZ,可实现高频率高精度控制及光滑的变频.。

⑷.在电路不变的情况下, 通过修改控制暂存器参数,就可改变逆变器性能指标,驱动不同负载或工作于不同工况。

⑸.可通过改变输出SPWM脉冲的相序实现电机的正反转。

⑹.独立封锁端可瞬时封锁输出PWM脉冲亦使微处理器防止突然事件的发生。3.1.6 SA828工作原理

SA828是MITEL公司推出的一种专用于三相SPWM信号发生和控制的集成芯片。它既可以单独使用,也可以与大多数型号的单片机接口。该芯片的主要特点为:全数字控制;兼容Intel系列和MOTOROLA系列单片机;输出调制波频率范围0—4kHz;12位调速分辨率;载波频率最高可达24kHz;内部ROM固化波形:可选最小脉宽和延迟时间(死区);可单独调整各相输出以适应不平衡负载。[8] SA828采用28脚的DIP和SOIC封装。其引脚如图3-8所示。各引脚的功能如下:(1)输入类引脚说明

AD0——AD7:地址或数据输入通道。

SET TRIP:通过该引脚,可以快速关断全部SPWM信号输出,高电平有效。

:硬件复位引脚,低电平有效。复位后,寄存器的、、WTE和RST各位为0。CLK:时钟输入端,SA828既可以单独外接时钟,也可以与单片机共用时钟。:片选引脚。

、、ALE:用于“ / ”模式,分别接收写、读、地址锁存指令。INTEL模式下ALE的下降沿传送地址,的上升沿给SA828写数据。在此模式下不用。

R/、AS、DS:用于“R/ ”模式,分别接收读/写、地址、数据指令。MOTOROLA模式下,AS的下降沿传送地址,当R/ 为低电平时,DS的下降沿给SA828写数据(接底电平)

(2)输出类引脚说明 图3-8 RPHB、YPHB、BPHB:这些引脚通过驱动电路控制逆变桥的R、Y、B相的下臂开关管。RPHT、YPHT、BPHT:这些引脚通过驱动电路控制逆变桥的R、Y、B相的上臂开关管。

它们都是标准TTL输出.每个输出都有12mA的驱动能力,可直接驱动光偶。

:该引脚输出—个封锁状态。当SETTRIP有效时,为低电平、表示输出已被封锁。它也有12mA的驱动能力,可直接驱动一个LED指示灯。ZPPR、ZPPY、ZPPB:这些引脚输出调制波频率。WSS:该引脚输出采样波形。3.1.7内部结构及工作原理

SA828内部结构如图3-9所示。来自单片机的数据通过总线控制和译码进入初始化寄存器或控制寄存器,它们对相控逻辑电路进行控制。外部时钟输入经分频器分成设定的频率,并生成三角形载波,三角载被与片内ROM中的调制波形进行比较,自动生成SPWM输出脉冲。通过脉冲删除电路,删去比较窄的脉冲(如图3-10所示),因为这样的脉冲不起任何作用,只会增加开关管的损耗。通过脉冲延迟电路生成死区,保证任何桥臂上的两个开关管不会在状态转换期间短路。

图3-9 SA828的内部结构

片内ROM存有正弦波形。寄存器列阵包含3个8位寄存器和2个虚拟寄存器。他的虚拟寄存器R3的写操作结果是R0,R1,R2中的数据写入控制寄存器。虚拟寄存器R4的写操作结果是R0,R1,R2中的数据写入初始化寄存器。各寄存器地址如表3-11所列。

图 3-10 脉冲序列中的窄脉冲

AD2 AD1 AD0 寄存器 功能 0 0 0 R0 暂存数据 0 0 1 R1 暂存数据 0 1 0 R2 暂存数据 0 1 1 R3 传控制数据 1 0 0 R4 传初始化数据 表 3-11 其工作过程可简析如下:由于调制波形关于90度,180度,270度对称,故波形ROM中仅有0∽90度的波形瞬时幅值,采样间隔0.23度, 90度内共384组8位采样值存入ROM中,每个采样值线性的表达正弦波的瞬时值, 通过相位控制逻辑,将它组成0∽360度的完整波形.该调制波与载波比较产生三相六路双极性PWM调制波形.其经脉冲宽度取消电路,将脉冲宽度小于取消时间的脉冲去掉,再经脉冲延时电路引入死区时间,从而保证了在转换瞬间高,低端功率开关不会出现共同导通现象。图3-9中24位初始化暂存寄存器,可用来设置输出波形参数,例如载波频率,最小脉宽,脉冲取消时间计数器置”0” 图3-12 Intel总线时序

等。一经设置好,运行中不允许改变。24位控制寄存器,用来调整改变调制波频率,幅值,输出关闭,过调制选择,开机关机等.上述设置和调整均通过微处理器或微控制器发出指令,数据先存入三个8位暂存寄存器R0,R1,R2中,然后通过R3和R4分别传送给24位初始化寄存器和24位控制寄存器。初始化或调整时,端要置0。SA828由外配的微处理器通过复用MOTEL总线控制,并与外配的微处理器接口,该接口总线有自动适应英特尔和摩托罗拉两种总线格式及工作时序的能力(两种总线的工作时序如图3-12和3-13),在电路启动运行后,当AS/ALE端从低电平变为高电时,内部检测电路锁存DS/ 的状态,若检测结果为高电平则自动进入英特尔模式,若检测结果为低电平,则选择摩托罗拉模式工作,总线连接和定时信息相对所用微处理器而言,这个过程在每次AS/ALE变为高电平时要进行,实际中模式选择由系统自动设定。

图3-13 Motorola总线时序

3.1.8 SA828 初始化寄存器编程

初始化是用来设定与电机和逆变器有关的基本参数。它包括载波频率设定、调制波频率范围设定、脉冲延迟时间设定、最小删除脉宽设定、幅值控制。

初始化编程时,即设定各寄存器内容。下面分别介绍这些内容的设定。[9](1)载波频率设定

载波频率(即三角波频率)越高越好,但频率越高损耗会越大,另外,还受开关管最高频率限制,因此要合理设定。设定字由CFS0--CFS2这3位组成。载波频率 通过下式(3—1)求出。式中K为时钟频率,n值的二进制数即为载波频率设定字,可以取1,2,4,8,16或32。由于K=12MHz,当n=1时,反算得 =23.4375KHz,考虑到(max)=24KHz , <(max)当n=2时,=11.71725KHz ,故n取1,实际 =23.4375KHz。(2)调制波频率范围设定

根据调制频率范围.确定设定字。设定调制波频率范围的目的是在此范围内进行l2位分辨率的细分,这样可以提高控制精度,也就是范围越小.控制精度越高。调制被频率范围设定字是由FRS0—FRS2这3位组成。调制波频率 通过下式(3—2)求得。m值的二进制数即为调制波频率范围设定字。上面已得 =23.4375KHz,若取 =500Hz则m=8.192 ,考虑到调制波的频率为400Hz,则m=8 ,反算得 =488.28Hz。(3)脉冲延迟时间设定 该设定字是由PDY0—PDY5这6位组成。脉冲延迟时间 通过下式(3—3)求得。设脉冲延迟时间 则 =60(4)最小删除脉宽设定

最小删除脉宽设定字是由PDT0—PDT6这7位组成。最小删除脉宽 由下式(3—4)图3-14 延迟前后脉宽关系

求得。考虑到延迟(死区)的因素,在延迟时.通常的做法是在保持原频率不变的基础上,使开关管延迟开通.如图3-7所示.实际输出的脉宽=延迟前的脉宽--延迟时间。由结构图 可知.SA828的工作顺序是先删除最窄脉冲,然后再延迟.所以式(3—4)给出的 应是延迟前的最小删除脉宽。它等于实际输出的最小脉宽加上延迟时间,即 =实际输出的最小脉宽十 ,假设实际输出的最小脉宽=10 那么 =15 则 =180> =128 , =10.67 s 最小脉宽为5.67 s。(5)幅值控制

AC是幅值控制位。当AC=0时,控制寄存器中的R相的幅值就是其他两相的幅值。当AC=l时,控制寄存器中的R、Y、B相分别可以调整各自的幅值,以适应不平衡负载。

初始化寄存器通常在程序初始化时定义。这些参数专用于逆变电路中.因此,在操作期间不应该改变它们。如果一定要修改,可先用控制寄存器中的 来关断SPWM输出,然后再进行修改。

3.1.9 SA828控制寄存器编程

控制寄存器的作用包括调制波频率选择(调速)、调制波幅值选择(调压)、正反转选择、输出禁止位控制、计数器复位控制、软复位控制。控制数据仍然是通过Ro—R2寄存器输入并暂存,当向R3虚拟寄存器写操作时.将这些数据送入控制寄存器。(1)调制波频率选择

调制波频率选择字由PFS0—PFS7这8位组成。通过下式

(3-5)求得 值,它的二进制数即是调制波频率选择字。取 =400Hz , =488.28Hz ,得 =3355.45179(2)调制波幅值选择

通过改变调制波幅值来改变输出电压有效值,达到变频同时变压的目的。输出电压的改变要根据U/f曲线,随频率变化进行相应的变化。调制波幅值是借助于8位幅值选择字(RAMP、YAMP、BAMP)来实现的。每一相都可以通过计算下式 %(3-6)求出A值,它的二进制数即为幅值选择字(即RAMP或YAMP或BAMP)。式中的 就是调压比,注意,初始化寄存器的AC位决定了R相幅值是否代表另二相幅值。= =91.8=92(3)输出禁止位控制

输出禁止位。当 =0时,关断所有SPWM信号输出。(4)计数器复位控制

计数器复位位,当 =0,使内部的相计数器置为0(R相)。(5)软复位控制

RST是软复位位。它与硬复位 有相同的功能。高电平有效。

SPWM波形的产生,选择专用的芯片SA828,如前面所讲,这里不再论述。它和单片机的接口如下图所示: 3.2 系统软件的设计 3.2.1 初始化程序

系统上电时,初始化程序将数据存储区清零。3.2.2 主程序

完成定时器的初始化,开各种中断,循环调用各个子程序。包括电压显示子程序、AD转换子程序、828初始化子程序。主程序流程图见图 程序清单如下: START: SETB IT1;选择INT1为边沿触发方式 SETB EX1;开外中断1 SETB EA;开总控制中断

CLR PX1;外中断1为低优先级 SETB IT0;脉冲下降沿触发外中断0 SETB EX0;开外中断0 MOV TMOD,#01H;T0工作在定时,方式1 SETB PX0;外中断0为高优先级 MOV TH0,#00H MOV TL0,#00H ACALL KAISHI ACALL INCADC AJMP START 3.2.3 SA838初始化及控制子程序

按照单片机与SA828的接线图,P2.0作为SA828的片选控制口,因此SA828的起始地址为FE00H。系统上电复位之后首先对SA828写初始化字和控制字。具体计算如前面所述。流程图如下: 程序清单如下:

CLR P2.1;禁止PWM输出

MOV A,#80H;SA828初始化寄存器 MOV DPTR,#0FE00H;SA828地址 MOVX @DPTR,A;给R0写数据 INC DPTR MOV A,#60H MOVX @DPTR,A;给R1写数据 INC DPTR MOV A,#04H MOVX @DPTR,A;给R2写数据 INC DPTR INC DPTR MOVX @DPTR,A;给初始化寄存器R4写数据 MOV A,#1BH;SA828控制寄存器 MOV DPTR,#0FE00H;SA828地址 MOVX @DPTR,A;给R0写数据 INC DPTR MOV A,#2DH MOVX @DPTR,A;给R1写数据 INC DPTR MOV A,#05CH MOVX @DPTR,A;给R2写数据 INC DPTR MOVX @DPTR,A;给控制寄存器R3写数据 SETB P2.1;允许PWM输

单片机对采样到的输出如做PI调节计算转换为电压幅值控制字后,需要重新写入控制字,其方法是相同的。

3.2.4 ADC0809的控制及数据处理子程序

单片机与ADC0809的接线图所示,P2.7作为ADC0809的片选控制口,因此ADC0809的起始地址为7F00H。如图所示,ADC0809的地址选择线接地,固定8路模拟数据输入端重IN-0为电压采样输入端。ADC0809的CLK信号是从AT89C52的ALE端经四分频器74LS74分频后得到的,工作频率为500HZ,转换时间为128us左右,据此设计一个延时时间,延时时间一到,采用查询方式进行数据传送。即用软件测试EOC(P3.1)的状态,若测试结果为1,则转换结束接着进行数据传送,否则等待,直到测试结果为1。因为ADC0809的最大输入电压为5V,其转换结果FFH对应5V。所以FFH对应的输入应大于等于5V,表示输入超过量程。本设计中FFH对应36V,其转换公式为,X=,因此程序中有二进制转换及乘14子程序,除以100处理为小数点固定显示在次低位。另外,考虑到系统存在电磁干扰,采用了中值滤波子程序进行软件抗干扰。中值滤波对于去掉由于偶然因素引起的波动或采样器不稳定而造成的误差所引起的脉动干扰比较有效。中值滤波之后将最优值存于6AH中再进行转换处理。流程图如图下面是程序清单: INCADC: MOV R0,#2CH MOV R2,#03H SAMP: MOV DPTR,#7F00H;AD0809端口地址送DPTR MOV A,#00H;输入通道0选择 MOVX @DPTR,A;启动A/D转换 MOV R7,#0FFH;延时查询方式 DELAY:DJNZ R7,DELAY LOOP1:JB P3.1,T1;查询p3.1是否为1 JNB P3.1,LOOP1 T1:MOVX A,@DPTR;读取从IN0输入的转换结果 MOV @R0,A INC R0 DJNZ R2,SAMP 以下是数字滤波程序流程图及程序清单:

FILTER:MOV A,6CH CJNE A,6DH,CMP1 AJMP CMP2 CMP1:JNC CMP2 XCH A,6DH XCH A,6CH CMP2:MOV A6DH CJNE A,6EH,CMP3 MOV 6AH,A CMP3:JC CMP4 MOV 6AH,A CMP4:MOV A,6EH CJNE A,6CH,CMP5 MOV 6AH,A CMP5:JC CMP6 XCH A,6CH CMP6:MOV 6AH,A;滤波结果存于6AH RET 3.2.5 数据处理及电压显示子程序 DISPLAY: MOV A,6AH ACALL L1;十进制转换 ACALL PLAY RET PLAY:;显示程序 MOV A,R5;分离D1 ANL A,#0FH MOV 50H,A MOV A,R5;分离D2 ANL A,#0F0H SWAP A MOV 51H,A MOV A,R4;分离D3 ANL A,#0FH MOV 52H,A MOV A,R4;分离D4 ANL A,#0F0H SWAP A MOV 53H,A PLAY1: CLR P2.6 CLR P2.5 CLR P2.4 CLR P2.3 MOV R1,#50H;显示数据首地址 MOV P1,#0FFH;清除原来的数据 SETB P2.3;显示最低位 MOV A,@R1 MOV DPTR ,#TAB MOVC A,@A+DPTR MOV P1,A LCALL DL1MS;数据显示1ms CLR P2.3 MOV P1,#0FFH INC R1 SETB P2.4;显示次低位 MOV A,@R1 MOV DPTR ,#TAB MOVC A,@A+DPTR ANL A,#7FH;小数固定显示 MOV P1,A LCALL DL1MS CLR P2.4 MOV P1,#0FFH INC R1 SETB P2.5;显示次高位 MOV A,@R1 MOV DPTR ,#TAB MOVC A,@A+DPTR MOV P1,A LCALL DL1MS CLR P2.5 MOV P1,#0FFH INC R1 SETB P2.6;显示最高位 MOV A,@R1 JZ NODISPLAY;若A=0,则不显示 MOV DPTR ,#TAB MOVC A,@A+DPTR MOV P1,A LCALL DL1MS CLR P2.6 MOV P1,#0FFH NODISPLAY: MOV P1,#0FFH AJMP PLAY1 RET

L1:CLR C;十进制转换 MOV R5,#00H MOV R4,#00H MOV R3,#08H NEXT1:RLC A MOV R2,A MOV A,R5 ADDC A,R5 DA A MOV R5,A MOV A,R4 ADDC A,R4 DA A MOV R4,A MOV A,R2 DJNZ R3,NEXT1 RET

TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH

DL1MS: MOV R6,#14H DL1:MOV R7,#19H DL2:DJNZ R7,DL2 DJNZ R6,DL1 RET 3.2.6 输出频率测试计算及显示子程序部分 ⑴.频率测试计算子程序部分

SA828带有频率输出端口,将其与单片机的中断INT0口相接,如原理图所示。本例中所使用的中断源有2个:T0中断和 中断。中断的功能是计算ZPPR输出的调制波频率。由于调制波频率可能比较低,因此用T0溢出中断来记录一个ZPPR周期中T0溢出的次数,这个溢出次数保存到70H中。这样,在一个 中断间隔里,所用的时间(即ZPPR周期)是3个字节的数(1个字节的T0溢出次数,2个字节的T0值)。因为AT89C52使用12MHZ的时钟频率,一个机器周期是,所以调制波频率的计算公式为: =0F4240H,也是一个3字节的数,因此 是一个3字节除法运算。如果对精度要求不高,的分子分母可以舍掉最低字节来简化运算,这样就成为双字节除法运算。所以,当 中断时,只取TH0,将其存放到71H中除法运算的整数商存放到72H、73H中,小数商存放到75H中,以便频率显示程序中调用。

中断子程序及流程图如下:

SUANPIN: CLR EA;关中断 CLR TR0 PUSH ACC;保存现场 PUSH B PUSH DPL PUSH DPH PUSH PSW PUSH 50H PUSH 51H PUSH 52H PUSH 53H PUSH 60H PUSH 61H PUSH 62H PUSH 63H PUSH 6AH SETB PSW.3 MOV 70H,#00H;MOV TL0,#00H;TL0清0 MOV 71H,TH0;取TH0值 MOV TH0,#00H;TH0清0 MOV A,71H;检查除数是否为0 ORL A,70H;不会溢出,高位永远为零 JZ ABC;除数为0则退出 MOV R2,#00H;输入被除数 MOV R3,#00H MOV R4,#0FH MOV R5,#42H MOV R6,70H;输入除数 MOV R7,71H LCALL NDIV;调用双字节除法子程序原来的程序,NDIV:MOV B,#16;双字节无符号数除法子程序;当条件(R2R3)〈(R6R7)满足时,;(R2R3R4R5)/(R6R7)=(R4R5),余数在(R2R3)NDVL1: CLR C MOV A,R5 RLC A MOV R5,A MOV A,R4 RLC A MOV R4,A MOV A,R3 RLC A MOV R3,A XCH A,R2 RLC A XCH A,R2 MOV F0,C CLR C SUBB A,R7 MOV R1,A MOV A,R2 SUBB A,R6 JB F0,NDVM1 JC NDVD1 NDVM1: MOV R2,A MOV A,R1 MOV R3,A INC R5 NDVD1:DJNZ B ,NDVL1 CLR F0

MOV 72H,R4;频率整数部分存于7273H中 MOV 73H,R5;调制波频率整数部分存72H MOV 75H,R2;将调制波频率小数部分(小于100)存75H MOV 70H,#00H;70H清0 ABC:POP 6AH POP 63H POP 62H POP 61H POP 60H POP 53H POP 52H POP 51H POP 50H POP PSW;恢复现场 POP DPH POP DPL POP B POP ACC SETB EA;开中断 SETB TR0 RETI

⑵.频率显示部分

本系统用一个四位一体的LED数码管显示数据,系统初始化后显示的为电压,按频率显示按钮显示频率。利用中断源 显示,它将72H、73H中的频率整数(二进制数)部分先进行二--十转换存于R3R4R5中,根据经验,转换过来的十进制数只有百位,即R3中的值为00,R4中的值为0X。因此将R4R5中的数分离分别在最高位、次高位、次低位显示,并且次低位带有小数点。将75H中的小数部分在最低位显示。至此,频率显示部分完成。

中断程序及流程图如下:

DISPLAYF:PUSH ACC;保存现场 PUSH B PUSH DPL PUSH DPH PUSH PSW PUSH 50H PUSH 51H PUSH 52H PUSH 53H PUSH 60H PUSH 61H PUSH 62H PUSH 63H PUSH 6AH SETB PSW.4;使用第二工作寄存区

MOV R6,72H;频率整数部分存欲R6R7中调用双字节十进制转换程序 MOV R7,73H;;ACALL HB2;调用双字节十进制转换程序

HB2:CLR A;BCD码初始化;双字节十进制转换 MOV R3,A MOV R4,A MOV R5,A MOV R2,#10H;转换双字节二进制整数

HB3:MOV A,R7;从高端移出待转换数的一位到CY中 RLC A MOV R7,A MOV A,R6 RLC A MOV R6,A MOV A,R5;BCD码带进位自身相加,相当于乘2 ADDC A,R5 DA A;十进制调整 MOV R5,A MOV A,R4 ADDC A,R4 DA A MOV R4,A MOV A,R3 ADDC A,R3 MOV R3,A DJNZ R2,HB3 MOV A,75H;频率小数部分在最低位显示 ANL A,#0F0H SWAP A MOV 50H,A MOV A,R5;频率整数部分个位数在次低位显示 ANL A,#0FH CLR CY SUBB A,#07H MOV 51H,A MOV A,R5;频率整数部分十位数在次高位显示 ANL A,#0F0H SWAP A CLR CY SUBB A,#05H MOV 52H,A MOV A,R4;频率整数部分百位数在最高位显示 ANL A,#0FH DEC A MOV 53H,A ACALL PLAY;显示频率

POP 6AH POP 63H POP 62H POP 61H POP 60H POP 53H POP 52H POP 51H POP 50H POP PSW;恢复现场 POP DPH POP DPL POP B POP ACC AJMP DISPLAYF RETI

第四章 联机调试及结果分析 4.1 联机调试情况

系统的调试分为硬件调试和软件调试两个部分。硬件调试包括控制电路的调试和主电路的调试。调试时,应该先调控制部分。首先检查电路的焊接是否正确,然后用万用表测试或通电检测。主电路部分硬件的检测方法同控制部分。硬件检查无误后,软件调试。软件调试可以先编写显示程序并进行硬件的正确性检验,然后分别进行主程序、AD转换子程序、电压显示子程序、频率显示子程序、数字滤波子程序等子程序的编程及调试。

在联机调试前,先用伟福模拟仿真,然后利用爱思G3000在线联机调试。联机调试时出现了下面一些问题:

1).四位一体LED显示管不显示; 2).P1口没有数据输出; 3).AD转换器不工作;

4).SA828的输出波形不正确。解决的办法及处理结果:

1).检查各个数码管的位控端及代码段是否连接完好,给它加的驱动是否正确,以及各个数码管本身是否完好。经检测是我们的驱动连接有问题,重新连接后,显示正常。

2).P1口没有数据输出的原因也是我们的显示驱动出错导致,当驱动错误排除后,P1口数据输出正常。

3).和AD转换器的各个连线都联结正确,我们的焊接技术不好,出现了个别引脚虚焊,虚焊处理后,问题解决。

4).SA828的输出波形下桥臂出现一段脉宽为1us的不正常波形,按照电路设计原理,小于5.67us的波形在脉冲删除电路中是该删除掉的,由于三相下桥臂均输出这种不正常的波形,我们用到了SA828的输出禁止端SETTRIP,把此端接上高电平即可使输出禁止而不影响内部电路的正常工作,但是实验结果还能看到此不正常的波形,若其是内部电路产生,即使不能删除,在输出禁止时理论上应该是能禁止的。又考虑到可能是干扰所至,消除掉可能存在的干扰后依然存在此波形。初次使用这系列的芯片,对其资料也不完全掌握,实验最后,仍留此问题,亟待日后解决。另外,在绞尽脑汁之后,发现一个问题,原来认为不用的芯片端口可以按其功能相应的接高电平或接地,在这样做之后,芯片发烫,断开连接即恢复正常 4.2 实验验证及结果分析

1).1).从SA828的RPHT、PRHB输出的驱动脉冲信号如下图4-1所示

图4-1 PWM输出的上、下桥臂的驱动信号

2).经过TTL驱动电路,加在栅极的驱动电压信号如图4-2所示。图4-2 MOSFET栅极的驱动信号 3).仿真交流输出信号如图4-3所示 图4-3 仿真交流输出信号 4).结果分析

实验室搭建主电路进行实验和调试,获得了较好的实验效果。该系统输出正弦波的频率为400HZ。试验证明整个系统方案结构紧凑,实时性较好。4.3结论

在前面的系统硬件软件设计下,我们在实验室组成实际的线路进行了实验和调试,获得了较为良好的实验效果。该系统输出正弦波合成的频率为400HZ,试验证明整个系统结构紧凑,实时性较以完全单片机软件编程产生SPWM波的方法要好得多,而他的功能又比用HEF4752等纯硬件方法生成的SPWM波的方法完善。综上分析及实验验证,可以得到下面几点结论:

1).SA828时一个高性能的SPWM专用IC,在合适的外围条件的支持下,它可以输出较好的SPWM脉冲信号。

2).以单片机最小系统来完成SA828的外围硬件支持,可以使系统的硬件结构简化,提高可靠性,减小系统成本和体积。

3).文中介绍的以AT89C52最小系统与SA828相结合构成的全数字化SPWM脉冲形成系统,即可解决全软件编程产生SPWM脉冲波的缺陷,又可以弥补纯硬件系统完成SPWM脉冲生成方案的不足,是一种较好的方案。4).文中介绍的SPWM脉冲形成方案,不仅在开关电源的数字化制作方面是一个尝试和创新,而且在直流调速、交流调速、变频电源、电力回收领域,也具有通用性,它应用前景广阔。

基于单片机的交通灯控制系统 篇7

随着微控技术的日益完善和发展,单片机的应用不断走向深入。它的应用必定导致传统的控制技术从根本上发生变革。它在工业控制、数据采集、智能仪表、机电一体化、家用电器等领域得到广泛的应用,极大地提高了这些领域的技术水平和自动化控制。同时,伴随着我国经济的高速发展,私家车、公交车的增加,无疑会给我国的道路交通系统带来沉重的压力,很多大城市都不同程度地受到交通堵塞问题的困扰。为解决交通堵塞问题,采用AT89C51单片机为核心,与74LS86与74LS04组成特殊情况控制电路、七段数码管及LED组成显示电路,设计出以人性化、智能化为目的的交通灯控制系统,如遇特殊情况可人为控制交通从而解决交通堵塞的实际问题,整个电路简单,易于实现[1,2]。

1 系统总体功能描述

根据日常生活中交通繁忙路段十字路口车辆和行人的通行情况,设置本交通灯控制器控制十字路口的各交通按照以下规则转换状态:

(1) 主干道(A道)先通行且通行时间为45 s;

(2) 支道(B道)通行时间为25 s;

(3) 主道与支道的车辆交错通行;

(4) 主道与支道转换时,绿灯变红灯时,先绿灯闪3 s,而此时另一个红灯不改变,然后黄灯亮2 s。

(5) 若遇紧急情况,按开关K1时,主道与支道都为红灯20 s;

(6) 根据实时交通堵塞情况人为控制时,按K2时,主道延时30 s通行,按K3时,支道延时30 s通行。

2 系统硬件设计

整个系统主要由主控中心(单片机)、复位电路、时钟电路、按键控制电路、数码管显示电路及LED模仿交通信号灯电路等功能模块组成[1,3,4]。遇到特殊情况时可以通过按键电路控制实时交通实际情况,系统框图如图1所示。

2.1 最小应用系统[5]

系统中,复位电路、时钟电路与51单片机组成最小应用系统,使交通控制系统可以正常工作。其中复位电路采用按键复位,如图2所示。

2.2 数码时间显示电路[6]

七段LED数码管是由八个发光二极管构成,通过给其引脚不同的高低电平,从而显出0~9的数字和小数点,本文通过四个一位数码管并联通过P3口当中的P3.0与P3.1与STATIC DISPLAY 模块来控制数码管时间的显示,如图2所示。

2.3 信号灯电路设计[7]

本电路的设计,应用单片机P2口中的P2.1~P2.6通过7405芯片来控制12个发光二极管模拟交通信号灯的工作情况,其中P2.1,P2.2,P2.3分别通过7405来控制A道路的绿灯、黄灯和红灯,用P2.4,P2.5,P2.6分别通过7405来控制B道路的绿灯、黄灯和红灯。采用共阳极的连接方式,所以当P2.1~P2.6中相应输出高电平经过7405取反变成低电平时对应的发光二极管变亮。

根据上述对系统各部分的电路设计,本文设计的完整系统电路图如图2所示。

2.4 控制开关

当需要根据实时交通堵塞情况实行人为控制时或遇到紧急情况时,开关能够起到控制的作用,并能使各路交通回到初始状态。

3 软件设计[1,8,9]

主程序中完成对交通灯系统的初始化工作,使得主干道与支道能正常转换工作,在此系统中,由于要用七段LED数码管显示交通倒计时间,在主程序当中,分别调用了三个子程序,一个是延时子程序,延时500 ms,在用一个寄存器来计循环次数,循环2次,达到定时1 s,分别为绿灯闪烁调用时间,数码管显示调用时间,一个是显示子程序,用来显示主干道与支道的时间,另一个是中断子程序。主程序流程图如图3所示。

本系统采用两种中断来实现交通灯控制器的功能。

设置外部中断INT0,该中断用来处理紧急情况,当交通灯控制器出现故障或交通出现严重事故需要封锁道路时,调用该中断,使主道和支道的交通灯均为红灯20 s。该中断具有最高的优先级。

设置外部中断INT1,该中断用来处理根据主道与支道车辆实时交通情况的多少实行延长时间通行,通行延时30 s。

INT0,INT1中断子程序流程图如图3所示。

4 系统仿真

为了方便程序调试,本文采用了Proteus仿真[10],仿真图电路如图2所示,最高级中断功能仿真结果如图4所示。

5 结 论

基于C51系列单片机设计的交通控制系统可以实现简单、低成本、智能操作、数码显示。该系统能够简单、经济、有效地解决交通堵塞问题,提高交通路口的通行能力。

摘要:AT89C51单片机的交通灯控制系统是由AT89C51单片机、键盘电路、LED倒计时、交通灯显示等模块组成。系统除基本交通灯功能外,还具有通行时间手动设置、可倒计时显示、急车强行通过、交通特殊情况处理等相关功能,实验采用AT89C51单片机为控制芯片,采用“Proteus+KeilμVision2”对交通灯控制系统进行了仿真,仿真结果表明:该系统能够简单、经济、有效地解决交通堵塞问题,提高交通路口的通行能力。

关键词:AT89C51单片机,倒计时,特殊情况控制与处理,Proteus仿真

参考文献

[1]尹毅峰,刘龙江.单片机原理及应用[M].北京:北京理工大学出版社,2010.

[2]倪志莲.单片机应用技术[M].北京:北京理工大学出版社,2010.

[3]南建辉,熊鸣.MCS-51单片机原理及应用实例[M].北京:清华大学出版社,2004.

[4]边春元,李文涛.C51单片机典型模块设计与应用[M].北京:机械工业出版社,2008.

[5]王冬梅,张建秋,路敬.基于单片机的交通灯控制系统设计与实现[J].佳木斯大学学报:自然科学版,2009,27(1):94-96.

[6]郭循钊,邝帆,邵平,等.基于单片机的多功能交通灯控制系统设计与仿真实现[J].公路交通技术,2010(1):128-131.

[7]孙晓艳.基于8051单片机的交通灯控制系统设计与模拟[J].南宁职业技术学院学报,2007,12(3):108-112.

[8]卢文汐.基于单片机的交通灯控制系统的设计[J].科技促进发展:应用版,2010(6):14-15.

[9]赵湘纹.基于MCS-51单片机的多功能交通灯控制系统设计[J].宁德师专学报:自然科学版,2005,17(4):385-387.

[10]习晓远.仿真技术在实验教学中的作用与地位[J].实验室研究与探索,2002,21(4):26-27.

基于单片机的车身控制系统 篇8

关键词:单片机;控制单元;操作系统;通信

中图分类号:TP311 文献标识码:A 文章编号:1674-7712 (2012) 16-0063-01

一、前言

在车身控制领域上,国内的汽车制造商和国外的企业还存在很大的一段差距。但是,国内的汽车制造商在本土适应性、开发成本等方面还是有一定的优势。因此,国内的汽车制造商在车身电子控制方面还是有很好的发展前景的。近年来,国内的汽车工业蓬勃发展,逐渐涌现出一批以研发及生产车身控制系统的优秀企业。预计在今后的汽车技术发展中,车身控制系统在汽车中的作用将会更加重要。目前,车身控制系统的主要控制方式有分布式控制和集中式控制2种。分布式控制技术设计车身控制系统可以为车内人员提供差异化及高品质的用户体验,广泛应用于当前国内外中高档车型中。而集中式控制技术可以有效地控制车身控制系统的制造成本,估计将会成为今后汽车车身控制发展的主要方向。

二、车身控制系统硬件设计

根据系统电路按照工作原理和功能实现对车身控制系统的硬件进行了设计。由于考虑到系统的合理划分和整合,采用电路模块化设计,从而简化系统硬件电路的开发过程。

汽车电控系统大致可以分为6个部分:中控台(驾驶员使用)、行驶控制系统、传动控制系统、安全控制系统、信息娱乐系统和车身控制系统。在本文的设计中,中控台是作为上位机激励控制使用,通过CAN总线向其他5个模块系统发送控制命令信息,并采集各个模块系统的返回信息,而其他5个模块系统之间也是通过CAN总线进行信息交互,以达到更加智能化控制的目标。

车身控制系统由许多电子电控单元组成,主要包括车体中的车灯、车门、车窗、雨刷、电动座椅、车身防盗以及车身上其他部分,为驾驶带来更多的智能与舒适性和安全性。在本文的设计中,将车身控制系统分为集中式和分布式控制两种,其中,将车灯控制子系统和车窗控制子系统列为集中式控制,集成到中央控制模块中,而对其他子系统例如雨刷控制子系统等归为基于LIN总线的分布式控制。

本文设计的基于实时操作系统的车身控制系统将中央控制模块作为中控台对车身控制系统的CAN总线通信的节点,并且作为LIN总线的主机节点来设计。为了验证方案的可行性,在中央控制模块上集成了车灯和车窗控制的集中式控制,而将雨刷、电动座椅、后视镜控制等子系统作为LIN总线的从机节点,属于分布式控制的部分。由于ECU模块作为通信的主机节点,并且作为整个车身控制系统的核心,而实时操作系统也是移植在这个模块上,同时集成了车灯和车窗控制子系统,所以本文通过对这个模块的设计实现,对于验证整个车身控制系统的设计方案具有实践性的意义。为了证明整个方案的正确性和测试环境的便利,将这个部分分为3个模块:ECU(Electronic Control Unit)模块、车灯驱动模块、车窗驱动模块。

三、车身控制系统软件设计

汽车操作系统应是嵌入式系统向实时多任务管理、网络耦合与通信的高端应用过渡的产物,可以提高汽车电子系统的实时性、可靠性和智能化程度。除了具备普通嵌入式系统的共有特性之外,它还具有以下几个优点:对实时多任务处理有很强的支持能力,中断响应时间短;合理进行任务调度,充分利用系统资源;系统集成度高,成本低;系统本身为超低功耗级;支持软件多线程结构,软件抗干扰性强。本文采用实时操作系统μC/OS-II作为解决方案的嵌入式操作系统,其主要的原因是μC/OS-II是一种免费公开源代码、结构小巧、具有可剥夺实时内核的实时操作系统。其内核提供任务调度与管理、时间管理、任务间同步与通信、内存管理和中断服务等功能,完全符合本文设计方案的要求。

汽车上电子装置的急剧增加和信息相互传送的网络化提出了嵌入式操作系统的需求,由法德两国汽车行业所倡导的OSEK(Open Systems and the Corresponding Interfaces For Automotive Electronics)技术是针对符合汽车电子开放式系统及其接口的软件规范所研发的嵌入式实时操作系统。OSEK规范从实时操作系统和软件的开发平台两方面作了全面的定义和规定并日趋完善,在国际汽车电子领域影响力日益增强,将成为未来汽车电子行业嵌入式操作系统的技术标准,广泛被采用。

本文将整个系统软件分为三部分:底层驱动模块、操作系统模块、应用程序模块。其中,底层驱动模块包含系统硬件所需要的寄存器的操作,操作系统模块的实时操作系统为μC/OS-II作为任务与底层驱动硬件沟通的桥梁,而应用程序模块将系统的功能划分为具体的任务实现。

四、总结

本文主要阐述了基于实时操作系统的汽车车身控制系统的开发和设计方法,并对车灯控制子系统进行了设计与实现。在对目前比较常用的实时操作系统μC/OS-II、车身控制系统的控制原理和两种车载通信总线CAN/LIN协议进行简要介绍后,对车灯控制子系统的设计过程及考虑因素作了较深入的阐述。设计的车灯控制子系统目前系统一直运行良好,各项基本功能都已经实现;总的来说,基本上达到了预定的目标。虽然其本身是一个基于功能验证性的设计,成本还较高,但对国内汽车厂商在车身控制方面具有很好的参考意义。

参考文献:

[1]贺乐厅,翟习健.汽车电动车窗防夹装置的研制[J].轻型汽车技术,2003:11-16.

[2]夏群生,李建秋.汽车电子学[M].北京:清华大学大学出版社,2005:117-162.

[3]孙仁云,付百学.汽车电器与电子技术[M].北京:机械工业出版社,2006:213-216.

[4]黄鹏.基于CAN/LIN的智能车身网络系统的研究与设计[D].长沙:中南大学,2009:1-2.

[5]徐春艳,刘桂霞,周春光,姜丰,吕晓枫.基于LIN总线车灯控制系统的研制[J].吉林大学学报,2009:1-3.

上一篇:人民网下一篇:《因为痛,所以叫青春》经典名言