访问电脑版页面

导航:老古开发网手机版Pic单片机PIC单片机C语言编程

PIC单片机的4*4键盘子程序

导读: 本内容提供了PIC单片机的4*4键盘的子程序,欢迎广大单片机爱好者借鉴
关键字:
4*4,子程序,键盘,PIC单片机

<!--StartFragment-->;-------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

 

来源:电子发烧友   作者:Spring  2011/4/27 10:07:00
栏目: [ PIC单片机C语言编程]

相关阅读

LCD驱动HT1621的PIC单片机源代码

PIC单片机引脚中断程序的设计技巧

PIC单片机与PC机实现串行通信的设计

基于PIC单片机的数据采集系统设计

PIC单片机如何进行编程

PIC单片机低功耗电路的设计方法介绍

PIC单片机位域结构的应用解析

PIC单片机的各种清零指令解析

pic单片机编程串烧,pic单片机汇编语言讲解上篇

浅谈PIC8位单片机中的RAM和汇编程序的关系

PIC单片机实现延时x毫秒的功能设计

PIC单片机对LED数码管矩阵键盘显示的设计

PIC单片机开发的若干问题

PIC单片机AD转化器编程方法

PIC单片机对豆浆机的控制设计

基于PIC单片机直流电压表的汇编程序分享

PIC单片机控制时钟芯片DS1302汇编程序

PIC16C711 直流电压表汇编程序

PIC单片机的读写93XCXX程序

基于PICC 编译环境编写PIC单片机程序