中南大学 微机报告_开关控制灯课件_第1页
中南大学 微机报告_开关控制灯课件_第2页
中南大学 微机报告_开关控制灯课件_第3页
中南大学 微机报告_开关控制灯课件_第4页
中南大学 微机报告_开关控制灯课件_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、报告名称: 开关控制灯设计 姓 名: 学 号: 专业班级: 指导老师: 彭春华 完成日期: 2015年12月 目录一、课程设计的任务、性质与目的2二、课程设计的基本要求2三、开关控制灯的主要功能、作用及主要性能指标3四、开关控制灯的总体设计34.1芯片选择、介绍及端口选择34.2硬件原理图84.3实验内容8五、实验结果9六、实验总结106.1实验中遇到的问题106.2实验心得体会11七、源程序11八、参考文献14一、课程设计的任务、性质与目的随着科学技术迅速发展,理工科大学生不仅需要掌握计算机方面的基本理论知识,而且还需要掌握基本的实验技能及一定的科学研究能力。通过课程设计,使学生巩固和加深微

2、型计算机原理理论知识,通过实践进一步加强学生独立分析问题和解决问题的能力、综合设计及创新能力的培养,同时注意培养学生实事求是、严肃认真的科学作风和良好的实验习惯,为今后工作打下良好的基础。计算机原理与接口课程课程设计结合教学内容,从应用的角度出发,进行三类课程设计,分别分为:汇编语言程序设计、微机标准接口课程设计和接口技术课程设计。二、课程设计的基本要求1熟练掌握汇编语言的程序设计;2熟练掌握各种编程接口片的编程应用3通过实验方法掌握各种电路芯综合分析与设计方法。三、开关控制灯的主要功能、作用及主要性能指标本课程设计任务是设计用5个开关来控制八个灯,运用8086和8255等设计一个由五个开关三

3、种状态控制八个不同灯的亮暗状态的系统。可用8255与8086的连接来实现此功能。当没有开关打开时,8个灯不亮;当打开开关K1时,8个灯从右往左逐个亮,表现为流水灯;当打开开关K2时,8个灯从左到右逐个亮,表现为流水灯;当打开开关K3时,8个灯全部一闪一灭;当打开开关K4时,从外到内依次闪;当打开开关K5时,位置为奇数的灯先亮,然后在偶数灯一起亮,表现为先奇数位灯和偶数位灯轮流闪。四、开关控制灯的总体设计4.1芯片选择、介绍及端口选择1.采用8255A实现对信号灯的控制(PB0PB7用于连接LED管,PC0-PC7做开关控制);2.8255A 的端口地址为:端口A-70H、端口B-71H、端口C

4、-72H、控制端口-73H8255A芯片介绍:并行接口是以数据的字节为单位与I/O 设备或被控制对象之间传递信息。CPU 和接口之间的数据传送总是并行的,即可以同时传递8 位、16 位、32 位等。8255 可编程外围接口芯片是Intel 公司生产的通用并行I/O 接口芯片,它具有A、B、C 三个并行接口,用+5V 单电源供电,能在以下三种方式下工作:方式0-基本输入/出方式、方式1-选通输入/出方式、方式2-双向选通工作方式。8255 的内部结构及引脚如图1 所示,8255 工作方式控制字和C 口按位置位/复位控制字格式如图2所示。8255是Intel公司生产的可编程并行I/O接口芯片,有3

5、个8位并行I/O口。具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。 其各口功能可由软件选择,使用灵活,通用性强。8255可作为单片机与多种外设连接时的中间接口电路。 8255的内部结构以及引脚: 1)与CPU连接部分 根据定义,8255能并行传送8位数据,所以其数据线为8根D0D7。由于8255具有3个通道A、B、C,所以只要两根地址线就能寻址A、B、C口及控制寄存器,故地址线为两根A0A1。此外CPU要对8255进行读、写与片选操作,所以控制线为片选、复位、读、写信号。各信号的引脚编号如下: (1)数据总线DB:编号为D0D7,用于8255与CPU传送8位数据。 (2)地址总线A

6、B:编号为A0A1,用于选择A、B、C口与控制寄存器。 (3)控制总线CB:片选信号、复位信号RST、写信号、读信号。当CPU要对8255进行读、写操作时,必须先向8255发片选信号选中8255芯片,然后发读信号或写信号对8255进行读或写数据的操作。 在此次实验中,因为试验箱很多芯片和CPU的连线都在内部封装好,所以只需要将8255的片选信号与CPU部分的输出Y连接即可,本次实验我选择的是与Y7连接。其中,读/写控制逻辑电路用来接收CPU系统总线的读信号RD,写信号WR,片选择信号CS,端口选择信号A1,10和复位信号RESET,用于控制8255A内部寄存器的读/写操作和复位操作,这些引脚都

7、是实验箱内部封装好了的,不需要自己再接。2)与外设接口部分 根据定义,8255有3个通道A、B、C与外设连接,每个通道又有8根线与外设连接,所以8255可以用24根线与外设连接,若进行开关量控制,则8255可同时控制24路开关。各通道的引脚编号如下: (1)A口:编号为PA0PA7,用于8255向外设输入输出8位并行数据。 (2)B口:编号为PB0PB7,用于8255向外设输入输出8位并行数据。 (3)C口:编号为PC0PC7,用于8255向外设输入输出8位并行数据,当8255工作于应答I/O方式时,C口用于应答信号的通信。此次实验我选C口的C0C4作为开关的输入,B0B7作为输出接到发光二极

8、管的L0L7。对于8255A芯片来说,它有A,B,C3个8位并行端口,A口和B口分别有1个8位的数据输出锁存/缓冲器和1个8位数据输入锁存器,C口有1个8位数据输出锁存/缓冲器和1个8位数据输入缓冲器,用于存放CPU与外部设备交换的数据。3)控制器 8255将3个通道分为两组,即PA0PA7与PC4PC7组成A组,PB0PB7与PC0PC3组成B组。如图7.5所示,相应的控制器也分为A组控制器与B组控制器,各组控制器的作用如下:(1)A组控制器:控制A口与上C口的输入与输出。(2)B组控制器:控制B口与下C口的输入与输出。引脚功能: RESET:复位输入线,当该输入端处于高电平时,所有内部寄存

9、器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。CS:芯片选择信号线,当这个输入引脚为低电平时,即/CS=0时,表示芯片被选中,允许8255与CPU进行通讯;/CS=1时,8255无法与CPU做数据传输.RD:读信号线,当这个输入引脚为低电平时,即/RD=0且/CS=0时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。 WR:写入信号,当这个输入引脚为低电平时,即/WR=0且/CS=0时,允许CPU将数据或控制字写入8255。D0D7:三态双向数据总线,8255与CPU数据传送的通道,当CPU 执行输入输出指令时,通过它实现8位数据的读/写操

10、作,控制字和状态信息也通过数据总线传送。8255具有3个相互独立的输入/输出通道端口,用+5V单电源供电,能在一下三种方式下工作:方式0基本输入输出方式;方式1选通输入/出方式;方式三双向选通输入/输出方式;PA0PA7:端口A输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入锁存器。 工作于三种方式中的任何一种;PB0PB7:端口B输入输出线,一个8位的I/O锁存器, 一个8位的输入输出缓冲器。 不能工作于方式二;PC0PC7:端口C输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入缓冲器。端口C可以通过工作方式设定而分成2个4位的端口, 每个4位的端口包含一

11、个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。不能工作于方式一或二。 8255A的控制字:8255A方式选择控制字端口C按位置1/复0控制4.2硬件原理图超想3000TB综合实验PC机4.3实验内容输入:以K1K5经8255输入到PC机。输出:从8255输出到LED显示。要求:程序循环执行,K动作则LED有相应动作。连线之前先检测实验箱的通讯口状态;接线方法如下:PC0-PC7接K1-K8; PB0-PB7接L0-L7;流程图:开始初始化扫描开关状态把开关状态经8086处理经B口输出至灯五、实验结果由于一直忙于做实验,而且实验的硬件实验箱比较紧缺,在最后做

12、完检查时,还有其他同学需要使用实验箱,没有来得及拍下实验结果,不过,当时是直接演示给老师看了的,所以现在就仅用语言来描述一下实验结果!结果如下:当没有开关打开时,8个灯不亮;当打开开关K1时,8个灯从右往左逐个亮,表现为流水灯;当打开开关K2时,8个灯从左到右逐个亮,表现为流水灯;当打开开关K3时,8个灯全部一闪一灭;当打开开关K4时,从外到内依次闪;当打开开关K5时,位置为奇数的灯先亮,然后在偶数灯一起亮,表现为先奇数位灯和偶数位灯轮流闪。六、实验总结6.1实验中遇到的问题A硬件问题1)硬件试验箱很多有问题,特别是和PC机端口连接总是出错误,每次都要拔USB接口,十分的麻烦,但是也没有找到真

13、正的原因,可能是接口接触不良引起的。B软件编译问题1) 在DVCC里编译时,在emu8086中运行没有错误的程序可是放这里总是出错误,后来发现原来我是连接后就直接运行,没有进行编译和调试步骤,导致源程序没有读进去,或者是读进去了DVCC里其他的程序,所以运行不出来。2) 在执行程序时,发光二极管只能实现第一次开关所对应的闪烁反应,比如说,我打开开关K4,它就会从外向内闪,但当我再打开开关K3时,它没有出现预期的8个灯一闪一灭,而是继续从外向内闪,经过仔细的琢磨,用单步运行去一步步的执行程序,发现原来是我程序中的状态循环程序最后没有跳回IOLED,跳回的是它本身,就导致程序跳不出循环,不能检测到

14、开关是否已经改变状态,所以就会维持最初的状态。将这点改了后,它就能实现我所要得功能了。6.2实验心得体会本次课程设计,综合运用微机原理与接口技术课程和汇编语言技术的理论和生产实际知识去分析和解决具体问题,并使所学知识得到进一步巩固、深化和发展。通过这次的课程设计,使我懂得了理论与实践的结合,只有理论是远远不够的,并且每个同学所会的东西都不一样,我们要善于挖掘别人的知识供自己所用,这就是一种团体合作,在你不懂的方面,或许他人能够解释,这样,我们通过不断的询问,解释,然后自我思考,最后做成一份自己满意的课程设计。总之,这次课程设计对于我们有很大的帮助,通过课程设计,我更加深入地理解了,微机原理课程

15、上讲到的各种芯片的功能,以及引脚的作用,同时加深了对于主要芯片的应用的认识,同时在试验室的环境里熟悉了汇编程序的编写过程和运行过程,最后还提高了自己的动手能力。感谢老师的悉心指导。七、源程序CODE SEGMENTASSUME CS:CODEIOCONPT EQU 0073HIOCPTEQU 0072HIOBPTEQU 0071HSTART: MOV CX,8FFFHDELAY0:LOOP DELAY0 MOV AL,89HMOV DX,IOCONPTOUT DX,ALNOPNOPNOPIOLED: MOV DX,IOCPTIN AL,DX CMP AL,00H JE LOOP0 CMP AL

16、,01H JE LOOP1 CMP AL,02H JE LOOP2 CMP AL,04H JE LOOP3 CMP AL,08H JE LOOP4 CMP AL,10H JE LOOP5 JMP IOLED LOOP0: MOV CX,8 IN AL,IOBPT AND AL,00H OUT IOBPT,AL PUSH CX MOV CX,0FFFFHDELAY6:LOOP DELAY6 POP CX JMP EXIT LOOP1: MOV CX,8 MOV AL,01HLOOP11: MOV DX,IOBPT OUT DX,AL ROL AL,1 PUSH CX MOV CX,0FFFFHD

17、ELAY1:LOOP DELAY1 POP CX LOOP LOOP11 JMP EXIT LOOP2: MOV AL,80H MOV CX,8LOOP22: MOV DX,IOBPT OUT DX,AL ROR AL,1 PUSH CX MOV CX,0FFFFHDELAY2:LOOP DELAY2 POP CX LOOP LOOP22 JMP EXITLOOP3: MOV CX,8 MOV AL,00HLOOP33:NOT AL MOV DX,IOBPT OUT DX,AL PUSH CX MOV CX,0FFFFHDELAY3:LOOP DELAY3 POP CX LOOP LOOP33 JMP EXITLOOP4: MOV CX,8 MOV AL,81HLOOP44:MOV DX,IOBPT OUT DX,AL MOV AH,AL AND AL,0F0H ROR AL,1 AND AH,0FH ROL AH,1 OR AL,AH PUSH CX MOV CX,0FFFFHDE

温馨提示

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

评论

0/150

提交评论