久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7371|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

PIC單片機(jī)控制數(shù)碼管顯示4*4矩陣鍵盤對應(yīng)按鍵號

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:50658 發(fā)表于 2013-6-12 23:28 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
;使用C口作鍵盤掃描,7段數(shù)碼管顯示按鍵號 ,63系列通用寄存器地址:20~7FH, A0~FFH ,未達(dá)到預(yù)期目的,只用個(gè)位數(shù)顯示按鍵號時(shí)正常工作,增加按鍵號轉(zhuǎn)換(用2位數(shù)顯示),則提示“STACK OVERFLOW"--堆棧溢出.編譯后機(jī)器碼容量為1.3KB左右,未超過CALL跳轉(zhuǎn)范圍——1頁(2K) 。
#include P16C63A.INC
KEYCODE EQU  H'0020'
KEYNUM  EQU  H'0021'
CC    EQU  H'0024'
TABADD EQU H'0025'
SW   EQU H'0026'
GW   EQU H'0027'
;PD   EQU H'0028'

ORG H'0000'
GOTO MAIN
ORG H'0010'

MAIN  MOVLW H'00'
      TRIS PORTA
      TRIS PORTB ;RB口全為輸出,用作驅(qū)動7段數(shù)碼管
      MOVWF KEYNUM
      MOVLW H'F0'  
      TRIS PORTC ;  設(shè)置RC低四位為輸出,高四位為輸入
      MOVLW TABLE
      MOVWF TABADD
      MOVLW H'0001'
;      MOVWF PD   ;用來判斷按鍵號是否大于9

LOOP   
      CALL KEYSCAN
   ;   CALL JUDGE     ;判斷是按鍵號是否大于9
   ;   XORLW H'0001'
   ;   BTFSS STATUS,Z
       CALL XIAO
   ;   GOTO DASHU
XS    CALL DISP_2
      GOTO LOOP    ;循環(huán)掃描、顯示按鍵號

JUDGE      
      MOVLW H'0A'
      SUBWF KEYNUM,0
      BTFSC STATUS,0  ; C標(biāo)志
   ;   RETLW 0  ;小于10
   ;   RETLW 1  ; 10以上的按鍵號
      GOTO XIAO
      GOTO DASHU

XIAO  MOVLW 0
      MOVWF SW
      MOVF KEYNUM,0
      MOVWF GW
      RETLW 0
     ; GOTO XS

DASHU   
      MOVLW H'01'
      MOVWF SW
      MOVLW H'0A'
      SUBWF KEYNUM,0
      MOVWF GW
      RETLW 0
     ; GOTO XS  

DISP_2
      MOVLW H'02'
      MOVWF PORTA
      MOVF SW,0
      CALL DISP
      CALL DELAY

      MOVLW H'01'
      MOVWF PORTA
      MOVF GW,0
      CALL DISP
      CALL DELAY
      RETLW 0

DELAY MOVLW 0
      MOVWF CC
LL    DECFSZ CC,1
      GOTO LL
      RETLW 0

DISP  ; MOVF KEYNUM,0                    ;輸入W,輸出W
      ADDWF TABADD,0  
      CALL CONV
      MOVWF PORTB
      RETLW 0
CONV  MOVWF PCL   ;取碼,輸入W(0~F),輸出W
TABLE RETLW H'C0'
      RETLW H'F9'
      RETLW H'A4'
      RETLW H'B0'
      RETLW H'99'
      RETLW H'92'
      RETLW H'82'
      RETLW H'F8'
      RETLW H'80'
      RETLW H'90'
      RETLW H'88'
      RETLW H'83'
      RETLW H'C6'  
      RETLW H'A1'
      RETLW H'86'
      RETLW H'8E'    ;0~F 數(shù)碼管代碼
      RETLW H'C0'

KEYSCAN  MOVLW H'FE'  ;第一行置低(RC0輸出0)
         MOVWF PORTC
         NOP
         MOVF PORTC,0 ;讀RC各端口狀態(tài)
         ANDLW H'F0' ;屏蔽低四位,只需要低四位來判斷
         MOVWF KEYCODE ;保存端口狀態(tài)
         MOVLW H'F0'
         SUBWF KEYCODE,0 ;與初值比較,看是否有鍵按下
         BTFSS STATUS,Z  ;有鍵按下(不等于初值,Z為零)則結(jié)束掃描
         GOTO  GETNUM1

         MOVLW H'FD'  ;第二行置低(RC1輸出0)
         MOVWF PORTC
         NOP
         MOVF PORTC,0 ;讀RC各端口值
         ANDLW H'F0' ;屏蔽低四位,只需要低四位來判斷
         MOVWF KEYCODE ;保存端口狀態(tài)
         MOVLW H'F0'
         SUBWF KEYCODE,0 ;與初值比較,看是否有鍵按下
         BTFSS STATUS,Z  ;有鍵按下(不等于初值,Z為零)則結(jié)束掃描
         GOTO  GETNUM2

         MOVLW H'FB'  ;第三行置低(RC2輸出0)
         MOVWF PORTC
         NOP
         MOVF PORTC,0 ;讀RC各端口值
         ANDLW H'F0' ;屏蔽低四位,只需要低四位來判斷
         MOVWF KEYCODE ;保存端口狀態(tài)
         MOVLW H'F0'
         SUBWF KEYCODE,0 ;與初值比較,看是否有鍵按下
         BTFSS STATUS,Z  ;有鍵按下(不等于初值,Z為零)則結(jié)束掃描
         GOTO  GETNUM3

         MOVLW H'F7'  ;第四行置低(RC3輸出0)
         MOVWF PORTC
         NOP
         MOVF PORTC,0 ;讀RC各端口值
         ANDLW H'F0' ;屏蔽低四位,只需要低四位來判斷
         MOVWF KEYCODE ;保存端口狀態(tài)
         MOVLW H'F0'
         SUBWF KEYCODE,0 ;與初值比較,看是否有鍵按下
         BTFSS STATUS,Z  ;有鍵按下(不等于初值,Z為零)則結(jié)束掃描
         GOTO  GETNUM4
FH       RETLW  0    ; 子程序返回

QUDOU    MOVF PORTC,0  ;去抖處理
         SUBWF KEYCODE,0
         BTFSC STATUS,Z
         GOTO QUDOU
         GOTO FH


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 99re视频| 欧美视频偷拍 | av中文在线 | 国产专区视频 | 亚洲国产午夜 | 久久99精品久久久久久国产越南 | 国产无套一区二区三区久久 | 一区二区三区日本 | 欧美精品一区二区三区在线播放 | 91啪亚洲精品 | 美国一级毛片a | 99精品视频免费在线观看 | 午夜激情影院 | 污免费网站| 天天激情综合 | 中文字幕精品一区 | 午夜久久 | 中文字幕国产视频 | 亚洲精品一区二区三区中文字幕 | 综合久久综合久久 | 一区二区三区国产好的精 | 国产一区二区三区久久 | 国产精品视频一二三区 | 日本午夜免费福利视频 | 亚洲国产精品久久久久婷婷老年 | 国产a视频 | 天天宗合网 | 日日夜夜操天天干 | 成av在线| 国产激情在线 | 蜜桃视频在线观看www社区 | 99pao成人国产永久免费视频 | av影片在线 | 成人h动漫亚洲一区二区 | 91精品国产综合久久久久久漫画 | 中文字幕视频在线观看免费 | 99久久久久 | 最新日韩精品 | 日韩电影免费观看中文字幕 | 国产一区二区在线免费视频 | 日本淫视频 |