基于单片机8255交通灯
8255控制交通灯实验总结
8255控制交通灯实验总结
8255控制
交通灯实验总结
一、实验目的
1. 掌握8255控制器的控制原理和编程过程;
2. 学习8255控制器的编程、基本操作;
3. 通过实验指导的方式,掌握控制交通灯的基本原理;
4. 通过编程,实现交通灯控制系统的实现。
二、实验过程
1. 首先要对8255的编程进行编程,这就需要根据8255的控制字节和模式的要求进行操作;
2. 然后用它来控制交通灯,这需要根据交通灯的运行原理和总线接线的方式来编程控制它;
3. 然后对所做程序进行测试,以验证其控制的可靠性。
三、实验结果
通过本次实验,我们学会了怎样编程控制8255,并且学会了8255控制交通灯的方式,本次实验编程操作也顺利完成,经测试验证,程序实现的正确,交通灯可以根据8255控制运行。
四、总结
本次实验主要是让我们学习掌握8255模块的操作,实现8255控制交通灯的运行,实验结果证明,程序实现正确,交通灯可以根据8255控制运行。
今后,如果能继续拓展,可以把8255用来控制更复
杂的系统,这将有助于我们深入了解和掌握8255控制器的操作技术。
基于单片机8255交通灯
基于单片机8255交通灯————————————————————————————————作者:————————————————————————————————日期:8255控制交通灯一、实验目的了解8255芯片的结构及编程方法,学习模拟交通灯控制的实现方法。
二、实验内容用8255做输出口,控制十二个发光二极管燃灭,模拟交通灯管理.三、实验说明1。
因为本实验是交通灯控制实验,所以要先了解实际交通灯的变化情况和规律。
假设一个十字路口为东西南北走向。
初始状态0为东西红灯,南北红灯。
然后转状态1东西绿灯通车,南北红灯。
过一段时间转状态2,东西绿灯灭,黄灯闪烁几次,南北仍然红灯。
再转状态3,南北绿灯通车,东西红灯.过一段时间转状态 4,南北绿灯灭,闪几次黄灯,延时几秒,东西仍然红灯.最后循环至状态1.四、实验程序框图五、实验接线图六、实验步骤①8255 PA0—PA7、PB0—PB3依次接发光二极管L1—L12.②以连续方式从0BB0H开始执行程序,初始态为四个路口的红灯全亮之后,东西路口的绿灯亮南北路口的红灯亮,东西路口方向通车.延时一段时间后东西路口的绿灯熄灭,黄灯开始闪耀。
闪耀若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北路口方向开始通车,延时一段时间后,南北路口的绿灯熄灭,黄灯开始闪耀。
闪耀若干次后,再切换到东西路口方向,之后重复以上过程。
一摘要:本系统采用单片机、键盘、LED显示、交通灯演示系统组成.设计一个用于十字路口的车辆及行人的交通管理,系统包括左拐、右拐、及行基本的交通灯的功能,计时牌显示路口通行转换剩余时间,在出现紧急情况时可由交通手动实现全路口车辆禁行而行人通行状态。
另外,在特种车辆如119、120通过路口时,系统可自动转为特种车辆放行,其他车辆禁止通行的状态,15s后系统自动恢复正常管理。
其他还有 84s与60s通行管理转换等功能。
采用数码管与点阵LED相结合的显示方法,既要求倒计时数字输出,又要求有状态灯输出等。
实验九 可编程接口芯片8255应用(交通灯控制)
实验九可编程接口芯片8255应用(交通灯控制)双击自动滚屏发布者:admin 发布时间:2005-9-8 阅读:2151次一、实验目的1、学习扩展简单I/O接口的方法以及双色灯的使用。
2、进一步学习微处理器的编程技术。
二、实验要求编写程序,以8255作为输出口,控制4个双色LED灯(可发红、绿、黄光)红绿交替闪亮。
三、实验说明1、双色LED是由一个红色LED管芯和一个绿色LED管芯封装在一起,公用负端。
当红色正端加高电平,绿色正端加低电平时,红灯亮;红色正端加低电平,绿色正端加高电平时,绿灯亮;两端都加高电平时,黄灯亮。
2、本实验要求8255工作于方式0,四个双色灯红绿交替闪亮。
四、实验电路及连线将DG1~DG4,DR1~DR4用导线连至8255的PC0~PC7,8255的CS片选接至138译码处的200H~207插孔。
芯片在实验机的位置五、实验参考程序D1 EQU 10HD2 EQU 200HDA TA SEGMENTPB DB ?DA TA ENDSSTACK SEGMENT STACKSTA DW 50 DUP(?)TOP EQU LENGTH STASTACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: PUSH CSPOP DSMOV DX,203H ;设置为全输出MOV AL,80HOUT DX,ALMOV DX,202HOUT DX,AL ;清LEDMOV DX,202H ;全红MOV AL,0F0HOUT DX,ALMOV BX,7fHCALL DL YBG: MOV AL,01101001B ;南北绿,东西红OUT DX,ALMOV BX,D2CALL DL YMOV CX,03HXH1: AND AL,0F6H ;绿灭OUT DX,ALMOV BX,D1CALL DL YOR AL,09H ;绿亮OUT DX,ALMOV BX,D1CALL DL YLOOP XH1OR AL,90H ;南北黄OUT DX,ALMOV BX,D1CALL DL YMOV BX,D1CALL DL YMOV AL,10010110B ;南北红,东西绿OUT DX,ALMOV BX,D2CALL DL YMOV CX,03XH2: AND AL,0F9HOUT DX,ALMOV BX,D1CALL DL YOR AL,06HOUT DX,ALMOV BX,D1CALL DL YLOOP XH2OR AL,60HOUT DX,ALMOV BX,D1MOV BX,D1CALL DL YJMP BGDL Y PROC NEARPUSH CXDDD: MOV CX,0FFFHCCC: LOOP CCCDEC BXCMP BX,0JNE DDDPOP CXRETDL Y ENDPCODE ENDSEND START六、思考题有紧急车辆或紧急情况出现,如何处理?程序如何设计?七、实验报告要求1、实验内容为必做内容,其中,思考题须自行设计电路、连线及编写程序。
基于8255A的应用—交通灯的设计
《微型计算机技术》课程设计报告题目:基于8255A的应用—交通灯的设计专业名称:通信工程班级:学号:姓名:2013年 1月基于8255A的应用—交通灯的设计胡晋电子信息工程学系摘要:随着微型计算机技术的飞速发展。
为此,基于8255芯片原理来实现交通灯的的控制是这次设计基础。
因为交通灯的控制可以分东西方向和南北方向两种,每种可用红、绿、黄三个灯进行交通管理,所以用8255芯片的PB口对六个交通灯进行控制。
通过8255芯片的PA口来控制交通灯状态的切换。
关键词:交通灯;8255芯片;控制;开关1 设计要求、目的和内容1.1设计要求基于微型计算机技术,利用8255芯片的原理实现交通的的控制,即8255芯片的应用—交通灯的的设计。
1.2 设计目的掌握8255芯片方式0的编程方法,PC机及配套的接口电路实验装置的连接于调试,IC芯片:8255A芯片的原理应用1.3 设计内容采用8255芯片设计交通灯控制的接口方案,硬件电路的设计和连接,程序的编写和调试。
2 设计原理2.1 8255内部框图介绍图1 8255A的内部结构图数据总线缓冲器:这是一个双向三态的8位数据缓冲器,它是8255A与微机系统数据总线的接口。
输入输出的数据、CPU输出的控制字以及CPU输入的状态信息都是通过这个缓冲器传送的。
三个端口A,B和C:A端口包含一个8位数据输出锁存器和缓冲器,一个8位数据输入锁存器。
B端口包含一个8位数据输入/输出锁存器和缓冲器,一个8位数据输入缓冲器。
C端口包含一个8位数据输出锁存器和缓冲器,一个8位数据输入缓冲器(输入没有锁存器)。
A组和B组控制电路:这是两组根据CPU输出的控制字控制8255工作方式的电路,它们对于CPU而言,共用一个端口地址相同的控制字寄存器,接收CPU输出的一字节方式控制字或对C 口按位复位字命令。
方式控制字的高5位决定A组的工作方式,低3位决定B组的工作方式。
[2]对C口按位复位命令字可对C口的每一位实现置位或复位。
单片机课程设计基于8255A的交通灯
`目录第一章引言 (1)1.1设计目的 (1)1.2 设计背景 (1)1.3 设计要求 (2)第二章系统硬件设计 (3)2.1设计方案 (3)2.2工作原理 (3)2.3 硬件介绍 (4)2.3.1 MSC-51芯片简介 (4)2.3.2 8255A芯片 (5)第三章系统软件设计 (7)3.1 时间及信号灯的显示 (7)3.2 延时设计 (8)3.3 程序流程图 (9)3.4 程序源代码 (10)第四章系统调试结果 (15)4.1 测试结果 (15)小结 (16)参考文献 (17)第一章引言1.1设计目的1、通过交通信号灯控制系统的设计,掌握8255A并行口传输数据的方法,以控制发光二极管的亮与灭;2、用8255作为输出口,控制十二个发光二极管熄灭,模拟交通灯管理.3、通过单片机课程设计,熟练掌握汇编语言的编程方法,将理论联系到实践中去,提高我们的动脑和动手的能力;4、完成控制系统的硬件设计、软件设计、仿真调试。
1.2 设计背景十字道口的红绿灯是交通法规的无声命令,是司机和行人的行为准则。
十字道口的交通红绿灯控制是保证交通安全和道路畅通的关键。
当前,国大多数城市正在采用“自动”红绿交通灯,它具有固定的“红灯—绿灯”转换间隔,并自动切换。
它们一般由“通行与禁止时间控制显示、红黄绿三色信号灯和方向指示灯”三部分组成。
在交通灯的通行与禁止时间控制显示中,通常要么东西、南北两方向各50秒;要么根据交通规律,东西方向60秒,南北方向40秒,时间控制都是固定的。
交通灯的时间控制显示,以固定时间值预先“固化”在单片机中,每次只是以一定周期交替变化。
但是,实际上不同时刻的车辆流通状况是十分复杂的,是高度非线性的、随机的,还经常受认为因素的影响。
采用定时控制经常造成道路有效应用时间的浪费,出现绿灯方向车辆较少,红灯方向车辆积压。
它不顾当前道路上交通车辆数的实际情况变化,其最大的缺陷就在于当路况发生变化时,不能满足司机与路人的实际需要,轻者造成时间上的浪费,重者直接导致交通堵塞,导致城市交通效率的下降。
单片机实验8255控制交通灯
delay(20);
pa8255=0xf7;
pb8255=0x0d;
delay(20);
}
pa8255=0xae;
pb8255=0x0b;
delay(400);
while(d2--)
{
pa8255=0x9e;
pb8255=0x07;
delay(20);
pa8255=0xbe;
题目:实验四8255控制交通灯
硬件实验
实验类别:【设计】
班级:
学号:
姓名:
1、实验内容或题目
题目:8255控制交通灯
实验内容:用8255做输出口,控制十二个发光二极管燃灭,模拟交通灯管理。
2、实验目的与要求
实验目的:
(1)掌握8051系统中,扩展8255做输出口的方法;
(2)了解芯片8255编程方法。
void delay(unsigned int i)
{
unsigned int j,k;
for(k=0;k<i;k++)
for(j=0;j<1000;j++);
}
void main(void)
{ com8255=0x88;
pa8255=0xb6;
pb8255=0x0d;
delay(400); //all red lamp light
pb8255=0x0f;
delay(20);
}
}
}
while(1)
{ uchar d1=5,d2=5;
pa8255=0x75; //west and east green lamp light
pb8255=0x0d; //south and north red lamp light
基于单片机交通红绿灯控制系统设计..
基于单片机交通红绿灯控制系统设计单片机作为电子产品的开发平台已应用到众多领域。
用单片机控制交通红绿灯有很高的性价比。
本设计要求:1)熟悉MCS-51单片机的结构及编程方法。
2)了解继电器的工作原理。
3)设计并实现交通红绿灯控制系统。
用8255作为输出口,接继电器,控制12个信号灯的燃灭,模拟交通等管理。
4) 控制算法自定并可设置。
目录一、引言二、单片机概述三、80C51引脚说明四、8255A芯片简介五、系统硬件设计5.1、原理说明5.2、元件选择5.3、电路原理图六、系统软件设计6.1、程序流程图6.2、程序清单七、仿真结果八、心得体会九、参考文献一、引言2005年最新统计数据表明,在中国每5分钟就有一人丧身车轮,每一分钟都会有一人因为交通事故儿伤残。
每年因交通事故所造成的的经济损失达数百亿元。
为了减少交通事故,如今交通红绿灯已经安装在各个交通路口上,已经成为疏导交通车辆最常见和最有效的手段。
但这一技术在19世纪就已出现了。
1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。
这是世界上最早的交通信号灯。
1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。
它由红绿两以旋转式方形玻璃提灯组成,红色表示“停止”,绿色表示“注意”。
1869年1月2日,煤气灯爆炸,使警察受伤,遂被取消。
电气启动的红绿灯出现在美国,这种红绿灯由红绿黄三色圆形的投光器组成,1914年始安装于纽约市5号大街的一座高塔上。
红灯亮表示“停止”,绿灯亮表示“通行”。
1918年,又出现了带控制的红绿灯和红外线红绿灯。
带控制的红绿灯,一种是把压力探测器安在地下,车辆一接近红灯便变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红灯时按一下嗽叭,就使红灯变为绿灯。
红外线红绿灯当行人踏上对压力敏感的路面时,它就能察觉到有人要过马路。
红外光束能把信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故。
单片机8255交通灯程序
交通灯程序/*********************************************************** 十字路口交通灯控制 C 程序***********************************************************/#include <reg51.h>#define uchar unsigned char#define uint unsigned int/*****定义控制位*******************************************/sbit Time_Show_LED2=P2^5; //Time_Show_LED2(直行时间显示)控制位sbit Time_Show_LED1=P2^4; //Time_Show_LED1(直行时间显示)控制位sbit EW_LED2=P2^3; //EW_LED2控制位sbit EW_LED1=P2^2; //EW_LED1控制位sbit SN_LED2=P2^1; //SN_LED2控制位sbit SN_LED1=P2^0; //SN_LED1控制位sbit SN_Yellow=P1^6; //SN黄灯sbit EW_Yellow=P1^2; //EW黄灯sbit EW_ManGreen=P3^0; //EW人行道绿灯sbit SN_ManGreen=P3^1; //SN人行道绿灯sbit Special_LED=P2^6; //交通特殊指示灯sbit Busy_LED=P2^7; //交通繁忙指示灯sbit Nomor_Button=P3^5; //交通正常按键sbit Busy_Btton=P3^6; //交通繁忙按键sbit Special_Btton=P3^7; //交通特殊按键sbit EW_ManRed=P3^3; //EW人行道红灯sbit SN_ManRed=P3^4; //SN人行道红灯bit Flag_SN_Yellow; //SN黄灯标志位bit Flag_EW_Yellow; //EW黄灯标志位char Time_EW; //东西方向倒计时单元char Time_SN; //南北方向倒计时单元uchar EW=60,SN=40,EWL=19,SNL=19; //程序初始化赋值,正常模式uchar EW1=60,SN1=40,EWL1=19,SNL1=19; //用于存放修改值的变量uchar codetable[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; //0-9段选码uchar code S[8]={0x28,0x48,0x18,0x48,0x82,0x84,0x81,0x84};//交通信号灯控制代码/**********************延时子程序**************************/void Delay(uchar a){uchar i;i=a;while(i--){;}}/*****************显示子函数******************************/ void Display(void){uchar h,l;h=Time_EW/10;l=Time_EW%10;P0=table[l];EW_LED2=1; //点亮EW_LED2Delay(2);EW_LED2=0; //熄灭EW_LED2P0=table[h];EW_LED1=1; //点亮EW_LED1Delay(2);EW_LED1=0;h=Time_SN/10;l=Time_SN%10;P0=table[l];SN_LED2=1; //点亮SN_LED2Delay(2);SN_LED2=0;P0=table[h];SN_LED1=1; //点亮SN_LED1Delay(2);SN_LED1=0;h= EW1/10;l= EW1%10;P0=table[l];Time_Show_LED1=1; //点亮Time_Show_LED1Delay(2);Time_Show_LED1=0;P0=table[h];Time_Show_LED2=1; //点亮Time_Show_LED2Delay(2);Time_Show_LED2=0;}/**********************外部0中断服务程序******************/void INT0_srv(void)interrupt 0 using 1{EX0=0; //关中断if(Nomor_Button==0) //测试按键是否按下,按下为正常状态 {EW1=60;SN1=40;EWL1=19;SNL1=19;Busy_LED=0; //关繁忙信号灯Special_LED =0; //关特殊信号灯}if(Busy_Btton==0) //测试按键是否按下,按下为繁忙状态 {EW1=45;SN1=30;EWL1=14;SNL1=14;Special_LED=0; //关特殊信号灯Busy_LED=1; //开繁忙信号灯}if(Special_Btton==0)//测试按键是否按下,按下为特殊状态 {EW1=75;SN1=55;EWL1=19;SNL1=19;Busy_LED=0; //关繁忙信号灯Special_LED =1;//开特殊信号灯}EX0=1; //开中断}/**********************T0中断服务程序*******************/ void timer0(void)interrupt 1 using 1{static uchar count;TH0=(65536-50000)/256;TL0=(65536-50000)%256;count++;if(count==10){if(Flag_SN_Yellow==1) //测试南北黄灯标志位{SN_Yellow=~SN_Yellow;}if(Flag_EW_Yellow==1) //测试东西黄灯标志位{EW_Yellow=~EW_Yellow;}}if(count==20){Time_EW--;Time_SN--;if(Flag_SN_Yellow==1) //测试南北黄灯标志位{SN_Yellow=~SN_Yellow;}if(Flag_EW_Yellow==1) //测试东西黄灯标志位{EW_Yellow=~EW_Yellow;}count=0;}}/*********************主程序开始***********************/ void main(void){Busy_LED=0;Special_LED=0;IT0=1; //INT0负跳变触发TMOD=0x01; //定时器工作于方式1TH0=(65536-50000)/256; //定时器赋初值TL0=(65536-50000)%256;EA=1; //CPU开中断总允许ET0=1; //开定时中断EX0=1; //开外部INTO中断TR0=1; //启动定时while(1){/*******S0状态**********/SN_ManRed=0;SN_ManGreen=1; //SN人行道通行EW_ManRed=1; //EW人行道禁止EW_ManGreen=0;Flag_EW_Yellow=0; //EW关黄灯显示信号Time_EW=EW;Time_SN=SN;while(Time_SN>=5){P1=S[0]; //SN绿灯,EW红灯Display();}/*******S1状态**********/P1=0x00;while(Time_SN>=0){Flag_SN_Yellow=1; //SN开黄灯信号位P1=P1|0x08; //保持EW红灯Display();}/*******S2状态**********/SN_ManRed=1; //SN人行道禁止SN_ManGreen=0;EW_ManRed=1; //EW人行道禁止EW_ManGreen=0;Flag_SN_Yellow=0; //SN关黄灯显示信号Time_SN=SNL;while(Time_SN>=5){P1=S[2]; //SN左拐绿灯亮,EW红灯Display();}/*******S3状态**********/P1=0x00;while(Time_SN>=0){Flag_SN_Yellow=1; //SN开黄灯信号位P1=P1|0x08; //保持EW红灯Display();}/***********赋值*********/EW=EW1;SN=SN1;EWL=EWL1;SNL=SNL1;/*******S4状态**********/SN_ManRed=1; //SN人行道禁止SN_ManGreen=0;EW_ManRed=0;EW_ManGreen=1; //EW人行道通行Flag_SN_Yellow=0; //SN关黄灯显示信号Time_EW=SN;Time_SN=EW;while(Time_EW>=5){P1=S[4]; //EW通行,SN红灯Display();}/*******S5状态**********/P1=0X00;while(Time_EW>=0){Flag_EW_Yellow=1;//EW开黄灯信号位P1=P1|0x80; //保持SN红灯Display();}/*******S6状态**********/SN_ManRed=1; //SN人行道禁止SN_ManGreen=0;EW_ManRed=1; //EW人行道禁止EW_ManGreen=0;Flag_EW_Yellow=0;//EW关黄灯显示信号Time_EW=EWL;while(Time_EW>=5){P1=S[6]; //EW左拐绿灯亮,SN红灯Display();}/*******S7状态**********/P1=0X00;while(Time_EW>=0){Flag_EW_Yellow=1; //EN开黄灯信号位P1=P1|0x80; //保持SN红灯Display();}/***********赋值********/EW=EW1;SN=SN1;EWL=EWL1;SNL=SNL1;}}。
基于单片机交通红绿灯控制系统设计
鉴于单片机交通红绿灯控制系统设计单片机作为电子产品的开发平台已应用到众多领域。
用单片机控制交通红绿灯有很高的性价比。
本设计要求:1)熟习 MCS-51 单片机的构造及编程方法。
2)认识继电器的工作原理。
3)设计并实现交通红绿灯控制系统。
用8255 作为输出口,接继电器,控制 12 个信号灯的燃灭,模拟交通等管理。
4)控制算法自定并可设置。
目录一、前言二、单片机概括三、 80C51 引脚说明四、 8255A 芯片简介五、系统硬件设计5.1、原理说明5.2、元件选择5.3、电路原理图六、系统软件设计6.1、程序流程图6.2、程序清单七、仿真结果八、心得领会九、参照文件一、前言2005 年最新统计数据表示,在中国每 5 分钟就有一人丧身车轮,每一分钟都会有一人因为交通事故儿伤残。
每年因交通事故所造成的的经济损失达数百亿元。
为了减少交通事故,此刻交通红绿灯已经安装在各个交通路口上,已经成为劝导交通车辆最常有和最有效的手段。
但这一技术在 19 世纪就已出现了。
1858 年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。
这是世界上最早的交通信号灯。
1868 年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。
它由红绿两以旋转式方形玻璃提灯构成,红色表示“停止” ,绿色表示“注意” 。
1869 年 1 月2 日,煤气灯爆炸,使警察受伤,遂被撤消。
电气启动的红绿灯出此刻美国,这类红绿灯由红绿黄三色圆形的投光器构成, 1914 年始安装于纽约市 5 号大街的一座高塔上。
红灯亮表示“停止”,绿灯亮表示“通行” 。
1918 年,又出现了带控制的红绿灯和红外线红绿灯。
带控制的红绿灯,一种是把压力探测器何在地下,车辆一靠近红灯便变成绿灯;另一种是用扩音器来启动红绿灯,司机会红灯时按一下嗽叭,就使红灯变成绿灯。
红外线红绿灯当行人踏上对压力敏感的路面时,它就能觉察到有人要过马路。
基于8253和8255的模拟交通灯控制系统
《微型计算机接口技术》大作业设计报告基于8255,8253的发声人性化交通灯控制设计日期:2011-1-7摘要十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。
井然秩序的实现,靠的是交通信号灯的自动指挥系统。
交通信号灯控制方式有很多。
本系统采用8255A芯片实现了A口设置红、绿、黄灯点亮时间的功能,从而控制LED发光二极管实现红、黄、绿灯循环点亮。
另外结合日常生活经验,并且从亚残会中对残疾人的生活不便中得出感悟,采用8253进行控制扬声器,在红、绿灯变换之间黄灯闪烁时,同时添加了“声音提示"功能。
整个系统具有固定的“红灯—黄灯—绿灯”转换间隔,并自动切换,对东西南北方向的道路进行“自动”的控制。
但是,经过小组成员提出的各种假设,发现此系统需要加入更多人性化的元素:交警可以根据实际的路面情况,针对不同的突发事件,进行手工控制红绿灯的转换。
例如救护车警车执行紧急任务;例如东西道路塞车,南北道路空闲无车辆行驶时,需要灵活调节红绿灯的转化。
通过8255并口控制,可以达到更加人性化的效果从而方便各种人群。
关键字:8255 交通灯控制8253 发声人性化第一部分概论1.1设计任务:交通信号灯的控制(1)通过8255并行接口来控制LED发光二极管的亮灭,并适当延时。
(2)黄灯闪烁时,通过8253控制扬声器发出声音,以提醒灯的转换。
(3)通过8255并口控制,人工进行交通灯的转换。
1.2 任务要求(1)南北路口的绿灯、东西路口的红灯同时亮5秒左右。
(2)南北路口的黄灯闪烁若干次,扬声器鸣叫,同时东西路口的红灯闪烁。
(3)南北路口的红灯、东西路口的绿灯同时亮5秒左右。
(4)南北路口的红灯闪烁、同时东西路口的黄灯亮闪烁若干次,扬声器鸣叫。
(5)转(1)重复。
紧急情况可以手动控制红绿灯的变换。
1.3设计原理本次课程设计是交通灯实时控制器,主要是用发光二极管模拟十字路口的红绿灯。
交通灯控制器的设计与实现主要是通过编写汇编语言程序利用8255的C 口对灯的亮与灭进行控制,用8253对扬声器的发声进行控制。
基于单片机的交通灯设计
基于单片机的交通灯设计摘要:单片机是指一个集成在一块芯片上的完整计算机系统。
它具有一个完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统,目前大部分还会具有外存。
同时集成诸如通讯接口、定时器,实时时钟等外围设备。
近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。
在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,使系统简单化。
本系统采用MSC-51系列单片机ATSC51和可编程并行I/O接口芯片8255A为中心器件来设计交通灯控制器,实现了能根据实际车流量通过8051芯片的P1口设置红、绿灯燃亮时间的功能;红绿灯循环点亮,倒计时剩5秒时黄灯闪烁警示;车辆闯红灯报警;绿灯时间可检测车流量并可通过双位数码管显示。
本系统实用性强、操作简单、扩展功能强。
关键词:单片机交通灯闯红灯检测车流量前言为了避免交通事故的发生,交通灯已经成为疏导交通车辆最常见和最有效的手段。
19世纪初,英国伦敦议会大前经常发生马车轧人的事故,由于人们受到红绿装启发,1868年12月10日,信号灯家族的第一个成员就在伦敦议会大厦的广场上诞生了,由当时英国机械师德·哈设计、制造的灯柱高7米,身上挂着一盏红、绿两色的提灯--煤气交通信号灯。
在灯的脚下,一名手持长杆的警察随心所欲地牵动皮带转换提灯的颜色。
后来在信号灯的中心装上煤气灯罩,它的前面有两块红、绿玻璃交替遮挡。
不幸的是只面世23天的煤气灯突然爆炸自灭,使一位正在值勤的警察也因此断送了性命。
从此,城市的交通信号灯被取缔了。
直到1914年,在美国的克利夫兰市才率先恢复了红绿灯,不过,这时已是“电气信号灯”。
稍后又在纽约和芝加哥等城市,相继重新出现了交通信号灯。
随着各种交通工具的发展和交通指挥的需要,第一盏名副其实的三色灯(红、黄、绿三种标志)于1918年诞生。
它是三色圆形四面投影器,被安装在纽约市五号街的一座高塔上,由于它的诞生,使城市交通大为改善。
微机原理课程设计 8255控制交通灯
微机原理课程设计 8255控制交通灯微机原理课程设计-8255控制交通灯微机原理课程设计:8255模拟交通灯1、目的:自学8255采用方法,自学演示交通灯掌控的方法,自学双色灯的采用。
2、建议:掌控4个双色led灯(可以红肿,蓝,黄光),演示十字路口交通灯管理。
3、电路及连线pc0-pc3连dg1-dg4,pc4-pc7连dr1-dr4。
8255片选cs8255连138译码处210h。
4、说明(1)因为本实验就是演示交通灯掌控实验,所以必须先介绍实际交通灯的变化规律。
假设一个十字路口为东西南北走向。
初始状态0为东西红灯,南北红灯。
然后转状态1南北绿灯通车,东西红灯。
过一段时间转状态2,南北绿灯闪几次转亮黄灯,延时几秒,东西仍然红灯。
再转状态3,东西绿灯通车,南北红灯。
过一段时间转状态4,东西绿灯闪几次转亮黄灯,延时几秒,南北仍然红灯。
最后循环至状态1。
(2)双色led就是由一个红色led管芯和一个绿色led管芯PCB在一起,公用负端。
当红色正端提高电平,绿色正端提低电平时,红灯暗;红色正端提低电平,绿色正端提高电平时,绿灯暗;两端都提高电平时,黄灯暗。
(3)74ls240为8输入输出的逆向驱动器。
5、顺利完成的任务(1)利用计算机和微机原理试验箱,将实验6的程序tlamp_88.asm在试验箱运行和调试。
全速运行,观察整体效果。
单步运行,观察程序每条语句额执行效果,理解语句含义。
(2)修正实验连线为,pc7-pc4连dg1-dg4,pc3-pc0连dr1-dr4。
8255片挑选cs8255连138译码处为210h孔。
将tlamp_88.asm另存为jiaotong.asm。
修正jiaotong.asm,同时实现交通灯旧有功能。
(3)修改实验连线为,pb7-pb4连dg1-dg4,pb3-pb0连dr1-dr4。
8255片选cs8255连138译码处210h孔。
将jiaotong.asm另存为jiaotong2.asm。
8255控制交通灯
专业:机电一体化班级:机电姓名:学号:设计题目:8255控制交通灯设计条件:了解8255芯片的结构及编程方法,学习模拟交通灯控制的实现方法。
用8255做输出口,控制十二个发光二极管燃灭,模拟交通灯管理。
功能说明:假设一个十字路口为东西南北走向。
交通灯的变化情况和规律如下,初始状态0为东西红灯,南北红灯。
然后转状态1东西绿灯通车,南北红灯。
过一段时间转状态2,东西绿灯灭,黄灯闪烁几次,南北仍然红灯。
再转状态3,南北绿灯通车,东西红灯。
过一段时间转状态4,南北绿灯灭,闪几次黄灯,延时几秒,东西仍然红灯。
最后循环至状态1。
设计任务:使用单片机作为控制器来模拟交通灯控制。
具体采用8255芯片做为输出口,控制十二个发光二极管燃灭,模拟交通灯管理。
要求掌握单片机的结构和功能,学会较简单单片机系统的硬件设计,并能通过汇编语言进行软件编程,完成要求的功能,同时熟练掌握8255A芯片的结构及使用。
设计报告内容包括:1)系统设计方案2)硬件电路图及硬件电路功能说明3)软件实现方法及程序流程图4)源程序及调试结果摘要自从交通灯诞生以来,其内部的电路控制系统就不断地被改进,设计方法也多种多样,从而使交通灯显得更加智能化。
由于单片机本身具有通讯联网功能,将同一条道路上的信号灯组成一局域网进行统一调度管理,可缩短车辆通行等候时间,实现科学化管理。
论文提出了一种涉及单片机的无人智能交通灯管理系统的控制方案,鉴于时间及所学知识所限,文中仅对系统中的一个节点____一个十字路口交通灯的管理进行了具体实现。
以8751芯片作为主控制器,可编程并行接口芯片8255作为扩展输出口,通过十二个发光二极管来模拟进行交通灯的燃灭管理,并详细阐述了其工作原理、基本功能框图、关键设计技术及软件工作流程,对选用芯片的特点进行了分析,并最后进行了软件实现,达到了系统要求的功能。
目录第一章绪论 (1)1.1 单片机在电子产品中的应用 (1)1.2 课题背景及设计思想 (2)第二章系统控制要求 (4)第三章交通灯总体设计方案 (5)3.1 总体设计思路 (5)3.2 设计框图 (5)第四章硬件设计 (7)4.1 主控芯片8751 (7)4.2 扩展并行I/O口8255 (10)4.3 数据缓冲器器芯片74LS244 (12)4.4 时钟振荡电路 (12)第五章软件设计 (14)5.1 交通信号灯控制流程图 (14)5.2 控制程序 (15)第六章结论 (18)参考文献 (19)致谢 (20)附:硬件电路图 (21)第一章绪论1.1 单片机在电子产品中的应用单片机又称微控制器MCU(MicroController Unit),由于用它可以很容易地将计算机嵌入到各种仪器和现场控制设备中,因此单片机也叫嵌入式微控制器(Embedded MCU)。
8255A的简单红绿灯
基于8255A的简单红绿灯一、设计目的学习I/0口扩展方法;掌握8255的工作原理以及编程方法,了解软件与硬件的调试技术。
通过8255A的编程控制,实现对交通灯的定时控制,实现红绿交通灯自动控制。
二、设计要求设有一个十字路口,1、3为南,北方向,2、4为东西方向,初始状态灯全亮全灭检测。
之后1、3路口的绿灯亮,2、4路口的红灯亮,1、3路口方向通车。
延迟30秒后,1、3路口的绿灯熄灭,而1,3路口的黄灯开始闪烁(1HZ)。
闪烁5秒后,1、3路口的红灯亮,同时2、4路口的绿灯亮,2、4路口方向开始通车。
延迟30秒时间后,2、4路口的绿灯熄灭,而黄灯开始闪烁。
闪烁5秒后,再切换到1、3路口方向。
之后,重复上述过程。
三、电路及连线设计图1 实验连线图四、使用说明⒈按图1连好实验线路8255A: PA0->L3,PA1->L6,PA2->L9,PA3->L12;PB0->L2,PB1->L5,PB2->L8,PB3->L11; PC0->L1,PC1->L4,PC2->L7,PC3->L102. 在PC机中装载相应的程序并连续运行。
五、流程图设计图2 程序流程图六、程序设计如下CODE SEGMENTASSUME CS:CODEIOCONPT EQU 0FF2BHIOAPT EQU 0FF28HIOBPT EQU 0FF29HIOCPT EQU 0FF2AHORG 11e0HSTART:MOV DX,IOCONPT ; 灯的初始化MOV AL,10000000BOUT DX,ALMOV DX,IOAPTMOV AL,11110000BOUT DX,ALRUN: MOV DX,IOAPT ;13路口绿灯,24路口红灯 MOV AL, 11110101BOUT DX,ALMOV DX,IOBPTMOV AL,11111010BOUT DX,ALMOV DX,IOCPTMOV AL,11111111BOUT DX,ALCALL DELAY_1 ;延时30秒MOV CX,05H ;闪烁5次STEP_1: MOV DX,IOBPTMOV AL,11111111B ;13路口黄灯,24路口红灯 OUT DX,ALMOV DX,IOCPTMOV AL,11111010BOUT DX,ALCALL DELAY_2MOV DX,IOCPTMOV AL,11111111BOUT DX,ALCALL DELAY_2LOOP STEP_1MOV DX,IOCPT ;13路口红灯,24路口绿灯 MOV AL,11111111BOUT DX,ALMOV DX,IOAPTMOV AL,11111010BOUT DX,ALMOV DX,IOBPTMOV AL,11110101BOUT DX,ALCALL DELAY_1 ;延时30秒MOV CX,05HSTEP_2: MOV DX,IOBPT ;13路口红灯,24路口黄灯 MOV AL,11111111BOUT DX,ALMOV DX ,IOCPTMOV AL,11110101BOUT DX,ALCALL DELAY_2MOV DX,IOCPTMOV AL,11111111BOUT DX,ALCALL DELAY_2LOOP STEP_2JMP RUN ;转移至RUN循环执行DELAY PROC NEAR ;软件延时子程序,通过设置指令的循环次数实现 PUSH CXPUSH AXMOV CX,0FFH ;循环次数D1: MOV AX,0FFFHD2: DEC AXJNZ D2LOOP D1POP AXPOP CXRETDELAY ENDPDELAY_1 PROC NEAR ;软件延时子程序,延时30秒PUSH CXPUSH AXMOV CX,1EH ;循环次数D3: CALL DELAYLOOP D3POP AXPOP CXRETDELAY_1 ENDPDELAY_2 PROC NEAR ;软件延时子程序,黄灯亮与灭的闪烁时间间隔, PUSH CXPUSH AXMOV CX,02H ;循环次数D4: CALL DELAYLOOP D4POP AXPOP CXRETDELAY_2 ENDPCODE ENDSEND START七、调试结果图3 图4图3: L3、L5、L9、L11发光,代表13路口红灯,24路口绿灯图4: L1、L6、L7、L12发光,代表13路口黄灯,24路口红灯。
51单片机外接8255A做成的交通灯程序及PROTEUS仿真结果(附对应C语言程序)
51单片机外接8255A做成的交通灯程序及PROTEUS仿真结果(附对应C语言程序)2010-04-21 22:01CONTROL EQU 7FFFHPORTAEQU 7FFCHORG 0START:MOV DPTR,#7FFFHMOV A,#80HMOVX @DPTR,AMOV DPTR,#7FFCHMOV A,#0FFHMOVX @DPTR,ALOOP:MOV A,#21HMOV DPTR,#7FFCHMOVX @DPTR,A;东西红,南北绿CALL DELAYLONGMOV A,#11HMOV DPTR,#7FFCHMOVX @DPTR,A;三次闪烁CALL DELAYSHORTMOV A,#01HMOV DPTR,#7FFCH MOVX @DPTR,A CALL DELAYSHORT MOV A,#11H MOV DPTR,#7FFCH MOVX @DPTR,A CALL DELAYSHORT MOV A,#01H MOV DPTR,#7FFCH MOVX @DPTR,A CALL DELAYSHORT MOV A,#11H MOV DPTR,#7FFCH MOVX @DPTR,A CALL DELAYSHORT MOV A,#01H MOV DPTR,#7FFCH MOVX @DPTR,A CALL DELAYSHORT MOV A,#0CH MOV DPTR,#7FFCHMOVX @DPTR,A CALL DELAYLONG MOV A,#0AH MOV DPTR,#7FFCH MOVX @DPTR,A CALL DELAYSHORT MOV A,#08H MOV DPTR,#7FFCH MOVX @DPTR,A CALL DELAYSHORT MOV A,#0AH MOV DPTR,#7FFCH MOVX @DPTR,A CALL DELAYSHORT MOV A,#08H MOV DPTR,#7FFCH MOVX @DPTR,A CALL DELAYSHORT MOV A,#0AH MOV DPTR,#7FFCH MOVX @DPTR,ACALL DELAYSHORT MOV A,#08H MOV DPTR,#7FFCH MOVX @DPTR,A CALL DELAYSHORT AJMP LOOP DELAYLONG: MOV R7,#40L1:MOV R6,#200 L2:MOV R5,#250 DJNZ R5,$DJNZ R6,L2DJNZ R7,L1RET DELAYSHORT: MOV R4,#200L3:MOV R3,#250 DJNZ R3,$DJNZ R4,L3RETENDC语言程序:# include<absacc.h># define PORTA XBYTE[0X7FFC] # define CONTROL XBYTE[0X7FFF] void DELAYLONG(void);void DELAYSHORT(void);void main(void){CONTROL=0x80; PORTA=0XFF;while(1){PORTA=0X21; DELAYLONG();PORTA=0X11; DELAYSHORT();PORTA=0X01; DELAYSHORT();PORTA=0X11; DELAYSHORT();PORTA=0X01; DELAYSHORT();PORTA=0X11; DELAYSHORT();PORTA=0X01;DELAYSHORT();PORTA=0X0C;DELAYLONG();PORTA=0X0A;DELAYSHORT();PORTA=0X08;DELAYSHORT();PORTA=0X0A;DELAYSHORT();PORTA=0X08;DELAYSHORT();PORTA=0X0A;DELAYSHORT();PORTA=0X08;DELAYSHORT();}}void DELAYLONG(void){unsigned i,j,k;for(i=0;i<20;i++)for(j=0;j<40;j++)for(k=0;k<2500;k++);}void DELAYSHORT(void){unsigned i; for(i=0;i<300;i++);}。
单片机8255控制交通灯实验
集美大学计算机工程学院实验报告课程名称单片机原理、接口及应用实验名称8255控制交通灯实验实验类型设计型姓名学号日期地点成绩教师D034D133D232D331D430D529D628D727PA04PA13PA22PA31PA440PA539PA638PA737PB018PB119PB220PB321PB422PB523PB624PB725PC014PC115PC216PC317PC413PC512PC611PC710RD 5WR 36A09A18RESET 35CS68255U36D0D1D2D3D4D5D6D7WR RD RSTA0A1PC5PC6PC7PC2PC3PC4PC0PC1DS35DS36DS37DS38DS39DS40DS4112345678VCCDS42A0A1CSCS1(0F000H)510R111510R112510R113510R114510R115510R116510R117510R118B4区:JP56(PA口)——G6区:JP655.实验扩展及思考1.如何对8255的PC口进行位操作?答:8255的控制字中,D7位为1时表示方式选择,D7位为0时,表示对C口进行置为/复位。
C口共有8个二进制位,控制字中的D3、D2、D1三位的编码与C口的某一位对应,而对指定位进行的操作则由D0确定。
如:D0=0时,D3、D2、D1分别为1、0、1,则C 口的第五位PC5置0;若D0=1时,D3、D2、D1分别为0、0、1,则C口的第一位PC1置1。
在控制字中D6、D5、D4是无效位。
6.实验中遇到的困难及解决方法在实验中,由于对于片选端口所对应的地址不是很熟悉,使得程序运行结果出错;经过翻阅实验书,找到了片选区中各个片选口所对应的端口地址,改正之。
附件1.程序流程图2.汇编语言源程序ORG 0000HLJMP STARTSTART:MOV DPTR,#03FFHMOV A,#80HMOVX @DPTR,AS1: MOV A,#01111101BM OV DPTR,#00FFHM OVX @DPTR,A ;东西绿灯亮,南北红灯亮C ALL DELAY5S ;5秒延时M OV R0,#6L: MOV A,#01111101B ;东西绿灯亮,南北红灯亮,绿灯开始闪烁6次M OV DPTR,#00FFHMOVX @DPTR,ACALL DELAY1SMOV A,#11111101B ;东西绿灯灭,南北红灯亮M OV DPTR,#00FFHM OVX @DPTR,AC ALL DELAY1SD EC R0D JNE R0,LM OV A,#10111101B ;东西黄灯亮,南北红灯亮M OV DPTR,#00FFHMOVX @DPTR,ACALL DELAY3S ;3秒延时MOV R1,#6LL:MOV A,#11010111B ;东西红灯亮,南北绿灯亮,南北绿灯闪烁6次M OV DPTR,#00FFHM OVX @DPTR,AC ALL DELAY5SM OV A,#11011111B ;东西红灯亮,南北绿灯灭M OV DPTR,#00FFHMOVX @DPTR,ACALL DELAY1SDEC R1D JNE R1,LLMOV A,#11011011B ;东西红灯亮,南北黄灯亮MOV DPTR,#00FFHMOVX @DPTR,ACALL DELAY3SLJMP S1 ;跳转到状态S1状态,循环DELAY5S: ;延时5秒MOV R7,#100L0: MOV R6,#100L1: MOV R5,#248DJNZ R5,$DJNZ R6,L1D JNZ R7,L0RETDELAY3S: ;延时3秒MOV R7,#60L4: MOV R6,#100L5: MOV R5,#248DJNZ R5,$DJNZ R6,L5D JNZ R7,L4RETDELAY1S: ;延时0.5秒M OV R3,#10L2: MOV R2,#100L3: MOV R1,#248DJNZ R1,$DJNZ R2,L2D JNZ R3,L3R ETEND如有侵权请联系告知删除,感谢你们的配合!如有侵权请联系告知删除,感谢你们的配合!。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
8255控制交通灯一、实验目的了解8255芯片的结构及编程方法,学习模拟交通灯控制的实现方法。
二、实验内容用8255做输出口,控制十二个发光二极管燃灭,模拟交通灯管理。
三、实验说明1.因为本实验是交通灯控制实验,所以要先了解实际交通灯的变化情况和规律。
假设一个十字路口为东西南北走向。
初始状态0为东西红灯,南北红灯。
然后转状态1东西绿灯通车,南北红灯。
过一段时间转状态2,东西绿灯灭,黄灯闪烁几次,南北仍然红灯。
再转状态3,南北绿灯通车,东西红灯。
过一段时间转状态 4,南北绿灯灭,闪几次黄灯,延时几秒,东西仍然红灯。
最后循环至状态1。
四、实验程序框图五、实验接线图六、实验步骤①8255 PA0—PA7、PB0—PB3依次接发光二极管L1—L12。
②以连续方式从0BB0H开始执行程序,初始态为四个路口的红灯全亮之后,东西路口的绿灯亮南北路口的红灯亮,东西路口方向通车。
延时一段时间后东西路口的绿灯熄灭,黄灯开始闪耀。
闪耀若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北路口方向开始通车,延时一段时间后,南北路口的绿灯熄灭,黄灯开始闪耀。
闪耀若干次后,再切换到东西路口方向,之后重复以上过程。
一摘要:本系统采用单片机、键盘、LED显示、交通灯演示系统组成。
设计一个用于十字路口的车辆及行人的交通管理,系统包括左拐、右拐、及行基本的交通灯的功能,计时牌显示路口通行转换剩余时间,在出现紧急情况时可由交通手动实现全路口车辆禁行而行人通行状态。
另外,在特种车辆如119、120通过路口时,系统可自动转为特种车辆放行,其他车辆禁止通行的状态,15s后系统自动恢复正常管理。
其他还有 84s与60s通行管理转换等功能。
采用数码管与点阵LED相结合的显示方法,既要求倒计时数字输出,又要求有状态灯输出等。
关键字:单片机系统(AT89C51)控制8255、交通规则、LED显示、动态扫描、按键输入、分时段调整参考文献:《单片机课程设计指导》北京航天航空大学出版社《基于MCS-51系列的单片机原理的应用设计》国防工业出版社《单片机实训教程》北京大学出版社《单片机系统原理及应用》《微机原理及应用》二、方案设计与论证1电源提供方案:采用独立的稳压电源,此方案稳定可靠,且有各种成熟电路可供选用2显示界面方案采用数码管和点阵LED相结合的方法,因为实际既要求倒计时施主输出,又要求又状态灯输出等,为方便观看并考虑到现实状况,用数码管与LED分别显示时间和提示信息。
这种方案既满足系统功能要求,又减少了系统实现的复杂度。
3输入方案直接在IO口上接按键开关。
因为设计时精简和优化了电路,所以剩余口的资源还比较多。
4主控制方案采用AT89C51单片机作为控制器,控制8255实行通行倒计时及左拐、右拐、直行、行人通行指示采用单块LCD液晶点阵显示器。
这种方案设计占用单片机的端口最少,硬件也少。
耗电也最小;系统框图正文一、功能描述本系统由单片机系统、键盘、发光二极管、交通灯演示系统组成,单片机作为主控制器用于十字路口的车辆及行人的交通管理,每个方向具有左拐、右拐、直行及行人4种通行指示灯,计时牌显示路口通行转换剩余时间。
另外,在特种车辆如119、120通过路口时,系统可自动转为特种车辆放行,其他车辆禁止通行的状态,15s后系统自动恢复正常管理。
并有手动控制分时段 84s与60s通行管理转换等功能。
二、系统硬件电路的设计整套电路系统由控制系统模块、通行灯输出控制显示模块、时间显示模块、时间显示模块和自动特种车辆控制模块等组成。
1、主控制系统单片机的P0口用于控制8255。
8255的PA口和PB口用于控制南北及东西的通行灯,。
PC 口及P3.0~P3.2口用于4组2位LED计时器的控制,特种车通过时使用外中断1口(P3.3),手动自动转换采用P1.0按键。
选择8255的工作方式0,在这种情况下三个端口都可以由程序设置为输入和输出。
2、通行灯输出控制道口交通灯指示采用高亮度红绿双色发光二极管,左拐、直行、右拐及行人各一个。
当发光电流为6mA时,按公式R=(5-1.8)/0.006计算,限流电阻应为510Ω.由于南北通行时双向指示牌相同,因此每个端口应具有12mA的吸收电流能力。
图7.4所示为指示灯电路图。
3、时间显示模块道口通行剩余时间采用高亮红色7段LED发光数码管显示,采用共阳数码管,如用单片机吸收电流驱动,列扫描驱动使用三极管,按每段6mA电流算,全显示字形“8”时,每个数码管需6mA×8=48mA。
由于时间显示每个道口相同,4组需192mA,因此设计中采用中功率三极管9012.由于单片机每个断码输出口需吸收24mA 电流,因此在电路设计中也使用了驱动集成块74HC244。
其显示驱动电路如图示。
4、特种车辆自动控制模块自动道口灯在特种车辆到来时能自动关闭所有绿灯,让特种车通过。
设计中采用红外线发生器作为特种车的发生器,使用实时中断来影响特种车的通行要求。
红外线接收器一般采用电视机上用的一体化红外接收器,具有很高的灵敏度和较强的抗干扰能力.5、电源电路由于整个系统采用的电源电压需+5V电压,所以采用不可调的3端稳压器件,用常用的lm7850就可以满足系统电源的要求。
LM7850三端集成稳压电源内部由准电压回路、恒流源、过流保护、过压保护和短路保护回路等8部分组成具有低功耗,高效率,波纹系数小,输出电压稳定等优点。
三、系统主要程序的设计道口交通控制系统程序主要分为以下几个模块:初始化程序、主程序、定时中断程序和特种车实时响应程序等。
1、初始化程序初始化程序主要完成内存划,定时器的工作模式、中断方式等的设定。
由于子程序调用较多,因此初始化时堆栈指针设于80H处。
定时器T0、T1设为16位定时器模式,定时时间位50ms,为秒计时用,T1为通行结束闪烁用。
2、主程序主程序要负责总体程序管理功能,实现人机交换设定。
由于采用动态扫描方式显示时间,因此主程序大部分时间要调用扫描显示程序。
主程序流程图如下图示。
3、外中断1中断服务程序经过时,车中发射红外线信号,其信号被道口控制板上的接收器接收,并输出一个低电平处外中断1.中断处理程序流程图如下页图所示。
4、定时服务中断程序序主要用于行车与行人的通行指示,按照交通规则,红绿灯控制转换逻辑表如7.1表所列。
南北方向端口控制功能 120~110s 110~70s 70~60s 60~10s 10~0sP*.7 左拐红 0 0 0 1 1P*.6 左拐绿 1 1 1 0 0/1P*.5 直行红 1 1 1 0 0P*.4 直行绿 0 0 0/1 1 1P*.3 右拐红 0 1 1 1 1P*.2 右拐绿 1 0 0 0 0/1P*.1 行人红 1 1 1 0 0P*.0 行人绿 0 0 0/1 1 1道口控制字 66H 6AH 6AH/7BH 99H 99H/DDH东西方向 P*.7 左拐红 0 0 0 0 0P*.6 左拐绿 1 1 1 1 1P*.5 直行红 0 0 0 0 0P*.4 直行绿 1 1 1 1 1P*.3 右拐红 0 1 1 1 1P*.2 右拐绿 1 0 0 0 0/1P*.1 行人绿 0 0 0 0 0P*.0 行人红 1 1 1 1 1道口控制字 55H 59H 59H 59H 59H/5DH通行规则如下:(1)车辆南北直行、各路右拐,南北向行人通行。
南北向通行时间为1min,各路右拐比直行滞后10s开放。
(2)车辆南北向左拐、各路右拐,行人禁行。
通行时间为1min。
(3)车辆东西向直行、各路右拐,东西向行人通行。
东西向通行时间为1min,各路右拐比直行滞后10s开放。
(4)车辆东西向左拐、各路右拐,行人禁行。
通行时间为1min。
表中通行规则,是以给控制红绿灯端口送控制码的方式实现的。
它的原理是,将按不同通行规则时的各路口的红绿灯亮灭情况转换为单片机端口控制码。
其指示灯功能通过T0定时中断服务程序实现。
定时器T0定时益出中断周期为10ms,中断累计20次(即1s)时对120s倒计时单元减1操作。
设计中将4种通行规则分成集中不同的亮灯方式,通过查询秒倒计时单元的数据,实现在不同的时间段给控制端口送不同的控制数据码。
控制码分为5个时间段:84—74s、74—58s、58—48s、48—10s、10—0s。
交通管理定时功能程序流程图如下页图所示。
5、调试及性能分析设计时按红绿交通灯控制程序和特种车辆经过中断程序两大部分电路进行测试。
1、红绿交通灯控制程序时器T0,直接按照表7.1中算好的数据码送出来控制灯,观察其逻辑状态是否符合要求。
可多次、反复地进行调试,直至逻辑关系正确。
值得注意的是,南北方向、东西方向的指示灯要同时调试。
2、特殊车辆通行时红外线检测电路的调试在模拟小车中放一块红外发射模块,将示波器输入端接在交通控制灯的红外接收模块的输出引脚上,当小车通过路口时,检测红外线是否被接收。
若该脚输出为低电平,则说明可以收到信号,电路正常。
本系统以AT89C51单片机为核心,开发程序调试阶段采用W78E516B进行在线编程及修改,可大大加快调试进度。
设计的交通灯可用于十字路口的车辆及行人的交通管理,显示采用2位7段数码管,可以很直观的显示红绿灯的开放和关闭的时间;设计中应用了两种倒计时显示方式, 84S 倒计时适用于车流量较大的城市,60s倒计时可用于中小型城市;功能完整,不仅有普通交通灯的指示功能,还增加了特种车辆自动通行功能。
其控制功能和效果与真实道口管理红绿灯完全一致。
ORG 0630HHA4S: MOV SP,#60HMOV DPTR,#0FF2BHMOV A,#80HMOVX @DPTR,AMOV DPTR,#0FF29HMOV A,#49HMOVX @DPTR,AINC DPTRMOVX @DPTR,AMOV R2,#25HLCALL DELAYHA4S3: MOV DPTR,#0FF29H MOV A,#08HMOVX @DPTR,AINC DPTRMOV A,#61HMOVX @DPTR,AMOV R2,#55HLCALL DELAYMOV R7,#05HHA4S1: MOV DPTR,#0FF29H MOV A,#04HMOVX @DPTR,AINC DPTRMOV A,#51HMOVX @DPTR,AMOV R2,#20HLCALL DELAYMOV DPTR,#0FF29HMOV A,#00HMOVX @DPTR,AINC DPTRMOV A,#41HMOVX @DPTR,AMOV R2,#20HLCALL DELAYDJNZ R7,HA4S1MOV DPTR,#0FF29HMOV A,#03HMOVX @DPTR,AINC DPTRMOV A,#0cHMOVX @DPTR,AMOV R2,#55HLCALL DELAYMOV R7,#05HHA4S2: MOV DPTR,#0FF29H MOV A,#02HMOVX @DPTR,AINC DPTRMOV A,#8aHMOV R2,#20HLCALL DELAYMOV DPTR,#0FF29HMOV A,#02HMOVX @DPTR,AINC DPTRMOV A,#08HMOVX @DPTR,AMOV R2,#20HLCALL DELAYDJNZ R7,HA4S2LJMP HA4S3DELAY: PUSH 02HDELAY1: PUSH 02HDELAY2: PUSH 02HDELAY3: DJNZ R2,DELAY3POP 02HDJNZ R2,DELAY2POP 02HDJNZ R2,DELAY1POP 02HDJNZ R2,DELAYRETEND交通灯(带外部中断)实验作者: 徐学军一.实验教学目的1、学习外部中断技术的基本使用方法。