微机原理课程设计_路灯控制设计(完整版)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 设计任务描述
1.1设计题目
路灯控制设计
1.2设计内容
1)天黑时路灯电亮,天亮时路灯关闭。
2)用中断模拟天黑。
1.2.1 设计目的
通过课程设计使学生更进一步掌握微机原理及应用课程的有关知识,提高应用微机解决问题的能力,加深对微机应用的理解。
通过查阅资料,结合所学知识进行
软、硬件的设计,使学生初步掌握应用微机解决问题的步骤及方法。
为以后学生结
合专业从事微机应用设计奠定基础
1.2.2 设计要求
1)通过K O—K7和K++来输入。
2)用LED指示灯显示结果。
3)输出为1灯亮,输入为0灯灭。
2设计思路
本次微机原理课程设计我设计的是路灯控制器。
通过中断信号来使路灯点亮,再经延时程序来使灯自动熄灭。
然后重新回到初始状态。
我们用到的芯片是中断控制器8259和可编程并行接口8255这两种芯片再外加一个LED 显示单元及开关单元。
用中断控制器8259的控制字来设置单片、边沿触发、非缓冲、非自动,用ICW4来设置IR7非屏蔽。
设置中断控制器8255的控制字,让它A口输出来显示灯亮,。
由于我们没用到B口和C口,所以让B口输入C口高低四位均输出。
设置完控制字后,再使A口输出全为0(这时路灯初始状态为灭),接着让程序循环进入空操作。
当天黑需要路灯亮时,按下中断(代表天黑),程序从循环执行空操作中中断出来,使A口输出从全为0变成全为1(这时路灯全亮),程序后面连接一个延迟子程序,来控制灯
亮的时间。
最后到了程序该结束的时候了,A口输出从全1再次变为全0(这时路灯全灭,代表夜晚已过,天亮了)。
这时程序本该结束了,程序结束后,又返回到中断控制器8259这部分,这样程序又可以通过按中断来控制灯亮,这样就简单又实用。
大体上程序主要分四大部分:输入部分,中断部分,延迟部分和输出部分。
结合所学的知识外加查找相关资料,把这几大部分合理的连接起来,从而实现一个完整、功能强大的程序。
3 主要元器件介绍
3.1 所用芯片8255简介:
3.1.1 外部引线
D0~D7为双向数据信号线,用来传送数据和控制字。
、
RD为读信号线,与其它信号线一起实现对8255接口的读操作通常接系统总线的IOR信号。
WR为写信号线,与其它信号一起实现对8255的写操作,通常接系统总线的IOW。
CS为片选信号线,当它为低电平(有效)时,才能选中该8255芯片,也才能对8255进行操作。
、
A0,A1为口地址选择信号线。
8255内部有3个口;A口,B口,C 口,还有一个控制寄存器,它们可由程序寻址。
A0,A1上的不同编码可分别寻址上述3个口和一个控制寄存器,具体规定如下:
A1A0选择
0 0 A口
0 1 B口
1 0 C口
1 1 控制寄存器
通常A0,A1分别接系统总线A0和A1,它们与CS一起来决定8255的接口地址。
RESET为复位输入信号。
此端上的高电平可使8255复位。
复位后,8255的A口,B口,C 口均被定为输入状态。
PA0~PA7为A口的8条输入输出信号线。
PB0~PB7为B口的8条输入输出信号线。
PC0~PC78条线根据其工作方式可作为数据的输入或输出线,也可以用作控制信号的输出或状态信号的输入线。
3.1.2 8255有三种工作方式:方式0、方式1和方式2。
①:方式0--基本输入/输出
在此工作方式下,每个口都作为基本的输入输出口,C口的高4位和低4位以及A口和B口都可独立地设置为输入口和输出口。
在此工作方式下:输出的数据被锁存,而输入的数据不被锁存。
而且,在方式0之下,C口还有按位置位和复位的能力。
②:方式1--选通输入/输出
此工作方式下,三个端口分为A、B两组,A、B两个口仍用作数据输入输出口,而C口分成两部分,分别作为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之下的输入输出组合
3.1.3 8255的寻址:
8255占外设编址的4个地址,即A口,B口,C口和控制寄存器各占一个外设接口地址。
对同一个地址分别可以进行读写操作。
例如,读A口可将A口的数据读出;写A口可将CPU 的数据写入A口并输出。
8255的寻址
8255方式0基本功能:
方式0是基本输入/输出方式。
其功能如下:
①进行数据传送时不需要联络信号。
②任一设置成方式0的端口均可设置成输入或输出。
③输出具有锁存功能。
④输入没有锁存功能。
⑤每一个8位口和4位口均可设置成方式0。
如果所有的8位口和4位口都设置成方
端口是否具有锁存功能是需要注意的。
如果具有锁存功能,则8255A可作为CPtJ与外设之间数据传送的中转站。
这时,CPU与外设之间数据传送是异步的。
如果没有锁存功能,则8255A作为数据通道,仅起单向三态门的作用。
这时,CPU与外设之间数据传送是同步的。
方式0的输出具有锁存功能,而输入没有锁存功能。
可编程并行接口8255引线图
无关置/复位00:复位
1:置位
C口的位选择
D3 D2 D1选择
000PC0
001PC1
010 PC2
011 PC3
100 PC4
101 PC5
110 PC6
111 PC7
C口的按位操作控制字格式A组控制B组控制
口低四位
口八位
1
口高四位
口8位
1
2
功能控制
0:位操作
1:方式选择
8255的控制字格式
3.2 所用芯片8259简介:
3.2.1 8259的外部引线
D0~D7为双向数据信号线,与系统总线的数据线相连接。
WR、RD为写和读控制信号,与系统总线的读写信号相连接。
CS为片选信号,只有CS为低电平时,才能实现CPU对8259的写或读操作。
A0是8259内部寄存器的选择信号。
它的不同状态,对应不同的内部寄存器。
INT为8259的中断请求输出信号。
可直接接到CPU的INTR输入端。
INTA为中断响应输入信号。
在中断响应过程中CPU的中断响应信号由此端进入8259.
CAS0~CAS2为级联控制线。
当多片8259级联工作时,其中一片为主控级联芯片,其他均为从属级芯片。
主控级芯片的CAS0~CAS2作为输出,连接到个从属级芯片的CAS0~CAS2上。
当某从属8259提出中断请求时,主控级8259通过CAS0~CAS2送出相应的编码给从属级,是从属级中断被允许。
SP/EN为双功能引线。
当工作在缓冲模式时,它为输出,用以控制缓冲传送;在非缓冲模式时,它用作输入。
当SP=1时,指定8259芯片为主控级;SP=0时,指定它为从属级。
IR0~IR7中断请求输入端。
其他外设中断请求可加在8259的IR0~IR7的任一端上。
该信号可以使上升沿有效,也可以时高电平有效。
8259的内部有多个寄存器,其中包括:
中断请求寄存器(IRR),其内部保存着所有外部中断源IR0~IR7的中断请求状态。
任何一个中断源发生请求,其相应位为1;一旦得到响应,则相应位复位。
中断服务寄存器(ISR),用来保存所有正在服务的中断源。
当8259受到中断结束命令时,其寄存的状态进行调整。
中断屏蔽寄存器(IMR),保存着被屏蔽的所有中断源。
其屏蔽功能可用命令修改。
8259引线图
3.2.2 8259的内部控制字
CPU命令分为两大类:一类时初始化命令字(ICW),主要使8259处于初始状态;另一类是操作命令字(OCW),使处于初始状态的8259去执行具体的某种操作方式。
操作命令字可在8259初始化后的任何时刻写入。
(1)初始化命令字
①初始化命令字ICW1
A0=0为偶地址。
在A0=0,D4=1时为写入。
A0
ICW4
ICW4
8259
8259级联
4
8
仅用于8080、85模式
1:电平触发
0:边沿触发
初始化命令字ICW1
②初始化命令字ICW2
A0=1为奇地址。
③初始化命令字ICW3
A0=1为奇地址。
该字是用于多片8259级联的。
在主控8259中,ICW3的每一位对应一个IR输入。
哪一位为1,表示相应的IR接从属8259.
从属8259的ICW3的最低三位的编码用以表示该从属8259接至主控8259的IR编号。
主控ICW3
D0
1:相应IR接从属8259
0:不接8259
从属ICW3
3位编码对应从属8259
接主控的IR编号
初始化命令字ICW3
④初始化命令字ICW4
A0=1为奇地址。
模式
模式
EOI
\从属片
\主控片
0:一般嵌套方式
初始化命令字ICW4
(2)操作命令字OCW
①操作命令字OCW1。
当这个8位的操作命令字的某一位置1时,它就屏蔽相对的IR输入。
②操作命令字OCW2。
IR的最低优先级
1 0 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控制格式
③操作命令字OCW3。
A0
:无效
10:可读IRR
:可读ISR
:允许查询
0:不查询
操作命令字OCW3
8259寄存器及命令的访问控制
3.2.3 8259的初始化顺序
4 源程序清单及注释SSTACK SEGMENT STACK
DW 32 DUP(?)
SSTACK ENDS
CODE SEGMENT
ASSUME CS:CODE
START: PUSH DS
MOV AX, 0000H ;初始化中断向量表
MOV DS, AX
MOV SI, 003CH
MOV DX, OFFSET LIGHT ;送偏移量
MOV [SI],DX
MOV AX,SEG LIGHT ;送段地址
MOV SI,003EH
MOV [SI],AX
CLI ;关中断
POP DS
;初始化主片8259
SET8259: MOV AL, 13H
OUT 20H, AL ;ICW1 边沿触发单片要ICW4
MOV AL, 08H
OUT 21H, AL ;ICW2 中断向量码
MOV AL, 01H
OUT 21H, AL ;ICW3 非缓冲非自动8088
MOV AL, 7FH
OUT 21H, AL ;ICW4 OCW1 IR7非屏蔽
STI ;开中断
;初始化芯片8255
SET8255: MOV DX,0646H
MOV AL,82H
OUT DX,AL ;A口输出,B口输入,C口输出
MOV DX,0640H
MOV AL,00H
OUT DX,AL ;路灯初始都是灭的
AA1: NOP
JMP AA1
LIGHT: PUSH DX
PUSH AX ;保护现场
LDCT: MOV DX,0642H ;路灯点亮程序
IN AL,DX
CMP AL,01H
MOV AL,0FFH
MOV DX,0640H
OUT DX,AL ;天黑路灯全亮
MOV CX,3
CET3: CALL SOFTDLY ;点亮时间模拟
LOOP CET3
JMP STOP
STOP:
MOV DX,0640H ;结束程序
MOV AL,00H
OUT DX,AL ;天亮路灯灭
MOV AL,20H ;OCW2中断结束
OUT 20H,AL
POP AX
POP DX ;恢复现场
STI
JMP SET8259
SOFTDLY 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 ENDP
STI
IRET ;中断返回CODE ENDS
END START
5 设计原理流程图
6实际硬件电路接线图
设计总结
参考文献
1.周明德.微型计算机系统原理与应用(第四版).北京:清华大学出版社
2.王正洪.朱正伟.马正华.微机接口与应用.北京:清华大学出版社
3.范会敏.李晋惠.微型计算机原理与接口技术应用.北京:科学出版社
4.沈鑫剡.微机原理与应用学习辅导.北京:清华大学出版社
5.韩进宏.贾鹏.微型计算机原理与接口技术实验指导书.北京:机械工业出版社
6.李伯成.侯伯亨.张毅坤.微型计算机原理及应用.西安:电子科技大学出版社如有侵权请联系告知删除,感谢你们的配合!。