微机原理课设:霓虹灯闪烁控制系统_第1页
微机原理课设:霓虹灯闪烁控制系统_第2页
微机原理课设:霓虹灯闪烁控制系统_第3页
微机原理课设:霓虹灯闪烁控制系统_第4页
微机原理课设:霓虹灯闪烁控制系统_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、微机原理与接口技术课程设计题目: 霓虹灯闪烁控制系统 学 院: 信息工程学院 专 业: 自动化 班 级: 1301 姓 名: 刘洒 学 号: 2013001575 指导教师: 贾敏智 2016年 1 月 16 日目录目录 1第一章 绪论 .31.1 设计题目简介 .31.2 设计背景.31.3 设计功能.3第二章 硬件设计.42.1 实验装置简介.42.2 硬件电路设计.5 2.2.1 电路图.6 2.2.2 芯片介绍.7 2.2.2.2 与CPU的接口电路.7 2.2.2.3 引脚信号.8 2.2.2.4 8255A的工作方式及初始化编程9第三章 软件设计及程序分析103.1 程序清单.10

2、3.2 程序分析.10 3.2.1 主程序10 3.2.1.1 主程序功能.11 3.2.1.2 主程序分析.11 3.2.2 子程序13 3.2.2.1 STATE0 子程序.13 3.2.2.2 STATE1 子程序.14 3.2.2.3 STATE2 子程序.15 3.2.2.4 STATE3 子程序.16 3.2.2.5 延时子程序DELAY10.18 3.2.2.6 显示子程序DISP19第四章 实验总结.204.1 开关控制霓虹灯实验总结.204.2 实验心得.20参考文献.21附录.22摘要:霓虹灯是日常生活中最常见的灯饰,它装点了晚上,丰富了人们的生活。通过汇编语言,实现霓虹灯

3、的显示与闪烁,可以很方便的达到想要的效果。本设计是利用微机原理中的汇编语言,并且以8255A芯片为核心来控制LED从而实现霓虹灯的不同变化,并从该课题设计中巩固我们所学的知识和锻炼我们的动手能力,为以后工作中动手,动脑奠定一定的基础Abstract: the neon lamp in daily life is the most common lighting, decorate it in the evening, people live a rich life. Through the assembly language, to achieve the display of neon li

4、ghts and flashing, can be very convenient to achieve the desired effect. This design is the use of Microcomputer Principle and assembly language, using 8255A chip as the core to control the LED so as to realize the neon lights of different changes, and from the project design to consolidate what we

5、have learned and exercise our ability, for the future work to lay a solid foundation, brains.关键字:霓虹灯 程序 8255AKeywords: Neon lamp program 8255A第一章 绪论1.1 设计题目简介:设计霓虹灯闪烁控制系统,使外设的红、绿、黄3种颜色的发光二极管,在开关的控制或者在程序自动控制下,按照不同规律闪烁。要求:(1)要求发光二极管的亮、灭变化有一定的规律 (2)发光二极管变化规律要有多种状态1.2设计背景 “微机与接口技术”是一门实践性和实用性都很强的课程,学习的目的

6、在于应用。本课程设计是自动化专业学生的一次较全面的的设计训练,是配合“微机与接口技术”课堂教学的最后一个重要的实践教学环节,它将起到巩固课堂和书本上所学的知识、加强综合能力、提高系统设计水平、启发创新思想的作用。其基本目的是: (1) 培养理论联系实际的正确设计思路,训练综合运用已经学过的理论和实际知识去分析和解决实际问题的能力。 (2) 帮助学生全面消化已学的相关课程内容,深刻理解微机原理与接口技术课程的内涵,从硬件的角度掌握微机的组成、接口部件的结构和彼此之间的联系,从软件的角度理解和应用微机系统的运行机制。 (3) 进行基本技能训练。例如编程、上机、调试硬件和软件系统。 课程设计的任务是

7、使学生利用学校现有条件,自己动手设计完成一个典型的微机应用小系统。我们小组选定的课程设计题目是:霓虹灯 其设计目的主要为: (1) 进一步熟悉8255A并行接口的基本工作原理 (2) 运用CES-86通用微机实验装置,了解键盘的基本结构,学会编写程序. (3) 在熟悉了小键盘的基础上,加上LED发光二极管的使用设计出绚丽闪耀的霓虹灯.当然,虽然程序最后达到了预期控制要求,但是由于实际情况和理想情况存在差距,我知道还有很多地方有待改进,同时我还是个初学者,各方面肯定存在不足,如果老师发现了缺陷之处,请指出,我们一定会虚心接受。1.3 设计功能外设的8个发光二极管在2个开关K1,K2的控制下按照不

8、同的规律闪烁,同时在电脑屏幕上显示开关状态,二极管闪烁规律如下:(1)开关状态为K1关,K2关时,前四灯同时亮,熄灭后,接着后四个同时亮,并且在屏幕上显示“0 0 STATE ZERO”。(2)开关状态为K1关,K2开时,8灯依次点亮,并且在屏幕上显示“0 1 STATE OME”。(3)开关状态为K1开,K2关时,从两侧向内依次同时点亮一个灯,并且在屏幕上显示“0 1 STATE TWO”。(4)开关状态为K1开,K2开时,从中心向外依次同时点亮一灯,并且在屏幕上显示“0 1 STATE THYEE”。第二章 硬件设计2. 1 实验装置简介 本次课程设计所使用的主要设备是CES-86型通用实

9、验装置。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)

10、电路;L:可编程串行通信接口(8251A)电路M:十六进制键盘电路;N:七段数码显示电路;O:随机存储(RAM6116)电路;P:中继电路;Q:直流电源及控制电路;R:PC总线接口;S:与PC机连接的接口电路;S R O QCBAPDGNEMFL万 用 表KHJI“单板积木式”示意图 本课程设计使用了F(单板机IO地址电路),H(电平开关电路), I发光二极管显示电路, K(可编程并行通信接口即8255A电路)。2.2 硬件电路设计2.2.1 电路图设计电路图如下图所示,A口为输出,连接8个发光二极管,B口为输入,其中的PB0,PB1接开关K1,K2。开关的四个状态分别对应霓虹灯的四种变化状态

11、,做试验时,通过控制开关的断开与闭合,可以观察到霓虹灯的闪烁。同时CPU通过 B端口将K1,K2的信息读入,然后转换成ASCII码 其中端口A的地址为318H;端口B的地址为319H;控制字的地址为31BH2.2.2 芯片介绍本次课程设计中所使用的芯片8255A(如右图)是Intel公司采用CHMOS工艺生产的一种高性能通用可编程输入/输出并行接口芯片,可以方便地应用在Intel系列微处理器系统中。下面对8255A芯片进行简单介绍:2.2.2.1 8255A的内部结构 8255A是40引脚双列直插式芯片,片内有A,B,C三个8位I/O端口,可提供24条可编程的输入/输出端口线。它的内部结构由三

12、部分电路组成:与CPU的接口电路、内部控制逻辑电路和与外设连接的输入/输出接口电路。2.2.2.2 与CPU的接口电路(1)与CPU的接口电路由数据总线缓冲器和读/写控制逻辑组成。数据总线缓冲器是一个三态、双向、8位寄存器,8条数据线D7D0与系统数据总线连接,构成CPU与8255A之间信息传送的通道,CPU通过执行输出指令向8255A写入控制命令或往外设传送数据,通过执行输入指令读取外设输入的数据。读写控制逻辑电路用来接收CPU系统总线的读信号RD,写信号WR,片选择信号CS,端口选择信号A和复位信号RESET,用于控制8255A内部寄存器的读写操作和复位操作。(2)内部控制逻辑电路内部控制

13、逻辑包括A组控制与B组控制两部分。A组控制寄存器用来控制A口PA7PA0和C口的高四位PC7PC4;B组控制寄存器用来控制B口PB7PB0和低四位PC3PC0。它们接收CPU发送来的控制命令,对A,B,C3个端口的输入/输出方式进行控制。(3)输入输出接口电路 8255A片内有A,B,C3个8位并行端口,A口和B口分别有1个8位的数据输出锁存/缓冲器和1个8位数据输入锁存器,C口有一个8位数据输出锁存/缓冲器,用于存放CPU与外部设备交换的数据。 对于8255A的3个数据端口和1个控制端口,数据端口既可以写入数据也可以读出数据,控制端口只能写入命令而不能读出,读、写控制信号(RD,WR)和端口

14、选择信号(CS,A1,A0)的状态组合可以实现A,B,C3个端口和控制端口的读写操作。8255A的端口分配及读写功能见下表:CS WR RDA1 A0 功 能0 0 10 0数据写入A口0 0 10 1数据写入B口0 0 11 0 数据写入C口0 0 11 1命令写入控制寄存器0 1 00 0读出A口数据0 1 00 1读出B口数据0 1 01 0读出C口数据0 1 01 1非法操作2.2.2.3 引脚信号 8255A的引脚如下图示,分为数据线、地址线、读写控制线、输入/输出端口线和电源线。 D7D0:三态、双向数据线,与数据总线连接,用来传送数据。 CS:片选信号线,低电平有效时,芯片被选中

15、。 A1,A0:地址线,用来选择内部端口。 RD:读出信号线,低电平有效时,允许数据读出。WR:写入信号线,低电平有效时,允许数据写入。RESET:复位信号线,高电平有效时,将所有内部寄存器(包括控制寄存器)清0。PA7PA0:A口输入/输出信号线。PB7PB0:B口输入/输出信号线。PC7PC0:C口输入/输出信号线。VCC:+5V电源。GND:电源地线。2.2.2.4 8255A的工作方式及初始化编程8255A有三种工作方式:基本输入/输出方式,单向选通输入/输出方式和双向选通输入/输出方式。(1)方式0:基本输入输出方式方式0是8255A的基本输入输出方式,其基本特点是与外部传送数据时,

16、不需要设置专用的信号联络(应答)信号,可以无条件的直接进行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

17、口和B口工作在方式1。(3)方式2:双向选通输入/输出方式 方式2为双向选通输入输出方式,是方式1输入和输出的组合,即同一端口的信号线既可以输入又可以输出。由于C口的PC7PC3定义为A口工作在方式2时的联络信号线,因此只允许A口工作在方式2。 8255A的A,B,C三个端口的工作方式是在初始化编程时,通过向8255A的控制端口写入控制字来设定的。8255A由编程写入的控制字有两个:方式控制字和置位/复位控制字。方式控制字用于设置端口A,B,C的工作方式和数据传送方向;置位/复位控制字用于设置C口的PC7PC0中某一条口线PCi(i=07)的电平。两个控制字公用一个控制字公用一个端口地址,由控

18、制字的最高位最为区分这两个控制字的标志位。8255A工作方式控制字的格式如图所示:第三章 软件设计及程序分析3.1 程序清单:见附录3.2 程序分析 3.2.1 主程序3.2.1.1 主程序功能它所实现的功能是实现开关对发光二极管的亮灭状态控制,并将开关状态在屏幕上显示出来。在运行程序后按任意键发光二极管根据开关状态开始闪烁,同时在程序运行过程中按任意键可返回DOS。3.2.1.2 主程序分析流程图如下:结束初始化编程写入控制字开始读取开关状态在屏幕上显示开关状态开关状态显示提示信息开关状态装入ALAL=03HAL=01HAL=02HAL=00H返回DOS调用子程序DELAY0调用子程序DEL

19、AY1调用子程序DELAY2调用子程序DELAY3有键按下是是是是否否否否是主程序代码段START: MOV AX,DATA ;数据段装入初始地址 MOV DS,AX MOV ES,AX MOV AH,09H ;显示提示信息 MOV DX,OFFSET MESS INT 21H MOV DX,31BH ;控制字端口 MOV AL,10000010B ;控制字,B口输入A口输出 OUT DX,AL ;写入控制字 A: MOV DX,319H ;端口B IN AL,DX ;读开关状态 AND AL,03H ;保留B1,B0位,其他位置0 MOV X,AL ;将AL暂时装入X MOV CX,02H

20、B: MOV DL,AL ;AL装入DL以备子程序使用 CALL DISP ;调用显示子程序,显示PB2的状态 SHL AL,1 LOOP B ;循环2次,显示2个开关状态 MOV AL,X ;开关状态装入AL CMP AL,00H ;比较开关状态,00调用STATE0 JNZ M CALL STATE0 M: CMP AL,01H ;比较开关状态,01调用STATE1 JNZ N CALL STATE1 N: CMP AL,02H ;比较开关状态,10调用 STATE2 JNZ O CALL STATE2 O: CMP AL,03H ;比较开关状态,11调用STATE3 JNZ M CALL

21、 STATE33.2.2 子程序3.2.2.1 STATE0子程序: 前四灯同时亮,熄灭后,接着后四个同时亮流程图如下标号S子程序开始显示子程序信息在CX中置入循环次数为4次控制A口使前4个灯亮,后4个灯灭调用延时子程序控制A口使前4个灯灭,后4个灯亮CX=0是否调用延时子程序 STATE0 PROC NEAR MOV AH,09H MOV DX,OFFSET ZERO INT 21H MOV DX,318H MOV CX,04H ;端口A H: MOV AL,0FH OUT DX,AL CALL DELAY10 MOV AL,0F0H OUT DX,AL CALL DELAY10 LOOP

22、H JMP S RETSTATE0 ENDP3.2.2.2 STATE1子程序: 8灯依次点亮流程图如下子程序开始显示子程序信息在CX中置入循环次数为8次输出状态写入AL调用延时子程序CX=0标号S是否AL逻辑右移一位灯显示输出状态STATE1 PROC NEAR MOV AH,09H MOV DX,OFFSET ONE INT 21H MOV DX,318H ;端口A MOV CX,08H D: MOV AL,80H NOT AL ROR AL,1 OUT DX,AL CALL DELAY10 LOOP D JMP S RETSTATE1 ENDP3.2.2.3 STATE2子程序:从两侧向

23、内依次同时点亮一个灯在CX中置入循环次数为4次B7,B0灯亮,其余灯灭调用延时子程序B6,B1灯亮,其余灯灭调用延时子程序B4,B3灯亮,其余灯灭调用延时子程序B5,B2灯亮,其余灯灭调用延时子程序子程序开始显示子程序信息CX=0是标号S否STATE2 PROC NEAR MOV AH,09H MOV DX,OFFSET TWO INT 21H MOV CX,04H MOV DX,318H ;端口A E: MOV AL,01111110B OUT DX,AL CALL DELAY10 MOV AL,1011101B OUT DX,AL CALL DELAY10 MOV AL,11011011B

24、 OUT DX,AL CALL DELAY10 MOV AL,11100111B OUT DX,AL CALL DELAY10 LOOP E JMP S RETSTATE2 ENDP3.2.2.4 STATE3子程序: 从中心向外依次同时点亮一灯流程图如下在CX中置入循环次数为4次B7,B0灯亮,其余灯灭调用延时子程序B6,B1灯亮,其余灯灭调用延时子程序B4,B3灯亮,其余灯灭调用延时子程序B5,B2灯亮,其余灯灭调用延时子程序子程序开始显示子程序信息CX=0是标号S否STATE3 PROC NEAR MOV AH,09H MOV DX,OFFSET TWO INT 21H MOV CX,0

25、4H MOV DX,318H ;端口A F: MOV AL,11100111B OUT DX,AL CALL DELAY10 MOV AL,11011011B OUT DX,AL CALL DELAY10 MOV AL,10111101B OUT DX,AL CALL DELAY10 MOV AL,01111110B OUT DX,AL CALL DELAY10 LOOP F JMP S RETSTATE3 ENDP3.2.2.5 延时子程序DELAY10在CX中置入循环次数为0FH次子程序开始在AL中置入初始数0FFFFHAL AL-1AL=0CX=0是是否否子程序结束开始DELAY10 P

26、ROC NEAR PUSH AX PUSH CX MOV CX,0F0H UUU: MOV AX,0FFFFH VVV: DEC AX JNZ VVV LOOP UUU POP CX POP AX RETDELAY10 ENDP3.2.2.6 显示子程序DISP流程图如下在CX中置入循环次数为0FH次子程序开始在AL中置入初始数0FFFFHAL AL-1AL=0CX=0是是否否子程序结束开始DISP PROC NEAR PUSH AX PUSH CX AND DL,02H ;保留B1位 SHR DL,1 ADD DL,30H ;将显示信息转换成ASCII码 MOV AH,02H INT 21H

27、 ;在屏幕上显示B1位 MOV DL,20H INT 21H ;显示空格 MOV DL,20H INT 21H POP CX POP AX RETDISP ENDP第四章 实验总结4.1 开关控制霓虹灯实验总结(1).在设置霓虹灯闪烁控制系统中,先确定设置霓虹灯的大致思路,有一个主程序,四个分别控制红灯、绿灯、黄灯闪烁规律的子程序,还有按键返回DOS子程序;(2).通过设计霓虹灯闪烁规律控制系统深刻的理解了8255A的端口控制的方式以及输入输出状态。(3).在做课程设计的过程中熟悉了汇编语言、各种跳转指令、子程序调用、循环指令以及返回DOS指令更全面的了解了微机原理与接口技术的内容。4.2 实

28、验心得 两周的课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。在设计过程中,与同学分工设计,和同学们相互探讨,相互学习,相互监督。学会了合作,学会了运筹帷幄,学会了宽容,学会了理解,也学会了做人与处世。课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前一个必不少的过程”千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础 通过这次设计,本人在多方面都有所提高。通过这次模具

29、设计,综合运用本专业所学课程的理论和生产实际知识进行一次冷冲压模具设计工作的实际训练从而培养和提高学生独立工作能力,巩固与扩充了冷冲压模具设计等课程所学的内容,掌握冷冲压模具设计的方法和步骤,掌握冷冲压模具设计的基本的模具技能懂得了怎样分析零件的工艺性,怎样确定工艺方案,了解了模具的基本结构,提高了计算能力,绘图能力,熟悉了规范和标准,同时各科相关的课程都有了全面的复习,独立思考的能力也有了提高。同时感谢对我帮助过的同学们,谢谢你们对我的帮助和支持,让我感受到同学的友谊。由于本人的设计能力有限,在设计过程中难免出现错误,恳请老师们多多指教,我十分乐意接受你们的批评与指正,本人将万分感谢。参考文

30、献1. 马春燕,段承先.微机原理与接口技术.北京:电子工业出版社,20072. 马春燕,段承先.微机原理与接口技术实验与学习指导.北京:电子工业出版社,20073 附录DATASEGMENT ;定义数据段 X DB ? ZERO DB 'STATE ZERO',0DH,0AH,'$'ONE DB 'STATE ONE',0DH,0AH,'$'TWO DB 'STATE TWO',0DH,0AH,'$'THREE DB ' STATE THREE',0DH,0AH,'$'

31、;MESS DB 'ENTER ANY KEY CAN EXIT TO DOS!',0DH,0AH,'$' DATA ENDS ;定义数据段结束STACK SEGMENT STACK ;定义堆栈段STA DW 50 DUP(?)TOP EQU LENGTH STASTACK ENDS ;定义堆栈段结束CODE SEGMENT ;定义代码段MAIN PROC FAR ;主程序ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACKSTART: MOV AX,DATA ;数据段装入初始地址 MOV DS,AX MOV ES,AX MOV AH,

32、09H ;显示提示信息 MOV DX,OFFSET MESS INT 21H MOV DX,31BH ;控制字端口 MOV AL,10000010B ;控制字,B口输入A口输出 OUT DX,AL ;写入控制字 A: MOV DX,319H ;端口B IN AL,DX ;读开关状态 AND AL,03H ;保留B1,B0位,其他位置0 MOV X,AL ;将AL暂时装入X MOV CX,02H B: MOV DL,AL ;AL装入DL以备子程序使用 CALL DISP ;调用显示子程序,显示PB2的状态 SHL AL,1 LOOP B ;循环2次,显示2个开关状态 MOV AL,X ;开关状态

33、装入AL CMP AL,00H ;比较开关状态,00调用STATE0 JNZ M CALL STATE0 M: CMP AL,01H ;比较开关状态,01调用STATE1 JNZ N CALL STATE1 N: CMP AL,02H ;比较开关状态,10调用 STATE2 JNZ O CALL STATE2 O: CMP AL,03H ;比较开关状态,11调用STATE3 JNZ M CALL STATE3STATE0 PROC NEAR ;前四灯同时亮,熄灭后,接着后四个同时亮 MOV AH,09H MOV DX,OFFSET ZERO INT 21H MOV DX,318H MOV CX,04H ;端口A H: MOV AL,0FH OUT DX,AL CALL DELAY10 MOV AL,0F0H OUT DX,AL CALL DELAY10 LOOP H JMP S RETSTATE0 ENDPSTATE1 PROC NEAR ;8灯依次点亮 MOV AH,09H MOV DX,OFFSET ONE INT 21H MOV DX,318H ;端口A MOV CX,08H D: MOV AL,80H NOT AL ROR AL,1 OUT DX,AL CALL DE

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论