路灯控制课程设计3.docx
- 文档编号:9407821
- 上传时间:2023-05-18
- 格式:DOCX
- 页数:24
- 大小:26.46KB
路灯控制课程设计3.docx
《路灯控制课程设计3.docx》由会员分享,可在线阅读,更多相关《路灯控制课程设计3.docx(24页珍藏版)》请在冰点文库上搜索。
路灯控制课程设计3
中文摘要
本次设计的程序为路灯控制设计,此程序是通过中断控制器8259和并行接口芯片8255与8088计算机的硬件连接,以及延时方法,来实现夜晚路灯亮灭的控制。
程序主要分四大部分:
输入部分,中断部分,延迟部分和输出部分。
输入部分用K0至K7来实现,中断部分用中断控制器8259来实现,延迟部分用一个延迟
子程序来实现,而输出部分则用LED显示单元及开关单元来实现。
通过中断K++来实现天黑,天黑时路灯电亮,天亮时路灯关闭。
结合所学知识和相关资料编制一个方便、可靠、实用的程序。
关键词:
LOOPJNZJMP循环延时中断
1设计任务描述
1.1设计题目
路灯控制设计
1.2设计内容
利用微机原理实验箱,采用一组发光二极管来模拟路灯。
1)天黑时路灯电亮,天亮时路灯关闭。
2)用中断模拟天黑。
1.2.1设计目的
通过课程设计使学生更进一步掌握微机原理及应用课程的有关知识,提高应用微机解决问题的能力,加深对微机应用的理解。
通过查阅资料,结合所学知识进行软、硬件的设计,使学生初步掌握应用微机解决问题的步骤及方法。
为以后学生结合专业从事微机应用设计奠定基础
1.2.2设计要求
1)通过K++来输入信号,灯亮时输入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选择
00A口
01B口
10C口
11控制寄存器
通常A0,A1分别接系统总线A0和A1,它们与CS一起来决定8255的接口地址。
RESET为复位输入信号。
此端上的高电平可使8255复位。
复位后,8255的A口,B口,C口均被定为输入状态。
PA0~PA7为A口的8条输入输出信号线。
PB0~PB7为B口的8条输入输出信号线。
PC0~PC78条线根据其工作方式可作为数据的输入或输出线,也可以用作控制信号的输出或状态信号的输入线。
3.1.28255有三种工作方式:
方式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之下的输入输出组合
A组
B组
A口(PA0---PA7)
C口(PC4---PC7)
B口(PB0---PB7)
C口(PC0---PC3)
入
入
入
入
入
入
入
出
入
入
出
入
入
入
出
出
入
出
入
入
入
出
入
出
入
出
出
入
入
出
出
出
出
入
入
入
出
入
入
出
出
入
出
入
出
入
出
出
出
出
入
入
出
出
入
出
出
出
出
入
出
出
出
出
3.1.38255的寻址:
8255占外设编址的4个地址,即A口,B口,C口和控制寄存器各占一个外设接口地址。
对同一个地址分别可以进行读写操作。
例如,读A口可将A口的数据读出;写A口可将CPU的数据写入A口并输出。
8255的寻址
___
CS
A1
A0
____
IOR
____
IOW
操作
0
0
0
0
1
读A口
0
0
1
0
1
读B口
0
1
0
0
1
读C口
0
0
0
1
0
写A口
0
0
1
1
0
写B口
0
1
0
1
0
写C口
0
1
1
1
0
写控制寄存器
1
X
X
1
1
D0~D7三态
8255方式0基本功能:
方式0是基本输入/输出方式。
其功能如下:
①进行数据传送时不需要联络信号。
②任一设置成方式0的端口均可设置成输入或输出。
③输出具有锁存功能。
④输入没有锁存功能。
⑤每一个8位口和4位口均可设置成方式0。
如果所有的8位口和4位口都设置成方
端口是否具有锁存功能是需要注意的。
如果具有锁存功能,则8255A可作为CPtJ与外设之间数据传送的中转站。
这时,CPU与外设之间数据传送是异步的。
如果没有锁存功能,则8255A作为数据通道,仅起单向三态门的作用。
这时,CPU与外设之间数据传送是同步的。
方式0的输出具有锁存功能,而输入没有锁存功能。
140
535
8255A
1030
1525
2021
PA3PA4
PA2PA5
PA1PA6
PA0PA7
RDWR
CSRESET
地D0
A1D1
A0D2
PC7D3
PC6D4
PC5D5
PC4D6
PC0D7
PC1VCC
PC2PB7
PC3PB6
PB0PB5
PB1PB4
PB2PB3
可编程并行接口8255引线图
D7D6D5D4D3D2D1D0
X
X
X
无关置/复位
10:
复位
1:
置位
C口的位选择
D3D2D1选择
000PC0
001PC1
010PC2
011PC3
100PC4
101PC5
110PC6
111PC7
C口的按位操作控制字格式
A组控制B组控制
7
6
5
4
3
2
1
0
控制C口低四位
1:
输入
0:
输出
控制B口八位
1:
输入
0:
输出
方式选择
0:
方式0
1:
方式1
控制C口高四位
0:
输出
1:
输入
控制A口8位
0:
输出
1:
输入
方式选择
00:
方式0
10:
方式1
11:
方式2
功能控制
0:
位操作
1:
方式选择
8255的控制字格式
3.2所用芯片8259简介:
3.2.18259的外部引线
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),保存着被屏蔽的所有中断源。
其屏蔽功能可用命令修改。
128
227
326
425
524
623
7825922
821
920
1019
1118
1217
1316
1415
CSVCC
WRA0
RDINTA
D7IR7
D6IR6
D5IR5
D4IR4
D3IR3
D2IR2
D1IR1
D0IR0
CAS0INT
CAS1SP/EN
地CAS2
3.2.28259的内部控制字
CPU命令分为两大类:
一类时初始化命令字(ICW),主要使8259处于初始状态;另一类是操作命令字(OCW),使处于初始状态的8259去执行具体的某种操作方式。
操作命令字可在8259初始化后的任何时刻写入。
(1)初始化命令字
①初始化命令字ICW1
A0=0为偶地址。
在A0=0,D4=1时为写入。
A0
0
D7D6D5D4D3D2D1D0
1
LTIM
A
S
IC4
1:
需要ICW4
0:
不需要ICW4
低8编程位1:
单片8259
下,中断低口0:
多片8259级联
8080/85模式1:
间隔为4
0:
间隔为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
A0
1
D7D6D5D4D3D2D1D0
1:
相应IR接从属8259
0:
不接8259
从属ICW3
A0
1
D7D6D5D4D3D2D1D0
0
0
0
0
0
3位编码对应从属8259
接主控的IR编号
初始化命令字ICW3
④初始化命令字ICW4
A0=1为奇地址。
A0
1
D7D6D5D4D3D2D1D0
0
0
0
SFNM
BUF
M/S
AEOI
PM
1:
8086/88模式
0:
8088/85模式
1:
自动EOI
0:
非自动结束
0X:
非缓冲方法
10:
缓冲方式\从属片
11:
缓冲方式\主控片
1:
特殊全嵌套方式
0:
一般嵌套方式
初始化命令字ICW4
(2)操作命令字OCW
①操作命令字OCW1。
当这个8位的操作命令字的某一位置1时,它就屏蔽相对的IR输入。
②操作命令字OCW2。
A0
0
D7D6D5D4D3D2D1D0
R
SL
EOI
0
0
L2
L1
L0
编码对应IR的最低优先级
001一般EOI
中断结束命令
011特殊EOI
101循环优先级的一般EOI命令
100在自动EOI下置循环优先级自动循环
000在自动EOI下清循环优先级
111循环优先级的特殊EOI命令
110设置优先级特殊循环
010无效
操作命令字OCW2
该命令字用来设置优先级是否循环、循环的方式及中断结束的方式。
R为优先级循环控制位,R=1为循环优先级;R=0为固定优先级。
L2、L1、L0为系统最低优先级编码,用它们来指定哪个IR优先级最低。
EOI是中断结束命令。
OCW2控制格式
D7D6D5D4D3D2D1D0
功能
RSLEOI00L2L1L0
00100------
一般中断结束EOI命令,使正执行的IS复位
01100L2L1L0
特殊结束SEIO命令,使L2L1L0指定的IS复位
10100------
一般自动循环命令,使正执行的IS复位且优先级最低
10000------
设置自动循环的命令
00000------
清除自动循环的命令,变为固定优先级
11000L2L1L0
优先级设置命令,L2L1L0所指定的IR优先级最低
11100L2L1L0
使L2L1L0所指定的IS复位并变为最低优先级
010------------
无效
③操作命令字OCW3。
A0
0
D7D6D5D4D3D2D1D0
0
ESMM
SMM
0
1
P
RR
RIS
0X:
无效
0X:
无效10:
可读IRR
10:
复位特殊屏蔽11:
可读ISR
11:
设置特殊屏蔽1:
允许查询
0:
不查询
操作命令字OCW3
8259寄存器及命令的访问控制
A0
D4
D3
RD
WR
CS
操作
0
0
1
0
读出ISR、IRR的内容
1
0
1
0
读出IMR的内容
0
0
0
1
0
0
写入OCW2
0
0
1
1
0
0
写入OCW3
0
1
X
1
0
0
写入ICW1
1
X
X
1
0
0
写入OCW1、ICW2、ICW3、ICW4
3.2.38259的初始化顺序
准备好接收中断请求
4源程序清单及注释
SSTACKSEGMENTSTACK
DW32DUP(?
)
SSTACKENDS
CODESEGMENT
ASSUMECS:
CODE
START:
PUSHDS
MOVAX,0000H;初始化中断向量表
MOVDS,AX
MOVSI,003CH
MOVDX,OFFSETLIGHT;送偏移量
MOV[SI],DX
MOVAX,SEGLIGHT;送段地址
MOVSI,003EH
MOV[SI],AX
CLI;关中断
POPDS
;初始化主片8259
SET8259:
MOVAL,13H
OUT20H,AL;ICW1边沿触发单片要ICW4
MOVAL,08H
OUT21H,AL;ICW2中断向量码
MOVAL,01H
OUT21H,AL;ICW3非缓冲非自动8088
MOVAL,7FH
OUT21H,AL;ICW4OCW1IR7非屏蔽
STI;开中断
;初始化芯片8255
SET8255:
MOVDX,0646H
MOVAL,82H
OUTDX,AL;A口输出,B口输入,C口输出
MOVDX,0640H
MOVAL,00H
OUTDX,AL;路灯初始都是灭的
AA1:
NOP
JMPAA1
LIGHT:
PUSHDX
PUSHAX;保护现场
LDCT:
MOVDX,0642H;路灯点亮程序
INAL,DX
CMPAL,01H
MOVAL,0FFH
MOVDX,0640H
OUTDX,AL;天黑路灯全亮
MOVCX,3
CET3:
CALLSOFTDLY;点亮时间模拟
LOOPCET3
JMPSTOP
STOP:
MOVDX,0640H;结束程序
MOVAL,00H
OUTDX,AL;天亮路灯灭
MOVAL,20H;OCW2中断结束
OUT20H,AL
POPAX
POPDX;恢复现场
STI
JMPSET8259
SOFTDLYPROC;延时子程序
PUSHBX
PUSHCX
MOVBL,100
DELAY:
MOVCX,2801
WAIT1:
LOOPWAIT1
DECBL
JNZDELAY
POPCX
POPBX
RET
SOFTDLYENDP
STI
IRET;中断返回
CODEENDS
ENDSTART
5设计原理流程图
开始
8259初始化
8255初始化
路灯全灭
中断
关中断
保护现场
开中断
天黑路灯亮
延时程序
天亮路灯自动灭
中断结束
恢复现场
开中断
返回8259初始化重新选择
6实际硬件电路接线图
D0
~
D7
LED显示单元及开关单元
D0PA0
~~
D7PA7
WR
RD
A0
A1
CS
8255单元
XD0
~
XD7
IOW#
IOR#
XA1
XA2
IOY1
MIR7
主8259
K++
设计总结
本次微机原理课程设计,我们小组设计的是路灯控制。
一看这个题目,感觉和日常甚或中的光控路灯比较相似。
但是毕竟是第一次接触此类设计。
所以开始的时候有些迷惑。
我看过了任务书,要求我们用可编程芯片8255和中断控制等相关资料来设计。
于是我想到利用8259的重点功能来设计,利用中断来模拟天黑。
我通过对书本和其它相关资料仔细参考了中断程序,将程序的基本原理弄清楚。
通过对书本资料的研究和参考,并且在想老师请教了之后,我仔细了解中断技术知识和8259和8255俩个器件,通过对两个器件的了解以及它们的引脚图的绘制并且参考了实验书和书中的程序。
通过对以前的一些程序的参考,我简单粗略编制了一个程序。
但是在上机调试的时候出了一些问题,模拟路灯的数码管不亮。
有一些小错误导致无法编译和加栽。
经过不断的向老师请教,反复的调试,终于将一个简单的程序设计出来了。
运行状况良好,其中一些基本的程序功能以及运行特点我也都能简单理解。
我的程序也可以运用到实际路灯控制。
但是就是简单了些,而且有点不足的是对于一些程序的细节处理上有明显不足.这点老师给我指正了出来,其实应用定时程序是最好的。
但是由于我们是非计算机专业,水平所限,因此只能完成这样的比较简单的程序.担是毕竟也是学到了一些实用的程序设计,总体说来,本次的课程设计还是对我的计算机知识有了很大的提高.
致谢
一周的微机原理课程设计圆满结束了,经过一周的实习,我最大的收获就是理解了微机的一些简单的程序设计。
在此之前,我从来没有接触过这些东西。
通过本次设计,我收益非浅。
不光懂得了一些简单的程序设计,而且还可以把程序进行一些简单的应用。
与实际生活联系起来。
设计开始的时候我们是一头雾水,因为以前没有接触过,所以根本觉得无从下手。
这时候,多亏了王庆利老师对我们的耐心指导,帮我解决各种疑问,帮助我改进程序。
如果没有王老师的指导,我的设计也不可能完成的这么顺利。
同时还要感谢我们的组员,经过我们的一起讨论,共同解决问题,并且借给我很多参考资料。
也给了我很大帮助。
最后再次衷心感谢老师的指导,同时也希望我们组的成员都能在这次设计中取得好成绩。
参考文献
1.周明德.微型计算机系统原理与应用(第四版).北京:
清华大学出版社
2.王正洪.朱正伟.马正华.微机接口与应用.北京:
清华大学出版社
3.范会敏.李晋惠.微型计算机原理与接口技术应用.北京:
科学出版社
4.沈鑫剡.微机原理与应用学习辅导.北京:
清华大学出版社
5.韩进宏.贾鹏.微型计算机原理与接口技术实验指导书.北京:
机械工业出版社
6.李伯成.侯伯亨.张毅坤.微型计算机原理及应用.西安:
电子科技大学出版社
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 路灯 控制 课程设计