Re: PIC18F452可以正常執行的鍵盤掃描同時做WAKEUP動作的程式,竟然用在PIC18F4520就不正常了。附程式,認為程度夠的人看看吧,並提供些意見吧。
|
||||
---|---|---|---|---|
資深會員
|
什麼?
程度太差不能看?! 純推不下 感謝大大無私分享...
發表於: 2006/8/1 12:41
|
|||
木亟缶夬金戔
彳艮缶夬金戔 走召缶夬金戔 |
||||
|
Re: PIC18F452可以正常執行的鍵盤掃描同時做WAKEUP動作的程式,竟然用在PIC18F4520就不正常了。附程式,認為程度夠的人看看吧,並提供些意見吧。
|
||||
---|---|---|---|---|
高級會員
|
快逃................
程度太差不能看
發表於: 2006/8/1 9:24
|
|||
微電腦自動控制設計,產品製造
才疏學淺,若有錯誤敬請指正 |
||||
|
Re: PIC18F452可以正常執行的鍵盤掃描同時做WAKEUP動作的程式,竟然用在PIC18F4520就不正常了。附程式,認為程度夠的人看看吧,並提供些意見吧。
|
||||
---|---|---|---|---|
資深會員
|
對不起
小的程度太差 不敢看 純路過 幫你推 謝謝
發表於: 2006/8/1 9:09
|
|||
|
PIC18F452可以正常執行的鍵盤掃描同時做WAKEUP動作的程式,竟然用在PIC18F4520就不正常了。附程式,認為程度夠的人看看吧,並提供些意見吧。
|
||||
---|---|---|---|---|
新會員
|
鍵盤掃描同時做WAKEUP動作的程式附上如下,實在搞不懂,PIC18452和PIC184520的各項設定不同處都找過了,為何在452可以正常動作,而4520就做異常的動作。
LIST P = 18F4520 #INCLUDE <P18F4520.INC> CONFIG OSC = XT,LVP = OFF,IESO = ON TEMP EQU 0x00 ORG 0x00 GOTO START ORG 0x08 GOTO ServiceInterrupt ORG 0x20 START MOVLW 0xF7 ; 共有F7、FB、FD、FE四種模式 MOVWF TEMP CLRF TRISA GOTO InitPortB ;initalize port B InitInt BSF RCON,IPEN BSF INTCON,GIEH LOOP SLEEP ;sleep till key is hit NOP GOTO LOOP ServiceInterrupt BTFSC INTCON,RBIF ;change on rb int? GOTO ServiceWakup ;yes then service RETURN ;or return to sleep ServiceWakup BCF INTCON,RBIE ;clear mask BCF INTCON,RBIF ;clear flag ;****** 判斷跳到哪個COLUMN ************ MOVF PORTB,W ANDLW B'00001000' BZ COLUMN1 MOVF PORTB,W ANDLW B'00000100' BZ COLUMN2 MOVF PORTB,W ANDLW B'00000010' BZ COLUMN3 MOVF PORTB,W ANDLW B'00000001' BZ COLUMN4 ;************************************** RETFIE ;************* 鍵盤掃描 4x4 *********************** ;**** COLUMN 1 *************** COLUMN1 MOVF PORTB,W ANDLW B'10001000' BZ BUTTON0 MOVF PORTB,W ANDLW B'01001000' BZ BUTTON1 MOVF PORTB,W ANDLW B'00101000' BZ BUTTON2 MOVF PORTB,W ANDLW B'00011000' BZ BUTTON3 MOVLW 0xFB MOVWF TEMP GOTO InitPortB ;****************************** ;**** COLUMN 2 *************** COLUMN2 MOVF PORTB,W ANDLW B'10000100' BZ BUTTON4 MOVF PORTB,W ANDLW B'01000100' BZ BUTTON5 MOVF PORTB,W ANDLW B'00100100' BZ BUTTON6 MOVF PORTB,W ANDLW B'00010100' BZ BUTTON7 MOVLW 0xFD MOVWF TEMP GOTO InitPortB ;****************************** ;**** COLUMN 3 *************** COLUMN3 MOVF PORTB,W ANDLW B'10000010' BZ BUTTON8 MOVF PORTB,W ANDLW B'01000010' BZ BUTTON9 MOVF PORTB,W ANDLW B'00100010' BZ BUTTONA MOVF PORTB,W ANDLW B'00010010' BZ BUTTONB MOVLW 0xFE MOVWF TEMP GOTO InitPortB ;****************************** ;**** COLUMN 4 *************** COLUMN4 MOVF PORTB,W ANDLW B'10000001' BZ BUTTONC MOVF PORTB,W ANDLW B'01000001' BZ BUTTOND MOVF PORTB,W ANDLW B'00100001' BZ BUTTONE MOVF PORTB,W ANDLW B'00010001' BZ BUTTONF MOVLW 0xF7 MOVWF TEMP GOTO InitPortB ;****************************** ;****************** 鍵盤掃描 4x4 ********************** ;*************** Service Buttons *********************** BUTTON0 MOVLW 0x00 MOVWF PORTA MOVLW 0xFB MOVWF TEMP GOTO InitPortB BUTTON1 MOVLW 0x01 MOVWF PORTA MOVLW 0xFB MOVWF TEMP GOTO InitPortB BUTTON2 MOVLW 0x02 MOVWF PORTA MOVLW 0xFB MOVWF TEMP GOTO InitPortB BUTTON3 MOVLW 0x03 MOVWF PORTA MOVLW 0xFB MOVWF TEMP GOTO InitPortB BUTTON4 MOVLW 0x04 MOVWF PORTA MOVLW 0xFD MOVWF TEMP GOTO InitPortB BUTTON5 MOVLW 0x05 MOVWF PORTA MOVLW 0xFD MOVWF TEMP GOTO InitPortB BUTTON6 MOVLW 0x06 MOVWF PORTA MOVLW 0xFD MOVWF TEMP GOTO InitPortB BUTTON7 MOVLW 0x07 MOVWF PORTA MOVLW 0xFD MOVWF TEMP GOTO InitPortB BUTTON8 MOVLW 0x08 MOVWF PORTA MOVLW 0xFE MOVWF TEMP GOTO InitPortB BUTTON9 MOVLW 0x09 MOVWF PORTA MOVLW 0xFE MOVWF TEMP GOTO InitPortB BUTTONA MOVLW 0x0A MOVWF PORTA MOVLW 0xFE MOVWF TEMP GOTO InitPortB BUTTONB MOVLW 0x0B MOVWF PORTA MOVLW 0xFE MOVWF TEMP GOTO InitPortB BUTTONC MOVLW 0x0C MOVWF PORTA MOVLW 0xF7 MOVWF TEMP GOTO InitPortB BUTTOND MOVLW 0x0D MOVWF PORTA MOVLW 0xF7 MOVWF TEMP GOTO InitPortB BUTTONE MOVLW 0x0E MOVWF PORTA MOVLW 0xF7 MOVWF TEMP GOTO InitPortB BUTTONF MOVLW 0x0F MOVWF PORTA MOVLW 0xF7 MOVWF TEMP GOTO InitPortB ;******************************************************* InitPortB CLRF PORTB CLRF LATB MOVLW 0x0F ; 使PORTB、 MOVWF ADCON1 ; Digital I/O MOVLW 0xF0 ; RB0-RB3 outputs MOVWF TRISB ; RB4-RB7 inputs MOVFF TEMP,PORTB BCF INTCON2,RBPU ;enable pull up BCF INTCON,RBIE ;disable mask MOVF PORTB,W ;read port BCF INTCON,RBIF ;clear flag BSF INTCON,RBIE ;enable mask GOTO InitInt END
發表於: 2006/8/1 8:41
|
|||
|