F
freddo
Guest
Qualcuno mi potrebbe suggerire come fare questo programma?
Questo programma leggerà di input analogico da potenziometro quindi mostrare il valore in PORTC.Quando tutti i bit di PORTC è impostato quindi il programma scriverà 1 in RE2.Se RC7 = 1, quindi il programma scriverà 1 in RE1, se RC7 = 0 allora il programma scriverà 1 in RE0 e chiaro RE1
Qui è il mio codice sorgente
Quote:
LIST P = 16F877, W =- 302
INCLUDE P16F877.INC
__CONFIG 0x3D32; quarzo 20 Mhz.HS GAIN
include "p16f877.inc"
ADCON0 EQU H'001F '
ADCon1 EQU H'009F '
; Inizia il vettore di reset
org 0x000
goto Start
org 0x004
Interrupt
retfie
Inizio
MOVLW B'00000000 '; PORTE = uscita
MOVWF TRISE
bsf STATUS, RP0; Banca 1
bcf STATUS, RP1
movlw H'00 '
movwf TRISC; PORTC [7-0] uscite
ADCon1 clrf; giustificato a sinistra, tutti gli ingressi A / D
bcf STATUS, RP0; Bank 0
B'01000001 movlw '; FOSC / 8 [7-6], A / D CH0 [5-3], A / D su [0]
movwf ADCON0
Principale
call ad_portc
call Loop1
call Loop2
Goto mainad_portc
; aspettare che il tempo acquision (20US)
; (non-critical per questo test)
BSF ADCON0, GO; Start conversione A / D
Attendere
ADCON0 btfsc, GO, aspettare la conversione in completa
goto Wait
MOVF ADRESH, W; scrivere A / D a seguito PORTC
movwf PORTC; LED
ritorno
Loop1 movlw 0x31
xorwf PORTC, w
btfsc STATUS, Z
BSF PORTE, 3
bcf PORTE, 3
goto Loop1
LOOP2 btfss PORTC, 7
BSF PORTE, 1
BSF PORTE, 2
btfss PORTC, 7
bcf PORTE, 2
bcf PORTE, 1
goto Loop2
fine
Questo programma leggerà di input analogico da potenziometro quindi mostrare il valore in PORTC.Quando tutti i bit di PORTC è impostato quindi il programma scriverà 1 in RE2.Se RC7 = 1, quindi il programma scriverà 1 in RE1, se RC7 = 0 allora il programma scriverà 1 in RE0 e chiaro RE1
Qui è il mio codice sorgente
Quote:
LIST P = 16F877, W =- 302
INCLUDE P16F877.INC
__CONFIG 0x3D32; quarzo 20 Mhz.HS GAIN
include "p16f877.inc"
ADCON0 EQU H'001F '
ADCon1 EQU H'009F '
; Inizia il vettore di reset
org 0x000
goto Start
org 0x004
Interrupt
retfie
Inizio
MOVLW B'00000000 '; PORTE = uscita
MOVWF TRISE
bsf STATUS, RP0; Banca 1
bcf STATUS, RP1
movlw H'00 '
movwf TRISC; PORTC [7-0] uscite
ADCon1 clrf; giustificato a sinistra, tutti gli ingressi A / D
bcf STATUS, RP0; Bank 0
B'01000001 movlw '; FOSC / 8 [7-6], A / D CH0 [5-3], A / D su [0]
movwf ADCON0
Principale
call ad_portc
call Loop1
call Loop2
Goto mainad_portc
; aspettare che il tempo acquision (20US)
; (non-critical per questo test)
BSF ADCON0, GO; Start conversione A / D
Attendere
ADCON0 btfsc, GO, aspettare la conversione in completa
goto Wait
MOVF ADRESH, W; scrivere A / D a seguito PORTC
movwf PORTC; LED
ritorno
Loop1 movlw 0x31
xorwf PORTC, w
btfsc STATUS, Z
BSF PORTE, 3
bcf PORTE, 3
goto Loop1
LOOP2 btfss PORTC, 7
BSF PORTE, 1
BSF PORTE, 2
btfss PORTC, 7
bcf PORTE, 2
bcf PORTE, 1
goto Loop2
fine