Re: 有關pic16f877晶片<組合語言的判斷式如何寫>
|
||||
---|---|---|---|---|
新會員
|
參照:
我後來用上面那個程式run 改成xxxx減w的值是為正的就直接portb輸出 ,adresh的值有進去,但7段就是不會動阿 但是不是要給它w的值阿?才可以減阿
發表於: 2009/11/8 14:25
|
|||
|
Re: 有關pic16f877晶片<組合語言的判斷式如何寫>
|
||||
---|---|---|---|---|
資深會員
|
參照:
發表於: 2009/11/7 4:09
|
|||
|
Re: 有關pic16f877晶片<組合語言的判斷式如何寫>
|
||||
---|---|---|---|---|
高級會員
|
參照:
1. movf ADRESH,W ;就是把A/D轉換的結果放到 W 暫存器上 2. sublw xxxx ;就是用 xxxx 去減掉 W 暫存器的值 , 並把結果放在 W 暫存器. 3. 以上二行先弄清楚了 , 後面的才能進一步去看
發表於: 2009/11/7 0:17
|
|||
|
Re: 有關pic16f877晶片<組合語言的判斷式如何寫>
|
||||
---|---|---|---|---|
新會員
|
1.我不是很懂那一行但我同學說那個不用動
2.我们後來改這樣,但現在可變電阻轉也不會動阿就停住 我们現在測ADRESH有輸入值,但跑到TABLE那只跑第一行 所以就把TABLE換掉改下面這樣,有其它方法嗎....PLEASE list p=16f877A include <p16f877A.inc> __CONFIG _CP_OFF & _WDT_OFF & _XT_OSC & _LVP_OFF & _BODEN_OFF K1 EQU 0x20 c EQU 0x21 status EQU 0x22 org 0x000 nop Start ;;;;;;;;;;;;; IO initialization ;;;;;;;;;;;;;;;;;;;; banksel TRISB movlw B'00000000' movwf TRISB ; banksel PORTB ; clrf PORTC ;;;;;;;;;;;;; AD Initialization :::::::::::::::::::: banksel ADCON0 movlw B'01000001' movwf ADCON0 banksel ADCON1 movlw B'00001110' movwf ADCON1 ;;;;;;;;;;;;; TMR0 Iitialization ;;;;;;;;;;;;;;;;;;n movlw B'10000111' movwf OPTION_REG ;;;;;;;;;;;; Delay time ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Main banksel INTCON btfss INTCON,T0IF goto Main ;;;;;;;;;;; Start AD ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; bcf INTCON,T0IF bsf ADCON0,GO ;;;;;;;;;;;;;;;; Conversion Time ;;;;;;;;;;;;;;;;;;;; nop Wait btfsc ADCON0,GO goto Wait movf ADRESH,W sublw B'00000010' btfss status,c goto check1 movf ADRESH,W sublw B'00000101' btfss status,c goto check2 movf ADRESH,W sublw B'00001000' btfss status,c goto check3 movf ADRESH,W sublw B'00001010' btfss status,c goto check4 movf ADRESH,W sublw B'00001100' btfss status,c goto check5 movf ADRESH,W sublw B'00001110' btfss status,c goto check6 movf ADRESH,W sublw B'00010000' btfss status,c goto check7 movf ADRESH,W sublw B'00010100' btfss status,c goto check8 movf ADRESH,W sublw B'00011011' btfss status,c goto check9 movlw 0x7B movwf PORTB ;;;;;;;;;;;;;;;;; Output ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; movf ADRESH,W movwf K1 swapf K1,F movf K1,W movwf PORTB ;--------------------------------------------------------- check1 movlw 0x7E movwf PORTB goto Start check2 movlw 0x30 movwf PORTB goto Start check3 movlw 0x6D movwf PORTB goto Start check4 movlw 0x79 movwf PORTB goto Start check5 movlw 0x33 movwf PORTB goto Start check6 movlw 0x5B movwf PORTB goto Start check7 movlw 0x5F movwf PORTB goto Start check8 movlw 0x70 movwf PORTB goto Start check9 movlw 0x7F movwf PORTB goto Start ;;;;;;;;;;;;;;;;;;;;;;END;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; end
發表於: 2009/11/6 16:43
|
|||
|
Re: 有關pic16f877晶片<組合語言的判斷式如何寫>
|
||||
---|---|---|---|---|
高級會員
|
參照:
阿 ! 當然不是這樣寫的!! check_done前的 ... , 意思是你要自己補上去 , 我懶得打:( 你知道 movf ADRESH,W 這行指令是啥意思嗎?? 還有 sublw B'00000010' 是什麼 減 什麼 ??
發表於: 2009/11/5 22:59
|
|||
|
Re: 有關pic16f877晶片<組合語言的判斷式如何寫>
|
||||
---|---|---|---|---|
新會員
|
1 EQU 0x20
c=0 status EQU 0x22 org 0x000 nop Start ;;;;;;;;;;;;; IO initialization ;;;;;;;;;;;;;;;;;;;; banksel TRISB movlw B'00000000' movwf TRISB ; banksel PORTB ; clrf PORTC ;;;;;;;;;;;;; AD Initialization :::::::::::::::::::: banksel ADCON0 movlw B'01000001' movwf ADCON0 banksel ADCON1 movlw B'00001110' movwf ADCON1 ;;;;;;;;;;;;; TMR0 Iitialization ;;;;;;;;;;;;;;;;;;n movlw B'10000111' movwf OPTION_REG ;;;;;;;;;;;; Delay time ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Main banksel INTCON btfss INTCON,T0IF goto Main ;;;;;;;;;;; Start AD ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; bcf INTCON,T0IF bsf ADCON0,GO ;;;;;;;;;;;;;;;; Conversion Time ;;;;;;;;;;;;;;;;;;;; Wait btfsc ADCON0,GO goto Wait movf ADRESH,W sublw B'00000010' btfsc status,c goto check1 movlw 0 goto check_done check1 movf ADRESH,W sublw B'00000101' btfsc status,c goto check2 movlw 1 goto check_done check2 ... ... ... check_done call TABLE ;;;;;;;;;;;;;;;;; Output ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; movf ADRESH,W movwf K1 swapf K1,F movf K1,W movwf PORTB ;--------------------------------------------------------- goto Main TABLE addwf PCL,F retlw 0x7E retlw 0x30 retlw 0x6D retlw 0x79 retlw 0x33 retlw 0x5B retlw 0x5F retlw 0x70 retlw 0x7F retlw 0x7B end 請問一下上癮大大阿是這樣寫嗎 1.有buildall但有錯誤,它table沒往下找只到7E而以.... 2.還有這個status,c要宣告位子吧 3.請問如果用BTFSS要如何寫 謝謝
發表於: 2009/11/5 14:16
|
|||
|
Re: 有關pic16f877晶片<組合語言的判斷式如何寫>
|
||||
---|---|---|---|---|
高級會員
|
參照:
對的 , 就像你原本也寫了好幾個 if (...)...
發表於: 2009/11/4 22:36
|
|||
|
Re: 有關pic16f877晶片<組合語言的判斷式如何寫>
|
||||
---|---|---|---|---|
新會員
|
movf ADRESH,w
sublw B'00000010' btfsc status,c goto check1 movlw 1 goto check_done check1 movf ADRESH,w sublw B'00000101' btfsc status,c goto check2 movlw 2 goto check_done check2 movf ADRESH,w sublw B'00000111' btfsc status,c goto check3 movlw 3 goto check_done ... check_done 請問一下寫上癮了...我要顯示幾個數字就要寫幾個 check嗎 謝謝你的幫忙
發表於: 2009/11/4 22:12
|
|||
|
Re: 有關pic16f877晶片<組合語言的判斷式如何寫>
|
||||
---|---|---|---|---|
高級會員
|
參照:
發表於: 2009/11/1 0:21
|
|||
|