gntd Inserito: 19 giugno 2006 Segnala Share Inserito: 19 giugno 2006 Salve, sono uno studente di elettronica, che dovrà presentare in occasione degli esami di maturità un microprocessore che con il sensore di temperatura LM335 a monte ha la funzione di trasmettere ad un lcd la temperatura. Il tutto è pronto ... ma mi manca la programmazione in assembler. Il microprocessore è un AT90S4433. Potreste darmi una mano. GRAZIEEEEEEE! Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 19 giugno 2006 Segnala Share Inserita: 19 giugno 2006 Se ti manca il programma ancora oggi, addì 19-06-06 la vedo brutta per te, a meno che tu non stia preparando la maturità del 2007 Per curiosità cosa ti serve? Hai fatto mniente? Non crederai di trovare qualcuno che fa la tesina al posto tuo! Link al commento Condividi su altri siti More sharing options...
gntd Inserita: 19 giugno 2006 Autore Segnala Share Inserita: 19 giugno 2006 I due programmi di trasmissione e ricezione ci sono già .. Visto e considerato che il microprocessore ,dai miei professori trattato ST6210, non si trova proprio , non sò se si possono utilizzare in parte o adattare i programmi suddetti al microprocessore in questione .. l'at90s4433 , che ho . Grazie ancora per l'interessamento..-------------------------------------------------------------CONVERSIONE ADC E TRASMISSIONE DEL DATO .title "ADC+tx" ; Titolo del programma .vers "ST62E10" ; Microprocessore usato ; 8 Mhz ; 01/06/2006 ldi wdog,0ffh ; Carico il Watch-Dog. ; Setta la porta A ldi pdir_a,00000001b ;out solo pa0 TX ldi popt_a,00000001b ldi port_a,00000001b ; Setta la porta B ldi pdir_b,00000000b ;tutti input ldi popt_b,00000001b ;verrà usato solo pb0 come ADC ldi port_b,00000001b ;PROGRAMMA PRINCIPALEmain ldi wdog,255 ldi adcr,00110000b ;abilita A/D ( su pb0)att jrr 6,adcr,att ;attende conversione ld a,addr ;mette in a il valore convertito res 1,port_a ;sincronismo per l'oscilloscopio nop ;piccolo ritardo set 1,port_a ;l'impulso torna alto ldi wdog,255 ldi x,8 ;numero dei bit da txunbit rlc a ;ruota nrl cy il bit 7 del byte jrnc zero ;se cy=0 salta a zero jp uno ;se cy=1 salta a unozero set 0,port_a ;mette linea=1 ldi w,6 ;resta a 1 per 1/4 Tdecw dec w jrnz decw res 0,port_a ;mette linea=0 ldi w,19 ;resta a 0 per 3/4 Tdew dec w jrnz dew jp decxuno set 0,port_a ;lineaa=1 ldi w,19 ;resta per 3/4 Tdecc dec w jrnz decc res 0,port_a ;lineaa=0 ldi w,6 ;resta a 0 per 1/4 Tdecw_ dec w jrnz decw_decx dec x jrz ldiw ;se i bit tx sono 8 ritorna jp unbit ;altrimenti ne prende un altroldiw ldi w,35 ;pausa fra byte = circa 2Tduet ldi wdog,255 dec w jrnz duet jp main ;altro byte------------------------------------------- .title "RX+display" ; Titolo del programma .vers "ST62E10" ; Microprocessore usato ; 8 Mhz ; 01/06/2006 aa .def 084hdecimi .def 085hunita .def 086hdecine .def 087hresto .def 088hrisul .def 089hxx .def 08ah ;*** Setta la porta A ldi pdir_a,11111111b ;dipsonibili solo pa0,1,2,3 verso CA3161 ldi popt_a,11111111b ; tutti ouput ldi port_a,11111111b ;*** Setta la porta B ldi pdir_b,00000111b ;pa0,1,2 output ldi popt_b,00000111b ;pb3 in rx ldi port_b,00000111b ; rimanenti non utilizzati conf. inputmedia add a,resto ;somma il precedente valore con il nuovo jrnc etic2 ;se non c’è riporto salta inc risul ;altrimenti incrementa etic2 ld resto,a ld a,xx ;verifica se ha eseguito 255 conversioni jrz etic4 ;se si salta dec xx ;altrimenti un conversione in meno retetic4 ld a,resto ;arrotonda cpi a,127 jrc etic3 ;se a é minore salta e continua a sottrarre inc risul ;altrimenti arrotonda incrementando risuletic3 ld a,risul ;valore mediato 255 volte va in a ldi xx,5 call div ld a,resto sla a ;moltiplica per 2 ld decimi,a ld a,risul ldi xx,10 call div cpi a,0 jrnz no0 ldi a,15no0 ld decine,a ld a,resto ld unita,a clr resto clr risul ldi xx,255 retdiv clr w ldi wdog,255 cp a,xx ;se a< div salta jrc oksub_ sub a,xx ;sottrae x ad a inc w ;conta quante volte ci sta x in a ldi wdog,255 cp a,xx jrnc sub_ ;se a >= salta e continua a sottrarreok ld resto,a ;resto UNITA ld a,w ;risultato ld risul,a ;DECINE ret;DISPLAYmux ld aa,a ldi port_b,00001111b ;spegne display ld a,v cpi a,0 jrnz uno_ ld a,decimi ld port_a,a ldi port_b,0001011b jp normaluno_ cpi a,1 jrnz due ld a,unita ld port_a,a ldi port_b,00001101b jp normaldue ld a,decine ld port_a,a ldi port_b,0001110b ldi v,255normal inc v ld a,aa ret;PROGRAMMA PRINCIPALE RXmain clr resto clr risul ldi xx,255main_ ldi wdog,255 ;RICEVE UN BYTE ldi w,25 ;resta in questo loop fino a che inputtesta jrs 3,port_b,main_ ;da alto torna basso e permane + di un T dec w ;per assicurarsi che sia un nuovo byte jrnz testa ldi x,8 ;numero bit da ricevere x confrontorx ldi wdog,255 jrr 3,port_b,rx call mux ldi w,6 ;predispone per la campionatura a 1/2 Tdecr dec w jrnz decr jrr 3,port_b,zero ;se dopo 1/2 T e` 0 saltauno set 0,a ;altrimenti setta bit0 di a dec x ;conta un bit ricevuto jrz out ;se sono finiti salta sla a ;altrimenti sposta a sinistra bit0 e prepararesta jrs 3,port_b,resta ;per il prossimo jp rx ;se linea =1 resta altrimenti inputout call media jp main_ ;ricomincia per altro bytezero res 0,a ;bit0= 0 dec x jrnz slaa jp out ;se sono finiti saltaslaa sla a ;altrimenti sposta a sinistra e libera x prossimo jp rx ;ne aspetta un altro Link al commento Condividi su altri siti More sharing options...
nicola1 Inserita: 19 giugno 2006 Segnala Share Inserita: 19 giugno 2006 per programmare i controllori atmel ci vuole AVRStudio per la compilazione, e PonyProg per la programmazione. Naturalmente devi avere interfaccia USB, o seriale, o parallela per connetterti al computer. ciao Link al commento Condividi su altri siti More sharing options...
gntd Inserita: 19 giugno 2006 Autore Segnala Share Inserita: 19 giugno 2006 Sono già in pèossesso degli strumenti di compilazione e programmazione.. mi serve solo sapere se i due programmi sono adatti per il microprocessore o è necessaria qualche modifica... Link al commento Condividi su altri siti More sharing options...
omar Inserita: 19 giugno 2006 Segnala Share Inserita: 19 giugno 2006 (modificato) Se ci pensi un attimo hai la risposta... Ti pare che, tanto per fare un esempio, che le istruzioni assembler possano tutte e quante essere identiche? Quello che puoi fare è , manuale ST6 e manuale ATMEL alla mano, tradurre il programma e poi compilarlo e debuggarlo...Saluti Modificato: 19 giugno 2006 da omar 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