ImageVerifierCode 换一换
格式:DOCX , 页数:30 ,大小:1.42MB ,
资源ID:1081674      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-1081674.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(微机原理多功能密码锁Word格式文档下载.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

微机原理多功能密码锁Word格式文档下载.docx

1、 根据实验系统的配置, 可以通过使步进电机转动 180 度来模 拟开锁和关锁动作。二、 设计要求1、用 LED显示器现实电子锁的当前状态;2、画出详细的硬件连接图;3、给出程序设计思路、画出软件流程图;4、给出所有程序清单,并加上必要注释;5、完成设计说明书(列出参考文献)。三、方案选择及原理 这次的设计要求是在密码输入正确时输出开锁电平和显示“ 0”,密码错误时显示“ C”和蜂鸣器发出报警声音等,我们采用 8255A的 A口低四位和 C口的低三 位组成 4x3 的矩阵键盘,同时 A口的低六位为选管; B口作为显示器的输出; C 口高四位的 PC4口输出开锁电平,对于 6 次密码错误输入,PC

2、5口输出报警电平。 用 8253 计数器产生警告音和确认音。 用蜂鸣器发声次数来区分确认和警告声音, 一声表示确认,三声表示警告。采用 Proteus 自带的键盘元件 KEYPAD-PHO,NE0-9 为数字键, #为确认/ 返回键和 *为密码修改键,每次对键盘 扫描,获得对应的键值。四、使用器件CPU8086、并行接口 8255A、地址锁存器 74LS273、4 线 16 线译码器 74HCT154、石英晶振,可编程定时 / 计数器 8253、共阴极数码管、各类逻辑门、 蜂鸣器,电阻、键盘等。五、主要器件简介CPU80868086是Inter 系列的 16位微处理器,芯片上有 2.9 万个晶

3、体管,采用 HMOS工 艺 制造,用单一的 +5V电源,时钟频率为 5MHz-10MH。z 8086 有 16 根数据线和 20 根地址线,它既能处理 16位数据,也能处理 8 位数据。可寻址的内存空间为 1MB。 并行接口 8255Intel 8086/8088 系列的可编程外设接口电路( Programmable Peripheral Interface) 简称 PPI ,型号为 8255,具有 24 条输入/ 输出引脚、可编程的通用 并行输入 / 输出接口电路。 它是一片使用单一 +5V 电源的 40 脚双列直插式大规模 集成电路。 8255A的通用性强,使用灵活,通过它 CPU可直接与

4、外设相连接。 可编程定时 / 计数器 82538253可编程定时器 / 计数器是 8086微机系统常用的定时 / 计数器芯片,它具有定 时与计数两大功能。 8253可编程定时器 / 计数器具有 3个独立的 16 位计数器通 过编程可选择六种工作方式 ,可选择二进制或十进制计数,最高计数速率可达 2.6MHz。所有的输入、输出电平都与 TTL兼容。地址锁存器 74LS273是带清除端的 D触发器,只有清除端为高电平时才具有锁存 功能,锁存控制端为 11脚 CLK,在上升沿锁存。 8086的 ALE端输出的锁存控制 信号必须经反相器后才能连到 74LS273的 CLK端,以满足 CLK在上升沿锁存

5、的要 求。4 线 16 线译码器 74HCT15474HCT154 为 4 线 16 线译码器,将 4 个二进制编码输入译成 16 个彼独立的 输出之一,并能将数据从一个输入线分配到 16 个输出的任意一个而实现解调功 能,与大部分 TTL 和 DTL 电路完全兼容。其工作原理如下:这种单片 4 线16 线译码器非常适合用于高性能存储器的译码器。当两个选通输入 G1 和 G2 为低 时,它可将 4 个二进制编码的输入译成 16 个互相独立的输出之一。 实现解调功 能的办法是:用 4 个输入线写出输出线的地址,使得在一个选通输入为低时数 据通过另一个选通输入。当任何一个选通输入是高时,所有输出都

6、为高。六、原理图1、8086和 8255A连接8255A地址分配: PA:200H PB: 202H PC:204H 控制寄存器: 206H 为了满足 8255A的四个端口地址必须为偶地址这一要求,将 8255A的 A1、 A0分 别与 8086系统地址总线的 A2、A1相连,并且, CPU在对 8255A的端口进行访问 时,总是将地址中的 A0 设置为 0。2、8255A的 A口、 C口与矩阵键盘连接键盘元件 KEYPAD-PHO,NE0-9 为数字键, #为确认/ 返回键和 *为密码修改键。 数 字键 1-9 的键值为相应的数值,数字键 0的键值为 0BH,功能键 *的键值为 0AH, 能

7、键 #的键值为 0CH。3、8255A的 A口、 B口与数码管的连接8255A的 B口输出数码管的段码, A口输出数码管的位码4、8086与 8253连接8253地址分配:计数器 0:400H 计数器 1:402H 计数器 2:404H 控制寄存器:406H 为了满足 8255A的四个端口地址必须为偶地址这一要求,将 8255A的 A1、 A0分 别与 8086系统地址总线的 A2、A1相连,并且, CPU在对 8255A的端口进行访问 时,总是将地址中的 A0 设置为 0。6、完整电路图整个硬件设计,主要采用器件 CPU8086、并行接口 8255和可编程定时 /计数 器 8253。由并行接

8、口 8255 控制键盘扫描、数码管显示、开锁电平以及报警电平, 8255的工作方式是 A口输出,B口输出,C口高四位输出, C口低四位输入。通 过键盘扫描获得对应的键值,通过对键值判断, 判断按键是功能键或数字键, 达 到输入密码,修改密码,确认输入,返回等功能。由可编程定时 / 计数器 8253产 生方波,控制蜂鸣器产生“滴”声。 8253工作在计数器 0方式 3,产生方波,通 过延时,是蜂鸣器产生“滴”。 8253 在每次调用发声子程序中初始化。根据条件要求, 程序首先需要实现的是输入密码。 为了区别输入密码和修改 密码,当数码管显示都显示 “”,是输入密码。当数码管全灭时, 是修改密码。

9、 当密码输入完且按下确认键,则输入数字与密码比对。密码正确, 则输出开锁电 平(高电平有效)。在此时,则可以通过功能键修改密码, 密码修改成功发出 “滴” 声。若不需要,按返回键返回。若密码错误,则发出三声“滴”声,密码错误次 数加 1,并判断是否已经输入六次错误,是则输出报警电平(高电平有效),并 置密码错误次数置 0,等待返回键返回;否则等待返回按键返回。为了实现上述程序,首先要初始化 8086、8255,接着进入键盘扫描。每次 有按键输入后,还应判断按键是否弹起, 可以实现键盘消抖。 无论密码正确与否, 均需要通过返回键才能返回, 所以每次显示完后都要对键盘扫描, 判断是否按下返回键,

10、有则退出键盘扫描, 没有则继续扫描。 开锁电平以及报警电平均在返回 时置低电平。八、流程图主程序流程图修改密码子程序流程图开锁子程序流程图开始输出开锁电平,显示“ 0”键盘扫描返回键是否按下?修改键是否按下?调用修改密码子程序关开锁电平结束闭锁子程序流程图是否 是否已达到 6 次错误?输出报警电平;8255 片选端口始地址8255的 A口地址8255的 B口地址九、程序代码IOY0 EQU 0200HMY8255_A EQU IOY0+00H*2MY8255_B EQU IOY0+01H*2MY8255_C EQU IOY0+02H*2 MY8255_MODE EQU IOY0+03H*2 I

11、OY1 EQU 0400H MY8253_COUNT0 EQU IOY1+00H*2 MY8253_COUNT1 EQU IOY1+01H*2 MY8253_COUNT2 EQU IOY1+02H*2 MY8253_MODE EQU IOY1+03H*28255的 C口地址8255 的控制寄存器地址8253 片选端口始地址 ;8253计数器 0 端口地址 ;8253计数器 1 端口地址 ;8253计数器 2 端口地址8253 控制寄存器端口地址DATA SEGMENTCOUNT1 DB 00HCOUNT2 DB 00H ;错误密码次数DTABLE DB 3FH,06H,5BH,4FH,66H,

12、6DH,7DH,07H,7FH,6FH,77H,3FH,39H,5EH, 79H,71H,00H,40H ;键值表, 0F对应的 7 段数码管的段位值DTABLE11=3FH ;对应键值 11,显示 0DTABLE16=00H ;数码管熄灭DATABLE17=04H ;显示数码管 -STRING DB 01H,02H,03H,04H,05H,06H ;初始密码,密码内存空间DATA ENDSSTACK1 SEGMENT STACKDW 256 DUP(?)STACK1 ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK1START: MOV AX,D

13、ATAMOV DS,AXSTART1:MOV DX,MY8255_MODEMOV AL,81HOUT DX,ALMOV DX,MY8255_CMOV AL,00HMOV SI,0200HMOV AL,11HMOV SI,ALMOV SI+1,ALMOV SI+2,ALMOV SI+3,ALMOV SI+4,ALMOV SI+5,ALMOV DI,0205H初始化 8255 工作方式方式 0,A口、 B口输出, C口高四位 输出, C 口低 4 位输入开锁电平、报警电平置 0建立缓冲区,存放要显示的键值先初始化键值为 11H,显示“ -确认键修改密码键,此处不用,返回键盘扫描保存按键值 ;按键未

14、弹起则继续循环等待弹起密码比对读 C口,用于判断是哪一列按键闭合是否为第 1 列不是则继续判断设置第 1 行第 1 列的对应的键值 ;是否为第 2 列BEGIN:CALL KEYPADCMP AL,0CHJZ RENZCMP AL,0AHJZ BEGINCALL PUTBUFCALL KEYLSJMP BEGINRENZ: CALL KEYLSCALL CRCMPCMP CX,0FFHJZ SHOW1JMP SHOW2 SHOW1: CALL SHOWCJMP START1SHOW2: CALL SHOWOJMP START1 QUIT: HLTKEYPAD PROC NEAR BEGINk:

15、 CALL DISCALL CLEARCALL CCSCANJNZ GETKEY1 GETKEY1:CALL DISJNZ GETKEY2JMP BEGINk GETKEY2:MOV CH,0FEHMOV CL,00H COLUM: MOV AL,CHMOV DX,MY8255_A OUT DX,AL MOV DX,MY8255_CIN AL,DXL1: TEST AL,01HJNZ L2MOV AL,01HJMP KCODEL2: TEST AL,02HJNZ L3密码错误密码正确键盘扫描程序显示刷新清屏扫描按键有键按下则跳置 GETKEY1再次扫描按键 ;有键按下则跳置 GETKEY2 ;

16、否则跳回开始继续循环 ;选取一行设置第 1 行第 2 列的对应的键值是否为第 3 列设置第 1 行第 3 列的对应的键值确定按键值检测是否扫描到第 4 行是则跳回到开始处没检测到第 4 行则准备检测下一列扫描是否有按键闭合子程序将 4 行全选通,读 C口取出 C口值的反值按键是否弹起子程序扫描按键,判断按键是否弹起未弹起则继续循环等待弹起清除数码管显示子程序段位置 0 即可清除数码管显示MOV AL,02HL3: TEST AL,04HJNZ NEXTMOV AL,03HJMP KCODE KCODE: ADD AL,CL JMP QUITkNEXT: ADD CL,3MOV AL,CH TE

17、ST AL,08HJZ KERRROL AL,1MOV CH,ALJMP COLUM KERR: JMP BEGINk QUITk: RET KEYPAD ENDPCCSCAN PROC NEARMOV DX,MY8255_A OUT DX,ALMOV DX,MY8255_C IN AL,DX NOT AL AND AL,0FHRETCCSCAN ENDPKEYLS PROC NEARPUSH AXKON:JNZ KONPOP AXKEYLS ENDPCLEAR PROC NEAR MOV DX,MY8255_BRET CLEAR ENDPDIS PROC NEARMOV DL,0DFHMOV

18、 AL,DLAGAIN: PUSH DXMOV DX,MY8255_AMOV AL,SIMOV BX,OFFSET DTABLE AND AX,00FFH ADD BX,AXMOV AL,BXMOV DX,MY8255_BCALL DALLYINC SIPOP DXTEST AL,01HJZ OUT1ROR AL,1MOV DL,ALJMP AGAINOUT1: POP AXDIS ENDP显示键值子程序以缓冲区存放的键值为键值表偏移找到键值并显示选通一个数码管取出缓冲区中存放键值将键值作为偏移和键值基地址相加得到相应的键值写入数码管 A Dp取下一个键值判断是否显示完?显示完,返回未显示完,

19、跳回继续PUTBUF PROC NEAR ;保存键值子程序MOV SI,DIDEC DICMP DI,01FFHJNZ GOBACKGOBACK: RETPUTBUF ENDPCRCMP PROC NEAR密码比对子程序MOV SI,0205HMOV DI,OFFSET STRINGMOV CX,0MOV BL,DICMP AL,BLJZ NEXT1JMP NEXT6 NEXT1: MOV SI,0204HMOV BL,DI+1JZ NEXT2JMP NEXT6 NEXT2: MOV SI,0203HMOV BL,DI+2JZ NEXT3JMP NEXT6 NEXT3: MOV SI,0202

20、HMOV BL,DI+3JZ NEXT4JMP NEXT6 NEXT4: MOV SI,0201HMOV BL,DI+4JZ NEXT5JMP NEXT6 NEXT5: MOV SI,0200HMOV BL,DI+5CMP AL,BL JZ QUITERJMP NEXT6密码错误,则 CX=0CCH为密码错误的标志NEXT6: MOV CX,0CHQUITER:CRCMP ENDP输出开锁电平返回键,退出开锁子程序修改密码键修改密码,数码管全灭,用于与输入密码区别开锁电平置 0SHOWO PROC NEAR MOV SI,0200H MOV AL,00H MOV SI,AL MOV SI+1,

21、AL MOV AL,10H MOV SI+2,AL MOV SI+3,AL MOV SI+4,AL MOV SI+5,AL MOV DI,0205HMOV AL,010HLOOP21:JZ LOOP22JZ LOOP23JMP LOOP21 LOOP22:JMP QUITSHO LOOP23:C ALL KEYLSMOV AL,10H MOV SI,AL MOV SI+1,AL MOV DI,0205HCALL CHANGECR QUITSHO: MOV DX,MY8255_C MOV AL,00H OUT DX,AL RET SHOWO ENDP开锁子程序显示 00CHANGECR PROC

22、 NEAR ;修改密码子程序CHG1: CALL KEYPADJZ CHG2 CALL PUTBUF CALL PUTBUFCR CALL KEYLS JMP CHG1 CHG2: CALL KEYLS CALL RING CALL DALLYS RETCHANGECR ENDPPUTBUFCR PROC NEAR XOR BX,BX MOV BL,COUNT1 MOV STRINGBX,AL MOV BL,COUNT1 INC BL MOV COUNT1,BL CMP BL,06H JNZ GOBACKCR MOV BL,0 MOV COUNT1,BL GOBACKCR: RET PUTBU

23、FCR ENDPSHOWC PROC NEAR MOV SI,0200H MOV AL,0FH MOV SI,AL MOV SI+1,AL MOV AL,10H MOV SI+2,AL MOV SI+3,AL MOV SI+4,AL MOV SI+5,AL MOV DI,0205HMOV DX,MY8255_A MOV AL,0CFH OUT DX,AL MOV DX,MY8255_B MOV AL,71H OUT DX,AL确认则发出“滴”的确认音保存修改后的密码子程序放入密码内存空间 STRING闭锁子程序显示 CC发出三声“滴”声CALL RINGCALL DALLYSMOVB L,COUNT2INC BLCMP BL,06HJZ LOOP31MOV COUNT2,BLJMP LOOP32LOOP31: MOV DX,MY8255_CMOV AL,020HMOV BL,0MOV COUNT2,BL LOOP32:JZ LOOP33JMP LOOP32 LOOP33:SHOWC ENDPRING PROC NEARMOV DX,MY8253_MODEMOV AL,36HMOV AX,0020HMOV DX,MY8253_COUNT0 OUT DX,ALMOV AL,AH取出密码错误次数,并判断是否已经 达到 6 次已达到六次,则输出报警电平

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2