《微机原理课程设计_路灯控制设计(完整版)(15页).doc》由会员分享,可在线阅读,更多相关《微机原理课程设计_路灯控制设计(完整版)(15页).doc(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-1 设计任务描述1.1设计题目路灯控制设计1.2设计内容 1)天黑时路灯电亮,天亮时路灯关闭。2)用中断模拟天黑。1.2.1 设计目的通过课程设计使学生更进一步掌握微机原理及应用课程的有关知识,提高应用微机解决问题的能力,加深对微机应用的理解。通过查阅资料,结合所学知识进行软、硬件的设计,使学生初步掌握应用微机解决问题的步骤及方法。为以后学生结合专业从事微机应用设计奠定基础1.2.2 设计要求 1)通过KOK7和K+来输入。2)用LED指示灯显示结果。3)输出为1灯亮,输入为0灯灭。2设计思路本次微机原理课程设计我设计的是路灯控制器。通过中断信号来使路灯点亮,再经延时程序来使灯自动熄灭。然后
2、重新回到初始状态。 我们用到的芯片是中断控制器8259和可编程并行接口8255这两种芯片再外加一个LED显示单元及开关单元。用中断控制器8259的控制字来设置单片、边沿触发、非缓冲、非自动,用ICW4来设置IR7非屏蔽。设置中断控制器8255的控制字,让它A口输出来显示灯亮,。由于我们没用到口和口,所以让口输入C口高低四位均输出。设置完控制字后,再使A口输出全为0(这时路灯初始状态为灭),接着让程序循环进入空操作。当天黑需要路灯亮时,按下中断(代表天黑),程序从循环执行空操作中中断出来,使A口输出从全为0变成全为1(这时路灯全亮),程序后面连接一个延迟子程序,来控制灯亮的时间。最后到了程序该结
3、束的时候了,A口输出从全1再次变为全0(这时路灯全灭,代表夜晚已过,天亮了)。这时程序本该结束了,程序结束后,又返回到中断控制器8259这部分,这样程序又可以通过按中断来控制灯亮,这样就简单又实用。 大体上程序主要分四大部分:输入部分,中断部分,延迟部分和输出部分。结合所学的知识外加查找相关资料,把这几大部分合理的连接起来,从而实现一个完整、功能强大的程序。3 主要元器件介绍3.1 所用芯片8255简介:3.1.1 外部引线D0D7为双向数据信号线,用来传送数据和控制字。、RD为读信号线,与其它信号线一起实现对8255接口的读操作通常接系统总线的IOR信号。WR为写信号线,与其它信号一起实现对
4、8255的写操作,通常接系统总线的IOW。CS为片选信号线,当它为低电平(有效)时,才能选中该8255芯片,也才能对8255进行操作。、A0,A1为口地址选择信号线。8255内部有3个口;A口,B口,C 口,还有一个控制寄存器,它们可由程序寻址。A0,A1上的不同编码可分别寻址上述3个口和一个控制寄存器,具体规定如下: A1 A0 选择 0 0 A口0 1 B口1 0 C口1 1 控制寄存器通常 A0,A1分别接系统总线A0和 A1,它们与CS一起来决定8255的接口地址。RESET为复位输入信号。此端上的高电平可使8255复位。复位后,8255的A口,B口,C 口均被定为输入状态。PA0PA
5、7为A口的8条输入输出信号线。PB0PB7为B口的8条输入输出信号线。PC0PC78条线根据其工作方式可作为数据的输入或输出线,也可以用作控制信号的输出或状态信号的输入线。3.1.2 8255有三种工作方式:方式0、方式1和方式2。 :方式0-基本输入/输出在此工作方式下,每个口都作为基本的输入输出口,C口的高4位和低4位以及A口和B口都可独立地设置为输入口和输出口。在此工作方式下:输出的数据被锁存,而输入的数据不被锁存。 而且,在方式0之下,C口还有按位置位和复位的能力。 :方式1-选通输入/输出 此工作方式下,三个端口分为A、B两组,A、B两个口仍用作数据输入输出口,而C口分成两部分,分别
6、作为A口和B口的联络信号。在8255A中,联络信号是3位,两个数据口,共用去C口的6位,剩余的两位仍可作为数据位使用。:方式2-双向选通输入/输出此工作方式只限于A组使用,在A口工作于双向输入输出方式时,要利用C口的5条线才能实现此时B口子能工作在方式0或方式1,而C口剩下的3条线可作为输入输出线使用或用作B口方式1之下的控制线。当A口工作在方式2时,B口可以在方式0或方式1工作。 8255方式0之下的输入输出组合A 组B组A口(PA0-PA7)C口(PC4-PC7)B口(PB0-PB7)C口(PC0-PC3)入入入入入入入出入入出入入入出出入出入入入出入出入出出入入出出出出入入入出入入出出入
7、出入出入出出出出入入出出入出出出出入出出出出3.1.3 8255的寻址:8255占外设编址的4个地址,即A口,B口,C口和控制寄存器各占一个外设接口地址。对同一个地址分别可以进行读写操作。例如,读A口可将A口的数据读出;写A口可将CPU的数据写入A口并输出。8255的寻址_CSA1A0_IOR_IOW操作00001读A口00101读B口01001读C口00010写A口00110写B口01010写C口01110写控制寄存器1XX11D0D7三态8255方式0基本功能 :方式0是基本输入输出方式。其功能如下: 进行数据传送时不需要联络信号。 任一设置成方式0的端口均可设置成输入或输出。 输出具有锁
8、存功能。 输入没有锁存功能。 每一个8位口和4位口均可设置成方式0。如果所有的8位口和4位口都设置成方端口是否具有锁存功能是需要注意的。如果具有锁存功能,则8255A可作为CPtJ与外设之间数据传送的中转站。这时,CPU与外设之间数据传送是异步的。如果没有锁存功能,则8255A作为数据通道,仅起单向三态门的作用。这时,CPU与外设之间数据传送是同步的。方式0的输出具有锁存功能,而输入没有锁存功能。1 405 358255A10 3015 2520 21PA3 PA4PA2 PA5PA1 PA6PA0 PA7RD WRCS RESET地 D0A1 D1A0 D2PC7 D3PC6 D4PC5 D
9、5PC4 D6PC0 D7PC1 VCCPC2 PB7PC3 PB6PB0 PB5PB1 PB4PB2 PB3可编程并行接口8255引线图D7 D6 D5 D4 D3 D2 D1 D0XXX 无关 置/复位 0 0:复位1:置位C口的位选择D3 D2 D1选择000PC0001PC1010 PC2011 PC3100 PC4101 PC5110 PC6111 PC7C口的按位操作控制字格式A组控制 B组控制76543210控制C口低四位1:输入0:输出控制B口八位1:输入0:输出方式选择0:方式01:方式1控制C口高四位0:输出1:输入控制A口8位0:输出1:输入方式选择00:方式010:方式
10、111:方式2功能控制0:位操作1:方式选择8255的控制字格式3.2 所用芯片8259简介:3.2.1 8259的外部引线D0D7为双向数据信号线,与系统总线的数据线相连接。WR、RD为写和读控制信号,与系统总线的读写信号相连接。CS为片选信号,只有CS为低电平时,才能实现CPU对8259的写或读操作。A0是8259内部寄存器的选择信号。它的不同状态,对应不同的内部寄存器。INT为8259的中断请求输出信号。可直接接到CPU的INTR输入端。INTA为中断响应输入信号。在中断响应过程中CPU的中断响应信号由此端进入8259.CAS0CAS2为级联控制线。当多片8259级联工作时,其中一片为主
11、控级联芯片,其他均为从属级芯片。主控级芯片的CAS0CAS2作为输出,连接到个从属级芯片的CAS0CAS2上。当某从属8259提出中断请求时,主控级8259通过CAS0CAS2送出相应的编码给从属级,是从属级中断被允许。SP/EN为双功能引线。当工作在缓冲模式时,它为输出,用以控制缓冲传送;在非缓冲模式时,它用作输入。当SP=1时,指定8259芯片为主控级;SP=0时,指定它为从属级。IR0IR7中断请求输入端。其他外设中断请求可加在8259的IR0IR7的任一端上。该信号可以使上升沿有效,也可以时高电平有效。8259的内部有多个寄存器,其中包括:中断请求寄存器(IRR),其内部保存着所有外部
12、中断源IR0IR7的中断请求状态。任何一个中断源发生请求,其相应位为1;一旦得到响应,则相应位复位。中断服务寄存器(ISR),用来保存所有正在服务的中断源。当8259受到中断结束命令时,其寄存的状态进行调整。中断屏蔽寄存器(IMR),保存着被屏蔽的所有中断源。其屏蔽功能可用命令修改。1 282 273 264 255 246 237 8259 228 219 2010 1911 1812 1713 1614 15CS VCCWR A0RD INTAD7 IR7D6 IR6D5 IR5D4 IR4D3 IR3D2 IR2D1 IR1D0 IR0CAS0 INTCAS1 SP/EN地 CAS282
13、59引线图3.2.2 8259的内部控制字CPU命令分为两大类:一类时初始化命令字(ICW),主要使8259处于初始状态;另一类是操作命令字(OCW),使处于初始状态的8259去执行具体的某种操作方式。操作命令字可在8259初始化后的任何时刻写入。(1) 初始化命令字初始化命令字ICW1A0=0为偶地址。在A0=0,D4=1时为写入。A00D7 D6 D5 D4 D3 D2 D1 D01LTIMASIC4 1:需要ICW4 0:不需要ICW4 低8编程位 1:单片8259下,中断低口 0:多片8259级联8080/85模式 1:间隔为4 0:间隔为8 仅用于8080、85模式 1:电平触发 0
14、:边沿触发初始化命令字ICW1初始化命令字ICW2A0=1为奇地址。初始化命令字ICW3A0=1为奇地址。该字是用于多片8259级联的。在主控8259中,ICW3的每一位对应一个IR输入。哪一位为1,表示相应的IR接从属8259.从属8259的ICW3的最低三位的编码用以表示该从属8259接至主控8259的IR编号。主控ICW3A01D7 D6 D5 D4 D3 D2 D1 D0 1:相应IR接从属8259 0:不接8259 从属ICW3A0 1D7 D6 D5 D4 D3 D2 D1 D000000 3位编码对应从属8259 接主控的IR编号初始化命令字ICW3初始化命令字ICW4 A0=1
15、为奇地址。A01D7 D6 D5 D4 D3 D2 D1 D0000SFNMBUFM/SAEOIPM 1:8086/88模式 0:8088/85模式 1:自动EOI 0:非自动结束 0X:非缓冲方法 10:缓冲方式从属片 11:缓冲方式主控片 1:特殊全嵌套方式 0:一般嵌套方式初始化命令字ICW4(2)操作命令字OCW 操作命令字OCW1。当这个8位的操作命令字的某一位置1时,它就屏蔽相对的IR输入。操作命令字OCW2。A00D7 D6 D5 D4 D3 D2 D1 D0RSLEOI00L2L1L0 编码对应IR的最低优先级0 0 1 一般EOI 中断结束命令0 1 1 特殊EOI 1 0
16、1 循环优先级的一般EOI命令 1 0 0 在自动EOI下置循环优先级 自动循环0 0 0 在自动EOI下清循环优先级 1 1 1 循环优先级的特殊EOI命令 1 1 0 设置优先级 特殊循环 0 1 0 无效操作命令字OCW2该命令字用来设置优先级是否循环、循环的方式及中断结束的方式。R为优先级循环控制位,R=1为循环优先级;R=0为固定优先级。L2、L1、L0为系统最低优先级编码,用它们来指定哪个IR优先级最低。EOI是中断结束命令。OCW2控制格式D7 D6 D5 D4 D3 D2 D1 D0功能R SL EOI 0 0 L2 L1 L00 0 1 0 0 - 一般中断结束EOI命令,使
17、正执行的IS复位0 1 1 0 0 L2 L1 L0特殊结束SEIO命令,使L2 L1 L0指定的IS复位1 0 1 0 0 -一般自动循环命令,使正执行的IS复位且优先级最低1 0 0 0 0 -设置自动循环的命令0 0 0 0 0 -清除自动循环的命令,变为固定优先级1 1 0 0 0 L2 L1 L0优先级设置命令,L2 L1 L0所指定的IR优先级最低1 1 1 0 0 L2 L1 L0使L2 L1 L0所指定的IS复位并变为最低优先级0 1 0 -无效操作命令字OCW3。A00D7 D6 D5 D4 D3 D2 D1 D00ESMMSMM01PRRRIS 0X:无效0X:无效 10:
18、可读IRR10:复位特殊屏蔽 11:可读ISR11:设置特殊屏蔽 1:允许查询 0:不查询操作命令字OCW38259寄存器及命令的访问控制A0D4D3RDWRCS操作0010读出ISR、IRR的内容1010读出IMR的内容000100写入OCW2001100写入OCW301X100写入ICW11XX100写入OCW1、ICW2、ICW3、ICW43.2.3 8259的初始化顺序写入ICW1写入ICW2写入ICW4是级联工作?写入ICW3需要ICW4?YYNN准备好接收中断请求4 源程序清单及注释SSTACK SEGMENT STACKDW 32 DUP(?)SSTACK ENDSCODE SE
19、GMENTASSUME CS:CODESTART: PUSH DSMOV AX, 0000H ;初始化中断向量表MOV DS, AXMOV SI, 003CHMOV DX, OFFSET LIGHT ;送偏移量 MOV SI,DXMOV AX,SEG LIGHT ;送段地址MOV SI,003EH MOV SI,AXCLI ;关中断POP DS;初始化主片8259SET8259: MOV AL, 13HOUT 20H, AL ;ICW1 边沿触发 单片 要ICW4MOV AL, 08HOUT 21H, AL ;ICW2 中断向量码MOV AL, 01HOUT 21H, AL ;ICW3 非缓冲
20、 非自动 8088MOV AL, 7FHOUT 21H, AL ;ICW4 OCW1 IR7非屏蔽STI ;开中断;初始化芯片8255SET8255: MOV DX,0646H MOV AL,82H OUT DX,AL ;A口输出,B口输入,C口输出 MOV DX,0640H MOV AL,00H OUT DX,AL;路灯初始都是灭的AA1: NOP JMP AA1LIGHT: PUSH DX PUSH AX ;保护现场LDCT: MOV DX,0642H ;路灯点亮程序 IN AL,DX CMP AL,01H MOV AL,0FFH MOV DX,0640H OUT DX,AL ;天黑路灯全
21、亮 MOV CX,3CET3: CALL SOFTDLY ;点亮时间模拟 LOOP CET3 JMP STOP STOP:MOV DX,0640H ;结束程序MOV AL,00H OUT DX,AL ;天亮路灯灭MOV AL,20H ;OCW2中断结束OUT 20H,AL POP AXPOP DX ;恢复现场 STIJMP SET8259SOFTDLY PROC ;延时子程序 PUSH BX PUSH CX MOV BL,100 DELAY: MOV CX,2801 WAIT1: LOOP WAIT1 DEC BL JNZ DELAY POP CX POP BX RET SOFTDLY END
22、P STIIRET ;中断返回CODEENDSEND START5 设计原理流程图开始8259初始化8255初始化路灯全灭中断计算机循环执行空操作关中断保护现场开中断天黑路灯亮延时程序天亮路灯自动灭中断结束恢复现场开中断返回8259初始化重新选择6实际硬件电路接线图D0 D7LED显示单元及开关单元D0 PA0 D7 PA7WRRDA0 A1 CS 8255单元XD0XD7IOW#IOR#XA1XA2IOY1MIR7主8259K+设计总结参考文献1.周明德.微型计算机系统原理与应用(第四版).北京:清华大学出版社2.王正洪.朱正伟.马正华.微机接口与应用.北京:清华大学出版社3.范会敏.李晋惠.微型计算机原理与接口技术应用.北京:科学出版社4.沈鑫剡.微机原理与应用学习辅导.北京:清华大学出版社5.韩进宏.贾鹏.微型计算机原理与接口技术实验指导书.北京:机械工业出版社6.李伯成.侯伯亨.张毅坤.微型计算机原理及应用.西安:电子科技大学出版社-第 页-