版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目 录目 录1摘 要4关 键 词4abstract4keywords51、引言62、设计方案论证62.1主控芯片选择方案62.2电源模块选择方案62.3显示模块选择方案62.4数码管显示模块选择方案72.5键盘接口模块选择方案73、简介73.1调试软件keil73.2硬件仿真proteus84、课题描述与分析84.1系统需求描述与分析84.2系统工作流程95、课题设计105.1总体设计105.2硬件设计115.2.1单片机最小系统115.2.2 电源模块电路模块125.2.3时钟和复位电路模块125.2.4数码管显示电路模块135.2.5 led灯显示模块145.2.6键盘接口电路模块155.
2、2.7串行通信接口电路155.3软件设计165.3.1整体流程图165.3.2主程序模块175.3.3数码管显示模块175.3.4键盘扫描程序模块185.3.5闪烁显示程序模块195.3.6按键处理程序模块205.3.7定时器0和定时器1中断模块206、系统测试216.1硬件调试216.1.1 电源模块调试216.1.2 单片机最小系统模块调试226.1.3 max232下载模块检测236.14 红绿灯显示检测236.1.5 数码管显示检测236.2整体电路测246.3软件调试247、结论24参考文献25附 录26谢 辞45摘 要 本文介绍了交通灯系统的设计。本系统硬件部分基于stc
3、12c5410ad单片机,由键盘接口模块,稳压电源模块,串行通信接口模块和数码管、交通灯显示接口模块组成。本系统的软件部分基于keilc51软件系统。本系统利用单片机的定时器产生秒信号,控制十字路口的红绿黄灯交替点亮和熄灭,并且用4只数码管显示十字路口两个方向的剩余时间。本系统除了可以按照设定程序自行运行外,还可以通过按键设置主干道和次干道的通行时间和暂缓通行时间。本系统可实现基本交通灯功能,系统实用性强、操作简单。关 键 词单片机最小系统 stc12c5410ad 红绿灯控制 仿真abstractthis article describes a design of traffic signa
4、l systems. the hardware of system consists of stc12c5410ad single-chip, keyboard, steady power, communication interface,led digitron and traffic light display. the software of system is mad up of keilc51 .the use of stc12c5410ad timer generates seconds signals to control the turn at the crossroads o
5、f the red and green lights and yellow lights, and 4 led digital display at the crossroads of the remainder time of the two directions. it also can manually set keys to adjust main roads and sub-passage time and the suspension of access time, so it achieves the basic function of traffic lights, the s
6、ystem is practical, simple .keywordsthe least system of sing lechip,stc12c5410ad, traffic light control,simulation 1、引言本设计的目的是应用单片机最小系统实现简易交通灯的设计,可利用单片机的定时器产生秒信号,控制十字路口的红绿黄灯交替点亮和熄灭,并且用4只数码管显示十字路口两个方向的剩余时间。并能用按键设置两个方向的通行时间(绿灯点亮的时间)和暂缓通行时间(黄灯点亮的时间),系统的工作符合一般交通灯控制要求。本设计的背景是当前全国大中城市普遍存在着道路拥挤、车辆堵塞、交通秩序混乱
7、的现象,如何解决城市交通问题已成为全社会关注的焦点和大众的迫切呼声。城市交通路口实现交通信号控制是城市交通管理现代化的基本标志之一,是提高交通管理效能的重要技术手段。红绿灯控制器是控制交叉路口交通信号的设备,它是交通信号控制的重要组成部分。各种交通控制方案,最终都要由红绿灯控制器来实现。本设计的适用范围是适用于城市交通灯的实现。本设计的适用范围是没有考虑人行道的红绿灯设计,也没有考虑机动车辆拐向的红绿灯设计,只考虑了机动车辆行驶的红绿灯设计,而且通行时间和暂缓通行时间的范围都是两位数。本课题的研究意义是应用单片机来控制交通灯, 使交通灯在控制中灵活而有效。本设计将程序结构模块化处理,
8、使程序的可读性、可维护性和可移植性都得到进一步的提高。本系统结构简单,操作方便;可实现自动控制;对优化城市交通具有一定的意义。2、设计方案论证2.1主控芯片选择方案方案一:使用以89c51单片机芯片51系列单片机芯片的优点是结构完整、特殊功能寄存器的规范化以及指令系统的控制功能出众,含有32个i/o口,适合需要多端口控制的系统,设计时无需另接程序存储器,为设计和调试带来极大的方便;缺点是其功耗很大。 方案二:使用以stc12c5410ad单片机芯片stc12c5410ad是增强型51单片机,具有宽电压、不怕电源抖动、高抗静电等优点,有掉电模式、空闲模式、正常工作模式等低功耗模式,可在系统编程,
9、无需编程器。串口对应i/o口可以通过改变寄存器换成别的i/o口作为串口来通信,i/o口可以有四种模式可设置,stc单片机可以为1时钟每机器周期,指令执行速度大提高。综合上面两种方案,考虑到课程设计要求和stc12c5410ad的优点,选择方案二。2.2电源模块选择方案方案一:采用独立的稳压电源。此方案的优点是稳定可靠,且有各种成熟电路可供选用;缺点是各模块都采用独立电源,会使系统复杂,且可能影响电路电平。方案二:采用变压器控制模块提供电源。将220v的电压转换为12v的低电压,经过电容滤波后再经过lm7805稳压得到5v的直流电供系统工作,该方案的优点是系统简明扼要,节约成本;缺点是输出功率不
10、高。综上所述,选择方案二。2.3显示模块选择方案方案一:使用lcd液晶由液晶驱动芯片ht1621和lcd玻璃片twm259组成的自制液晶,显示清晰,能美观的显示数字,小数点,负号等,满足题目要求,但结构复杂,操作难,需要复杂的语言编程能力,且价格昂贵。方案二:采用led数码管用4个led数码管,数码管原理简单,价格低廉、性能可靠、操作简单,但功耗大。南北向和东西向各采用2个数码管计时,对该方向的指示灯的点亮时间进行倒计时,最长计时范围为99秒。设计时可利用单片机的p1口和p1.0p1.3作为字段和片选信号输出,经驱动芯片后驱动数码管显示倒计时时间,数码管采用动态扫描方式显示。综合上面两种方案,
11、选择方案二。2.4数码管显示模块选择方案方案一:数码管显示直接使用单片机i/o口输出。该方案的优点是硬件方便实现,电路简单;缺点是显示数码管需要较多的引脚数码管段选需要8个引脚,位选需要4个引脚,所以显示数码管共需要12个引脚。方案二:使用2个74hc573锁存器显示数码管该方案的优点是引脚利用较少,由于74hc573锁存器的性质,可以将数码管的段选和位选共用一个p1口,分别锁存输出,这样引脚利用了8个;缺点是需要增加两个锁存器,增加了硬件电路的复杂度。综上所述,增加锁存器复杂程度,软件编程没有变得复杂,但是节省了引脚,对于引脚较少的单片机芯片来说这是一大优势,因此选择方案二。2.5键盘接口模
12、块选择方案方案一:使用4×4的键盘矩阵键盘,16个按键包括09共10个数字按键,1个加1按键,1个减1按键,1个设置完成按键,南北和东西方向2个按键。本方案的优点是按键比较多,每个按键可以可以实现不同的功能,方便用户调整;缺点是按键较多,单片机需要扩展接口,硬件和软件处理起来都比较麻烦。方案二:直接在单片机的i/o口线上接上按键开关。使用3个独立按键,分别设置键、增加键和减少键,设置键选择方向和指示灯,增加键增加指示灯亮的时间,减少键减少指示灯亮的时间。 本方案的优点是按键少,单片机不需要扩展接口,系统复杂性比较低,硬件和软件处理起来都比较容易;缺点是用户进行设置时,由于按键少功能集
13、合在一起,使用不太方便。综合考虑上述两个方案的优缺点,考虑到stc12c5410ad的引脚比较少,键盘使用率较少,扩展接口增加了硬件和软件的复杂程度,选择方案二。3、简介3.1调试软件keil简介keil c51是美国keil software公司出品的51系列兼容单片机c语言软件开发系统,与汇编相比,c语言在功能上、结构性、可读性、可维护性上有明显的优势。keil c51软件提供丰富的库函数和功能强大的集成开发调试工具,全windows界面。keil提供了包括c编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,可以完成编辑、编译、连接、调试、仿真等整个开发流程。然
14、后分别由c51及a51编译器编译生成目标文件(.obj)。目标文件可由lib51创建生成库文件,也可以与库文件一起经l51连接定位生成绝对目标文件(.abs)。abs文件由oh51转换成标准的hex文件,以供调试器dscope51或tscope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如eprom中。通过一个集成开发环境(uvision)将这些部份组合在一起。3.2硬件仿真proteus简介proteus isis是英国labcenter公司开发的电路分析与实物仿真软件。它运行于windows操作系统上,可以仿真、分析(spice)各种模拟器件和集
15、成电路,该软件的特点是:实现了单片机仿真和spice电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、rs232动态仿真、i2c调试器、spi调试器、键盘和lcd系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、avr系列、pic12系列、pic16系列、pic18系列、z80系列、hc11系列以及各种外围芯片。提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能
16、;同时支持第三方的软件编译和调试环境,如keil c51 uvision2等软件。具有强大的原理图绘制功能。proteus能很好的对硬件电路进行仿真测试,采用proteus 仿真软件进行虚拟单片机实验,具有比较明显的优势,涉及到的实验实习内容全面、硬件投入少、实验过程中损耗小、与工程实践最为接近等。总之,该软件是一款集单片机和spice分析于一身的仿真软件,功能极其强大。4、课题描述与分析4.1系统需求描述与分析 十字交叉路口的交通灯控制系统的结构如图一所示: 南北东西图一 十字交叉路口的交通灯控制系统往南和往北的信号一致,即红灯(绿灯或黄灯)同时亮或同时熄灭。用两个数码管来显示被点亮的指示灯
17、还将点亮多久。往东和往西方向的信号一致,其工作方式与南北方向一样,也采用两个数码管来倒计时。当南北方向为绿灯和黄灯时,东西向的红灯点亮禁止通行;而东西方向为绿灯和黄灯时,南北向的红灯点亮禁止通行。假设南北方向为主干道,通行时间为60秒,东西方向是次干道,通行时间为30秒,黄灯点亮的时间均为4秒。假设南北方向为主干道,通行时间(即绿灯亮的时间)为60秒,东西方向是次干道,通行时间为30秒,暂缓通行时间(即黄灯点亮的时间)均为4秒,则其工作方式如表1所示循环点亮信号灯。表1 交通信号灯工作模式南北方向绿灯亮60秒黄灯亮04秒红灯亮34秒东西方向红灯亮64秒绿灯亮40秒黄灯亮04秒主干道和次干道的通
18、行时间及黄灯点亮的时间可以手动设置;在没有手动设置通行时间时,系统自动按表1的模式进行工作。4.2系统工作流程 接通电源时或系统复位后,系统按程序给定的时间工作,即南北向通行60秒,东西向通行30秒,黄灯亮4秒。首先南北向通行,然后东西向通行,如此循环。通行时间的设置:当需要更改主、次干道的通行时间时,可以用“设置键、增加键、减少键”进行设置。第一次按“设置键”时,南北向的绿灯亮,南北向的数码管显示当前南北向的通行时间,并且按每秒3次的频率闪烁(每秒钟亮3次暗3次),其余的信号指示灯和东西向的数码管熄灭,此时可以用“增加键”和“减少键”来改变南北向的通行时间。按一次“增加键”或“减少键”,数码
19、管的显示时间增加1秒或减小1秒,长按“增加键”或“减少键”(按下的时间超过1秒钟以上),则数码管显示的时间按每秒钟增加或减少10的速度快速变化。 第二次按“设置键”时,南北向的黄灯亮,南北向的数码管显示当前南北向黄灯的点亮时间,并且按每秒3次的频率闪烁(每秒钟亮3次暗3次),其余的信号指示灯和东西向的数码管熄灭,此时可以用“增加键”和“减少键”来改变南北向黄灯的点亮时间。 第三次按“设置键”时,东西向的绿灯亮,东西向的数码管显示当前东西向的通行时间,并且按每秒3次的频率闪烁,此时可以用“增加键”和“减少键”来改变东西向的通行时间。第四次按“设置键”时,东西向的黄灯亮,东西向的数码管显示当前东西
20、向黄灯的点亮时间,并且按每秒3次的频率闪烁,此时可以用“增加键”和“减少键”来改变东西向黄灯的点亮时间。第五次按“设置键”时,系统退出设置状态,回到交通信号灯状态,并且南北向先通行,东西向后通行。表2 设置键的功能按“设置键”的次数第一次第二次第三次第四次第五次调整内容南北方向绿灯点亮时间南北方向黄灯点亮时间东西方向绿灯点亮时间东西方向黄灯点亮时间回复交通灯工作状态调整范围099秒09秒099秒09秒5、课题设计5.1总体设计本系统的整体框图由stc12c5410ad构成主控芯片,主要是实现各个功能模块之间功能交互。本系统包括电源模块、时钟、复位电路模块,程序下载模块,键盘接口模块,数码管和l
21、ed发光二极管显示模块。程序下载模块由串口和max232芯片组成;键盘接口模块用于设置各个方向指示灯的点亮时间;数码管显示模块用来显示被点亮的指示灯还将点亮多久;led发光二极管模块用于指示该方向的3种状态:通行(绿灯亮)、暂缓通行(黄灯亮)和禁止通行(红灯亮);220v交流电转5v直流电线性稳压电源构成电源模块。系统结构框图如图二所示: 图二 系统结构框图红绿灯控制器的总体的设计如图三所示(注本次硬件仿真用的是80c51单片机,proteus软件库里没有stc12c5410ad):图三 红绿灯控制器总体设计图从图三可以看出整个设计图。首先由220v交流电转5v直流电线性稳压电源模块得到稳定的
22、5v直流电源,提供了模块间工作供电所需,然后由stc12c5410ad单片机最小系统模块来控制红绿黄发光二极管组合模块与led数码管动态显示模块的联合动态显示,最后可以通过东西南北要道通行时间按键设置模块来随意设置交通干道的通行暂停时间。5.2硬件设计5.2.1单片机最小系统单片机最小系统以stc12c5410ad为核心,外加时钟和复位电路,电路结构简单,抗干扰能力强。stc12c5410ad芯片的速度比普通8051 快12 倍,工作周期为1 个时钟/ 机器周期,risc 型8051 内核, 512 字节片内ram 数据存储器,外部晶体或内部rc 振荡器可选,在isp 下载编程用户程序时设置时
23、钟。10 位adc,8 通道,stc12c2052ad 系列为8 位adc,2 个硬件16 位定时器,兼容普通8051 的定时器。4 路pca 还可再实现4 个定时器。先进的指令集结构,兼容普通8051 指令集4 组,8 个8 位通用工作寄存器(共32 个通用寄存器),主要有硬件乘法/ 除法指令。时钟电路在单片机的外部通过xtal1,xtal2这两个引脚跨接晶体振荡器和微调电容,构成稳定的自激振荡器.本系统采用的为11.0592mhz的晶振,微调电容为20pf。单片机最小系统如图四所示:图四 单片机最小系统图5.2.2 电源模块电路模块220v的高电压经过变压器后得到12v交流电,经二极管整流
24、成脉动直流电,经过电容滤波又经过lm7805稳压得到5v的直流电供系统工作,电源的指示可以由一个发光二极管来实现,2个100uf的电容是起一个再次滤波的作用。稳压电源模块电路图如图五所示:图五 稳压电源电路模块图5.2.3时钟和复位电路模块时钟采用外部晶振,频率为11.0592mhz,时钟和复位电路电图如图六所示:图六 时钟和复位电路模块图5.2.4数码管显示电路模块图七所示的是共阳数码管及其电路,其中每个数码管的8个段: h、g、f、e、d、c、b、a(h是小数点)都连在一起。图八是4 位数码扫描显示电路,4个数码管分别由4个选通信号k1k4来选择。被选通的数码管显示数据。例如,在某一时刻,
25、k3为低电平,其余选通信号为高电平,这时仅k3对应的数码管显示来自段信号端的数据,就必须使得4个选通信号k1k4分别被单独选通,与此同时,在段信号输入口加上希望在该对应数码管上显示的数据,于是随着选通信号的扫变,就能实现扫描显示的目的。共阳数码管及其电路示意图如图七所示:图七 共阳数码管及其电路4位数码扫描电路的示意图如图八所示: 图图八 4位数码扫描电路 数码管显示电路图如图九所示:图九 数码管动态显示模块图5.2.5 led灯显示模块led灯采用的是共阳接法,即所有的led管阳级通过一个限流电阻上拉到5v电源,所有的阴级接到单片机的相应引脚。只要该i/o口置低,该灯就能点亮。led灯显示模
26、块如图十所示:图十 led灯显示模块图5.2.6键盘接口电路模块交通灯的时间设置主要是通过按键的设置来实现的。set设置键接单片机的外部中断0口(引脚p3.2),up键对应端口定时/计数器(引脚p3.4) ,down对应端口定时/计数器1(引脚p3.5)。在程序初始化的时候两个定时器均工作于定时模式,定时器1主要完成长按键加十和减十的功能,定时器0则只要完成数码管动态显示时间间隔的定时功能。平时工作时,只有定时器0工作,一但外部中断0触发,则激活定时器1,开始设置初始化,当进中断0次数标志位flag满5次时,退出设置模式,进入倒计时模式。键盘接口电路模块如图十一所示:图十一 键盘接口电路模块图
27、5.2.7串行通信接口电路 将程序下载到单片机内部需要完成串并数据的转换和电平转换,因此需要串行通信接口电路。由于电脑内部的电平为ttl电平,串口的电平为cmos电平,因此必须转接一个ttl-cmos电平转换芯片max232。串行通信接口电路如图十二所示:图十二 串行通信接口电路图5.3软件设计5.3.1整体流程图各个模块的都是用c语言来编写的。本系统软件设计主要分为4个模块,即主程序模块、中断子程序模块、键盘扫描模块、显示模块。整个系统工作流程为当系统上电复位后进入主程序模块,在主程序模块中调用显示模块来完成信息的显示,在没有用户触发中断的情况下程序一直在主程序里循环,以维持系统的正常工作。
28、整个软件流程图如图十三所示: 图十三 软件流程图5.3.2主程序模块主要完成ram清零,定时器t0,t1的设置,绿、黄灯的初值设定以及各子程序的调用。主程序的流程图如图十四所示:图十四 主程序的流程图5.3.3数码管显示模块数码管显示模块包括南北方向数码管显示、东西方向数码管显示和设置状态下的数码管闪烁显示。数码管显示模块的程序流程图如十五所示:图十五 数码管显示模块程序流程图5.3.4键盘扫描程序模块在设置状态下,启动键盘扫描模块,判断是否有键被按下,是增加键还是减少键被按下,键被长按还是短按,还有键盘消抖功能。键盘扫描程序模块流程图如图十六所示:图十六 键盘扫描程序模块流程图5.3.5闪烁
29、显示程序模块在设置东西南北通行时间时,数码管显示当前的通行时间,并且按每秒3次的频率闪烁(每秒钟亮3次暗3次),因此将1秒分为6份,偶数份数码管亮,奇数份数码管熄灭。闪烁显示程序模块如图十七所示:图十七 闪烁显示程序模块图5.3.6按键处理程序模块当设置按键被按第一下时,进入设置模块,然后根据键盘扫描得到的键值转向响应的处理程序,相应指示灯的点亮时间是增加还是减少,是增加(或减少)1还是增加(或减少)10,其中设置按键使用外部中断0。检测p3.2端口,判断是否有键按下,如果有键按下,则进行延时去抖动并将设置键标志位flag加一,根据flag的值,转相应键处理子程序。按键处理程序模块流程图如图十
30、八所示:图十八 按键处理程序模块流程图5.3.7定时器0和定时器1中断模块在程序初始化的时候两个定时器均工作于定时模式,定时器1主要完成长按键加十和减十的功能,定时器0则只要完成数码管动态显示时间间隔的定时功能。平时工作时,只有定时器0工作,一但外部中断0触发,则激活定时器1,开始设置初始化,当进中断0次数标志位flag满5次时,退出设置模式,进入倒计时模式。定时器0主要通过计数产生1秒的定时时间,使数码管按照每秒减1的倒计时。定时器0中断模块的程序流程图如十九所示:图十九 定时器0中断模块程序流程图6、系统测试系统调试分为硬件调试和软件调试,分别用于检测硬件和软件是否能正常工作。由于硬件采用
31、模块化设计,所以调试的时候只需要调试各自的模块即可,最后连在一起调试整个系统。软件由于采用子函数模块调用实现,所以调试的时候采用子函数单独调试,最后用keil软件强大的仿真调试功能来结合硬件联机调试。本系统软硬件的设计完成后先经过仿真调试,才进行具体的硬件焊接部分,这样能避免误操作或设计不合理而带来开发成本的不必要的提高,而且还能提高系统开发的效率。6.1硬件调试6.1.1电源模块调试用万用表检测电源模块是否完整,若完整,把相应的元件焊上,并用万用表检测开关两端是否输出5v稳压直流电源。如果输出的时12v的交流电,则检测稳压芯片是否正常工作;如果得到220v的交流电,则检测变压器是否正常工作;
32、如果都正常工作,则说明电源模块正常工作。硬件电源模块如图二十所示:图二十 硬件电源模块6.1.2单片机最小系统模块调试首先确定此模块的线路是否联通;如果检测到单片机的晶振不起振,检测是否虚焊或是晶振已坏;检测单片机的地线是否连通。检查是否可以正常工作。例如将单片机的某个引脚接一个的指示灯,然后使此引脚输出高低电平,检查指示灯是否亮灭,检测电源到单片机的线路是否短路或是虚焊。单片机最小系统扩展图(红绿灯控制器系统硬件图)如图二十一所示:图二十一 单片机最小系统扩展图(红绿灯控制器系统硬件图)6.1.3 max232下载模块检测用万用表检测电路,看电源线、地线是否完整,然后按照原理图焊接。打开st
33、c-isp软件,设置好后,先下载一个让单片机的所有引脚均拉低的程序,看是否能下载。如果软件提示下载失败,检测串口是否连接好,rxd、txd是否和单片机连接好;如果提示下载成功,则检测单片机的引脚是否拉低,否则的话检测程序是否正确。6.1.4 红绿灯显示检测把红黄绿灯按照原理图焊接后,若灯不亮,检测上拉电阻是否接到电源上;如果已连接,则检测各自引脚是否虚焊。红绿灯检测程序在附录里面(第42页)。6.1.5 数码管显示检测按照原理图焊接好元件,然后烧写一个让数码管从0显示到9的程序。如果数码管不显示,则检测数码管的选通端是否虚焊;如果数码管显示不全,则检测数码管的数据口是否链接正确。将串口的和电路
34、板上的接口连接,将写好的测试程序刷写到芯片内,开电源即可测试。数码管显示模块程序在附录里面(第43页)。6.2整体电路测系统上电,烧进程序即可开始测试,观测一个周期的显示状态是否正常,同时观察倒计的计数是否正常。对程序进行调试、仿真后,再进行焊接,确保焊接点无连接、短路等现象后,烧入程序,接着对设计进行调试,对照实验要求进行几个功能的调试。整体电路检测如图二十二所示(电路图正在调试南北绿灯的通行时间):图二十二 整体电路检测图6.3软件调试程序的编写采用的是c语言,用c语言设计主要优点是编程比较简单,c语言程序生成代码质量高,程序执行效率高,并且适用范围大,可移植性好 。具体程序见附录。7、结
35、论本次单片机课程设计的红绿灯控制器结构简单,操作方便,对优化城市交通具有一定的意义。本设计将各任务进行细分包装,使各任务保持相对独立;能有效改善程序结构,便于模块化处理,使程序的可读性、可维护性和可移植性都得到进一步的提高。由于使用的是单片机作为核心的控制元件,使得电路的可靠性比较高,功能也比较强大而且可以随时的更新系统,进行不同状态的组合。参考文献1刘文涛.单片机应用开发实例.北京:清华大学出版社,2005年9月.191132周宝善.经典电子设计与实践diy.北京:人民邮电出版社,2008年8月.78,6192 3 宁武 唐晓宇 闫晓金 编著 电子设计竞赛技能指导 电子工业出版社4 胡伟、季
36、晓衡.单片机c程序设计及应用,人民邮电出版社,2003年7月.671355 童诗白,华成英.模拟电子技术基础.北京:高等教育出版社,2001年1月.5015506 张靖武, 周灵彬单片机原理应用与proteus仿真电子工业出版社2008年7 张超琦,钟明哲单片机原理及实例.实践篇上海交通大学出版社2007年8潘超群单片机控制技术在通信中的应用:mcs-51电子工业出版社2008年9陈涛单片机原理及c51程序设计机械工业出版社2008年附 录#include<reg52.h>#define uchar unsigned char#define uint unsigned int/*参
37、数初始化*uchar count=0,count2=0; /定时器0,定时器1的计数初值uchar green_ns=60,green_ew=30,red_ns=34,red_ew=64,yellow_ns=4,yellow_ew=4;/南北绿灯亮60 东西绿灯30 南北红灯34 东西红灯64 南北黄灯4 东西黄灯4uchar snorth=60,ewest=64; /上电后南北绿灯亮60秒,东西红灯亮64秒uchar ding_ns=0,ding_ew=0; /南北状态转换标志位,东西状态转换标志位uchar flag=0,flag2=0; /设置键按下次数的标志位,长按键的标志位/*引脚定
38、义*sbit wela=p20; /锁存器位选sbit dula=p21; /锁存器位选sbit ns_r=p22; /南北发光二极管sbit ns_y=p23;sbit ns_g=p24; sbit ew_r=p25; /东西发光二极管sbit ew_y=p26;sbit ew_g=p27; sbit set=p32; /按键 设置键 加1键 减1键sbit up=p34;sbit down=p35;/*函数声明部分*void delay(uint z);void inital();void display(uchar s);void display_ew(uchar w) ;void di
39、splay_ns(uchar r);void turnkey();void show();/*共阳数码管段码*unsigned char code seg710= 0xc0,/*0*/ 0xf9,/*1*/ 0xa4,/*2*/ 0xb0,/*3*/ 0x99,/*4*/ 0x92,/*5*/ 0x82,/*6*/ 0xf8,/*7*/ 0x80,/*8*/ 0x90,/*9*/ ; /*软件延时函数 延时1毫秒*void delay(uint z) uint x,y;for(x=z;x>0;x-)for(y=110;y>0;y-);/*初始化函数*void inital() we
40、la=0; /锁存器初始化dula=0;tmod = 0x11; /计数器0,1工作在方式1,数值大小16位,定时时间=12*(65536-x)/f x为初值,f为时钟频率th0 = 0xd8; /定时器0高8位tl0 = 0xf0; /定时器0低8位ea = 1; /开总中断et0 = 1; /定时器0中断允许 tr0=1; /定时器0开始计时th1=0xd8; /定时器1高8位tl1=0xf0; /定时器1低8位et1 = 1; /定时器1中断允许ex0=1; /外部中断0允许it0=0; /外部中断0电平触发ns_r=1; /南北发光二极管初始化ns_g=0;ns_y=1;ew_r=0;
41、 /东西发光二极管初始化ew_g=1;ew_y=1;/*数码管显示函数*void display(uchar s) p1=seg7s;/*数码管显示东西方向数字*void display_ew(uchar w) uchar x,y,i=0;x=w%10; /个位y=w/10; /十位dula=1;display(x);dula=0; p1=0x00;wela=1;p1=0x04;wela=0;delay(5); dula=1;display(y); dula=0; p1=0x00;wela=1;p1=0x08;wela=0;delay(5);/*数码管显示南北方向数字*void display
42、_ns(uchar r) uchar x,y,i=0;x=r%10; /个位y=r/10; /十位 dula=1;display(x);dula=0; p1=0x00;wela=1;p1=0x01;wela=0;delay(5); dula=1;display(y);dula=0; p1=0x00;wela=1;p1=0x02;wela=0;delay(5);/ *键盘扫描函数*void turnkey() flag2=0; /扫描之前加10减10标志位清零if(!up)delay(10); /按键消抖 延时10msif(!up) tr1=1; /定时器1开始1s定时,用于键盘扫描的定时数值加
43、10while(!up)switch(flag)case 0:break;case 1: display_ns(green_ns); ns_g=0;break;case 2:display_ns(yellow_ns); ns_y=0;break;case 3:display_ew(green_ew); ew_g=0;break;case 4:display_ew(yellow_ew); ew_y=0;break; while(!up); /等待按键结束 delay(10); /按键消抖 延时10ms while(!up); tr1=0; /定时器1结束 if(count2>=100) f
44、lag2=1;count2=0; switch(flag2%3) case 0:break;case 1:switch(flag) case 0:break; case 1:green_ns+=9;if(green_ns>99)green_ns=0;break;case 2:break;case 3:green_ew+=9;if(green_ew>99)green_ew=0;break;case 4:break; break;case 2: switch(flag)case 0:break;case 1:green_ns-=9;if(green_ns<=0)green_ns=99;break;case 2:break;case 3:green_ew-=9;if(green_ew<=0)green_ew=99;break;case 4:break; break; switch(flag) /短按键加一 case 0:break;case 1: /南北绿灯加一green_ns+; if(green_ns=100)green_ns=0;red_ew
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 机床改造技术课程设计
- 2024年个人至商家货物运输合同
- 机器猫课程设计
- 机器人风扇课程设计
- 机器人理论课程设计
- 机器人工程的课程设计
- 本科的基本课程设计
- 本科工科课程设计
- 期货期权教育课程设计
- 2024婚礼现场布置施工合同
- 冀教版小学英语 四年级上册-lesson 13 at school
- 美好的师生情高一作文800字
- 建设项目“三同时”环境保护验收一览表
- 箱涵清淤专项施工方案
- 年金险的销售逻辑课件
- 2023年沈阳桃仙国际机场股份有限公司招聘笔试模拟试题及答案解析
- 【2022】外研版英语八年级上册知识点总结(精华版)
- 意义类答题方法
- 实验三四大麦类小麦、大麦、黑麦、燕麦
- 三年级上册数学课件-《乘火车》 北师大版 (共25张PPT)
- 劳动法律法规培训 课件
评论
0/150
提交评论