8255,8253交通灯模拟实验

合集下载

基于单片机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交通灯实验报告

8255交通灯实验报告8255交通灯实验报告一、实验目的本实验旨在通过使用8255芯片控制交通灯的亮灭,熟悉和掌握8255芯片的使用方法,并了解交通灯控制系统的基本原理。

二、实验原理交通灯控制系统是一种常见的嵌入式系统,其核心是使用微控制器或者可编程逻辑器件控制交通灯的亮灭。

在本实验中,我们使用8255芯片作为控制器,通过控制芯片的输入输出端口,实现交通灯的控制。

8255芯片是一种通用输入输出设备,具有24个可编程的输入输出引脚,可以通过编程控制这些引脚的状态。

在本实验中,我们将使用8255芯片的其中8个引脚来控制交通灯的亮灭。

三、实验材料1. 8255芯片2. 交通灯模块3. 电路连接线4. 电源四、实验步骤1. 将8255芯片插入实验板上的相应位置,并根据芯片的引脚定义连接电路。

2. 将交通灯模块连接到8255芯片的输出端口。

3. 将电源连接到电路上,确保电源正常工作。

4. 编写控制程序,通过对8255芯片的输入输出端口进行编程,控制交通灯的亮灭。

5. 运行程序,观察交通灯的亮灭情况。

五、实验结果经过实验,我们成功地使用8255芯片控制了交通灯的亮灭。

通过编程控制8255芯片的输出端口,我们可以实现交通灯的各种状态,如红灯亮、绿灯亮、黄灯亮等。

实验结果表明,8255芯片是一种可靠且灵活的控制器,适用于各种嵌入式系统。

六、实验总结通过本次实验,我们深入了解了8255芯片的使用方法,并掌握了交通灯控制系统的基本原理。

8255芯片作为一种通用输入输出设备,具有广泛的应用前景。

在实际工程中,我们可以使用8255芯片来控制各种设备,如灯光、电机等,实现更加复杂的控制功能。

然而,本实验只是对8255芯片的基本应用进行了简单的演示。

在实际项目中,我们还需要考虑更多的因素,如多任务处理、中断处理等。

因此,我们需要进一步学习和掌握更加高级的嵌入式系统开发技术,以应对更加复杂的控制需求。

总之,本次实验为我们提供了一个宝贵的学习机会,让我们更加深入地了解了8255芯片的应用和交通灯控制系统的原理。

8255交通灯模拟实验

8255交通灯模拟实验

实验一(2) 8255交通灯模拟实验1、实验要求: 编写程序,以8255的PA 口作为输出口,控制4个双色LED 灯(可发红、绿、黄光),模拟十字路口交通灯管理。

2、实验目的:(1)学习I /0口扩展方法;掌握8255的工作原理以及编程方法,了解软件与硬件的调试技术。

(2)学习模拟交通灯控制方法;(3)学习双色LED 灯的使用;3.8255的工作原理:8255有三个8位的并行口,端口既可以编程为普通I/O 口,也可以编程为选通I/O 口和双向传输口。

8255为总线兼容型,可以与CPU 的总线直接接口。

其中,口地址取决于片选CS 和A1、A0。

选择如下:8255方式字选择:工作方式字特征位本实验中8255编程为PB口、PC口、PA口均输出,根据8255状态控制字选择方法。

8255控制字应为80H。

4.实验器材:(1)G2010+实验平台 1台(2)G6W仿真器1台(3)连线若干根(4)8255芯片1片(5)G2002—8086板 l块5.接线方案:6、实验说明:(1) 把G2002—8086板上的8255的片选CS5孔连“译码器”的YC2(0A000H)孔。

因8255片选信号为0A000H,所以,A口为0A000H、口为0A001H、C口为0A002H、命令口为0A003H。

(2) 因为本实验是模拟交通灯控制实验,所以要先了解实际交通灯的变化规律。

假设一个十字路口为东西南北走向。

初始状态0为东西红灯,南北红灯。

然后转状态1南北绿灯通车,东西红灯。

过一段时间转状态2,南北绿灯闪几次转亮黄灯,东西仍然红灯,延时儿秒。

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

过一段时间转状态4,东西绿灯闪几次转亮黄灯,延时几秒,南北仍然红灯。

最后循环至状态1。

(3)双色LED是由一个红灯LED管芯和一个绿色LED管芯封装在一起,公用负端。

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

计算机原理实验--交通灯

计算机原理实验--交通灯

实验六: 计算机原理课程设计1.写出设计题目的要求利用模型中的两组“红—黄—绿”信号指示灯,分别作为两条道路的信号灯。

具体要求如下:1、利用8253实现秒定时。

其中红灯亮8秒,绿灯亮5秒,黄灯亮2秒(绿灯过渡到红灯时有两秒的黄灯闪烁周期)。

2、利用实验台上的单脉冲模拟人行横道的“应急通行”按钮,当按动按钮时:延时一秒后,信号转为绿灯,并延时4秒,再转回到红灯。

尝试使用单中断源处理“应急通行信号”的鉴别、处理。

当本方向为绿灯时忽略本道路人行道上的“应急通行”按钮。

3、当本条道路的信号灯为红灯时,使能“闯红灯检测信号”——路旁的白色灯,当有闯红灯发生时,白色灯发光,发出提示。

当本方向为绿灯、黄灯时忽略“闯红灯检测条件”。

2.按照题目要求设计电路3.设计完电路后,编写程序思路设计1、设定D8255A的PB口作输出、显示信号灯的效果;3、将D8255A的PA口设定为输入,并使用PA0与8253的 OUT1连接,CPU通过查询PA0的电平变化(秒信号),控制信号灯运行;4、分别使用两个单脉冲的输出(正的脉冲数出)与386模块的MIR5和SIR0连接,作为人行横道的“紧急通行”呼叫信号。

当产生呼叫信号后,该方向的信号灯变为绿色,并持续6秒,再持续黄灯2秒,然后,信号灯恢复正常运行。

5、由PC口接数码管的a-dp,显示灯亮的时间。

6、设计分析及系统方案设计将信号灯的每一种状态设定成两个“状态字”,每个状态字有一个计时时间TIME,CPU 只要通过8255A的PC端口每隔F1秒更新一次“状态字”就可以实现信号灯的正常工作。

程序分为段定义和芯片初始化、红绿灯各状态切换、中断服务程序三大部。

初始化8255,A口作输入,B口、C口为输出。

红绿灯各状态切换:状态0:由8255的C口输出8位信号,将第一条干线设置为绿灯,第二条干线为红灯。

接着由8254的OUT1输出1S周期信号到8255A口,使CX开始自减。

当CX减到0时,结束状态一。

微机原理交通灯控制实验及其详细

微机原理交通灯控制实验及其详细

开始设置8255C口输出南北路口的绿灯、东西路口的红灯亮长延时南北路口的黄灯闪烁,东西路口红灯亮南北路口的红灯、东西路口的绿灯亮长延时南北路口红灯亮、东西路口黄灯亮闪烁是否有键按下N交通灯信号控制实验一、实验目的1、掌握并行接口8253的基本原理2、掌握8253的编程方法二、实验内容如图,L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。

编程使六个灯按交通变化规律亮灭。

三、编程提示1、8255控制寄存器地址:28BH—0C40BHA口地址:288H—04C408HC口地址:28AH—04C40AH2、十字路口交通灯的变化规律要求(1)南北路口的绿灯、东西路口的红灯同时亮三秒;(2)南北路口的黄灯闪烁三次,同时东西路口的红灯继续亮;(3)南北路口的红灯、东西路口的绿灯同时亮三秒;(4)南北路口的红灯继续亮、同时东西路口的黄灯亮闪烁三次;(5)转(1)重复。

3、程序设计流程四、程序设计及实验调试程序设计的思想及注意事项:1.首先是在选择程序时是选用软件延时还是硬件延时。

我采用的是C口方式0输入,所以选用了软件延时。

2.在选择循环的时间上,老师上课时说过,长延时可以采用双层嵌套,外层嵌套为0FFFFH,内层嵌套为4000H,我在编程时外层送进了0,相当于初值为65536,内层送进了4000H。

为了达到闪烁和延时的区别,我在编闪烁的程序时,给外层嵌套送入初值3000H,内层0100H (这是我通过实验的结果)。

人眼感觉闪烁的效果只是短延时的结果。

实验程序:CODE SEGMENTASSUME CS:CODESTART: MOV DX,0C40BHMOV AL,10010000B ;C口方式0输入OUT DX,ALFIRST: MOV DX,0C40AHMOV AL,00100100BOUT DX,AL ;南北绿,东西红写入C口MOV CX,0 ;送入初值65536MOV AX,4000H ;软件长延时,由经验值确定DELAY1: DEC AXJNZ DELAY1LOOP DELAY1MOV BL,4 ;控制黄灯亮的次数SECOND:MOV DX,0C40AHMOV AL,01000100BOUT DX,AL ;南北黄,东西红MOV CX,3000HMOV AX,0100HLI1:DEC AXJNZ LI1LOOP LI1MOV DX,0C40AH ;软件短延时MOV AL,00000100B ;南北黄灭OUT DX,ALMOV CX,3000HMOV AX,0100HWEN1:DEC AXJNZ WEN1 ;软件短延时LOOP WEN1DEC BLJNZ SECOND ;黄灯闪烁4次THIRD: MOV DX,0C40AH ;写入C口MOV AL,10000001BOUT DX,AL ;南北红,东西绿MOV CX,0MOV AX,4000HDELAY2: DEC AX ;软件长延时JNZ DELAY2LOOP DELAY2MOV BL,4 ;控制黄灯亮的次数FORTH: MOV DX,0C40AH ;写入C口MOV AL,10000010BOUT DX,AL ;南北红,东西黄MOV CX,3000HMOV AX,0100HLI2:DEC AXJNZ LI2 ;软件短延时LOOP LI2MOV DX,0C40AHMOV AL,10000000BOUT DX,AL ;东西黄灭MOV CX,3000HMOV AX,0100HWEN2:DEC AXJNZ WEN2LOOP WEN2DEC BL步编程下来的,但是在调试结果时,仍发现了红灯错亮的问题,最后发现时写程序时的粗心所致。

微型计算机原理实验 交通灯的设计实验

微型计算机原理实验 交通灯的设计实验

微型计算机原理与接口技术实验基于唐都TD-PITE实验箱的交通灯实验【实验内容】用8255A和8253/8254设计一个交通信号灯,其中用D0~D3模拟红灯,D4~D7模拟绿灯,D8~D11模拟黄灯。

要求如下:(1)除上述出现的LED灯以外,其他LED灯不亮;(2)同组LED等要动作一致,同时亮起或同时熄灭;(3)交通灯的亮灭规律:开始时东西路口的绿灯亮,南北路口的红灯亮,此时东西路口方向通车。

等待5秒后,东西路口的绿灯熄灭,黄灯开始闪烁2秒。

然后东西路口红灯亮,而同时南北路口的绿灯亮,南北路口方向开始通车,延时等待5秒后,南北路口的绿灯熄灭,黄灯开始闪烁两秒。

闪烁若干次后,再切换到东西路口方向,之后重复以上过程。

【实验思路】本题虽然文字描述较多,但并不复杂,鉴于8254芯片并不好使用,在本次实验中使用8255芯片与由空循环组成的DELAY延时函数完成本题目。

基本思路是设立一个死循环,在一次循环中包含以下事件:东西路口通行,南北不通行→东西路口绿灯熄灭,黄灯闪烁→南北路口通行,东西不通行→南北路口绿灯熄灭,黄灯闪烁。

在每个事件伊始,只需要将正确的值传入8255的对应端口,则相应的LED等会亮起或熄灭。

合适执行这些指令则有DELAY延时函数指定。

【实验连线】本实验通过唐都公司TD-PITE实验装置与Wmd86联机集成开发调试软件完成。

如上图所示,本次实验中使用8255的A、B端口,其A、B端口均用方式0,皆作为输出端。

其中A端口用于红灯与绿灯,B端口低四位用于黄灯,高四位不使用。

【实验代码】;========================================================= IOY0 EQU 0600H ;片选IOY0对应的端口始地址MY8255_A EQU IOY0+00H*2 ;8255的A口地址MY8255_B EQU IOY0+01H*2 ;8255的B口地址MY8255_C EQU IOY0+02H*2 ;8255的C口地址MY8255_MODE EQU IOY0+03H*2 ;8255的控制寄存器地址SSTACK SEGMENT STACKDW 32 DUP(?)SSTACK ENDSCODE SEGMENTASSUME CS:CODESTART: MOV DX, MY8255_MODEMOV AL, 80HOUT DX, ALAA1: MOV BX, 3C00H;东西路口通行MOV DX, MY8255_AMOV AL, BHOUT DX, ALMOV DX, MY8255_BMOV AL, BLOUT DX, ALPUSH CXMOV CX, 0005HGO1: CALL DELAYCALL DELAYCALL DELAYCALL DELAYLOOP GO1POP CXMOV BX, 00C0FHMOV DX, MY8255_AMOV AL, BHOUT DX, ALMOV DX, MY8255_BMOV AL, BLOUT DX, ALPUSH CXMOV CX, 0002HGO2: CALL DELAYCALL DELAYCALL DELAYCALL DELAYLOOP GO2POP CX;东西路口黄灯警告MOV BX, 0C300H;南北通行MOV DX, MY8255_AMOV AL, BHOUT DX, ALMOV DX, MY8255_BMOV AL, BLOUT DX, ALPUSH CXMOV CX, 0005HGO3: CALL DELAYCALL DELAYCALL DELAYCALL DELAYLOOP GO3POP CX;东西路口黄灯警告MOV BX, 0030FH;南北通行MOV DX, MY8255_AMOV AL, BHOUT DX, ALMOV DX, MY8255_BMOV AL, BLOUT DX, ALPUSH CXMOV CX, 0002HGO4: CALL DELAYCALL DELAYCALL DELAYCALL DELAYLOOP GO4POP CX;东西路口黄灯警告JMP AA1DELAY: P USH CXMOV CX, 0FFFFHAA2: PUSH AXPUSH AXPOP AXPOP AXLOOP AA2POP CXRETCODE ENDSEND START。

微机实验报告 交通灯实验

微机实验报告 交通灯实验

电子信息工程学系实验报告课程名称:微型计算机技术成绩:实验项目名称:交通灯实验实验时间:2011-12-16指导教师(签名):班级:通信091 姓名:Jxairy 学号:910705131实验目的:1、进一步熟悉掌握8255的控制。

2、进一步熟悉掌握8088/86对8259的控制方法。

3、进一步熟悉掌握8253的控制。

实验环境:Windows XP操作系统、ZY15MicInt12BB微机原理及接口实验箱一台、湖北众友微机原理与接口技术软件。

原理说明:本实验主要用到的实验模块:系统模块、8253模块、8255模块、8259模块、0-1指示模块、实验译码单元等。

(一)、8253模块简介:8253/8254是可编程的定时器芯片。

它们都是包含三个独立的16位通道。

每个通道可作定时器也可作计数器使用,可通过软件编程选定6种工作方式之任一种。

它们都用N沟道MOS工艺制成,只需要一组+5V电源。

8253的每个计数器通道都有6种工作方式可供选用。

区分这6种工作方式的主要标志有3点:一是输出波形不同;二是启动计数器的触发方式不同;三是计数过程中门控信号GA TE对计数操作的控制不同。

8253方式控制字设定,如图7.1所示。

图7.1 方式控制字设定8253和系统相连的信号线在实验箱内部都已经连好,实验过程中只需要连接信号到8253模块通道2的OUT2、CLK2和GATE2即可。

(二)、8255模块简介:8255是Intel公司生产的与Intel8080/8085系列的MPU配套的可编程外围接口电路,简称PPI。

它有A、B、C三个八位端口寄存器,通过24位端口线与外部设备相连,基中C口可分为上半部和下半部。

这24根端口线全部为双向三态。

三个端口可分二组来使用,可分别工作于三种不同的工作方式。

8255方式选择控制字分析,如图7.2所示:8255端口C置1/置0控制字分析(A1、A0 =11),如图7.3所示:8255基本操作与端口地址,如下表所示:图7.2 8255方式选择控制字图7.3 8255端口C置1/置0控制字表8255基本操作与端口地址图7.4 8259初始化流程(三)、8259模块简介:8086的INTR中断请求信号来自中断控制器8259A,可以是电平触发方式,也可以边沿触发。

硬件课程设计实验报告-模拟交通灯

硬件课程设计实验报告-模拟交通灯

硬件部件设计与调试实验题目:模拟交通灯实验目的与要求:⒈了解交通灯管理的基本工作原理⒉熟悉8259A中断控制器的工作原理和应用编程⒊熟悉8255A并行接口的各种工作方式和应用⒋熟悉8253计数器/定时器的工作方式及应用编程,掌握利用软硬件相结合定时的方法⒌掌握多位LED显示问题的解决实验原理与方法:8259、8255A和8253的工作原理:一、8259的工作原理:1、数据总线缓冲器:8259A与系统数据总线的接口,是8位双向三态缓冲器。

CPU与8259A之间的控制命令信息、状态信息以及中断类型信息,都是通过缓冲器传送的。

2、读/写控制逻辑:CPU通过它实现对8259A的读/写操作。

3、级连缓冲器:用以实现8259A芯片之间的级连,使得中断源可以由8级扩展至64级。

4、控制逻辑电路:对整个芯片内部各部件的工作进行协调和控制。

5、中断请求寄存器IRR:8位,用以分别保存8个中断请求信号,当响应的中断请求输入脚有中断请求时,该寄存器的相应位置1。

6、中断屏蔽寄存器IMR:8位,相应位用以对8个中断源的中断请求信号进行屏蔽控制。

当其中某位置“0“时,则相应的中断请求可以向CPU提出;否则,相应的中断请求被屏蔽,即不允许向CPU提出中断请求。

该寄存器的内容为8259A的操作命令字OCW1,可以由程序设置或改变。

7、中断服务寄存器ISR:8位,当CPU正在处理某个中断源的中断请求时,ISR寄存器中的相应位置1。

8、用以比较正在处理的中断和刚刚进入的中断请求之间的优先级别,以决定是否产生多重中断或中断嵌套。

二、8255A的工作原理:1、8255A的内部结构:1)数据总线缓冲器:这是一个双向三态的8位数据缓冲器,它是8255A与微机系统数据总线的接口。

输入输出的数据、CPU输出的控制字以及CPU输入的状态信息都是通过这个缓冲器传送的。

2)三个端口A,B和C:A端口包含一个8位数据输出锁存器和缓冲器,一个8位数据输入锁存器。

实验一8255控制交通灯实验

实验一8255控制交通灯实验

实验一 8255控制交通灯实验一、实验目的与要求1、了解8255芯片的工作原理,熟悉其初始化编程方法以及输入、输出程序设计技巧。

学会使用8255并行接口芯片实现各种控制功能,如本实验(控制交通灯)等。

并行接口芯片实现各种控制功能,如本实验(控制交通灯)等。

2、熟悉8255内部结构和与8088的接口逻辑,熟悉8255芯片的3种工作方式以及控制字格式。

字格式。

3、认真预习本节实验内容,尝试自行编写程序,填写实验报告。

、认真预习本节实验内容,尝试自行编写程序,填写实验报告。

二、实验设备STAR 系列实验仪一套、系列实验仪一套、PC PC 机一台机一台三、实验内容1、编写程序:使用8255的PA0..2PA0..2、、PA4..6控制LED 指示灯,实现交通灯功能。

指示灯,实现交通灯功能。

2、连接线路验证8255的功能,熟悉它的使用方法。

的功能,熟悉它的使用方法。

四、实验原理图D034D133D232D331D430D529D628D727PA04PA13PA22PA31PA440PA539PA638PA737PB018PB119PB220PB321PB422PB523PB624PB725PC014PC115PC216PC317PC413PC512PC611PC710RD 5WR 36A09A18RESET 35CS68255U36D0D1D2D3D4D5D6D7WRRD RSTA0A1PC5PC6PC7PC2PC3PC4PC0PC1DS35DS36DS37DS38DS39DS40DS4112345678VCCDS42A0A1CSCS1(0F000H)510R111510R112510R113510R114510R115510R116510R117510R118五、实验步骤1、连线说明:、连线说明:B4区:区:CS CS CS、、A0A0、、A1 ————A3区:CS1CS1、、A0A0、、A1B4区:区:JP56JP56JP56((PA 口)口)————G6区:区:JP65 JP652、观察实验结果,是否能看到模拟的交通灯控制过程。

北京工业大学-微机原理-实验十二-交通灯控制实验-实验报告

北京工业大学-微机原理-实验十二-交通灯控制实验-实验报告

微机原理实验报告——实验九交通灯控制实验姓名:学号:一、实验要求用8255、8253芯片模拟实现交通灯控制,要求亮灯时间用8253控制二、延时置数设计提供的时钟频率为1MHz,而8253最大工作频率为2MHz,所以无需分频。

延时5秒对应的计数初值为N=5秒/1MHz=5000000,因为8253有3个16位计数器,每个计数器最大计数初值为:65535<5000000,所以将两个计数器串联使用。

计数器0计数初值为1000,计数器1计数初值为5000。

三、实验内容1.实验电路原理图2.实际电路图2.实验流程图3.实验代码IOPORT EQU 5400H-280H ;定义CPU输出地址CODE SEGMENTASSUME CS:CODESTART: MOV AL, 00100101B ;设置8253用计数器0,只读高字节,方式2(自动重复),10进制MOV DX, IOPORT+293HOUT DX, ALMOV AL, 10H ;给计数器0置数1000(0001 0000 0000 0000)MOV DX, IOPORT+290HOUT DX, ALMOV AL, 10010000B ;初始化8255,1--控制字,A口方式0输入,C口输出,B口输出MOV DX, IOPORT+28BHOUT DX, ALINOUT: MOV AL, 00100100B ;南北路口绿灯亮,东西路口红灯亮MOV DX, IOPORT+28AH ;C口0方式输出,所以可以直接控制PC0~PC7的输出电平OUT DX, ALMOV AL, 01100001B ;设置8253通道1,只读高字节,方式0(不自动重复),10进制MOV DX, IOPORT+293HOUT DX, ALMOV AL, 50H ;置数5000,与计数器0串联即:延时5秒MOV DX, IOPORT+291HOUT DX, ALLOP1: MOV DX, IOPORT+288H ;A口查询,判断延时是否结束IN AL, DXCMP AL, 0JE LOP1 ;延时结束,顺序执行,否则继续查询MOV AL, 01000100B ;南北路口黄灯亮,东西路口红灯亮MOV DX, IOPORT+28AH ;C口0方式输出,所以可以直接控制PC0~PC7的输出电平OUT DX, ALMOV AL, 01100001B ;设置8253通道MOV DX, IOPORT+293HOUT DX, ALMOV AL, 30H ;延时3秒(1000*3000),原理与延时5秒一致MOV DX, IOPORT+291HOUT DX, ALLOP2: MOV DX, IOPORT+288H ;A口查询,判断延时是否结束IN AL, DXCMP AL, 0JE LOP2 ;延时结束,顺序执行,否则继续查询MOV AL, 10000001B ;南北路口红灯亮,东西路口绿灯亮MOV DX, IOPORT+28AH ;C口0方式输出,所以可以直接控制PC0~PC7的输出电平OUT DX, ALMOV AL, 01100001B ;设置8253通道1MOV DX, IOPORT+293HOUT DX, ALMOV AL, 50H ;延时5秒MOV DX, IOPORT+291HOUT DX, ALLOP3: MOV DX, IOPORT+288HIN AL, DXCMP AL, 0JE LOP3MOV AL, 10000010B ;南北路口红灯亮,东西路口黄灯亮MOV DX, IOPORT+28AHOUT DX, ALMOV AL, 01100001B ;设置8253通道1MOV DX, IOPORT+293HOUT DX, ALMOV AL, 30H ;延时3秒MOV DX, IOPORT+291HOUT DX, ALLOP4: MOV DX, IOPORT+288HIN AL, DXCMP AL, 0JE LOP4MOV AH, 0BH ;检查键盘状态(不等待),AL=FFH 表示有键入,AL=00H表示无键入INT 21HCMP AL,0FFH ;有键入,程序退出JNZ INOUTMOV AH, 4CHINT 21HCODE ENDSEND START四、实验中遇到的问题地址书上要求定义的范围是从280H开始的,而我们在编写程序的时候是从288H开始使用的,再连线的时候,忘记了这一点,而致使结果一直出不来,后来再检查连线的时候发现了这个问题,即使进行了改正,出现了预计效果,试验成功。

基于8255和8253交通灯c语言多种模式设计报告

基于8255和8253交通灯c语言多种模式设计报告

交通信号灯自动控制模拟指示系统一、设计目的1、掌握CPU与各芯片管脚连接方法,提高接口扩展硬件电路的连接能力。

2、加深对定时器/计数器和并行接口芯片的工作方式和编程方法的理解。

3、掌握交通信号灯自动控制系统的设计思路和实现方法。

二、设计实验环境:1. 硬件配置:微机一台(Pentium 4)微机接口技术实验箱一个ISA –PCI转接卡一块连接电缆一条万用表一块微机接口技术实验讲义一本导线、剥线钳等2. 软件环境:Windows XP 平台Visual C++ 6.0 编译器三、设计内容设计并实现十字路口通信号自动控制模拟指示系统。

设该路口由A、B 两条通行干道相交而成,四个路口各设一组红、黄、绿三色信号灯,用两位数码管作倒计时显示。

四、系统功能与设计要求1.基本功能要求(1)以秒为计时单位,两位数码管以十进制递减计数显示通行剩余时间,在递减计数回零瞬间转换。

十字路口交通灯的变化规律及控制时序:①南北口的绿灯、东西路口的红灯同时亮30秒,同时南北路口数码管递减显示绿灯剩余时间30,29,28……0秒。

②南北路口的黄灯闪烁5秒钟,同时东西路口的红灯继续亮。

③南北路口的红灯、东西路口的绿灯同时亮30秒,同时东西路口数码管递减显示绿灯剩余时间30,29,28……0秒。

④南北路口的红灯继续亮,同时东西路口的黄灯闪烁5秒钟。

⑤转①重复。

(2)通过键盘可以对红、黄、绿三色信号灯所亮时间在0~99秒内任意设定。

(3)十字路口的通行起始状态可自行设定,系统启动后自动运行,按“Q”键退出。

2.发挥部分(1)增加人工干预模式。

在特殊情况下可通过人工干预,手动控A,B道路交通灯的切换时间,并可以随时切换为自动运行模式。

(2)增加夜间控制功能,交通灯在进入夜间模式后,A、B两个干道上红、绿灯均不亮,黄色信号灯闪烁显示。

(3)增加红色信号灯倒计时显示。

五、设计思路交通信号灯的亮灭时间及数码管显示时间可以通过计数/定时器(8253)来控制,8253的时钟源采用时钟信号发生器与分频电路提供,通过计算获得计数初值。

基于8253和8255的模拟交通灯控制系统

基于8253和8255的模拟交通灯控制系统

摘要十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。

井然秩序的实现,靠的是交通信号灯的自动指挥系统。

交通信号灯控制方式有很多。

本系统采用8255A芯片实现了A口设置红、绿、黄灯点亮时间的功能,从而控制LED发光二极管实现红、黄、绿灯循环点亮。

另外结合日常生活经验,并且从亚残会中对残疾人的生活不便中得出感悟,采用8253进行控制扬声器,在红、绿灯变换之间黄灯闪烁时,同时添加了“声音提示"功能。

整个系统具有固定的“红灯—黄灯—绿灯”转换间隔,并自动切换,对东西南北方向的道路进行“自动”的控制。

但是,经过小组成员提出的各种假设,发现此系统需要加入更多人性化的元素:交警可以根据实际的路面情况,针对不同的突发事件,进行手工控制红绿灯的转换。

例如救护车警车执行紧急任务;例如东西道路塞车,南北道路空闲无车辆行驶时,需要灵活调节红绿灯的转化。

通过8255并口控制,可以达到更加人性化的效果从而方便各种人群。

第一部分概论1.1设计任务:交通信号灯的控制(1)通过8255并行接口来控制LED发光二极管的亮灭,并适当延时。

(2)黄灯闪烁时,通过8253控制扬声器发出声音,以提醒灯的转换。

(3)通过8255并口控制,人工进行交通灯的转换。

1.2 任务要求(1)南北路口的绿灯、东西路口的红灯同时亮5秒左右。

(2)南北路口的黄灯闪烁若干次,扬声器鸣叫,同时东西路口的红灯闪烁。

(3)南北路口的红灯、东西路口的绿灯同时亮5秒左右。

(4)南北路口的红灯闪烁、同时东西路口的黄灯亮闪烁若干次,扬声器鸣叫。

(5)转(1)重复。

紧急情况可以手动控制红绿灯的变换。

1.3设计原理本次课程设计是交通灯实时控制器,主要是用发光二极管模拟十字路口的红绿灯。

交通灯控制器的设计与实现主要是通过编写汇编语言程序利用8255的C 口对灯的亮与灭进行控制,用8253对扬声器的发声进行控制。

装有定时计数器8253芯片和可编程接口 8255芯片,研究了扬声器发声的软件控制过程,利用软件编程给定8253芯片某一频率的方波信号,并且设定8255芯片的门控信号PA0 =1和PA1 =1 ,则可控制扬声器发声。

接口单元实验1(8255,8253)

接口单元实验1(8255,8253)

接口单元实验(1) 8255可编程并行接口一、实验目的掌握8255方式0的工作原理及使用方法,用8255实现开关状态显示、十字路口交通信号灯的模拟控制。

二、实验要求1.编写程序,设定8255的PA端口为开关量输入,PC口为开关量输出,要求将PA端口的开关状态用PC端口的对应的发光二极管显示。

(提高篇:修改程序,根据输入,循环点亮发光二极管,例如开关2合上,则依次点亮灯2,3,。

,状态由对应的LED显示出来:ON对应LED亮,OFF对应LED灭。

4.文件不支持长文件名格式。

5.运行程序时,可用单步监控方式观察程序运行状态。

实验思考1.用编程的方法改变输出状态显示,即ON对应LED灭,OFF对应LED亮。

2.能否改变程序加载的段地址为8200H,偏移地址为2000H?在何处改动?3.通讯的波特率9600bps表示什么?2.实际的交通灯管理与本实验还有哪些不同?四.实验报告1.完成实验的两个程序。

2.总结8255工作方式0的特点。

参考程序框架:snYewY equ 0;全黄snRewR equ 0FH;全红snGewR equ 96H;南北绿东西红snDewR equ 9FH;东西红snYewR equ 06H;南北黄东西红;其他符号定义于此T1 equ 1000;结合实际修改延时T1/T2T2 equ 500…CPORT equ 204HDelay macro ntime;用于延时的宏定义Local delaylabelMov cx,ntimeoutloop:mov si,cxxor cx,cxdelaylabel:and ax,axLoop delaylabel mov cx,si loop outloop Endm;程序头部,参看以前实验;初始化:8255方式0,C 口输出 Mov al,snRewRMov dx,CPORTOut dx,alDelay 1000Cont:Mov al,snGewR Mov dx,CPORT Delay T1 MOV BX,3 Rept:Mov al,snDewR Out dx,al Delay T2Mov al,snYewR Out dx,al Delay T2 Dec bx Jnz reptMov al,snRewG Out dx,al Delay T2在添加指令 …jmp cont; 注意 这一条指令编译时会报错,原因是跳转的距离不在-128~127间,思考如何修改?8253定时/计数器实验一.实验要求编程将8253的定时器0设置为方式3(方波),定时器1设置为方式2(频率发生器),定时器2设置为方式2(频率发生器)。

微机原理课程设计——8255_8253交通灯模拟实验

微机原理课程设计——8255_8253交通灯模拟实验

微机原理课程设计一.设计任务及要求:交通信号灯的控制:1.通过8255A并口来控制LED发光二极管的亮灭。

2.A口控制红灯,B口控制黄灯,C口控制绿灯。

3.输出为0则亮,输出为1则灭。

4.用8253定时来控制变换时间。

要求:设有一个十字路口,1、3为南,北方向,2、4为东西方向,初始态为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路口方向。

之后,重复上述过程。

二.方案比较及评估论证:分析题意,红,黄,绿灯可分别接在8255的A口,B口和C口上,灯的亮灭可直接由8086输出0,1控制。

30秒延时及闪烁由8253控制,由闪烁的实现方法可分为两种方案:方案一:设8253各口地址分别为:设8253基地址即通道0地址为04A0H;通道1为04A2H;通道2为04A4H;命令控制口为04A6H。

黄灯闪烁的频率为1HZ,所以想到由8253产生一个1HZ的方波, 8255控制或门打开的时间,在或门打开的时间内,8253将方波信号输入或门使黄灯闪烁。

由于计数值最大为65535,1MHZ/65536的值远大于2HZ,所以采用两个计数器级联的方式,8253通道0的clock0输入由分频器产生的1MHZ时钟脉冲,工作在方式3即方波发生器方式,理论设计输出周期为0.01s的方波。

1MHZ的时钟脉冲其重复周期为T=1/1MHZ=1 s,因此通道0的计数初值为10000=2710H。

由此方波分别作为clock1和clock2的输入时钟脉冲,所以通道1和通道2的输入时钟频率为100HZ,通道1作计数器工作在方式1,计数初值3000=BB8H既30s,计数口,8255将A口数据输入到8086,8086检测到则输出一个高电平到8255的PA7到高电平既完成30s定时。

交通灯控制实验(8255)

交通灯控制实验(8255)
微机接口实验
实验二
交通灯控制实验(8255) 交通灯控制实验(8255)
一、实验目的
掌握8255方式0的工作原理及使用方法。 掌握8255方式0的工作原理及使用方法。 8255方式
二、实验内容
微机接口实验
实验二
交通灯控制实验(8255) 交通灯控制实验(8255)
一、实验目的 掌握8255方式0的工作原理及使用方法。 掌握8255方式0的工作原理及使用方法。 8255方式 二、实验内容 通过并行接口8255 通过并行接口8255实现十字路口交通 8255实现十字路口交通 灯的模拟控制。如图,L7、L6、L5作为南 灯的模拟控制。如图,L7、L6、L5作为南 北路口的交通灯与PC7 PC6、PC5相连 PC7、 相连, 北路口的交通灯与PC7、PC6、PC5相连, L2、L1、L0作为东西路口的交通灯与 作为东西路口的交通灯与PC2 L2、L1、L0作为东西路口的交通灯与PC2 PC1、PC0相连 相连。 、PC1、PC0相连。编程使六个灯按交通灯 变化规律燃灭。 变化规律燃灭。
交通灯控制
二、实验内容
通过并行接口8255 通过并行接口8255实现十字路口交通 8255实现十字路口交通 灯的模拟控制。 L7、L6、L5作为 灯的模拟控制。如下图,L7、L6、L5作为 南北路口的交通灯与PC7 PC6、PC5相连 PC7、 南北路口的交通灯与PC7、PC6、PC5相连 L2、L1、L0作为东西路口的交通灯与 ,L2、L1、L0作为东西路口的交通灯与 PC2、PC1、PC0相连 相连。 PC2、PC1、PC0相连。编程使六个灯按交 通灯变化规律燃灭。 通灯变化规律燃灭。
交通灯控制
三、实验电路
8255 地址: 地址:
控制寄存器: 控制寄存器: C口地址: 口地址: 28BH 28BH 288H 288H

微机原理8255A模拟交通信号灯

微机原理8255A模拟交通信号灯

微机原理8255A模拟交通信号灯实验三 8255A模拟交通灯一、实验目的掌握通过8255A并行口传输数据的方法,以控制发光二极管的亮与灭。

二、实验内容用8255做输出口,控制12个发光二极管亮灭,模拟交通灯管理三、实验要求1.通过8255A控制发光二极管,PB4-PB7对应黄灯,PC0-PC3对应红灯,PC4-PC7对应绿灯,模拟交通灯的管理。

2.交通灯的亮灭规律如下:设有一个十字路口,1、3为南北方向,2和4为东西方向。

初始状态为四个路口的红灯全亮,之后,1、3路口的绿灯亮,2、4路口的红灯亮,1、3方向通车。

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

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

8255A端口地址为0FF28H-0FF2BH。

4.各发光二极管共阳极,使其点亮应使8255A相应端口输出为0。

四、实验步骤1.根据实验要求连接好实验线路2.编写实验程序,编写的程序如下:;CODE SEGMENTASSUME CS:CODESTART:MOV DX,0FF2BHMOV AL,80HOUT DX,ALMOV DX,0FF2AHMOV AL,11110000BOUT DX,AL %初始化,红灯全亮,绿灯全亮MOV DX,0FF29HMOV AL,0FFHOUT DX,AL %初始化,黄灯全不亮AGAIN: MOV DX,0FF2AHMOV AL,10100101BOUT DX,AL %1、3路口绿灯亮,2、4路口红灯亮CALL DELAYX1:MOV DX,0FF29HMOV AL,01010000BOUT DX,ALMOV DX,0FF29HMOV AL,11110000BMOV CX,0FFFFHDEC CXJNZ X1MOV DX,0FF2AHMOV AL,01011010BOUT DX,AL %1、3路口红灯亮,2、4路口绿灯亮CALL DELAYX2:MOV DX,0FF29HMOV AL,10100000BOUT DX,ALMOV DX,0FF29HMOV AL,11110000BOUT DX,ALMOV CX,0FFFFHDEC CXJNZ X2JMP AGAINDELAY PROCMOV BX,0FFFFHX4: MOV CX,OFFFFHX3:DEC CXJNZ X3DEC BXJNZ X4DELAY ENDPHLTCODE ENDSEND START3.编译装载后运行程序,观察结果五、实验总结1、学会延迟程序的调用方式以及书写方式。

8255-8253交通灯模拟实验报告

8255-8253交通灯模拟实验报告

8255-8253交通灯模拟实验报告-CAL-FENGHAI.-(YICAI)-Company One1(一)课题简介 (2)(二)设计方案 (2)(三)具体设计 (4)1. 电路原理 (4)2. 程序原理: (6)3. 系统原理 (8)1) 8259,8255A,8254工作原理: (8)4. 关键技术分析 (13)1) 实时控制和管理设计 (13)2) 发光二极管闪烁程序 (14)3) 源程序 (15)(四)测试 (21)1. 在测试中遇到的问题记录 (21)2. 测试结果 (22)(五)总结 (22)(六)设计体会 (23)(七)参考文献 (24)(一)课题简介十字道口的红绿灯是交通法规的无声命令,是司机和行人的行为准则。

十字道口的交通红绿灯控制是保证交通安全和道路畅通的关键。

当前,国内大多数城市正在采用“自动”红绿交通灯,它具有固定的“红灯—绿灯”转换间隔,并自动切换。

它们一般由“通行与禁止时间控制显示、红黄绿三色信号灯和方向指示灯”三部分组成。

在交通灯的通行与禁止时间控制显示中,通常要么东西、南北两方向各50秒;要么根据交通规律,东西方向60秒,南北方向40秒,时间控制都是固定的。

交通灯的时间控制显示,以固定时间值预先“固化”在单片机中,每次只是以一定周期交替变化。

但是,实际上不同时刻的车辆流通状况是十分复杂的,是高度非线性的、随机的,还经常受认为因素的影响。

采用定时控制经常造成道路有效应用时间的浪费,出现绿灯方向车辆较少,红灯方向车辆积压。

它不顾当前道路上交通车辆数的实际情况变化,其最大的缺陷就在于当路况发生变化时,不能满足司机与路人的实际需要,轻者造成时间上的浪费,重者直接导致交通堵塞,导致城市交通效率的下降。

目前,有一种使用“模糊控制”技术控制交通灯的方法。

能够根据十字路口两个方向上车辆动态状况,自动判断红绿灯时间间隔,以保证最大车流量,减少道口的交通堵塞。

但是却不像定时控制,能用数字显示器显示当前灯色剩余时间,以便于驾驶员随时掌握自己的驾驶动作,及时停车或启动。

实验四_交通信号灯模拟实验程序

实验四_交通信号灯模拟实验程序
实验四
8255A接 口 实 验 接
实验目的
进一步了解8255A芯片的结构及编程方 法,学习模拟交通控制的实现方法。
实验内容
用8255A做输出口,控制十二个发光二 极管燃灭,模拟交通灯管理。
实验接线图
实验程序框图
开始 8255A初始化
四个路口红灯亮
东西绿灯亮,南北红灯亮,延时Leabharlann 东西黄灯闪烁,南北红灯亮,延时
POP DJNZ POP DJNZ POP DJNZ RET
02H R2, DEL3 02H R2, DEL2 02H R2, DELY
JOD3:
JOD1:
MOV DPTR, #FF28H MOV A, #75H MOVX @DPTR, A INC DPTR MOV A, #0DH MOVX @DPTR,A;东西绿灯亮,南北红灯亮 MOV R2, #55H LCALL DELY ;延时 MOV R7, #05H ;闪烁次数 MOV DPTR, #0FF28H MOV A, #0F3H MOVX @DPTR, A
JOD0: MOV MOV MOV MOVX MOV MOV MOVX INC MOV MOVX MOV LCALL
ORG 0BB0H SP, #60H DPTR, #0FF2BH ;指向8255A控制字 A, #88H @DPTR, A ;8255A初始化 DPTR, #0FF28H ;指向A口,PA0~PA7 A, #0B6H @DPTR, A DPTR A, #0DH ;点亮4个红灯 @DPTR,A R2, #25H DELY
INC DPTR MOV A, #0CH MOVX @DPTR, A ;东西黄灯亮,南北红灯亮 MOV R2, #20H LCALL DELY ;延时 MOV DPTR, #0FF28H MOV A, #0F7H MOVX @DPTR, A INC DPTR MOV A, #0DH MOVX @DPTR, A ;东西黄灯灭,南北红灯亮 MOV R2, #20H LCALL DELY ;延时 DJNZ R7, JOD1 ;闪烁次数未到继续

8255并行口实验+8253定时器实验

8255并行口实验+8253定时器实验

实验2 8255A并行口实验(一)一、实验目的1.掌握并行接口芯片8255的使用与硬件接口方法。

2.掌握8255A的各种工作方式和编程原理。

二、8255A芯片介绍8255A是可编程通用并行接口芯片,它具有A、B、C三个并行接口,用+5V 单电源供电,能在以下三种方式下工作:方式0:基本输入/输出方式方式1:选通输入/输出方式(应答式输入输出方式)方式2:双向选通工作方式8255工作于方式1或2时,PC口的一些引脚作为A和B口的联络信号线,如下表:三、实验内容1、并行口工作于方式0时的传送(1)设计一个电路:用8255A做并行口,读入8个开关的状态并通过发光二极管显示出来。

(当拨动开关时,相应的发光二极管的状态时刻跟随变化)(2)当总开关K闭合(K=1)时,分开关能够控制对应的发光二极管;而当总开关K断开(K=0)时,分开关无论如何拨动,对应发光二极管都不跟随变化。

2、方式1用8255芯片的B口工作于方式1做输入,A口工作于方式0做输出。

采用查询与中断2种方式,实现拨动开关控制发光二极管的显示。

提示:必须理解8255方式1输入的工作过程及相关联络控制信号的先后时序关系。

根据上述要求设计电路并编写程序。

实验3 8255并行口实验(二)一、实验目的1. 通过可编程并行接口芯片8255实现十字路口交通灯的模拟控制。

2. 掌握七段数码显示管的使用方法。

3. 掌握软件延时方法的使用。

4. 进一步掌握并行接口芯片8255的使用方法。

二、实验内容1.根据实验系统现有的实验电路,设计电路并编写程序使12个灯按交通变化规律亮、灭或闪烁。

要完成本实验,必须先了解交通路灯的亮灭规律,设有一个十字路口分为南北方向和东西方向,初始状态为红灯全亮,之后,南北绿灯亮,东西红灯亮,南北方向通车。

延时一段时间后,南北绿灯熄灭,而南北黄灯开始闪烁,闪烁若干次以后,南北红灯亮,而同时东西的绿灯亮,东西方向通车,延时一段时间后,东西绿灯熄灭,而东西黄灯开始闪烁,闪烁若干次以后,再切换到南北方向,之后,重复上述过程。

16交通灯控制实验

16交通灯控制实验

4.10 交通灯控制实验4.10.1 实验目的1、 通过可编程并行接口芯片8255A 和定时器/计数器8253实现十字路口交通灯的模拟控制。

2、 掌握通过8253实现准确定时的方法。

3、 进一步掌握并行接口芯片8255A 的使用方法。

4、 进一步掌握8259A 可编程中断控制器的使用方法。

4.10.2 实验预习要求1、 复习教材中有关8253、8255A 和8259A 的有关知识。

2、 认真阅读实验指导书,了解实验内容并编写实验程序。

4.10.3 实验内容1、按图4.10-1连接线路。

发光二极管L7(红)、L6(黄)、L5(绿)作为南北路口的交通灯分别与PC7、PC6、PC5相连,L2(红)、L1(黄)、L0(绿)作为东西路口的交通灯分别与PC2、PC1、PC0相连,8255A 的片选信号CS 接至I/O 地址288H ~28FH 插孔。

8253的计数器0和计数器1级联连接,片选信号CS 接280H ~287H 。

计数器1的输出接实验台的IRQ 插座。

2、 编写程序使六个灯按交通灯变化规律亮、灭或闪烁。

4.10.4 实验提示1、十字路口交通灯的变化规律要求:① 南北路口的绿灯、东西路口的红灯同时亮30秒。

② 南北路口的黄灯闪烁3次(3秒),同时东西路口的红灯继续亮。

③ 南北路口的红灯、东西路口的绿灯同时亮30秒。

④ 南北路口的红灯继续亮,同时东西路口的黄灯闪烁3次(3秒)。

⑤ 转①重复3、 通过8253计数器0和计数器1级联实现准确定时。

计数器0的时钟输入接1MHz 的时钟信号(来自实验台),计数器0的输出OUT0作为计数器1的时钟输入CLK1。

两个计数器均工作于方式3(方波发生器),通过对计数器0和计数器1选择合适的计数初值,使计数器1每隔1秒产生一个脉冲。

该信号接至实验台的IRQ ,从而每隔1秒产生一次中断。

设计数初值置为33,中断服务程序每执行一次,计数值减1,根据当前计数值即可对灯的亮、灭或闪烁进行控制。

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

微机原理课程设计一.设计任务及要求:交通信号灯的控制:1.通过8255A并口来控制LED发光二极管的亮灭。

2.A口控制红灯,B口控制黄灯,C口控制绿灯。

3.输出为0则亮,输出为1则灭。

4.用8253定时来控制变换时间。

要求:设有一个十字路口,1、3为南,北方向,2、4为东西方向,初始态为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路口方向。

之后,重复上述过程。

二.方案比较及评估论证:分析题意,红,黄,绿灯可分别接在8255的A口,B口和C口上,灯的亮灭可直接由8086输出0,1控制。

30秒延时及闪烁由8253控制,由闪烁的实现方法可分为两种方案:方案一:设8253各口地址分别为:设8253基地址即通道0地址为04A0H;通道1为04A2H;通道2为04A4H;命令控制口为04A6H。

黄灯闪烁的频率为1HZ,所以想到由8253产生一个1HZ的方波, 8255控制或门打开的时间,在或门打开的时间内,8253将方波信号输入或门使黄灯闪烁。

由于计数值最大为65535,1MHZ/65536的值远大于2HZ,所以采用两个计数器级联的方式,8253通道0的clock0输入由分频器产生的1MHZ时钟脉冲,工作在方式3即方波发生器方式,理论设计输出周期为0.01s的方波。

1MHZ的时钟脉冲其重复周期为T=1/1MHZ=1 s,因此通道0的计数初值为10000=2710H。

由此方波分别作为clock1和clock2的输入时钟脉冲,所以通道1和通道2的输入时钟频率为100HZ,通道1作计数器工作在方式1,计数初值3000=BB8H既30s,计数口,8255将A口数据输入到8086,8086检测到则输出一个高电平到8255的PA7到高电平既完成30s定时。

通道2工作在方式3需输出一个1HZ的方波,通过一个或门和8086共同控制黄灯的闪烁,因此也是工作在方波发生器方式,其计数初值为100=64H,将黄灯的状态反馈到8055的端口PB7和PC7,同样输入到8086,8086通过两次检测端口状态可知黄灯的状态变化,计9次状态变化可完成5次闪烁。

三个通道的门控信号都未用,均接+5V即可。

方案二:考虑到题目要求黄灯闪烁的频率为1HZ,既每秒1次,那么前0.5秒黄灯亮,后0.5秒黄灯灭,所以最小的定时单位为0.5秒,频率为2HZ,30秒即为60个0.5秒。

显然如方案一一样一个计数器无法完成,所以采用两个计数器级联的方式,将计数器0的输出OUT0接到计数器1的输入端CLK1,CLK0=1MHZ,计数值为50000=C350H,OUT0=20HZ,CLK1=20HZ,记数值=10,OUT1=2HZ。

并且计数器0工作于方式3用于产生方波信号,计数器1工作方式2,产生负脉冲信号,计数器1的输出端OUT1接入8255芯片的PC5口,用于读取负脉冲个数,以完成计时功能。

8086及8255设置同方案一,8086则每隔0.5秒变换一次黄灯的状态,持续五次,完成闪烁的功能。

经比较,方案二8086在黄灯闪烁时需频繁发送数据到8255,加重了系统的负担,因此我决定采用方案一。

三.系统原理工作原理说明:此方案是通过并行接口芯片8255A和8086计算机的硬件连接,以及通过8253延时的方法,来实现十字路口交通灯的模拟控制。

如硬件连接图所示,红灯(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三个口全部工作在方式0既基本输入输出方式,红绿灯的转换由软件编程实现。

四.硬件原理及电路图由于8255A 与8086CPU 是以低八位数据线相连接的,所以应该是8255A 的1A 、A 线分别与8086CPU 的2A 、1A 线相连,而将8086的A 线作为选通信号。

如果是按8255A 内部地址来看,则在图中它的地址是PA 口地址即(CS+000H),PB 口地址为(CS+001H),PC 口地址为(CS+002H),命令控制口地址为(CS+003H),其中,CS 为8255片选信号CS 的首地址;若是按8086CPU 地址来看,则8255A 的地址是PA 口地址即(CS+000H),PB 口地址为(CS+002H),PC 口地址为(CS+004H),命令控制口地址为(CS+006H)。

当CS =0288H ,则PA 口地址为0288H ,PB 口地址为028AH ,PC 口地址为028CH ,命令控制口地址为028EH 。

下面,分析8086各个引脚的连接方法。

(1)BHE 引脚:通常用此引线产生片选信号,当为BHE =1,0A =0编码时,在数据总线低8位和偶地址之间进行字节传送(0AD ~7AD )。

(2)CLK (Clock )时钟信号(输入):CLK 为CPU 和总线控制器提供基本的定时脉冲。

时钟周期是非对称的,当它为有效高电平的时间和时钟周期的比为33%时,提供最佳的内部定时。

由8284时钟发生器产生,8086CPU 使用的时钟频率,因芯片型号不同,时钟频率不同。

这里采用5MHz 。

(3)CC V (+5V),GND(地):CPU 所需电源CC V =+5V 。

GND 为地线。

(4)QS0ALE (Address Latch Enable )地址锁存允许信号,输出高电平有效,作地址锁存器8282/8283的片选信号,在1T 地址周期状态,ALE 有效,表示AB 、DB 上传送的是地址信息,将它锁存。

这是由于AB 、DB 分时复用所需要的,ALE 信号线不能悬空。

如图所示,加入2片地址锁存器8282。

(5)RESET:复位信号,输入,高电平有效。

8086接到复位信号后,停止现行操作,并初始化段寄存器DS,SS,ES ,标志寄存器PSW ,指令指针IP 和指令队列,而使CS=FFFFH 。

RESET 信号至少保持四个周期以上的高电平,当它变为低电平时(一个下降沿),CPU 执行重启过程,8086将从地址FFF0H 开始执行指令。

通常FFFF0H 单元开始的几个单元中存放一条JMP 指令,将入口转到引导和装配程序中,从而实现对系统的初始化,引导监控程序或操作系统程序。

由于出现突然断电或其它情况时,8086可能正在执行交通灯程序,现有的地址丢失,应按下RESET 键重新开始。

另外,应将8255A 与8086的RESET 线相连,保持同步。

(6)MN/MX (Minimun/Maximun): 最小、最大工作模式选择信号,输入。

此时MN/MX 接+5V ,构成单处理器系统,系统控制信号由CPU 提供。

接下来,对8282芯片作一下说明:7DI ~0DI :8位数据输入;7DO ~0DO :8位数据输出;STB:选通信号;OE :输出允许信号,在不带DMA 控制器的8086单处理器系统中,它接地。

其实,这就是8个D 触发器。

由于只用15AD ~0AD ,所以用两片即可。

最后,对时钟发生器8284芯片按两部分进行说明:(1)时钟信号发生器:C F /=0时,时钟信号输入由X 1 、X 2 端接上晶体,由晶体振荡器产生时钟信号;CLK :3分频OSC 后的时钟,输出频率4.77MHz ,占空比为1/3,大约满足8086CPU 的输入频率5MHz 、占空比33%的要求。

(2)复位生成电路:由RES 输入的信号来触发内部同步触发器,由此产生信号RESET ,送到CPU 的RESET 端,复位信号由CLK 的下降沿同步。

此时,RES 端接“电源好“信号,使系统上电后自动复位。

此为最小模式系统,除了8086CPU ,I/O 接口芯片8255A ,定时计数芯片8353外,其它配置如下:1片8284A ,作为时钟发生器;2片8282,作为地址锁存器; 2片74LS138,作为地址选通译码器;1个二输入或非门;1个4输入或非门;1个二输入与非门;4个或门 12个发光二极管;12个限流电阻;1个复位信号开关。

五.软件思想 1.流程图.初始化8255,8253红灯全亮绿灯黄灯全灭1,3绿灯亮2,4红灯亮N 等待8253延时30s时间是否到?Y1,3绿灯灭2,4红灯不变1,3黄灯闪烁N 等待黄灯闪烁5次?Y1,3红灯亮2,4绿灯亮8253延时30s2,4绿灯灭黄灯闪烁5次2.源程序:DATA SEGMENT; 设置数据段,以及端口地址分配PORTA EQU 218HPORTB EQU 219HPORTC EQU 21AHPTCON8255 EQU 21BHPORT0 EQU 238HPORT1 EQU 239HPORT2 EQU 240HPTCON8253 EQU 241HDATA ENDSCODE SEGMENTASSUME DS:DATA,CS:CODEINIT: MOV AX,DATAMOV DS,AXMOV DX, PTCON8253MOV AL,36HOUT DX,ALMOV DX,PORT0MOV AX,2710HOUT DX,ALMOV AL,AHOUT DX,AL;通道0工作方式3 周期0.01sMOV DX, PTCON8253MOV AL,71HOUT DX,AL;通道1工作方式1MOV DX, PTCON8253MOV AL,96HOUT DX,ALMOV DX,PORT2MOV AL,64HOUT DX,AL;通道2工作方式3 周期1s 8253初始化完成 MOV DX, PTCON8255MOV AL,80HOUT DX,AL;8255初始化 A,B,C口均工作在方式0MOV DX,PORTAMOV AL,0OUT DX,ALMOV DX,PORTBMOV AL,0FHOUT DX,ALMOV DX,PORTCMOV AL,0FHOUT DX,AL;灯初始化完成STA: MOV DX,PORTAMOV AL,0A0HOUT DX,ALMOV DX,PORTBMOV AL,0F0HOUT DX,ALMOV DX,PORTCMOV AL,50HOUT DX,AL;1,3绿灯亮,2,4红灯亮MOV DX,PORT1MOV AX,0BB8HOUT DX,ALMOV AL,AHOUT DX,AL;8253通道1赋值开始计时SCAN1: MOV AL,0MOV DX,PTCON8255MOV AL,90HOUT DX,ALMOV DX,PORTAIN AL,DXAND AL,0FHCMP AL,1JNZ SCAN1;扫描PA7口FLA1: MOV DX, PTCON8255MOV AL,80HOUT DX,ALMOV DX,PORTCMOV AL,0F0HOUT DX,ALMOV DX,PORTBMOV AL,50HOUT DX,ALMOV CX,0TEST1: MOV DX,PTCON8255;检测PB7MOV AL,82HOUT DX,ALMOV DX,PORTBIN AL,DXAND AL,0FHMOV AH,ALMOV DX,PTCON8255MOV AL,82HOUT DX,ALMOV DX,PORTBIN AL,DXAND AL,0FHXOR AL,AHADD CL,ALCMP CL,9JNZ TEST1;闪烁5次MOV DX, PTCON8255MOV AL,80HOUT DX,ALMOV DX,PORTAMOV AL,50HOUT DX,ALMOV DX,PORTBMOV AL,0F0HOUT DX,ALMOV DX,PORTCMOV AL,0A0H;1,3红灯亮,2,4绿灯亮MOV DX,PORT1MOV AX,0BB8HOUT DX,ALMOV AL,AHOUT DX,AL;8253通道1赋值开始计时SCAN2: MOV AL,0MOV DX,PTCON8255MOV AL,90HOUT DX,ALMOV DX,PORTAIN AL,DXAND AL,0FHCMP AL,1JNZ SCAN2FLA2: MOV DX, PTCON8255MOV AL,80HOUT DX,ALMOV DX,PORTCMOV AL,0F0HOUT DX,ALMOV DX,PORTBMOV AL,0A0HOUT DX,ALTEST2: MOV DX,PTCON8255MOV AL,88HOUT DX,ALMOV DX,PORTCIN AL,DXAND AL,0FHMOV AH,ALMOV DX,PTCON8255MOV AL,88HOUT DX,ALMOV DX,PORTCIN AL,DXAND AL,0FHXOR AL,AHADD CL,ALCMP CL,9JNZ TEST2;闪烁5次CODE ENDSEND STA六.调试记录及结果分析(1) 本电路没有设置显示倒计时的七段LED数码管,如果应用到街道上,不利于司机、行人把握(2)在上机调试中发现,由于此软件延时的时间均为估算时间,不是特别准确,对于交通要求特别高的地方不宜采用。

相关文档
最新文档