C51单片机的交通灯控制系统

合集下载

51单片机实现交通灯控制程序

51单片机实现交通灯控制程序

51单片机实现交通灯控制程序2010-04-28 23:02当出现交通事故时,按下单片机右侧开关,所有红灯亮,交通停止,通行时间保持,弹起开关,交通接停止时的时间继续进行#include<reg52.h>#include<stdio.h>#define unchar unsigned char#define unint unsigned intsbit key=P3^2;unchar code dis[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};unint i,j,k;unint s;unchar h;void delay(unint c); void cut0();void cut1();void cut2();void cut3();void cut4();void cut5();void cut6();void cut7();void main(){TMOD=0X06;TH0=0Xff;TL0=0xff;TR0=1;EA=1;EX0=1;EX1=1;ET0=1;P1=0x00;P3=0xff;P0=0xf6;P2=0xf5;for(h=29;h>0;h--) { for(s=24;s>0;s--) {cut0();P3=0xfc;P1=0xff;P3=0xfd;P1=dis[h/10];delay(1);P3=0xfc;P1=0xff;P1=dis[h%10];delay(1);}}for(h=4;h>0;h--){cut1();P2=0xf3;delay(10);P2=0xf7;delay(10);P3=0xfc;P1=0xff;P3=0xfe;P1=dis[h%10];delay(20);}P2=0xee;for(h=29;h>0;h--) { for(s=24;s>0;s--) {cut2();P3=0xfc;P1=0xff;P3=0xfd;P1=dis[h/10];delay(1);P3=0xfc;P1=0xff;P3=0xfe;P1=dis[h%10];delay(1);}}for(h=4;h>0;h--){P2=0xde;delay(10);P2=0xfe;delay(10);P3=0xfc;P1=0xff;P3=0xfe;P1=dis[h%10];delay(20);}P2=0xf6;P0=0xf5;for(h=29;h>0;h--) { for(s=24;s>0;s--) {cut4();P3=0xfc;P1=0xff;P3=0xfd;P1=dis[h/10];delay(1);P3=0xfc;P1=0xff;P3=0xfe;P1=dis[h%10];delay(1);}}for(h=4;h>0;h--){cut5();P0=0xf3;delay(10);P0=0xf7;delay(10);P3=0xfc;P1=0xff;P3=0xfe;P1=dis[h%10];delay(20);}P0=0xee;for(h=29;h>0;h--) { for(s=24;s>0;s--) {cut6();P3=0xfc;P1=0xff;P3=0xfd;P1=dis[h/10];delay(1);P3=0xfc;P1=0xff;P3=0xfe;P1=dis[h%10];delay(1);}}for(h=4;h>0;h--){cut7();P0=0xde;delay(10);P0=0xfe;delay(10);P3=0xfc;P1=0xff;P3=0xfe;P1=dis[h%10];delay(20);}}void delay(unint c){while(c--)for(j=1500;j>0;j--); }void cut0(){key=1;if(key==0)while(1){P2=0xf6;key=1;if(key==1){P2=0xf5;break ;}}}void cut1(){key=1;if(key==0)while(1){P2=0xf6;key=1;if(key==1){P2=0xf7;break ;}}}void cut2(){key=1;if(key==0)while(1){P2=0xf6;key=1;if(key==1) {P2=0xee; break ;}}}void cut3() {key=1;if(key==0)while(1){P2=0xf6; key=1;if(key==1) {P2=0xfe; break ;}}}void cut4() {key=1;if(key==0)while(1){P0=0xf6; key=1;if(key==1) {P0=0xf5; break ;}}}void cut5() {key=1;if(key==0)while(1){P0=0xf6; key=1;if(key==1) {P0=0xf7; break ;}}}void cut6() {key=1;if(key==0)while(1){P0=0xf6; key=1;if(key==1) {P0=0xee; break ;}}}void cut7() {key=1;if(key==0)while(1){P0=0xf6; key=1;if(key==1) {P0=0xfe; break ;}}}。

51单片机交通灯仿真原理

51单片机交通灯仿真原理

51单片机交通灯仿真原理引言:交通灯作为城市交通管理的重要组成部分,起到了引导车辆和行人通行的作用。

在现代社会中,交通灯的灯光变化是由电路控制实现的。

本文将以51单片机为基础,介绍交通灯仿真的原理和实现过程。

一、51单片机简介51单片机是一种常见的微控制器,具有高性能、低功耗、易编程等特点。

它广泛应用于各种电子设备中,包括交通灯控制。

二、交通灯的基本原理交通灯一般由红、黄、绿三个灯组成。

红灯表示停车,黄灯表示准备行驶,绿灯表示可以通行。

交通灯的变化是按照一定的时间间隔来进行的,通常为红灯亮一段时间,然后黄灯亮一段时间,最后绿灯亮一段时间。

这种变化方式可以通过51单片机的定时器和IO口控制来实现。

三、交通灯仿真的实现步骤1. 硬件连接需要准备一块51单片机开发板,以及红、黄、绿三个LED灯。

将LED灯连接到51单片机的IO口上,通过电阻限流,确保电流合适。

2. 程序编写使用C语言编写程序,实现交通灯的仿真。

首先,需要定义红、黄、绿三个灯对应的IO口。

然后,设置定时器,按照一定的时间间隔来改变灯的状态。

例如,红灯亮5秒,黄灯亮2秒,绿灯亮8秒。

通过循环控制,可以实现交通灯的循环变化。

3. 烧录程序将编写好的程序通过烧录器下载到51单片机中。

确保烧录成功后,即可进行交通灯仿真。

4. 仿真测试将51单片机开发板连接到电源,打开电源开关。

此时,红灯应亮起,表示停车;随后黄灯亮起,表示准备行驶;最后绿灯亮起,表示可以通行。

通过不断循环,交通灯的状态会一直变化,实现仿真效果。

四、交通灯仿真的应用价值交通灯仿真是对交通灯控制的一种模拟,可以用于交通管理系统的设计和优化。

通过仿真实验,可以模拟不同情况下交通灯的变化,优化交通流量,提高交通效率。

此外,交通灯仿真还可以用于交通安全教育,让行人和驾驶员更好地理解交通灯的意义和规则。

五、总结本文以51单片机为基础,介绍了交通灯仿真的原理和实现过程。

通过硬件连接、程序编写、烧录和测试等步骤,可以实现交通灯的仿真效果。

C51单片机交通灯

C51单片机交通灯

单片机应用技术课程设计基于单片机的交通灯控制系统设计院(系)名称专业名称学生姓名指导教师2012年月日目录1 设计任务与要求 (1)2 系统硬件设计............ (3)2.1硬件系统设计 (4)2.1.1单片机模块 (4)2.1.2 显示模块 (5)2.1.3 按键模块 (6)2.2 系统软件设计 (6)2.2.1正常工作模式子程序 (8)2.2.2 延时子程序 (9)2.2.3 夜间模式子程序 (10)2.2.4绿灯闪烁子程序 (12)2.2.5显示倒计时子程序 (12)3系统测试与实现 (14)3.1 汇编源程序 (14)3.2 Proteus仿真 (14)4 课程设计总结 (17)参考文献 (18)1 设计任务与要求当今,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。

但这一技术在19世纪就已出现了。

1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。

这是世界上最早的交通信号灯。

1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。

它由红绿两以旋转式方形玻璃提灯组成,红色表示“停止”,绿色表示“注意”。

1869年1月2日,煤气灯爆炸,使警察受伤,遂被取消。

电气启动的红绿灯出现在美国,这种红绿灯由红绿黄三色圆形的投光器组成,1914年始安装于纽约市5号大街的一座高塔上。

红灯亮表示“停止”,绿灯亮表示“通行”。

1918年,又出现了带控制的红绿灯和红外线红绿灯。

带控制的红绿灯,一种是把压力探测器安在地下,车辆一接近红灯便变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红灯时按一下嗽叭,就使红灯变为绿灯。

红外线红绿灯当行人踏上对压力敏感的路面时,它就能察觉到有人要过马路。

红外光束能把信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故。

信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。

基于C51单片机的交通灯系统设计

基于C51单片机的交通灯系统设计

0 引 言 近年来,随着国民经济的快速发展,车辆的增多,交通
拥挤和阻塞现象时常出现。交通拥塞已成为城市交通中迫切 需要解决的社会问题。而我国传统使用的定周期控制和各路 口各自的独立控制方法,在解决这些问题时效果并不是很 好。越来越多的证据表明,简单地扩大道路基础设施并不能 解决交通拥堵问题。这要求在现有道路条件下,提高交通控 制和管理水平,合理使用现有交通设施,充分发挥其能力, 更加灵活有效地提高道路的利用率。
关键词:AT89C51 单片机;智能交通灯控制 Abstract: In this design, the control core of the city traffic light is based on MCU AT89C51, the electric circuit is composed of the following modules: the normal indication module of traffic light, the countdown demonstration module, the emergency case processing module, the special type vehicle detect module, the voice hint module and the adjustment to the current traffic module etc. The normal indication module of traffic light are used to indicate the vehicle and the passerby move according to the four traffic rule; The countdown demonstration module can show the left time that the vehicle and the passerby have to wait: the emergency case process module have the function of processing the emergency case controlled by the traffic police; the special type vehicle detect module is using for examining the special vehicle, such as ambulance, police wagon, the voice hint module are used to remind the passerby of danger. The MCU will analyze all the signals and control the traffic light and the countdown demonstration work normally. Key words: MCU AT89C51; Intelligent traffic control 中图分类号:TP368.1 文献标识码:A 文章编号:1001-9227(2008)06-0030-04

基于51单片机的交通信号灯模拟控制系统

基于51单片机的交通信号灯模拟控制系统

基于51单片机的交通信号灯模拟控制系统一、实验目的和要求1.掌握单片机基本资源使用。

2.掌握单片机电路原理图绘制和仿真。

3.掌握单片机C语言软件开发以及联合仿真。

二、实验内容和原理实验内容:1.根据题目绘制单片机电路原理图。

2.绘制程序流程图并编写C语言程序3.在仿真程序中进行联合仿真,最后提交实验报告三、主要仪器设备keilC,proteus。

四、操作方法与实验步骤4.1 题目要求用单片机设计一个十字路口交通灯模拟控制系统,要求东西、南北两个方向都通行20秒,警告3秒,禁止20秒,同时要考虑到东西、南北两个方向出现异常情况,出现异常情况器该方向通行60秒。

4.2 系统设计思路南北的绿红黄发光二极管与单片机AT89C51单片机的P1.0,P1.1,P1.2相连。

东西的绿红黄发光二极管与单片机AT89C51单片机的P1.4,P1.5,P1.6相连。

改变单片机P1口编码控制交通灯。

控制过程中会出现两种异常情况用外中断0和外中断1处理。

时间单位采用500ms信号,由定时/计数器0定时50ms,循环10次产生,定时/计数器0采用查询方式,主程序中设定定时/计数器0的工作方式:方式1。

4.2 电路图绘制(包含详细的参数选定文字和图像叙述)C1=1nF,C2=1nF,C3=1nF,R1=300,R2=300,R3=300,R4=300,R5=300,R6=300,R7=300,R8=300,R9=300,R10=300,R11=300,R12=300,R13=3004.3 C程序编制(包含详细的文字和程序流程图)4.3 仿真分析(包含文字和图像叙述)东西绿灯,南北红灯东西黄灯,南北红灯南北绿灯,东西红灯南北黄灯,东西红灯东西发生异常时,东西通行,南北禁止,东西方向绿灯闪,南北方向红灯闪南北发生异常时,南北通行,东西禁止,南北方向绿灯闪,东西方向红灯闪五、讨论和心得(不少于100字)通过这次对交通灯信号的模拟,了解了交通灯4种正常状态,2种异常状态,它们分别是:状态1,东西方向绿灯,南北方向红灯20秒。

单片机 C51延时实现交通灯控制

单片机 C51延时实现交通灯控制

任务一延时实现交通灯控制一、制作展示1、要想控制好LED不简单2、单片机控制作用很强大二、交通灯展示三、训练目的1、进一步熟悉应用仿真软件调试2、进一步熟悉汇编语言程序设计方法3、进一步掌握对P1口各位的控制4、学习模拟交通灯控制的实现方法四、训练内容用单片机P1做输出口,控制十二个发光二极管燃灭,模拟交通灯管理。

五、交通灯规律六、简易交通灯设计单片机P1.0、P1.1口控制2组灯,一组亮的时候另一组不亮ORG 0000H SJMP L1 ORG 0100H L1: SETB P1.0 CLR P1.1LCALL DELAY CLR P1.0 SETB P1.1LCALL DELAY SJMP L1 DELAY: … … … … 七、交通灯设计11、实验步骤设定P1.0控制东西方向“绿灯”,P1.1控制东西方向“黄灯”,P1.2控制东西方向“红灯”,P1.3控制南北方向“绿灯”,P1.4控制南北方向“黄灯”,P1.5控制南北方向“红灯”。

主程序执行对P1口各使用位的控制,并调用相应的延时子程序实现。

2、程序框图:3、实验步骤设定P1.0控制东西方向“绿灯”,P1.1控制东西方向“黄灯”,P1.2控制东西方向“红灯”,P1.3控制南北方向“绿灯”,P1.4控制南北方向“黄灯”,P1.5控制南北方向“红灯”。

主程序执行对P1口各使用位的控制,并调用相应的延时子程序实现。

4、程序清单:ORG 0000HLJMP MAINORG 0030H MAIN: MOV SP,#70H LOOP: SETB P1.1SETB P1.2CLR P1.0SETB P1.3SETB P1.4CLR P1.5ACALL DEL90SACALL YELL1ACALL DEL2SSETB P1.0SETB P1.1CLR P1.2SETB P1.4SETB P1.5CLR P1.3ACALL DEL90SACALL YELL2ACALL DEL2SSJMP LOOP YELL1: SETB P1.0SETB P1.2CLR P1.1SETB P1.3SETB P1.4CLR P1.5RETYELL2: SETB P1.0SETB P1.1CLR P1.2SETB P1.3SETB P1.5CLR P1.4RETDEL2S: MOV R5,#10HF3: MOV R6,#0FFHF2: MOV R7,#0E1HF1: DJNZ R7,F1DJNZ R6,F2DJNZ R5,F3RETDEL90S: MOV R5,#03HF6: MOV R6,#0F0HF5: MOV R7,#0F0HF4: MOV R0,#0F0HDJNZ R0,$DJNZ R7,F4DJNZ R6,F5DJNZ R5,F6RETEND5、扩展同时满足以下条件:1、全亮,检测有无坏灯;2、先东西红灯亮,南北绿灯亮;3、灯亮暗程序都改成子程序。

单片机C51交通灯课程设计

单片机C51交通灯课程设计

交通灯设计一.设计目的:1.进一步熟悉和掌握单片机的结构和工作原理。

熟练掌握C语言的编程方法,将理论联系到实践中,提高我们的思维能力。

2。

用AT89C51的P1口作为输出口,控制12个发光二极管的点亮和熄灭,模拟交通灯管理。

3.学习74LS245芯片驱动七段数码管的显示的方法,使用数码管显示器定时及倒计时的方法。

二.设计要求与主要内容:设计要求:交通信号灯模拟控制系统设计利用单片机的定时器定时,令十字路口的红绿灯交替点亮和熄灭,并且用LED数码管显示时间.用AT89C51的P1口作为输出口,控制12个发光二极管的点亮和熄灭,模拟交通灯管理。

在一个交通十字路口有一条主干道(东西方向),一条从干道(南北方向),,四个路口安装红,黄,蓝,灯各一盏.1。

设计一个十字路口的交通灯控制电路,要求南北方向(主干道)车道和东西方向(从干道)车道两条交叉道路上的车辆交替运行。

2。

在绿灯转为红灯时,要求黄灯先亮,才能变换运行车道。

3.东西方向、南北方向车道除了有红、黄、绿灯指示外,每一种灯亮的时间都用数码管显示器进行显示(采用倒计时的方法).主要内容:假设一个十字路口为东西南北走向。

初始状态为状态1,南北方向绿灯通车,东西方向红灯.经过过一段时间(25S)转换状态2,南北方向绿灯转亮黄灯,延时5S,东西方向仍然红灯。

再转换到状态3,东西方向绿灯通车,南北方向红灯。

过一段时间(25S)转换到状态4,东西方向绿灯转亮黄灯,延时5S,南北方向仍然红灯。

最后循环至南北绿灯,东西红灯。

在这些状态下,有时钟倒数计时。

设计步骤:1。

利用Proteus 7 仿真软件按下列要求绘制仿真电路图★用12个发光二极管分别表示东、西、南、北四个方向的红、黄、绿灯;★用P1口输出控制模拟交通灯的状态使响应的发光二极管点亮或熄灭;★用P0口分别接74LS245芯片的A口,74LS245的B口分别接七段数码管的八位引脚,P2。

0、P2。

1七段数码管的共阳极引脚;2.利用Keil uVision3编写程序代码,编译生成。

C51交通灯多任务控制系统设计

C51交通灯多任务控制系统设计

C51交通灯多任务控制系统设计摘要近几年来,城市化进程和社会的发展越来越快,解决城市的交通拥挤问题也就越来越紧迫。

本设计利用AT89S55系列单片机,通过RTX—51Tiny实时多任务操作系统来完成道路交通灯的控制系统。

该系统由七个任务组成:任务0:用于初始化单片机串口,同时启动所有其他的任务,然后停止本任务;任务1:用于整个系统的串行命令处理;任务2:用于系统时钟计算和控制;任务3:如果系统运行时间在设置的工作时间段之外,黄色灯闪烁,其余灯停止工作;任务4:如果系统运行时间在设置的工作时间段之内,控制交通灯的循环交替变化;任务5:查询行人通行按钮是否按下,如果按钮按下则向任务4发送信号,使主路交通灯变为红色,行人交通灯变为绿色;任务6:监视串口是否有ESC字符,如果有则向任务1发送一个信号,终止时间显示命令。

通过keil vision 3和proteus软件的联合仿真,本设计可实现白天交通灯受系统的控制,按照预定的时间间隔交替的变化,在晚上的时候,黄灯一直闪烁,其他的灯不工作,当行人通行按钮被按下时,主路的交通灯会变成红灯禁止车辆通过,行人交通灯会变成绿灯进入行人过马路状态的功能。

关键词:交通,单片机,多任务控制系统Multitasking C51 traffic control system designAbstractsIn recent years, the development of urbanization and the society more and more quickly, solve the urban traffic congestion problem is more and more urgent. This design using AT89S55 series microcontroller, through RTX - 51Tiny real-time multitasking operating system to complete the road traffic control system. This system consists of seven tasks: Task 0: used for initialization of MCU, all other serial startup of the task, then stop this task, Task 1: serial order processing, Task 2: used for calculation and control system clock, Task 3: if the system run in the setting time period, the work, the yellow lights flashing lights to stop working, Task 4:if the system is set to work within the period, the control of traffic lights of the alterations ;Task 5 :whether the button is pressed, if the button down to the task of the four transmitted signal, the main road traffic lights turned red and pedestrian traffic light turned green ;Task 6 :monitoring string mouth are esc characters, if there is a task sends a signal to one another, terminating commands. time showsThrough vision and proteus keil software combination of three simulation, this design can be realized by the traffic control system day, according to the predetermined time interval, the changes in the night alternate, yellow lights flashing, other lights have no job, when pedestrians button is pressed when the traffic light into red hills, a ban on vehicle traffic light through a pedestrian crossing into green into pedestrians function of state.Key words: traffic, SCM, multi-tasking control system目录1 绪论 -------------------------------------------------------------------------------------------- 1 1.1课题意义 ----------------------------------------------------------------------------------- 1 1.2单片机的应用分析 ----------------------------------------------------------------------- 21.3课题任务 ----------------------------------------------------------------------------------- 32 方案的设计和基本原理 --------------------------------------------------------------------- 5 2.1设计硬件图 -------------------------------------------------------------------------------- 5 2.2.核心芯片AT89S55单片机的说明 ---------------------------------------------------- 7 2.3 C51下的RTX-51实时多任务操作系统 ------------------------------------------- 102.3.1RTX-51实时多任务操作系统简介 --------------------------------------------- 102.3.2 RTX-51实时多任务操作系统种类--------------------------------------------- 112.3.3 RTX-51的系统函数--------------------------------------------------------------- 112.3.4 RTX-51的任务调度--------------------------------------------------------------- 133 软件设计-------------------------------------------------------------------------------------- 15 3.1任务0程序------------------------------------------------------------------------------ 15 3.2任务1程序------------------------------------------------------------------------------ 16 3.3任务2程序------------------------------------------------------------------------------ 17 3.4任务3程序------------------------------------------------------------------------------ 18 3.5任务4程序------------------------------------------------------------------------------ 19 3.6任务5程序------------------------------------------------------------------------------ 193.7任务6程序------------------------------------------------------------------------------ 204 调试和仿真----------------------------------------------------------------------------------- 21 4.1 keil u vision3软件 ---------------------------------------------------------------------- 214.1.1 keil u vision3简介 -------------------------------------------------------------------- 21 4.1.2 keil u vision3安装 -------------------------------------------------------------------- 21 4.1.3 keil u vision3的运行 ----------------------------------------------------------------- 22 4.2 Proteus软件------------------------------------------------------------------------------ 23 4.2.1Proteus软件简介 ---------------------------------------------------------------------- 23 4.2.2Proteus软件的运行 ------------------------------------------------------------------- 24 4.3 keil u vision 3与proteus联合仿真 -------------------------------------------------- 25 结论----------------------------------------------------------------------------------------- 30 致谢----------------------------------------------------------------- 错误!未定义书签。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于C51单片机的交通灯控制系统
1、实验方案论证:
进行十字路口的交通信号灯控制电路设计,画出电路原理图及实验电路图,进行软件编程、以及使用说明文档的建立等一整套工作任务。

进行十字路口的交通信号灯控制程序设计,提交一个符合上述功能要求的十字路口的交通信号灯控制系统设计。

2、控制流程分析:
对设计要求进行分析后可得出以下交通工作状态表:
3、硬件设计概要:
根据设计要求,可用6个LED灯分别模拟东西、南北的交通灯。

具体接法如下:AT89C51的P1口接LED灯,P1.0、P1.1、P1.2分别接东西方向红、绿、黄交通灯,P1.3、P1.4、P1.5分别接南北方向的红、绿、黄交通灯。

P1口和LED 灯之间要接限流保护电阻。

两位数码管段选接P2口,位选接P0口低两位,P0口低两位接上拉电阻使其可以输出高电平。

紧急情况按钮一端接地,另一端与外中断1引脚相连;恢复正常按钮一端接地,另一端与外中断0引脚相连。

三、原理图设计
1、LED显示部分电路设计:
把单片机AT89C51的P1口作为红黄绿灯显示部分,用6个LED灯分别模拟东西、南北的交通灯。

P1.0、P1.1、P1.2各通过一个300Ω的限流保护电阻接东西方向的红、绿、黄LED灯;P1.3、P1.4、P1.5各通过一个300Ω的限流保护电阻接南北方向的红、绿、黄LED灯。

LED灯的一端接电源,另一端经电阻接P1口,因此当P1口引脚输出低电平时LED灯发光,即此方案采取低电平驱动方式。

具体电路如下:
2、紧急情况处理电路设计:
紧急情况按钮一端接地,另一端与外中断1引脚相连;恢复正常按钮一端接地,另一端与外中断0引脚相连。

在程序设计时,我会将其设置为下降沿触发方式。

具体电路如下:
3、数字显示电路设计:
选用共阴极两位数码管。

两位数码管A~G引脚各通过一个300Ω的限流保护电阻分别接P2.0~P2.6,位选1引脚和2引脚分别接P0.0口低两位,P0口低两位接5kΩ的上拉电阻使其可以输出高电平。

4、其他部分电路:
XTAL1端和XTAL2端之间接一个12M Hz的晶振,再各接一个30pF的普通电容后接地;RST复位端一端经10uF的电解电容接+5V电源,一端经一个10K 的电阻接地。

具体电路如下:
4、系统电路总图:
四、程序设计:
1、定时器初值的计算:
由于要求定时时间相当精确,我用定时器T0进行定时。

根据公式可知若已知要求的定时时间为t,则定时器的初值为x(其中fosc=12M Hz):
需要定时器的定时时间为50ms,根据公式计算得出X=15536,因此定时器初值的低位TL0=(0B0H),高位TH0=(3CH)。

2、程序流程图:
2.1主程序流程
主程序主要是对单片机进行初始化。

初始化首先要开放总中断、定时器T0中断以及外部中断0和外部中断1。

其次是设置中断优先级,把外中断0设置为高优先级,外中断1设置为低优先级。

再次是给定时器T0装顶初值,然后后是启动定时器,是使定时器开始定时。

最后是等待中断。

开始
开放总中断、定时器T0中断以及外部中断
设置中断优先级
装定时器初值,启动定时器
循环动态显示
紧急情况中断处理包括两部分,第一部分是出现紧急情况可以手动使东西、南北方向红灯全亮,而且直到紧急状况解除后才能恢复正常通车。

这就要求紧急状况解除前不能退出外中断1处理程序,因此要在外中断1处理程序处设置一无限循环。

第二部分是紧急状况解除。

为了使外中断1处理程序退出无限循环,可用中断嵌套使机器转去执行外中断0处理程序,而外中断0处理程序修改了寄存器R2的值,中断返回后由于寄存器R2的值的改变使外中断1处理程序跳循环。

2.2.1外中断1处理程序(低优先级)
2.2.2外中断0处理程序(高优先级)
Y N
Y
3、程序源代码:
ORG 0000H
AJMP START
ORG 0003H ;外中断0入口
AJMP SERV0
ORG 000BH ;外中断1入口
AJMP SERV1
ORG 0013H ;定时器中断入口
AJMP SERV2
ORG 0030H
START:MOV IE,#87H
MOV IP,#01H ;设置中断优先级
MOV TMOD,#01H
MOV TCON,#05H
MOV TH0,#3CH
MOV TL0,#0B0H ;装定时器初值
MOV DPTR,#TAB ;装表首地址
MOV P1,#0F6H
MOV R0,#20
MOV R5,#00H
MOV R6,#00H
SETB TR0 ;启动定时器
LOOP1:MOV P0,#02H ;循环动态显示,由10秒开始倒计时MOV A,R6
MOVC A,@A+DPTR
MOV P2,A
ACALL D10MS
MOV P0,#01H
MOV A,R5
MOVC A,@A+DPTR
MOV P2,A
ACALL D10MS
AJMP LOOP1
SERV0:MOV R2,#0FFH ;正常状态恢复程序,使R0的值不为0 RETI
SERV1:DJNZ R0,NEXT ;未到1秒,则转到NEXT
CJNE R5,#01,DHE0
AJMP DHE3
DHE0: CJNE R5,#00H,DHE1
CJNE R6,#00H,DHE2
MOV R5,#00H
MOV R6,#01H
MOV P1,#0F5H
AJMP OUT0
DHE1: DEC R5 ;减1秒
AJMP OUT0
DHE2: MOV R6,#00H
MOV R5,#09H
OUT0: MOV R0,#20
RETI
DHE3: MOV P0,#00H
MOV P2,#3FH ;显示为0
MOV A,P1
MOV R1,#05H
JNB ACC.0,CHE0 ;东西方向红灯亮,则转到CHE0 YELL0:SETB P1.0
SETB P1.1 ;东西方向绿灯灭
CLR P1.2
ACALL DMS
SETB P1.2
ACALL DMS
DJNZ R1,YELL0 ;东西方向黄灯闪烁5次
MOV P1,#0EEH ;东西方向红灯亮,南北方向绿灯亮
SJMP NEXT1
CHE0: JNB ACC.3,CHE1
YELL1:SETB P1.3
SETB P1.4 ;南北方向绿灯灭
CLR P1.5
ACALL DMS
SETB P1.5
ACALL DMS
DJNZ R1,YELL1 ;南北方向黄灯闪烁5次
CHE1: MOV P1,#0F5H ;南北方向红灯亮,东西方向绿灯亮
NEXT1:MOV R0,#20
MOV R5,#00H
MOV R6,#01H ;重置显示为10秒
NEXT: MOV TH0,#3CH ;重装定时器初值
MOV TL0,#0B0H
RETI
SERV2:MOV P0,#00H
MOV P2,#3FH ;显示为0
MOV R5,#00H
MOV R6,#00H
MOV R2,#00H ;紧急状况服务程序,使R2的值为0
MOV P1,#0F6H
LOOP3:CJNE R2,#00H,OUT1 ;R2的值为0,则无限循环,直到执行SERV0状MOV R3,#02H ; 态恢复程序,使R0的值不为0才返回
DJNZ R3,LOOP3
OUT1: RETI
DMS: MOV 32H,#4 ;延时子程序,延时0.4秒
DL0: MOV 31H,#200
DL1: MOV 30H,#250
DL2: DJNZ 30H,DL2
DJNZ 31H,DL1
DJNZ 32H,DL0
RET
D10MS:MOV 33H,#50 ;延时子程序,延时10毫秒
DL3: MOV 34H,#100
DL4: DJNZ 34H,DL4
DJNZ 33H,DL3
RET
TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
END
五、仿真结果与分析
在PROTEUS软件仿真中的结果如下:
1、初始状态
2、东西路口的绿灯亮,南北路口的红灯亮
4、东西路口红灯亮,南北路口的绿灯亮
由以上仿真结果可以看出,电路图和源程序设计完全满足设计要求。

六、课程设计总结与体会
通过这次课程设计我巩固和加深课堂所学知识;掌握一般软硬件的设计方法和查询、运用资料的能力;掌握通过定时器进行定时的基本方法、中断控制的原理和方法以及LED控制的方法。

这次课程设计,我将课本上的理论知识和实际的应用有机的结合起来,提高分析和解决问题的实际能力,通过对汇编语言程序代码的设计、编写、修改以提高自己实际编程能力。

总的来说,这次课程设计的难度不算大,整个设计、调试任务都有我独立完成。

而在PROTEUS软件仿真中的结果可以看到我的设计完全符合要求。

在设计过程中我还认识到,遇到问题时应回到书本,查找实际问题所需的理论知识,将理论和实际结合起来。

这样,在解决问题的同时还能提高我对理论知识的理解。

相关文档
最新文档