Doberman Inserito: 14 aprile 2003 Segnala Share Inserito: 14 aprile 2003 Chiedo scusa se replico in varie sez ma non so qual'è quella giusta Qualcuno mi saprebbe dire se è possibile memorizzare sul pic16f876 un file di testo il quale venga trasmesso in seriale?Ho gia' realizzato il circuito con un display a 40 caratteri, connesso alla porta seriale del pc.Tramite un programma di terminale sul pc digito sulla tastiera e vedo la scrittura sul display e qui tutto ok.Ora ho bisogno del contrario in programmazione del pic (PicBasicPro sw utilizzato per la prog) vorrei inserire un testo che venga trasmesso alla seriale del pc.Ho realizzato un software che mi trasmette dei caratteri che è il seguente' Read and write hardware USARTB1 VAR BYTE' Initialize USARTTRISC = %10111111 ' Set TX (PortC.6) to out, rest inSPBRG = 25 ' Set baud rate to 2400RCSTA = %10010000 ' Enable serial port and continuous receiveTXSTA = %00100000 ' Enable transmit and asynchronous modeTXREG = "c" Pause 10TXREG = "i"Pause 10TXREG = "a"Pause 10TXREG = "o"' Echo received characters in infinite looploop: GoSub charin ' Get a character from serial input, if anyIF B1 = 0 Then loop ' No character yetGoSub charout ' Send character to serial outputGoTo loop ' Do it forever' Subroutine to get a character from USART receivercharin: B1 = 0 ' Preset to no character receivedIF PIR1.5 = 1 Then ' If receive flag then...B1 = RCREG ' ...get received character to B1EndIFciret: Return ' Go back to caller' Subroutine to send a character to USART transmittercharout: IF PIR1.4 = 0 Then charout ' Wait for transmit register emptyTXREG = "c" Pause 10TXREG = "i"Pause 10TXREG = "a"Pause 10TXREG = "o"Return ' Go back to callerIl problema che devo scrivere un carattere alla volta creandomi un vero problema.Qualcuno sa come ovviare? Link al commento Condividi su altri siti More sharing options...
Federico Milan Inserita: 14 aprile 2003 Segnala Share Inserita: 14 aprile 2003 Questo non è il posto più adatto per il tuo post dovresti la prossima volata postare su Elettronica, comunque se devi spedire qualcosasa o lo memorizzi in un buffer, cosa che se non erro il pic ha una piccola ram, forse troppo piccola oppure spedisci il tutto in real-time ... ciao Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 14 aprile 2003 Segnala Share Inserita: 14 aprile 2003 Come dice Fderico è meglio postare sul forum di elettronica. Poi per memorizzare quello che ricevi dalla seriale necessiti di un buffer di RAM. Attenzione il PIC 16F876 ha una ram di 255 bytes, devi quindi mettere una RAM esterna. il problema che questo micro non prevede la gestione di memoria esterna. L'unico modo per espandere la RAM è usare, se la trovi, una RAM seriale (tipo le E2PROM). Link al commento Condividi su altri siti More sharing options...
Doberman Inserita: 15 aprile 2003 Autore Segnala Share Inserita: 15 aprile 2003 Vi ringrazio Link al commento Condividi su altri siti More sharing options...
ifachsoftware Inserita: 15 aprile 2003 Segnala Share Inserita: 15 aprile 2003 Tale PIC ha poca RAM , ma tanta memoria programma , quindi se non e' un problema codificare il testo da programma potresti utilizzare questa strada (naturalmente il testo deve essere fisso )CIao Link al commento Condividi su altri siti More sharing options...
dlgcom Inserita: 12 maggio 2003 Segnala Share Inserita: 12 maggio 2003 Doberman,Se i testi sono fissi, puoi scrivere delle tabelle in memoria.Per esempio usando la direttiva CBLOCK crei una area di memoria dove inserirai le tue stringhe di caratteri.Poi con una routine cilcica e i registri FSR E INDF puoi leggre questo banco di memoria.Scusa , ma non uso il basic , quindi non so' quali sono i comandi per usare i puntatori .Se vuoi ti posso mandare un esempio in assembler .fammi sapereLuca Link al commento Condividi su altri siti More sharing options...
neovoltage Inserita: 7 agosto 2004 Segnala Share Inserita: 7 agosto 2004 salve a tutti,sono nuovo del forum.E' da poco che ho iniziato ad appassionarmi ai pic e volevo chiedere un aiuto,il pic16f876 dispone di un a/d da 10 bit ma a me ne servono 8 partendo dal meno significativo.il fatto è che ancora non ho molta dimestichezza con l'assembly e se qualcuno mi può aiutare mi sarebbe di grande aiuto. grazie. 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