汇编语言-多功能密码锁(3)

2019-03-29 10:32

八、流程图

主程序流程图

否 是否按下确初始化8255 开始 初始化8086 输入密码 认键?

密码比对子程序 闭锁子程序

密 码 是 否 否 正

确? 是

开锁子程序 结束 11

修改密码子程序流程图 开锁子程序流程图

开始 键盘扫描 存入密码空间

保存键值 是 否 按 否 下确认 键?

是 调用发声子程序

结束

开始 输出开锁电平,显示“00” 键盘扫描 是 返回键是否按下? 否 否 修改键是否按下? 是 调用修改密码子程序 关开锁电平 结束 12

闭锁子程序流程图是 开始 显示“FF” 发出警告音

密码错误次数增1

是 否 已 达 到 六 否 次错误?

是 输出报警电平 密码错误次数置0 按键扫描

返回按键是否按

下? 是 结束

13

九、程序代码

IOY0 EQU 0200H ;8255片选端口始地址 MY8255_A EQU IOY0+00H*2 ;8255的A口地址 MY8255_B EQU IOY0+01H*2 ;8255的B口地址 MY8255_C EQU IOY0+02H*2 ;8255的C口地址

MY8255_MODE EQU IOY0+03H*2 ;8255的控制寄存器地址 IOY1 EQU 0400H ;8253片选端口始地址 MY8253_COUNT0 EQU IOY1+00H*2 ;8253计数器0端口地址 MY8253_COUNT1 EQU IOY1+01H*2 ;8253计数器1端口地址 MY8253_COUNT2 EQU IOY1+02H*2 ;8253计数器2端口地址 MY8253_MODE EQU IOY1+03H*2 ;8253控制寄存器端口地址

DATA SEGMENT

COUNT1 DB 00H

COUNT2 DB 00H ;错误密码次数 DTABLE

DB

3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,3FH,39H,5EH,79H,71H,00H,40H ;键值表,0~F对应的7段数码管的段位值

;DTABLE[11]=3FH对应键值11,显示\

;DTABLE[16]=00H,数码管熄灭

;DATABLE[17]=04H,显示数码管\

STRING DB 01H,02H,03H,04H,05H,06H ;初始密码,密码内存空间 DATA ENDS

STACK1 SEGMENT STACK DW 256 DUP(?) STACK1 ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,SS:STACK1

START: MOV AX,DATA

MOV DS,AX

START1:MOV DX,MY8255_MODE ;初始化8255工作方式

MOV AL,81H ;方式0,A口、B口输出,C口高四位输出,C口低4位输入

14

OUT DX,AL

MOV DX,MY8255_C ;开锁电平、报警电平置0 MOV AL,00H OUT DX,AL

MOV SI,0200H ;建立缓冲区,存放要显示的键值 MOV AL,11H ;先初始化键值为11H,显示“-” MOV [SI],AL MOV [SI+1],AL MOV [SI+2],AL MOV [SI+3],AL MOV [SI+4],AL MOV [SI+5],AL MOV DI,0205H

BEGIN:

CALL KEYPAD ; CMP AL,0CH ; JZ RENZ

CMP AL,0AH ; JZ BEGIN

CALL PUTBUF ; CALL KEYLS ; JMP BEGIN

RENZ: CALL KEYLS

CALL CRCMP ; CMP CX,0FFH JZ SHOW1

JMP SHOW2

SHOW1: CALL SHOWC ; JMP START1

SHOW2: CALL SHOWO ; ; JMP START1

QUIT: HLT

KEYPAD PROC NEAR ; 键盘扫描 确认键

修改密码键,此处不用,返回键盘扫描 保存按键值

按键未弹起则继续循环等待弹起 密码比对 密码错误 密码正确 键盘扫描程序

15


汇编语言-多功能密码锁(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:名言警句

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: