matmor Inserito: 1 giugno 2006 Segnala Share Inserito: 1 giugno 2006 Salve è da poco che lavoro con i picancora menocon la rs232ho aquistato un display a segmenti rs232nelle istruzione mi si chiede di inviare la stringa di 5 bytechr$(13) iniz. per laricezionechr$(1) identifica id displaychr$(65) comando specifico displaychr$(48) carattere"0"chr$(129) checksumIl risultato dovrebbe essere "0"Ho realizzato questo programma con un pic 16f877a su la demo board easypic3che ha gia incorporato un max232 per la conversione delle tensioni etc.con il display non succede assolutamente nientecosi ho provato a collegare la demoboard con il mio programmino al pcattraversol'usart terminal ho visto che i dati mi arrivano in questaposizione1316548129è sbagliato il programma? o c'è qualcosa che non va con il display????GRAZIEprogram adcusartdim i as bytedim temp_res as bytedim data as byte[5]main: UsART_init(2400) ' initalize USART (9600 baud rate, 1 stop bit, ...'''' select Vref and analog inputs, in order to use ADC_read '''''''/ 'ADCON1 = 0 ' all porta pins as analog, VDD as Vref 'TRISA = 0xFF ' all porta pins as inputs'''''''''''''''''''''''''''''''''''''''' data[0]=13 data[1]= 1 data[2]=65 data[3]= 48 data[4]= 129 i=0 ' read conversion result and push delay_ms(5) for i=0 to 4 ' upper byte to temp_res UsART_Write(data) ' send temp_res via USART next i end. Link al commento Condividi su altri siti More sharing options...
matmor Inserita: 5 giugno 2006 Autore Segnala Share Inserita: 5 giugno 2006 ciao a tuttivisto che ancoranessuno mi ha dato una rispostaripropongo la domanaio vorrei inviare via rs232 questa stringachr$13chr$1chr$65chr$48chr$129come faccio??? Link al commento Condividi su altri siti More sharing options...
PicPassion Inserita: 5 giugno 2006 Segnala Share Inserita: 5 giugno 2006 Ciao matmor,se può esserti d'aiuto ti posso inviare una routine in visual basic per inviare la sequenza di caratteri. Link al commento Condividi su altri siti More sharing options...
matmor Inserita: 5 giugno 2006 Autore Segnala Share Inserita: 5 giugno 2006 ti ringrazio moltosicuramente mi sarebbe d'aiuto Link al commento Condividi su altri siti More sharing options...
Hellis Inserita: 5 giugno 2006 Segnala Share Inserita: 5 giugno 2006 (modificato) puoi anche provare con hyperterminal Modificato: 5 giugno 2006 da Hellis Link al commento Condividi su altri siti More sharing options...
matmor Inserita: 5 giugno 2006 Autore Segnala Share Inserita: 5 giugno 2006 ho provatoin tutte le salse non accade nientein pratica io voglio comandare un display rs232con il picho provato tramitepc ma non succede nienteho un'altro topic dove descrivoil tutto Link al commento Condividi su altri siti More sharing options...
PicPassion Inserita: 8 giugno 2006 Segnala Share Inserita: 8 giugno 2006 (modificato) Ciao matmor, scusami per il ritardo...Utilizzando Visual Basic 6 dovresti fare quanto segue:1) Creare un progetto "exe standard"2) Nel form devi inserire un "commandbutton" ed il componente "MSComm"2.1) Per inserire "MSComm" devi procedere così: Progetto --> Componenti --> (Scheda Controlli) --> Microsoft Comm Control 6.03) Inserire nel codice del form ( Visualizza --> Codice ) le seguenti righe:Private Sub Command1_Click()MSComm1.CommPort = 1 'numero della porta comMSComm1.PortOpen = TrueMSComm1.Output = Chr$(13)'Sleep (20) 'da utilizzare solo se richiesto ritardoMSComm1.Output = Chr$(1)'sleep (20)MSComm1.Output = Chr$(65)'sleep (20)MSComm1.Output = Chr$(48)'sleep (20)MSComm1.Output = Chr$(129)'sleep (20)MSComm1.PortOpen = FalseEnd Sub4) Inserire un nuovo modulo ( Progetto --> Inserisci modulo ) ed aggiungere il codice: Declare Sub Sleep Lib "kernel32" (ByVal millisecondi As Long)5) AvviareCome puoi notare, nel codice del form la funzione Sleep non viene eseguita ( apostrofo ); questa funzione è stata inserita perchè forse è necessario generare dei ritardi fra l'invio di un byte e l'altro.Se funziona senza il ritardo puoi anche eliminare le righe di codice 'Sleep ed il modulo aggiunto.Se voui utilizzare l'Hyperterminal devi usare il tasto ALT+"numero" prima di inviare byte più piccoli di 32, ad esempio:chr$(13) = ALT+13Spero di essere stato d'aiuto. Modificato: 8 giugno 2006 da PicPassion Link al commento Condividi su altri siti More sharing options...
PicPassion Inserita: 8 giugno 2006 Segnala Share Inserita: 8 giugno 2006 Ho dimenticato di aggiungere che se volessi verificare ciò che invia la porta seriale puoi ricorrere al software gratuito (per ora) "hhd serial port monitor", reperibile all'indirizzo:http://www.serial-port-monitor.com/index.html 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