《微机原理与接口技术》课程设计---交通急救控制系统.docx_第1页
《微机原理与接口技术》课程设计---交通急救控制系统.docx_第2页
《微机原理与接口技术》课程设计---交通急救控制系统.docx_第3页
《微机原理与接口技术》课程设计---交通急救控制系统.docx_第4页
《微机原理与接口技术》课程设计---交通急救控制系统.docx_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

微机原理与接口技术课程设计课题:交通急救控制系统 目录一 设计要求.1二 系统结构总图.2三 芯片简介.3四 系统电路图与模块设.7五 流程图与程序清单.8六 心得体会.15七 参考文献.16一设计要求本次我们需要利用微机原理试验箱设计一个交通急救灯系统,在老师的要求下,我们的设计由五大模块组成,分别为定时模块、中断模块、主控cpu模块、显示模块和小键盘模块,所需用到的芯片有8253、8259、8088、8255和8279,利用这些我们设计一个可控制时间的交通灯系统,并可实现以下要求:(1)允许按十字路口交通需求设置控制状态;(2)允许修改各状态下的通行时间;(3)有剩余时间显示;(4)当有事故发生时,东南西北方向全为红灯,暂时不能通行; 1二系统结构总图 8255 8279 led交通灯 cpu(8088) 时钟发生器 存储器 8259 8253 小键盘 2 三芯片简介 根据上面的系统结构总图,此次设计需要用到的芯片有四种,分别是8253、8259、8088与8279,下面我们分别来介绍一下这几种芯片。1)8253芯片8253的功能用途是:(1)延时中断 (2)可编程频率发生器(3)事件计数器 (4)二进倍频器(5)实时时钟 (6)数字单稳(7)复杂的电机控制器8253有六种工作方式:(1)方式0:计数结束中断 (2)方式1:可编程频率发生器(3)方式2:频率发生器 (4)方式3:方波频率发生器(5)方式4:软件触发的选通信号 (6)方式5:硬件触发的选通信号8253引脚图如图所示,各引脚功能如下:d7d0八条双向数据线;wr(低电平有效)写输入信号;rd(低电平有效)读输入信号;cs(低电平有效)片选输入信号;a0、a1片内寄存器地址输入信号;clk计数输入,用于输入定时基准脉冲或计数脉冲;out输出信号,以相应的电平指示计数的完成,或输出脉冲波形;gate选通输入,用于启动或禁止计数器的操作,以使计数器和计测对象同步。 32)8259芯片8259引脚图如图所示,各引脚功能如下:d7d0八条双向数据线;wr(低电平有效)写输入信号;rd(低电平有效)读输入信号;cs(低电平有效)片选输入信号;a0地址信号;int中断请求信号;inta(低电平有效)中断响应信号;cas0cas2级联信号,形成一条专用8259a总线,以便多片8259a的级联;sp/en从编程/允许级联。在缓冲方式中,可用做输出信号以控制总线缓冲器的接收和发送。在非缓冲方式中,作为输入信号用于表示主片还是从片;ir0ir7外部中断请求输入线。要求输入的中断请求信号是由低电平到高电平的上升沿(并保持高电平到cpu响应时为止)或者是高电平。 43)8088芯片 8088引脚图如图所示,各引脚功能如下:(1)ad7ad0:地址/数据线复用,双向三态。在每个总线周期t1状态用作地址总线,输出访问存储器或i/o口地址低8位a7a0,t2t4状态传送数据d7d0。(2)a8a15:地址线,输出三态。在整个总线周期内始终输出地址信号。(3)a19/s6a16/s3:地址/状态线复用。在每个总线周期t1状态用作地址总线高4位。在总线周期t2t4期间,输出状态信息。(4)ale:地址锁存允许信号,输出高电平有效。(5)nmi:非屏蔽中断请求,输入上升沿有效。相应的中断类型码为02h。 (6) intr响应信号,输出三态,低电平有效。当cpu响应中断时,它变为有效低电平,通知中断源送出中断向量码。 (7)clk:时钟信号输入。8088 cpu内部没有时钟信号产生电路,需外部提供。 (8)reset:复位信号,输入高电平有效。(9)ready:准备好信号,输入高电平有效。ready用来使cpu和慢速存储器或i/o设备之间速度实现匹配,完成数据传送。 (10)den:数据允许信号,输出三态,低电平有效。 (11)dt/r:数据发送/接收控制,输出三态, dt/r=1时,cpu发送数据,dt/r=0时,cpu接收数据。在dma方式时,它处于浮空状态。(12)io/m:外设/内存访问控制,输出三态。输出高电平时,表示总线周期为i/o访问周期;输出低电平时,表示总线周期为存储器访问周期。(13)wr:写信号,低电平有效。在dma方式时,它处于浮空状态。 (14)rd:读信号,低电平有效。在dma方式时,它处于浮空状态。 (15)hold:总线保持请求信号,输入,高电平有效。当dma操作或外部处理器要求通过总线传送数据时,hold信号为高电平。(16)hlda:总线保持响应信号,输出,高电平有效。 54)8279芯片8279引脚图如图所示,各引脚功能如下:db0db7:双向数据总线,用来传送8279与cpu之间的数据和命令。 clk:时钟输入线,用以产生内部定时的时钟脉冲。 reset:复位输入线,8279复位后被置为字符显示左端输入,二键闭锁的触点回弹型式,程序时钟前置分频器被置为31,reset信号为高电平有效。 cs:片选输入线,低电平有效,单片机在cs端为低时可以对8279读/写操作。 a0:缓冲器低位地址,当a0为高电平时,表示数据总线上为命令或状态,当为低电平时,表示数据总线上为命令或状态,当为低电平时,表示数据总线上为数据。 rd:读信号输入线,低电平有效,将缓冲器读出,数据送往外部总线。 wr:写信号输入线,低电平有效,将缓立器读出,将数据从外部数据总线写入8279的缓冲器。 6四系统电路图与各模块设计1.系统电路图如上一页所示;2.各模块设计1)定时模块定时模块是为8259提供中断请求信号的。由一片8253实现,选用定时器0#,工作在方式3,由于时钟应该1秒走动一次,所以输出值应为1s,其输出信号可作为8259的中断请求信号。2)中断模块中断模块实现动态显示的,硬件为一片8259,由于中断请求信号为每秒一次,中断程序该为时间按秒增加,并显示,只要开中断,便可实现每秒显示时间增加一秒,从而达到动态显示的效果。3)主控cpu模块8088最小工作模式,作为整个电子表的核心控制部分。在8088最小模式中,硬件连接上有如下特点:(1) mn/mx 端接+5v,决定了8088工作在最小模式。(2) 有1片8284a,作为时钟发生器。(3) 有3片8282,用来作为地址锁存器。8282是典型的锁存器芯片,因为它是8位的,所以需要3片8282作为锁存器。(4) 当系统中所连的存储器和外设系统较多时,需要增加数据总线的驱动能力,这时,要用两片8286作为总线收发器。4)显示模块 显示模块是由一块8255a芯片与led红绿黄显示灯组成,由8255a来接收信号,从而控制红绿黄灯亮灭的时间,实现交通灯得控制。5)小键盘模块小键盘模块送入主控模块的子功能模块。由软件和硬件实现,硬件上由小键盘和8279互连,将小键值由8279送入主控模块。软件上使用行扫描法获得键值并送回主控模块。 7五流程图与程序清单1.流程图 8 92.程序清单:d8279 equ 200hc8279 equ 202hc8253 equ 20bhd82530 equ 208hd82531 equ 209hc82590 equ 210hc82591 equ 211hdata segmenthour db 00minute db 00stat db 00led db 3fh,06h,5bh,4fh,66h,6dh,7dh,27h,7fh,6fh,00h,00hdisbuf db 8 dup(0)data endsstack segment stack dw 100 dup(?)stack endscode segment assume cs:code,ds:datastart:mov ax,data mov ds,ax;=init 8253= mov dx,c8253 mov al,36h out dx,al mov dx,d82530 mov ax,10000 out dx,al mov al,ah out dx,al mov dx,c8253 mov al,36h out dx,al mov dx,d82531 mov ax,100 out dx,al mov al,ah out dx,al;=init 8259= cli mov al,13h mov dx,c82590 10 out dx,al mov al,8 mov dx,c82591out dx,almov al,1out dx,almov ax,0mov es,axlea ax,int0mov es:4*8,axmov ax,csmov es:4*8+2,axmy8255_a equ 1400h ;8255连接端口ioy0my8255_b equ 1401hmy8255_c equ 1402hmy8255_mode equ 1403hmy8254_count0 equ 1440h ;8254连接端口ioy2my8254_mode equ 1443h data segmentleddb 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh ;数码管七段代码表data endscode segmentassume cs:code,ds:data start:mov ax,data mov ds,ax mov dx,my8255_mode;8255初始化,连接端口ioy0 mov al,10000001b ;a口输出接led,b口输出接数码管,c0c3输入,c4c7输出 out dx,al mov cx,25a1: mov dx,my8255_a ;8255的a口接led() mov al,01111011b ;东西红,南北绿 out dx,al ;将灯状态传送给led显示 call initial_8254loop2:mov ah,0bh ;判断有无键按下 int 21h cmp al,0 11 jnz exit0 ;有键入则返回dos jmp y1exit0:mov ah,4ch int 21h y1: mov dx,my8255_c in al,dx test al,00001110b ;检测是否有紧急键按下 jz l1 call emergecy ;有紧急键则转到紧急键处理 jmp l2 l1: call disp l2: mov dx,my8255_c ;检测1s是否计完 in al,dx test al,01h je loop2 dec cx cmp cx,5 ja a1 jmp a2 a2: mov dx,my8255_a ;东西红,南北黄 mov al,01111100b out dx,al call initial_8254loop4:mov ah,0bh ;判断有无键按下 int 21h cmp al,0 jnz exit1 ;有键入则返回dos jmp y2exit1:mov ah,4ch int 21h y2: mov dx,my8255_c in al,dx test al,00001110b ;检测是否有紧急键按下 jz l3 call emergecy ;有紧急键则转到紧急键处理 jmp l4 l3: call disp l4: mov dx,my8255_c ;检测1s是否计完 in al,dx test al,01h je loop4 ;若1s没计数完,继续 12 dec cx cmp cx,0 je p jmp a2 ;20s或5s计数完全?若没计数完,继续 p: mov cx,25 jmp a3 a3: mov dx,my8255_a ;东西绿,南北红 mov al,10110111b out dx,al call initial_8254loop5:mov ah,0bh ;判断有无键按下 int 21h cmp al,0 jnz exit2 ;有键入则返回dos jmp y3exit2:mov ah,4ch int 21h y3: mov dx,my8255_c in al,dx test al,00001110b ;检测是否有紧急键按下 jz l6 call emergecy ;有紧急键则转到紧急键处理 jmp l7 l6: call disp l7: mov dx,my8255_c ;检测1s是否计完 in al,dx test al,01h je loop5 dec cx cmp cx,5 ja a3 jmp a4 a4:mov dx,my8255_a ;东西黄,南北红 mov al,11000111b out dx,al call initial_8254loop6:mov ah,0bh ;判断有无键按下 int 21h cmp al,0 jnz exit3 ;有键入则返回dos jmp y4 13exit3:mov ah,4ch int 21h y4: mov dx,my8255_c in al,dx test al,00001110b ;检测是否有紧急键按下 jz l8 call emergecy ;有紧急键则转到紧急键处理 jmp l9 l8: call disp l9: mov dx,my8255_c ;检测1s是否计完 in al,dx test al,01h je loop6 ;若1s没计数完,继续 dec cx cmp cx,0 je pp jmp a4 ;20s或5s计数完全?若没计数完,继续 pp: mov ah,0bh ;判断有无键按下 int 21h cmp al,0 jnz exit ;有键入则返回dos jmp start exit:mov ah,4ch int 21h ;*- *initial_8254 proc ;8254初始化,1s push ax push dx mov dx,my8254_mode ;初始化,计数器0工作在方式0,先写低8位,再写高8位,bcd方式计数 mov al,00110001b out dx,al mov dx,my8254_count0 mov al,00h ;写低8位 out dx,al mov al,10h ;写高8位 out dx,al pop dx pop ax retinitial_8254 endp 14六.心得体会 由于第一次做微机原理课程设计,想一次性把程序完成是非常难的,在调试中就出现了不少的错误。刚开始的时候把程序写进去然后运行

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论