PIC單片機(jī)鍵盤掃描匯編程序
;本程序用于PIC單片機(jī)外接鍵盤的識別,通過匯編程序,使按下K1鍵時第一個數(shù)碼管顯示1,按下K2鍵時第一
;個數(shù)碼管上顯示2,按下K3鍵時第一個數(shù)碼管上顯示3,按下K4鍵時第一個數(shù)碼管上顯示4,
;匯編程序對鍵盤的掃描采用查詢方式
LIST P=18F458
INCLUDE "P18F458.INC"
;所用的寄存器
JIANR EQU 0X20
FLAG EQU JIANR+1 ;標(biāo)志寄存器
DEYH EQU JIANR+2
DEYL EQU JIANR+3
F0 EQU 0 ;FLAG的第0位定義為F0
ORG 0X00
GOTO MAIN
ORG 0X30
;*************以下為鍵盤碼值轉(zhuǎn)換表******************
CONVERT ADDWF PCL,1
RETLW 0XC0 ;0,顯示段碼與具體的硬件連接有關(guān)
RETLW 0XF9 ;1
RETLW 0XA4 ;2
RETLW 0XB0 ;3
RETLW 0X99 ;4
RETLW 0X92 ;5
RETLW 0X82 ;6
RETLW 0XD8 ;7
RETLW 0X80 ;8
RETLW 0X90 ;9
RETLW 0X88 ;A
RETLW 0X83 ;B
RETLW 0XC6 ;C
RETLW 0XA1 ;D
RETLW 0X86 ;E
RETLW 0X8E ;F
RETLW 0X7F ;"."
RETLW 0XBF ;"-"
RETLW 0X89 ;H
RETLW 0XFF ;DARK
RETURN
;***************PIC單片機(jī)鍵盤掃描匯編程序初始化子程序*****************
INITIAL
BCF TRISA,5 ;置RA5為輸出方式,以輸出鎖存信號
BCF TRISB,1
BCF TRISA,3
BCF TRISE,0
BCF TRISE,1
BSF TRISB,4 ;設(shè)置與鍵盤有關(guān)的各口的輸入輸出方式
BCF TRISC,5
BCF TRISC,3 ;設(shè)置SCK與SDO為輸出方式
BCF INTCON,GIE ;關(guān)閉所有中斷
MOVLW 0XC0
MOVWF SSPSTAT ;設(shè)置SSPSTAT寄存器
MOVLW 0X30
MOVWF SSPCON1 ;設(shè)置SPI的控制方式,允許SSP方式,并且時鐘下降
;沿發(fā)送數(shù)據(jù),與"74HC595當(dāng)其SCLK從低到高電平
;跳變時,串行輸入數(shù)據(jù)(DI)移入寄存器"的特點相對應(yīng)
MOVLW 0X01
MOVWF JIANR ;顯示值寄存器(復(fù)用為鍵值寄存器)賦初值
CLRF FLAG ;清除標(biāo)志寄存器
RETURN ;返回
;**************顯示子程序*****************
DISPLAY
CLRF PORTA
MOVWF SSPBUF
AGAIN
BTFSS PIR1,SSPIF
GOTO AGAIN
NOP
BCF PIR1,SSPIF
BSF PORTA,5 ;詳細(xì)的程序語句請參考http://www.51hei.com pic單片機(jī)教程語句部分,可在首頁搜索。
RETURN
;**************查鍵子程序*****************
KEYSCAN
BCF PORTB,1
BCF PORTA,3
BCF PORTE,0
BCF PORTE,1 ;K1,K2,K3,K4四條列線置0
NOP
NOP ;延時,使引腳的電平穩(wěn)定
BTFSC PORTB,4
BCF FLAG,F(xiàn)0 ;RB4為1,表示沒鍵按下,清除標(biāo)志F0
NOP
BTFSS PORTB,4
BSF FLAG,F(xiàn)0 ;RB4為0,表示有鍵按下,建立標(biāo)志F0
RETURN
單片機(jī)相關(guān)文章:單片機(jī)教程
單片機(jī)相關(guān)文章:單片機(jī)視頻教程
單片機(jī)相關(guān)文章:單片機(jī)工作原理
評論