欧美视频综合-欧美视频中文字幕-欧美视频在线观在线看-欧美视频在线观看网站-直接观看黄网站免费视频-正在播放久久

機(jī)電之家資源網(wǎng)
單片機(jī)首頁(yè)|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開(kāi)發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開(kāi)發(fā)
培訓(xùn)信息
贊助商
pic單片機(jī)鍵盤(pán)程序
pic單片機(jī)鍵盤(pán)程序
 更新時(shí)間:2008-9-30 16:53:32  點(diǎn)擊數(shù):6
【字體: 字體顏色

;該pic單片機(jī)鍵盤(pán)程序通過(guò)PORTB的"電平變化中斷"進(jìn)行鍵盤(pán)的輸入,使按下K1鍵時(shí)第一個(gè)數(shù)碼管顯示1,按下K2
;鍵時(shí)第一個(gè)數(shù)碼管上顯示2,按下K3鍵時(shí)第一個(gè)數(shù)碼管上顯示3,按下K4鍵時(shí)第一個(gè)數(shù)碼管上顯示4
;對(duì)鍵盤(pán)的掃描采用中斷方式

LIST P=18F458
INCLUDE "P18F458.INC"

;所用的寄存器
JIANR EQU 0X20
DEYH EQU JIANR+1
DEYL EQU JIANR+2
ORG 0X00
GOTO MAIN
ORG 0X08
GOTO INTSERVE
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
;***************初始化子程序***************
INITIAL
CLRF INTCON ;禁止總中斷和外圍中斷
BSF INTCON,RBIE ;B口變位中斷允許
BCF INTCON2,7 ;使弱上拉有效
BSF INTCON2,0 ;B口變位中斷高優(yōu)先級(jí)
BSF RCON,7 ;使能中斷優(yōu)先級(jí)
BCF TRISA,5 ;置RA5為輸出方式,以輸出鎖存信號(hào)
BCF TRISB,1
BCF TRISA,3
BCF TRISE,0
BCF TRISE,1
BSF TRISB,4 ;設(shè)置與鍵盤(pán)有關(guān)的各口的輸入輸出方式
BCF TRISC,5
BCF TRISC,3 ;設(shè)置SCK與SDO為輸出方式
MOVLW 0XC0
MOVWF SSPSTAT ;設(shè)置SSPSTAT寄存器
MOVLW 0X30
MOVWF SSPCON1 ;設(shè)置SPI的控制方式,允許SSP方式,并在時(shí)鐘下降
;沿發(fā)送數(shù)據(jù),與“74HC595當(dāng)其SCLK從低到高電平
;跳變時(shí),串行輸入數(shù)據(jù)(DI)移入寄存器"的特點(diǎn)相對(duì)應(yīng)。
MOVLW 0X01
MOVWF JIANR ;顯示值寄存器賦初值
BCF PORTB,1
BCF PORTA,3
BCF PORTE,0
BCF PORTE,1 ;K1,K2,K3,K4四條列線(xiàn)置0,為電平變化中斷的
;產(chǎn)生創(chuàng)造初始條件
MOVF PORTB,W ;讀PORTB端口,建立變位中斷的初始條件
; (由高到低時(shí)中斷)
RETURN ;返回
;*************中斷服務(wù)子程序*****************
INTSERVE NOP
BCF INTCON,RBIF ;中斷標(biāo)志清0
CALL KEYDELAY ;調(diào)用8ms的軟件延時(shí)子程序,以消除抖動(dòng)
MOVF PORTB,W ;讀PORTB的值,并同時(shí)改變中斷發(fā)生的條件,可屏蔽
;一次按鍵松開(kāi)時(shí)產(chǎn)生的無(wú)效的中斷,又可以防止按鍵
;時(shí)間過(guò)長(zhǎng)發(fā)生連續(xù)中斷
BTFSC PORTB,4
RETFIE ;判斷為干擾,則返回,并可以屏蔽一次無(wú)用的中斷
CALL KEYSERVE ;調(diào)用鍵服務(wù)子程序,確定鍵值
BCF PORTB,1
BCF PORTA,3
BCF PORTE,0
BCF PORTE,1 ;送低電平至K1,K2,K3,K4,以防止鍵掃描時(shí)改變
;K1,K2,K3,K4的電平,從而改變中斷條件
BCF INTCON,RBIF ;鍵掃描時(shí)可能會(huì)產(chǎn)生“電平變化”而使RBIF
;置1,再清除一次RBIF以求避免額外中斷
MOVF JIANR,W ;把需要顯示的值送給W寄存器
CALL CONVERT ;查要顯示的段碼
CALL DISPLAY ;調(diào)用顯示子程序
RETFIE ;中斷返回
;***************顯示子程序******************
DISPLAY
CLRF PORTA
MOVWF SSPBUF
LOOP NOP
BTFSS PIR1,SSPIF
GOTO LOOP
NOP
BCF PIR1,SSPIF
BSF PORTA,5 ;詳細(xì)程序語(yǔ)句請(qǐng)參考3. 1. 3節(jié)
RETURN
;*********鍵盤(pán)去抖子程序(8ms的延時(shí))******************
KEYDELAY
MOVLW 0X0A
MOVWF DEYH
AGAIN2 MOVLW 0XFF
MOVWF DEYL
AGAIN1 DECFSZ DEYL,1
GOTO AGAIN1
DECFSZ DEYH,1
GOTO AGAIN2 ;具體程序語(yǔ)句參考3. 2節(jié)
RETURN
;***************鍵服務(wù)子程序******************
KEYSERVE
JIANZHI ;確定鍵值的子程序
BCF PORTB,1
BCF PORTA,3
MOVLW 0X03
MOVWF PORTE ;K1,K2置低電平,K3,K4置高電平
NOP
NOP ;使引腳電平穩(wěn)定
BTFSS PORTB,4
GOTO K1K2 ;RB4為0,表示按鍵為K1,K2中的一個(gè)
GOTO K3K4 ;RB4為1,表示按鍵為K3,K4中的一個(gè)

K1K2 BCF PORTB,1
BSF PORTA,3 ;K1置低電平,K2置高電平
NOP
NOP ;使引腳電平穩(wěn)定
BTFSS PORTB,4
GOTO K1 ;RB4為0,表示按鍵為K1
GOTO K2 ;RB4為1,表示按鍵為K2

K3K4 BCF PORTE,0
BSF PORTE,1 ;K3置低電平,K4置高電平
NOP
NOP ;使引腳電平穩(wěn)定
BTFSS PORTB,4
GOTO K3 ;RB4為0,表示按鍵為K3
GOTO K4 ;RB4為1,表示按鍵為K4,以上對(duì)鍵盤(pán)進(jìn)行掃描,
;來(lái)確定是哪一個(gè)鍵按下
K1 MOVLW 0X03
MOVWF JIANR
GOTO RET
K2 MOVLW 0X05
MOVWF JIANR
BCF PORTA,3
GOTO RET
K3 MOVLW 0X07
MOVWF JIANR
GOTO RET
K4 MOVLW 0X09
MOVWF JIANR ;以上根據(jù)按下的鍵把相應(yīng)的值送給JIANR
BCF PORTE,1
RET NOP
RETURN
;****************************************
MAIN NOP
CALL INITIAL ;調(diào)用初始化子程序
BSF INTCON,GIE ;總中斷允許
HERE GOTO HERE ;等待中斷發(fā)生
END

  • 上一篇: PIC16單片機(jī)與PC機(jī)串行通信
  • 下一篇: 沒(méi)有了
  • 發(fā)表評(píng)論   告訴好友   打印此文  收藏此頁(yè)  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評(píng)論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對(duì)此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請(qǐng)聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話(huà):0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國(guó)行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營(yíng)許可證:浙B2-20080178-1