8255控制交通灯

合集下载

8255控制交通灯实验总结

8255控制交通灯实验总结

8255控制交通灯实验总结
8255控制
交通灯实验总结
一、实验目的
1. 掌握8255控制器的控制原理和编程过程;
2. 学习8255控制器的编程、基本操作;
3. 通过实验指导的方式,掌握控制交通灯的基本原理;
4. 通过编程,实现交通灯控制系统的实现。

二、实验过程
1. 首先要对8255的编程进行编程,这就需要根据8255的控制字节和模式的要求进行操作;
2. 然后用它来控制交通灯,这需要根据交通灯的运行原理和总线接线的方式来编程控制它;
3. 然后对所做程序进行测试,以验证其控制的可靠性。

三、实验结果
通过本次实验,我们学会了怎样编程控制8255,并且学会了8255控制交通灯的方式,本次实验编程操作也顺利完成,经测试验证,程序实现的正确,交通灯可以根据8255控制运行。

四、总结
本次实验主要是让我们学习掌握8255模块的操作,实现8255控制交通灯的运行,实验结果证明,程序实现正确,交通灯可以根据8255控制运行。

今后,如果能继续拓展,可以把8255用来控制更复
杂的系统,这将有助于我们深入了解和掌握8255控制器的操作技术。

实验二8255A并行口实验(二)——交通灯实验

实验二8255A并行口实验(二)——交通灯实验

实验二 8255A并行口实验(二)——交通灯实验一、实验目的掌握通过8255A并行口传输数据的方法,以控制发光二极管的亮与灭。

二、实验内容1.硬件原理图如图3.22.硬件线路连接(1)8255A片选信号8255CS插孔和译码输出插孔0F0-0FF相连。

(2)8255AC口的PC0-PC7依次和L1-L8相连,B口的PB4-PB7依次和L9-L12相连。

(3)将8255A芯片旁边短路J5连VCC端。

3.编程提示1)通过8255A控制发光二极管PB4-PB7对应黄灯,PC0-PC3对应绿灯,PC4-PC7对应红灯,以模拟交通路灯的管理。

2)要完成本实验,必须先了解交通路灯的亮灭规律,设有一个十字路口1、3为南北方向,2、4为东西方向,初始状态为四个路口的红灯全亮。

之后,1、3路口的绿灯亮,2、4路口的红灯亮,1、3路口方向通车。

延时一段时间后,1、3路口的绿灯熄灭,而1、3路口的黄灯开始闪烁,闪烁若干次以后,1、3路口红灯亮,而同时2、4路口的绿灯亮,2、4路口方向通车,延时一段时间后,2、4路口的绿灯熄灭,而黄灯开始闪烁,闪烁若干次以后,再切换到1、3路口方向,之后,重复上述过程。

3)程序中设定好8255A的工作模式,及三个端口均工作在方式0,并处于输出状态。

4)各发光二极管共阳极。

使其点亮应使8255A相应端口的位清0。

三、实验步骤1.按图3.2连好实验线路2.运行实验程序(l)DVCC8086-B配置:在DVCC8086-B系统显示命令提示符“-”时,按GO键,显示500 00输入F000:B400按EXEC健在DVCC8086-B且示8255---2,同时L1-L2发光二极管模拟交通灯显示。

(2)OVCC8086-E配置:正确输入实验程序。

运行实验程序G=1000↓观察L1-L12发光二极管模拟交通灯显示情况。

8255交通灯控制实验

8255交通灯控制实验

交通灯控制实验计算机实验班1001 赵训201026811130交通灯控制实验:设计一个十字路口的交通灯控制,设初始状态是4个路口红灯全亮,然后,南北方向绿灯亮,延时30秒,南北方向灯灭,黄灯闪3次后,红灯亮,东西方绿灯亮,延时30秒,东西方黄灯闪3次后红灯亮。

重复上述过程。

要求:作出实验流程图。

硬件连接图。

写出汇编语言程序。

1、实验目的:分析实际的十字路口交通灯的亮灭过程,用实验箱上的8255实现交通灯的控制(红,黄,绿三色灯)。

2、实验设备及材料:微机原理和接口技术实验室的实验箱和电脑设备等。

3、理论依据:此设计是通过并行接口芯片8255A和8086计算机的硬件连接,以及通过8253延时的方法,来实现十字路口交通灯的模拟控制。

8255A是可编程的通用并行输入/输出接口芯片,因通用性强,使用灵活,可直接与CPU总线相连,应用非常广泛。

8255A芯片内部有3个8为的输入/输出端口,即A口,B口和C口。

从内部控制的角度来讲,可分为两组:A组合B组。

A 组控制模块管理A口和C口德高四位(PC7~PC4),B组控制模块管理B口和C口的低四位(PC3~PC0)。

如硬件连接图所示(在后),红灯(RLED),黄灯(YLEDD)和绿灯(GLED)分别接在8255的A,B,C口的低四位端口,PA0,PA1,PA2,PA3分别接1,2,3,4(南东北西)路口的红灯,B,C口类推。

8086工作在最小模式,低八位端口AD0~AD7接到8255和8253的D0~D7,AD8~AD15通过地址锁存器8282,接到三八译码器,译码后分别连到8255和8253的CS片选端。

8253的三个门控端接+5V,CLOCK0接由分频器产生的1MHZ的时钟脉冲,OUT0接到CLOCK1和CLOCK2,OUT1接到8086的AD18,8086通过检测此端口是否有高电平来判断是否30s定时到。

OUT2产生1MHZ方波通过或门和8255的B口共同控制黄灯的闪烁。

8255控制交通灯实验原理

8255控制交通灯实验原理

8255控制交通灯实验原理我们需要了解交通灯的工作原理。

一般来说,交通灯是通过控制红、黄、绿三个灯的亮灭来指示交通的状态。

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

交通灯的亮灭是通过控制电流的开关来实现的。

在实验中,我们将使用8255芯片的三个I/O端口来控制交通灯的红、黄、绿三个灯。

具体来说,我们将把红灯连接到8255芯片的一个I/O端口,黄灯连接到另一个I/O端口,绿灯连接到第三个I/O端口。

通过编程控制这三个I/O端口的输出电平,我们就可以控制交通灯的亮灭。

在编程方面,我们需要使用汇编语言来编写控制程序。

首先,我们需要初始化8255芯片的工作模式。

通过将控制字写入控制寄存器,我们可以将8255芯片设置为输出模式,同时设置输出的电平。

然后,我们需要编写一个循环程序,不断改变输出的电平,从而实现交通灯灯光的变换。

具体来说,我们可以通过改变红、黄、绿三个灯的输出电平的组合来控制交通灯的亮灭。

在实验中,我们可以通过按下开关来触发交通灯的变换。

当按下开关时,控制程序将会执行一次循环,改变交通灯的亮灭状态。

这样,我们就可以通过按下开关来模拟交通灯的工作过程。

通过这个实验,我们可以更好地理解8255芯片的工作原理,并且掌握使用8255芯片来控制外部设备的方法。

在实际应用中,我们可以利用8255芯片来控制各种外部设备,如LED灯、电机等。

这样,我们可以通过编程来实现对外部设备的控制,从而实现各种功能。

使用8255芯片来控制交通灯是一种简单而有效的方法。

通过编程控制8255芯片的输出电平,我们可以实现交通灯的亮灭变换。

这个实验不仅可以帮助我们更好地理解8255芯片的工作原理,还可以培养我们的编程能力。

希望通过这个实验,我们可以更好地掌握8255芯片的使用,为以后的学习和工作打下良好的基础。

8255A控制交通灯完整实验

8255A控制交通灯完整实验

8255A控制交通灯完整实验二○一一~二○一二学年第二学期信息科学与工程学院课程设计报告书课程名称:微机原理课程设计班级:电子信息工程2009级 6 班学号:200904135150姓名:张强指导教师:徐守明二○一二年二月二十日8255A控制交通灯实验一、实验流程图如下:1、主程序流程图2、中断服务程序(以外部中断0为例)1、2、的设计延时程序,需要知道时钟周期,状态周期,机器周期的概念以及循环程序设计的基本思路。

3、8255A编程,实验中应该先写控制字后写方式字。

这里需要指出的是,硬件连线时一定要严格按照8255A的控制字连线,也就是地址分配问题。

AT89S52的P2口在实验中做地址线,充当地址高8位,P0口既做地址线也做数据线,做地址线时充当地址低8位。

4、8255A选择A口时,不能直接把A0,A1接地,而应该用地址赋值语句给A0,A1赋值,使其同时为低电平,选中A口。

四、实验程序如下:;*********8255PA口的次低三位是南北路口。

次高三位是东西路口*********ORG 0000HLJMP STARTORG 0003H ;外部中断0的中断程序入口地址LJMP KEY1 ;转外部中断0中断服务程序ORG 0013H ;外部中断1的中断程序入口地址LJMP KEY2 ;转外部中断1中断服务程序START:SETB IT0 ;INTO为边沿触发SETB IT1SETB EX0 ;启动T0SETB EX1SETB EA ;开总中断MOV DPTR,#03FFHMOV A,#80HMOVX @DPTR,AS1: MOV A,#10111101BM OV DPTR,#00FFHM OVX @DPTR,A ;第一种状态:东西红灯亮,南北绿灯亮C ALL DELAY5S ;5秒延时西红灯亮,南北黄灯亮M OV DPTR,#00FFHM OVX @DPTR,AC ALL DELAY1S ; 0.2秒延时M OV A,#10111111B ;东西红灯亮,南北黄灯灭,黄灯第一次闪烁M OV DPTR,#00FFHMOVX @DPTR,ACALL DELAY1SMOV A,#10111011B ;第二种状态:东西红灯亮,南北黄灯亮M OV DPTR,#00FFHM OVX @DPTR,AC ALL DELAY1SM OV A,#10111111B ;东西红灯亮,南北黄灯灭,黄灯第二次闪烁M OV DPTR,#00FFHMOVX @DPTR,ACALL DELAY1S红灯亮,南北黄灯亮M OV DPTR,#00FFHM OVX @DPTR,AC ALL DELAY1SM OV A,#10111111B ;东西红灯亮,南北黄灯灭,黄灯第次闪烁M OV DPTR,#00FFHMOVX @DPTR,ACALL DELAY1SS3: MOV A,#11100111B ;第三种状态:东西绿灯亮,南北红灯亮MOV DPTR,#00FFHMOVX @DPTR,ACALL DELAY5SS4: MOV A,#11010111B ;第四种状态:东西黄灯亮,南北红灯亮MOV DPTR,#00FFHMOVX @DPTR,ACALL DELAY1SMOV A,#11110111B ;东西黄灯灭,南北红灯亮,第一次闪烁MOV DPTR,#00FFHMOVX @DPTR,ACALL DELAY1SMOV A,#11010111B ;第四种状态:东西黄灯亮,南北红灯亮MOV DPTR,#00FFHMOVX @DPTR,ACALL DELAY1SMOV A,#11110111B ;东西黄灯灭,南北红灯亮,第二次闪烁MOV DPTR,#00FFHMOVX @DPTR,ACALL DELAY1SMOV A,#11010111B ;第四种状态:东西黄灯亮,南北红灯亮MOV DPTR,#00FFHMOVX @DPTR,ACALL DELAY1SMOV A,#11110111B ;东西黄灯灭,南北红灯亮,第三次闪烁MOV DPTR,#00FFHMOVX @DPTR,ACALL DELAY1SAJMP S1 ;跳转到状态S1状态,循环DELAY5S: ;延时5秒MOV R7,#100L0: MOV R6,#100L1: MOV R5,#248L2: DJNZ R5,L2DJNZ R6,L1D JNZ R7,L0RETDELAY1S: ;延时0.5秒MOV R4,#200L3: MOV R3,#248L4: DJNZ R3,L4D JNZ R4,L3R ET;*****************紧急处理1:东西红灯亮,南北绿灯亮***************************** KEY1:PUSH PSWMOV A,#10111101B ;紧急处理1:东西红灯亮,南北绿灯亮MOV DPTR,#00FFHMOVX @DPTR,AMOV R7,#100 ;延时5S LCALL L0;POP PSW ;注意这里不能把POP弹出堆栈段,弹出就不对RETI ;返回中断位置执行下一条指令;*****************紧急处理2:东西红灯亮,南北绿灯亮**************************** KEY2:PUSH PSWMOV A,#11100111B ;紧急处理2:东西红灯亮,南北绿灯亮MOV DPTR,#00FFHMOVX @DPTR,AMOV R7,#100 ;延时5SLCALL L0;POP PSWRETI ;返回中断位置执行下一条指令END。

微机原理课程设计-8255控制交通灯[精选合集]

微机原理课程设计-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管芯封装在一起,公用负端。

当红色正端加高电平,绿色正端加低电平时,红灯亮;红色正端加低电平,绿色正端加高电平时,绿灯亮;两端都加高电平时,黄灯亮。

(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交通灯程序

交通灯程序/*********************************************************** 十字路口交通灯控制 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;}}。

8255控制交通灯

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)。

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

专业:机电一体化班级:机电姓名:学号:设计题目: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)。

到目前为止,中国的单片机应用和嵌入式系统开发走过了二十余年的历程,随着嵌入式系统逐渐深入社会生活各个方面,单片机也有了从传统的8位处理器平台向32位高级RISC处理器平台转变的趋势,但8位机依然难以被取代。

国民经济建设、军事及家用电器等各个领域,尤其是手机、汽车自动导航设备、PDA、智能玩具、智能家电、医疗设备等行业都是国内目前急需单片机人才的行业。

21世纪人类以迈入“知识经济”时代,科学技术正发生着深刻的改变。

“以信息带动工业化”是我国近年来乃至更长时间第二产业发展的主题,也是我国科学技术发展的必经之路。

单片机自70年代问世以来作为微型计算机的一个很重要的分支,由于其具有集成度高、处理功能强、系统结构简单、价格低廉等特点,因此在工业控制、家用电器、通信设备、信息处理、等各种测控领域的应用都得了令人瞩目的成果。

单片机具有极其高的性能价格比受到人们的重视和关注。

它采用模拟/数字电路实现电控,大部分功能单元都可通过对单片机相关硬件功能的扩展及专用程序的开发来实现系统的要求。

这也代表着许多电路设计问题将转化为程序设计问题。

本文介绍以51系列单片机为核心的交通信号灯控制,详细阐述了其工作原理、基本功能框图、关键设计技术及软件工作流程。

1.2 课题背景及设计思想随着社会的发展,城市规模的不断扩大,城市交通成为制约城市发展的一大因素。

人口和汽车日益增长,市区交通也日益拥挤,人们的安全问题当然也日益重要。

因此,红绿交通信号灯成为交管部门管理交通的重要工具之一。

有了交通灯,人们的安全出行也有了很大的保障。

自从交通灯诞生以来,其内部的电路控制系统就不断的被改进,设计方法也开始多种多样,从而使交通灯显得更加智能化。

尤其是近几年来,随着电子与计算机技术的飞速发展,电子电路分析和设计方法有了很大的改进,电子设计自动化也已经成为现代电子系统中不可或缺的工具和手段,这些都为交通灯控制系统的设计提供了一定的技术基础。

由于单片机本身具有通讯联网功能,将同一条道路上的信号灯组成一个局域网进行统一调度管理,可缩短车辆通行的等候时上图由七部分组成:传感器、下位机、主控机、键盘、显示器、打印机以及声光报警。

在十字路口安装监测传感器可以连接摄象机将路口违章及故障现象传送给下位机(8751),再通过通讯电缆将信息传给主控机(PC),工作人员可以通过声光报警及显示器监控十字路口的实际交通流量情况。

同时通过键盘和打印机来进行人机交互工作。

鉴于时间及所学知识所限,文中仅以一个网络节点来研究其对交通灯进行控制的原理以及实现过程,下文以一个下位机(8751)对十字路口交通灯的管理作为研究对象来进行讨论。

第二章系统控制要求设计的交通信号灯自动控制系统主要完成十字路口东、西、南、北四个方向红、黄、绿灯的时间控制,控制图如下所示:绿色20秒,闪烁5秒,黄色5秒红色30秒东西方向东西方向红色30秒绿色20秒,闪烁5秒,黄色5秒南北方向南北方向北西东南控制方案为一个东西南北走向的十字路,初始状态0为四个路口红灯亮.然后转状态1东西绿通车,南北红灯。

经过一段延时转状态2东西绿灯灭,黄灯闪烁几次,南北仍然红灯。

再延时转状态3南北绿灯通车,东西红灯.过一段延时转状态4南北绿灯灭, 黄灯闪烁几次,东西仍然红灯,最后循环至状态1。

第三章交通灯总体设计方案3.1 设计思路单片机要进行工作,必须构成单片机系统。

单片机系统实质上就是一个微计算机系统,它主要由硬件和软件两大部分组成,硬件为构成计算机系统的所有电子、机械和磁性的部件或设备,软件则是各种程序及数据的总称。

总体设计方案分为硬件设计与软件设计两大部分,是以51系列单片机8751为主控芯片来进行控制和数据的处理与传输,同时配以相应硬件电路来控制十二个发光二极管,来实现交通灯的燃灭管理。

交通灯软件部分主要为整个流程的控制程序,运用单片机汇编语言编写,程序存储在8751芯片的内部ROM中。

3.2 设计框图总体设计框图由五部分组成,即主控制器8751、扩展并行口8255、地址缓冲器74LS244、LED显示及振荡电路。

框图如下:主控芯片8751外接振荡电路,构成单片机最小系统。

由于系统需要进行节点间通讯及对传感器等器件的管理,因此为了不浪费系统原有的口线,这里在主控芯片8751的基础上扩展了一个并行I/O接口8255。

考虑到在实际应用中当电流过小时将无法驱动显示,所以接74LS244进行驱动缓冲,显示器主要通过缓冲器建立人机通道,根据人们的要求来实现对交通灯的控制。

第四章硬件设计4.1 主控芯片8751Intel公司于1980年推出8位的高性能8051单片机,在工业控制领域引起不小的轰动,并迅速确立了其不可动摇的地位。

目前8051系列单片机各生产厂商的主流产品有几十个系列,几百个品种。

尽管其各具特色,名称各异,但作为集CPU、RAM、ROM(或EPROM)、I/O 接口、定时器/计数器、中断系统为一体的单片机,其原理大同小异。

8751 芯片作为Intel公司生产的MCS-51子系列中的一个主要类型,片内驻留有4KB的ROM,外部可用16位地扩展到最大64KB的ROM 空间。

8751数据存储器地址空间分为内部和外部两个独立部分。

片内有256字节的数据存储器地址空间,低128字节地址空间为内部ROM区,作为处理问题的数据缓冲器,高128字节地址空间为特殊功能寄存器区,外部数据存储地址为64KB。

内部RAM及特殊寄存器各存储单元之间的数据传送用“MOV”指令,访问外部RAM或扩展I/O 口用“MOVX”指令。

芯片引脚分布功能如下:VCC8751共有4个I/O端口,为P0、P1、P2、P3 。

(P0.0~P0.7,P1.0~P1.7,P2.0~P2.7,P3.0~P3.7)4个I/O口都为双向且带有锁存器。

每个口有8位,共计32条I/O线。

各端口的功能如下:1. P0 有三个功能:1)外部扩充存储器时,当作数据总线(D0~D7)。

2)外部扩充存储器时,当作地址总线(A0~A7)。

3)不扩充时,可作一般I/O使用,但内部无上拉电阻,作为输入或输出时应在外部接上拉电阻。

2. P1 只做I/O口使用,其内部有上拉电阻。

3. P2 有两个功能:1)扩充外部存储器时,当作地址总线(A8~A15)使用。

2)做一般I/O使用,其内部有上拉电阻。

4. P3 有两个功能。

除了作为I/O使用外(内部有上拉电阻),还有一些特殊功能,由特殊寄存器来设置。

1)P3.0/RXD串行输入口。

2)P3.1/TXD串行输出口。

3)P3.2/INTO外部中断。

4)P3.3/INT1外部中断。

5)P3.4/T0(TIMER0)的外部输入脚。

6)P3.5/T1(TIMER1)的外部输入脚。

7)P3.6/WR外部数据存储器的写入控制信号。

8)P3.7/RD外部数据存储器的读取控制信号。

5. VDD:电源+5V。

VSS:GND接地。

6.RESET 此脚为高电平时(约2个机器周期),可将CPU复位。

7. ALE/PROG (ADDRESS LATCH ENABLE)地址锁存使能信号端,有三种功能:1)8751外接RAM/ROM:ALE接地址锁存器8282(8212)的STB 脚,74373的EN脚,当CPU对外部存储器进行存取时,用以锁住地址的低位地址。

2)8751未外接RAM/ROM:在系统中未使用外部存储器时,ALE 脚也会有1/6石英晶体的振荡频率,可作为外部时钟。

3)在烧写EPROM:ALE作为烧写时钟的输入端。

8. PSEN(PROGRAM STORE ENABLE):程序储存使能端。

9. EA/VPP 1) 接高电平时:CPU 读取内部程序存储器(ROM ),如8051/8052。

扩充外部ROM :存储器超过0FFFH (8051)、1FFFH (8052)时,自动读取外部RON 。

2)接低电平时:CPU 读取外部程序存储器(ROM )。

相关文档
最新文档