中南大学微机报告开关控制灯报告.docx
- 文档编号:27941511
- 上传时间:2023-07-06
- 格式:DOCX
- 页数:14
- 大小:220.59KB
中南大学微机报告开关控制灯报告.docx
《中南大学微机报告开关控制灯报告.docx》由会员分享,可在线阅读,更多相关《中南大学微机报告开关控制灯报告.docx(14页珍藏版)》请在冰豆网上搜索。
中南大学微机报告开关控制灯报告
报告名称:
开关控制灯设计
姓名:
学号:
专业班级:
指导老师:
彭春华
完成日期:
2015年12月
一、课程设计的任务、性质与目的
随着科学技术迅速发展,理工科大学生不仅需要掌握计算机方面的基本理论知识,而且还需要掌握基本的实验技能及一定的科学研究能力。
通过课程设计,使学生巩固和加深微型计算机原理理论知识,通过实践进一步加强学生独立分析问题和解决问题的能力、综合设计及创新能力的培养,同时注意培养学生实事求是、严肃认真的科学作风和良好的实验习惯,为今后工作打下良好的基础。
计算机原理与接口课程课程设计结合教学内容,从应用的角度出发,进行三类课程设计,分别分为:
汇编语言程序设计、微机标准接口课程设计和接口技术课程设计。
二、课程设计的基本要求
1.熟练掌握汇编语言的程序设计;
2.熟练掌握各种编程接口片的编程应用
3.通过实验方法掌握各种电路芯综合分析与设计方法。
三、开关控制灯的主要功能、作用及主要性能指标
本课程设计任务是设计用5个开关来控制八个灯,运用8086和8255等设计一个由五个开关三种状态控制八个不同灯的亮暗状态的系统。
可用8255与8086的连接来实现此功能。
当没有开关打开时,8个灯不亮;
当打开开关K1时,8个灯从右往左逐个亮,表现为流水灯;
当打开开关K2时,8个灯从左到右逐个亮,表现为流水灯;
当打开开关K3时,8个灯全部一闪一灭;
当打开开关K4时,从外到内依次闪;
当打开开关K5时,位置为奇数的灯先亮,然后在偶数灯一起亮,表现为先奇数位灯和偶数位灯轮流闪。
四、开关控制灯的总体设计
4.1芯片选择、介绍及端口选择
1.采用8255A实现对信号灯的控制(PB0—PB7用于连接LED管,PC0-PC7做开关控制);
2.8255A的端口地址为:
端口A-70H、端口B-71H、端口C-72H、控制端口-73H
8255A芯片介绍:
并行接口是以数据的字节为单位与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个8位并行I/O口。
具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。
其各口功能可由软件选择,使用灵活,通用性强。
8255可作为单片机与多种外设连接时的中间接口电路。
8255的内部结构以及引脚:
1)与CPU连接部分
根据定义,8255能并行传送8位数据,所以其数据线为8根D0~D7。
由于8255具有3个通道A、B、C,所以只要两根地址线就能寻址A、B、C口及控制寄存器,故地址线为两根A0~A1。
此外CPU要对8255进行读、写与片选操作,所以控制线为片选、复位、读、写信号。
各信号的引脚编号如下:
(1)数据总线DB:
编号为D0~D7,用于8255与CPU传送8位数据。
(2)地址总线AB:
编号为A0~A1,用于选择A、B、C口与控制寄存器。
(3)控制总线CB:
片选信号、复位信号RST、写信号、读信号。
当CPU要对8255进行读、写操作时,必须先向8255发片选信号选中8255芯片,然后发读信号或写信号对8255进行读或写数据的操作。
在此次实验中,因为试验箱很多芯片和CPU的连线都在内部封装好,所以只需要将8255的片选信号与CPU部分的输出Y连接即可,本次实验我选择的是与Y7连接。
其中,读/写控制逻辑电路用来接收CPU系统总线的读信号RD,写信号WR,片选择信号CS,端口选择信号A1,10和复位信号RESET,用于控制8255A内部寄存器的读/写操作和复位操作,这些引脚都是实验箱内部封装好了的,不需要自己再接。
2)与外设接口部分
根据定义,8255有3个通道A、B、C与外设连接,每个通道又有8根线与外设连接,所以8255可以用24根线与外设连接,若进行开关量控制,则8255可同时控制24路开关。
各通道的引脚编号如下:
(1)A口:
编号为PA0~PA7,用于8255向外设输入输出8位并行数据。
(2)B口:
编号为PB0~PB7,用于8255向外设输入输出8位并行数据。
(3)C口:
编号为PC0~PC7,用于8255向外设输入输出8位并行数据,当8255工作于应答I/O方式时,C口用于应答信号的通信。
此次实验我选C口的C0~C4作为开关的输入,B0~B7作为输出接到发光二极管的L0~L7。
对于8255A芯片来说,它有A,B,C3个8位并行端口,A口和B口分别有1个8位的数据输出锁存/缓冲器和1个8位数据输入锁存器,C口有1个8位数据输出锁存/缓冲器和1个8位数据输入缓冲器,用于存放CPU与外部设备交换的数据。
3)控制器
8255将3个通道分为两组,即PA0~PA7与PC4~PC7组成A组,PB0~PB7与PC0~PC3组成B组。
如图7.5所示,相应的控制器也分为A组控制器与B组控制器,各组控制器的作用如下:
(1)A组控制器:
控制A口与上C口的输入与输出。
(2)B组控制器:
控制B口与下C口的输入与输出。
引脚功能:
RESET:
复位输入线,当该输入端处于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有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。
D0~D7:
三态双向数据总线,8255与CPU数据传送的通道,当CPU执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。
8255具有3个相互独立的输入/输出通道端口,用+5V单电源供电,能在一下三种方式下工作:
方式0————基本输入输出方式;方式1————选通输入/出方式;方式三————双向选通输入/输出方式;
PA0~PA7:
端口A输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入锁存器。
工作于三种方式中的任何一种;
PB0~PB7:
端口B输入输出线,一个8位的I/O锁存器,一个8位的输入输出缓冲器。
不能工作于方式二;
PC0~PC7:
端口C输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入缓冲器。
端口C可以通过工作方式设定而分成2个4位的端口,每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。
'不能工作于方式一或二。
8255A的控制字:
8255A方式选择控制字
端口C按位置1/复0控制
4.2硬件原理图
4.3实验内容
输入:
以K1~K5经8255输入到PC机。
输出:
从8255输出到LED显示。
要求:
程序循环执行,K动作则LED有相应动作。
连线之前先检测实验箱的通讯口状态;
接线方法如下:
PC0-PC7接K1-K8;PB0-PB7接L0-L7;
流程图:
五、实验结果
由于一直忙于做实验,而且实验的硬件实验箱比较紧缺,在最后做完检查时,还有其他同学需要使用实验箱,没有来得及拍下实验结果,不过,当时是直接演示给老师看了的,所以现在就仅用语言来描述一下实验结果!
结果如下:
当没有开关打开时,8个灯不亮;
当打开开关K1时,8个灯从右往左逐个亮,表现为流水灯;
当打开开关K2时,8个灯从左到右逐个亮,表现为流水灯;
当打开开关K3时,8个灯全部一闪一灭;
当打开开关K4时,从外到内依次闪;
当打开开关K5时,位置为奇数的灯先亮,然后在偶数灯一起亮,表现为先奇数位灯和偶数位灯轮流闪。
六、实验总结
6.1实验中遇到的问题
A硬件问题
1)硬件试验箱很多有问题,特别是和PC机端口连接总是出错误,每次都要拔USB接口,十分的麻烦,但是也没有找到真正的原因,可能是接口接触不良引起的。
B软件编译问题
1)在DVCC里编译时,在emu8086中运行没有错误的程序可是放这里总是出错误,后来发现原来我是连接后就直接运行,没有进行编译和调试步骤,导致源程序没有读进去,或者是读进去了DVCC里其他的程序,所以运行不出来。
2)在执行程序时,发光二极管只能实现第一次开关所对应的闪烁反应,比如说,我打开开关K4,它就会从外向内闪,但当我再打开开关K3时,它没有出现预期的8个灯一闪一灭,而是继续从外向内闪,经过仔细的琢磨,用单步运行去一步步的执行程序,发现原来是我程序中的状态循环程序最后没有跳回IOLED,跳回的是它本身,就导致程序跳不出循环,不能检测到开关是否已经改变状态,所以就会维持最初的状态。
将这点改了后,它就能实现我所要得功能了。
6.2实验心得体会
本次课程设计,综合运用微机原理与接口技术课程和汇编语言技术的理论和生产实际知识去分析和解决具体问题,并使所学知识得到进一步巩固、深化和发展。
通过这次的课程设计,使我懂得了理论与实践的结合,只有理论是远远不够的,并且每个同学所会的东西都不一样,我们要善于挖掘别人的知识供自己所用,这就是一种团体合作,在你不懂的方面,或许他人能够解释,这样,我们通过不断的询问,解释,然后自我思考,最后做成一份自己满意的课程设计。
总之,这次课程设计对于我们有很大的帮助,通过课程设计,我更加深入地理解了,微机原理课程上讲到的各种芯片的功能,以及引脚的作用,同时加深了对于主要芯片的应用的认识,同时在试验室的环境里熟悉了汇编程序的编写过程和运行过程,最后还提高了自己的动手能力。
感谢老师的悉心指导。
七、源程序
CODESEGMENT
ASSUMECS:
CODE
IOCONPTEQU0073H
IOCPTEQU0072H
IOBPTEQU0071H
START:
MOVCX,8FFFH
DELAY0:
LOOPDELAY0
MOVAL,89H
MOVDX,IOCONPT
OUTDX,AL
NOP
NOP
NOP
IOLED:
MOVDX,IOCPT
INAL,DX
CMPAL,00H
JELOOP0
CMPAL,01H
JELOOP1
CMPAL,02H
JELOOP2
CMPAL,04H
JELOOP3
CMPAL,08H
JELOOP4
CMPAL,10H
JELOOP5
JMPIOLED
LOOP0:
MOVCX,8
INAL,IOBPT
ANDAL,00H
OUTIOBPT,AL
PUSHCX
MOVCX,0FFFFH
DELAY6:
LOOPDELAY6
POPCX
JMPEXIT
LOOP1:
MOVCX,8
MOVAL,01H
LOOP11:
MOVDX,IOBPT
OUTDX,AL
ROLAL,1
PUSHCX
MOVCX,0FFFFH
DELAY1:
LOOPDELAY1
POPCX
LOOPLOOP11
JMPEXIT
LOOP2:
MOVAL,80H
MOVCX,8
LOOP22:
MOVDX,IOBPT
OUTDX,AL
RORAL,1
PUSHCX
MOVCX,0FFFFH
DELAY2:
LOOPDELAY2
POPCX
LOOPLOOP22
JMPEXIT
LOOP3:
MOVCX,8
MOVAL,00H
LOOP33:
NOTAL
MOVDX,IOBPT
OUTDX,AL
PUSHCX
MOVCX,0FFFFH
DELAY3:
LOOPDELAY3
POPCX
LOOPLOOP33
JMPEXIT
LOOP4:
MOVCX,8
MOVAL,81H
LOOP44:
MOVDX,IOBPT
OUTDX,AL
MOVAH,AL
ANDAL,0F0H
RORAL,1
ANDAH,0FH
ROLAH,1
ORAL,AH
PUSHCX
MOVCX,0FFFFH
DELAY4:
LOOPDELAY4
POPCX
LOOPLOOP44
JMPEXIT
LOOP5:
MOVCX,8
MOVAL,55H
LOOP55:
MOVDX,IOBPT
OUTDX,AL
NOTAL
PUSHCX
MOVCX,0FFFFH
DELAY5:
LOOPDELAY5
POPCX
LOOPLOOP55
JMPEXIT
EXIT:
MOVCX,0FFFFH
DELAY:
LOOPDELAY
JMPIOLED
CODEENDS
ENDSTART
八、参考文献
1.《微机原理与接口技术》,梁建武,中国水利水电出版社,2010;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中南 大学 微机 报告 开关 控制