C
ch
Guest
Czy ktokolwiek mógłby zasugerować mi jak to zrobić w tym programie?
Ten program będzie czytał analogowe wejście z potencjometrem następnie pokazać wartość PortC.Gdy wszystko trochę PORTC jest to program zapisze 1 w RE2.Jeśli RC7 = 1, to program będzie pisać 1 w RE1, Jeśli RC7 = 0, to program zapisze 1 RE0 i jasne RE1
Oto mój kod źródłowy
Cytat:
LIST P = 16F877, W =- 302
ZAWIERA P16F877.INC
__CONFIG 0x3D32; Xtal 20 MHz.HS GAIN
include "p16f877.inc"
ADCon0 EQU H'001F "
ADCon1 EQU H'009F "
; Zacznij zresetować wektor
org 0x000
goto Start
org 0x004
Przerwanie
retfie
Zacząć
MOVLW B'00000000; PORTE = wyjście
MOVWF TRISE
BSF STATUS, Ep0; bank 1
BCF STATUS, RP1
movlw H'00 "
movwf TRISC; portc [7-0] wyjścia
clrf ADCon1; wyrównane do lewej strony, wszystkie wejścia / d
BCF STATUS, Ep0; banku 0
B'01000001 movlw; FOSC / 8 [7-6] / D ch0 [5-3] / d na [0]
movwf ADCon0
Główny
połączenia ad_portc
Loop1 połączenia
Loop2 połączenia
Goto Mainad_portc
; czekać na czas akwizycji (20uS)
; (non-krytyczne dla testu)
BSF ADCon0, GO, Start / D conversion
Czekać
btfsc ADCon0, GO Poczekaj na zakończenie konwersji
Czekaj goto
movf ADRESH, W; napisać / wynik D PORTC
movwf PORTC; diody LED
powrót
Loop1 movlw 0x31
xorwf PORTC, w
btfsc STATUS, Z
BSF PORTE, 3
BCF PORTE, 3
Loop1 goto
Loop2 btfss PORTC, 7
BSF PORTE, 1
BSF PORTE, 2
btfss PORTC, 7
BCF PORTE, 2
BCF PORTE, 1
Loop2 goto
koniec
Ten program będzie czytał analogowe wejście z potencjometrem następnie pokazać wartość PortC.Gdy wszystko trochę PORTC jest to program zapisze 1 w RE2.Jeśli RC7 = 1, to program będzie pisać 1 w RE1, Jeśli RC7 = 0, to program zapisze 1 RE0 i jasne RE1
Oto mój kod źródłowy
Cytat:
LIST P = 16F877, W =- 302
ZAWIERA P16F877.INC
__CONFIG 0x3D32; Xtal 20 MHz.HS GAIN
include "p16f877.inc"
ADCon0 EQU H'001F "
ADCon1 EQU H'009F "
; Zacznij zresetować wektor
org 0x000
goto Start
org 0x004
Przerwanie
retfie
Zacząć
MOVLW B'00000000; PORTE = wyjście
MOVWF TRISE
BSF STATUS, Ep0; bank 1
BCF STATUS, RP1
movlw H'00 "
movwf TRISC; portc [7-0] wyjścia
clrf ADCon1; wyrównane do lewej strony, wszystkie wejścia / d
BCF STATUS, Ep0; banku 0
B'01000001 movlw; FOSC / 8 [7-6] / D ch0 [5-3] / d na [0]
movwf ADCon0
Główny
połączenia ad_portc
Loop1 połączenia
Loop2 połączenia
Goto Mainad_portc
; czekać na czas akwizycji (20uS)
; (non-krytyczne dla testu)
BSF ADCon0, GO, Start / D conversion
Czekać
btfsc ADCon0, GO Poczekaj na zakończenie konwersji
Czekaj goto
movf ADRESH, W; napisać / wynik D PORTC
movwf PORTC; diody LED
powrót
Loop1 movlw 0x31
xorwf PORTC, w
btfsc STATUS, Z
BSF PORTE, 3
BCF PORTE, 3
Loop1 goto
Loop2 btfss PORTC, 7
BSF PORTE, 1
BSF PORTE, 2
btfss PORTC, 7
BCF PORTE, 2
BCF PORTE, 1
Loop2 goto
koniec