微机原理课程设计-电子密码锁设计.doc_第1页
微机原理课程设计-电子密码锁设计.doc_第2页
微机原理课程设计-电子密码锁设计.doc_第3页
微机原理课程设计-电子密码锁设计.doc_第4页
微机原理课程设计-电子密码锁设计.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

沈阳工程学院微机原理及应用课程设计第1章 设计原理1.1设计原理 设计要求是在密码输入正确时输出开锁电平和显示“0”,密码错误时显示“1”和蜂鸣器发出报警声音等,我们采用8255A的B口作为显示器的输出,c口为选管和接蜂鸣器,开锁及报警电平。1.2设计环境及设备1、设计环境:PC机一台、windows 98系统、实验箱、导线若干。2、设计所用设备: 8255并口:用做接口芯片LED数码显示管相连。 LED:显示密码是否正确,正确显示1,错误1.3硬件接线图 在实验箱上按照模拟密码锁硬件接线图将传输线对应连接起来,如图1.1 图1.1 硬件接线图1.4设计流程图主程序的流程图是对整个程序的逻辑的图象表示。开始设置初始密码,对8255初始化需要重新修改密码?调用修改密码子程序设置最大误码输入次数。输入密码,并与原定密码进行逐位比较输入密码是否正确?调用开锁子程序调用闭锁子程序结束设置密码个数,获取密码偏移地址图1.2 设计流程图 修改密码子程序 闭锁子程序 开锁子程序开始设置密码个数输入新密码蜂鸣器响一次表示确认返回开始数码管显示“F”蜂鸣器响四声表示警告输入误码已达3次?输出报警电平报警返回开始数码管输出“0”输出开锁电平返回图1.3 子程序流程图 第2章 主要芯片介绍2.18255芯片的内部结构及引脚2.1.1 8255外部引线8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种工作方式下工作:方式0基本输入/输出方式方式1选通输入/输出方式方式2双向选通输入/输出方式8255引脚图如图3.1所示,各引脚功能如下。D7D0与CPU侧连接的八条双向数据线;WR(低电平有效)写输入信号;RD(低电平有效)读输入信号;CS(低电平有效)片选输入信号;A0、A1片内寄存器选择输入信号;PA7PA0A口外设双向数据线;PB7PB0B口外设双向数据线;PC7PC0C口外设双向数据线;RESET复位输入信号。图2.1 8255外部引脚图2.1.2 8255工作方式这些工作方式分别为工作方式0,工作方式1和工作方式2。1:工作方式0,又称为基本工作方式。在此方式下,可分别将A口的8条线,B口的8条线,C口高4位对应的4条线和C口的低四位对应的四条线定义为输入或输出。故它们的输入输出共有16种不同的组合,如表2-1所示。表2-1 工作方式表A 组B组A口(PA0-PA7)C口(PC4-PC7)B口(PB0-PB7)C口(PC0-PC3)入入入入入入入出入入出入入入出出入出入入入出入出入出出入入出出出出入入入出入入出出入出入出入出出出出入入出出入出出出出入出出出出2:工作方式1,既选通输入输出方式。在这种方式下,A口和B口仍作为数据的输出口和输入口,同时还要利用C口的某些位作为控制和状态信号。3:工作方式2,又称双向输入输出方式。这种方式只有8255的口A才有。在A口工作于双向输入输出方式时,要利用C口的5条线才能实现。因此,B口只能工作在工作方式0或工作方式1,而C口剩下的3条线可以作为输入输出线使用或B口方式1下的控制线。2.1.3 8255内部结构可编程并行接口8255芯片的内部结构图如图2.2所示。图2.2 8255内部结构图输入/输出端口A、B、C 。这三个端口均可看作是I/O端口,但它们的结构和功能也稍有不同。A口和B口是一个独立的8位I/O口。C口:可以看作是一个独立的8位I/O口;也可以看作是两个独立的4位I/O口。 A组和B组控制电路。这是两组根据CPU命令控制8255A工作方式的电路,这些控制电路内部设有控制寄存器,可以根据CPU送来的编程命令来控制8255A的工作方式,也可以根据编程命令来对C口的指定位进行置/复位的操作。A组控制电路用来控制A口及C口的高4位;B组控制电路用来控制B口及C口的低4位。读/写控制逻辑,它负责管理8255A的数据传输过程。它接收CS*及RD*、WR*、RESET,还有来自系统地址总线的口地址选择信号A0和A1。将这些信号组合后,得到对A组控制部件和B组控制部件的控制命令,并将命令发给这两个部件,以完成对数据、状态信息和控制信息的传输。数据总缓冲器,它是8位的双向的三态缓冲器。作为8255A与系统总线连接的界面,输入/输出的数据,CPU的编程命令以及外设通过8255A传送的工作状态等信息,都是通过它来传输的。2.1.4 8255的控制字1. 工作方式选择控制字它可以使8255的三个端口工作于不同的工作方式,如图2.3所示。图2.3 8255的控制字格式图说明:当控制字bit71时,控制字的bit6bit3这4位用来控制A组,即A口的8位和C口的高4位,而控制字的低3位bit2bit0用来控制B组,包括B口的8位和C口的低4位。2、8255端口地址,如表3-2所示。表2-2 8255端口地址信号线寄存器编址IOY3A口60HB口61HC口62H控制寄存器63H3. C口按位置位/复位控制字8255的C口具有位控功能,即端口C的8位中的任一位都可通过CPU向8255的控制寄存器写入一个按位置位/复位控制字来置1或清0,而C口中其他位的状态不变。其格式注意8255的C口按位置位/复位控制字的最高位D7(特征位)应为低电平。如图2.4所示。图2.4 C口按位置位/复位控制字格式第3章具体模块设计程序代码DATAS SEGMENT PASSWORD DB 0, ;设置初始密码DATAS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,START: MOV AX,DATAS MOV DS,AX MOV AL,90H OUT 63H,AL ;初始化8255,方式0,A口输入,B、C口输出 IN AL,60H ;读取A口数据 AND AL,20H ;是否需要修改密码 JNE CHANGE ;需要则调用修改密码子程序 MOV BX,5 ;设置错误密码输入最大次数A1: MOV CX,1 设置密码个数MOV SI,OFFSET PASSWORDA2: IN AL,60H CMP AL,BYTE PTRSI ;逐位比较,判断输入密码是否正确 JNE CLOSE ;只要有一位错误就调用闭锁子程序 INC SI LOOP A2 CALL OPEN ;正确就调用开锁子程序 JMP STCHANGE PROC NEAR ;修改密码子程序 MOV CX,5 ;设置密码个数 MOV SI,OFFSET PASSWORDA3: IN AL,60H MOV SI,AL INC SI LOOP A3 ;依次修改六位密码A4: IN AL,60H AND AL,10H ;判断有否按下确认键 JNE A4 ;没按下则继续等待 MOV AL,01H OUT 62H,AL ;蜂鸣器响一下表示确认 RETCHANGE ENDPCLOSE PROC NEAR ;闭锁子程序 MOV AL,71H OUT 61H,AL ;数码管输出“F” MOV AL,10H OUT 62H,AL ;选中L0输出“F” MOV AL,71H OUT 61H,AL MOV AL,20H OUT 62H,AL ;选中L1输出“F”OPEN PROC NEAR ;开锁子程序A6: IN AL,60H AND AL,10H JNE A6 ;等待确认键按下 MOV AL,3F OUT 61H,AL ;数码管输出“0” MOV AL,10H OUT 62H,AL ;选中L0输出“0” MOV AL,3F OUT 61H,AL MOV AL,20H OUT 62H,AL ;选中L1输出“0” MOV AL,02H OUT 62H,AL ;输出开锁电平,开通LED,显示电子锁开启 RETOPEN ENDPST: MOV AX,4CH INT 21HCODES ENDSEND START总 结一周的课程设计时间很快就过去了,本次课程设计的题目是模拟密码锁,刚看到这个题目的时候,先大致整理出了流程图的框架,然后一个一个完成,但实际接触后遇到了很多问题,遇到问题之后我查找了一些相关资料,重温了接口芯片的知识,回顾了老师上课讲的一些东西,对我的帮助很大,使学过的知识得到了巩固,在设计程序过程中,不仅对以前学过的汇编语言进行了重温,而且对程序的一些细节有了进一步的了解,毕竟看程序与写程序的区别还是很大的,每当遇到问题时就会不停地查找资料,向老师询问,完善设计,一周的课程设计过去了,感受颇深,刚开始做这个题目时,感觉很困难,能够参考的东西很少,在整个过程中真正感受到了艰辛,但在曲老师和小组成员的帮助下,一起努力商量如何能完成设计要求,如何将设计简单化,相互交流,选出最好的方案,一步一步完成老师的要求,在这里向老师及小组成员表示感谢。一周的课程设计虽然结束了,但我从中汲取了很多经验教训,借以促进平日的学习生活,每次的课程设计都很珍惜,因为会从里面学习到很多有用的知识,虽然只有一周,但却能学到很多东西。同时对微机原理这门课程有了新的认识,感受到了微机原理这门课对我们的重要性,同时也感受到了实践的重要性,为以后的学习打下了良好的基础 致 谢在整个课程设计的过程中得到了曲乐声、踪念品老师的悉心指导。两位老师多次询问课程设计的进程,每当我们遇到困难时都悉心教导我们,不断为我们讲解,指出我们的错误,帮我们修改思路,耐心的帮我们解决困难,虽然只有短短一周的时间,但是感受到了老师对我们的热心,严谨求实的态度,感受到了老师的真心。感谢学校对我们此次课程设计的支持,感谢为我们解惑的两位老师,感谢我的组员对我的支持参考文献1 王惠中. 微机原理及应用.武汉:武汉大学出版社,20112 邹逢兴. 微型计算机原理与接口技术实验指导. 北京:清华大学出版社,20093 赵全利, 吕建平, 邹雪艳.微型计算机原理及接口技术.北京: 机械工业出版社,20094 何宏.微型计算机原理与接口技术.陕西:西安电子科技大学出版社,2009附录 源代码DATAS SEGMENT PASSWORD DB 0, ;设置初始密码DATAS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,START: MOV AX,DATAS MOV DS,AX MOV AL,90H OUT 63H,AL ;初始化8255,方式0,A口输入,B、C口输出 IN AL,60H ;读取A口数据 AND AL,20H ;是否需要修改密码 JNE CHANGE ;需要则调用修改密码子程序 MOV BX,5 ;设置错误密码输入最大次数A1: MOV CX,1 设置密码个数MOV SI,OFFSET PASSWORDA2: IN AL,60H CMP AL,BYTE PTRSI ;逐位比较,判断输入密码是否正确 JNE CLOSE ;只要有一位错误就调用闭锁子程序 INC SI LOOP A2 CALL OPEN ;正确就调用开锁子程序 JMP STCHANGE PROC NEAR ;修改密码子程序 MOV CX,5 ;设置密码个数 MOV SI,OFFSET PASSWORDA3: IN AL,60H MOV SI,AL INC SI LOOP A3 ;依次修改六位密码CLOSE PROC NEAR ;闭锁子程序 MOV AL,71H OUT 61H,AL ;数码管输出“F” MOV AL,10H OUT 62H,AL ;选中L0输出“F” MOV AL,71H OUT 61H,AL MOV AL,20H OUT 62H,AL ;选中L1输出“F”OPEN PROC NEAR ;开锁子程序A4: IN AL,60H AND AL,10H JNE A4 ;等待确认键按下 MOV AL,3F OUT 61H,AL ;数码管输出“0” MOV AL,10H OUT 62H,AL ;选中L0输出“0” MOV AL,3F OUT 61H,AL MOV AL,20H OUT 62H,AL ;选中L1输出“0” MOV AL,02H OUT 62H

温馨提示

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

评论

0/150

提交评论