欢迎来到天天文库
浏览记录
ID:30284372
大小:112.04 KB
页数:15页
时间:2018-12-28
《矩阵键盘汇编程序》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、4*4矩阵键盘扫描汇编程序(基于51单片机) // 程序名称:4-4keyscan.asm;// 程序用途:4*4矩阵键盘扫描检测;// 功能描述:扫描键盘,确定按键值。程序不支持双键同时按下,;// 如果发生双键同时按下时,程序将只识别其中先扫描的按键;// 程序入口:void;// 程序出口:KEYNAME,包含按键信息、按键有效信息、当前按键状态;//====================================================
2、==================PROC KEYCHKKEYNAME DATA 40H ;按键名称存储单元 ;(b7-b5纪录按键状态,b4位为有效位, ;b3-b0纪录按键)KEYRTIME DATA 43H ;重复按键时间间隔SIGNAL DATA 50H
3、 ;提示信号时间存储单元KEY EQU P3 ;键盘接口(必须完整I/O口)KEYPL EQU P0.6 ;指示灯接口RTIME EQU 30 ;重复按键输入等待时间KEYCHK:;//=============按键检测程序============================================= MOV KEY,#0FH
4、 ;送扫描信号 MOV A,KEY ;读按键状态 CJNE A,#0FH,NEXT1 ;ACC<=0FH; CLR C ;Acc等于0FH,则CY为0,无须置0NEXT1:; SETB C ;Acc不等于0FH,则ACC必小于0FH,
5、 ;CY为1,无须置1 MOV A,KEYNAME ANL KEYNAME,#1FH ;按键名称屏蔽高三位 RRC A ;ACC带CY右移一位,纪录当前按键状态 ANL A,#0E0H ;屏蔽低五位 ORL KEYNAME,A ;保留按键状态;//=============判别按键状态,决定是否执
6、行按键扫描======================== CJNE A,#0C0H,NEXT2 ;110按键稳定闭合,调用按键检测子程序 SJMP KEYSCANNEXT2: CJNE A,#0E0H,NEXT3 ;111按键长闭合,重复输入允许判断 SJMP WAIT NEXT3: CJNE A,#0A0H,EXIT ;101干扰,当111长闭合处理 ORL
7、 KEYNAME,#0E0HWAIT: MOV A,KEYRTIME JNZ EXIT ;时间没到,退出 ;//=============键盘扫描程序==============================================KEYSCAN: MOV R1,#0 ;初始化列地址 MOV R3,#11110111B ;初始化扫描码LOOP:
8、 MOV A,R3 RL A MOV R3,A ;保留扫描码 MOV KEY,A ;送扫描码 MOV A,KEY ;读键盘 ORL A,#
此文档下载收益归作者所有