版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一、设计要求(1)南北路口的绿灯、东西路口的红灯同时亮5秒。(2)南北路口的黄灯闪烁若干次,维持3秒,同时东西路口的红灯。(3)南北路口的红灯、东西路口的绿灯同时亮5秒。(4)南北路口的红灯、同时东西路口的黄灯亮烁若干次,维持3秒。(5)转(1)重复。(6)紧急情况可以手动控制红绿灯的变换。一个开关控制南北绿,东西红,另一个按钮南北红,东西绿。(7)黄灯闪烁时扬声器发声,提醒。二、设计目的(1)了解红绿灯电路的基本工作原理;(2)了解8086微型计算机的工作过程;(3)学习8086cpu与外围设备的接口技术。(4)运用微机原理与接口技术、数字电路、汇编语言程序设计等课程学到的知识,掌握微型计算
2、机接口的方法和原理,具备一定的微机应用开发的实践能力,加深对理论课程的理解。三、设计的具体实现原理框图3.1系统概述本次设计是模拟交通灯实时控制系统,以8086cpu为核心加以并行接口芯片8255、可编程计数器/定时器8253、led灯、开关等组成的系统。以led灯模拟十字路口的红绿灯。对交通灯控制的实现主要是通过编写汇编语言程序对8255的i/o及8253进行控制,从而实现对灯的亮与灭进行控制。pc口做输入,读取定时,及应急开关状态。用8253对扬声器的发声进行控制,利用软件编程给定8253芯片某一频率的方波信号,并且设定8255芯片的门控信号pb0 =1,则可控制扬声器发声。利用8253的
3、计数器1方式3、计数器0方式0实现对扬声器的控制,以及对于交通灯亮灭时间的精确延时。 3.2 8086cpu介绍8086由执行部件和总线接口部件组成(内部结构图如下图)8086内部结构图1. 执行部件eu由算术逻辑单元(alu)、标志寄存器、通用寄存器组和eu控制器等部件组成。主要功能是执行指令:一般顺序执行,eu不断地从指令队列中取指令连续执行,而省去访问存储器取指令的时间。需要访问存储器取操作数时,eu将访问地址送给biu后,将要等待操作数到来后才能继续操作;遇到转移类指令时,要将指令队列中的后续指令作废,等待biu重新从存储器取出目标地址中的指令代码进入指令队列后,eu才能继续执行指令。
4、 算术逻辑单元(alu)完成16位或8位的二进制运算;16位暂存寄存器用来暂存参加运算的操作数。运算结果通过内部总线送到通用寄存器组或biu的内部寄存器中等待写入存储器。经alu运算后的结果特征置入标志寄存器中保存。负责从biu的指令队列中取指令,并对指令译码;据指令要求向eu内部各部件发出控制命令以完成各条指令的功能。2. 总线接口部件biu由地址加法器、专用寄存器组、指令队列缓冲器和总线控制电路等部件组成;主要功能是形成访问存储器的物理地址,负责与外部(存储器或i/o接口)打交道。(1)指令队列可存放6字节的指令代码。一般情况下指令队列中总是填满指令,使eu可不断地得到执行的指令。(2)1
5、6位地址加法器专门用来完成由逻辑地址变换成物理地址的功能。实际上是进行一次地址加法,将两个16位的逻辑地址转换为20位的物理地址,以达到可寻址1m字节的存储空间。(3)总线控制电路将8086cpu的内部总线与外部总线相连,是8086cpu与外部交换数据的必经之路。包括16条数据总线、20条地址总线和若干条控制总线。3.3 可编程并行接口芯片82553.3.1 8255内部结构8255是intel公司生产的可编程并行i/o接口芯片,有3个8位并行i/o口。具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。 其各口功能可由软件选择,使用灵活,通用性强。8255可作为单片机与多种外设连接时的
6、中间接口电路。8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口。同时必须具有与外设连接的接口a、b、c口。由于8255可编程,所以必须具有逻辑控制部分,因而8255内部结构分为3个部分:与cpu连接部分、与外设连接部分、控制部分。8255内部结构1. 与cpu连接部分 根据定义,8255能并行传送8位数据,所以其数据线为8根d0d7。由于8255具有3个通道a、b、c,所以只要两根地址线就能寻址a、b、c口及控制寄存器,故地址线为两根a0a1。此外cpu要对8255进行读、写与片选操作,所以控制线为片选、复位、读、写信号。各信号的引脚编号如下:
7、(1)数据总线db:编号为d0d7,用于8255与cpu传送8位数据。 (2)地址总线ab:编号为a0a1,用于选择a、b、c口与控制寄存器。 (3)控制总线cb:片选信号、复位信号reset、写信号、读信号。当cpu要对8255进行读、写操作时,必须先向8255发片选信号选中8255芯片,然后发读信号或写信号对8255进行读或写数据的操作。 2. 与外设接口部分 根据定义,8255有3个通道a、b、c与外设连接,每个通道又有8根线与外设连接,所以8255可以用24根线与外设连接,若进行开关量控制,则8255可同时控制24路开关。各通道的引脚编号如下: (1)a口:编号为pa0pa7,用于82
8、55向外设输入输出8位并行数据。 (2)b口:编号为pb0pb7,用于8255向外设输入输出8位并行数据。 (3)c口:编号为pc0pc7,用于8255向外设输入输出8位并行数据,当8255工作于应答i/o方式时,c口用于应答信号的通信。 3. 控制器 8255将3个通道分为两组,即pa0pa7与pc4pc7组成a组,pb0pb7与pc0pc3组成b组。相应的控制器也分为a组控制器与b组控制器,各组控制器的作用如下: (1)a组控制器:控制a口与c口高四位的输入与输出。 (2)b组控制器:控制b口与c口低四位的输入与输出。 3.3.2 特性(1)一个并行输入/输出的lsn芯片,多功能的n/o器
9、件,可作为cpu总线与外围的接口。(2)具有24个可编程设置的n/o口,即3组8位的n/o口为pa口,pb口和pc口。它们又可分为两组12位的n/o口,a组包括a口及c口(高4位,pc4pc7),b组包括b口及c口(低4位,pc0pc3)。a组可设置为基本输入输出、选通输入输出、双向选通输入/输出;b组只能设置为基本输入输出或选通输入输出两种模式,而这些操作模式完全由控制寄存器的控制字决定。3.3.3引脚功能reset:复位信号输入引脚,当该输入引脚处于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有n/o口均被置成输入方式。 :芯片选择信号线,当这个输入引脚为低电平时,即=0时,表示
10、芯片被选中,允许8255与cpu进行通讯,=1时,8255无法与cpu做数据传输。:读信号线,当这个输入引脚为低跳变沿时,即产生一个低脉冲且=0时,允许8255通过数据总线向cpu发送数据或状态信息,即cpu从8255读取信息或数据。 :写入信号,当这个输入引脚为低跳变沿时,即产生一个低脉冲且=0时,允许cpu将数据或控制字写入8255。 d0d7:三态双向数据总线,8255与cpu数据传送的通道,当cpu 执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。 3.3.4 工作方式8255具有3个相互独立的输入/输出通道端口,用+5v单电源供电,能在以下三种
11、方式下工作。 方式0基本输入输出方式;方式1选通输入/出方式;方式2双向选通输入/输出方式; pa0pa7:端口a输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入锁存器。 工作于三种方式中的任何一种; pb0pb7:端口b输入输出线,一个8位的n/o锁存器, 一个8位的输入输出缓冲器。 不能工作于方式2; pc0pc7:端口c输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入缓冲器。端口c可以通过工作方式设定而分成2个4位的端口, 每个4位的端口包含一个4位的锁存器,分别与端口a和端口b配合使用,可作为控制信号输出或状态信号输入端口。不能工作于方式1或2。 a
12、1、a0:地址选择线,用来选择8255的pa口、pb口、pc口和控制寄存器。当a1=0,a0=0时,pa口被选择; 当a1=0,a0=1时,pb口被选择; 当a1=1,a0=0时,pc口被选择; 当a1=1,a0=1时,控制寄存器被选择。3.4 8253可编程计数/定时器3.4.1 基本概述nntel8253是nmos工艺制成的可编程计数器/定时器,有几种芯片型号,外形引脚及功能都是兼容的,只是工作的最高计数速率有所差异,例如8253(2.6mhz),8253-5(5mhz) 8253内部有三个计数器,分别成为计数器0、计数器1和计数器2,他们的机构完全相同。每个计数器的输入和输出都决定于设置
13、在控制寄存器中的控制字,互相之间工作完全独立。每个计数器通过三个引脚和外部联系,一个为时钟输入端clk,一个为门控信号输入端gate,另一个为输出端out。每个计数器内部有一个8位的控制寄存器,还有一个16位的计数初值寄存器cr、一个计数执行部件ce和一个输出锁存器ol。 执行部件实际上是一个16位的减法计数器,它的起始值就是初值寄存器的值,而初始值寄存器ol用来锁存计数执行部件ce的内容,从而使cpu可以对此进行读操器的值是通过程序设置的。输出锁存器的值是通过程序设置的。输出锁存作。顺便提一下,cr、ce和ol都是16位寄存器,但是也可以作8位寄存器来用。 3.4.2 8253内部结构 82
14、53内部结构图(1)数据总线缓冲器 数据总线缓冲器与系统总线连接,8位双向,与cpu交换信息的通道。这是8253与cpu之间的数据接口,它由8位双向三态缓冲存储器构成,是cpu与8253之间交换信息的必经之路。 (2)读/写控制读/写控制分别连接系统的和,由cpu控制着访问8253的内部通道。接收cpu送入的读/写控制信号,并完成对芯片内部各功能部件的控制功能,因此,它实际上是8253芯片内部的控制器。a1a0:端口选择信号由cpu输入。8253内部有3个独立的通道,加上控制字寄存器,构成8253芯片的4个端口,cpu可对3个通道进行读/写操作3对控制字寄存器进行写操作。 这4个端口地址由最低
15、2位地址码a1a0来选择,如表1所示。 3.4.3 通道选择 (1) 片选信号,由cpu输入,低电平有效,通常由端口地址的高位地址译码形成。 (2) 、读/写控制命令,由cpu输入,低电平有效。效时,cpu读取由a1、a0所选定的通道内计数器的内容。有效时,cpu将计数值写入各个通道的计数器中,或者是将方式控制字写入控制字寄存器中。3.4.4 计数通道02 每个计数通道内含1个16位的初值寄存器、减1计数器和1个16位的(输出)锁存器。8253内部包含3个功能完全相同的通道,每个通道内部设有一个16位计数器,可进行二进制或十进制(bcd码)计数。采用二进制计数时,写入的初值范围为0000hff
16、ffh,最大计数值是ffffh,代表65536。采用bcd码计数时,写入的初值范围为00009999,最大计数值是9999,代表10000。与此计数器相对应,每个通道内设有一个16位计数值锁存器。必要时可用来锁存计数值。当某通道用作计数器时,应将要求计数的次数预置到该通道的计数器中、被计数的事件应以脉冲方式从clk端输入, 每输入一个计数脉冲,计数器内容减“1”,待计数值计到“0”。 out端将有输出。表示计数次数到。当某个通道用作定时器时。 由clk输入一定频率的时钟脉冲。根据要求定时的时间长短确定所需的计数值。并预置到计数器中,每输入一个时钟脉冲,计数器内容减“1”, 待计数值计到“0”。
17、out将有输出,表示定时时间到。允许从clk输入的时钟频在12mhz范围内。因此,任一通道作计数器用或作定时器用,其内部操作完全相同,区别仅在于前者是由计数脉冲进行减“1”计数。 而后者是内时钟脉冲进行减“1”计数。作计数器时, 要求计数的次数可直接作为计数器的初值预置到减“1”计数器中。作定时器时, 计数器的初值即定时系数应根据要求定时的时间进行如下运算才能得到: 定时系数=需要定时的时间/时钟脉冲周期 设置通道:向方式控制字寄存器端口写入方式选择控制字,用于确定要设置的通道及工作方式;计数/定时:向通道写入计数值,启动计数操作; 读取当前的计数值:向指定通道读取当前计数器值时,8253将计
18、数器值存入锁存器,从锁存器向外提供当前的计数器值,计数器则继续作计数操作。 计数到:当计数器减1为0时,通过引脚outn向外输出脉冲信号。 计数初值输入存放在初值寄存器中,计数开始或重装入时被复制到计数器中。 3.4.5 8253的通道工作方式 8253中各通道可有6种可供选择的工作方式,以完成定时、计数或脉冲发生器等多种功能。8253的各种工作方式如下:(1)方式0:计数结束则中断(2)方式1:可重复触发单脉冲发生器(3)方式2:速率波发生器(4)方式3:方波发生器(5)方式4:软件触发方式计数(6)方式5:硬件触发方式计数在上述各工作方式中,gate作为各通道的门控信号,对于各种不同的工作
19、方式,它所起的作用各不相同。在8253的应用中,必须正确使用gate信号,才能保证各通道的正常操作。 3.3.6读取计数器的当前值 直接读计数器:输出锁存器在非锁存状态会跟随计数器计数的变化而变化,直接读计数器是从锁存器得到计数器的当前值。但由于计数器处于工作状态,读出值不一定能稳定。 先锁存再读取:通过方式选择控制字对指定通道(sc1、sc0)的计数值锁入锁存器(rl1rl0=00), 锁存器一旦锁存了当前计数值,就不再随计数器变化直到被读取。读计数器通道(有锁存器)。3.5 8284始终发生器/驱动器在8086cpu内部没有有时时钟发生器,当组成微型机系统时,所需的时钟信号由外部时钟发生器
20、提供。 8284是专门为8086设计的时钟发生器/驱动器。在8284中,不仅有时钟信号发生器,还有复位信号reset和 准备好信号ready产生电路,这些电路分别向8086系统提供时钟信号clk,复位信号reset和准备好信号ready ,还可向外界提供晶振信号osc以及外围芯片所需的时钟信号pclk。3.5.1 8284的引脚8284是双列直插式18脚组件,其引脚分配如下图所示。其功能为:x1,x2:晶振输入端。async:ready同步选择输入。async信号决定ready的同步方式。当async为低电平时,提供两级ready同步 ,若async为高电平时,提供一级ready同步。efi:
21、外来时钟输入端。当f/c接高电平时,由efi端输入外来时钟。 输入时钟信号的频率为系统时钟clk的三倍。f/c:时钟源选择输入端。若f/c 接低电平,则系统时钟clk由晶体振荡器产生;若f/c接高电平,则clk 由外来时钟产生。osc:晶振输出端。输出频率为晶振频率,ttc电平。clk:提供给整个计算机系统的时钟信号,所以称为系统时钟。clk的频率是晶体震荡器频率或efi端输入频率 1/3,占空比为33%。pclk:为外设提供的输出时钟信号,频率是clk的1/2,占空比为50%。res:复位输入端,低电平有效。用于产生8086的reset信号。由于8284 内部具有斯密特整形电路,因此res可
22、以是缓慢变化的脉冲信号,它经 8284内部电路整形而获得较陡的复位信号reset。reset:提供给8086及整个系统的复位信号,高电平有效,其宽度由res 决定。aen1,aen2 :对应rdy1,rdy2的允许控制信号,低电平 有效。当aen1为低电平时,rdy1 起作用,aen2为低电平时,rdy2 起作用。在单cpu系统中aen应接低电平,在多系统中,用这两个信号。rdy1,rdy2:rdy高电平有效的输入信号。 可由系统总线的设备产生,它有效表示数据已收到或数据可以使用。csync:同步输入信号。用来使多个8284同步,以提供同步的clk信号。csync为高电平时,内部计数器复位 ;
23、csync为低电平时,才允许内部计数器计数。3.6软件程序设计硬件电路连接见附图3.6.1 功能流程图3.6.2 东西、南北方向的红黄绿的控制表东西南北传送状态红黄绿红黄绿pa7pa6pa5pa4pa3pa2pa1pa000100100南北红亮,东西绿亮01000100南北红亮,东西黄亮00000100南北红亮,东西黄*10000001东西红亮,南北绿亮10000010东西红亮,南北黄亮10000000东西红亮,南北黄*00100100强制南北红灯东西绿灯10000001强制东西红灯南北绿灯3.6.3 源程序data segmentio8255a equ 280hio8255b equ 281
24、hio8255c equ 282hio8255ct equ 283hio8253_0 equ 290hio8253_1 equ 291hio8253ct equ 293hled db 24h,2 dup(44h,04h) ;六个灯可能(绿红、黄红、*红) db 81h,2 dup(82h,80h) ;的状态数据(红绿、红黄、红*) db 0ffh ;结束标志bc db ? ;用于保存灯的状态data endscode segment assume cs:code,ds:datastart: mov ax,data mov ds,ax mov dx,io8255ct mov al,81h out
25、 dx,al ;设置8255 a、b输出,c口低四位输入mov dx,io8253ct ;计数器1、先读/写低八 ;位后读/写高八位、方式3、out1产生方波 mov al,76h out dx,al mov ax,100 ;通道1与蜂鸣器相连 mov dx,io8253_1 out dx,al mov al,ah out dx,alnext: mov bx,0next1: mov dx,io8255amov al,ledbx cmp al,0ffh jz next out dx,al ;点亮相应的灯 mov bc,al ;保存al为下面的比较做准备 inc bx mov cx,300 ;短延
26、时cx值 test al,21h ;是否有绿灯亮,东西南北任一方有绿灯 jz delay1 ;没有,跳转至短延时delay1 mov cx,500 ;有,长延时 mov dx,io8255b ;屏蔽蜂鸣器 mov al,00h out dx,al ;检测开关的状态程序delay1: mov dx,io8255c ;开关是硬开关,按下去不 ;能自动弹起,需人工 in al,dx ;检测开关状态 test al,03h ;检测k0,k1状态 jz delay2 ;开关状态为00,延时 mov dx,io8255b ;开关按下,屏蔽蜂鸣器 mov al,00h out dx,al mov dx,io
27、8255c in al,dx ;读pc0和pc1的状态 test al,03h ; 检测是否有开关按下 jz delay2 ;没有开关按下,延时 test al,01h ;检测开关k0是否按下 jz k1 ;开关k0断开 k0: mov dx,io8255a ; 开关k0按下 mov al,81h ;强制东西红灯,南北绿灯 out dx,al jmp delay1 ;返回delay1重新检测开关的状态k1: mov dx,io8255c in al,dx test al,02h ;检测开关k1是否按下 jz delay2 ;开关k1断开 mov dx,io8255a ;开关k1按下 mov a
28、l,24h ;强制南北红灯,东西绿灯 out dx,al jmp delay1 ;返回delay1重新检测开关的状态delay2: test bc,21h jnz delay ; 有绿灯亮 mov dx,io8255b ;没有绿灯亮 mov al,01h ;有黄灯,蜂鸣器发声 out dx,al delay: mov dx,io8253ct ;重新延时 计数器0方式0 mov al,30h ;计数器0、读/写低;八位后读/写高位方式0、二进制计数 out dx,al mov ax,10000 ;周期为0.01秒 mov dx , io8253_0 out dx , al mov al,ah o
29、ut dx,al wait: mov dx,io8255c ;延时判断 in al,dx test al,04h jz wait ;pc2为0则计数还;未结束,继续检测为1则计数结束,时间为0.01s loop delay1 ;cx=cx-1,当cx等;于0时,顺序执行 jmp next1 ;没有,转到next1code ends end start通过利用8255并行接口芯片口、8253定时/计数器芯片、led发光二极管、开关以及扬声器,实现了对交通信号的灯控制系统的模拟。此程序可实现东西方向绿灯亮,南北方向红灯亮;5秒后东西方向绿灯灭,东西方向的黄灯闪烁和南北方向的红灯保持;3秒后东西方向
30、红灯亮,南北方向绿灯亮;5秒后南北方向绿灯灭,东西方向的红灯和南北方向的黄灯闪烁;3秒后东西方向绿灯亮,南北方向红灯亮,依次循环。此程序可根据不同的设计要求,调节周期时间或者是cx初值,从而实现对交通灯的亮灭时间长短的控制。同时在特殊情况下,可人为操作强制改变交通灯的状态。本系统实现了交通灯自动变换的基本功能,并通过扬声器提醒灯的转换,使系统更人性化。利用编程给定8253芯片某一频率的方波信号,控制扬声器发声。并利用8253的方式0工作方式,在计数期间,输出out 始终为低电平,实现了led发光二极管的亮灭的精确延时。四、心得体会经过近两个星期的努力,我们完成了红绿灯控制系统的设计。本次设计对
31、我们学习的知识的做了一个检验,培养了我们的动手能力以及独立思考设计的能力,也是大学培养的一个重要实践步骤。设计初期,我们通过网络、图书馆等资源查找到利用微机原理与接口技术设计制作交通灯的相关信息,对不同的方案进行细致的分析比较。并且进行改进,使之符合要求。然后按照设计的电路图进行连线,最终做出一个简单的交通灯。制作过程中发现的一些问题,经过我们小组成员间的相互讨论,寻求同学的指导,终于把自己发觉不到的问题找出来了,并将其解决。在设计的过程中遇到很多困难,但是毫不松懈的坚持坚持到最后。此次设计巩固了前期所学的理论知识,增强了动手实践能力。通过设计我们熟悉了一个实际项目的设计过程,更锻炼了自己的动手实践能力。在设计的过程中,对8253芯片和8255芯片有了更深刻的知识,掌握了并行口如何处理数据的输入输出等。在此之前做的实验都是简单的编程,跟硬件结合没有这么复杂,实现的功能都比较简单,可是这次要实现的功能相对来说比较复杂,要求掌握的知识比较综合。在设计期间学到了很多新的东西,极大地拓宽了知识面,提高了我们的综合素质,受益匪浅。最后希望通过以后的学习,不断提升自身各方面的能力,如对专业知识的掌握程度,动手实践能力等。经过此次的课程设计,我们学会了合作
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 运动器材前台工作总结
- 美术课教学创新策略计划
- 网络行业安全管理工作总结
- 2025年全球及中国全向条码扫描仪行业头部企业市场占有率及排名调研报告
- 2025-2030全球快速部署式负压帐篷行业调研及趋势分析报告
- 2025年全球及中国液压驱动气举阀系统行业头部企业市场占有率及排名调研报告
- 2025-2030全球风机叶片运输车行业调研及趋势分析报告
- 2025年全球及中国汽车振动台行业头部企业市场占有率及排名调研报告
- 2025年全球及中国无塑食品软包涂层纸行业头部企业市场占有率及排名调研报告
- 2025-2030全球紫外波段高光谱成像(HSI)设备行业调研及趋势分析报告
- 湖北省十堰市城区2024-2025学年九年级上学期期末质量检测综合物理试题(含答案)
- 导播理论知识培训班课件
- 电厂检修安全培训课件
- 四大名绣课件-高一上学期中华传统文化主题班会
- 起重机械生产单位题库质量安全员
- 高中生物选择性必修1试题
- 2023年高考英语考前必练-非谓语动词(含近三年真题及解析)
- 高校科技成果转化政策与案例分享
- 全国职工拔河比赛执行方案
- 冶金厂、轧钢厂工艺流程图
- 《民航服务沟通技巧》教案第15课民航服务人员下行沟通的技巧
评论
0/150
提交评论