《微机原理与接口技术》课程设计交通灯讲课讲稿.docx
《《微机原理与接口技术》课程设计交通灯讲课讲稿.docx》由会员分享,可在线阅读,更多相关《《微机原理与接口技术》课程设计交通灯讲课讲稿.docx(8页珍藏版)》请在冰豆网上搜索。
《微机原理与接口技术》课程设计交通灯讲课讲稿
《微机原理与接口技术》课程设计-交通灯
信息工程系
计算机科学与技术
12计本1班
1214110214
黄福
朱茜
2015年06月29日
一.课程设计目的
用汇编语言和微机原理实验箱完成实现双方向交通信号灯控制系统,以达到熟练运用汇编语言编程以及实验箱上各个芯片的灵活运用。
⒈了解交通灯管理的基本工作原理
⒉熟悉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的高低电平来控制信号灯亮的时间。
5.程序设计流程图
六.程序连接图
CLK2
GATE1
CLK1
OUT0
计数器0
GATE0
CLK0
7.程序清单
CODESEGMENT
ASSUMECS:
CODE
ORG2000H
START:
MOVDX,0FF2BH
MOVAL,90H
OUTDX,AL;初始化8255A,A口输入,B口、C口输出
MOVDX,0043H
MOVAL,36H
MOVDX,AL;初始化8253计数器0,工作方式为模式3
MOVAL,72H
OUTDX,AL;初始化8253计数器1,工作方式为模式1
MOVAL,0B2H
OUTDX,AL;初始化8253计数器2,工作方式为模式1
MOVDX,0FF29H
L:
MOVAL,7DH
OUTDX,AL;东西路口绿灯亮,南北路口红灯亮
CALLTIMER_G;调用延时20秒子程序
MOVAL,7EH
OUTDX,AL;东西路口黄灯亮,南北路口红灯亮
CALLTIMEY;调用延时3秒子程序
MOVAL,0DBH
OUTDX,AL;东西路口红灯亮,南北路口绿灯亮
CALLTIMER_G;调用延时20秒子程序
MOVAL,0EBH
OUTDX,AL;东西路口红灯亮,南北路口黄灯亮
CALLTIMEY;调用延时3秒子程序
JMPL;跳转到东西路口绿灯亮,南北路口红灯亮
TIMER_GPROC
PUSHDX
PUSHAX;将寄存器AX,DX压栈
MOVDX,0040H
MOVAX,10000
OUTDX,AL
MOVAL,AH
OUTDX,AL;给8253计数器0赋初值
MOVAX,2000
MOVDX,0041H
OUTDX,AL
MOVAL,AH
OUTDX,AL;给8253计数器1赋初值
MOVDX,0FF28H
P:
INAL,DX;取8255A中A口的数据
CMPAL,80H;若PA7为1则CPU继续检测PA7,直到PA7为0
JNZP;则继续执行程序,延时完成
POPAX
POPDX
RET
TIMEYPROC
PUSHDX
PUSHAX
MOVDX,0040H
MOVAX,10000
OUTDX,AL
MOVAL,AH
OUTDX,AL;给8253计数器0赋初值
MOVDX,0042H
MOVAX,300
OUTDX,AL
MOVAL,AH
OUTDX,AL;给8253计数器2赋初值
MOVDX,0FF28H
Q:
INAL,DX;若PA6为1则CPU继续检测PA6,直到PA6为0
CMPAL,40H;则继续执行程序,延时完成
JNZQ
POPAX
POPDX
RET
CODEENDS
ENDSTART
8.实验结果
1.东西方向车辆放行20秒钟。
即东西方向的绿灯和南北方向的红灯同时点亮25秒钟和东西方向黄灯亮5秒。
2.南北方向放行20秒钟后,转为南北方向的黄灯亮5秒钟,以警示将切换红绿灯。
此时东西方向仍维持红灯点亮。
3.循环重复执行1和2两步骤。
9.课程设计总结和体会
本次实验,收获颇多,更形象地熟悉了8253定时计数器的6种工作方式的使用及其特点,包括每种方式的控制字、启动方式、输出波形的特点等;也熟悉了8255A的三种工作方式以及A口、B口、C口各自工作的特点,熟练的对8255A进行初始化操作,和编程应用。
通过动手接硬件电路,熟悉了8086CPU的结构和硬件连线,以及各类芯片的综合使用。
通过本次实验中汇编代码的编写,巩固了汇编代码编写的基础,对汇编语法有了进一步认识,并且学会了编写和使用汇编子程序。
在这一过程中,我们充分发挥我们的主观能动性,想象创造性,攻克了很多之前都没有想过的难关,真的受益匪浅。
这次设计不仅仅耗时耗力,而且还要整天对着电脑进行仿真且不停的调试、修改,这次课程设计对我们理论和实验都有很大的提升,我想这些对于我们今后的学习生活都有很重要的意义,这将是我们在程序设计以及大学学习过程中的宝贵经验和财富。