Sunteți pe pagina 1din 30

INSTITUTO TECNOLOGICO DE PIEDRAS NEGRAS.

MATERIA: ARQUITECTURA DE LAS COMPUTADORAS.

MAESTRO: Ing. EWALD FRITSCHE RAMIREZ.

ALUMNO: RICARDO MANUEL GARCIA MELENDEZ.

UNIDAD IV MICROCONTROLADORES.

13-12-2011

= MICROCONTROLADOR. = Un microcontrolador es un circuito integrado o chip que incluye en su interior las tres unidades funcionales de una computadora: CPU, Memoria y Unidades de E/S, es decir, se trata de un computador completo en un solo circuito integrado. Son diseados para disminuir el coste econmico y el consumo de energa de un sistema en particular. Por eso el tamao de la CPU, la cantidad de memoria y los perifricos incluidos dependern de la aplicacin. El control de un electrodomstico sencillo como una batidora, utilizar un procesador muy pequeo (4 u 8 bit) por que sustituir a un autmata finito. En cambio un reproductor de msica y/o vdeo digital (mp3 o mp4) requerir de un procesador de 32 bit o de 64 bit y de uno o ms Cdec de seal digital (audio y/o vdeo). El control de un sistema de frenos ABS (Antilock Brake System) se basa normalmente en un microcontrolador de 16 bit, al igual que el sistema de control electrnico del motor en un automvil.

Esquema de un microcontrolador Los microcontroladores representan la inmensa mayora de los chips de computadoras vendidos, sobre un 50% son controladores "simples" y el restante corresponde a DSPs ms especializados. Mientras se pueden tener uno o dos microprocesadores de propsito general en casa (vd. est usando uno para esto), usted tiene distribuidos seguramente entre los electrodomsticos de su hogar una o dos docenas de microcontroladores. Pueden encontrarse en casi cualquier dispositivo electrnico como automviles, lavadoras, hornos microondas, telfonos, etc...

Un microcontrolador difiere de una CPU normal, debido a que es ms fcil convertirla en una computadora en funcionamiento, con un mnimo de chips externos de apoyo. La idea es que el chip se coloque en el dispositivo, enganchado a la fuente de energa y de informacin que necesite, y eso es todo. Un microprocesador tradicional no le permitir hacer esto, ya que espera que todas estas tareas sean manejadas por otros chips. Hay que agregarle los modulos de entrada/salida (puertos) y la memoria para almacenamiento de informacin. Por ejemplo, un microcontrolador tpico tendr un generador de reloj integrado y una pequea cantidad de memoria RAM y ROM/EPROM/EEPROM/FLASH, significando que para hacerlo funcionar, todo lo que se necesita son unos pocos programas de control y un cristal de sincronizacin. Los microcontroladores disponen generalmente tambin de una gran variedad de dispositivos de entrada/salida, como convertidores de analgico a digital, temporizadores, UARTs y buses de interfaz serie especializados, como I2C y CAN. Frecuentemente, estos dispositivos integrados pueden ser controlados por instrucciones de procesadores especializados. Los modernos microcontroladores frecuentemente incluyen un lenguaje de programacin integrado, como el BASIC que se utiliza bastante con este propsito. Los microcontroladores negocian la velocidad y la flexibilidad para facilitar su uso. Debido a que se utiliza bastante sitio en el chip para incluir funcionalidad, como los dispositivos de entrada/salida o la memoria que incluye el microcontrolador, se ha de prescindir de cualquier otra circuitera.

= Familias de microcontroladores =
Los microcontroladores ms comunes uso son:

Empresa

8 bits

12 bits

14 bits

16 bits

32 bits

64 Observaciones bits

Atmel AVR

Freescale (antes Motorola)

68HC05, 68HC08, 68HC11, HCS08

683xx, 68HC12, 68HCS12, 68HC16 68HCSX12

Hitachi, Ltd

H8

Holtek

HT8

Intel

MCS-48 (familia 8048) MCS51 (familia 8051) 8xC251

MCS96, MXS296

National Semiconductor

COP8

Microchip

Familia Familia 12Fxx, 16Cxx 18Cxx y Familia 12Cxx y 16Fxx de 18Fxx de 10f2xx de 12 14 bits 16 bits bits (PIC16F87X)

NEC

78K

Parallax

ST

ST 62,ST 7

Texas Instruments

TMS370, MSP430

Zilog

Z8, Z86E02

Silabs

C8051

= DIFERENCIA ENTRE MICROCONTROLADOR Y MICROPROCESADOR. = Las extensas reas de aplicacin de los Microcontroladores y Microprocesadores, que se pueden considerar ilimitadas, exigirn un gigantesco trabajo de diseo y fabricacin. *La industria informtica acapara gran parte de los ( C) y ( P) que se fabrican. *Los sistemas de supervisin , vigilancia y alarma los utilizan para optimizar rendimiento de calefaccin, alarmas de incendio y robo, etc. *Las comunicaciones y sus sistemas de transferencia de informacin . Inicialmente cuando no existan los microprocesadores las personas se ingeniaban en disear sus circuitos electrnicos y los resultados estaban expresados en diseos que implicaban muchos componentes electrnicos y clculos matemticos. Un circuito lgico bsico requera de muchos elementos como transistores, resistencias. Al principio se crea que el manejo de un microprocesador era para aquellas personas con un coeficiente intelectual muy alto; Por lo contrario con la aparicin de este circuito integrado todo sera mucho ms fcil de entender y los diseos electrnicos serian mucho ms pequeos y simplificados. Los microcontroladores estn conquistando el mundo, pero la invasin acaba de comenzar y el nacimiento del siglo XXI ser testigo de la conquista masiva de estos diminutos computadores, que gobernarn la mayor parte de los aparatos que se fabrican hoy en das. Cada vez existen ms productos que incorporan un Microcontrolador con el fin de aumentar sustancialmente sus prestaciones, reducir su tamao y costo , mejorar su fiabilidad. El funcionamiento y aplicaciones de los microcontroladores y los microprocesadores permite profundizar en los aspectos tecnolgicos de las arquitecturas de las nuevas computadoras, convirtindose de esta forma en una herramienta til para el desarrollo de variadas aplicaciones que contribuyen al avance tecnolgicos y desarrollo integral de la sociedad.

= El Procesado =
Pues bien Definamos a un microprocesador o procesador como un elemento de hardware que se encarga como su nombre mismo lo dice procesar datos a partir de ciertas instrucciones de entrada arrojando cierto resultado, todo esto en base a su set de instrucciones que incorpora.

Un microprocesador por si solo sera prcticamente inservible, para que funcione necesita estar conectado mediante diferentes buses a otros elementos como la memoria RAM, y dispositivos de entrada y salida (E/S) y otro tipo de memoria especial llamada EEPROM que almacena los datos de forma permanente aun sin energa elctrica. La mayora de los procesadores de las PCs personales suelen utilizar la arquitectura Von Neuman. En esta arquitectura el procesador comparte la memoria RAM para almacenar las instrucciones del programa y los datos. Debemos comprender que en una PC, cuando se carga un programa en memoria, a ste se le asigna un espacio de direcciones de la memoria que se divide en segmentos, de los cuales tpicamente tenderemos los siguientes: cdigo (programa), datos y pila. Es por ello que podemos hablar de la memoria como un todo, aunque existan distintos dispositivos fsicos en el sistema (HDD, RAM, CD, FLASH). Utilizar la arquitectura tiene ventajas y desventajas, una de ellas es que al utilizar la misma memoria para almacenar los datos de programa y las instrucciones, solo se utilizan tres buses (de control, de datos y de direcciones) de estar separadas utilizaramos otros tres buses mas, que con respecto al diseo seria ms costosa. Como desventaja principal de esta arquitectura encontramos que el procesador no puede acceder a los datos de programa y a las instrucciones al mismo tiempo, sino que debe almacenar una de ellos en los registros del procesador y volver a consultar las instrucciones para ejecutar, esto se traduce en prdida de tiempo ya que el procesador tendr que acceder dos veces a la memoria para poder ejecutar una sola instruccin. Tambin existe otro tipo de arquitectura llamada Harvard que es utilizada comnmente por supercomputadoras o Mainframes. Esta define que la memoria de datos de programa y las instrucciones deben estar separadas. Con esto se tienen que crear otros tres buses a la otra memoria que incorporamos. Pero vale la pena ya que podemos procesar la informacin mas rpido, pues se puede acceder a la memoria de datos y a las instrucciones al mismo tiempo.

Set de instrucciones del procesador


Define las operaciones bsicas que puede realizar el procesador, que conjugadas y organizadas forman lo que conocemos como software. El conjunto de instrucciones vienen siendo como las letras del alfabeto, el elemento bsico del lenguaje, que organizadas adecuadamente permiten escribir palabras, oraciones y cuanto programa se le ocurra.

Existen dos tipos de set de instrucciones: CISC y RISC Las instrucciones CISC (Complex Instruction Set Computer, Computadora de Conjunto de Instrucciones Complejo) se caracterizan por tener un repertorio amplio de instrucciones, que pueden hacer clculos muy complejos. Pero tambin se complica su uso. El tipo RISC (Reduced Instruction Set Computer, Computadora con Conjunto de Instrucciones Reducido) se distingue por sus pocas instrucciones, y tamao un tamao fijo por instruccin adems permite el paralelismo en la ejecucin.

= El Microcontrolador =
Fue necesario definir algunas de las caractersticas principales de un procesador porque conociendo lo anterior definiremos al Microcontrolador. Un Microcontrolador en realidad no es otra cosa ms que una mini computadora embebida dentro de un solo encapsulada del tamao de un chip. Este cuenta con procesador, memoria RAM, Memoria ROM y perifricos de entrada y salida. Tcnicamente un Microcontrolador lleva dentro un Microprocesador. Este a su vez cuenta con buses de datos, control y direccin hacia la memoria y hacia los perifricos o puertos. La arquitectura de estos dispositivos es la Harvard quiere decir que poseen 2 memorias una memoria RAM que almacena los datos y otra de tipo EPROM o EEPROM que almacena el programa. Al usar esta arquitectura tiene la ventaja de poder usar simultneamente los dos tipos de memoria y en lugar de ser una desventaja como lo era con una PC normal puesto que todo se encuentra en un solo encapsulado puede implementarse fcilmente. El set de instrucciones es del tipo RISC las cuales ya vimos anteriormente. El lenguaje nativo de estos dispositivos es el lenguaje ensamblador. Aunque en la actualidad hay muchas empresas que se dedican a desarrollar compiladores que funcionan con la sintaxis de C o Basic que despus traducirn a lenguaje mquina para programar el Microcontrolador. Existen muchos fabricantes como Intel, Motorola, Texas Instruments, etc. Pero los ms conocidos son los PICs de Microchip y los AVR de Atmel. Actualmente a los microcontroladores se les puede hallar en muchsimos electrodomsticos como lavadoras, hornos de micro ondas, DVDs etc. Por su bajo precio, fcil programacin y la extensa informacin que circula en internet estos se han vuelto muy utilizados en la electrnica y ramas afines.

= PROYECTOS DE APLICACIN DE MICROCONTROLADOR PIC. =


Proteccin para evitar que se quemen las cerraduras elctricas de las puertas comunitarias En las comunidades de vecinos donde hay una puerta de acceso principal con apertura mediante una cerradura elctrica, la cual puede ser accionada desde mltiples viviendas, suele ocurrir con bastante frecuencia que esta se quema, debido a que alguno de los porteros automticos esta defectuoso, de modo que el pulsador de apertura se queda empotrado. Tras unos pocos minutos de funcionamiento continuo, el electroimn de la cerradura quedara estropeado. Personalmente en mi comunidad de vecinos, en donde solo hay 26 viviendas ya se ha sustituido en un periodo de un ao la cerradura en 4 ocasiones. Este circuito se intercala antes de la cerradura, y desconectara la alimentacin de esta siempre y cuando este alimentada por ms de 5 segundos. Adems en el momento que se active la proteccin comenzara a parpadear un diodo LED, indicando esta situacin. Una vez que se localice la vivienda que dispone del portero electrnico estropeado y desaparezca la tensin de alimentacin que le llega a la bobina, el circuito volver a quedar operativo.

Como podemos apreciar en el esquema, la incorporacin del puente de diodos nos permite utilizar este dispositivo tanto con cerraduras de continua como de alterna, por lo que no debemos de tener cuidado con la polaridad. Gracias al microcontrolador pic 12f629 de tan solo 8 pines, podemos implementar el esquema en un tamao bastante reducido, y situarlo prximo a la cerradura a proteger, con objeto de poder visualizar la intermitencia del Led. Podemos descargar el archivo generado por PROTEUS y el cdigo HEX para su montaje o simulacin, as como el cdigo fuente ASM, por si deseamos realizar alguna modificacin.

= Potencimetro digital mediante 2 pulsadores y display de 7 segmentos =


Este equipo est basado en el microcontrolador pic 16f628, el cual acta a modo de interruptor, de modo que combinando la conexin de 5 resistencias podemos crear una escala de 10 valores. Este circuito lo utilice en un equipo de electro medicina a modo de potencimetro de volumen. Por falta de tiempo no he llegado a comprobar el ancho de banda de frecuencia y de tensin de la seal que podemos tener en la entrada, as que si alguno que monte este circuito lo realiza, le agradecera que compartiera sus experiencias. Email Este microcontrolador pic de 18 pines solo me permite utilizar un digito, pero perfectamente se puede adaptar el circuito y el programa a un microcontrolador de mas pines, y de ese modo poner 2 displays y aumentar el nmero de escalones. Poder ver el funcionamiento del circuito en este video, en donde se atena una seal senoidal de 1Khz y 1V. Para que el microcontrolador actu a modo de interruptor no puede suministrar tensin por sus pines, as que los pines que tengan que actuar a modo de interruptor cerrado los tengo que configurar como SALIDAS en estado de "0" y el resto los tengo que configurar como entradas, ya que as quedan en modo de alta impedancia. En las siguientes imgenes se compara el microcontrolador como si se tratase de un micro interruptor, indicando la tensin que obtenemos en la salida cuando l la entrada disponemos de una tensin continua de 10V.

Podemos descargar el archivo generado por Proteus y el codigo Hex para su montaje o simulacin

Tambin se puede utilizar este circuito acoplndolo al TDA1524 o al LM1036 para regular el volumen de una seal estreo, ya que estos integrados consiguen variar el nivel de sonido dependiendo de la tensin que exista en uno de sus pines. Para ello tan solo tendremos que conectar la resistencia de entrada a Vdd, y la tensin obtenida acoplarla a alguno de estos integrados.

= MICROCONTROLADORES MARCA ATMEL. =


Atmel es una compaa de semiconductores, fundada en 1984. Su lnea de productos incluye microcontroladores (incluyendo derivados del 8051, el AT91SAM basados en ARM, y sus arquitecturas propias AVR y AVR32), dispositivos de radiofrecuencia, memorias EEPROM y Flash, ASICs, WiMAX, y muchas otras. Tambin tiene capacidad de ofrecer soluciones del tipo system on chip (SoC). Atmel sirve a los mercados de la electrnica de consumo, comunicaciones, computadores, redes, electrnica industrial, equipos mdicos, automotriz, aeroespacial y militar. Es una industria lder en sistemas seguros, especialmente en el mercado de las tarjetas seguras. El presidente y CEO de Atmel es George Perlegos, y su hermano Gust Perlegos es vicepresidente. El nmero de empleados es de aproximadamente 7,500, y sus oficinas centrales se ubican en San Jos, California. Atmel posee cinco fbricas de semiconductores: *Fab5 en Colorado Springs, USA *Fab7 en Rousset, Francia *Fab9 en North Tyneside, Inglaterra *Una fbrica en Heilbronn, Alemania *Una fabrica en Grenoble, Francia Entre sus principales competidores se encuentra STMicroelectronics, Texas Instruments, Freescale, Analog Devices y Microchip Technology.

= CARACTERISTICAS ATMEL AVR =


1) Audio, Video, Radio: Microcontroladores pensados para aplicaciones en audio, video y radio. 2) Advanced Virtual Risc. 3) Corresponde a las iniciales de sus inventores: Alf Egil Bogen and Vegard Wollan (AlfVegardRisc). El AVR fue diseado para la ejecucin de programas escritos en cdigo C compilado. Por lo tanto, algunas instrucciones no estn; por ejemplo, no existe la instruccin 'suma inmediata' ('add immediate'), ya que la instruccin 'resta inmediata' ('substract immediate') con el complemento a dos puede ser usada como alternativa. La familia de microcontroladores AVR es bastante extensa y todas comparten el mismo ncleo AVR, pero tienen distintos perifricos y cantidades de RAM y ROM: desde el microcontrolador de la familia Tiny AVR ATtiny11 con 1kB de memoria flash y sin RAM (slo los 32 registros), con un encapsulado de 8 pines, hasta el microcontrolador de la famila Mega AVRATmega2560 con 256kB de memoria flash, 8kB de memoria RAM, 4kB de memoria EEPROM, conversor anlogo digital de 10 bits y 16 canales, temporizadores, comparador analgico, etc. Cada componente de la familia se ha diseado para que guarde cierta compatibilidad con el resto. Los microcontroladores AVR permiten la ejecucin de instrucciones mediante la metodologa 'pipeline' con dos etapas (cargar y ejecutar), que les permite ejecutar la mayora de las instrucciones en un ciclo de reloj, lo que los hace relativamente rpidos entre los microcontroladores de 8 bits. Como una primera sntesis, podemos decir que el set de instrucciones de los AVR es bastante regular , teniendo en cuenta las siguientes consideraciones: Los registros punteros X, Y y Z tienen capacidades de direccionamiento diferentes entre s. Los registros 0 al 15 tienen diferentes capacidades de direccionamiento que los registros 16 al 31. Las registros de I/O 0 al 31 tienen distintas caractersticas que las posiciones 32 al 63. La instruccin CLR afecta los 'flag', mientras que la instruccin SER no lo hace, a pesar de que parecen ser instrucciones complementarias (dejar todos los bits en 1, y dejar todos los bits en 0 respectivamente). Los cdigos de operacin 0x95C8 y 0x9004 hacen exactamente lo mismo (LPM).

La empresa Atmel ha desarrollado una gran cantidad de microcontroladores en diferentes gamas, de forma similar a lo que ha hecho la empresa Microchip con nuestros viejos amigos: los PICs . Quiz, el ms popular es el ATMEL AT90S1200, que es algo as como el 16F84 de Microchip (en cuanto a popularidad se refiere). A continuacin se realiza algunos datos comparativos entre el AT90S1200 y el PIC16F84: N de instrucciones: AVR - 89, PIC - 35 Registros RAM: AVR - 32, PIC - 68 Velocidad: AVR - 12MHz, PIC: 20MHz Memoria de Programa: AVR - 1kByte FLASH (512 lneas de programa, 16bits por inst.), PIC:1kx14 (1024 lneas de programa de 14 bit cada una). Memoria EEPROM libre: AVR - 64Bytes, PIC - 64Bytes Salidas: AVR - 15, PIC - 13 TIMER: AVR - 1 de 8bit (con prescaler desde CK hasta CK/1024), PIC - 1 de 8 bit (con prescaler desde 1:2 hasta 1:256) Comparador Analgico (NO ADC): AVR - 1 PIC - NO POSEE Watchdog: Ambos poseen Oscilador interno: Ambos poseen, en el AVR slo habilitable con programacin paralela Niveles de pila (STACK): AVR - 3, PIC - 8 Interrupciones: AVR - reset, interna, externa, timer y por comparador analgico, PIC - 5 interrupciones

Bsicamente, los AVR tienen 3 registros para cada puerto de salida a saber: DDRB Sirve para decir qu patas son de entrada o salida, 0 es entrada, 1 es salida (es inverso a los PIC). PINB Registro que sirve para entradas solamente. PORTB Registro que sirve para salidas solamente.

Esto significa que para leer una entrada se debe usar el registro PINB mientras que para escribir datos en una salida se debe emplear el registro PORTB (obviamente si hacemos referencia a las patas del puerto B). En el ATMEL AT90S1200 el PortB tiene 8 bits de datos, a diferencia del PORTD que tiene slo 7. El bit 7 del PORTD no se emplea; PORTD tambin consta de 3 registros: DDRD, PORTD y PIND.

Las principales caractersticas del dispositivo son las siguientes: * Alto desempeo, baja potencia. * Arquitectura RISC avanzada: -120 instrucciones poderosas, la mayora con ejecucin de un solo ciclo de reloj. -32x8 registros de trabajo de propsito general. -operacin totalmente esttica. * Programa y Memoria de Datos no voltiles: -2/4/8 kbytes de Memoria Flash Programable en el sistema, con duracin: 10000 ciclos de escritura/borrado. -128/256/512 bytes de EEPROM programable en el sistema, con duracin: 100000 ciclos de escritura/borrado. -128/256/512 bytes de SRAM interna. -Cerrojo de programacin para autoprogramar la Memoria Flash y Seguridad de Datos de EEPROM. * Caractersticas Perifricas: -Contador/Temporizador de 8 bits con Prescaler y dos canales PWM. -Contador/Temporizador de Alta Velocidad de 8 bits con Prescaler separado: Dos Salidas PWM de Alta Frecuencia con Registros de Comparacin de Salida separados. Generador Programable de Tiempo Muerto. -Interfaz Serie Universal con Detector de Condicin de Comienzo. -ADC de 10 bits: Cuatro Canales de Una Sola Salida. Dos Pares de Canales ADC Diferenciales con Ganancia Programable (1x, 20x). -Temporizador Programable de Vigilancia con Oscilador separado dentro del integrado. -Comparador Analgico dentro del integrado. * Caractersticas Especiales del Microcontrolador: -Sistema de Depuracin debugWIRE dentro del integrado. -Programable dentro del Sistema a travs del Puerto SPI. -Fuentes de Interrupcin Externas e Internas. -Modos de Descanso en Baja Potencia, de Reduccin de Ruido de ADC, y de Reduccin de Potencia. -Circuito Mejorado de Reinicializacin de Encendido. -Circuito Programable de Deteccin de Brown-out (estado en que la tensin es entre un 8 y un 12% inferior al valor tpico). -Oscilador Calibrado interno.

EJ.

Termometro Digital DS1620 con Atmel AT89cXX

A continuacin se muestra la lectura de un sensor de temperatura digital como es el DS1620 de Dallas Semiconductores, a travs de un microcontrolador ATMEL AT89CXX, dicho microcontrolador desplegara la lectura del sensor de temperatura a travs de 3 displays de 7 segmentes.

DIAGRAMA DEL CIRCUITO

El circuito que ves a continuacin debe de ser modificado, se le deben de adicionar buffer o algn otro dispositivo (como veas conveniente) para poder amplificar la corriente en los displays, pues directos al micro tienen muy poca luminosidad. Este sensor de temperatura se lee serial mente a travs de su bus I2C, esto puedes verlo en el manual, u hoja de especificacin del dispositivo, adems puede ser programado como termistor, es decir darle valores de temperatura baja alta y media, de acuerdo a los niveles programados y a su lectura de temperatura se pondrn en estado alto o bajo las salidas del DS1620 asignadas para tal efecto. Puedes usar 3 displays o cuatro como ves en la figura, no existe ningn problema, adems puedes cambiar el valor del cristal, yo lo hice funcionar con uno de 4 de 12 y de 16.

CDIGO FUENTE DEL PROGRAMA

Este cdigo es bastante simple nada complicado y de mucha ayuda para la realizacin de otros proyectos adems que en el mismo programa ver la utilizacin de los comandos de ajuste a decimal muy buenos.

;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ;* Programa: ;* ;* Descripcin: ;* ;* Se controla un ds1620 atravs de un at89c52 leyendo de el y mostrando ;* El resultado ledo en una Terminal virtual hacia el puerto serial del ;* Microcontrolador, y los resultados a 4 display ;* ;* Autor: ;* ;* Raul Alejandro Quispe Larico cel 72097633 - lapaz bolivia Control de un sensor de temperatura ds1620

;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

; esta es la conexin de pines entre el ds1620 y el at89c52 displays dq clk rst t auxa n_hex nh signo equ equ equ equ equ equ p0 equ p3.3 p3.4 equ 3bh 3ch equ 3eh 3dh 3ah p3.2

;------------------- -------------------; reset ; vector de interrupcion del reset

org 000h ajmp start

; localidad de interrupcion reset ; saltar a inicio

;---------------------------------------; interrupciones (no usadas) ;------------------- --------------------

org reti org

03h

; interrupcion externa 0

0bh

; interrupcion del timer 0

reti org reti org reti org reti org 25h ; localidad donde se inicia el resto del programa 23h ; interrupcion del puerto serial 1bh ; interrupcion del timer 1 13h ; interupcion externa 1

;---------------------------------------; inicio del programa principal

;---------------------------------------org start: setb acall clk configure ; pone a 1 el ck del ds1620 ; configura el ds1620 ; esperar 10 ms para configuracion de escritura 30h

acall delay loop: acall acall acall start_convert delay read_temperature

; inicia el comando de convercion de temperatura ; esperar 1 segundo ; inicia la lectura de temperatura

mov call call

a,r1 a_dec mostrar_display

; primer byte leydo ; convercion a decimal ; mostrando en el display

ajmp loop

;---------------------------------------; ; ESCRITURA EN EL DS1620 esta rutina escribe datos en el DS1620

;---------------------------------------write1620: mov r0, #08h nextbitwrite: clr clk rrc a mov dq, c setb clk djnz r0, nextbitwrite ret ;---------------------------------------; LECTURA DEL DS1620 ; contador de bits

;---------------------------------------read1620: mov r0, #09h setb dq nextbitread: clr clk mov c, dq setb clk rrc a djnz r0, nextbitread ; contador de lectura de datos del DS1620

clr dq ret ;---------------------------------------; CONFIGURACION DEL DS1620

;---------------------------------------configure: setb rst mov a, #0ch acall write1620 mov a, #00001010b acall write1620 clr rst ret ;---------------------------------------; inicio de conversin ; cpu = 1, 1shot = 0, thf = 0, tlf = 0

;---------------------------------------start_convert: setb rst mov a, #0eeh acall write1620 clr rst ret ;---------------------------------------; LECTURA DE TEMPERATURA

;---------------------------------------read_temperature:

setb rst mov a, #0aah acall write1620 ; transmitir comando lectura

acall read1620 mov r1, a

; leer primer byte ; guarda primer byte

acall read1620 mov r2, a

; leer segundo byte ; guardar el segundo byte

clr rst ret

; final de la transferencia

;--------------------------------------; ; ; ; ; ;--------------------------------------a_dec: mov jnb es_nega: mov mov signo,#0ffh auxa,a ; guardo el negativo signo,#0 acc.7,es_posi convercion de hexadecimal a decimal ----------------------------------la convercion es de un numero hexadecimal de 1 byte en el acumulador a a un numero de datos decimales de 2 bytes en el mismo a = low y b = high

setb clr a subb addc

a,auxa a,#0 ; ahora a es positivo

es_posi: mov mov mov mov mov lazo: mov add da jnc inc salto: inc mov mov cjne b auxa,a a,b a,n_hex,lazo a,auxa a,#1 a salto nh ; incrementando el nhigh n_hex,a a,#99h auxa,a b,#0ffh nh,#0ffh ; nl es el resultado high

mov mov cjne

b,nh a,signo a,#0ffh,sin_signo

; detectando el signo

con_signo: mov orl mov sin_signo: mov ret a,auxa a,b a,#040h b,a ; agregando el signo negativo

;---------------------------------------; mostrar el display

;---------------------------------------mostrar_display: mov auxa,a

anl call mov clr acall setb

a,#0fh buscar_numero displays,a p2.3 delay p2.3 ; encuentra el numero del display en aca

mov swap anl

a,auxa a a,#0fh

call

buscar_numero

; encuentra el numero del display en aca

mov clr acall setb

displays,a p2.2 delay p2.2

mov

a,b

; la parte alta del decimal

mov

auxa,a

anl call mov clr acall setb

a,#0fh buscar_numero displays,a p2.1 delay p2.1 ; encuentra el numero del display en ac a

mov anl mov clr acall setb ret

a,b a,#0f0h displays,a p2.0 delay p2.0

; en la parte alta de b esta el signo

;------------------------------------------

busca numero (retardo)

;-----------------------------------------buscar_numero: mov movc ret ;-----------------------------------------; d e l a y (retardo) dptr,#tabla_display a,@a+dptr

;-----------------------------------------delay: mov buc: nop djnz ret ;-----------------------------------------; ; ; ; esta es la secuencia de datos que genera los numeros para catodo comun tabla del display t,buc t,#0ffh

;-----------------------------------------tabla_display: ; db 0 1 2 3 4 5 6 7 8 9 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh

end

= ROTACIN DE LED'S CON ATMEL AT89CXX =


Este programita es bastante sencillo, se realiza un corrimiento de led's y se puede controlar el sentido de rotacin del mismo a travs de uno de los pines. El puerto por donde se muestra la rotacin es el puerto 1, pero este puede cambiarse para que el desplazamiento se muestre en cualquiera de los otros, si es en el puerto 0 se debe utilizar una red de resistencias (mejor vase: Tutorial de Atmel de esta misma pagina). Este es uno de los inicios para utilizar los motores paso a paso qeu veremos mas adelante

DIAGRAMA DEL CIRCUITO

CODIGO FUENTE DEL PROGRMA. ;*************************** ;* CODIGO Rotacion de leds

;*************************** ; Descripcion: ; ; ; ; ; Esta rotacion se muestra por el puerto P1 el sentido de la rotacion lo determina el pin p3.0 si este es 1 entonces rotacion a la izquierda si es 0 rotacion a la derecha cristal de 11.0592Mhz

;--------------------------------------------------------; Programa Principal

;--------------------------------------------------------org ajmp 0000h inicio ; direccion del reseteo

org inicio: mov mostrar: mov acall jb derecha: rr

0050h

; inicio de programa

a,#00000001b ; cargando con 1 bit

p1,a retardo p3.0,izquierda

ajmp izquierda: rl ajmp

mostrar

a mostrar

;--------------------------------------------------------; Retardo para 1 segundo con cristal = 11.0592Mhz;

;--------------------------------------------------------retardo: mov sal0: sal1: sal2: mov mov djnz djnz djnz ret end r3,#0aeh r4,#0aeh r5,#007h r5,sal2 r4,sal1 r3,sal0

S-ar putea să vă placă și