51单片机的4×4键盘识别与74LS164驱动数码显示
来源:互联网 发布:易趣网与淘宝网的不同 编辑:程序博客网 时间:2024/06/05 00:21
;P1口外接4×4键盘,输出使用74LS164驱动一位数码显示器。
;当按下任一键时,在数码显示器上显示键值。
;程序用汇编语言编写,用PROTEUS仿真调试的画面如下:
;图片链接:http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/album/item/50c443507b7e3a43377abec1.html#
;程序如下:
ORG 0000H
LJMP START
ORG 0030H
START:
MOV P1, #255
MOV 60H, #16
MAIN:
CALL DISPLAY
;SJMP $
M_LOOP:
CALL K_SCAN ;扫描程序
JB ACC.4, M_LOOP
LJMP MAIN
;---------------------------------------
DISPLAY:
MOV A, 60H
MOV DPTR, #D_TAB ;码表首地址
MOVC A, @A + DPTR
CPL A
MOV R2, #8
INI1:
RRC A
MOV P3.0, C ;A中低位输出至P3.0
CLR P3.1 ;移位脉冲
SETB P3.1
DJNZ R2, INI1 ;移位8次
RET
;-------------------------
D_TAB: ;段码表
DB 03FH, 006H, 05BH, 04FH
DB 066H, 06DH, 07DH, 007H
DB 07FH, 06FH, 077H, 07CH
DB 039H, 05EH, 079H, 071H, 000H
;---------------------------------------
K_SCAN:
MOV P1, #240 ;各行皆为0
MOV A, P1 ;读出列
CJNE A, #240, COW ;有键按下转移
SETB ACC.4 ;没有按键的标记
RET
;-------------------------
COW:
MOV P1, #15 ;各列皆为0
ADD A, P1
MOV 60H, A ;保存键码
;-------------------------
MOV DPTR, #KEY_TAB ;键码表首地址
MOV R2, #0 ;从第0个开始查
K_S1:
MOV A, R2
INC R2
MOVC A, @A + DPTR
CJNE A, 60H, K_S1 ;与60H内容比较,不等则继续查
DEC R2
CJNE R2, #16, K_ED
SETB ACC.4 ;没有按键的标记
RET
;-------------------------
K_ED: ;有键按下
MOV 60H, R2 ;保存按键号码
CALL DELAY ;消除抖动
WAIT:
MOV P1, #0F0H
MOV A, P1
CJNE A, #0F0H, WAIT ;等待释放
CLR A
RET
;-------------------------
KEY_TAB: ;键码表
DB 07EH, 0BEH, 0DEH, 0EEH
DB 07DH, 0BDH, 0DDH, 0EDH
DB 07BH, 0BBH, 0DBH, 0EBH
DB 077H, 0B7H, 0D7H, 0E7H
;---------------------------------------
DELAY: ;延时
MOV R5, #10
D2: MOV R6, #2
D1: MOV R7, #248
DJNZ R7, $
DJNZ R6, D1
DJNZ R5, D2
RET
;---------------------------------------
END
- 51单片机的4×4键盘识别与74LS164驱动数码显示
- 74LS164(74HC164)单片机C51驱动
- 51 单片机 C 语言编程:4×4键盘、164 驱动显示、并发音
- 基于 74LS164 的 LED 温度显示 设计
- 74ls164驱动数码管(共阳)
- n久前的51单片机4*4键盘加4数码管显示汇编程序
- 单片机实验——4X4矩阵键盘识别技术
- 单片机4×4矩阵键盘的工作原理与编程
- 51 单片机汇编语言--矩阵键盘的驱动
- 74LS164 和 4094 的典型应用
- 基于51单片机的4×4矩阵键盘电子琴
- 51单片机的4x4矩阵键盘扫描例程(C51)
- c52单片机的4*4键盘编码
- 51单片机STC89C52 矩阵键盘数码管显示
- 51单片机 数码管的显示与译码器
- 51单片机的独立键盘
- 基于51单片机的74HC164驱动六位数码管动态显示程序
- 单片机驱动PS/2键盘
- 51单片机利用74HC595驱动数码管
- 按键控制移位显示
- 用汇编语言编写查表程序
- #UML#UML类图
- 关于51单片机外部中断的触发方式
- 51单片机的4×4键盘识别与74LS164驱动数码显示
- 智能交通灯
- 利用单片机控制频率合成器 MC145151-2 的输出频率
- 用80x86汇编语言读写系统时间
- 用80x86汇编语言编程:输入后反序显示
- 用80x86汇编语言编程:键盘输入与显示输出
- 51单片机2个外部中断的应用
- 数码管显示 0000-9999计数器
- 淘宝双飞翼布局,两边固定中间自适应布局。中间内容先显示。