汇编课程设计17804.doc
文本预览下载声明
湖南农业大学课程设计报告
学 院:信息科学技术学院 班 级:2007级信工2班
姓 名:李新花 学 号:200741843221
课程设计题目:模拟交通灯
课程名称:汇编语言与微机原理
辅导老师:解志坚
评阅成绩:
评阅意见:
成绩评定教师签名:
日期: 年 月 日
目 录
模拟交通灯
概述
此模拟交通灯,是在TND-MD教学系统上实现的。所使用的芯片主要有8253定时计数器、8255A并行接口电路芯片、8259A中断控制器等。通过红绿SW-LED显示不同的二极管亮灭组合来表示模拟交通灯的运行情况,并通过液晶显示屏显示倒计时,其计时精确度为1s。
一、设计内容与要求
如右图,在十字交叉路口设置交通灯和倒计时牌,东边与西边显示完全一样,南边与北边的显示完全一样,只需设计东边和南边。
考虑东往西,南往北两个直行方向和左拐情况;直行、左拐和禁止时间比例为0.8∶0.2∶1;
要求以8253产生秒(或更长间隔)信号,送8259(IRQ7)中断及计数,南口和北口设置各设置直行和左拐两组红绿灯(利用红绿LED显示)和倒计时牌显示(利用4个数码管或液晶显示屏分两组显示);
注意东口和南口之间禁止通行时间等于左拐与直行通行时间之和。
二、设计思想
本程序是在TDN—MD教学系统上实现的,要使用汇编语言进行编写,整体设计思路是:由于要实现前叙的实验要求,本程序要达到以下基本功能:
秒信号的产生:
现实生活中的交通灯都是有倒计时的,因此本设计需要一个秒信号,而在TDN—MD上8253定时计数器可以实现这个功能,由于8253的out输出频率为1.19MHZ,若使其计数初值为1190000,刚好每秒产生一个脉冲。而8253的每个计数器都是16位的,无法存入这个值,两个计数器级联就可以实现:让0通道的OUT0连接8259的IRQ0,再有OUT0连2通道的CLK2,使OUT2的输出秒信号,out2连接8259的irq7,gate2接正5v电压。其中计数器0的计数初值设计为1190,而计数器2的计数初值为1000,则OUT2每秒输出一个脉冲方波信号。
倒计时的显示:
利用TDN—MD系统的液晶显示屏,来显示倒计时。由于考虑到东,南两个方向的通行显示,所以我们设计了两个倒计时,一个用来显示东边方向的倒计时的情况,另一个用来显示南边方向倒计时的情况。为了模拟的方便,设计了直行时间为24秒,左拐时间为6秒,禁行时间为30秒。通过8253的IRQ7产生一次中断,调用中断服务程序显示倒计时,每秒减一。东边通行时:时间从24减到0,然后是6秒的左拐时间。南边的情况一样。东,南两个方向的时间都分别显示在液晶显示屏上
红绿灯的显示与改变:
在TDN—MD系统上有LED红绿发光二极管,上面有4个红灯和4个绿灯,且有8个对应的引脚,我们可以利用8255的B端口写数据就可以控制8个灯的亮灭。在本次课程设计中,为了模拟各种情况,我们把8个灯分成两组:东组有:1,2,5,6四盏灯;南组有:3,4,7,8四盏灯。其中东直行时各盏灯的亮灭情况‘0’为亮,‘1’为灭);东左拐时是南直行时南左拐时是
通过8253来定时驱动各种情况的切换
三、设计所用芯片及工作原理
本课程设计所用的芯片主要有8253定时计数器,8255A并行接口电路芯片,8259A中断控制器等,它们的工作原理分别如下:
(一)8253定时计数器
8253可编程定时计数器是intel公司生产的的通用外围芯片之一。它有三个独立的十六位计数器,计数频率范围为0—2MHZ,它所有的计数方式和操作方式都可以通过编程控制。
1.8253的功能是:
(1)延时终端;(2)可编程频率发生器;(3)事件发生器;(4)倍率器;
(5)实时时钟;(6)数字单稳;(7)复杂的电机控制器
2.计数器0,计数器1,计数器2;
这3个计数器相互独立,各自可按不同的方式工作。计数器的内部结构如前所述,每个计数器包含一个16位的初始寄存器,一个计数执行部件哥一个锁存器。计数执行部件从初始值寄存器中获得计数初值,便进行减1计数,此时,锁存器跟随计数执行部件的内容而变化,当有一个锁存器命令来到时,锁存器便锁定当前计数,直到被读走以后,又跟随计数执行部件的动作。
各计数器的外部输入输出信号:
计数器0:CLK0—计数器0的时钟输入。
GATE0—计数器0的门脉冲控制输入。
OUT0—计数器0的输出。
2.计数器1:CLK1—计数器1的时钟输入。
GATE1—计数器1的门脉冲控制输入。
OUT1—计数器1的输出。
计数器2:CLK2—计数器2的时钟输入。
GATE2—计数器2的门脉
显示全部