微机原理课程设计
- 格式:doc
- 大小:626.00 KB
- 文档页数:16
二○一一~二○一二学年第一学期信息科学与工程学院自动化系课程设计报告书姓名:钟鸣学号:200904134178班级:自动化0906课程名称:微机原理与应用课程设计指导教师:蒋峥一.设计任务及要求:交通信号灯的控制: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地址为0020H;通道1为0021H;通道2为0022H;命令控制口为0023H。
黄灯闪烁的频率为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的PA7口,8255将A口数据输入到8086,8086检测到高电平既完成30s定时。
通道2工作在方式3需输出一个1HZ的方波,通过一个或门和8086共同控制黄灯的闪烁,因此也是工作在方波发生器方式,其计数初值为100=64H,将黄灯的状态反馈到8055的端口PB7和PC7,同样输入到8086,8086通过两次检测端口状态可知黄灯的状态变化,计9次状态变化可完成5次闪烁。
三个通道的门控信号都未用,均接+5V即可。
三.系统原理工作原理说明:此方案是通过并行接口芯片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的D~D7,同时通过地址锁存器74273,接到三八译码器,译码后分别连到8255和8253的CS片选端。
8253的三个门控端接+5V,CLOCK0接由分频器产生的1MHZ的时钟脉冲,OUT0接到CLOCK1和CLOCK2,OUT1接到8255的PA7,8086通过检测此端口是否有高电平来判断是否30s 定时到。
OUT2产生1MHZ方波通过或非门和8255的B口共同控制黄灯的闪烁。
8255三个口全部工作在方式0既基本输入输出方式,红绿灯的转换由软件编程实现。
四.硬件原理及电路图地址译码器74ls138分别做为8253和8255的选通信号,PA 口地址0024 PB 口地址为0025,PC 口地址为0026,命令控制口地址为0027 各个引脚的连接方法。
(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 提供。
最后,对时钟发生器8284芯片按两部分进行说明:(1)时钟信号发生器:CF/=0时,时钟信号输入由X1、X2端接上晶体,由晶体振荡器产生时钟信号;CLK:3分频OSC后的时钟,输出频率4.77MHz,占空比为1/3,大约满足8086CPU的输入频率5MHz、占空比33%的要求。
(2)复位生成电路:由RES输入的信号来触发内部同步触发器,由此产生信号RESET,送到CPU的RESET端,复位信号由CLK的下降沿同步。
此时,RES端接“电源好“信号,使系统上电后自动复位。
此为最小模式系统,除了8086CPU,I/O接口芯片8255A,定时计数芯片8353外,其它配置如下:1片8284A,作为时钟发生器;1片74273,作为地址锁存器;1片74LS138,作为地址选通译码器;4个二输入或非门; 4个非门12个发光二极管;五.软件思想1.流程图.2.源程序:Stack segment stack'stack'dw 32 dup(0)stack endsdata segmentPTA EQU 024HPTB EQU 025HPTC EQU 026HPTCON8255 EQU 027HPT0 EQU 020HPT1 EQU 021HPT2 EQU 022HPTCON8253 EQU 023Hdata endscode segmentbegin proc farassume ss:stack,cs:code,ds:datapush dssub ax,axpush axmov ax,datamov ds,axMOV DX, PTCON8253MOV AL,36HOUT DX,ALMOV DX,PT0MOV 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,PT2MOV AL,64HOUT DX,AL;通道2工作方式3 周期1s 8253初始化完成MOV DX, PTCON8255MOV AL,80HOUT DX,AL;8255初始化 A,B,C口均工作在方式0 MOV DX,PTAOUT DX,ALMOV DX,PTBMOV AL,0FHOUT DX,ALMOV DX,PTCMOV AL,0FHOUT DX,AL;灯初始化完成STA:MOV DX,PTAMOV AL,05HOUT DX,ALMOV DX,PTBMOV AL,0FHOUT DX,ALMOV DX,PTCMOV AL,0AHOUT DX,AL;1,3绿灯亮,2,4红灯亮MOV DX,PT1MOV AX,0BB8HOUT DX,ALMOV AL,AHOUT DX,AL;8253通道1赋值开始计时SCAN1: MOV AL,0MOV DX,PTCON8255MOV AL,90HOUT DX,ALMOV DX,PTAIN AL,DXAND AL,0F0HCMP AL,80HJNZ SCAN1;扫描PA7口FLA1: MOV DX, PTCON8255MOV AL,80HOUT DX,ALMOV DX,PTCMOV AL,0FHOUT DX,ALMOV DX,PTBMOV AL,0AHOUT DX,ALMOV CX,0TEST1: MOV DX,PTCON8255;检测PB7 MOV AL,82HOUT DX,ALIN AL,DXAND AL,0F0HMOV AH,ALMOV DX,PTCON8255MOV AL,82HOUT DX,ALMOV DX,PTBIN AL,DXAND AL,0F0HXOR AL,AHMOV CL,3SHR AL,CLADD CH,ALCMP CH,9JNZ TEST1;闪烁5次MOV DX, PTCON8255MOV AL,80HOUT DX,ALMOV DX,PTAMOV AL,0AHOUT DX,ALMOV DX,PTBMOV AL,0FHOUT DX,ALMOV DX,PTCMOV AL,05H;1,3红灯亮,2,4绿灯亮MOV DX,PT1MOV AX,0BB8HOUT DX,ALMOV AL,AHOUT DX,AL;8253通道1赋值开始计时SCAN2: MOV AL,0MOV DX,PTCON8255MOV AL,90HOUT DX,ALMOV DX,PTAIN AL,DXAND AL,0F0HCMP AL,1JNZ SCAN2FLA2: MOV DX, PTCON8255MOV AL,80HOUT DX,ALMOV AL,0FHOUT DX,ALMOV DX,PTBMOV AL,05HOUT DX,ALTEST2: MOV DX,PTCON8255MOV AL,88HOUT DX,ALMOV DX,PTCIN AL,DXAND AL,0F0HMOV AH,ALMOV DX,PTCON8255MOV AL,88HOUT DX,ALMOV DX,PTCIN AL,DXAND AL,0F0HXOR AL,AHMOV CL,3SHR AL,CLADD CH,ALCMP CH,9JNZ TEST2;闪烁5次retbegin endpcode endsend begin六.调试记录及结果分析(1) 本电路没有设置显示倒计时的七段LED数码管,如果应用到街道上,不利于司机、行人把握(2)在上机调试中发现,由于此软件延时的时间均为估算时间,不是特别准确,对于交通要求特别高的地方不宜采用。