AT89C52单片机交通灯设计1
基于单片机AT89C52控制的交通灯

十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。
那么靠什么来实现这井然秩序呢?靠的是交通信号灯的自动指挥系统。
交通信号灯控制方式很多。
本设计主要分为五大模块输入控制电路、时钟控制电路、片内外程序切换控制、显示电路。
以MSC-51系列单片机IntelAT89C52为中心器件来设计交通灯控制器,实现了AT89C52芯片的P1口设置红、绿灯、黄灯燃亮时间的功能;为了系统稳定可靠采用了74LS14施密特触发器芯片的消抖电路,避免了系统因输入信号抖动产生误操作;显示时间直接通过AT89C52的P3口输出,由NPN驱动LED数码管显示红灯燃亮时间。
AbstractThe intersections vehicle wears shuttle, pedestrian Xi Rang, garage driveway, person's sidewalk, orderly. So depend what to carry out this well arranged order? What to depend is a traffic sign light of automatic conductor system. The control method of the traffic sign light is a lot of. This design is mainly divided into five greatest molds a piece the electric circuit, clock of the importation control a control outside procedure inside the electric circuit, slice to cut over a control and shows electric circuit. Take single slice the machine IntelAT89 C52of the serieses MSC-51s as a center spare part to design transportation light controller, carried out the AT89 C52's P's 1 people's constitution of the chips red, the function in bright time of green light, Huang2 Deng Ran2;For the sake of system stability the credibility adopted a 74 LS14 airtight trigger eliminate of machine chip to tremble electric circuit especially, avoided system because of importation the signal tremble movable property to living a mistake operation; The P 3 people who shows that time directly passes the AT89 C52 output, is driven LED figures a tube by the NPN to show red-light Ran bright time.摘要 (I)Abstract (I)目录........................................................................................................................... I I 第一章绪论.. (1)1.1交通灯设计的意义 (1)1.2交通灯设计的思想 (1)1.3交通灯设计满足的基本功能 (2)第二章总体方案 (3)2.1总体方案设计思想 (3)2.2系统方案选择与比较 (3)2.3系统总体方案论证 (4)第三章硬件设计 (6)3.1 总体设计与描述 (6)3.2 交通灯通行模式及行车方向指示 (6)3.3 主干道单独时间设置功能 (8)3.4 倒计时计数功能及其实现 (8)3.5 各功能模块硬件设计及实现 (9)第四章软件设计 (12)4.1 软件总体流程图 (12)4.2 定时器初始化 (12)4.3 动态显示 (13)4.4 设置状态子程序 (13)第五章系统调试 (15)5.1 系统操作说明 (15)5.2 调试 (15)5.3 调试心得 (19)第六章设计总结 (21)致谢 (22)参考资料 (23)附录 (24)Ⅰ原理图 (24)Ⅱ原程序 (25)第一章绪论1.1交通灯设计的意义交通的发达,标志着城市的发达,相对交通的管理则显得越来越重要。
基于STC89C52单片机的交通灯设计

目录1 系统设计 (3)1.1 设计要求 (3)1.2 硬件设计部分 (3)1.2.1 交通灯系统电路 (3)1.2.2 单片机最小系统电路(见附录1) (4)1.2.3 复位电路 (4)1.2.4 晶振电路 (4)1.2.5 74HC573的功能(见附录2) (5)1.2.6 发光二极管 (6)1.2.7 数码管 (6)2 软件设计(见附录3) (7)3 电路原理图的制作 (7)3.1电路原理图的设计 (7)3.2 PCB的制作 (8)结论 (11)参考文献 (12)摘要本次设计系统有交通灯设置电路、单片机、显示电路等构成。
信号灯控制的实现是通过电路与C语言程序的结合来完成,其中信号灯的模拟采用了发光二极管,发光二极管有熄灭、点亮和闪烁三种信号,其中闪烁信号的产生运用了延时程序来实现,而时间倒数方面引进了LED数字显示,克服了人们在等待时的心急的心情,减少了红灯未灭,闯红灯的现象。
电路部分原理图是通过用 Protel 99SE软件绘制设计,C语言程序的设计与调试都在KEIL上完成。
本系统功能设计完善,采用AT89C52单片机为核心,具有实用,方便,灵活的特点。
随着电子技术的广泛应用,车辆日益增多将成为一种发展趋势,所以要有一套安全可靠的交通指示灯。
单片机AT89S52为控制核心,以红、绿、黄三种LED发光管作为直行和左右拐弯以及行人通行的指示,以LED数码管作为倒计时指示,完成了题目要求的所有功能。
在此基础上对系统进行了优化设计,整体性好,人性化强、可靠性高。
关键词:单片机;交通灯;显示1 系统设计1.1 设计要求南北方向红灯与东西方向绿灯同时亮,倒计时30秒,数码管显示;南北方向黄灯与东西方向黄灯亮,倒计时3秒,数码管显示;南北方向绿灯与东西方向红灯亮时,倒计时30秒,数码管显示。
1.2 硬件设计部分根据本设计交通灯的模型和实现的功能,硬件部分可以分为以下两个大的系统:单片机系统、交通灯演示系统。
基于AT89C52单片机的交通灯C语言程序

_nop_(); _nop_(); delay(1); _nop_(); _nop_(); _nop_(); delay(1); } void shu5() { d0=0; d1=0;
d2=0; delay(1); d0=0; d1=1; d2=0; delay(1); d0=1; d1=1; d2=0; delay(1); d0=1; d1=0; d2=1;
d2=0; delay(1); d0=1; d1=0; d2=0; delay(1); d0=0; d1=1; d2=0; delay(1); d0=1; d1=1;
d2=0; delay(1); d0=0; d1=1; d2=1; delay(1); _nop_(); _nop_(); _nop_(); delay(1); _nop_(); _nop_(); _nop_();
基于 AT89C52 单片机的交通灯 C 语言程序
如图,简易交通灯 。 有四个状态 0,1,2,3 数码管为 2 位 7 段共阳数码管,可以通过修改 i,j 的值进而修改倒计时的长 短。 不当地方,敬请批评指正! 图一:十字路口交通灯 图二:状态 0 绿灯:0x42 红灯:0xbd
_nop_(); delay(1); _nop_(); _nop_(); _nop_(); delay(1); _nop_(); _nop_(); _nop_(); delay(1); _nop_(); _nop_();
_nop_(); delay(1); } void shu2() { d0=0; d1=0; d2=0; delay(1); d0=1; d1=0; d2=0; delay(1);
图三:状态 1 绿灯:0x25 红灯:0xda 图四:状态 2 绿灯:0x90 红灯:0x6f 图五:状态 3 绿灯:0x2c 红灯:0xd3
AT89C52单片机智能交通灯的设计

AT89C52单片机智能交通灯的设计引言随着城市汽车保有量的越来越多,城市的交通拥挤问题正逐渐引起人们的注意。
交通灯是交管部分管理城市交通的重要工具。
目前绝大部分交通灯其时间都是设定好的,不管是车流高峰还是低谷,红绿灯的时间都固定不变;还有一些交通灯能根据简单划分的时间段来调整时间,但控制起来都不是很灵活,这使得城市车流的调节不能达到最优。
本文所述设计正是针对这一弊端进行了改进,根据实时车流量对各路口的绿灯时间进行动态调节,大大加强了其灵活性和实时性;软件编程采用了实时操作系统RTX51,在确保实时性要求的同时,简化了复杂的软件设计工作。
1 方案论证图1是一个典型的十字路口示意图。
分别用1、2、3、4表明四个流向的主车道,用a、b、c、p分别表示各主车道的左行车道、直行车道、右行车道以及人行横道。
通过分析很容易得知,除了四个右行车道外,在同一时间,最多只能有两个车道通行,如1a、1b通行时,其它车道都会被阻断。
所以在设计红绿灯时,可以两两组合,共有四组(如la-1b、2a-2b、3a-3b、4a-4b);而各车道的红灯时间和人行横道通停时间都由这四个组合的绿灯窗口时间决定。
本文将以广泛采用的图2所示的通行顺序来讲述智能交通灯的设计。
2 系统软硬件设计本系统硬件上采用上位机和下位机设计,其中下位机四个,均采用AT89C52单片机,分别控制图2所示的四个组合。
AT89C52单片机具有MCS-51内核,片内有8KB Flash、256字节RAM、6个中断源、1个串行口、最高工作频率可达24MHz,完全可以满足本系统的需要。
上位机和下位机之间的串行通信采用RS-485标准接口。
在通信频率为9600bps的情况下,有效通信距离可达2.1km。
基于AT89c52制作的多功能交通灯

基于STC89C52制作的多功能交通灯一、摘要AT89C52单片机具有控制二连体共阴极数码管和发光二极管的输出显示以及检测按键输入的功能。
利用AT89C52单片机模仿制作室外十字路口多功能交通灯,实现室内控制与室外显示的功能。
合理控制交通繁忙,交通特殊情况和恢复交通正常的三种情况。
二、方案设计与验证1.数码管显示部分方案一:利用9013三极管驱动二连体数码管,由于总共用到5个二连体数码管,需要使用40个9013三极管,故舍弃该方案。
方案二:利用4511译码器驱动二连体数码管,可以使用动态扫描法同时驱动5个二连体数码管,只需要使用一个4511译码器,故选择该方案。
2.二连体数码管位码显示方案一:利用软件进行动态扫描使十位数码管同时显示,但程序会过于冗长,故舍弃该方案。
方案二:利用74LS04反向器在硬件上进行动态扫描,同时点亮十个数码管,编写程序简单,故选择该方案。
3.按键模块由于只有五个按键,故使用行列式按键,在程序上使用动态扫描法,测试按键是否按下。
三、总体设计利用proteus设计的整体电路图:1、首先自己画好显示面板、小系统面板和控制面板三部分的电路图。
2、将元器件在实际洞洞板上布局。
四、局部设计1、显示部分用四个共阴极LED显示东西南北方向的时间,用一个LED显示主控制台的选择时间。
并在每一路口有一个红灯、一个黄灯和两个绿灯(其中一绿灯作执行指示灯,另一个作左转指示灯)。
在每一人行道两端均有两个红绿灯,作为人行控制灯。
在主控制台有两灯,分别用于指示正常与繁忙。
2、核心控制部分用89C52单片机作为核心控制,P00——P03与HEF4511相接,使其驱动十个数码管,控制数码管的代码。
P20——P25与74LS04相接,使其控制数码管的位码。
3、主控台部分为实现工作人员智能调控交通指示灯时间,在主控台部分有五个按键实现,有正常指示按键,特殊指示按键,繁忙指示按键以及时间加减按键。
五、测试1.用keil写好程序,利用PROTEUS仿真,电路运行良好2.焊接好硬件电路,用万用表分别检测单片机最小系统,控制面板,显示面板,所有发光二极管和二连体数码管均正常显示。
AT89C52单片机为控制器的多功能交通灯控制系统

AT89C52 单片机为控制器的多功能交通灯控制系统汽车数量越来越多,而现在的红绿灯处的交通灯模式采用的是定时控制,由于车流量是随时变化的,当此时没有车通过,而相对的车要等到此方向的绿灯结束显示红灯才能通过,在时间和空间方面的应变性能较差,这样不仅浪费了时间,还使得相对方向的车辆造成堵车现象。
要想解决城市红绿灯处的大堵车现象,改善原有的红绿灯处交通灯控制系统是很有必要的。
本文以AT89C52 单片机为控制器的交通灯控制系统,该系统通过红外接收器接收信号实现特种车辆(119、120 等)自动放行;通过车辆检测电路采集路况信号,经单片机处理后,分配各车道的绿灯时间,实现车流动态调节,LED 数码管显示通行倒计时;系统除基本交通灯功能外,还具有通行时间手动设置、可倒计时显示、急车强行通过、车流量检测及调整、交通异常状况判别及处理等相关功能。
1、交通控制系统的总体框图设计及原理该交通灯控制系统用单片机直接控制信号灯的状态变化,接入的LED 数码管就可显示倒计时以提醒行使者。
本系统在此基础上加入了违规检测电路和车流量检测电路为单片机采集数据,同时接上蜂鸣器。
本设计以单片机为控制核心,连接成最小系统,由车流量检测模块、违规检测模块和按键设置模块等产生输入,信号灯状态模块、LED 倒计时模块和蜂鸣器状态模块接受输出。
系统的总体框图如图1 所示。
图1 系统的总体框图2、系统硬件总电路构成及工作原理本设计选用AT89C52 单片机及外围器件构成最小控制系统,12 个发光二极管分成4 组红绿黄三色灯构成信号灯指示模块,8 个LED 东西南北各两个构成倒计时显示模块,车流量检测传感器采集流量数据,光敏传感器捕获违规信号,若干按键组成时间设置和模式选择按钮和紧急按钮等,以及用1 个蜂鸣器进行报警。
系统硬件电路构成:单片机为核心,组成一个集车流量采集、处理、自动控制为一身的闭环控制系统。
系统硬件电路由车流量检测电路、单片机、违规检测电路,状态灯,LED 显示,按键,语音提示器组成。
基于AT89S52单片机的交通灯设计

1 交通灯的设计目的及方案介绍1设计课题的目的通过单片机的课程设计,加深和巩固单片机知识,提高综合及灵活运用所学的知识来解决日常生活及工业控制的能力,提高针对知识的需要,选择和查阅其他资料书籍、灵活运用其中知识及自学能力,提高组成系统、编程、制版、调试的全方面能力,通过对课题设计方案的分析、选择、比较,熟悉单片机运用于系统开发、研制的过程,软硬件设计的方法、内容及步骤。
培养发现问题、分析问题和解决问题的能力以及创新能力和创新思维的提高。
1.2设计要求及说明设计一个具有特定功能的十字路口交通灯。
该交通灯上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。
按开始键则开始工作,按结束键则返回“P.”状态。
要求甲车道和乙车道两条交叉道路上的车辆交替运行,甲车道为主车道,每次通车时间为60秒,乙车道为次车道,每次通车时间为30秒,要求黄灯亮3秒,并且1秒闪烁一次。
有应急车辆出现时,红灯全亮,应急车辆通车时间10秒,同时禁止其他车辆通过。
1.3方案介绍及工作原理1.3.1 方案介绍系统整体框图如图1.1所示:1.3.2 工作原理该系统采用的是使用现有单片机最小的硬件电路和P3口控制交通灯,P2口控制数码管各位,P0口控制数码管各段,P1.0、P1.1口线控制数码管各位和P1.2口接收紧急信号电路集合而成,构成交通灯的总体电路,即交通灯。
通过对单片机编写对应的程序,控制各个部分,达到预期的效果。
2 交通灯的硬件设计及PCB图2.1交通灯原理图电路原理图如附录一,电路原理图由各功能模块组成。
2.2交通灯各模块功能2.2.1 单片机最小系统电路单片机最小系统由CPU,复位电路,振荡电路三部分构成,CPU采用的是Atmel公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容的AT89S52芯片。
AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
基于AT89S52单片机交通灯控制系统的方案设计书

一、设计任务与要求用AT89S52单片机控制一个交通信号灯系统,晶振采用12MHZ 。
设A 车道与B 车道交叉组成十字路口,A 是主道,B 是支道。
设计要求如下:用发光二极管模拟交通信号灯,用按键开关模拟车辆检测信号。
正常情况下,A 、B 两车道轮流放行,A 车道放行50s ,其中5s 用于警告;B 车道放行30s ,其中5s 用于警告。
交通繁忙时,交通信号灯控制系统应有手控开关,可人为地改变信号灯的状态,以缓解交通拥挤状况。
在B 车道放行期间,若A 车道有车而B 车道无车,按下开关K1 使 A 车道放行15s ;在 A 车道放行期间,若B 车道有车而A 车道无车,按下开关K1 使B 车道放行15s 。
有紧急车辆通过时,按下K2开关使 A 、B 车道均为红灯,禁行20s 。
二、方案设计与论证 方案一:交通控制系统主要控制A 、B 两车道的交通,以A T89S52单片机为核心芯片,通过控制三色LED 的亮灭来控制各车道的通行;另外通过2个按键来模拟各车道有无车辆的情况和有紧急车辆的情况。
根据设计要求,制定总体设计思想如下:1、正常情况下运行主程序,采用0.5S 延时子程序的反复调用来实现各种定时时间。
2、一道有车而另一道无车时,采用外部中断1执行中断服务程序,并设置中断为低优先级中断。
3、有紧急车辆通过时,采用外部中断0执行中断服务程序,并设置中断为高优先级中断,实现二级中断嵌套。
该电路具有电路简单,设计方便,显示亮度高,耗电较少,也非常的可靠等点。
总体设计框图如图1所示:图1 系统整体设计方框图方案二:采用标准AT89S52单片机作为控制器;通行倒计时显示采用3位数码管;主、次通道及行人指示灯采用双色高亮发光二极管;LED 显示采用动态扫描,以节省端口。
紧急车辆通行采用实时中断完成,识别方法采用手动按钮。
按以上系统构架设计,单片机端口资源刚好满足要求。
该系统具有电路简单,设计方便,显示亮度高耗电少,可靠性高,但是占用单片机资源太多了。
基于AT89S52单片机的十字路口交通灯的设计

项目设计报告项目名称:简易交通灯控制系统的设计课程名称:单片机原理与接口技术学院:机电学院专业:机械工程及自动化学号:2010090301306姓名:刘亚东学号:2010090301323姓名:宋吉鹏成绩:2013年 6 月 5 日简易交通灯控制系统的设计一 设计任务与要求1.设计任务设计基于51单片机的交通灯控制系统。
2. 设计要求基本功能:(1)设计程序能够控制红灯、黄灯和绿灯的切换。
假设十字路口为东西南北走向,南北方向为主干道,东西方向为辅干道,主干道通行时间长于辅干道。
要求按表1实现过程控制。
表(2)应用两位动态显示的LED 显示器倒计时显示通行时间,总时间应包含绿灯闪烁和黄灯亮的时间。
(3)当绿灯闪烁和黄灯亮时,蜂鸣器发声提示。
扩展功能:处理紧急状况,由按键引发外部中断进入紧急状况。
在紧急状况下东西、南北均为红灯,15秒钟后恢复进入紧急状况之前的正常运行状态。
二 总体方案设计以方框图的形式给出系统框图,并作出说,包括相关分析与计算。
进入程序后,系统先进行系统初始化,即对定时器,外部中断,中间状态值进行初始化操作,然后系统进入显示子程序循环,一直对外部进行显示输出。
直到定时器中断和外部中断请求,进入中断子程序进行中间值的相关运算,然后中断程序返回,继续进行显示子程序循环。
系统进行如上循环操作,便可实现十字路口交通灯的循环计时和点亮红绿灯。
如此便可实现题目要求。
三硬件设计3.1 各单元模块功能及电路设计,绘制电路原理图;交通灯模块有三组接口J5, J6,J7,每组接口有十个接线柱,J5接口分别为+,A,B,C,D,E,F,G,H,- J5口为公共字形口,可以同时向数字显示端口和LED灯显示端口输出字形。
J6接口分别为+,DIG1,DIG2,DIG3,DIG4,DIG5,DIG6,DIG7,DIG8,--- 他的主要功能是控制8位数字显示端口的字位。
J7接口为别为+,DIG9,DIG10,DIG11,DIG12,DIG13DIG14,DIG15DIG16,DIG17,- 主要功能是分别控制东西南北四个方向红黄绿三色LED灯的字位。
AT89C52单片机完成数字交通灯的毕业设计资料

学业作品论文题目数字交通灯专业计算机应用技术班级201402班姓名胡安富学号201402121229 指导教师董毅学业作品开题报告学生姓名胡安富学号201402121229 专业数字交通灯班级201402班指导教师董毅开题时间2016年11月1日电子信息学院电子信息学院学业作品开题报告学业作品(论文)评审表(指导教师用)学生姓名:胡安富专业:数字交通灯班级: _______201402班_____________学号:201402121229 题目:数字交通灯注:此表存学业作品(论文)档案学业作品答辩记录表系别:电子信息学院学业作品(论文)成绩评定表(答辩小组用)注:此表存学业作品(论文)档案学业作品论文题目数字交通灯专业计算机应用技术班级201402班姓名胡安富学号201402121229指导教师董毅说明:一、毕业设计(论文)要求:1.毕业设计(论文)必须打印或者用钢笔书写,且符合下列次序:(1)毕业设计(论文)题目(2)目录(3)内容提要(200字左右,提倡用英文书写)(4)引言(5)正文(6)参考文献(7)附录。
2.文字通顺,语言流畅,书写工整,无错别字。
3.绘图要求整洁,布局合理,线条粗细均匀,圆弧连接光滑,尺寸标注规范,文字注释必须用工程字书写,提倡用计算机绘图。
4.曲线图表要求用曲线、图表、线路图、流程图、程序框图、示意图等不准徒手画,必须按国家规定标准或工程要求绘制。
5.毕业设计说明不少于15000字,毕业论文不少于6000字。
二、毕业设计(论文)成绩评定:毕业论文和答辩成绩采用五级分制:优秀、良好、中等、及格、不及格。
毕业设计成绩由答辩小组结合毕业论文、答辩成绩采用五级分制综合评定。
数字交通灯毕业设计任务书一、设计任务:用89C52A作为主控芯片,通过C语言编些程序,用LED代替各个路口交通灯,通过keil和Proteus 联合调用来实现对十字路口交通灯控制系统的模拟。
二、设计内容:设计内容:用keil编写C程序,通过软件延时实现交通灯控制;在Proteus中设计出电路图,其中各个路口交通灯用led模拟,计时器用八段数码管显示;z最后通过keil和Proteus联合调用实现交通灯的模拟。
89C52A作为主控芯片的数字交通灯设计

河南工业职业技术学院毕业设计——数字交通灯专业:班级:学号:姓名:指导老师:数字交通灯毕业设计任务书一、设计任务:用89C52A作为主控芯片,通过C语言编些程序,用LED代替各个路口交通灯,通过keil和Proteus联合调用来实现对十字路口交通灯控制系统的模拟。
二、设计内容:设计内容:用keil编写C程序,通过软件延时实现交通灯控制;在Proteus中设计出电路图,其中各个路口交通灯用led模拟,计时器用八段数码管显示;z最后通过keil和Proteus联合调用实现交通灯的模拟。
设计效果: 软件延时控制南北(A﹑C)路口红灯亮65s0,东西(B﹑D)路口绿灯亮60秒;然后南北(A﹑C)路口不变,东西(B﹑D)路口绿灯闪5下,然后南北东西路口黄灯亮;再变为南北(A﹑C)路口绿灯亮60s,东西(B﹑D)红灯亮65s秒;然后南北(A﹑C)路口绿灯闪5下,再黄灯亮,B ﹑D不变。
再循环······。
并将绿灯剩余时间显示在LED上 (该项编程可将其结果显示在计算机屏幕上代替)。
如下图十字交通灯模拟图三、设计要求:(1). 设计硬件原理图(印制版图),(2). 制作实物或软件仿真或实验板上模拟,任选一种;(3). 设计软件流程图;(4). 编程并调试;(5). 软硬件综合调试。
摘要交通控制系统是近现代社会随着物流、出行等交通发展产生的一套独特的公共管理系统。
要保证高效安全的交通秩序,除了制定一系列的交通规则,还必须通过一定的科技手段加以实现。
本文在对目前交通控制进行深入分析的基础上,用89C52A作为主控芯片,通过C语言编些程序,用LED代替各个路口交通灯,通过Keil和Proteus联合调用来实现对十字路口交通灯控制系统的模拟。
近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。
在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。
基于AT89C52单片机的交通灯控制系统的设计

译文题目: 8-bit Microcontroller With 8K Bytes Flash AT89C52 外文资料8-bit Microcontroller With 8K Bytes Flash AT89C52FeaturesCompatible with MCS-51™ Products8K Bytes of In-System Reprogrammable Flash MemoryEndurance: 1,000 Write/Erase CyclesFully Static Operation: 0 Hz to 24 MHzThree-level Program Memory Lock256 x 8-bit Internal RAM32 Programmable I/O LinesThree 16-bit Timer/CountersEight Interrupt SourcesProgrammable Serial ChannelLow-power Idle and Power-down ModesDescriptionThe AT89C52 is a low-power, high-performance CMOS 8-bit microcomputer with 8K bytes of Flash programmable and erasable read only memory (PEROM). The device is manufactured using Atmel’s high-density nonvolatile memory technology and is compatible with the industry-standard 80C51 and 80C52 instruction set and pinout. The on-chip Flash allows the program memory to be reprogrammed in-system or by a conventional nonvolatile memory programmer. By combining a versatile 8-bit CPU with Flash on a monolithic chip, the Atmel AT89C52 is a powerful microcomputer which provides a highly-flexible and cost-effective solution to many embedded control applications.Pin ConfigurationsBlock DiagramPin DescriptionVCCSupply voltage.GNDGround.Port 0Port 0 is an 8-bit open drain bi-directional I/O port. As an output port, each pin can sink eight TTL inputs. When 1s are written to port 0 pins, the pins can be used as high-impedance inputs. Port 0 can also be configured to be the multiplexed low-order address/data bus during accesses to external program and data memory. In this mode, P0 has internal pull-ups. Port 0 also receives the code bytes during Flash programming and outputs the code bytes during program verification. Externalpull-ups are required during program verification.Port 1Port 1 is an 8-bit bi-directional I/O port with internal pull-ups. The Port 1 output buffers can sink/source four TTL inputs. When 1s are written to Port 1 pins, they are pulled high by the internal pull-ups and can be used as inputs. As inputs, Port 1 pins that are externally being pulled low will source current (I IL) because of the internal pull-ups. In addition, P1.0 and P1.1 can be configured to be the timer/counter 2 external count input (P1.0/T2) and the timer/counter 2 trigger input (P1.1/T2EX), respectively, as shown in the following table. Port 1 also receives the low-order address bytes during Flash programming and verification.Port 2Port 2 is an 8-bit bi-directional I/O port with internal pull-ups. The Port 2 output buffers can sink/source four TTL inputs. When 1s are written to Port 2 pins, they are pulled high by the internal pull-ups and can be used as inputs. As inputs, Port 2 pins that are externally being pulled low will source current (I IL) because of the internal pull-ups. Port 2 emits the high-order address byte during fetches from external program memory and during accesses to external data memories that use 16-bit addresses (MOVX @DPTR). In this application, Port 2 uses strong internal pull-ups when emitting 1s. During accesses to external data memories that use 8-bit addresses (MOVX @ RI), Port 2 emits the contents of the P2 Special Function Register. Port 2 also receives the high-order address bits and some control signals during Flash programming and verification.Port 3Port 3 is an 8-bit bi-directional I/O port with internal pull-ups. The Port 3 output buffers can sink/source four TTL inputs. When 1s are written to Port 3 pins, they are pulled high by the internal pull-ups and can be used as inputs. As inputs, Port 3 pins that are externally being pulled low will source current (I IL) because of the pull-ups. Port 3 also serves the functions of various special features of the AT89C51, as shown in the following table. Port 3 also receives some control signals for Flash programming and verification.RSTReset input. A high on this pin for two machine cycles while the oscillator is running resets the device.ALE/PROGAddress Latch Enable is an output pulse for latching the low byte of the address during accesses to external memory. This pin is also the program pulse input (PROG) during Flash programming. In normal operation, ALE is emitted at a constant rate of 1/6 the oscillator frequency and may be used for external timing or clocking purposes. Note, however, that one ALE pulse is skipped during each access to external data memory. If desired, ALE operation can be disabled by setting bit 0 of SFR location 8EH. With the bit set, ALE is active only during a MOVX or MOVC instruction. Otherwise, the pin is weakly pulled high. Setting the ALE-disable bit has no effect if the microcontroller is in external execution mode.PSENProgram Store Enable is the read strobe to external program memory. When the AT89C52 is executing code from external program memory, PSEN is activated twice each machine cycle, except that two PSEN activations are skipped during each access to external data memory.EA/VPPExternal Access Enable. EA must be strapped to GND in order to enable the device to fetch code from external program memory locations starting at 0000H up to FFFFH. Note, however, that if lock bit 1 is programmed, EA will be internally latched on reset. EA should be strapped to V CC for internal program executions. This pin also receives the 12-volt programming enable voltage (V PP) during Flash programming when 12-volt programming is selected.XTAL1Input to the inverting oscillator amplifier and input to the internal clock operating circuit.XTAL2Output from the inverting oscillator amplifier.Special Function RegistersA map of the on-chip memory area called the Special Function Register (SFR) space is shown in the Table 1.Note that not all of the addresses are occupied, and unoccupied addresses may not be implemented on the chip. Read accesses to these addresses will in general return random data, and write accesses will have an indeterminate effect. User software should not write 1s to these unlisted locations, since they may be used in future products to invoke new features. In that case, the reset or inactive values of the new bits will always be 0.Timer 2 RegistersControl and status bits are contained in registers T2CON and T2MOD for Timer 2. The register pair (RCAP2H, RCAP2L) are the Capture/Reload registers for Timer 2 in 16-bit capture mode or 16-bit auto-reload mode.Interrupt RegistersThe individual interrupt enable bits are in the IE register. Two priorities can be set for each of the six interrupt sources in the IP register.Data MemoryThe AT89C52 implements 256 bytes of on-chip RAM. The upper 128 bytes occupy a parallel address space to the Special Function Registers. That means the upper 128 bytes have the same addresses as the SFR space but are physically separate from SFR space.When an instruction accesses an internal location above address 7FH, the address mode used in the instruction specifies whether the CPU accesses the upper 128 bytes of RAM or the SFR space. Instructions that use direct addressing access SFR space. For example, the following direct addressing instruction accesses the SFR at location 0A0H .MOV 0A0H, #dataInstructions that use indirect addressing access the upper 128 bytes of RAM. For example, the following indirect addressing instruction, where R0 contains 0A0H, accesses the data byte at address 0A0H, rather than P2 (whose address is 0A0H).MOV @R0, #dataNote that stack operations are examples of indirect addressing, so the upper 128 bytes of data RAM are available as stack space.Timer 0 and 1Timer 0 and Timer 1 in the AT89C52 operate the same way as Timer 0 and Timer 1 in the AT89C51.Timer 2Timer 2 is a 16-bit Timer/Counter that can operate as either a timer or an event counter. The type of operation is selected by bit C/T2 in the SFR T2CON.Timer 2 has three operating modes: capture, auto-reload (up or down counting), and baud rate generator. The modes are selected by bits in T2CON, as shown in Table 3.Timer 2 consists of two 8-bit registers, TH2 and TL2. In the Timer function, the TL2 register is incremented every machine cycle. Since a machine cycle consists of 12 oscillator periods, the count rate is 1/12 of the oscillator frequency.In the Counter function, the register is incremented in response to a 1-to-0 transition at its corresponding external input pin, T2. In this function, the external input is sampled during S5P2 of every machine cycle. When the samples show a high in one cycle and a low in the next cycle, the count is incremented. The new count value appears in the register during S3P1 of the cycle following the one in which the transition was detected. Since two machine cycles (24 oscillator periods) are required to recognize a 1-to-0 transition, the maximum count rate is 1/24 of the oscillator frequency. To ensure that a given level is sampled at least once before it changes, the level should be held for at least one full machine cycle.Capture ModeIn the capture mode, two options are selected by bit EXEN2 in T2CON. If EXEN2 = 0, Timer 2 is a 16-bit timer or counter which upon overflow sets bit TF2 in T2CON.This bit can then be used to generate an interrupt. If EXEN2 = 1, Timer 2 performs the same operation, but a 1-to-0 transition at external input T2EX also causes the current value in TH2 and TL2 to be captured into RCAP2H and RCAP2L, respectively. In addition, the transition at T2EX causes bit EXF2 in T2CON to be set. The EXF2 bit, like TF2 can generate an interrupt. The capture mode is illustrated in Figure 1.Auto-reload (Up or Down Counter)Timer 2 can be programmed to count up or down when configured in its 16-bit auto-reload mode. This feature is invoked by the DCEN (Down Counter Enable) bit located in the SFR T2MOD. Upon reset, the DCEN bit is set to 0 so that timer 2 will default to count up. When DCEN is set, Timer 2 can count up or down, depending on the value of the T2EX pin.Figure 2 shows Timer 2 automatically counting up when DCEN = 0. In this mode, two options are selected by bit EXEN2 in T2CON. If EXEN2 = 0, Timer 2 counts up to 0FFFFH and then sets the TF2 bit upon overflow. The overflow also causes the timer registers to be reloaded with the 16-bit value in RCAP2H and RCAP2L. The values in Timer in Capture ModeRCAP2H and RCAP2L are preset by software. If EXEN2 = 1, a 16-bit reload can be triggered either by an overflow or by a 1-to-0 transition at external input T2EX. This transition also sets the EXF2 bit. Both the TF2 and EXF2 bits can generate an interrupt if enabled.Setting the DCEN bit enables Timer 2 to count up or down, as shown in Figure 3. In this mode, the T2EX pin controls the direction of the count. A logic 1 at T2EX makes Timer 2 count up. The timer will overflow at 0FFFFH and set the TF2 bit. This overflow also causes the 16-bit value in RCAP2H and RCAP2L to be reloaded into the timer registers, TH2 and TL2, respectively.A logic 0 at T2EX makes Timer 2 count down. The timer underflows when TH2 and TL2 equal the values stored in RCAP2H and RCAP2L. The underflow sets the TF2 bit and causes 0FFFFH to be reloaded into the timer registers. The EXF2 bittoggles whenever Timer 2 overflows or underflows and can be used as a 17th bit of resolution. In this operating mode, EXF2 does not flag an interrupt.外文资料译文:8位8字节闪存单片机AT89C52主要性能●与MCS-51单片机产品兼容●8K字节在系统可编程Flash存储器●1000次擦写周期●全静态操作:0Hz~24Hz●三级加密程序存储器●256×8位内部存储器●32个可编程I/O口线●三个16位定时器/计数器●八个中断源●可编程串行通道●低功耗空闲和掉电模式功能特性描述AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K内置可编程闪存。
AT89C52单片机交通灯设计1

AT89C52单片机交通灯设计1AT89C52单片机交通灯设计1引言:交通灯是城市道路交通管理的重要组成部分,它将交通流量控制在适当的范围内,确保交通安全和交通效率。
本文将详细介绍AT89C52单片机交通灯设计的原理和实现过程。
一、设计原理:AT89C52单片机是一种常见的8位单片机,具有高度可编程的特性。
交通灯设计的基本原理是通过控制不同颜色的灯光的亮灭来指示交通的状态。
在设计中,我们将使用AT89C52单片机控制红、黄、绿三种颜色的LED灯的亮灭,以实现红灯停、黄灯等待和绿灯行的功能。
二、硬件设计:1.AT89C52单片机:作为控制中心,负责控制交通灯的状态。
2.LED灯:红黄绿三种颜色的LED灯分别表示红灯、黄灯和绿灯。
3.电阻:用于限流,防止LED灯烧坏。
4.开关:用于手动控制交通灯的状态,模拟实际交通情况。
三、软件设计:1.程序框图:交通灯设计的程序可以分为红灯、黄灯、绿灯三个状态,基本流程图如下所示:```流程图┌───────────────────┐│初始化程序││├─────┐│红灯亮│││├─────┐│红灯亮││││││││红灯灭││││││││黄灯亮││││││││黄灯灭││││││││绿灯亮││││││││绿灯灭││││├──►│││重复│││││└───────────────────┘││││▼```2.程序编写:(1)首先定义端口,将LED灯的引脚连接到AT89C52单片机的端口上。
(2)在主函数中,设置红灯亮的状态,即将红灯的引脚设置为高电平。
(3)使用延时函数,使红灯亮一段时间后再灭。
(4)设置黄灯亮的状态,即将黄灯的引脚设置为高电平。
(5)使用延时函数,使黄灯亮一段时间后再灭。
(6)设置绿灯亮的状态,即将绿灯的引脚设置为高电平。
(7)使用延时函数,使绿灯亮一段时间后再灭。
(8)进入重复步骤,循环运行。
四、调试与测试:五、总结:1.AT89C52单片机数据手册2.《单片机原理与应用》。
基于STC89C52单片机的数显交通灯设计方案

基于STC89C52单片机的数显交通灯设计方案1.1 课题背景随着我国国民经济的迅速发展,城市街道车辆大幅度增长,给城市交通带来巨大压力,交通拥堵已经成为影响城市可持续发展的一个全局性问题。
而街道各十字路口,又是车辆通行的瓶颈所在。
已有的许多建立在精确模型基础上的交通系统控制方案都存在着一定的局限性。
研究车辆通行规律,找出提高十字路口车辆通行效率的有效方法,对缓解交通阻塞,提高畅通率具有十分现实的意义。
地面道路是一个庞大的网络,交通状况十分复杂,使目前交通灯控制器的单一时段控制已不能满足现代交通流量的多变性,特别是在交通流量高峰时,往往会造成交通路口的通过率下降,甚至出现交通混乱现象,城市的交通拥挤问题正逐渐引起人们的注意。
道路平面交叉口(简称交叉口)是交通网中通行能力的“隘口”和交通事故的“多发源”,国内外城市的交通事故约有一半发生在交叉口。
因此,交叉口这个事故多发源不能不引起人们的高度关注。
随着交通技术、电子技术的发展及微机技术的应用,人们设计出了适应各种需要的交通检测器、信号控制机和交通信号灯。
交通灯是交管部分管理城市交通的重要工具。
现在交通灯一般设在十字路口,在醒目位置用红、绿、黄三种颜色的指示灯,加上一个倒计时的显示计时器来控制行车,对于一般情况下的安全行车、车辆分流发挥着作用。
目前绝大部分交通灯其时间都是设定好的,采用的是单段式定时控制或多段式定时控制,其最大的缺点是绿灯时间和绿信比是固定的或是分时段固定的,且最佳绿灯时间和最佳绿信比的整定较为困难,需要大量的实测统计数据,且很多情况下整定所得值并不是最优的,甚至是不合理的。
控制起来都不是很灵活,这使得城市车流的调节不能达到最优。
这次设计正是针对这一弊端进行了改进,较好地解决了这一问题。
根据实时车流量对各路口的绿灯时间进行动态调节,大大加强了其灵活性和实时性,本系统本着“先到先服务”的原则,在保证交通安全性不降低的条件下提高了交通效率。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录摘要 (2)1 交通信号灯控制系统设计任务和性能指标 (3)1.1 设计任务 (3)1.2 性能指标 (3)2 交通信号灯控制系统设计方案 (3)2.1 设计思路 (3)2.1.1 设计思路 (3)2.1.2 功能设计 (3)2.2 总体设计 (3)2.2.1 通行方案设计 (4)2.2.2 硬件设计方案 (4)2.2.3 软件设计方案 (5)3 交通信号灯控制系统硬件设计 (5)3.1 系统硬件框图 (5)3.2 单元电路设计 (6)3.2.1 单片机最小系统 (6)3.2.2 信号灯显示电路 (7)3.2.3 倒计时显示电路 (7)3.2.4 电路原理图 (8)4 交通信号灯控制系统程序设计 (8)4.1 C语言程序编写 (8)5个人小结 (12)6参考文献 (12)摘要交通在人们的日常生活中占有重要的地位,随着人们社会活动的日益频繁,这点更是体现的淋漓尽致。
交通信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。
近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。
在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。
本系统采用单片机AT89C52为中心器件来设计交通信号灯控制器,系统实用性强、操作简单、扩展性强。
本设计系统就是由单片机最小系统、交通灯状态显示系统、LED 数码显示系统、复位电路和按键操作电路等几大部分组成。
系统除具有基本的交通信号灯功能外,还具有倒计时、时间调整和紧急情况处理等功能,较好的模拟实现了十字路口可能出现的状况。
软件上采用KEIL C 编程,主要编写了主程序,LED数码管显示程序,中断程序,延时程序等。
经过整机调试,实现了对十字路口交通灯的模拟。
1 交通信号灯控制系统设计任务和性能指标1.1设计任务利用单片机设计一个十字路口交通信号灯控制系统,该交通信号灯控制器由一条主干道和一条支干道汇合成十字路口,在每个入口处设置红、绿、黄三色信号灯,并有倒计时系统显示信号灯转换时间。
用红、绿、黄发光二极管作信号灯,两位八段数码管显示时间来控制交通信号灯的变化。
1.2性能指标(1)东西和南北方向的车辆交替通行,任意时刻只有一个方向通行,以黄灯闪烁来转换。
(2)系统开始运行时设置每次放行13秒,其中有3秒是黄灯闪烁提醒行人和车辆禁止通行。
2 交通信号灯控制系统设计方案2.1设计思路2.1.1设计思路(1)分析目前交通路口的基本控制技术以及各种通行方案,并以此为基础提出自己的交通控制的初步方案。
(2)确定系统交通控制的总体设计,包括,十字路口具体的通行禁行方案设计以及系统应拥有的各项功能。
(3)选择器件,大体分配各个器件及模块的基本功能要求,设计主控电路、显示电路,信号灯状态电路,按键电路等。
(4)进行软件系统的设计,对于本系统,采用C语言编写,深入了解定时器,中断以及延时原理后,完成软件的编写。
2.1.2 功能设计本设计能模拟基本的交通控制系统,用红绿黄灯表示禁行,通行和等待的信号发生,还能进行倒计时显示,通行时间调整和紧急情况处理等功能。
2.2 总体设计单片机设计交通灯控制系统,可用单片机直接控制信号灯的状态变化,基本上可以指挥交通的具体通行,接入LED数码管就可以显示倒计时以提醒行使者,更具人性化。
2.2.1 通行方案设计十字路口分为东西向和南北向,在任一时刻只有一个方向通行,另一方向禁行,持续一定时间,经过短暂的过渡时间,将通行禁行方向对换。
其具体状态如图所示。
说明:黑色表示亮,白色表示灭。
交通状态从状态1开始变换,直至状态4然后循环至状态1,周而复始。
S1 东西通行S2 东西禁行过渡状态S3 南北通行S4 南北禁行过渡状态通过对具体的十字路口交通信号灯状态的演示分析,可以把这四个状态归纳如下:状态S1:东西方向绿灯亮,允许通行,南北方向红灯亮,禁止通行;状态S2:东西方向绿灯转黄灯闪烁,允许通行,南北方向红灯亮,禁止通行;状态S3:东西方向红灯亮,禁止通行,南北方向绿灯亮,允许通行;状态S4:东西方向红灯亮,禁止通行,南北方向绿灯转黄灯闪烁,允许通行;依据上述分析,东西的通行时间为状态S1和状态S2的时间之和,南北的通行时间为状态S3和状态S4的时间之和。
2.2.2 硬件设计方案2.2.2.1 AT89C52单片机芯片简介AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL 公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。
2.2.2.2 AT89C52单片机引脚图本系统选用Atmel公司的AT系列单片机AT89C52为中心器件设计交通信号灯控制器,实现了红绿灯循环点亮,绿灯变红灯中间为黄灯闪烁警示的功能。
每个方向采用红绿黄三色的LED灯的亮灭来模拟信号灯,采用两位八段共阳数码管,显示十字路口通行或禁止的剩余时间。
2.2.3 软件设计方案设计要求为:首先南北方向红灯、东西方向绿灯亮,南北方向红灯13秒、东西方向绿灯9秒,相应的数码管显示对应的数字并读秒,同时南北方向红色的二极管和东西方向的绿色二极管接通点亮显示,当东西方向的绿灯时间到,则东西方向的绿灯转为黄灯,同时数码管显示黄灯的时间3秒,东西方向的黄色二极管接通点亮,此时南北方向的红灯不变。
南北方向的红灯和东西方向的黄灯时间同时到,此时南北方向的红灯跳转为绿灯,时间同样为9秒,东西方向有黄灯跳转为红灯,时间为13秒。
当南北方向的绿灯时间到,南北绿灯跳转为黄灯,东西方向的红灯不变,当南北方向的黄灯和东西方向的红灯时间到,南北方向的黄灯跳转为红灯,东西方向的红灯跳转为绿灯。
进入开始的状态,循环执行。
根据设计要求编写C语言程序。
软件采用KEIL C语言完成。
3 交通信号灯控制系统硬件设计3.1系统硬件框图根据设计的要求,单片机选用AT89C52,其内部带有8KB的FLASH ROM,设计时无需外接程序存储器,为设计和调试带来极大的方便。
四个方向各采用三个不同色的LED 灯和1个两位的数码管显示,来实现该方向的指示灯的点亮时间倒计时。
按键可以根据系统的需要进行操作。
系统硬件框图3.2单元电路设计3.2.1单片机最小系统对51系列单片机来说,单片机要正常工作,必须具有五个基本电路,也称五个工作条件:1、电源电路,2、时钟电路,3、复位电路,4、程序存储器选择电路,5、外围电路。
因此,单片机最小系统一般应该包括单片机、晶振电路、复位电路、外围电路等。
(1)电源电路设计单片机芯片的第40脚为正电源引脚VCC,一般外接+5V电压。
第20脚为接地引脚GND,常见电源电路设计如下图所示:电源设计(2)时钟电路设计单片机是一种时序电路,必须要有时钟信号才能正常工作。
单片机芯片的18脚(XTAL2)、19脚(XTAL1)分别为片内反向放大器的输出端和输入端,只要在18脚(XTAL2)和19脚(XTAL1)之间接上一个晶振,再加上2个20PF的瓷片电容即可构成单片机所需的AT89C52XTAL1P0.0XTAL2 |P0.5RESP2.0|P2.7时钟电路复位电路信号灯显示倒计时显示按键操时钟电路,本设计就采用图所示时钟电路。
时钟电路(3)复位电路设计单片机芯片的第9脚RST(Reset)是复位信号输入端。
单片机系统在开机时或在工作中因干扰而使程序失控,或工作中程序处于某种死循环状态等情况下都需要复位。
AT89C52单片机的复位靠外部电路实现,信号从RST引脚输入,高电平有效,只要保持RST引脚高电平2个机器周期,单片机就能正常复位。
复位电路(4)外围电路的设计外围电路的设计主要依据项目要实现的功能,本项目要实现的功能是用单片机控制交通信号灯。
3.2.2交通信号灯显示电路本系统采用LED作为信号灯来使用,单片机的I/O口直接与LED连接。
在十字路口的四组红、黄、绿三色交通灯中,东西方向的同色灯连接在一起,南北方向的同色灯也彼此连接,受单片机AT89C52的P1.0—P1.5控制。
12个LED指示灯采用共阳极的连接方式,因此I/O口输出低电平时,与之相连的LED会亮,输出高电平时,LED熄灭。
3.2.3倒计时显示电路该交通信号灯控制系统在正常工作情况下,为方便提示路上行人及车辆交通灯转换的剩余时间,专门为控制系统提供了一个倒计时的显示装置。
该装置采用2位八段数码管来显示,每个路口需要1个,共4个,在设计电路时,本系统采用用共阳数码管。
3.2.4电路原理图4 交通信号灯控制系统程序设计4.1 C语言程序编写本系统程序采用KEIL C 编程,来控制交通信号灯的亮灭及时长。
程序如下:/*#include<REG51.H> */#include<AT89X51.H>#define uchar unsigned char /*定义字符串类型为无符号型*/uchar code a[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};uchar code b[4]={0x0D,0x0E,0x07,0x0B}; /****P2口,低有效*/uchar code c[4]={0xDE,0xDD,0xF3,0xEB}; /****P1口,低有效*/char SN=10,WE=13;char SN_G=10,WE_G=10,Y=3;uchar i,k=0,count=0;void delay(uchar t);/*定义函数*/void light(); /*定义函数*/void led(); /*定义函数*//*程序初始化*/void init(void){/*12MHz */TMOD=0x01; /**计数器用模式1,为16位计数器*****/TH1=(65536-50000)/256; /*0x3C*/TL1=(65536-50000)%256; /*0xB0*//*计50000个数,用时50ms*/ IT0=1;/*外部中断0为边沿触发方式*/ET0=1;/*允许T0中断*/TR0=1;/*启动计数器*/EA=1;/*CPU开放总中断*/}/*定时函数*/void time1(void) interrupt 1{TH0=0x3c;TL0=0xb0;/*计50000个数,用时50ms*/count++; /*自增运算*/if(count>=20)/*当count大于或等于20时,历时1s,执行程序*/ {SN--;/*自减运算*/WE--;/*自减运算*/count=0;/*清零*/if(SN==0||WE==0)/*当SN=0或者WE=0时,执行程序*/{k++;/*自增运算*/if(k>3)/*当k>3时,执行程序*/k=0;/*清零*/switch(k)/*switch 语句*/{case 0:SN=SN_G,WE=SN_G+Y;break;/*南北方向显示时间为南北方向绿灯通行时间,东西方向显示时间为南北方向绿灯通行时间加黄灯闪亮时间*/ case 1:SN=Y,WE=Y;break; /*东西南北方向显示时间均为黄灯闪亮时间*/case 2:SN=WE_G+Y,WE=WE_G;break;/*南北方向显示时间为东西方向绿灯通行时间加黄灯闪亮时间,东西方向显示时间为东西方向绿灯通行时间*/ case 3:SN=Y,WE=Y;break; /*东西南北方向显示时间均为黄灯闪亮时间*/}}}}/*延时t毫秒*/void delay(uchar t){uchar i;for(t;t>0;t--){for(i=2000;i>0;i--){}}}/*交通灯函数*/{P1=c[k];/*交通灯对应着k的值变化*/if(P1==c[1]&&count==0)/*当南北方向亮黄灯且count=0时,执行程序*/ {TH1=(65536-50000)/256;TL1=(65536-50000)%256;/*延时50ms*/P1=0xDF;/*南北方向黄灯熄灭,东西方向亮红灯*/}elseif(P1==c[3]&&count==0)/*当东西方向亮黄灯且count=0时,执行程序*/ {TH1=(65536-300000)/256;TL1=(65536-300000)%256;/*延时50ms*/P1=0xFB;/*南北方向亮红灯,东西方向黄灯熄灭*/}}/*数码管函数*/void led(){P2=b[0],P0=a[SN%10];/*显示南北方向个位*/delay(5);/*延时*/P2=b[1],P0=a[SN/10];/*显示南北方向十位*/delay(5);/*延时*/P2=b[2],P0=a[WE%10];/*显示东西方向个位*/delay(5);/*延时*/P2=b[3],P0=a[WE/10];/*显示东西方向十位*/delay(5); /*延时*/}{init();/*调用程序初始化函数*/for(;;)/*无条件循环*/{light();/*调用交通灯函数*/led(); /*调用数码管函数*/}}5 个人小结这次是很有意义的一次课程设计,从原理图设计到软件仿真,我从中收获了许多。