微机原理课设霓虹灯闪烁控制系统.docx
- 文档编号:9819256
- 上传时间:2023-02-06
- 格式:DOCX
- 页数:31
- 大小:229.86KB
微机原理课设霓虹灯闪烁控制系统.docx
《微机原理课设霓虹灯闪烁控制系统.docx》由会员分享,可在线阅读,更多相关《微机原理课设霓虹灯闪烁控制系统.docx(31页珍藏版)》请在冰豆网上搜索。
微机原理课设霓虹灯闪烁控制系统
微机原理与接口技术
课程设计
题目:
霓虹灯闪烁控制系统
学院:
电气工程学院
专业:
测控技术与仪器
班级:
XXX
姓名:
XXX
学号:
XXXXXX
指导教师:
XXXX
2012年1月8日
目录
目录………………………………………………………………………………………1
第一章绪论………………………………………………………………………………….3
1.1设计题目简介…………………………………………………………………………...3
1.2设计背景………………………………………………………………………………….3
1.3设计功能………………………………………………………………………………….3
第二章硬件设计……………………………………………………………………………...4
2.1实验装置简介…………………………………………………………………………….4
2.2硬件电路设计…………………………………………………………………………….5
2.2.1电路图………………………………………………………………………………..6
2.2.2芯片介绍……………………………………………………………………………..7
2.2.2.2与CPU的接口电路………………………………………………………….7
2.2.2.3引脚信号……………………………………………………………………...8
2.2.2.48255A的工作方式及初始化编程……………………………………………9
第三章软件设计及程序分析………………………………………………………………10
3.1程序清单………………………………………………………………………………...10
3.2程序分析……………………………………………………………………………….10
3.2.1主程序……………………………………………………………………………10
3.2.1.1主程序功能………………………………………………………………...11
3.2.1.2主程序分析………………………………………………………………...11
3.2.2子程序……………………………………………………………………………13
3.2.2.1STATE0子程序……………………………………………………….13
3.2.2.2STATE1子程序………………………………………………………...14
3.2.2.3STATE2子程序………………………………………………………...15
3.2.2.4STATE3子程序………………………………………………………...16
3.2.2.5延时子程序DELAY10…………………………………………………...18
3.2.2.6显示子程序DISP…………………………………………………………19
第四章实验总结…………………………………………………………………………..20
4.1开关控制霓虹灯实验总结…………………………………………………………….20
4.2实验心得……………………………………………………………………………….20
参考文献……………………………………………………………………………………..21
附录…………………………………………………………………………………………..22
摘要:
霓虹灯是日常生活中最常见的灯饰,它装点了晚上,丰富了人们的生活。
通过汇编语言,实现霓虹灯的显示与闪烁,可以很方便的达到想要的效果。
本设计是利用微机原理中的汇编语言,并且以8255A芯片为核心来控制LED从而实现霓虹灯的不同变化,并从该课题设计中巩固我们所学的知识和锻炼我们的动手能力,为以后工作中动手,动脑奠定一定的基础
Abstract:
theneonlampindailylifeisthemostcommonlighting,decorateitintheevening,peoplelivearichlife.Throughtheassemblylanguage,toachievethedisplayofneonlightsandflashing,canbeveryconvenienttoachievethedesiredeffect.ThisdesignistheuseofMicrocomputerPrincipleandassemblylanguage,using8255AchipasthecoretocontroltheLEDsoastorealizetheneonlightsofdifferentchanges,andfromtheprojectdesigntoconsolidatewhatwehavelearnedandexerciseourability,forthefutureworktolayasolidfoundation,brains.
关键字:
霓虹灯程序8255A
Keywords:
Neonlampprogram8255A
第一章绪论
1.1设计题目简介:
设计霓虹灯闪烁控制系统,使外设的红、绿、黄3种颜色的发光二极管,在开关的控制或者在程序自动控制下,按照不同规律闪烁。
要求:
(1)要求发光二极管的亮、灭变化有一定的规律
(2)发光二极管变化规律要有多种状态
1.2设计背景
“微机与接口技术”是一门实践性和实用性都很强的课程,学习的目的在于应用。
本课程设计是自动化专业学生的一次较全面的的设计训练,是配合“微机与接口技术”课堂教学的最后一个重要的实践教学环节,它将起到巩固课堂和书本上所学的知识、加强综合能力、提高系统设计水平、启发创新思想的作用。
其基本目的是:
(1)培养理论联系实际的正确设计思路,训练综合运用已经学过的理论和实际知识去分析和解决实际问题的能力。
(2)帮助学生全面消化已学的相关课程内容,深刻理解微机原理与接口技术课程的内涵,从硬件的角度掌握微机的组成、接口部件的结构和彼此之间的联系,从软件的角度理解和应用微机系统的运行机制。
(3)进行基本技能训练。
例如编程、上机、调试硬件和软件系统。
课程设计的任务是使学生利用学校现有条件,自己动手设计完成一个典型的微机应用小系统。
我们小组选定的课程设计题目是:
霓虹灯
其设计目的主要为:
(1)进一步熟悉8255A并行接口的基本工作原理
(2)运用CES-86通用微机实验装置,了解键盘的基本结构,学会编写程序.
(3)在熟悉了小键盘的基础上,加上LED发光二极管的使用设计出绚丽闪耀的霓虹灯.
当然,虽然程序最后达到了预期控制要求,但是由于实际情况和理想情况存在差距,我知道还有很多地方有待改进,同时我还是个初学者,各方面肯定存在不足,如果老师发现了缺陷之处,请指出,我们一定会虚心接受。
1.3设计功能
外设的8个发光二极管在2个开关K1,K2的控制下按照不同的规律闪烁,同时在电脑屏幕上显示开关状态,二极管闪烁规律如下:
(1)开关状态为K1关,K2关时,前四灯同时亮,熄灭后,接着后四个同时亮,
并且在屏幕上显示“00STATEZERO”。
(2)开关状态为K1关,K2开时,8灯依次点亮,并且在屏幕上显示“01STATEOME”。
(3)开关状态为K1开,K2关时,从两侧向内依次同时点亮一个灯,并且在屏幕上显示“01STATETWO”。
(4)开关状态为K1开,K2开时,从中心向外依次同时点亮一灯,并且在屏幕上显示“01STATETHYEE”。
第二章硬件设计
2.1实验装置简介
本次课程设计所使用的主要设备是CES-86型通用实验装置。
CES-86型通用PC机实验装置的特点是“单板积木式”电路。
而且可以和任何一种PC机相连组成系统,相连后即可在此装置上进行硬件拼接,组成各种实验系统。
单积木式电路分为21块基本电路,标以A、B、C、……R、S和两块辅助电路。
这21块积木的具体电路为:
A:
单脉冲发生器电路;
B:
时钟脉冲发生器电路;
C:
数/模转换(DAC0832)电路;
D:
可编程计数器/定时器(8253)电路;
E:
模/数转换(ADC0809)电路;
F:
单板机I/O地址电路;
G:
逻辑电路芯片插座区;
H:
电平开关电路;
I:
发光二极管(LED)显示电路;
J:
计数器分频电路;
K:
可编程并行通信接口(8255A)电路;
L:
可编程串行通信接口(8251A)电路
M:
十六进制键盘电路;
N:
七段数码显示电路;
O:
随机存储(RAM6116)电路;
P:
中继电路;
Q:
直流电源及控制电路;
R:
PC总线接口;
S:
与PC机连接的接口电路;
S
RO
Q
C
B
A
P
D
G
N
E
M
F
L
万用表
K
H
J
I
“单板积木式”示意图
本课程设计使用了F(单板机IO地址电路),H(电平开关电路),I发光二极管显示电路,K(可编程并行通信接口即8255A电路)。
2.2硬件电路设计
2.2.1电路图
设计电路图如下图所示,A口为输出,连接8个发光二极管,B口为输入,其中的PB0,PB1接开关K1,K2。
开关的四个状态分别对应霓虹灯的四种变化状态,做试验时,通过控制开关的断开与闭合,可以观察到霓虹灯的闪烁。
同时CPU通过B端口将K1,K2的信息读入,然后转换成ASCII码
其中端口A的地址为318H;端口B的地址为319H;控制字的地址为31BH
2.2.2芯片介绍
2.2.2.2与CPU的接口电路
(1)与CPU的接口电路由数据总线缓冲器和读/写控制逻辑组成。
数据总线缓冲器是一个三态、双向、8位寄存器,8条数据线D7~D0与系
统数据总线连接,构成CPU与8255A之间信息传送的通道,CPU通过执行输出指令向8255A写入控制命令或往外设传送数据,通过执行输入指令读取外设输入的数据。
读写控制逻辑电路用来接收CPU系统总线的读信号RD,写信号WR,片选择信号CS,端口选择信号A和复位信号RESET,用于控制8255A内部寄存器的读写操作和复位操作。
(2)内部控制逻辑电路
内部控制逻辑包括A组控制与B组控制两部分。
A组控制寄存器用来控制A口PA7~PA0和C口的高四位PC7~PC4;B组控制寄存器用来控制B口PB7~PB0和低四位PC3~PC0。
它们接收CPU发送来的控制命令,对A,B,C3个端口的输入/输出方式进行控制。
(3)输入输出接口电路
8255A片内有A,B,C3个8位并行端口,A口和B口分别有1个8位的数据输出锁存/缓冲器和1个8位数据输入锁存器,C口有一个8位数据输出锁存/缓冲器,用于存放CPU与外部设备交换的数据。
对于8255A的3个数据端口和1个控制端口,数据端口既可以写入数据也可以读出数据,控制端口只能写入命令而不能读出,读、写控制信号(RD,WR)和端口选择信号(CS,A1,A0)的状态组合可以实现A,B,C3个端口和控制端口的读写操作。
8255A的端口分配及读写功能见下表:
CSWRRD
A1A0
功能
001
00
数据写入A口
001
01
数据写入B口
001
10
数据写入C口
001
11
命令写入控制寄存器
010
00
读出A口数据
010
01
读出B口数据
010
10
读出C口数据
010
11
非法操作
2.2.2.3引脚信号
8255A的引脚如下图示,分为数据线、地址线、读写控制线、输入/输出端口线和电源线。
D7~D0:
三态、双向数据线,与数据总线连接,用来传送数据。
CS:
片选信号线,低电平有效时,芯片被选中。
A1,A0:
地址线,用来选择内部端口。
RD:
读出信号线,低电平有效时,允许数据读出。
WR:
写入信号线,低电平有效时,允许数据写入。
RESET:
复位信号线,高电平有效时,将所有内部寄存器(包括控制寄存器)清0。
PA7~PA0:
A口输入/输出信号线。
PB7~PB0:
B口输入/输出信号线。
PC7~PC0:
C口输入/输出信号线。
VCC:
+5V电源。
GND:
电源地线。
2.2.2.48255A的工作方式及初始化编程
8255A有三种工作方式:
基本输入/输出方式,单向选通输入/输出方式和双向选通输入/输出方式。
(1)方式0:
基本输入输出方式
方式0是8255A的基本输入输出方式,其基本特点是与外部传送数据时,不需要设置专用的信号联络(应答)信号,可以无条件的直接进行I/O端口传送。
A,B,C三个端口都可以工作在方式0。
A口和B口工作在方式0时,只能设置以8位数据格式输入输出;C口工作在方式0时,可以将高4位和低4位分别设置为数据输入或数据输出方式。
方式0常用于与外设无条件数据传送或查询方式数据传送。
(2)方式1:
单项选通输入/输出方式
方式1是一种带选通信号的单方向输入/输出工作方式,其特点是:
与外设传送数据时,需要联络信号进行协调,允许用查询或中断方式传送数据。
由于C口的PC0,PC1和PC2定义为B口工作在方式1的联络信号线,PC3,PC4和PC5定义为A口工作方式1的联络信号线,因此只允许A口和B口工作在方式1。
(3)方式2:
双向选通输入/输出方式
方式2为双向选通输入输出方式,是方式1输入和输出的组合,即同一端口的信号线既可以输入又可以输出。
由于C口的PC7~PC3定义为A口工作在方式2时的联络信号线,因此只允许A口工作在方式2。
8255A的A,B,C三个端口的工作方式是在初始化编程时,通过向8255A的控制端口写入控制字来设定的。
8255A由编程写入的控制字有两个:
方式控制字和置位/复位控制字。
方式控制字用于设置端口A,B,C的工作方式和数据传送方向;置位/复位控制字用于设置C口的PC7PC0中某一条口线PCi(i=0~7)的电平。
两个控制字公用一个控制字公用一个端口地址,由控制字的最高位最为区分这两个控制字的标志位。
8255A工作方式控制字的格式如图所示:
第三章软件设计及程序分析
3.1程序清单:
见附录
3.2程序分析
3.2.1主程序
3.2.1.1主程序功能
它所实现的功能是实现开关对发光二极管的亮灭状态控制,并将开关状态在屏幕上显示出来。
在运行程序后按任意键发光二极管根据开关状态开始闪烁,同时在程序运行过程中按任意键可返回DOS。
3.2.1.2主程序分析
流程图如下:
主程序代码段
START:
MOVAX,DATA;数据段装入初始地址
MOVDS,AX
MOVES,AX
MOVAH,09H;显示提示信息
MOVDX,OFFSETMESS
INT21H
MOVDX,31BH;控制字端口
MOVAL,10000010B;控制字,B口输入A口输出
OUTDX,AL;写入控制字
A:
MOVDX,319H;端口B
INAL,DX;读开关状态
ANDAL,03H;保留B1,B0位,其他位置0
MOVX,AL;将AL暂时装入X
MOVCX,02H
B:
MOVDL,AL;AL装入DL以备子程序使用
CALLDISP;调用显示子程序,显示PB2的状态
SHLAL,1
LOOPB;循环2次,显示2个开关状态
MOVAL,X;开关状态装入AL
CMPAL,00H;比较开关状态,00调用STATE0
JNZM
CALLSTATE0
M:
CMPAL,01H;比较开关状态,01调用STATE1
JNZN
CALLSTATE1
N:
CMPAL,02H;比较开关状态,10调用STATE2
JNZO
CALLSTATE2
O:
CMPAL,03H;比较开关状态,11调用STATE3
JNZM
CALLSTATE3
3.2.2子程序
3.2.2.1STATE0子程序:
前四灯同时亮,熄灭后,接着后四个同时亮
流程图如下
STATE0PROCNEAR
MOVAH,09H
MOVDX,OFFSETZERO
INT21H
MOVDX,318H
MOVCX,04H;端口A
H:
MOVAL,0FH
OUTDX,AL
CALLDELAY10
MOVAL,0F0H
OUTDX,AL
CALLDELAY10
LOOPH
JMPS
RET
STATE0ENDP
3.2.2.2STATE1子程序:
8灯依次点亮
流程图如下
STATE1PROCNEAR
MOVAH,09H
MOVDX,OFFSETONE
INT21H
MOVDX,318H;端口A
MOVCX,08H
D:
MOVAL,80H
NOTAL
RORAL,1
OUTDX,AL
CALLDELAY10
LOOPD
JMPS
RET
STATE1ENDP
3.2.2.3STATE2子程序:
从两侧向内依次同时点亮一个灯
STATE2PROCNEAR
MOVAH,09H
MOVDX,OFFSETTWO
INT21H
MOVCX,04H
MOVDX,318H;端口A
E:
MOVAL,01111110B
OUTDX,AL
CALLDELAY10
MOVAL,1011101B
OUTDX,AL
CALLDELAY10
MOVAL,11011011B
OUTDX,AL
CALLDELAY10
MOVAL,11100111B
OUTDX,AL
CALLDELAY10
LOOPE
JMPS
RET
STATE2ENDP
3.2.2.4STATE3子程序:
从中心向外依次同时点亮一灯
流程图如下
STATE3PROCNEAR
MOVAH,09H
MOVDX,OFFSETTWO
INT21H
MOVCX,04H
MOVDX,318H;端口A
F:
MOVAL,11100111B
OUTDX,AL
CALLDELAY10
MOVAL,11011011B
OUTDX,AL
CALLDELAY10
MOVAL,10111101B
OUTDX,AL
CALLDELAY10
MOVAL,01111110B
OUTDX,AL
CALLDELAY10
LOOPF
JMPS
RET
STATE3ENDP
3.2.2.5延时子程序DELAY10
DELAY10PROCNEAR
PUSHAX
PUSHCX
MOVCX,0F0H
UUU:
MOVAX,0FFFFH
VVV:
DECAX
JNZVVV
LOOPUUU
POPCX
POPAX
RET
DELAY10ENDP
3.2.2.6显示子程序DISP
流程图如下
DISPPROCNEAR
PUSHAX
PUSHCX
ANDDL,02H;保留B1位
SHRDL,1
ADDDL,30H;将显示信息转换成ASCII码
MOVAH,02H
INT21H;在屏幕上显示B1位
MOVDL,20H
INT21H;显示空格
MOVDL,20H
INT21H
POPCX
POPAX
RET
DISPENDP
第四章实验总结
4.1开关控制霓虹灯实验总结
(1).在设置霓虹灯闪烁控制系统中,先确定设置霓虹灯的大致思路,有一个主程序,四个分别控制红灯、绿灯、黄灯闪烁规律的子程序,还有按键返回DOS子程序;
(2).通过设计霓虹灯闪烁规律控制系统深刻的理解了8255A的端口控制的方式以及输入输出状态。
(3).在做课程设计的过程中熟悉了汇编语言、各种跳转指令、子程序调用、循环指令以及返回DOS指令更全面的了解了微机原理与接口技术的内容。
4.2实验心得
两周的课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。
在设计过程中,与同学分工设计,和同学们相互探讨,相互学习,相互监督。
学会了合作,学会了运筹帷幄,学会了宽容,学会了理解,也学会了做人与处世。
课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前一个必不少的过程.”千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义.我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础.
通过这次设计,本人在多方面都有所提高。
通过这次模具设计,综合运用本专业所学课程的理论和生产实际知识进行一次冷冲压模具设计工作的实际训练从而培养和提高学生独立工作能力,巩固与扩充了冷冲压模具设计等课程所学的内容,掌握冷冲压模具设计的方法和步骤,掌握冷冲压模具设计的基本的模具技能懂得了怎样分析零件的工艺性,怎样确定工艺方案,了解了模具的基本结构,提高了计算能力,绘图能力,熟悉了规范和标准,同时各科相关的课程都有了全面的复习,独立思考的能力也有了提高。
同时感谢对我帮助过的同学们,谢谢你们对我的帮助和支持,让我感受到同学的友谊。
由于本人的设计能力有限,在设计过程中难免出现错误,恳请老师们多多指教,我十分乐意接受你们的批评与指正,本人将万分感谢。
参考文献
1.马春燕,段承先.微机原理与接口技术.北京:
电子工业出版社,2007
2.马春燕,段承先.微机原理与接口技术实验与学习指导.北京:
电子工业出版社,2007
3.
附录
DATASEGMENT;定义数据段
XDB?
ZERODB'STATEZERO',0DH,0AH,'$'
ONEDB'STATEONE',0DH,0AH,'$'
TWODB'STATETWO',0DH,0AH,'$'
THREEDB'STATETHREE',0DH,0AH,'$'
MESSDB'ENTERANYKEYCANEXITTODOS!
',0DH,0AH,'$'
DATAENDS;定义数据段结束
STACKSEGMENTSTACK;定义堆栈段
STADW50DUP(?
)
TOPEQULENGTHSTA
STACKENDS;定义堆栈段结束
CODESE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 霓虹灯 闪烁 控制系统