STC10F04单片机交通灯设计论文1

上传人:仙*** 文档编号:28265693 上传时间:2021-08-24 格式:DOC 页数:50 大小:923.52KB
收藏 版权申诉 举报 下载
STC10F04单片机交通灯设计论文1_第1页
第1页 / 共50页
STC10F04单片机交通灯设计论文1_第2页
第2页 / 共50页
STC10F04单片机交通灯设计论文1_第3页
第3页 / 共50页
资源描述:

《STC10F04单片机交通灯设计论文1》由会员分享,可在线阅读,更多相关《STC10F04单片机交通灯设计论文1(50页珍藏版)》请在装配图网上搜索。

1、摘 要根据STC10F04单片机的特点及交通灯在实际控制中的特点,本文提出一种用单片机自动控制交通灯及时间显示的方法。同时给出了软硬件设计方法,设计过程包括硬件电路设计和程序设计两大步骤,对在单片机应用中可能遇到的重要设计问题都有涉足。本文对十字路口状态预设为三种,一种是正常状态,一种是紧急状态,另一种是方程式状态。增设路段遇忙调整时方程式控制状态和紧急情况处理模块,通过手动控制开关按钮A0和A1方便系统在正常状态和紧急状态、方程式控制间来回切换,进一步完善了交通灯控制系统。并分别用红、黄、绿灯的不同组合来指挥两个方向通车与禁行,用LED数码管作为倒计时指示,实时的控制当前交通灯时间使LED显

2、示器进行倒计时工作并与状态灯保持同步,在保持交通安全的同时最大限度的提高交通能顺畅交替运行。本文介绍了控制基本原理以及控制的表现,同时,论述了系统中交通现状、交通管理、交通规则及背景信息。关键词:自动控制,时间显示器,外部中断,延时,方程式控制AbstractAccording to the characteristics of single-chip STC10F04 and traffic lights in the actual control of the characteristics of this paper, a single-chip automatic control wi

3、th traffic lights and the method of time display. At the same time, given the hardware and software design methodology, design process, including the hardware circuit design and program design two major steps in the single-chip applications that may be encountered in the design of the important issu

4、es are involved. In this paper, the default state of the crossroads for three, one is the normal state is a state of emergency, and the other is a state formula. Additional sections of busy status adjustment formula and an emergency control module Through the manual control switch button convenience

5、 A0 and A1 system in the normal state and a state of emergency, the equation between the control switch back and forth, and further improve the traffic light control system. And were red, yellow and green light to direct different combinations of traffic in both directions and cut-line, with LED dig

6、ital tube as a countdown to the instructions, real-time control of the current time for traffic lights to LED countdown display work and to keep pace with the state of light in the to maintain safety while minimizing the increase in traffic to alternate running smoothly. This paper introduces the ba

7、sic principles of control, as well as the performance of control at the same time, traffic on the system status, traffic management, traffic regulations and background information.Key words: automatic control; time display; external interrupt; delay; control equation目 录摘 要1Abstract2目 录31 绪论41.1 交通灯研

8、究的背景和意义41.2 交通灯国内外发展概况42 系统工作原理及设计方案72.1 交通灯的工作原理72.2 交通灯总体设计方案73 硬件系统设计113.1 硬件系统组成113.1.1 单片机最小系统113.1.2 信号显示驱动电路153.1.3 键盘输入电路164 交通灯系统详细设计184.1 软件总体设计思想184.2 交通控制算法实现204.3 系统初始化模块214.4信息显示模块224.4.1 信号灯模块224.4.2 LED倒计时显示子程序264.5键盘扫描模块295 调式总结376 致 谢38参考文献39附 录40附录一 程序清单40附录二 交通灯PCB图48附录三 交通灯电路原理图

9、491 绪论1.1 交通灯研究的背景和意义交通是城市经济活动的命脉,对城市经济发展、人民生活水平的提高起着十分重要的作用。城市交通问题是困扰城市发展、制约城市经济建设的重要因素。城市道路增长的有限与车辆增加的无限这一对矛盾是导致城市交通拥挤的根本原因。城市街道网络上的交通容量的不断增加,表明车辆对道路容量的要求仍然很高,短期内还不可能改变。自从开始使用计算机控制系统后,不管在控制硬件里取得什么样的实际进展,交通控制领域的控制逻辑方面始终没能取得重大突破。可以肯定的说,对于减轻交通拥塞及其副作用特别是对于大的交通网络而言,仍然缺乏一种真正的交通响应控制策略。计算机硬件能力与控制软件能力很不相符,

10、由此造成的影响是很多交通控制策略根本不能实现。在少数几个例子中,一些新的控制策略确实能得以实现,但他们却没能对早期的控制策略进行改进。由于缺乏能提高交通状况、特别是缺乏拥塞网络交通状况的实时控制策略,几乎可以说真正成熟的控制策略仍然不存在.智能化和集成化是城市交通信号控制系统的发展趋势和研究前沿,而针对交通系统规模复杂性特征的控制结构和针对城市交通瓶颈问题并代表智能决策的阻塞处理则是智能交通控制优化管理的关键和突破口。因此,研究基于智能集成的城市交通信号控制系统具有相当的学术价值和实用价值。把智能控制引入到城市交通控制系统中,未来的城市交通控制系统才能适应城市交通的发展。从长远来看该研究具有巨

11、大的现实意义。1.2 交通灯国内外发展概况随着经济的发展,城市现代化程度不断提高,交通需求和交通量迅速增长,城市交通网络中交通拥挤日益严重,道路运输所带来的交通拥堵、交通事故和环境污染等负面效应也日益突出,逐步成为经济和社会发展中的全球性共同问题。交通问题已经日益成为世界性的难题,城市交通事故、交通阻塞和交通污染问题愈加突出。为了解决车和路的矛盾,常用的有两种方法:一是控制需求,最直接的办法就是限制车辆的增加;二是增加供给,也就是修路。但是这两个办法都有其局限性。交通是社会发展和人民生活水平提高的基本条件,经济的发展必然带来出行的增加,而且在我国汽车工业正处在起步阶段的时期,因此限制车辆的增加

12、不是解决问题的好方法。而采取增加供给,即大量修筑道路基础设施的方法,在资源、环境矛盾越来越突出的今天,面对越来越拥挤的交通,有限的源和财力以及环境的压力,也将受到限制。这就需要依靠除限制需求和提供道路设施之外的其他方法来满足日益增长的交通需求。交通系统正是解决这一矛盾的途径之一。智能交通系统是将先进的信息技术、数据通讯传输技术、电子传感技术、电子控制技术及计算机处理技术等有效的集成运用于整个地面交通管理系统而建立的一种在大范围内、全方位发挥作用的实时、准确、高效的综合交通运输管理系统。对城市交通流进行智能控制,可以使道路畅通,提高交通效率。合理进行交通控制可以对交通流进行有效的引导和调度,使交

13、通保持在一个平稳的运行状态,从而避免或缓和交通拥挤状况,大大提高交通运输的运行效率,还可以减少交通事故,增加交通安全,降低污染程度,节省能源消耗,本文就是通过对交叉路口交通信号的智能控制,达到优化路口交通流的目的 进入20世纪70年代,随着计算机技术和自动控制技术的发展,以及交通流理论的不断完善,交通运输组织与优化理论和技术水平不断提高,控制手段越来越先进,形成了一批商水平有实效的城市道路交通控制系统。早在1977年,Pappis等人就将模糊控制运用到交通控制上,通过建立规则库或是专家系统对各种交通状况进行模糊控制,并取得了很好的效果。近年来,欧美日本等相继建立了智能交通控制系统。在这些系统中

14、,大部分都在路口附近安装磁性环路检测器,还使用了新型检测器等技术和设备。这些现代化设备技术加上控制理论和现代化科学管理技术,使得交通控制系统日益完善。随着一些研究控制理论的学者投身到交通控制的研究中,在交通信号控制领域提出了一些新方法、新思路。如静态多段配时控制、准动态多段配时控制、最优控制、大系统递阶控制、模糊控制、神经网络控制,网络路由控制等。模糊交通控制已经成为了交通信号控制的主流方向之一。国内外很多学者都进行了此类研究。 交通系统作为一个时变的、具有随机性的复杂系统,传统的人为设定多种方案或是建立各种预测模型均比较困难。城市交通控制研究的起源比较早。1868年,英国伦敦燃汽信号灯的问世

15、,标志着城市交通控制的开始。1913年,在美国俄亥俄州的Cleveland市出现了世界上最早的交通信号控制。1926年美国的芝加哥市采用了交通灯控制方案,每个交叉口设有唯一的交通灯,适用于单一的交通流。从此,交通控制技术和相关的控制算法得到了发展和改善,提高了交通控制的安全性、有效性,并减少了对环境的影响。虽然模糊控制能有效处理模糊信息,但是产生的规则比较粗糙,利用规则表查表进行控制,运算速度虽然比较快,但没有自学习功能。而且这些研究有些以相序固定为前提。不能保证相序与实际交通流状况的一致性,影响了绿灯时间的利用率。有些研究则提出了可变相序的模糊控制方法,提高了绿灯时间的利用率,弥补了相序固定

16、的缺点,但同时也存在一些不足。例如目前应用比较好的交通系统:SCOOT(经典交通系统),他们都是主要采用统计模型和经典算法。但城市交通系统是一个复杂的、随机性很强的巨型系统,要想建立实用性较强的数学模型是十分困难。利用模糊控制智能控制技术进行交叉口信号灯控制能取得比定时控制与感应控制更好的效果,是今后单交叉路口信号灯控制的主要研究方向。2 系统工作原理及设计方案2.1 交通灯的工作原理采用单片机的I/O口P1、P2和P3.6、P3.7直接和交通灯连接,P0、P4口通过限流电阻和三极管接LED数码管。控制程序放在STC10F04单片机的ROM中,在十字路口的四组红、黄、绿交通灯中,由单片机P1.

17、0-P1.7,P2.0-P2.7和P3.6、P3.7控制,由于交通灯为发光二极管且阳极通过限流电阻和电源正极连接,因此I/O口输出低电平时,与之相连的相应指示灯会亮,并通过LED数码管显示时间倒计时。I/O输出高电平时,相应指示灯会灭。紧急车请求通过的信号由人工控制,以中断方式输入单片机,无紧急车通过时,中断引脚INT0(P3.2)通过电阻和电源正极连接为高电平,不产生中断,单片机执行主程序,有紧急车通过时,中断引脚INT0(P3.2)采用人工方法接地为低电平,产生中断请求,单片机执行中断服务程序,让紧急车通过,紧急车通过后,中断引脚INT0(P3.2)变为高电平,返回主程序。方程式控制通过的

18、信号由人工控制,以中断方式输入单片机,不需调整周期时,中断引脚INT1(P3.3)通过电阻和电源正极连接为高电平,不产生中断请求,单片机执行主程序,当车辆多需要增加主干道通车时间时,中断引脚INT1(P3.3)采用人工方法接地为低电平,产生中断请求,单片机执行中断服务程序,系统以方程式控制,按一次开关按钮A1执行方程式A,按两次开关按钮A1时执行方程式B,按三次开关按钮A1时执行方程式C。当按四次时,中断引脚为高电平,返回主程序。 2.2 交通灯总体设计方案目前设计交通灯的方案有很多,有应用CPLD实现交通信号灯控制器的设计,有应用PLC实现对交通灯控制系统的设计。有应用单片机实现对交通信号灯

19、设计的方法。由于STC10F04单片机自带有2个计数器,6个中断源,能满足系统的设计要求。用单片机设计不但设计简单,而且成本低。用其设计的交通灯也满足了要求,所以本文采用单片机设计交通灯。设计一个十字路口交通灯控制电路,根据设定好的周期时间能够指挥车辆在十字路口完成左转和直行交替运行。在相同的时间里提高通车的质量、效率。并能在高峰期根据实际状况结合方程式控制按钮来调整主次干道的通车时间,降低交通拥挤堵塞现象。并使交通控制系统具有紧急控制,使救护车、救护车通过时, 使两个方向均亮红灯,救护车和消防车通过后,恢复原来状态,增加对出现特殊情况的处理能力。采用STC10F04单片机作为控制器,通行倒计

20、时显示采用LED数码管,通行指示灯采用发光二极管,LED显示采用动态扫描,以节省端口数。特殊紧急车辆通行采用实时中断完成。车流量变大时,可通过方程式开关控制按钮A1改变十字路口各个方向的通车时间,使交通更顺畅,减少堵塞。按以上系统构架设计,STC10F04单片机端口刚好满足要求。该系统具有电路简单,设计方便,耗电较少,可靠性高等特点。紧急情况用外部中断INT0控制,紧急情况结束后,再发一个终端来恢复以前的状态。方程式控制开关按钮由外部中断INT1来控制,当不同时段,车流量增加的程度不一样时,可通过方程式控制按钮开关的A、B、C三个状态来选择合适的周期。(1)各个方向除了要有红、黄、绿灯指示外,

21、每一种灯亮的时间都用数码管显示器进行显示(采用倒计时的方法)。(2)正常状态下主干道通车时间为35s,次干道通车时间为20s。(3)车流量增大时通过方程式控制按钮手动控制延长主干道通车时间,有三个方程式,分别为A、B、C方程。(4)红、绿信号灯转换时,需亮3s的黄灯作为过渡,以使行驶中的车辆有时间停靠到禁行线以外。(5)特殊状态的功能显示,进入特殊状态时(如119救火车,或120救护车通过时),则东西、南北方向均显示红灯状态1)显示器闪烁; 2)计数器停止计数并保护数据; 3)东西、南北路口均显示红灯状态; 4)特殊状态结束后,恢复现场数据继续控制十字路口; S0:南方向绿灯亮,东、西、北三个

22、方向亮红灯35秒。S1:南方向的绿灯灭,东、西方向的红灯继续亮,同时南、北两个方向的黄灯亮3秒。S2:南北方向的黄灯灭。南方向红灯亮,东、西两个方向红灯继续亮,同时北方向绿灯亮持续35秒。S3: 北方向的绿灯灭。南方向继续红灯亮,同时北方向跟东、西方向黄灯亮持续3秒。S4:东西北三个方向黄灯灭。北方向红灯亮,同时东、西方向绿灯亮持续20秒。S5:东西方向绿灯灭。北方向继续红灯亮,同时东西南三个方向黄灯亮持续3秒。出现特殊情况时(如119救火车,或120救护车通过时)按下按钮A0进入状态S7,两个方向都亮起红灯,持续10秒。特殊车顺利通过后,恢复原状态。上下班高峰期时可按下按钮A1进行相应的调整

23、。总共有A、B、C三种方程式控制,具体如下:1)按一次A1开关按钮时,系统以A方程式来控制交通灯系统。南北两个方向的通车时间延长15秒,即50秒。东西方向通车时间不变,为20秒。2)按两次A2开关按钮时,系统以B方程式控制交通灯系统。南北两个方向的通车时间延长25秒,即为60秒。东西方向的通车时间延长10秒,即为30秒。3)按两次A2开关按钮时,系统以C方程控制交通灯系统。南北两个方向的通车时间不变,还是为35秒。东西两个方向的通车时间延长15秒,即为35秒。 表2.1 状态表状态南方向北方向东西方向有效时间状态红黄绿红黄绿红黄绿S011001101135S11011010113S201111

24、001135S30111011013S401101111020S51010111013S611001101135S701101101110S8110011011A50S9101101011A3S10011110011A50S11011101101A3S12011011110A20S13101011101A3S14110011011A50S15110011011B60S16101101011B3S17011110011B60S18011101101B3S19011011110B30S20101011101B3S21110011011B60S22110011011C35S23101101011C3

25、S24011110011C35S25011101101C3S26011011110C35S27101011101C3S28110011011C35注:(1)0表示灯亮,1表示灯灭。(2)主干道为南北方向,次干道为东西方向。(3)任何时候南北两个方向的直行信号灯跟左转信号灯状态都一样,只有三个状态:1)直行跟左转同时通行,为绿灯。2)直行跟左转同时为黄灯。3)直行跟左转同时禁行,为红灯。(4)东西两个方向都是只能直行,且任何时候状态都一样,要么同为红灯,要么同为绿灯,且时间都是同步的。3 硬件系统设计3.1 硬件系统组成3.1.1 单片机最小系统单片机的最小系统包括电源(地),晶振(一般使用11

26、.0592M或者12M),复位电路,单片机内装入程序。有了以上三块内容,单片机就能够工作了。另外要注意的一点是,EA(31脚)也要接高电平,即接到电源+5V。告诉单片机不使用片外存储器,这样单片机系统才会老老实实地执行你烧写进去的程序。下图3.1就是单片机最小系统示意图: 图3.1 最小系统电路图STC10F04单片机是单时钟/机器周期(IT)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。内部集成高可靠复位电路,针对高速通信,智能控制,强干扰场合。 STC10F04单片机的定时器0 /定时器1/串行口与传统8051兼容,增加了独特

27、波特率发生器,省去了定时器2。传统8051的1111条指令执行速度全面提速,最快的指令快24倍,最慢的指令快3倍。1、 增强型8051 CPU,1T,单时钟,机器周期,指令代码完全兼容传统80512、 工作电压:5.5V3.8/3.3V3、 工作频率范围 :035MHz,相当于普通8051的0420MHz4、 应用程序空间: 4K字节5、 RAM:256字节6、 通用I /O(40/36个),复位后为:准双向口/弱上拉(普通8051传统I/O)可设置成四种模式:准双向口/弱上拉,推挽/强上拉,仅为输入/高阻,开漏每个I/O口驱动能力均可达到20mA,但整个芯片最大不要超过100mA7、 ISP

28、(在系统可编程)/IAP(在应用可编程),无需专用编辑器,无需专用仿真器,可通过串口(RXD/P3.0,TXD/P3.1)直接下载用户程序,数秒即可完成一片8、 看门狗9、 内部集成MAX810专用复位电路(晶体频率在 24MHz以下时,要选择高的复位门槛电压,如4.1V以下复位,晶体频率在12MHz以下时,可选择低的复位门槛电压,如3.7V以下复位,复位脚接1K电阻到地)10、 内置一个对内部Vcc进行掉电检测的掉电检测电路,可设置为中断或复位,5V单片机掉电检测门槛电压为4.1/3.7V附近11、 时钟源:外部高精度晶体/时钟,内部R/C振荡器,用户在下载程序时,可选择是使用内部R/C振荡

29、器还是外部晶体/时钟.常温下内部R/C振荡器频率为:4MHz8MHz.精度要求不高时,可选择使用内部时钟,但因为有制造误差和温漂,以实际测试为准12、 2个16位定时器(与传统8051兼容的定时器 /计数器,16位定时器T0和T1)13、 3个时钟输出口,可由T0的溢出在P3.0/T0输出时钟,可由T1的溢出在P3.5/T1输出时钟14、 外部中断I/O口有5路,支持传统的下降沿中断或低电平触发中断。Power down(掉电)模式可由外部中断唤醒,INT0/P3.2, INT1/P3.3, INT/TO/P3.4, INT/T1/P3.5, INT/Rxd/P3.0(或INT/Rxd/P1.

30、6)STC10F04单片机采用了40Pin封装的双列直接DIP结构,如图3.2是它们引脚配置图3.2 STC10F04引脚配置40个引脚中正电源和地线两根,外置石英震荡器的时钟线两根,共有36个I/O。VCC:电源电压GND:地P0口:P0口是一组8位漏极开路型双向I0口,也即地址数据总线复用口。作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“l”可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。P1口:Pl 是一个带内部上拉电阻的8位双向IO口,Pl的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门

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

32、据。在访问8 位地址的外部数据存储器(如执行MOVXRi 指令)时,P2 口线上的内容(也即特殊功能寄存器(SFR)区中P2寄存器的内容),在整个访问期间不改变。Flash编程或校验时,P2亦接收高位地址和其它控制信号。P3 口:P3 口是一组带有内部上拉电阻的8 位双向I0 口。P3 口输出缓冲级可驱动(吸收或输出电流)4 个TTL逻辑门电路。对P3口写入“l”时,它们被内部上拉电阻拉高并可作为输入端口。作输入端时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。P3口除了作为一般的I0口线外,更重要的用途是它的第二功能,如下表3.1所示:表3.1具有第二功能的P1口引脚端口引脚第二功能:

33、P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2/INT0(外中断0)P3.3/ INT1(外中断1)P3.4T0(定时计数器0外部输入)P3.5T1(定时计数器1外部输入)P3.6/ WR(外部数据存储器写选通)P3.7/ RD外部数据存储器读选通)P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。WDT 溢出将使该引脚输出高电平,设置SFR AUXR的DISRT0 位(地址8EH)可打开或关闭该功能。DISRT0位缺省为RESET输出高电平打开状态。ALE:当访问外部程序存

34、储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ALE 仍以时钟振荡频率的16 输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对F1ash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH 单元的D0 位置位,可禁止ALE 操作。该位置位后,只有一条M0VX和M0VC指令ALE才会被激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无效。程序储存允许()输出是外部程序存储器的读选通信号,当AT89S51

35、 由外部程序存储器取指令(或数据)时,每个机器周期两次有效,即输出两个脉冲。当访问外部数据存储器,没有两次有效的信号。VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000HFFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接VCC端),CPU则执行内部程序存储器中的指令。F1ash存储器编程时,该引脚加上+12V的编程电压Vpp。XTAL1:振荡器反相放大器及内部时钟发生器的输入端。XTAL2:来自反向振荡器的输出。振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片

36、内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。3.1.2 信号显示驱动电路 图3.3 三极管电路图三极管放大作用是通过小电流控制大电流晶体三极管是一种电流控制元件。发射区与基区之间形成的PN结称为发射结,而集电区与基区形成的PN结称为集电结。晶体三极管按材料分常见的有两种:锗管和硅管。而每一种又有NPN和PNP两种结构形式,使用最多的是硅NPN和PNP两种,两者除了电源极性不同外,其工作原理都是相同的,三极管工作在放大区时,三极管发射结处于正

37、偏而集电结处于反偏,集电极电流Ic受基极电流Ib的控制,Ic 的变化量与Ib变化量之比称作三极管的交流电流放大倍数(=Ic/Ib, 表示变化量。)在实际使用中常常利用三极管的电流放大作用,通过电阻转变为电压放大作用。三极管是电流放大器件,有三个极,分别叫做集电极C,基极B,发射极E。分成NPN和PNP两种。我们仅以NPN三极管的共发射极放大电路为例来说明一下三极管放大电路的基本原理。 图3.4 三极管放大电路原理图下面的分析仅对于NPN型硅三极管。如上图3.4所示,我们把从基极B流至发射极E的电流叫做基极电流Ib;把从集电极C流至发射极E的电流叫做集电极电流Ic。这两个电流的方向都是流出发射极

38、的,所以发射极E上就用了一个箭头来表示电流的方向。三极管的放大作用就是:集电极电流受基极电流的控制(假设电源能够提供给集电极足够大的电流的话),并且基极电流很小的变化,会引起集电极电流很大的变化,且变化满足一定的比例关系:集电极电流的变化量是基极电流变化量的倍,即电流变化被放大了倍,所以我们把叫做三极管的放大倍数(一般远大于1,例如几十,几百)。如果我们将一个变化的小信号加到基极跟发射极之间,这就会引起基极电流Ib的变化,Ib的变化被放大后,导致了Ic很大的变化。如果集电极电流Ic是流过一个电阻R的,那么根据电压计算公式U=R*I可以算得,这电阻上电压就会发生很大的变化。我们将这个电阻上的电压

39、取出来,就得到了放大后的电压信号了。 3.1.3 键盘输入电路单片机键盘有独立键盘和矩阵式键盘两种:独立键盘每一个I/O 口上只接一个按键,按键的另一端接电源或接地(一般接地),这种接法程序比较简单且系统更加稳定;而矩阵式键盘式接法程序比较复杂,但是占用的I/O少。根据本设计的需要这里选用了独立式键盘接法。独立式键盘的实现方法是利用单片机I/O口读取口的电平高低来判断是否有键按下。将常开按键的一端接地,另一端接一个I/O 口,程序开始时将此I/O口置于高电平,平时无键按下时I/O口保护高电平。当有键按下时,此I/O 口与地短路迫使I/O 口为低电平。按键释放后,单片机内部的上拉电阻使I/O口仍

40、然保持高电平。我们所要做的就是在程序中查寻此I/O口的电平状态就可以了解我们是否有按键动作了。在用单片机对键盘处理的时候涉及到了一个重要的过程,那就是键盘的去抖动。这里说的抖动是机械的抖动,是当键盘在未按到按下的临界区产生的电平不稳定正常现象,并不是我们在按键时通过注意可以避免的。这种抖动一般10200毫秒之间,这种不稳定电平的抖动时间对于人来说太快了,而对于时钟是微秒的单片机而言则是慢长的。为了提高系统的稳定,我们必须去除或避开它。目前的技术有硬件去抖动和软件去抖动,硬件去抖动就是用部分电路对抖动部分加之处理,但是实现的难度较大又会提高了成本。软件去抖动不是去掉抖动,而是避抖动部分的时间,等

41、键盘稳定了再对其处理。所以这里选择了软件去抖动,实现法是先查寻按键当有低电平出现时立即延时10200毫秒以避开抖动(经典值为20毫秒),延时结束后再读一次I/O 口的值,这一次的值如果为1 表示低电平的时间不到10200 毫秒,视为干扰信号。当读出的值是0时则表示有按键按下,调用相应的处理程序。硬件电路如图3.4所示: 图3.5 键盘控制电路图4 交通灯系统详细设计4.1 软件总体设计思想本程序由主程序,定时中断子程序和外部中断子程序组成。主程序主要负责系统初始化和等待中断,定时中断子程序主要负责数码管显示刷新和红黄绿灯各种状态切换。外部中断子程序负责紧急情况处理和处理完成恢复。STC10F0

42、4计数的起停由STC10F04的P0和P4口控制,STC10F04的P0和P4口输出1时,STC10F04开始计数,交通灯按正常状态切换工作,P0和P4口输出0时,计数器停止工作,交通灯不再按正常状态切换。STC10F04开始计数后每200ms发出一个中断申请信号,在中断子程序中先刷新数码管,然后判断当前状态,进入相应的处理程序进行处理。当有紧急情况时进入外部中断服务子程序,先让STC10F04停止计数,然后点亮所有的红灯,下一次外部中断处理时,恢复原来的交通灯状况。程序流程图如下图4.1、4.2所示:设置字型码和字位码,完成显示初始化外部中断定义状态数组宏定义返回while(1)函数进入wh

43、ile(1)循环I/O初始化定义字位码函数定义共阴极字型编码表调用显示控制函数statusdis()进入主函数main()定义函数变量并初始化定时器0初始化调用dissmg()函数 图4.1 主程序流程图INT1INT0 保护现场保护现场方程式控制显示红灯全亮维持10S恢复现场恢复现场中断返回中断返回 图4.2中断子程序4.2 交通控制算法实现定时中断子程序是本设计的重点,负责完成数码管输出数据刷新和各个状态的处理切换。中断子程序包括数码管输出数据刷新程序和各状态处理程序。中断程序的流程图如图所示。定义1s定时中断入口设置字型码和字位码,完成数码管倒计时显示启动定时器中断 关闭定时器0初始化定

44、时器0 计数变量自加1 图4.3 定时中断流程图定时中断服务程序在系统中的函数如下:void int_t0( ) interrupt 1 using 1 TR0 = 0; time+; tc+; if(tc=3) tc=0; if(time=100) waittime-; else if(time=200) waittime-; sec-; time=0;shu0=sec%10; shu1 =sec/10; TH0 = 0xee; TL0 = 0x00; if(tc=0) smdis=mdshu0; weishuang0 = 0; weishuang1 = 1; weishuang2 = 1;

45、 else if(tc=1) smdis=mdshu1; weishuang0 = 1; weishuang1 = 0; weishuang2 = 1; else if(tc=2) smdis=mdshu2; weishuang0 = 1; weishuang1 = 1; weishuang2 = 0; /if(tc=3) tc=0; TR0 = 1; 我们由在主程序中设定的初值可知0定时毫秒这样每当0到5毫秒时CPU就响应它的溢出中断请求,进入他的中断服务子程序。在中断服务子程序中,CPU先使软件计数器加,然后判断它是否为200。为零表示秒已到可以返回到输出时间显示程序。并使计数器变量清0.

46、4.3 系统初始化模块主程序负责系统的初始化,然后数码管数据输出显示,同时检测PC键盘按键,有按键按下就退出程序。系统初始化包括STC10F04的初始化,定时器、外部中断向量初始化以及设置交通灯工作的初始状态。由于定时器/计数器的各种功能是由软件来确定的,所以在使用它之前,应对其进行编程初始化。初始化的主要内容是对TCON和TMOD编程,计算和装载T0和T1的计数初值。由设计要求可知,定时器T0的工作方式为1。系统程序中主函数初始化如下: P4SW=0xff; TMOD=0x01; TH0 = 0xee; TL0 = 0x00; EA = 1; ET0 = 1; PT0=1; PX0=0; P

47、X1=0; EX0=1; IT0=0; EX1=1; IT1=1; TR0 = 1; 单片机定时/计数器初值计算公式:T初值=2N 定时时间机器周期时间 ,机器周期=12/fosc。根据TMOD=0X01、TH0=0xee、TL0=0x00可得出定时器工作在方式1,所以N=16。T初值=0xee00=60928 。又因为fosc=11.0592 ,所以根据上面的公式得:60928=216定时时间/12/11.0592 最后得出定时时间=5ms。4.4信息显示模块4.4.1 信号灯模块信息显示模块包括发光二极管模块和LED倒计时显示子模块。程序中开始是先定义发光二极管的I/O口,接着设定各个状态

48、量发光二极管的状态数组。第三,运行main主函数,调用主函数里的while循环,while循环语句再通过statusdis函数调用状态数组变量来显示各个状态下各个发光二极管的状态。其流程图如图4.4所示:定义发光二极管的I/O口While(1)大循环调用显示控制函数statusdis() 调用状态数组赋值完成发光二极管显示设定各个状态量数组进入main函数里的while(1)大循环 图4.4 发光二极管模块流程图发光二极管I/O口的接法如下表4.1所示 表4.1 发光二极管I/O口的接法P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7北黄西黄南黄东黄北左黄南左黄南左红南左绿P2

49、.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7东绿东红南绿南红西绿西红北绿北红P3.0P31P3.2P3.3P3.4P3.5P3.6P3.7RxdTxd紧急按钮方式控制按钮未用未用北左红北左绿 程序中对I/O口的定义如下: sfr jtd = 0xa0; / 交通灯的控制口,P2口sfr jtdh= 0x90; /交通灯的控制口 ,P1口 sbit NLR = P36; /北向左转的红灯 sbit NLG = P37; /北向左转的绿灯初始化状态数组: unsigned char S0=0x59, 0x7f ,0x80,35 ; unsigned char S1=0xdd, 0x

50、ca ,0xc0,3 ; unsigned char S2=0x95, 0xbf ,0x40,35 ; unsigned char S3=0xf7, 0xa4 ,0xc0,3 ; unsigned char S4=0x66,0xbf ,0x80,20 ; /unsigned char S5=0x7f,0xd1 ,0x80,3 ; unsigned char S5=0x77,0xb5 ,0x80,3 ; unsigned char S6=0x55, 0xbf ,0x80,10 ; 主函数main()运行while循环,while循环调用statusdis函数来实现各个状态数组。其程序如下:whi

51、le(1) /S0 /东西红灯,南绿北红 0x59 / 南左转绿灯,北左转红灯 0x60 /等待35秒 35 statusdis(S0) ; /S1 /东西红;南北黄灯 0x11 /东西红灯3秒,南北左转均为黄灯 0x00 /等待3秒 3 statusdis(S1) ; /S2 / 东西红灯,南红北绿 0x95 /南转左红灯,北转左绿灯 0x90 /等待35秒 35 statusdis(S2) ; /S3 / 东西红灯,南红北黄 0x04 /南转左红灯,北转左绿灯 0x10 /等待3秒 3 statusdis(S3) ; /S4 / 东西绿灯,南北红 0x66 /南转左红灯,北转左红灯 0x5

52、0 /等待20秒 20 statusdis(S4) ; /S5 / 东西黄灯,南红北绿 0x44 /南转左红灯,北转左红灯 0x50 /等待3秒 3 statusdis(S5) ; Statusdis()显示控制函数程序如下: void statusdis(unsigned char *status) sec=1+status3; waittime=2*sec; /time=100; while( waittime)/等待35秒 if(flag) flag=0;time=0; sec=1+status3; waittime=2*sec; jtd=status0; /东西南北灯状态 jtdh=s

53、tatus1; /东西南北灯状态 /jtdl=jtdl&0x0f; /jtdl=jtdl|status1; /南左转,北左转灯状态 p33=status2; if(p33&0x40) NLR = 1; /北向左转红灯 else NLR = 0; if(p33&0x80) NLG = 1; /北向左转绿灯 else NLG = 0; dissmg(); /如果用此句,可以增强显示 4.4.2 LED倒计时显示子程序4.4.2-1 LED数码管原理本系统采用8位的动态数码显示。控制数码显示的数据由两部分组成,一部分为笔段亮灭控制的信号输入由“A、B、C、D、E、F、G、DP”端口输入,而控制位显示的控制信号由“CS1、CS2、CS3”端口输入,同时该动态数码显示采用共阴型数码管,单片机芯片的P0口和P4口引脚构成了8位LED数码管驱动电路,P0口控制数码管的笔段显示,P4口控制数码管的位显示;共阴型数码管的笔段引脚是二极管的正极,所有二极管的负极连在一起,构成了公共端,即片选端,对于这种数码管的驱动,要求在片选端提供电流,为此,使用了PNP型三极管作为片选端的

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!