;-------4*4键盘程序的使用--------
PC EQU 2
STATUS EQU 3
RA EQU 5
RB EQU 6
RC EQU 7
BIJIAO EQU 0F
JIANZHI EQU 8
BUFFER EQU 9
BUFFER1 EQU 0AH
BUFFER2 EQU 0BH
COUNTER EQU 0CH
CON1 EQU 0DH
CON2 EQU 0EH
PIC57 EQU 7FFH
Z EQU 2
;-----------------------------
ORG PIC57
GOTO MAIN
;-----------------------------
ORG 0
;-----------------------------
; 延时子程序
;----------------------------
DELAY MOVLW D'100'
MOVWF CON1
L1 MOVLW D'200'
MOVWF CON2
L2 DECFSZ CON2,1
GOTO L2
DECFSZ CON1,1
GOTO L1
RETLW 0
;-----------------------------
; 4*4键盘扫描判断子程序
;-----------------------------
SCANKEY
MOVLW B'11101111'
MOVWF RB
MOVF RB,W
ANDLW B'00001111'
MOVWF BUFFER
MOVLW B'00001111'
XORWF BUFFER,W
SKPNZ
GOTO XYB1
MOVWF BUFFER1
MOVLW 1
MOVWF JIANZHI
MOVF RB,W
MOVWF BIJIAO
GOTO QJZ
XYB1 MOVLW B'11011111'
MOVWF RB
MOVF RB,W
ANDLW B'00001111'
MOVWF BUFFER
MOVLW B'00001111'
XORWF BUFFER,W
SKPNZ
GOTO XYB2
MOVWF BUFFER1
MOVLW 5
MOVWF JIANZHI
GOTO QJZ
XYB2 MOVLW B'10111111'
MOVWF RB
MOVF RB,W
ANDLW B'00001111'
MOVWF BUFFER
MOVLW B'00001111'
XORWF BUFFER,W
SKPNZ
GOTO XYB3
MOVWF BUFFER1
MOVLW 9
MOVWF JIANZHI
MOVF RB,W
MOVWF BIJIAO
GOTO QJZ
XYB3 MOVLW B'01111111'
MOVWF RB
MOVF RB,W
ANDLW B'00001111'
MOVWF BUFFER
MOVLW B'00001111'
XORWF BUFFER,W
SKPNZ
RETLW 0
MOVWF BUFFER1
MOVLW 0DH
MOVWF JIANZHI
MOVF RB,W
MOVWF BIJIAO
QJZ MOVLW 1
MOVWF BUFFER2
MOVLW 4
MOVWF COUNTER
QJZ1 MOVF BUFFER1,W
SUBWF BUFFER2,W
SKPNZ
RETLW 1
RLF BUFFER2,1
INCF JIANZHI,1
DECFSZ COUNTER,1
GOTO QJZ1
RETLW 0
;-------------------------------
; 测试程序(注意用法,键值放在JIANZHI里)
;-------------------------------
MAIN
MOVLW 0
TRIS RC
CLRF RC
MOVLW B'00001111' ;用RB口作4*4键盘
TRIS RB
LOOP CLRF RC
CALL SCANKEY
ANDLW 0FH
SKPNZ ;根据返回值不为零,判断有无键按下
GOTO LOOP
MOVLW 0FH
ANDWF JIANZHI,W
MOVWF RC
CALL DELAY
LOOP1 MOVF BUFFER1,W
ANDWF RB,W
XORWF BIJIAO,W
SKPNZ
GOTO LOOP1
GOTO LOOP
;--------------
;-------------------------------
END
PIC单片机的4*4键盘子程序
- PIC单片机(101422)
- 键盘(38966)
- 子程序(11022)
相关推荐
pic单片机汇编程序实例
以下是一个简单的PIC单片机汇编程序示例,这个程序将实现一个LED闪烁的功能。 首先,我们需要了解PIC单片机的结构和指令集。PIC单片机是一种基于哈佛结构的8位微控制器,具有丰富的指令集和外设接口
2023-12-14 11:01:01
523

51单片机和74c922键盘问题
本帖最后由 lbb_1112 于 2015-12-4 13:48 编辑
用74c922做的键盘控制,51单片机和12864显示,按键后总是没反应进不到按键后的程序中去,74c922的输出有信号
2015-12-04 13:09:38
51单片机矩阵键盘C程序主程序
51单片机矩阵键盘C程序主程序1:void main(){uchar i,j,ki=0;j=0;while(1){i=key();//键盘循环扫描,其值赋给变量数组tableif(i!=0)//键盘子程序返回值非0,即有按键按下{ table[j]=i;//将值存在变量数组中j++;
2021-07-20 06:01:52
51单片机矩阵键盘c语言程序
51单片机矩阵键盘c语言程序,c51单片机实现矩阵键盘用数码管动态依次显示键值//4*4矩阵按键0-F4位LED轮流显示,按键从左到右从上到下0-F #include#include#define
2021-07-21 09:20:17
51系列单片机常用子程序rar下载
不知道有没有人发过,还是分享一下吧51系列单片机常用子程序.rar 2015-5-29 12:15 上传 点击文件名下载附件 2.4 MB, 下载次数: 11
2018-07-19 06:08:50
4*4键盘扫描程序+电路图
/* 程序效果:按下任意键,LED显示P0读回的数据 其中4*4的矩阵键盘接P0口 */ #include //头文件 unsigned char key=0xff;//定义一个变量用于存放按键
2018-07-13 03:05:46
4*4键盘输入频率数据,单片机写入AD9854,频率在LCD1602显示
4*4键盘输入频率数据,单片机写入AD9854,频率在LCD1602显示,有谁会吗?不会编程···
2013-04-22 16:32:46
4*4矩阵键盘扫描程序分享
由于买的最小系统开发板只有一个按键感觉不大方便调试和搞其他东东,所以又在某宝买了一个4*4矩阵键盘拓展一下按键哈。能力有限,参照之前学的51单片机例程写了份简单粗暴型的按键扫描程序,如需在大项目
2022-02-17 06:31:22
评论