Kajok Inserito: 7 novembre 2005 Segnala Share Inserito: 7 novembre 2005 (modificato) sto provando a fare la mia prima conversione a/d, vorrei prendere gli 8bit dati dal risultato della conversione di AN0 e metterli sul port B. questo e' il mio programma in assembler, cosa sbaglio??? PROCESSOR 16F876A RADIX DEC INCLUDE "P16F876A.INC" __CONFIG 3F31HLED0 EQU 0LED1 EQU 1LED2 EQU 2LED3 EQU 3LED4 EQU 4LED5 EQU 5LED6 EQU 6LED7 EQU 7SW0 EQU 0SW1 EQU 1SW2 EQU 2SW3 EQU 3 ORG 0CH ORG 00H movlw 11000001b ;definizione convertitore a/d con ADCON0 -vedi datasheet pag 113- movwf ADCON0 bsf STATUS,RP0 ;bank 1 movlw 10000000b ;definizione convertitore a/d con ADCON1 -vedi datasheet pag 114- movwf ADCON1 & 7FH movlw 00011111b ;Definizione della porta A movwf TRISA & 7FH movlw 00000000b ;Definizione della porta B movwf TRISB & 7FH movlw 00001111b ;Definizione della porta C movwf TRISC & 7FH bcf STATUS,RP0 ;bank 0MainLoop ;Spegne tutti i led clrw clrf PORTB Conversione bsf ADCON0,GO_DONEAttesaconversione btfsc ADCON0,GO_DONE ;testa go_done, se =0 salta l'istruzione sucessiva goto Attesaconversione bsf STATUS,RP0 movf ADRESL & 7FH bcf STATUS,RP0 movwf PORTB goto MainLoop END Modificato: 7 novembre 2005 da Kajok Link al commento Condividi su altri siti More sharing options...
giacomo56 Inserita: 8 novembre 2005 Segnala Share Inserita: 8 novembre 2005 Non so se le impostazioni sono corrette, però se non metti un ritardo prima di goto MainLoop vedrai i led sempre spenti.Ciao. Link al commento Condividi su altri siti More sharing options...
Gariel Inserita: 8 novembre 2005 Segnala Share Inserita: 8 novembre 2005 Nelle ultime righe manca un ,Wquindi:movf ADRESL,Wbcf STATUS,RP0movwf PORTBgoto MainLoopGariel Link al commento Condividi su altri siti More sharing options...
Kajok Inserita: 8 novembre 2005 Autore Segnala Share Inserita: 8 novembre 2005 grazie... stasera provoper ora grazie... Link al commento Condividi su altri siti More sharing options...
Gariel Inserita: 8 novembre 2005 Segnala Share Inserita: 8 novembre 2005 Mi correggo, l'errore non può essere quello perchè il compilatore, quando manca sia W che F, mette W di default.Quindi l'errore va cercato altrove.CiaoGariel Link al commento Condividi su altri siti More sharing options...
Kajok Inserita: 9 novembre 2005 Autore Segnala Share Inserita: 9 novembre 2005 (modificato) ora pero' funziona... l'unico errore che il compilatore mi da' e' questo :Message[302] F:\ELETTRONICA\PIC\MPASMWIN401\PROGRAMMI FATTI\AD876A.ASM 54 : Register in operand not in bank 0. Ensure that bank bits are correct.che non capisco....il programma nuovo e' qua: PROCESSOR 16F876A RADIX DEC INCLUDE "P16F876A.INC" __CONFIG 3F31HLED0 EQU 0LED1 EQU 1LED2 EQU 2LED3 EQU 3LED4 EQU 4LED5 EQU 5LED6 EQU 6LED7 EQU 7SW0 EQU 0SW1 EQU 1SW2 EQU 2SW3 EQU 3 ORG 0CHCOUNT RES 2 ORG 00H movlw 11000001b ;definizione convertitore a/d con ADCON0 -vedi datasheet pag 113- movwf ADCON0 bsf STATUS,RP0 ;bank 1 movlw 10000000b ;definizione convertitore a/d con ADCON1 -vedi datasheet pag 114- movwf ADCON1 & 7FH movlw 00011111b ;Definizione della porta A movwf TRISA & 7FH movlw 00000000b ;Definizione della porta B movwf TRISB & 7FH movlw 00001111b ;Definizione della porta C movwf TRISC & 7FH bcf STATUS,RP0 ;bank 0 ;Spegne tutti i led clrf PORTBMainLoop bsf ADCON0,GO_DONEAttesaconversione btfsc ADCON0,GO_DONE ;testa go_done, se =0 salta l'istruzione sucessiva goto Attesaconversione bsf STATUS,RP0 movf ADRESL,W bcf STATUS,RP0 movwf PORTB call Delay goto MainLoopDelay clrf COUNT clrf COUNT+1Delayloop decfsz COUNT,1 goto Delayloop decfsz COUNT+1,1 goto Delayloop return END Modificato: 9 novembre 2005 da Kajok Link al commento Condividi su altri siti More sharing options...
giacomo56 Inserita: 9 novembre 2005 Segnala Share Inserita: 9 novembre 2005 Non è un errore ma solo un avviso.Ciao. Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora