接口课程设计说明书----电工门控制系统设计.doc_第1页
接口课程设计说明书----电工门控制系统设计.doc_第2页
接口课程设计说明书----电工门控制系统设计.doc_第3页
接口课程设计说明书----电工门控制系统设计.doc_第4页
接口课程设计说明书----电工门控制系统设计.doc_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

学 号: 012课 程 设 计题 目电动门控制系统设计学 院机电学院专 业班 级姓 名指导教师27摘 要微机原理与接口技术是以微机为对象,研究其工作原理及其内部各个硬件之间的关系,和微机对信息的加工过程的一门综合性课程。微处理器是现代生活之中不可缺少的部分,不论是在工商业,教育,交通运输等领域,微处理器都起到不可代替的作用。本文主要研究在8086cup最小工作模式下,运用8255、8259三种可编程芯片,和6116、2732存储器设计出电动门控制系统。用74ls138译码器进行地址译码和数据译码,利用8259可编程中断控制器接收并控制管理外部产生的中断请求信号,经8086cpu进行处理,再由8255并行接口输出给外部电机执行动作。本文从硬件接口线路、软件编写对系统进行研究,该系统最大优点在于可以根据不同需要,灵活运用不同原件来实现不同的响应程序,编程简便,原理简单。关键字:8086cpu最大模式,8259,8255,led显示器目录1.概述61.1课题及分析62.总体设计62.1设计方法与步骤62.2总体布局72.3功能框图83. 主要芯片简介83.1 8086cup介绍83.1.1 8086最大模式的典型配置83.1.2 8086最大模式管脚功能93.2 8255可编程并行接口芯片简介:103.3 8259可编程中断控制器113.4 8259可编程中断控制器123.5 led数码管133.6 74ls48译码器143.7 74ls138译码器154.译码方式及地址范围计算164.1芯片选择164.2地址译码方式:164.3各芯片端口地址164.3.1 ram,rom芯片地址:164.3.2 8259、8253、8255端口地址设计:174.3.3中断向量表185.接口电路设计185.1电路设计185.1.1 8253电路设计185.2计数电路设计195.2.1电路简图195.2.2 电路原理195.3总电路设计(见图纸)195.4初始化程序206.程序设计216.1程序流程图216.2系统程序及相关子程序(见附录)227.小结22附录一(主程序)23附录二(中断子程序)25参考文献27致谢281.概述1.1题目分析 本系统要求使用8088cpu的最小模式,以及8255,8259、74ls138、若干继电器、三相交流电机,实现电动门的开关和暂停功能。为实现此功能,需要具备以下知识: 掌握、了解8086最小模式的工作情况与特点,理解其与最大模式的区别。 掌握、了解8255、8259的工作原理,及其工作方式的特点,并运用做学知识掌握各芯片的初始化编程。 了解中断系统、中断请求、中断源、中断判优等概念,掌握向量中断响应和处理过程,包括实现中断及返回,优先权排队,中断嵌套。 了解并掌握8255可编程并行接口的不同工作方式及端口应用。 掌握步进电机及继电接触器的工作原理及特点。2. 总体设计2.1设计方法与步骤 学习各个芯片功能和作用,结合任务要求设定8255及8259的工作方式。 通过要求的通过74ls138译码实现各存储器及8255,8259芯片的地址译码,选择8255的a口为外部输出端口,b口为外部输出端口。 根据设想画出接口电路图,并设计各芯片的端口地址。 设计中断源:(1)ir0:由一个开关提供中断信号,当打开电动门时,该信号有效,输入一个高电平信号。(2) ir1:由一个开关提供中断信号,当关闭电动门时,该信号有效,输入一个高电平信号。 这个系统的开始运行由设置在8086reset上的开关控制。 根据端口地址,各芯片实现的功能,工作方式,编写初始化程序和中断子程序。 在电脑上进行程序调试。2.2总体布局74ls1388088cpuabab82558259暂停开门2732eprom6116ram开门关门暂停暂停 db 图1系统总体功能实现图2.3功能框图8088cpu地址译码器存储器(ram,eprom)可编程芯片(8255、8259)74ls138译码器电磁继电器电动机图2电动机开关门功能实现图3. 主要芯片简介3.1 8086cup介绍3.1.1 8086最大模式的典型配置 8086管脚图3.1.2 8086最小模式管脚功能(1)ad15ad0:分时复用的地址/数据引脚,具有双向、三态功能。在总线周期的第一个时钟周期t1用来输出要访问的存储单元或i/o端口的低16位地址a15a0。(2)a19a16/s6s3:地址,状态服用的引脚,三态输出。在8088执行指令的过程中,某一时刻从这4个引脚上送出地址的最高4位(a19a16)。而在另外的时刻,这4个引脚送出状态信号s6s3。这些信息状态里,在其它时钟周期,则用来输出状态信息。(3)bhe/s7:高8位数据总线允许/状态复用引脚,三态输出,低电平有效.bhe0表示数据总线高8位ad15ad8有效,即8086使用了16根数据线。用作选体信号,与最低位地址线a0配合,表示当前总线使用情况。s7用来输出状态信息,在8086芯片设计中未被赋予实际意义。(4)rd:读信号,三态、输出。低电平有效时,表示当前cpu正在对存储器或io端口进行读操作。(5)ready:准备就绪信号,输入,高电平有效。ready1时,表示cpu访问的存储器或i/o端口已准备好传送数据,马上可以进行读写操作。(6)test:测试信号,输入,低电平有效。引脚用于多处理器系统中,实现8086与协处理器间的同步。(7)intr:可屏蔽中断请求信号,输入,电平触发,高电平有效。(8)nmi:不可屏蔽中断请求信号,输入,上升沿触发。(9)reset:复位信号,输入,高电平有效。cpu复位后,从ffff0h单元开始读取指令。(10)clk:主时钟信号,输入。(11)mn/mx:工作方式选择信号,输入。mn/mx1,cpu工作在最小模式下;mn/mx0,cpu工作在最大模式下。(12)电源线vcc和地线gnd:8086只需单一的+5v10%电源,由vcc端输入,gnd是接地端。(13)2、1、0:总线周期状态信号,三态输出。在最大模式系统中,它用来作为总线控制器8288的输入,经译码后产生7个控制信号。s0,s1,s2状态编码表(14)rq/gr0和rq/gr1:总线保持请求信号输入/总线请求允许信号输出,双向、低电平有效。其含义与最小模式下hold和hlda两个信号类同。(15)lock:总线封锁信号,三态输出,低电平有效。有效时,表示cpu不允许其它总线控制器占用总线。(16)qs1、qs0:指令队列状态,输出。qs1,qs0编码集其功能8255管脚图3.2 8255可编程并行接口芯片简介:8255可编程并行接口芯片有三个输入输出端口,即a口、b口和c口,对应于引脚pa7pa0、pb7pb0和pc7pc0。其内部还有一个控制寄存器,即控制口。通常a口、b口作为输入输出的数据端口。c口作为控制或状态信息的端口,它在方式字的控制下,可以分成4位的端口,每个端口包含一个4位锁存器。它们分别与端口ab配合使用,可以用作控制信号输出或作为状态信号输入。8255可编程并行接口芯片工作方式说明:方式0:基本输入输出方式。适用于三个端口中的任何一个。每一个端口都可以用作输入或输出。输出可被锁存,输入不能锁存。方式1:选通输入输出方式。这时a口或b口的8位外设线用作输入或输出,c口的4条线中三条用作数据传输的联络信号和中断请求信号。方式2 :双向总线方式。只有a口具备双向总线方式,8位外设线用作输入或输出,此时c口的5条线用作通讯联络信号和中断请求信号。3.4 8259可编程中断控制器一片8259可以管理8级中断,通过多片级联可扩展至64级;每一级都可单独被屏蔽或允许。8259在中断响应周期,可提供相应的中断向量号;8259设计有多种工作方式,可以通过编程来选择,以适应不同的应用场合。它的主要功能有:1.具有8级优先权控制,通过级连可扩展至64级优选权控制。2.每一级中断都可以屏蔽或允许。3.在中断响应周期,8259可提供相应的中断向量,从而能迅速地转至中断服务程序。8259是可编程的中断控制器。当有一条或若干条中断请求输入线(irq1irq7)变高,如果没有中断程序在运行, 则执行此中优先级最高的中断,如果有中断程序在运行,那么则将正在运行的程序的中断优先级与中断申请信号的优先级比较,如申请信号的优先级低,则挂起正在运行的程序,转而执行优先级高的中断程序;反之则不做响应。3.5 led数码管数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(com)的数码管。共阳数码管在应用时应将公共极com接到+5v,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(com)的数码管。共阴数码管在应用时应将公共极com接到地线gnd上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。3.6 74ls48译码器74ls48芯片是一种常用的七段数码管译码器驱动器,在与8255,led相接,它只需4根线输入译码实现led的1f的显示,简化接线线路和编程难度。十进数或功能输入bi/rbo输出ltrbid c b a abcdefg0hh0 0 0 0h11111101hx0 0 0 1h01100002hx0 0 1 0h11011013hx0 0 1 1h11110014hx0 1 0 0h01100115hx0 1 0 1h10110116hx0 1 1 0h00111117hx0 1 1 1h11100008hx1 0 0 0h11111119hx1 0 0 1h111001110hx1 0 1 0h000110111hx1 0 1 1h001100112hx1 1 0 0h010001113hx1 1 0 1h100101114hx1 1 1 0h000111115hx1 1 1 1h00000003.7 74ls138译码器74ls138 为3 线8 线译码器,共有 54/74s138和 54/74ls138 两种线路结构型式,其工作原理如下:当一个选通端(g1)为高电平,另两个选通端( g2a和g2b)为低电平时,可将地址端(a、b、c)的二进制编码在一个对应的输出端以低电平译出。 利用 g1、g2a和g2b可级联扩展成 24 线译码器;若外接一个反相器还可级联扩展成 32 线译码器。 若将选通端中的一个作为数据输入端时,74ls138还可作数据分配器,其输出端低电平有效。其真值表如下:输 入输 出s1+a2a1a0100000111111110001101111111001011011111100111110111110100111101111010111111011101101111110110111111111104.译码方式及地址范围计算4.1芯片选择内存芯片:2片6132(4k8),1片2732(4k8)eprom;8255、8259、8253各1片,3片74ls138、2片74ls484.2地址译码方式:采用全地址译码方式,采用该种方式可以避免地址冲突,确保系统中各芯片地址的唯一性,保证系统运行的流畅,同时也便于后面程序的设计。本次设计选用三片74ls138译码器分别对ram,rom,8259a、8253、8255a进行地址译码。4.3各芯片端口地址4.3.1 ram,rom芯片地址:本次任务采用2片6132ram,1片2732eprom。2片ram每片有12根地址线,分别作为奇偶片,每片其寻址范围为32k,主要用作存放中断地址向量、程序等,则其地址应在00000h01fffh。1片2732eprom有12根地址线,寻址范围为32k,主要用于存放初始程序、及相关参数,则其地址应在ff000hfffffh。a19-a16a15-a12a11-a8a7-a4a3-a06132ram偶片最小00000000000000000000最大00000001111111111110奇片最小00000000000000000001最大000000011111111111112732eprom最小11111111000000000000最大111111111111111111112732eprom地址:ff000h-fffffh 偶片:00000h-01ffeh6132ram地址 00000h-01fffh 奇片:00001h-01fffh4.3.2 8259、8253、8255端口地址设计:8259、8253、8255的端口地址只需8位地址线,则可在00hffh中选择。8259有两个端口,8253、8255有四个端口,其地址见下表: 8259a端口地址表8259aa7a6a5a4a3a2a1a0端口地址a0=00000000000ha0=10000000101h 8259a端口地址:00h-01h 8253端口地址表8253a7a6a5a4a3a2a1a0端口地址通道00001010014h通道10001010115h通道20001011016h控制口0001011117h 8253端口地址:14h-17h 8255a端口地址表8255aa7a6a5a4a3a2a1a0端口地址a口0000100008hb口0000100109hc口000010100ah控制口000010110bh 8255a端口地址:08h-0bh 4.3.3中断向量表中断序号ir0ir1ir2功能调用90h91h92h矢量地址0240h-0243h0244h-0247h0248h-024bh 5.接口电路设计5.1电路设计5.1.1 8253电路设计 5.1.1.1计数值的确定8086系统的主频为5mhz,由于时钟周期过短会使led显示计数值刷新频率过高,导致看不出led显示的变化,因此必须使用8253降低时钟频率,此频率定位2hz,固可算出8253计数值为:n=5mhz2hz=2500000由于8253一个计数器最大计数65535,所以要将两个计数器串联才可达到要求的时钟频率。因此将计数器0的out0接到计数器1的clk1上,并且设置计数器1的计数值为2500,计数器2的计数值为1000。任务要求醉倒计数值为20,设置计数器2的计数值为20。5.1.1.2 工作方式确定为使led显示观察方便,应将led的刷新频率固定与一个值,首选工作方式三,其产生的方波可以满足要求,使out1定时向8259发送中断请求信号,所以对计数器0和计数器1均选用工作方式三。计数器二只需在计数完成时发送中断请求信号,可以将其设置为工作方式二。 8253相关参数表计数值间隔时间通道025000.5s通道11000通道22010s5.2计数电路设计5.2.1电路简图pa0pa1pa2pa3 8255pa4pa5pa6pa774ls4874ls485.2.2 电路原理任务要求显示最大为20的计数值,需要2个led显示器,分别显示个位和十位,数据的传输通过8255的a口输出,pa1-pa3传个位数据,pa4-pa7传十位数据,两组数据口分别接在两个74ls48译码器上,通过译码将数据在共阴极led数码管上显示出来。5.3总电路设计(见图纸)5.4初始化程序-8255初始化程序-mov al,10000000 b ;8255初始化,a口,工作方式0,输出out 0bh,al -8259初始化程序-mov al,00010011 b ;8259初始化,icw1:上升沿有效,单片out 00h,almov al,10010000 b ;icw2:设置中断类型号为90hout 01h,almov al,00000001 b ;icw4out 01h,almov al,11111000 b ;ocw1:只对ir0,ir1,ir2响应out 01h,al-8253初始化程序-mov al,00110111b ;8253初始化out 17h,al设置计数器0,工作方式3,bcd计数,计数值为2500mov al,00hout 14h,almov al,25hout 14h,almov al,01110111bout 17h,al设置计数器1,工作方式3,bcd计数,计数值为1000mov al,00hout 15h,almov al,10hout 15h,almov al,10010001 b设置计数器2,工作方式2,bcd计数,计数值为20out 17h,almov al,20hout 16h,al6.程序设计6.1程序流程图关中断地址填写中断ir0,ir1,ir2入口地址8253,8259,8255初始化将cl中数值传至al,通过al写入8255,并通过a口输入led显示计数值开中断中断源提供中断延时期间led不刷新计数值锁存8253计数器2的clk2当前计数值病传至cx响应中断,获取中断向量 ir2中断 ir1中断 ir0中断结束6.2系统程序及相关子程序(见附录)7.小结通过8253对系统时钟周期的转换,由计数器out2输出的方波影起的中断使系统运行中断程序对8255的a口数据刷新,从而可以清晰的看到led显示数值的变化过程。当计数完结时,再由计数器out3输出中断信号从而结束程序,推出计数。这里在8259上附加一个触发开关从而可以实现延时程序。整个系统总开管设置在8086的reset线上。整个设计中遇到很多困难,在老师和同学的帮助下,查阅资料,将这些问题一一解决,当然还存在很多问题,这也是需要不断思考和改进的事情。附录一(主程序)data segmentdata endsstack segment stacksta dw 50 dup(?)top equ length stastack endscode segmentassume cs:code,ds:data,es:data,ss:stackstart: mov ax,data mov ds,ax cli ;关中断 cld mov ax,0 ;填写中断向量表 mov es,ax mov di,90h*4 mov ax,offset int0填写90h中断地址 stosw mov ax,seg int0 stosw mov di,91h*4 mov ax,offset int1填写91h中断地址 stosw mov ax,seg int1 stosw mov di,92h*4 mov ax,offset int2填写92h中断地址 stosw mov ax,seg int2 stosw mov al,00110111b ;8253初始化 out 17h,al设置计数器0,工作方式3,bcd计数,计数值为2500 mov al,00h out 14h,al mov al,25h out 14h,al mov al,01110111b out 17h,al设置计数器1,工作方式3,bcd计数,计数值为1000 mov al,00h out 15h,al mov al,10h out 15h,al mov al,10010001 b设置计数器2,工作方式2,bcd计数,计数值为20 out 17h,al mov al,20h out 16h,al mov al,10000000 b ;8255初始化,a口,工作方式0,输出 out 0bh,al mov al,00010011 b ;8259初始化,icw1:上升沿有效,单片 out 00h,al mov al,10010000 b ;icw2:设置中断类型号为90h out 01h,al mov al,00000001 b ;icw4 out 01h,al mov al,11111000 b ;ocw1:只对ir0,ir1,ir2响应 out 01h,alsti ;开中断a1: jump a1 ;循环等待done: mov ax,4c00hint 21hcode endsend start附录二(中断子程序)(1)iro中断程序:退出程序int0 proc farjmp done(2)ir1中断程序:延时作用

温馨提示

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

评论

0/150

提交评论