一.课程设计的目的和任务 1.设计目的
1、 了解和掌握8086,8255接口芯片以及LED灯的原理和功能。 2、 能用这些接口芯片构建一个简单的系统控制对象。 3、 掌握接口电路的综合设计与使用。
4、 通过自己动手,进一步了解计算机得工作原理,接口技术,提高计算机硬件,软件综合应用能力,即对微机原理,接口技术,汇编语言程序设计进行综合训练。
2.设计任务
1、选用8086和适当接口芯片完成相应的功能。 2、用LED灯显示电子锁的当前状态。 3、画出详细的硬件连接图。
4、给出程序设计思路、画出软件流程图。 5、给出所有程序清单并加上必要注释。
二、设计内容
密码锁在开启之后需要置一个初始密码,之后输入密码并按确认键,在输入密码正确的条件下输出开锁电平,此时绿灯亮表示密码锁开启。当输入密码错误时,红灯亮表示密码锁关闭状态。可以继续输入密码并确认输入密码,直至密码正确则开启。在密码输入正确之后还可以实现对密码的修改,修改密码之后按下确认修改密码键,修改成功。
三、方案选择及原理
通过8255的24个接口实现密码输入,密码锁开关显示输出的功能。应用8255的A口的8位作为密码输入的8位,通过8个SWITCH开关控制,B口的其中两位分别接绿和红的LED灯作为输出表示密码锁的开关(绿灯亮表示密码正确开锁,红灯亮表示密码错误闭锁)。C口的作为输入,使用其中两位分别接两个BUTTON开关,一个作为密码修改确认开关,一个作为密码输入确认开关。
四、所用器件
CPU8086,地址锁存器273,译码器154,并行接口8255A,SWITCH开关,BUTTON 开关,LED灯。
主要器件简介
CPU8086
8086是Inter系列的16位微处理器,芯片上有2.9万个晶体管,采用 HMOS工 艺制造,用单一的+5V电源,时钟频率为5MHz~10MHz。8086有16根数据线和20根地址线,它既能处理16位数据,也能处理8位数据。可寻址的内存空间为1MB。
并行接口
8255
Intel 8086/8088 系列的可编程外设接口电路(Programmable Peripheral Interface)简称 PPI,型号为8255(改进型为8255A及8255A-5),具有24条输入/输出引脚、可编程的通用并行输入/输出接口电路。它是一片使用单一+5V电源的40脚双列直插式大规模集成电路。8255A的通用性强,使用灵活,通过它CPU可直接与
外设相连接。
五、原理图
8255A口与SWITCH输入开关的连接:
整体电路图:
六.软件程序流程图:
七.汇编源程序:
aport EQU 600H ;8255各端口地址 bport EQU 602H cport EQU 604H ct EQU 606H
CODE SEGMENT ASSUME CS:CODE
START: MOV AX,10011001B MOV DX,ct
OUT DX,AX ;8255初始化
MOV AL,11111111B MOV DX,bport
OUT DX,AL ;先将B口都置1,使灯全灭
INPUTPC0:MOV DX,cport ;检测PC0的接口 IN AL,DX
AND AL,00000001B CMP AL,00000001B JZ INPUTPC0
MOV DX,aport ;将A口信息读入并存至BL作为修改的密码 IN AL,DX MOV BL,AL
INPUTPC1:MOV DX,cport ;检测PC1的接口 IN AL,DX
AND AL,00000100B CMP AL,00000100B JZ INPUTPC1
A1: MOV DX,aport IN AL,DX
CMP AL,BL ;比较输入密码与修改的密码
JZ GREEN ;相等则跳转绿灯亮,表示开锁
RED: MOV AL,11110111B ;红灯亮,表示错误密码 MOV DX,bport OUT DX,AL
JMP INPUTPC1 ;密码错,继续检测输入密码
GREEN: MOV AL,11111110B ;绿灯亮,开锁 MOV DX,bport OUT DX,AL
JMP INPUTPC0 ;检测PC0口修改密码
CODE ENDS END START
八.心得体会
通过本次的课程设计,我进一步掌握了使用Proteus软件设计电路图的能力,并且对上课中所学到的芯片的功能与工作方式有了更进一步的认识。每次遇到问题时,我是首先尝试着自己去解决,查书、上网找资料,总之竭尽全力自己独自去搞懂难题。实在没有办法时,我会找我的组员,我们一起讨论研究,同时也会向一些掌握的比较好的同学请教。在设计过程中,我发现我对上课中讲述的知识还有很大的欠缺,对Proteus软件的使用还不是很熟练,造成连线还有查错的进度很慢,在不断地练习之中终于对这款软件有了比较熟练的操作,觉得这是很好的仿真软件,它应该还可以用来进行除了8086以外,其他硬件电路的仿真。还有就是程序的编写与调试,在一开始编写程序时是没有程序流程图的,编写起来发现逻辑跳变很困难,感觉很乱,程序跳来跳去,最后混作一团,后来借鉴别人的方法,先画出一个流程图,再根据流程图写程序,很快就完成了程序的编写和调试,并达到预期目标。在这次的课程设计中,我发现团队合作还是需要的,当你发现你钻进一个牛角尖,组员的一句话就可能让你顿悟,从而把事情做好,一个人的力量还是有限的。通过这次课程设计,我发现微机原理这门课包含着太多的知识,涉及面很广,应用性很强,需要我们不断地学习实践。通过不断的实践才能更有效地掌握它。
九.参考文献
陈继红,徐晨.微机原理及应用—第2版. 北京 高等教育出版社.
一.课程设计的目的和任务 1.设计目的
1、 了解和掌握8086,8255接口芯片以及LED灯的原理和功能。 2、 能用这些接口芯片构建一个简单的系统控制对象。 3、 掌握接口电路的综合设计与使用。
4、 通过自己动手,进一步了解计算机得工作原理,接口技术,提高计算机硬件,软件综合应用能力,即对微机原理,接口技术,汇编语言程序设计进行综合训练。
2.设计任务
1、选用8086和适当接口芯片完成相应的功能。 2、用LED灯显示电子锁的当前状态。 3、画出详细的硬件连接图。
4、给出程序设计思路、画出软件流程图。 5、给出所有程序清单并加上必要注释。
二、设计内容
密码锁在开启之后需要置一个初始密码,之后输入密码并按确认键,在输入密码正确的条件下输出开锁电平,此时绿灯亮表示密码锁开启。当输入密码错误时,红灯亮表示密码锁关闭状态。可以继续输入密码并确认输入密码,直至密码正确则开启。在密码输入正确之后还可以实现对密码的修改,修改密码之后按下确认修改密码键,修改成功。
三、方案选择及原理
通过8255的24个接口实现密码输入,密码锁开关显示输出的功能。应用8255的A口的8位作为密码输入的8位,通过8个SWITCH开关控制,B口的其中两位分别接绿和红的LED灯作为输出表示密码锁的开关(绿灯亮表示密码正确开锁,红灯亮表示密码错误闭锁)。C口的作为输入,使用其中两位分别接两个BUTTON开关,一个作为密码修改确认开关,一个作为密码输入确认开关。
四、所用器件
CPU8086,地址锁存器273,译码器154,并行接口8255A,SWITCH开关,BUTTON 开关,LED灯。
主要器件简介
CPU8086
8086是Inter系列的16位微处理器,芯片上有2.9万个晶体管,采用 HMOS工 艺制造,用单一的+5V电源,时钟频率为5MHz~10MHz。8086有16根数据线和20根地址线,它既能处理16位数据,也能处理8位数据。可寻址的内存空间为1MB。
并行接口
8255
Intel 8086/8088 系列的可编程外设接口电路(Programmable Peripheral Interface)简称 PPI,型号为8255(改进型为8255A及8255A-5),具有24条输入/输出引脚、可编程的通用并行输入/输出接口电路。它是一片使用单一+5V电源的40脚双列直插式大规模集成电路。8255A的通用性强,使用灵活,通过它CPU可直接与
外设相连接。
五、原理图
8255A口与SWITCH输入开关的连接:
整体电路图:
六.软件程序流程图:
七.汇编源程序:
aport EQU 600H ;8255各端口地址 bport EQU 602H cport EQU 604H ct EQU 606H
CODE SEGMENT ASSUME CS:CODE
START: MOV AX,10011001B MOV DX,ct
OUT DX,AX ;8255初始化
MOV AL,11111111B MOV DX,bport
OUT DX,AL ;先将B口都置1,使灯全灭
INPUTPC0:MOV DX,cport ;检测PC0的接口 IN AL,DX
AND AL,00000001B CMP AL,00000001B JZ INPUTPC0
MOV DX,aport ;将A口信息读入并存至BL作为修改的密码 IN AL,DX MOV BL,AL
INPUTPC1:MOV DX,cport ;检测PC1的接口 IN AL,DX
AND AL,00000100B CMP AL,00000100B JZ INPUTPC1
A1: MOV DX,aport IN AL,DX
CMP AL,BL ;比较输入密码与修改的密码
JZ GREEN ;相等则跳转绿灯亮,表示开锁
RED: MOV AL,11110111B ;红灯亮,表示错误密码 MOV DX,bport OUT DX,AL
JMP INPUTPC1 ;密码错,继续检测输入密码
GREEN: MOV AL,11111110B ;绿灯亮,开锁 MOV DX,bport OUT DX,AL
JMP INPUTPC0 ;检测PC0口修改密码
CODE ENDS END START
八.心得体会
通过本次的课程设计,我进一步掌握了使用Proteus软件设计电路图的能力,并且对上课中所学到的芯片的功能与工作方式有了更进一步的认识。每次遇到问题时,我是首先尝试着自己去解决,查书、上网找资料,总之竭尽全力自己独自去搞懂难题。实在没有办法时,我会找我的组员,我们一起讨论研究,同时也会向一些掌握的比较好的同学请教。在设计过程中,我发现我对上课中讲述的知识还有很大的欠缺,对Proteus软件的使用还不是很熟练,造成连线还有查错的进度很慢,在不断地练习之中终于对这款软件有了比较熟练的操作,觉得这是很好的仿真软件,它应该还可以用来进行除了8086以外,其他硬件电路的仿真。还有就是程序的编写与调试,在一开始编写程序时是没有程序流程图的,编写起来发现逻辑跳变很困难,感觉很乱,程序跳来跳去,最后混作一团,后来借鉴别人的方法,先画出一个流程图,再根据流程图写程序,很快就完成了程序的编写和调试,并达到预期目标。在这次的课程设计中,我发现团队合作还是需要的,当你发现你钻进一个牛角尖,组员的一句话就可能让你顿悟,从而把事情做好,一个人的力量还是有限的。通过这次课程设计,我发现微机原理这门课包含着太多的知识,涉及面很广,应用性很强,需要我们不断地学习实践。通过不断的实践才能更有效地掌握它。
九.参考文献
陈继红,徐晨.微机原理及应用—第2版. 北京 高等教育出版社.