《《微机原理与接口技术》课程设计电动门控制系统设计.doc》由会员分享,可在线阅读,更多相关《《微机原理与接口技术》课程设计电动门控制系统设计.doc(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 学 号: 012课 程 设 计题 目电动门控制系统设计学 院机电学院专 业机械工程及自动化班 级机自0901姓 名指导教师吴彦春2011年12月15日编号:0601课程设计任务书学生姓名: 专业班级: 机自0901 指导教师: 工作单位: 机电学院 题 目: 电动门控制系统设计初始条件:1. 选用8088最小模式;2. 内存芯片使用2片6116(2K8),1片2732(4K8)EPROM;3. 8255、8259、74LS138、若干继电器、三相交流电机,实现开关和暂停功能;4. 8255、8259的片选信号线分别接74LS138的Y1、Y2引脚;5. 其他必须的配套元件。要求完成的主要任务
2、: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1. 查阅参考资料,自学相关元件的内部结构、工作方式或初始化编程过程;2. 完成微机基本系统及其扩展接口电路设计,绘制微机系统硬件接线原理图;3. 绘制汇编源程序流程图;4. 编写汇编源程序,包括初始化和监控工作程序;5. 撰写设计说明书,设计说明书字数不少于5000字,具体要求见附录。时间安排:序号内容所用时间(天)1查阅资料,学习相关芯片知识22系统及扩展电路硬件设计23初始化程序和应用程序设计24相关硬件电路和程序调试25课程设计答辩1合计9指导教师签名: 2011年 11 月 20日系主任(或责任教师)签名: 年 月 日摘
3、 要微机原理与接口技术是以微机为对象,研究其工作原理及其内部各个硬件之间的关系,和微机对信息的加工过程的一门综合性课程。微处理器是现代生活之中不可缺少的部分,不论是在工商业,教育,交通运输等领域,微处理器都起到不可代替的作用。本文主要研究在8086CUP最小工作模式下,运用8255、8259三种可编程芯片,和6116、2732存储器设计出电动门控制系统。用74LS138译码器进行地址译码和数据译码,利用8259可编程中断控制器接收并控制管理外部产生的中断请求信号,经8086CPU进行处理,再由8255并行接口输出给外部电机执行动作。本文从硬件接口线路、软件编写对系统进行研究,该系统最大优点在于
4、可以根据不同需要,灵活运用不同原件来实现不同的响应程序,编程简便,原理简单。关键字:8086CPU最大模式,8259,8255,LED显示器目录6课题及分析662.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译码器15164.1芯片选择164.2地址译码方式:164.3各芯片
5、端口地址164.3.1 RAM,ROM芯片地址:164.3.2 8259、8253、8255端口地址设计:174.3.3中断向量表18185.1电路设计185.1.1 8253电路设计185.2计数电路设计195.2.1电路简图195.2.2 电路原理195.3总电路设计(见图纸)195.4初始化程序20216.1程序流程图216.2系统程序及相关子程序(见附录)2222附录一(主程序)23附录二(中断子程序)25参考文献27致谢28题目分析 本系统要求使用8088CPU的最小模式,以及8255,8259、74LS138、若干继电器、三相交流电机,实现电动门的开关和暂停功能。为实现此功能,需要
6、具备以下知识: 掌握、了解8086最小模式的工作情况与特点,理解其与最大模式的区别。 掌握、了解8255、8259的工作原理,及其工作方式的特点,并运用做学知识掌握各芯片的初始化编程。 了解中断系统、中断请求、中断源、中断判优等概念,掌握向量中断响应和处理过程,包括实现中断及返回,优先权排队,中断嵌套。 了解并掌握8255可编程并行接口的不同工作方式及端口应用。 掌握步进电机及继电接触器的工作原理及特点。2. 总体设计 学习各个芯片功能和作用,结合任务要求设定8255及8259的工作方式。 通过要求的通过74LS138译码实现各存储器及8255,8259芯片的地址译码,选择8255的A口为外部
7、输出端口,B口为外部输出端口。 根据设想画出接口电路图,并设计各芯片的端口地址。 设计中断源:(1)IR0:由一个开关提供中断信号,当打开电动门时,该信号有效,输入一个高电平信号。(2) IR1:由一个开关提供中断信号,当关闭电动门时,该信号有效,输入一个高电平信号。 这个系统的开始运行由设置在8086RESET上的开关控制。 根据端口地址,各芯片实现的功能,工作方式,编写初始化程序和中断子程序。 在电脑上进行程序调试。74LS1388088CPU82558259开门按钮开门关门按钮关门图1系统总体功能实现图8088CPU地址译码器存储器(RAM,EPROM)可编程芯片(8255、8259)电
8、磁继电器数据译码器电动机图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)B
9、HE/S7:高8位数据总线允许/状态复用引脚,三态输出,低电平有效.BHE0表示数据总线高8位AD15AD8有效,即8086使用了16根数据线。用作选体信号,与最低位地址线A0配合,表示当前总线使用情况。S7用来输出状态信息,在8086芯片设计中未被赋予实际意义。(4)RD:读信号,三态、输出。低电平有效时,表示当前CPU正在对存储器或IO端口进行读操作。(5)READY:准备就绪信号,输入,高电平有效。READY1时,表示CPU访问的存储器或I/O端口已准备好传送数据,马上可以进行读写操作。(6)TEST:测试信号,输入,低电平有效。引脚用于多处理器系统中,实现8086与协处理器间的同步。(
10、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)S()2、S()1、S()0:总线周期状态信号,三态输出。在最大模式系统中,它用来作为总线控制器8288的输入,经译码后产生7个
11、控制信号。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口作为输入输出的数据端口
12、。C口作为控制或状态信息的端口,它在方式字的控制下,可以分成4位的端口,每个端口包含一个4位锁存器。它们分别与端口AB配合使用,可以用作控制信号输出或作为状态信号输入。8255可编程并行接口芯片工作方式说明:方式0:基本输入输出方式。适用于三个端口中的任何一个。每一个端口都可以用作输入或输出。输出可被锁存,输入不能锁存。方式1:选通输入输出方式。这时A口或B口的8位外设线用作输入或输出,C口的4条线中三条用作数据传输的联络信号和中断请求信号。方式2 :双向总线方式。只有A口具备双向总线方式,8位外设线用作输入或输出,此时C口的5条线用作通讯联络信号和中断请求信号。3.4 8259可编程中断控制
13、器一片8259可以管理8级中断,通过多片级联可扩展至64级;每一级都可单独被屏蔽或允许。8259在中断响应周期,可提供相应的中断向量号;8259设计有多种工作方式,可以通过编程来选择,以适应不同的应用场合。它的主要功能有:1.具有8级优先权控制,通过级连可扩展至64级优选权控制。2.每一级中断都可以屏蔽或允许。3.在中断响应周期,8259可提供相应的中断向量,从而能迅速地转至中断服务程序。8259是可编程的中断控制器。当有一条或若干条中断请求输入线(IRQ1IRQ7)变高,如果没有中断程序在运行, 则执行此中优先级最高的中断,如果有中断程序在运行,那么则将正在运行的程序的中断优先级与中断申请信
14、号的优先级比较,如申请信号的优先级低,则挂起正在运行的程序,转而执行优先级高的中断程序;反之则不做响应。3.5 LED数码管数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一
15、起形成公共阴极(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 0H011
16、00115Hx0 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)为高电平,另两
17、个选通端( G2A和G2B)为低电平时,可将地址端(A、B、C)的二进制编码在一个对应的输出端以低电平译出。 利用 G1、G2A和G2B可级联扩展成 24 线译码器;若外接一个反相器还可级联扩展成 32 线译码器。 若将选通端中的一个作为数据输入端时,74LS138还可作数据分配器,其输出端低电平有效。其真值表如下:输 入输 出S1+A2A1A010000011111111000110111111100101101111110011111011111010011110111101011111101110110111111011011111111110内存芯片:2片6132(4K8),1片273
18、2(4K8)EPROM;8255、8259、8253各1片,3片74LS138、2片74LS484.2地址译码方式:采用全地址译码方式,采用该种方式可以避免地址冲突,确保系统中各芯片地址的唯一性,保证系统运行的流畅,同时也便于后面程序的设计。本次设计选用三片74LS138译码器分别对RAM,ROM,8259A、8253、8255A进行地址译码。 RAM,ROM芯片地址:本次任务采用2片6132RAM,1片2732EPROM。2片RAM每片有12根地址线,分别作为奇偶片,每片其寻址范围为32K,主要用作存放中断地址向量、程序等,则其地址应在00000H01FFFH。1片2732EPROM有12根
19、地址线,寻址范围为32K,主要用于存放初始程序、及相关参数,则其地址应在FF000HFFFFFH。A19-A16A15-A12A11-A8A7-A4A3-A06132RAM偶片最小00000000000000000000最大00000001111111111110奇片最小00000000000000000001最大000000011111111111112732EPROM最小11111111000000000000最大111111111111111111112732EPROM地址:FF000H-FFFFFH 偶片:00000H-01FFEH6132RAM地址 00000H-01FFFH 奇片:
20、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-
21、17H 8255A端口地址表8255AA7A6A5A4A3A2A1A0端口地址A口0000100008HB口0000100109HC口000010100AH控制口000010110BH 8255A端口地址:08H-0BH 中断向量表中断序号IR0IR1IR2功能调用90H91H92H矢量地址0240H-0243H0244H-0247H0248H-024BH 5.1.1 8253电路设计 .1计数值的确定8086系统的主频为5MHz,由于时钟周期过短会使LED显示计数值刷新频率过高,导致看不出LED显示的变化,因此必须使用8253降低时钟频率,此频率定位2Hz,固可算出8253计数值为:N=5M
22、Hz2Hz=2500000由于8253一个计数器最大计数65535,所以要将两个计数器串联才可达到要求的时钟频率。因此将计数器0的OUT0接到计数器1的CLK1上,并且设置计数器1的计数值为2500,计数器2的计数值为1000。任务要求醉倒计数值为20,设置计数器2的计数值为20。.2 工作方式确定为使LED显示观察方便,应将LED的刷新频率固定与一个值,首选工作方式三,其产生的方波可以满足要求,使OUT1定时向8259发送中断请求信号,所以对计数器0和计数器1均选用工作方式三。计数器二只需在计数完成时发送中断请求信号,可以将其设置为工作方式二。 8253相关参数表计数值间隔时间通道02500
23、通道11000通道22010s电路简图PA0PA1PA2PA3 8255PA4PA5PA6PA774LS4874LS48 电路原理任务要求显示最大为20的计数值,需要2个LED显示器,分别显示个位和十位,数据的传输通过8255的A口输出,PA1-PA3传个位数据,PA4-PA7传十位数据,两组数据口分别接在两个74LS48译码器上,通过译码将数据在共阴极LED数码管上显示出来。5.3总电路设计(见图纸)-8255初始化程序-MOV AL,10000000 B ;8255初始化,A口,工作方式0,输出OUT 0BH,AL -8259初始化程序-MOV AL,00010011 B ;8259初始化
24、,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,工作方
25、式3,BCD计数,计数值为1000MOV AL,00HOUT 15H,ALMOV AL,10HOUT 15H,ALMOV AL,10010001 B设置计数器2,工作方式2,BCD计数,计数值为20OUT 17H,ALMOV AL,20HOUT 16H,AL关中断地址填写中断IR0,IR1,IR2入口地址8253,8259,8255初始化将CL中数值传至AL,通过AL写入8255,并通过A口输入LED显示计数值开中断中断源提供中断延时期间LED不刷新计数值锁存8253计数器2的CLK2当前计数值病传至CX响应中断,获取中断向量 IR2中断 IR1中断 IR0中断结束6.2系统程序及相关子程序(
26、见附录)通过8253对系统时钟周期的转换,由计数器OUT2输出的方波影起的中断使系统运行中断程序对8255的A口数据刷新,从而可以清晰的看到LED显示数值的变化过程。当计数完结时,再由计数器OUT3输出中断信号从而结束程序,推出计数。这里在8259上附加一个触发开关从而可以实现延时程序。整个系统总开管设置在8086的RESET线上。整个设计中遇到很多困难,在老师和同学的帮助下,查阅资料,将这些问题一一解决,当然还存在很多问题,这也是需要不断思考和改进的事情。附录一(主程序)DATA SEGMENTDATA ENDSSTACK SEGMENT STACKSTA DW 50 DUP(?)TOP E
27、QU 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 A
28、X,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
29、 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: M
30、OV AX,4C00HINT 21HCODE ENDSEND START附录二(中断子程序)(1)IRO中断程序:退出程序INT0 PROC FARJMP DONE(2)IR1中断程序:延时作用,LED不刷新数据INT1 PROC FARPUSH AX ;保护现场PUSH CXPUSHFMOV AL,11111100 B ;禁止响应IR2OUT 01H,ALMOV CX,500H ;延时程序A1:LOOP A1AND AL,11111000 B ;可响应IR2OUT 01H,ALPOPF ;还原现场POP AXPOP CXIRET ;返回(3)IR2中断程序:显示当前计数器2的CLK2的计数值
31、INT2 PROC FARPUSH AX ;保护现场PUSHFMOV AL,10000000 B ;锁存计数器2的计数值OUT 17H,ALIN AL,16H ;读取计数值低8位MOV CL,ALIN AL,16HMOV CH,AL ;读取计数值高8位MOV AL,CL ;将计数值低8位送至8255的A口,显示数值OUT 08H,ALPOPF ;还原现场POP AXIRET ;返回参考文献7钱晓捷16/32位微机原理 、汇编语言及接口技术机械工业出版社9马维华从8086到Pentium III微型计算机原理及接口技术科学出 版社致谢在两个星期的课程设计中,充分的感受到查阅资料的艰辛,和完成任务之后的成就感,这个过程是对自己的一个考验,同时也学会了团队合作的重要性。在此要感谢徐汉斌老师,因为他的讲授,让我体会到微机原理与接口技术这门课的乐趣,从而打下较好的基础。也要感谢帮助过我的同学,在他们的帮助之下,才能较好的解决一个个难题。更要感谢负责我们课程设计的吴彦春老师,在两个星期的时间中,不断的帮我解决问题,指明设计方向,扫除了设计过程中的许多障碍。本科生课程设计成绩评定表姓 名性 别专业、班级课程设计题目:课程设计答辩或质疑记录:成绩评定依据: 最终评定成绩(以优、良、中、及格、不及格评定)指导教师签字: 年 月 日
限制150内