单片机实验三(急救车及交通灯)
单片机课程设计急救车优先的交通灯控制系统

《急救车优先的交通灯控制系统》课程设计说明书专业班级:12级电信(4)班姓名:李玲吴继亮谢彩云学号:080212155 080212149 080212178指导老师:刘娟设计时间:2014年6月11 日物理与电气工程学院二零一四年六月十一日内容摘要请设计一个交通灯控制电路,并且编写相应的软件,完成交通灯的管理任务。
<1> 根据交通灯控制变化规律。
假设一个十字路口为东西南北走向。
初始状态0为东西红灯,南北红灯。
然后转状态1南北绿灯通车,东西红灯。
过15秒钟转状态2,南北绿灯转亮黄灯闪烁,闪烁5秒,东西仍然红灯。
再转状态3,东西绿灯通车,南北红灯。
过15秒钟转状态4,东西绿灯转亮黄灯闪烁,闪烁5秒,南北仍然红灯。
最后循环至状态1。
<2> 以按键为中断申请,表示有急救车通过,所有的交通信号灯全红10秒钟。
交通灯控制系统,可由多种电路来构成,采用单片机控制,可提高电路的可靠性与稳定性,硬件电路比较简单,主要用软件来控制,控制方式灵活多样,能满足不同情况的控制,可利用中断等方式通过程序来方便的实现调时。
关键字:课程设计单片机急救车流程图目录1 课程设计意义和要求 (2)1.1课程设计意义 (2)1.2课程设计要求 (3)2 理论设计 (3)2.1总体设计 (5)2.2软件设计 (6)2.3硬件设计 (6)3 调试与仿真 (6)4 心得体会 (10)5 参考文献 (10)附录源程序代码 (11)急救车优先的交通灯控制系统1 课程设计意义和要求:1.1课程设计意义大学本科学生动手能力的培养和提高是大学本科教育的一个重要内容,《单片机原理及应用》是一门应用性较强的课程。
如何让学生在学好基础知识的同时,迅速掌握应用技术,实验与课程设计环节起着非常重要的作用。
本课程设计的意义,是让学生通过课程设计,首先建立起单片机应用系统的概念,根据实际的系统设计要求,掌握初步的单片机系统设计方法,从硬件系统和软件系统设计两个方面得到实际的提高,为今后的毕业设计打下良好的基础。
单片机课程设计——有急救车的交通信号灯

目录0.前言 (2)1 课程设计的目的和要求 (3)1.1 课程设计的目的 (3)1.2 课程设计的基本要求 (3)2 总体设计 (4)2.1 基本工作原理 (4)2.2 硬件总体设计 (4)2.3 软件总体设计 (5)2.3.1 存储单元的分配、标志位的定义 (5)2.3.2主程序框图及清单 (6)3 硬件设计 (10)4 软件设计 (12)5 结束语 (18)6 参考文献 (20)0.前言随着计算机技术的高速发展,作为微型计算机的一个重要分支,单片机自20世纪70年代问世以来在工业控制,机电一体化,家电等领域的应用越来越广泛,正朝着高性能和多品种方向发展,单片机的作用越来越大。
单片机应用在交通信号控制中,作为主要的控制系统,需要把单片机的硬件结构和软件结构有机的集合起来,设计硬件电路,编制程序以及最后进行调试,验证设计内容。
正是由于单片机种种的优点,应用到十字路口上,使得交通信号能有条不紊的工作,疏导交通车辆,很大程度的提高了交通安全。
本设计中,采用80C51单片机,红、绿、黄LED灯及数码显示管,进行十字路口交通信号灯的模拟设计以及当有急救车通过时,信号灯东西南北方向显示为红灯,持续时间为10S。
1 课程设计的目的和要求1.1 课程设计的目的(1)掌握用定时器延时或软件延时进行定时控制的方法。
(2)掌握外部中断技术的基本使用方法。
(3)掌握中断处理程序的编程方法1.2 课程设计的基本要求(1)正常情况下东西与南北两个方向轮流点亮红、绿灯信号,每次持续时间30S,中间有2S的黄灯过度。
(2)控制六个发光二极管亮灭,模拟交通灯管理。
(3)当有急救车到达时,两个方向上的红灯亮,以便让急救车通过,假定急救车通过路口的时间为10秒,急救车通过后,交通灯恢复中断前的状态。
2 总体设计2.1 基本工作原理首先必须了解交通路灯的亮灭规律。
本题目需要用到实验箱上八个发光二极管中的六个,即红、黄、绿各两个。
不妨将L1(红)、L2(绿)、L3(黄)做为东西方向的指示灯,将L5(红)、L6(绿)、L7(黄)做为南北方向的指示灯。
单片机__急救车优先通过交通灯课程设计.doc

《急救车优先的交通灯控制系统》课程设计说明书专业班级:10级自动化(3)班姓名:周玉玲李旭王志繁胡浩远学号:080310167 080310160080310133 100210049指导老师:刘娟设计时间:2012年12月21日物理与电气工程学院二零一二年十二月二十一日内容摘要请设计一个交通灯控制电路,并且编写相应的软件,完成交通灯的管理任务。
1、根据交通灯控制变化规律。
假设一个十字路口为东西南北走向。
初始状态0为东西红灯,南北红灯。
然后转状态1南北绿灯通车,东西红灯。
过15秒钟转状态2,南北绿灯转亮黄灯闪烁,延时几秒,东西仍然红灯。
再转状态3,东西绿灯通车,南北红灯。
过15秒钟转状态4,东西绿灯转亮黄灯闪烁,延时几秒,南北仍然红灯。
最后循环至状态1。
2、以按键为中断申请,表示有急救车通过,所有的交通信号灯全红10秒钟。
交通灯控制系统,可由多种电路来构成,采用单片机控制,可提高电路的可靠性与稳定性,硬件电路比较简单,主要用软件来控制,控制方式灵活多样,能满足不同情况的控制,可利用中断等方式通过程序来方便的实现调时。
关键字:课程设计单片机急救车流程图状态代码目录一、课程设计意义和要求 (3)1、课程设计意义 (3)2、课程设计要求 (3)二、理论设计 (4)1、总体设计 (4)2、软件设计 (4)2.1、电路原理逻辑图 (7)2.2、程序流程图 (8)三、硬件设计描述 (9)1、系统方框图 (9)2、电路原理图 (10)3、单片机简介 (11)4、单片机的学习 (12)5、单片机的应用领域 (13)四、调试与仿真 (15)五、心得体会 (18)六、参考文献 (20)附录源程序代码 (21)急救车优先的交通灯控制系统设计一、课程设计意义和要求:1、课程设计意义大学本科学生动手能力的培养和提高是大学本科教育的一个重要内容,《单片机原理及应用》是一门应用性较强的课程。
如何让学生在学好基础知识的同时,迅速掌握应用技术,实验与课程设计环节起着非常重要的作用。
基于单片机有急救车通过的交通灯设计

本科毕业设计(论文)题目名称:单片机模式下急救车与交通灯设计学生姓名: 高丽学院: 理学院专业名称:电子信息科学与技术指导教师: 张建国二〇〇八年六月日单片机模式下急救车与交通灯设计摘要随着社会经济的发展,城市交通问题越来越引起人们的关注。
人、车、路三者关系的协调,已成为交通管理部门需要解决的重要问题之一。
尤其是遇到紧急情况,比如有急救车通过时,就必须保持道路的畅通,确保急救车顺利通过。
为保证交通安全,防止交通阻塞,使城市交通井然有序,交通信号灯在大多数城市得到了广泛应用。
本课题提出了一种单片机模式下急救车与交通灯的设计。
假设一个十字路口为东西南北走向。
初始状态0为东西红灯,南北红灯,然后状态1南北绿灯通车,东西红灯。
过一段时间转状态2,南北绿灯闪几次转亮黄灯,延时几秒,东西仍然红灯。
再转状态3,东西绿灯通车,南北红灯。
过一段时间转状态4,东西绿灯闪几次转亮黄灯,延时几秒,南北仍然红灯。
最后循环至状态1。
所设计的交通灯管理系统要求满足急救车优先通过的要求。
有急救车到达时,两个方向交通灯全红,以便让急救车通过。
假定急救车通过路口的时间为10秒,急救车通过后,交通灯恢复中断前的状态。
关键词:单片机,交通灯,急救车,外部中断The design of emergency vehicles and traffic lights underSingle-chip processor modeAbstractAlong with the social economy development, the municipal transportation question is more and more arousing people's interest. The human, the vehicle and the road, the three relations of coordination, have become one of important questions which the traffic control department needs to solve. Encounters the emergency case in particular, for instance when emergency vehicles pass, it is imperative to maintain the path unimpeded, guarantee the emergency car to pass smoothly. In order to guarantee the traffic safety, prevented the traffic jam, make the municipal transportation to be systematic, the traffic light control obtained the widespread application in the majority cities.This topic proposed the design of emergency vehicles and traffic lights under Single-chip processor mode. Supposed that the intersection for East, West, South and North trend. The original state 0 is East and West red light, North and South red light, then the state 1 North and South green light is open to traffic, East and West red light. For a period of time to the state 2, North and South green light flashes several times then turns to yellow light for a few seconds delay, East and West is still red light. Again transfers state 3 East and West green light is open to traffic, North and South red light. For a period of time to the state 4, East and West green light flashes several times then turns to yellow light for a few seconds delay, North and South is still red light. Finally circulates to the state 1.Designed the traffic light management system management system requests satisfies the emergency car first through. When the emergency vehicle arrives, two directions of traffic lights are entire red, in order to let the emergency vehicle pass. Supposes the emergency vehicle through the street intersection time is 10 seconds, after the emergency vehicle passed, the traffic light restores the state before the interrupt.Keywords:single-chip processor, traffic lights, emergency vehicles, external interrupt目录1绪论 (1)1.1引言 (1)1.2课题研究的发展背景及意义 (2)1.2.1交通信号灯控制的发展概述 (2)1.2.2课题研究的意义 (3)1.3本课题要研究的内容和解决的问题 (4)1.4论文的组织结构 (5)2交通系统的特性 (5)3交通灯控制需求分析 (6)3.1正常时序控制 (6)3.2急救车通过控制 (7)4系统的安装和启动 (7)5系统的硬件设计 (8)5.1总体设计系统总框图 (8)5.2实验系统简介 (8)5.2.1 伟福仿真器系统概述 (9)5.2.2 在Keil的µV2集成环境下使用伟福仿真器 (10)5.2.3 开发环境简介 (11)5.2.4 LED电平显示电路 (17)5.2.5单脉冲电路 (17)5.3各模块设计 (18)5.3.1 EX51B仿真板 (18)5.3.2 交通灯显示模块 (19)5.3.3 急救车通过模块 (20)5.4实验线路设计 (20)6系统的软件设计 (21)6.1 系统实验软件设置 (21)6.2 系统工作原理 (21)6.3 系统流程图 (22)7系统程序与结果分析 (23)7.1系统程序 (23)7.2结果分析 (32)8总结和展望 (33)8.1 总结 (33)8.2 展望 (34)参考文献 (35)致谢 (36)1绪论1.1引言交通(Traffic)在人们的日常生活中,几乎与每个人都息息相关。
有急救车的交通灯控制实验

辽宁工程技术大学实验报告实验项目:微机原理与接口技术实验中心(室)名称:微机原理与应用实验室实验名称:有急救车的交通灯控制实验院(系、部):电气与控制工程学院专业班级:测控05-1班姓名:学号:2007年12月12日有急救车的交通灯控制实验一.实验目的1.学习掌握多个接口芯片综合应用方法。
2.学习中断技术的基本使用方法。
3.学习模拟交通灯控制的实现方法。
4.学习控制程序的编程方法。
二.实验条件和要求1.用业余时间进行调研,了解交通灯燃灭的规律,并写出调研报告,并在此基础上设计出硬件电路原理图。
2.在设计硬件电路时,要充分利用实验仪上的接口芯片,如8051单片机、8255并行接口芯片、发光二极管(红、黄、绿各两个)。
设计或利用接口仪上已有的单脉冲发生器,但脉冲发生器产生的负脉冲来产生中断,进行模拟有急救车通过。
3.编制相应的软件应用程序,并运行调试。
4.写出规的实验报告。
实验报告用A4纸写出。
三.实验报告格式1. 实验题目2.实验要求3. 调研报告4. 电路原理逻辑框图5. 程序流程图6. 应用程序7. 总结、分析、体会通过对新区十字路交通岗路口交通灯变化规律的调研,我看到了交通灯变化的现象,并从中找到了变化的规律,知道了交通灯在现代交通运输中的重要作用。
它是交通安全行驶的指示灯,为减少交通事故的发生,为人们的安全生活提供了保障。
本路口的交通灯功能还不够完善,如车辆转向等,但已经符合本设计的要求,能实现急救车通过等紧急情况。
经总结此路口的交通灯亮灭规律表如下:交通灯亮灭规律表交通灯控制码表调研时间:2007年12月12日调研地点:新区十字路交通岗调查任务:宏宇—市公安局交警大队警员调研人员:義葵、调研容:该路口东西方向和南北方向各有交通灯三盏,分别为红色、绿色、黄色。
经过我们的观察,其亮灭变化规律为:1.东西南北两向起始状态为全红。
-----延续10秒2.东西向绿灯亮,南北向红灯亮。
-----延续30秒3.东西向绿灯灭,黄灯闪,南北向红灯亮。
单片机交通灯实验报告

单片机交通灯实验报告简介本实验通过使用单片机设计并实现一个交通灯控制系统,模拟城市道路上的交通信号灯。
实验过程中,我们通过编程控制不同灯的亮灭状态,实现交通灯的循环变换,以此来模拟车辆和行人的行进。
实验材料•单片机•LED灯•电阻•连线•电源实验过程及结果1. 电路连接首先,我们根据实验需要将单片机和LED灯等材料进行连接。
具体连接方式如下:- 将电阻连接到单片机的IO口上,起到限流的作用。
- 将LED灯连接到电阻的另一端。
- 将单片机通过连线与电源进行连接。
2. 程序设计接下来,我们需要编写程序来实现交通灯的循环变换。
使用C语言编程,通过控制IO口的高低电平来控制LED灯的亮灭状态。
以下是程序的主要逻辑:#include <reg52.h>sbit redLed = P1^0; // 红灯sbit yellowLed = P1^1; // 黄灯sbit greenLed = P1^2; // 绿灯void delay(unsigned int t){while(t--);}void main(){while(1){// 红灯亮,其他灯灭redLed = 0;yellowLed = 1;greenLed = 1;delay(50000);// 红灯亮黄灯亮,绿灯灭redLed = 0;yellowLed = 0;greenLed = 1;delay(20000);// 绿灯亮,其他灯灭redLed = 1;yellowLed = 1;greenLed = 0;delay(50000);// 黄灯亮,其他灯灭redLed = 1;yellowLed = 0;greenLed = 1;delay(20000);}}3. 实验结果与分析通过实验,我们观察到LED灯按照我们设计的程序循环地变换亮灭状态,从而实现了交通灯的模拟效果。
红灯、黄灯、绿灯在规定的时间间隔内依次亮起,并在该时间间隔结束后熄灭。
单片机实训报告交通灯

一、实训背景与目的随着城市化进程的加快,交通流量日益增大,传统的交通灯控制系统已经无法满足日益复杂的交通需求。
为了提高交通效率,减少交通拥堵,本实训项目旨在设计并实现一套基于单片机的智能交通灯控制系统。
通过本实训,学生可以深入了解单片机原理,掌握单片机编程与调试技巧,同时锻炼动手实践能力和团队协作精神。
二、系统设计1. 系统组成本系统主要由以下模块组成:单片机模块:采用AT89C52单片机作为核心控制单元,负责接收传感器信号、处理数据、控制交通灯状态等。
传感器模块:包括红外传感器、地磁传感器等,用于检测车辆和行人,实时获取交通信息。
执行模块:包括LED灯、继电器等,用于驱动交通灯和信号灯。
显示模块:采用LCD显示屏,用于显示交通灯状态、倒计时等信息。
电源模块:为系统提供稳定电源。
2. 工作原理系统工作原理如下:(1)单片机初始化,设置各模块参数。
(2)单片机通过传感器模块检测交通情况,如车辆和行人数量。
(3)单片机根据检测到的交通情况,控制交通灯和信号灯的亮灯状态。
(4)LCD显示屏显示交通灯状态和倒计时信息。
(5)当系统检测到紧急情况时,如行人过马路,系统自动切换到紧急模式,确保行人安全。
三、硬件设计1. 单片机模块选用AT89C52单片机作为核心控制单元,具有以下特点:内置8K字节闪存,可存储程序和数据。
内置8位定时器/计数器,可进行定时或计数操作。
内置串行通信接口,可进行数据通信。
2. 传感器模块红外传感器:用于检测车辆和行人,实现自动控制。
地磁传感器:用于检测车辆行驶方向,实现左转和直行控制。
3. 执行模块LED灯:用于显示交通灯状态。
继电器:用于驱动信号灯。
4. 显示模块采用LCD显示屏,用于显示交通灯状态、倒计时等信息。
5. 电源模块采用DC 12V电源,为系统提供稳定电源。
四、软件设计1. 编程语言采用C语言进行编程,具有以下优点:语法简单,易于理解。
可移植性好,可在不同平台上运行。
51单片机交通灯(加急救车)

51单片机控制交通灯一、实现功能:1、先南北红灯亮,东西绿灯亮。
南北红灯亮维持25秒,在南北红灯亮的同时东西绿灯也亮,并维持20秒;到20秒时,东西绿灯闪亮,闪亮3秒后熄灭。
在东西绿灯熄灭时,东西黄灯亮,并维持2秒。
到2秒时,东西黄灯熄灭,东西红灯亮,同时,南北红灯熄灭,绿灯亮,东西红灯亮维持30秒。
南北绿灯亮维持25秒,然后闪亮3秒后熄灭。
同时南北黄灯亮,维持2秒后熄灭,这时南北红灯亮,东西绿灯亮。
周而复始。
2、用一个按键模拟急救车到达。
急救车到达路口时,四个方向的红灯全亮,10秒钟后恢复正常显示。
3、一辆急救车正在过路口时(即四个方向全红灯10秒倒计时未结束),又来了一辆急救车,重新从10秒开始倒计时。
4、急救车过去之后(即10秒倒计时结束),路灯状态要继续急救车到达之前的状态往下运行。
5、数码管显示绿灯变红灯、红灯变绿灯以及急救车10秒钟的倒计时。
6、急救车从路口过的时候,蜂鸣器响1s停1s的循环报警。
二、proteus仿真电路图注:此图仅作为仿真使用。
实际焊接电路时,由于单片机的驱动能力较弱,所以数码管的位选、LED的控制最好加上三极管进行电流放大,否则即使能实现功能,但是LED和数码管的发光的亮度也不强。
三、C语言程序程序#include <reg51.h>#define uchar unsigned char#define uint unsigned int#define duan P0#define wei P2code uchar tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0xbf}; uchar buff[8] = {10,10,10,10,10,10,10,10};uchar weizhi = 0;uchar alarm = 0;uchar bk_TH1 = 0;uchar bk_TL1 = 0;uchar bk_cnt = 0;uchar bk_cnt_time = 0;uchar cnt_time = 0;uchar cnt = 0;uchar cnt_flash = 0;bit cnt_finish = 0;bit LED = 0;bit beef_flag = 1;sbit Er = P1^0; //东西—红灯sbit Eg = P1^1; //东西—绿灯sbit Ey = P1^2; //东西—黄灯sbit Sr = P1^3; //南北—红灯sbit Sg = P1^4; //南北—绿灯sbit Sy = P1^5; //南北—黄灯sbit beef = P1^6; //蜂鸣器void display(void);void main(void){uchar time = 0;TMOD |= 0x11;TH0 = (65536-2000)/256;TL0 = (65536-2000)%256;TH1 = (65536-50000)/256;TL1 = (65536-50000)%256;ET1 = 1;ET0 = 1;INT0 = 1;EX0 = 1;IP |= 0x02;EA = 1;TR0 = 1;TR1 = 1;Sr = 0;Sg = 0;Sy = 0;Er = 0;Eg = 0;Ey = 0;beef = 0;buff[0] = 11;buff[1] = 11;buff[2] = 11;buff[3] = 11;buff[4] = 11;buff[5] = 11;buff[6] = 10;buff[7] = 10;while(1){while((cnt<20)&&(alarm == 0)){Sr = 1;Sg = 0;Sy = 0;Er = 0;Eg = 1;Ey = 0;time = (25-cnt);buff[7] = time%10;buff[6] = time/10;}while((cnt<23)&&(alarm == 0)){Sr = 1;Sg = 0;Sy = 0;Er = 0;Eg = LED;Ey = 0;time = (25-cnt);buff[7] = time%10;buff[6] = time/10;}while((cnt<25)&&(alarm == 0)) {Sr = 1;Sg = 0;Sy = 0;Er = 0;Eg = 0;Ey = 1;time = (25-cnt);buff[7] = time%10;buff[6] = time/10;}while((cnt<50)&&(alarm == 0)) {Sr = 0;Sg = 1;Sy = 0;Er = 1;Eg = 0;Ey = 0;time = (55-cnt);buff[7] = time%10;buff[6] = time/10;}while((cnt<53)&&(alarm == 0)) {Sr = 0;Sg = LED;Sy = 0;Er = 1;Eg = 0;Ey = 0;time = (55-cnt);buff[7] = time%10;buff[6] = time/10;}while((cnt_finish != 1)&&(alarm == 0)){Sr = 0;Sg = 0;Sy = 1;Er = 1;Eg = 0;Ey = 0;time = (55-cnt);buff[7] = time%10;buff[6] = time/10;}cnt_finish = 0;while(alarm == 1){Er = 1;Eg = 0;Ey = 0;Sr = 1;Sg = 0;Sy = 0;time = (10-cnt);buff[7] = time%10;buff[6] = time/10;if(cnt == 10){TR1 = 0;TH1 = bk_TH1;TL1 = bk_TL1;cnt = bk_cnt;cnt_time = bk_cnt_time;TR1 = 1;alarm = 0;}beef = beef_flag;}beef = 0;}}void int0(void) interrupt 0{TR1 = 0;if(alarm == 0){bk_TH1 = TH1;bk_TL1 = TL1;bk_cnt = cnt;bk_cnt_time = cnt_time;}TH1 = (65536-50000)/256;TL1 = (65536-50000)%256;cnt = 0;cnt_time = 0;alarm = 1;TR1 = 1;}void timer0(void) interrupt 1 {TH0 = (65536-2000)/256;TL0 = (65536-2000)%256;display();}void timer1(void) interrupt 3 {TH1 = (65536-50000)/256;TL1 = (65536-50000)%256;if(++cnt_time == 20){cnt_time = 0;cnt++;beef_flag = ~beef_flag;}if(++cnt_flash == 4){cnt_flash = 0;LED = ~LED;}if(cnt == 55){cnt = 0;cnt_finish = 1;}}void display(void){duan = 0xff;wei = (1<<weizhi);duan = tab[buff[weizhi]];if(++weizhi == 8){weizhi = 0;}}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机技术与应用
实验报告
实验名称:外部中断实验(急救车与交通灯)班级:11062811
学号:11061118
姓名:吕琳涛
指导老师:谷雨
2013年5月20日
1. 实验要求
由以74LS273作为输出口,控制4个双色LED灯(可发红,绿,黄光),模拟交通灯管理,并允许急救车优先通过的要求。
有急救车到达时,两向交通信号为全红,以便让急救车通过。
假定急救车通过路口时间为10秒,急救车通过后,交通灯恢复中断前状态。
本实验以按键为中断申请,表示有急救车通过。
2. 实验目的
1.学习外部中断技术的基本使用方法。
2.学习中断处理程序的编程方法。
3. 程序说明:
在本次实验中,我们可以确定外部中断的作用是用于有救护车行驶过来时对程序的进行的简单的控制。
对于正常的红绿灯的亮灭我们可以参考第一个实验中流水灯的设计理念。
综上所述我们这一次的实验就是流水灯与外部中断的结合。
通过对七种情况的罗列
1 0 0 1 0 1 1 0 南北绿,东西红
0 1 1 0 1 0 0 1 南北红,东西绿
1 0 0 1 1 1 1 1 只亮东西红
0 1 1 0 1 1 1 1 只亮南北红
0 0 0 0 0 1 1 0 南北黄,东西红
0 0 0 0 1 0 0 1 南北红,东西黄
0 0 0 0 1 1 1 1 全红
我们可以利用XBYTE[0xf200]这个函数对这几种情况进行读取与显
示,在不同情况进行显示的过程中我们用以前的delay函数进行时间上的规划从而达到依次显示的效果。
0x0f 全红XBYTE[0xf200]=0x0f;
0x96 南北绿,东西红XBYTE[0xf200]=0x96;
0x9f 只亮东西红XBYTE[0xf200]=0x9f;
0x06 南北黄,东西红XBYTE[0xf200]=0x06;
0x69 南北红,东西绿XBYTE[0xf200]=0x69;
0x6f 只亮南北红XBYTE[0xf200]=0x6f;
0x09 南北红,东西黄XBYTE[0xf200]=0x09;
在具体的实验代码编写过程中,我们会用到EA=1;EX0=1;IT0=1;用于设定外部中断0为跳变沿触发方式,默认为电平触发方式。
interrupt 0函数是处理有救护车驶过时的情况。
至此,程序编写完成,放入软件中进行编译和下载。
2. 上机调试说明
将程序编写成功后,我们就上机进行调试。
下载成功后,拨动k7这个拨动开关形成外部中断的信号,在单片机的实验板上我们可以清楚地看到随着时间灯南北东西的一对一对的红黄绿的交替闪烁。
然后以按键开光来表示救护车的通过,然后看见所有的灯都变成红色。
至此实验仿真过程结束。
3. 写出源程序清单及执行结果。
源程序:
#include <reg52.h>
#include<absacc.h> //可使用其中定义的宏来访问绝对地址
#include <intrins.h>
#define uchar unsigned char·
#define uint unsigned int
void delay(uint xms)
{
unsigned int i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
void main()
{
EA=1;
EX0=1;
IT0=1; //设定外部中断0为跳变沿触发方式,默认为电平触发方式IP=0x01; //外部中断0设置为高优先级中断
XBYTE[0xf200]=0x0f; //单片机端口P1输出0xf200绝对物理地址,全红
delay(5000); //延时5s
while(1)
{
XBYTE[0xf200]=0x96; //南北绿,东西红
delay(5000); //持续5s,之后为绿灯闪烁(绿转黄)XBYTE[0xf200]=0x9f;
delay(1000); //闪烁频率为1s
XBYTE[0xf200]=0x96;
delay(1000);
XBYTE[0xf200]=0x9f;
delay(1000);
XBYTE[0xf200]=0x96;
delay(1000);
XBYTE[0xf200]=0x9f;
delay(1000);
XBYTE[0xf200]=0x06; //黄灯持续5s
delay(5000);
XBYTE[0xf200]=0x69; //南北红,东西绿,持续5s
delay(5000);
XBYTE[0xf200]=0x6f;
delay(1000); //闪烁频率为1s
XBYTE[0xf200]=0x69;
delay(1000);
XBYTE[0xf200]=0x6f;
delay(1000);
XBYTE[0xf200]=0x69;
delay(1000);
XBYTE[0xf200]=0x6f;
delay(1000);
XBYTE[0xf200]=0x09;
delay(5000);
}
}
void exter0() interrupt 0 //中断服务程序,中断为外部中断0
{
XBYTE[0xf200]=0x0f;
delay(10000); //全红10s,急救车通过
}
4. 心得体会
本次实验中我们做的是一个交通灯的控制与救护车通过时的一个中断问题。
我想这次实验是上两次实验的结合。
然后我想对于一些看似很复杂的问题,如果我们可以将其分解为一些我们学过的会做的问题的话,问题就会迎刃而解。