《微机原理与接口技术》课程设计-交通灯
微机原理课程设计报告交通灯

ANDAL,0FH
MOV AH,AL
MOV DX,PTCON8255
MOV AL,88H
OUTDX,AL
MOV DX,PORTC
IN AL,DX
ANDAL,0FH
XORAL,AH
ADD CL,AL
CMP CL,9
JNZ TEST2;闪烁5次
CODE ENDS
END STA
连接实验箱电路,上机调试并对实验现象进行分析,完成实验报告。
MOV DX,PORTA
MOVAL,0
OUTDX,AL
MOV DX,PORTB
MOVAL,0FH
OUTDX,AL
MOV DX,PORTC
MOVAL,0FH
OUT DX,AL;灯初始化完成
STA:MOV DX,PORTA
MOVAL,0A0H
OUTDX,AL
MOV DX,PORTB
MOVAL,0F0H
OUTDX,AL
电路图如下所示:
程序流程图
初始化8255,8253
红灯全亮
绿灯黄灯全灭
南北绿灯亮
东西红灯亮
等待8253延时30s时间是否到?
Y
N
南北绿灯灭
东西红灯不变
南北黄灯闪烁
等待黄灯闪烁5次?
Y
N
南北红灯亮
东西绿灯亮
8253延时30s
东西绿灯灭
黄灯闪烁5次
程序清单
DATA SEGMENT;设置数据段,以及端口地址分配
MOV CX,0
TEST1:MOV DX,PTCON8255 ;检测PB7
MOV AL,82HOUTX,ALMOV DX,PORTB
IN AL,DX
微机原理课程设计交通信号灯

设计任务及要求交通信号灯的亮灭规律。
设有一个十字路口,1、3位南北方向,2、4位东西方向。
初态为4个红灯全亮,禁止通行;随后交通灯亮灭规律按下列步骤进行:(1)1、3路口绿灯亮,2、4路口红灯亮;(2)延时10秒后,1、3路口绿灯灭;(3)1、3路口黄灯闪烁(闪烁3次);(4)2、4路口绿灯亮,同时1、3路口红灯亮;(5)延时10秒后,2、4路口绿灯灭;(6)2、4路口黄灯闪烁(闪烁3次);(7)转向(1)循环执行。
要求:1.通过8255A并口来控制LED发光二极管的亮灭,A口控制红灯,B口控制黄灯,C口控制绿灯。
红灯(RLED),黄灯(YLED)和绿灯(GLED)分别接在8255的A,B,C口的低四位端口,PA0,PA1,PA2,PA3分别接1,2,3,4路口的红灯,B,C口类推。
2.发光二极管通过电阻接+5V,输出为0则亮,输出为1则灭。
3.通过软件延时,设CPU晶振频率为8M。
4.闪烁功能采用灯亮1秒后马上熄灭来实现。
硬件连接图(可打印)、设计说明8255共有40个引脚,其功能分别如下:D0~D7:三态双向数据总线,8255与CPU数据传送的通道,当CPU 执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。
RD:读信号线,当这个输入引脚为低电平时,即RD=0且CS=0时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。
CS:芯片选择信号线,当这个输入引脚为低电平时,即CS=0时,表示芯片被选中,允许8255与CPU进行通讯;CS=1时,8255无法与CPU做数据传输。
PA0~PA7:端口A输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入锁存器。
PB0~PB7:端口B输入输出线,一个8位的I/O锁存器,一个8位的输入输出缓冲器。
PC0~PC7:端口C输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入缓冲器。
《微机原理与接口技术》课程设计-交通灯

信息工程系计算机科学与技术12计本1班1214110214黄 福朱 茜 2015年06月29日院 系: 专 业: 年级班级: 学 号: 姓 名: 指导教师: 设计日期:目录一.课程设计目的 (3)二.课程设计任务 (3)三.总体设计方案 (3)五.程序设计流程图 (4)六. 程序连接图 (5)七.程序清单 (5)八.实验结果 (8)九.课程设计总结和体会 (8)一.课程设计目的用汇编语言和微机原理实验箱完成实现双方向交通信号灯控制系统,以达到熟练运用汇编语言编程以及实验箱上各个芯片的灵活运用。
⒈了解交通灯管理的基本工作原理⒉熟悉8253定时计数器的工作方式和编程应用⒊熟悉8255A并行接口的工作方式和编程应用二.课程设计任务本次课程设计的内容为双方向交通信号灯的控制和管理。
具体要求如下:1.东西方向车辆放行20秒钟。
即东西方向的绿灯和南北方向的红灯同时点亮25秒钟和黄灯点亮3秒钟。
2.南北方向车辆放行20秒钟后,转为南北方向的黄灯点亮3秒钟,以警示将切换红绿灯。
此时东西方向仍维持红灯点亮。
3.循环重复执行1和2两步骤。
三.总体设计方案1、用实验系统8255A实现对信号灯的控制(B端口),A端口的PA6、PA7口用来和8253共同控制信号灯点亮的时间。
2、实验中,8255选用(10010000)方式选择字,A组工作0方式,A端口输入,PC4-PC7输出,B组0方式,B端口输出,PC3-PC0输出3、实验中,8253采用两个计数器级联的方式达到定时的效果,8253计数器0的CLK0输入1MHZ的时钟脉冲,工作在模式3即方波发生器,理论设计OUT0 输出周期为0.01S的方波,则计数器0的初值为10000;OUT0输出的方波分别作为计数器1、计数器2的CLK1和CLK2的输入时钟脉冲,计数器1和计数器2工作方式为模式1,计数器1的初值为2500,即OUT1输出25秒,控制红绿灯的时间;计数器2初值为300,即OUT2输出3秒,控制黄灯的时间。
《微机原理与接口技术》课程设计实验报告-交通灯控制功能设计

微机课程设计——交通灯控制系统
中断子程序模块是通过扩充中断源实现的,主要是通过设置 8259 的工作模 式,开放 TR1 和 TR0 的中断,按上开关 K 后,TR0 就发生中断,在 TR0 中断没有 触发的情况下,从 OU1 口输出一个上升沿脉冲,TR1 就中断一次, 程序如下所示:
QUERY: MOV DX,MY8259_OCW3 MOV AL,0CH OUT DX,AL IN AL,DX ;读出查询字 ;判断中断是否已响应 ; 没有响应则继续查询 ; 向 8259 的 OCW3 发送查询命令
《微机原理与接口技术》 课程设计实验报告
题目:交通灯控制功能设计
指导老师:
专业:
班级:
目录
微机课程设计——交通灯控制系统
ห้องสมุดไป่ตู้
一、设计思想和实施方案论述,硬件原理图及分析 1.1、课程设计名称 1.2、课程设计要求 1.3、课程设计目的 二、设计思想和实施方案论述,硬件原理图及分析 2.1、设计思想和实施方案 2.2、硬件原理图 三、典型模块以及典型编程技巧分析 3.1、8086 典型模块分析 3.2、编程技巧分析 四、设计中遇到的问题及解决方法 五、程序清单和程序注释,相关流程图 5.1 程序清单和注释 5.2、实验室及流程图 六、收获与体会 七、参考文献
微机课程设计——交通灯控制系统
MOV OUT 器输出 1HZ 的方波
AL,2 DX,AL ;1.041667MHZ/2000/1000=1HZ, 即计数
数码管的显示是通过调用显示函数实现的, 通过设置 8255 的工作模式, 选择数码管的高位工作, 然后将计数的高位送到数码管, 再选择数码管的低位工 作,然后将计数的低位送到数码管,在 1s 钟内多次扫描就可以消除闪烁,从而 达到理想的计数效果,它的程序如下所示:
微机原理课程设计_十字路口交通灯控制器

一、设计题目:十字路口交通灯控制器二、设计要求:通过对红绿黄LED发光二极管的控制,熟练掌握8255A可编程并行接口的编程方法。
编写程序控制8255A可编程并行接口芯片,使实验台上的红、绿、黄发光二极管按照十字路口交通信号灯的燃灭规律发光。
三、硬件方案:(一)设计原理:通过8255A并口来控制LED发光二极管的亮灭。
A口控制红灯,B口控制黄灯,C口控制绿灯。
输出为0则亮,输出为1则灭。
用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,8088CPU,双色灯,PC机等实现。
(二).部分所使用的芯片极其原理:(1)8255的基本功能:Intel公司生产的可编程并行接口芯片8255A已广泛应用于实际工程中,例如8255A与A/D、D/A配合构成数据采集系统,通过8255A连接的两个或多个系统构成相互之间的通信,系统与外设之间通过8255A交换信息,等等,所有这些系统都将8255A用作为并行接口。
8255A为一可编程的通用接口芯片。
它有三个数据端口A、B、C,每个端口为8位,并均可设成输入和输出方式,但各个端口仍有差异:端口A(PA0~PA7):8位数据输出锁存/缓冲器,8位数据输入锁存器;端口B(PB0~PB7):8位数据I/O锁存/缓冲器,8位数据输入缓冲器;端口C(PC0~PC7):8位输出锁存/缓冲器,8位输入缓冲器(输入时没有锁存);在模式控制下这个端口又可以分成两个4位的端口,它们可单独用作为输出控制和状态输入。
微机原理课程设计说明(交通灯)

2、有急救车通过时:(用中断实现)
两个方向的交通灯全为红(10S),急救车通过后恢 复正常信号。
3、 制作交通灯控制硬件电路板,编写软件
在XL1000-2000仿真仪实现交通信号灯控制。
(二)提高部分:实现智能交通灯控制
1、考虑左转灯控制
2、红绿灯点亮时间用键盘设定,用数码管
减“1”操作显示时间变化。。
附录:1、kerl-uvision集成调试软件的操作
操作步骤:
(1)双击桌面上的UV2快捷图标,启动软件。 (2)点击P工程 N新建工程 输入文件名并选择 存入的盘(如E:)点击保存。出现CPU屏幕,选Atmel AT89C51 点确定。屏幕左上方出现图标目标1, 原则上一个程序可建一个工程。 (3)点击文件 新建文件 出现汇编语言输入区。 输入汇编语言程序,点击文件中的保存,输入:程序 名.ASM 并选择存入的盘(如E:)点击保存。(输入的程 序名一般不超过6个字母数字,以字母打头)
③为了简化操作步骤,第一次使用时, 应当确认一 下软件的设置。首先点击下图的“设置”对话框在 自动编程的选项中选择: “擦除” “写入”“运 行目标板” (下图打钩的地方)然后点确定。由于 一般情况下,检测芯片,查空,校对,写加密等等 选项没有必要选择,会浪费编程时间。 ④在芯片类型的对话框中选择 MCU\ATMEL_51\AT89S52 然后点确定。 ⑤点击主界面的“打开”,找到要烧录的程序的 .HEX文件,然后点确定。
《微机原理机接口技术》课程设计
一、课程设计的目的: 1、加深对单片机的基本概念、基本原理、基 本结构的理解; 2、通过课程设计提高学生单片机的开发能力,
包括硬件设计和软件编程的能力。
二、课程设计的内容:
用单片机控制十字路口的交通灯,要求能
微机原理交通灯课程设计讲解

湖南科技大学潇湘学院信息与电气工程系《课程设计报告》题目:硬件描述语言课程设计专业:通信工程班级:二班姓名:学号:指导教师:欧青立2015 年 12 月 28 日信息与电气工程学院课程设计任务书2015 —2016 学年第一学期专业:通信工程班级:二班学号:姓名:课程设计名称:微机原理与接口技术设计题目:基于PC机与8255的交通灯电路系统设计完成期限:自2015年12 月14 日至2015 年12 月25 日共 2 周设计依据、要求及主要内容(可另加附页):设计依据:交通灯在我们的日常生活中很常见,现代化城市交通中交通灯已成为城市不可或缺的一部分。
基于微处理器的交通灯控制系统成为主要设计方法。
采用微处理器结合外围芯片,通过软件编程方式即可实现对交通灯的控制。
设计内容及要求:采用8086\8088控制器和8位并行接口芯片8255设计实现交通灯控制系统,编写相关软件程序。
基本要求:(1)采用Protel软件或其它软件绘制电路原理图;(2)初始状态为全红灯,等待5秒,LED显示倒计时,然后东、西方向亮红灯,南、北方向亮绿灯,时间为10秒,LED显示倒计时;转为南、北方向绿灯闪3秒,然后转为黄灯3秒,LED显示倒计时;再转为东、西方向亮绿灯,南、北方向亮红灯,时间为10秒,LED显示倒计时;然后再转为东、西方向绿灯闪3秒再转为黄灯3秒,再次转为东、西方向红灯,南、北方向绿灯,以后按此循环。
提高要求:如果发生突发情况,能通过按键使东西或南北方向长时间红灯。
指导教师(签字):批准日期:年月日目录前言 (4)第一章绪论 (5)1.1 设计的目的及要求 (5)1.2 设计期望实现的目标 (5)1.3 目标的可行性分析 (6)1.4 使用的技术和方法 (6)第二章内容 (7)2.1 设计步骤 (7)2.2 详细设计 (7)第三章硬件设计 (7)3.1 8255A工作原理 (7)3.2 8088工作原理 (9)2.3 设计原理图与PCB (10)第四章软件设计 (11)3.1 程序分析 (11)3.1 程序代码 (15)第四章心得体会 (16)参考文献 (17)前言在21世纪这个科技当道的年代,只要你敢想一切皆有可能。
微机原理与接口技术交通灯设计

《微机原理和接口技术》课程设计姓名:*******班级学号:*******任课老师:*******一、实验课题《交通信号灯控制系统》二、实验目的在熟悉8086/8088指令系统的基础上,掌握8086/8088汇编语言程序设计方法;掌握8259可编程中断控制器,8255可编程并行接口、8253可编程定时/计数器的使用三、实验要求1、模拟交通信号灯(分A、B两组)的红、黄、绿灯(实验箱中的发光二极管)交替变换的过程。
2、在实验箱的LED显示器上显示当前剩余时间(每秒更新一次,倒计时)。
A组、B组之间时间关系如下:A组B组绿灯26秒红灯30秒四、 实验设备机一台、PC实验箱一个(8086、8259、8255、8253芯片及相关电路、发光二极管六只)及导线若干。
五、 设计 1、 设计思路(1)分析问题——各端口使用——代码实现(2)具体使用(8255的B 口做灯信号的输出,A 口做位选码的输出,C 口做LED 的输出。
)(3)实验内容1、系统中,8259采用初始化命令字ICW1、ICW2、ICW4和操作命令字OCW1,允许内部中断IRQ0和外部中断IRQ1 2、系统中,8255选用(10000000)方式选择字,A 组工作0方式,A 端口输出,PC3-PC7输出,B 组0方式,B 端口输出,PC3-PC0输出3、系统中,8253选用(00110101)选择零号端口读写两个字节,工作方式2(频率发生器)二十进制2、程序流程黄灯 4秒 红灯 30秒 绿灯 26秒 黄灯 4秒3、电路原理图4、初始化8259 初始化8255设置中断向量显示时间启动计数器开始设置交通灯初态结束初始化8253STACK ENDSDATA SEGMENTTIMER DB 00H,30H;IRQ0中断次数,通行剩余时间(A道30秒,B道30秒)初始设为B道通行TAB DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;七段码,用于显示时间,顺序不可调换DISOFF DB 00H,00H,00H,00H;LED显示器缓冲区,数字(剩余时间)的个位和十位ROD DB 00H ;当前道路通行状态(00:为A通行道;01为B通行)LIGHT DB 0D7H ;信号灯的输出信号(11010111)KK1 DB 00H ;暂停开关KK1计数LIGHTZT DB 00HDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK START:MOV AX,0000H ;数据段清零MOV DS,AX;填写中断向量表MOV AX,OFFSET IRQ0 ;提取IRQ0的中断处理程序的偏移地址ADD AX,2000H ;加载时IP=2000H(绝对地址) MOV SI,0020H ;中断号0的矢量地址为(20H-23H) MOV [SI],AX ;填写中断处理程序的偏移地址写进中断向量表MOV AX,0000HMOV SI,0022HMOV [SI],AX ;填写中断处理程序的段地址写进中断向量表MOV AX,OFFSET IRQ1ADD AX,2000HMOV SI,0024H ;中断号1的矢量地址为(24H-27H) MOV [SI],AXMOV AX,0000HMOV SI,0026HMOV [SI],AX;加载数据段MOV AX,DATAMOV DS,AX;8259初始化MOV AL,13H ;8259初始化ICW1(00010011)单片方式需写ICW4OUT 20H,AL ;端地址A0=0MOV AL,08H ;ICW2(00001000)中断向量号的高五位(000001)OUT 21H,ALMOV Al,01H ;ICW4(00000001)一般全嵌套,非缓冲,非自动中断结束,十六位机系统OUT 21H,AL ;特征位:D7-D5=000MOV AL,0FCH ;OCWl允许IRQ0、IRQ1中断OUT 21H,AL;8255初始化MOV AL,80H ;(10000000)方式选择字,A组工作0方式,A端口输出,PC3-PC7输出,B组0方式,B端口输出,PC3-PC0输出OUT 63H,AL;初始化8253MOV AL,35H ;(00110101)选择零号端口读写两个字节,工作方式2(频率发生器)二十进制OUT 43H,ALMOV AX,380 ;定时(频率乘以时间)OUT 40H,AL ;低字节MOV AL,AHOUT 40H,AL ;高字节STI ;开中断(允许CPU接收中断)M:CALL DISP2CMP KK1,1JZ ZT ;调用时间显示函数CMP TIMER+1,04H ;判断是否到了最后4秒,到了则跳转JZ R1CMP TIMER+1,00H ;判断通行时间是否结束,到了则跳转JZ R2JMP DISP1 ;如时间大于五秒,则直接按当前方式显示信号灯R1: CMP ROD,00H ;如到了最后五秒,则判断是A 道通行否? ROD=00H为A道JZ R12 ;如是A道通行,则改变状态R11:MOV LIGHT,7BH ;(01111110)改变为A道红,B道黄JMP DISP1 ;信号输出R12:MOV LIGHT,0B7H ;(10110111)改变为A道黄,B道红JMP DISP1R2: CMP ROD,00H ;改变通行状态JZ R22R21:MOV LIGHT,0D7H ;如果当前B道通行结束,则切换为A道MOV ROD,00HMOV TIMER+1,30H ;A道通行时间30秒JMP DISP1R22:MOV ROD,01H ;如果当前A道通行结束,则切换为B道ROD=01H为B道MOV LIGHT,7DHMOV TIMER+1,30HJMP DISP1 ;B道通行时间30秒ZT:JMP MDISP1: ;灯信号输出函数MOV AL,LIGHT ;将灯信号输出到8255的B口OUT 61H,ALSTIJMP MIRQ0:PUSH AX ;现场保护PUSH CXPUSHFMOV AL,TIMER ;取80次中断请求为一秒INC ALMOV TIMER,ALCMP AL40H ;1秒判断?JNE M1 ;不到则跳转MOV AL,00H ;毫秒数清零MOV TIMER,ALMOV AL,TIMER+1 ;剩余时间减1 SUB AL,01HDAS ;调整为压缩BCD码MOV TIMER+1,ALM1: MOV AL,20H ;中断复位OUT 20H,ALPOPFPOP CXPOP AXSTIIRETIRQ1: ;暂停(恢复)PUSH AXPUSHFMOV AL,KK1CMP AL,00H ;判断当前的状态:00为通行,01为暂停JNE M2INC AL ;改变当前状态MOV KK1,ALMOV AL,0FDH ;(11111101)关IRQ0中断,开IRQ1中断OUT 21H,ALMOV AL,LIGHTMOV LIGHTZT,AL;///////////////////////////////////////////////////////////MOV AL,77H ;(01110111)大、小道均为红灯OUT 61H,ALJMP M3M2: ;恢复MOV AL,00HMOV KK1,ALMOV AX,LIGHTZT;//////////////////////////////////////////////////////////////////OUT 61H,ALMOV AL,0FCH ;(11111100)开IRQ0、IRQ1中断OUT 21H,ALSTIM3:MOV AL,20HOUT 20H,ALPOPFPOP AXSTIIRETDISP2: ;时间显示函数MOV AL,TIMER+1 ;AL=30H AX=?30HAND AL,0FH ;AX=0000HMOV DISOFF+3,AL ;DISOFF+3=00HDISOFF DB 03H,00H,03H,00HMOV DISOFF+1,AL ;DISOFF+1=00HMOV AL,TIMER+1 ;AL=30HMOV CL,04H ;CL=04HSHR AL,CL ;AL=03HMOV DISOFF+2,AL ;DISOFF+2=03HMOV DISOFF,AL ;DISOFF=03HMOV SI,OFFSET DISOFF ;缓冲区的偏移地址MOV DL,0F7H ;(11110111)将位选码初值送DLMOV AL,DL ;AL=0F7HAGAIN:OUT 60H,AL ;从A口输出位选码MOV AL,[SI]MOV BX,OFFSET TAB ;七段码的偏移地址AX=0003H BX=TABAND AX,00FFHXLAT ;MOV AL,BX+[AX] ;将显示七段码送ALOUT 62H,AL ;将AL转换成七段码从B口输出CALL DALLY ;调用延时1ms子程序INC SI ;SI=SI+1MOV AL,DLTEST AL,01H ;4位显示完否?JZ M4ROR AL,01H ;DL循环右移一位MOV DL,ALJMP AGAINM4: RETDALLY: ;循环256次MOV CX,0010H ;延时子程序T1: MOV AX,0010HT2: DEC AXJNZ T2LOOP T1RETCODE E NDSEND START六、心得体会这周关于交通灯的设计是对我来说就是一次挑战,虽然说代码并非是我自己写的,可以说我是参考别人的,但是理解所有的设计代码我确实也花了不少时间,我除了要熟悉8259、8255、8253这些芯片,还得将它们合理的利用起来,由于之前对汇编知识的掌握相当差,理解起来是相当的困难,但是庆幸的事,我向同学和老师咨询中吸收了不少知识。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
信息工程系 计算机科学与技术 12计本1班 1214110214 黄 福 朱 茜
2015年06月29日
院 系: 专 业: 年级班级: 学 号: 姓 名: 指导教师: 设计日期:
目录
一.课程设计目的 (3)
二.课程设计任务 (3)
三.总体设计方案 (3)
五.程序设计流程图 (4)
六. 程序连接图 (5)
七.程序清单 (5)
八.实验结果 (8)
九.课程设计总结和体会 (8)
一.课程设计目的
用汇编语言和微机原理实验箱完成实现双方向交通信号灯控制系统,以达到熟练运用汇编语言编程以及实验箱上各个芯片的灵活运用。
⒈了解交通灯管理的基本工作原理
⒉熟悉8253定时计数器的工作方式和编程应用
⒊熟悉8255A并行接口的工作方式和编程应用
二.课程设计任务
本次课程设计的内容为双方向交通信号灯的控制和管理。
具体要求如下:
1.东西方向车辆放行20秒钟。
即东西方向的绿灯和南北方向的红灯同时点亮25秒钟和黄灯点亮3秒钟。
2.南北方向车辆放行20秒钟后,转为南北方向的黄灯点亮3秒钟,以警示将切换红绿灯。
此时东西方向仍维持红灯点亮。
3.循环重复执行1和2两步骤。
三.总体设计方案
1、用实验系统8255A实现对信号灯的控制(B端口),A端口的PA6、PA7口用来和8253共同控制信号灯点亮的时间。
2、实验中,8255选用(10010000)方式选择字,A组工作0方式,A端口输入,PC4-PC7输出,B组0方式,B端口输出,PC3-PC0输出
3、实验中,8253采用两个计数器级联的方式达到定时的效果,8253计数器0的CLK0输入1MHZ的时钟脉冲,工作在模式3即方波发生器,理论设计OUT0 输出周期为0.01S的方波,则计数器0的初值为10000;OUT0输出的方波分别作为计数器1、计数器2的CLK1和CLK2的输入时钟脉冲,计数器1和计数器2工作方式为模式1,计数器1的初值为2500,即OUT1输出25秒,控制红绿灯的时间;计数器2初值为300,即OUT2输出3秒,控制黄灯的时间。
四.部分电路设计及功能解说
本程序设置的是东西车道亮路灯20秒,黄灯亮3秒,同时南北车道红灯23秒,接下来是东西车道红灯23秒,南北车道绿灯20秒,黄灯亮3秒。
8253计数器1的OUT1连接8255A的PA7,计数器2的OUT2连接PA6,通过判断PA6和PA7的高低电平来控制信号灯亮的时间。
五.程序设计流程图
开始
初始化8255A
初始化8253
东西路口绿灯亮,南北路口红灯亮,延时20
秒后,东西路口黄灯亮并延时3秒
东西路口红灯亮,南北路口绿灯亮,延时20
秒后,南北路口黄灯亮并延时3秒
结束
六. 程序连接图
七.程序清单
CODE SEGMENT
ASSUME CS : CODE
ORG 2000H
START :MOV DX ,0FF2BH
MOV AL,90H
OUT DX,AL ;初始化8255A,A口输入,B口、C口输出
MOV DX,0043H
MOV AL,36H
MOV DX,AL ;初始化8253计数器0,工作方式为模式3
MOV AL,72H
OUT DX,AL ;初始化8253计数器1,工作方式为模式1 MOV AL,0B2H
OUT DX,AL ;初始化8253计数器2,工作方式为模式1 MOV DX,0FF29H
L:MOV AL,7DH
OUT DX,AL ;东西路口绿灯亮,南北路口红灯亮
CALL TIMER_G ;调用延时20秒子程序
MOV AL,7EH
OUT DX,AL ;东西路口黄灯亮,南北路口红灯亮
CALL TIMEY ;调用延时3秒子程序
MOV AL,0DBH
OUT DX,AL ;东西路口红灯亮,南北路口绿灯亮
CALL TIMER_G ;调用延时20秒子程序
MOV AL,0EBH
OUT DX,AL ;东西路口红灯亮,南北路口黄灯亮
CALL TIMEY ;调用延时3秒子程序
JMP L ;跳转到东西路口绿灯亮,南北路口红灯亮TIMER_G PROC
PUSH DX
PUSH AX ;将寄存器AX,DX压栈
MOV DX,0040H
MOV AX,10000
OUT DX,AL
MOV AL,AH
OUT DX,AL ;给8253计数器0赋初值
MOV AX,2000
MOV DX,0041H
OUT DX,AL
MOV AL,AH
OUT DX,AL ;给8253计数器1赋初值
MOV DX,0FF28H
P:IN AL,DX ;取8255A中A口的数据
CMP AL,80H ;若PA7为1则CPU继续检测PA7,直到PA7为0 JNZ P ;则继续执行程序,延时完成
POP AX
POP DX
RET
TIMEY PROC
PUSH DX
PUSH AX
MOV DX,0040H
MOV AX,10000
OUT DX,AL
MOV AL,AH
OUT DX,AL ;给8253计数器0赋初值
MOV DX,0042H
MOV AX,300
OUT DX,AL
MOV AL,AH
OUT DX,AL ;给8253计数器2赋初值
MOV DX,0FF28H
Q:IN AL,DX ;若PA6为1则CPU继续检测PA6,直到PA6为0 CMP AL,40H ;则继续执行程序,延时完成
JNZ Q
POP AX
POP DX
RET
CODE ENDS
END START
八.实验结果
1.东西方向车辆放行20秒钟。
即东西方向的绿灯和南北方向的红灯同时点亮25秒钟和东西方向黄灯亮5秒。
2.南北方向放行20秒钟后,转为南北方向的黄灯亮5秒钟,以警示将切换红绿灯。
此时东西方向仍维持红灯点亮。
3.循环重复执行1和2两步骤。
九.课程设计总结和体会
本次实验,收获颇多,更形象地熟悉了8253定时计数器的6种工作方式的使用及其特点,包括每种方式的控制字、启动方式、输出波形的特点等;也熟悉了8255A的三种工作方式以及A口、B口、C口各自工作的特点,熟练的对8255A 进行初始化操作,和编程应用。
通过动手接硬件电路,熟悉了8086CPU的结构和硬件连线,以及各类芯片的综合使用。
通过本次实验中汇编代码的编写,巩固了汇编代码编写的基础,对汇编语法有了进一步认识,并且学会了编写和使用汇编子程序。
在这一过程中,我们充分发挥我们的主观能动性,想象创造性,攻克了很多之前都没有想过的难关,真的受益匪浅。
这次设计不仅仅耗时耗力,而且还要整天对着电脑进行仿真且不停的调试、修改,这次课程设计对我们理论和实验都有很大的提升,我想这些对于我们今后的学习生活都有很重要的意义,这将是我们在程序设计以及大学学习过程中的宝贵经验和财富。