ESCUELA POLITÉCNICA NACIONAL
LABORATORIO LABORA TORIO DE CONTROL CON MICROPROCESADORES Práctica # 3 1. Tema: Respaldo de alie!taci"! de datos 2. Objetivo: $ail ailia iari ri%a %arr al est& est&di dia! a!te te co! co! el a!e a!e'o 'o de la
eo eori ria a EEPR EEPROM OM de dato datoss las las t(c! t(c!ic icas as de respa espald ldo o de alie!taci"!)
3. Trabajo Preparatorio 3.1. 3.1. Consu onsult ltar ar 2 cir circu cuit itos os que sirv sirvan an para para realiz alizar ar resp respal ald do de de alimentación. Circuito 1
•
Circuito 2
3.2. Consultar la Subrutina (lenguaje ensamblador) para escribir y leer en la memoria !"#$ (datos) de un microcontrolador. Para escritura
Para lectura
3.3. "ealizar el circuito completo y el programa de control que permite contar el n%mero de pasajeros en un bus& que 'unciona de la siguiente manera l sistema debe contar el n%mero de personas que an ingresado al bus y mostrar en displays. l sistema debe contar el n%mero de veces que se a desconectado la alimentación primaria& en cuyo caso deber* conmutar a alimentación secundaria. Si el sistema esta alimentado con alimentación secundaria se debe mostrar una alarma visual intermitente. +dicionalmente el sistema debe contar el n%mero de veces que a sido reseteado el sistema de manera manual. +l resetear el microcontrolador se debe encerar el contador de pasajeros del bus y almacenar el dato antes del reset en un contador au,iliar (el cual solo puede ser visto desde el pc). n cualquier momento el +dministrador del sistema puede saber el n%mero de veces que se a desconectado la alimentación primaria& el n%mero de veces que a sido reseteado de 'orma manual& revisar el contador del n%mero de personas que an ingresado y encerar cada uno de los contadores. -os contadores no se deben borrar si el microcontrolador est* sin alimentación. Código
*+ + prepa3,&lloa)c + + Created- ./*00*1.0/ 02-11-1/ + A&tor- 4ra!cisco&lloa +* #i!cl&de 5a6r*io)7 #i!cl&de 5a6r*i!terr&pt)7 #i!cl&de 5&til*dela)7 #de8!e $,CPU 9......UL 6oid i!icio,icro:6oid;< 6oid =arrido :i!t !&ero> car !;< 6oid co!4,serial:&!si?!ed car =a&d;< **tra!sitir reci=ir datos &!si?!ed car Reci=e,dato: 6oid ;< 6oid Tra!site,dato: &!si?!ed car data ;< **4&!cio!es de EEPROM 6oid EEPROM,@rite:&!si?!ed i!t &iAddress> &!si?!ed car 6ar;< &!si?!ed car EEPROM,read:&!si?!ed i!t &iAddress;< **ARIABLES i!t co!t,perso!as< i!t co!t,reset< i!t co!t,desco< i!t leer,per< **6aria=les co&!icaci"! &!si?!ed car dato< &!si?!ed car perso!,t< &!si?!ed car reset,t< &!si?!ed car desco!eio!,t< car a&< car displas0.F.3$>..G>./B>.H$>.GG>.GD>.D>..>.$>.G$J< i!t ai!:6oid; F i4 :MCUSR K:055ETR$;; **O=ser6o =a!deras para 6er si se reseteo el icro
F
co!t,resetEEPROM,read:2;<**lect&ra del co!tador de reset co!t,reset< **i!cree!to de reset EEPROM,@rite:2>co!t,reset;< **?&ardar e! EEPROM el co!t,reset MCUSR K:055ETR$;< **po!?o cero e! etr4
J i!icio,icro:;< **llao a s&=r&ti!a de i!icio co!4,serial:/0;< **s&=r&ti!a de co!8?&racio! serial @ile:0; F =arrido:co!t,perso!as>3;< J
J 6oid i!icio,icro:6oid; F DDRBDDRC1//< **co!8?&raci"! de p&ertos DDRA1//< PORTBPORTC.< PORTA.< DDRD.=......0.< PORTDDDRD< **co!8?&raci"! de i!terr&pcio!es EICRA.=....0.0.< EIMS .=......00< EI$R0< **MODO CAPTURA TCCR0A.< TCCR0B.=00....00< TIMS0.=..0.....< sei:;< J 6oid co!4,serial:&!si?!ed car =a&d; F UBRR..< UCSR.B:055RCIE.;:055REN.;:055 TEN.;< UCSR.C:3550;< UBRR.=a&d< sei:;< J ISR:USART.,R,6ect; F datoReci=e,dato:;< **se reci=e dato i4 :dato0; F perso!,tEEPROM,read:/;< **se lee dato de EEPROM Tra!site,dato:perso!,t;< **Tra!sisi"! de dato J else i4 :dato1; F reset,tEEPROM,read:2;< Tra!site,dato:reset,t;< J else i4 :datoH; F desco!eio!,tEEPROM,read:1;< Tra!site,dato:desco!eio!,t;< J else i4 :dato9; F **todos los co!tadores e! cero
J
EEPROM,@rite:/>.;< EEPROM,@rite:2>.;< EEPROM,@rite:1>.;< co!t,perso!as.<
else i4 :dato.; F Tra!site,dato:.;< J J &!si?!ed car Reci=e,dato: 6oid ;F **$&!ci"! para reci=ir &! =te @ile:Q:UCSR.AK:055RC.;;;<** espera> ie!tras !o este lipio el =&er ret&r! UDR.< **Retor!ar dato J 6oid Tra!site,dato: &!si?!ed car data ; **$&!cio! para tra!sitir &! =te F @ile:Q:UCSR.AK:055UDRE.;;;< **Espero> &e este lipio el =&er UDR.data< **tra!sisi"! de dato J ISR:INT.,6ect; F leer,perEEPROM,read:/;< **lect&ra de EEPROM leer,per< **i!cree!to de 6aria=le co!t,perso!as< EEPROM,@rite:/>leer,per;< **?&erdar e! EEPROM J ISR: TIMER0,CAPT,6ect; F i4 :ICR070... KK ICR05001/; **coparo para sa=er &e 4&e!te &sa F **4&e!te pri!cipal PORTA0< TCNT0.< ** E!cero co!tador tier0 J else F co!t,desco< EEPROM,@rite:1>co!t,desco;< PORTA1< TCNT0.< **co!tador de 4&e!te J J 6oid EEPROM,@rite:&!si?!ed i!t &iAddress> &!si?!ed car &cData; F @ile:EECR K :055EEPE;;< EEAR&iAddress< EEDR&cData< EECR:055EEMPE;< EECR:055EEPE;< J &!si?!ed car EEPROM,read:&!si?!ed i!t &iAddress; F
J
@ile:EECR K :055EEPE;;< EEAR &iAddress< EECR :055EERE;< ret&r! EEDR<
6oid =arrido:i!t !&ero>car !; F i!t a&iliar<
J
4or :i!t i.
Circuito
Labview
•
Dia?raas de &'o
Bi=lio?ra4VaMa!&al de icroco!trolador Ate?a 0GHp)