微机原理简易密码锁
单片微机原理课程设计任务书简易电子密码锁

6.22~6.24
硬件系统详细设计,画出详细设计电路图,按排好端口地址。
3
6.25~6.27
软件设计并调试。所有功能在实验箱上实现。
4
6.28~6.29
撰写课程设计报告
5
6.30
交设计资料,并答辩。
主指导教师
日期:
年月日
单片微机原理课程设计任务书
设计题目:简易电子密码锁
系部:机电系
专业:自动化
学生姓名:学号:
起迄日期:2006年6月19日2006年6月30日
指导教师:
教研室主任:
单片微机原理课程设计任务书
1.课程设计的内容和要求(包括原始数据、技术要求、工作要求等):
该密码锁初次使用时的原始密码为12345678,用户输入正确的密码信息则能够发也开锁信号。
[4]张晓军罗翔史金辉基于时钟芯片的定时控制装置[J]现代电子技术2006(1)
[5]沈卫红单片机应用系统设计实例与分析[M]北京航空航天大学出版社
[6]楼苗然李光辉51系列单片机设计实例[M]北京航空航天大学出版社
4.课程设计工作进度计划:
序号
起迄日期
工作内容
1
6.19~6.21
进行系统功能分析,查阅相关资料,提出系统初步设计方案。
3、密级<108。
4、管制时间范围<9小时60分。
单片微机原理课程设计任务书
2.对课程设计成果的要求〔包括图表、实物等硬件要求〕:
1、设计硬件系统:说明各部分的工作原理,进行相关元器件的参数选择和计算,用PROTEL画出系统硬件图。(要求提出两个以上的设计方案进行比较论证)
2、系统软件设计:系统功能模块的划分,主要功能模块的流程图。源程序在实验箱上进行仿真调试。
微机课程设计 密码锁

一、设计目的:本课程设计旨在使学生在学习《微机原理与接口技术》这门课程之后,能够掌握Intel8086/8088微型计算机系统的组成原理,熟练运用8086宏汇编语言进行程序设计,熟悉各种I/O接口的配套使用技术,掌握用Intel8086/8088CPU进行一些基本的微型计算机系统的软硬件设计方法。
通过对具体应用的课程设计使学生对所学知识有进一步的加深和了解,培养和提高学生的动手能力和实际应用能力。
二、设计内容:随着电子技术的发展,计算机应用技术起着越来越重要的作用。
多媒体技术、网络技术、智能信息处理技术、自适用控制技术、数据挖掘与处理技术等都离不开计算机。
本课程设计是基于微机原理与接口技术的简单应用。
运用所学的微机原理和接口技术知识完成简易数码锁。
数码锁主要由8086系统及Intel 8255A可编程并行接口芯片和密码输入电路、显示电路、密码确认电路这几部分构成。
根据设计的功能和要求,编写相应的汇编程序,以支持整个系统的运行,实现数码锁的功能。
汇编程序只要分为输入密码、判断密码、修改密码这几部分流程来编写,以满足整个数码锁的设计要求并完成相应的功能.三、设计任务和要求:1:数码锁系统主要有8086系统和8255A可编程并行接口芯片及密码输入电路、显示电路、密码确认电路组成。
2:用K0~K7开关作为密码控制输入键3:K2~K7为6位密码设置及输入开关4:K0、K1分别做控制键5:当K1开关闭合时,通过开关K2~K7重设并保存新密码6:当K1开关断开时,查看开关K0的状态,若K0闭合,将K2~K7输入的密码与原密比较,若相同则灯亮,否则,灯灭;若K0断开,则重复输入密码进行比较。
四、可选器材:⑴PC机;⑵EL-1型微机原理教学实验箱系统;⑶信号发生器;五、参考资料:[1]《EL-1型微机教学系统实验指导书》[2] 赵彦强.《微机原理与接口技术》(第二版).合肥:合肥工业大学出版社,2010.[3]周荷琴,吴秀清.《微型计算机原理与接口技术》(第三版).合肥:中国科学技术大学出版社,2004.[4] 戴梅萼,史嘉权.微型计算机技术及应用.北京:清华大学出版社,1996[5] 李伯成.微型计算机原理及接口技术.北京:清华大学出版社,2005.[6] 洪永强.微机原理与接口技术.北京:科学出版社,2004.硬件设计方案:一、设计概述原理图硬件工作流程首先对可编程器件进行初始化操作,即对8255写入方式控制字,配置I/O 端口的输入输出方向。
微机原理课程设计 电子密码锁

一.课程设计的目的和任务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灯。
主要器件简介CPU80868086是Inter系列的16位微处理器,芯片上有2.9万个晶体管,采用 HMOS工艺制造,用单一的+5V电源,时钟频率为5MHz~10MHz。
8086有16根数据线和20根地址线,它既能处理16位数据,也能处理8位数据。
可寻址的内存空间为1MB。
并行接口8255Intel 8086/8088 系列的可编程外设接口电路(Programmable Peripheral Interface)简称 PPI,型号为8255(改进型为8255A及8255A-5),具有24条输入/输出引脚、可编程的通用并行输入/输出接口电路。
微机原理多功能密码锁

微机原理班级:13电气2学号:*********姓名:***成绩:目录一、设计内容 (3)二、设计要求 (3)三、方案选择及原理 (3)四、所用器件 (3)五、主要器件简介 (3)六、原理图 (5)1、8086与8255A连接 (5)2、8255A的A口、C口与矩阵键盘连接 (6)3、8255A的A口、B口与数码管的连接 (7)4、8086与8253连接 (7)5、完整电路图 (8)七、软件设计思路 (9)八、流程图 (10)1、主程序 (10)2、子程序 (11)九、程序代码 (13)十、设计中的难点 (22)十一、收获及体会 (22)十二、参考文献 (23)密码锁一、设计内容在实验系统TDN86/88上实现密码锁功能。
设计内容:密码锁在输入密码正确的条件下输出开锁电平,控制电控锁开启,同时显示0字样。
当输入密码错误时,发出错误警告声音,同时显示CC字样。
当六次误码输入的条件下,产生报警信号。
还可以实现对密码的修改,修改成功后,蜂鸣器发生确认音。
根据实验系统的配置,可以通过使步进电机转动180度来模拟开锁和关锁动作。
二、设计要求1、用LED显示器现实电子锁的当前状态;2、画出详细的硬件连接图;3、给出程序设计思路、画出软件流程图;4、给出所有程序清单,并加上必要注释;5、完成设计说明书(列出参考文献)。
三、方案选择及原理这次的设计要求是在密码输入正确时输出开锁电平和显示“0”,密码错误时显示“C”和蜂鸣器发出报警声音等,我们采用8255A的A口低四位和C口的低三位组成4x3的矩阵键盘,同时A口的低六位为选管;B口作为显示器的输出;C 口高四位的PC4口输出开锁电平,对于6次密码错误输入,PC5口输出报警电平。
用8253计数器产生警告音和确认音。
用蜂鸣器发声次数来区分确认和警告声音,一声表示确认,三声表示警告。
采用Proteus自带的键盘元件KEYPAD-PHONE,0-9为数字键,#为确认/返回键和*为密码修改键,每次对键盘扫描,获得对应的键值。
工业微控制器简易密码锁的设计STM32

电子密码锁的设计主要由三部分组成:4×4 矩阵键盘接口电路、密码锁的控制 电路、输出数码显示电路。另外系统还有 LED 提示灯等。 此密码锁主要具有如下功能: 1、具有 4*4 键盘和 LED 数码管显示; 2、能够进行密码设置和修改; 3、密码掉电存储; 4、密码错误和密码正确具有不同的显示和蜂鸣器提示。
工业微控制器
课程设计
题 目: 简易密码锁设计 电气工程学院 轨道 1502 楚昕 201523050224 熊新民
院系名称: 专业班级: 学生姓名: 学 号:
指导教师:
成绩:
指导老师签名:
1
目
录
1 系统概述---------------------------------------------------------------------------------------------1 2 方案论证---------------------------------------------------------------------------------------------1 2.1 方案比较------------------------------------------------------------------------------------------1 2.2 设计内容及功能-------------------------------------------------------------------------------- 2 2.3 设计原理------------------------------------------------------------------------------------------2 2.4 设计关键------------------------------------------------------------------------------------------3 3 系统方案设计-------------------------------------------------------------------------------------- 3 3.1 密码锁程序总体流程-------------------------------------------------------------------------- 3 3.2 数字电路控制----------------------------------------------------------------------------------- 4 3.3 基于 STM32 的控制方案----------------------------------------------------------------------- 5 3.4 基于 STM32 控制的总原理图----------------------------------------------------------------- 6 3.5 密码锁密码比较流程-------------------------------------------------------------------------- 7 3.6 密码锁电路原理图----------------------------------------------------------------------------- 8 4 系统硬件电路设计-------------------------------------------------------------------------------- 9 4.1 按键电路设计----------------------------------------------------------------------------------- 9 4.2 LED 数码管显示-------------------------------------------------------------------------------- 10 4.3 响应电路---------------------------------------------------------------------------------------- 11 4.4 蜂鸣器响应------------------------------------------------------------------------------------- 11 4.5 接线说明---------------------------------------------------------------------------------------- 12 4.5.1 键盘接线------------------------------------------------------------------------------------- 12 4.5.2 J-LINK 接口--------------------------------------------------------------------------------- 12 5 程序清单------------------------------------------------------------------------------------------- 13 5.1 键盘扫描---------------------------------------------------------------------------------------- 13 5.2 定时器------------------------------------------------------------------------------------------- 17 5.3 LED------------------------------------------------------------------------------------------------ 18 5.4 输入密码---------------------------------------------------------------------------------------- 18 5.5 掉电存储---------------------------------------------------------------------------------------- 20 5.6 更改密码---------------------------------------------------------------------------------------- 21 设计总结---------------------------------------------------------------------------------------------- 23 参考文献---------------------------------------------------------------------------------------------- 24
微型计算机原理及应用课程设计--多功能密码锁

目录一.课设目的 (1)二.课设内容三.问题分析、设计思路及原因 (1)四.电路设计及功能说明,硬件原理图 (2)五.软件部分的程序流程图,算法和使用的编程技巧 (10)六.汇编源程序清单 (11)七.课设结果分析 (20)八.收获、体会和建议 (20)九.参考文献 (21)一.课设目的1.掌握8086,8255等芯片的工作原理和使用方法,了解各引脚的功能。
2.掌握各芯片之间的连接方法,设计多功能密码锁电路。
3.运用《微机原理及应用》中学习到的知识,编写汇编语言程序,通过对芯片的控制实现多功能密码锁的各种功能。
4.巩固本学期学习到的微机原理的相关知识,通过实践加强对知识的理解,同时提高自身思考问题的能力,培养对本课程的兴趣,提高动身能力。
二.课设内容课程设计题目选取多功能密码锁,实现的功能为:1.判断输入的密码是否正确2.修改密码3.密码输入错误时发错警告声音4.当密码输入错误四次时发出警报三.问题分析、设计思路及原因1.问题分析考虑到实现以上功能需要使用数码管、开锁电平、报警电平、蜂鸣器等输出,因此使用微机实验中用过的芯片8255A作为接口芯片,该芯片能比较好地满足这次课程设计的功能要求。
而CPU则选择我们熟悉的8086。
2.设计思路及原因密码的输入主要通过系统功能调用语句“MOV AH,1; INT 21H”(即带显示的单字符键盘输入功能)和循环语句实现,而密码输入是否正确则通过串比较指令来实现。
程序中的提示语句可以使用系统功能调用语句“MOV AH,9; INT 21H”(即字符串输出)功能来实现。
对接口芯片,首先要完成芯片的初始化,使8255A芯片的A,B口作为输出端口,A口用于控制数码管在密码输入正确或错误的情况下的显示“00”或“FF”,B口用于控制提示音和相应的发光二极管。
当输入错误时,B口输出03H(即00000011B),使对应的蜂鸣器发声,相应的发光二极管发光。
而当四次输入密码错误时,B口输出0CH(即00001100B),使对应蜂鸣器发声,对应二极管发光。
微机课程设计(密码锁)

本科课程设计(论文)题目:多功能密码锁课程名称微机原理课程设计学院自动化科学与工程学院班级 2012级3班学生姓名罗艺锋学生学号 201230641470提交日期 2015 年 1分数目录一、目的 (3)二、内容 (3)三、设计任务 (3)四、方案选择及原理 (3)五、所用器件 (3)主要器件简介 (4)六、原理图 (6)1、8086和存储器连接 (6)2、CPU与8255A连接 (6)8255A的A口与键盘连接 (7)4、8255A的B、C口 (7)5、完整电路图 (8)七、软件设计思路 (8)八、流程图 (9)1、主程序 (10)2、子程序 (11)九、程序代码 (11)十、设计中的难点 (13)十一、收获及体会 (14)多功能密码锁一、目的1、了解和掌握8086,8255,等接口芯片以及LED显示器的原理和功能;2、能用这些接口芯片构建一个简单的系统控制对象,3、掌握接口电路的综合设计与使用;4、通过自己动手,进一步了解计算机得工作原理,接口技术,提高计算机硬件,软件综合应用能力,即对微机原理,接口技术,汇编语言程序设计进行综合训练。
二、内容密码锁在输入密码正确的条件下输出开锁电平,控制电控锁开启,同显示00字样。
当输入密码错误时,发出错误警告声音,同时显示FF字样。
当六次误码输入的条件下,产生报警电平报警。
还可以实现对密码的修改,修改成功后,蜂鸣器发出确认音。
三、设计任务1、选用8086和适当的存储器及接口芯片完成相应的功能。
2、用LED显示器显示电子锁的当前状态。
3、画出详细的硬件连接图。
4、给出程序设计思路、画出软件流程图。
5、给出地址分配表。
6、给出所有程序清单并加上必要注释。
7、完成设计说明书(列出参考文献,所用器件型号)。
四、方案选择及原理这次的设计要求是在密码输入正确时输出开锁电平和显示“00”,密码错误时显示“FF”和蜂鸣器发出报警声音等,我们采用8255A的B口作为显示器的输出,c口为选管和接蜂鸣器,开锁及报警电平。
多功能密码锁课程设计微机原理课程设计说明书

摘要密码锁在输入密码正确的条件下输出开锁电平,控制电控锁开启,同显示00字样。
当输入密码错误时,发出错误警告声音,同时显示FF字样。
当六次误码输入的条件下,产生报警电平报警。
还可以实现对密码的修改,修改成功后,蜂鸣器发出确认音。
密码锁的基本功能是可输入密码、修改码以及判断密码是否正确,故需要输入设备及其与CPU的接口电路及相关存储设备;判断密码则涉及逻辑分析,即要实现逻辑功能;另外相关的报警提示功能则需要相关的输出设备及其接口电路。
我采用8255A的B口作为显示器的输出,c口为选管和接蜂鸣器,开锁及报警电平。
对于6次密码错误输入,可以直接用软件控制,线路简单,程序也很易实现。
用蜂鸣器发声次数来区分确认和警告声音,一声表示确认,三声表示警告。
键盘上的按键用SW-PB共12个,0-9为数字键,连接到8255A的A口对应二进制数,还有确认键和密码修改键,按下表示A口接收到低电平信号。
关键词;密码锁, 蜂鸣器, 微机原理,接口技术,AbstractCipher lock when the input password is correct conditions the output level control electric lock lock, open, the samedisplay the words 00. When the input password mistake, sending the error warning sound, at the same time display FF. When the six error input conditions, generating alarm level alarm. Also can be achieved on the password modification, modification is successful, the buzzer sends confirmation tone. The cipher lock is the basic function of input password, modify the code and password to determine whether the correct, so it needs to input device and an interface circuit of CPU and related storage device; Determine whether the password to logical analysis, namely, to realize the logic function; the related alarm function needs to output equipment and its interface circuit.I use the 8255A B as the display output, C for selected tube and a buzzer, lock and alarm level. For the 6 time password input errors, starting with a 8253 counter, and then found can be directly controlled by the software, simple circuit, the program is very easy to realize. With buzzer sound frequency to distinguish and confirm the warning sound, a sound that confirm, three sound warning. The keys on the keyboard to use SW-PB in all 12, for the number keys 0-9, connect to the 8255A A port corresponding binary number, and a confirmation key and password modify key, press the A port receives a low level signal.Keywords:Password lock, buzzer, microcomputer principle, interface technology,目录摘要 (Ⅲ)Abstract (Ⅳ)第1章绪论 (7)1.1密码锁的发展现状 (7)1.2密码锁的发展前景 (7)第2章密码锁的工作原理及结构设计方案 (8)2.1目的 (8)2.2内容 (8)2.3设计任务‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥82.4方案选择及原理‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥8 第3章硬件系统设计 (9)3.1所用到的相关芯片元件及其介绍‥‥‥‥‥‥‥‥‥‥‥‥‥‥93.1.1所用器件‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥93.1.2主要元件及芯片介绍‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥93.2硬件电路图 .............................. 错误!未定义书签。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
信息科学与技术学院微机原理与接口技术课程设计题目名称:简易密码锁的设计姓名:学号:**********20125081392012508137 专业年级:电子信息工程1班****:**时间: 2012.12.25目录第一章简易数码锁的设计要求及方案 (1)1.1 初始条件 (1)1.2 设计要求 (1)1.3 方案设计 (1)第二章硬件原理电路图的设计及分析 (1)2.1 硬件设计概述 (1)2.2 硬件框图 (2)2.3 硬件工作流程 (2)第三章程序设计与分析 (3)3.1 主程序流程图设计 (3)3.2 验证密码程序设计 (3)3.3 重设密码程序设计 (4)第四章数码锁的安装与调试 (4)4.1 硬件调试 (4)4.2 软件调试 (5)4.3系统整体调试 (6)第五章设计体会与小结 (6)附录 (7)参考文献 (9)第一章 简易数码锁的设计要求及方案1.1 初始条件1)运用所学的微机原理和接口技术知识; 2)微机原理和接口技术实验室的实验箱设备。
1.2 设计要求1.密码由0-7数字组成,密码位数6位;2.开机上电后系统复位,处于准备接收密码的状态;3.每次输入密码后须按下确认键,若输入密码位数超6位,取后6位;4.若与规定密码相同则在点亮一只发光二极管,显示正确,否则点亮另一只发光二极管,显示错误。
(正确和错误显示的发光二极管为两个)5.在实验系统 TDN86/88 上实现。
1.3 方案设计数码锁主要由8086系统及Intel 8255A 可编程并行接口芯片和密码输入电路、显示电路、密码确认电路这几部分构成。
根据设计的功能和要求,编写相应的汇编程序,以支持整个系统的运行,实现数码锁的功能。
汇编程序只要可分为输入密码、判断密码、修改密码这几部分流程来编写,以满足整个数码锁的设计要求并完成相应的功能.第二章 硬件原理电路图的设计及分析2.1 硬件设计概述硬件部分主要以8255芯片为主,用控制密码输入键(70K ~K )、 彩灯显示(LED UNIT ) , 在实验箱上模拟整个数码锁的工作流程。
2.2 硬件框图硬件框图如图1密码确认电路图1 系统硬件框图2.3 硬件工作流程首先对可编程器件进行初始化操作,即对8255写入方式控制字,配置I/O 端口的输入输出方向。
本系统选择PA 端口(60H )为输入口,接收密码输入区70K ~K 的电平状态;选择PB 端口(61H )为输出口,控制彩灯的显示。
对8255的配置如表1所示,具体接法详见附录的系统硬件原理图部分。
表1 8255 I/O 资源配置表按照系统硬件原理图 和8255的配置连接好电路, 即可按照用户操作流程,对8255进行相应的I/O 端口操作即可第三章 程序设计与分析3.1 主程序流程图设计软件设计的主要能够输入密码并确认每一次输入的密码是否有效,而且能够保存每次输入的密码,接着让最后6位输入的密码与正确密码比较。
由输入密码正确与否的判断结果来引导下一步的动作,并且可增加修改内设密码功能。
系统的完整程序流程如下图所示3.2 验证密码程序设计程序编译加载后,开始后对8255初始化,此时系统就有一初始密码,即可输入已经设置的密码(本程序初始密码:88H )。
输入的密码以只承认最后6位输入数8255初始化输入密码无反应绿灯全亮判断密码是否正确重设密码新密码锁存确认码 。
拨动按键K2~K7,对应的彩灯也会相应的亮起,拨好密码后,再拨动按键K0, 若K2~K7六位密码与初始密码相同,则彩灯的绿灯全部亮,若密码与初始密码不同,则彩灯没有变化。
验证密码流程图如图3图 3 验证密码流程图3.3 重设密码程序设计进行重新设置密码,首先拨动K1键,此时K2~K7六位处于待设密码状态,只要拨动K2~K7按键就可以设置新密码,设置好以后再次拨回K1,进行新密码的锁存,此时新密码已经设置成功。
若要再进行解码,按照验证密码程序设计里的步骤即可。
重设密码流程如图4图4 密码重设流程图第四章 数码锁的安装与调试4.1 硬件调试1. 安装上电前按电路设计连接实验箱电路,连接好实验箱与主机的线,并检查是否输入密码 判断密码绿灯全亮无反应密码按键还原重设密码新密码锁存有短路,再打开电源。
2. 调试在主机上安装并运行Wmd86,首先进行端口测试,正常后即可编写程序。
在测试8255的输出时发现8255工作不正常,其表面温度过高,故更换8255芯片后方能正常工作。
4.2 软件调试按照主程序流程进行软件的编写,按照实际的硬件接口来编程,软件编写中的许多细节问题并不是在编写程序的时候能够检查出来的,需要一步一步的调试,通过不断的调试程序,加深了对汇编语言和硬件结构的理解。
软件调试过程中遇到许多问题是不能通过硬件电路的现象来发现的,而通过win86的单步运行能够发现程序的走向,很直观的查出问题的所在。
比如,在程序运行中不能看到堆栈中的内容,而单步运行就能很直观的看的出来,方便调试。
编写层序的时候遇到了一些问题,主要是对堆栈的概念和应用上的认识不太深刻。
堆栈遵循“先入后出”的原则。
对于本题中的认可最后输入的6位密码的要求。
必须利用堆栈的这一特点。
将开关输入的密码依次压入堆栈(记录每次输入的密码),再出栈与原密码逐次比较6次,遇到一个问题就是,每次只从堆栈弹出6位密码,如果输入密码次数过多,前几次的密码没有出栈,堆栈就会被占满,导致程序无法正常运行;或者前一次没有清空堆栈的数据在下一次运行程序的时候被弹出,影响下一次的运行结果。
想到如此,就必须让堆栈在每次程序运行结束以后都要清空。
由于代码段的程序过长,导致代码段的空间不够用,往往使程序无法正常运行。
解决的办法是使用call指令,利用将子程序压入堆栈,用ret指令返回。
可以节省代码段的空间。
在调用的子程序中注意如果改变堆栈的入口地址的话需要在返回指令ret之前恢复原来调用此子程序是的入口地址,否则会使程序混乱。
基于此点,在编写程序的时候只是将初始化,显示等不改变堆栈地址的子程序压入堆栈。
4.3系统整体调试整个系统在经过软硬件调试成功并正常加载程序运行后即可按流程来调试。
首先输入原始密码看能否解锁,如果绿灯都亮则密码正确。
然后任意输入几组六位密码看绿灯是否都亮,如果绿灯均不亮则初始密码设置成功。
然后检测重置密码功能,先拨动按键K1,进入设置密码状态,任意拨动六位密码,再拨回按键K1,将设置的密码锁存,之后输入自己设置的密码看能否解锁,再多重复设置任意六位密码,如果绿灯都亮,则重置密码部分运行正常。
整个系统经过完整的逻辑测试后没有发现问题,整体调试结束。
第五章设计体会与小结刚确定做简易密码锁的课程设计任务时,自己真的是一头雾水不知怎么下手,经过进图书馆、上网查资料自己了解到了许多,现在经过一个星期的努力自己的数码锁已经基本成型。
但由于自己水平的有限,此设计任务仍有许多不足之处。
这次课程设计并不是很难,主要的困难来自对程序的理解。
功夫不负有心人,经过我们组的合作和努力,我们最后对实验的原理有了清晰的认识。
虽然实验箱上的很多模块单元没有用到,但是就系统功能来说,我觉得我们做的还是不错的。
这次课程设计却让我们对实验箱有了足够的了解,特别是8255A芯片;而且它还让我们对自己动手写程序来控制实验箱的运作有了一定的基础。
虽然实验箱只是一个小型的模拟平台,但是通过对它的学习和操作,我们对有关接口的知识将会有一个更广泛的认识,而且它对我们以后的学习也会有帮助的。
通过此次设计,发现自己仍然还有许多不足之处,发现自己的知识是非常欠缺的,自己的动手能力也不强。
自己清醒的认识到该怎么办,自己应该好好的反省一下,该好好的投入学习中,多一点时间用在学习中,把所学知识都好好的掌握,并很好的利用。
在以后的学习和生活中,自己多找机会锻炼一下,使自己的动手能力得以很大的提高。
从而是自己各方面的能力得到很好的发展,为自己以后很好的工作打下坚实的基础。
总之,这次课程设计对于我们有很大的帮助,通过课程设计,我更加深入地理解了,微机原理课程上讲到的多种芯片的功能,以及引脚的作用,同时加深了对于主要芯片的应用的认识,同时在试验室的环境里熟悉了汇编程序的编写过程和运行过程,并提高了自己的动手能力。
最后衷心的感谢老师的悉心指导。
附录系统硬件电路图系统程序源代码DATA SEGMENT ;定义数据段BLOCK DB 0DATA ENDSCODE SEGMENT;定义代码段ASSUME CS:CODE, DS:DATASTART: MOV DX, 63HMOV AL, 90H ;设置8255A方式字OUT DX, AL ;8255A A口输入,B口输出 MOV BLOCK, 088H ;设置初始密码MOV BL, 10HMAIN: MOV DX, 60HIN AL, DX ;读取A口开关信息TEST AL, 02H ;判断开关K1的状态JZ K1 ;K1=0 转移IN AL, 60HAND AL, 0FCH ;K1=1设置新密码,A口高六位有效 MOV BLOCK, AL ;存储新密码NOT ALOUT 61H, ALCALL DELAYJMP MAINK1: IN AL, 60HTEST AL, 01H ;判断开关K0的状态JNZ K0 ;K0=1 转移IN AL, 60H ;K0=0 输入密码AND AL, 0FCH ;A口的低二位被屏蔽NOT ALOUT 61H, ALCALL DELAYJMP MAINK0: IN AL, 60HAND AL, 0FCHCMP BLOCK, AL ;输入的密码与存储的密码相比较JA MAINJB MAINMOV AL, 0FH ;输出显示NOT ALOUT 61H, ALCALL DELAYJMP MAINDELAY PROC NEARDELAY1: MOV CX, 10H ;循环延时DELAY2:LOOP DELAY2DEC BLJNZ DELAY1RETDELAY ENDPCODE ENDSEND START参考文献1 华中科技大学电子技术课程组编,康华光主编. 电子技术基础(数字部分).第五版. 北京:高等教育出版社,20062 李伯成编. 单片机及嵌入式系统. 北京:清华大学出版社,20053. 《微机原理与接口技术》. 彭虎,周佩玲,傅忠谦编. 第二版. 北京:电子工业出版社,2008;4. 《汇编语言程序设计》.程学先,林姗,程传慧编著. 北京:机械工业出版社,2009;5. 《微型计算机原理与接口技术》.王宁宁,张瑾,谭彦彬,陈铖编著.北京:国防工业出版社,2009;9。