Sei sulla pagina 1di 38

INSTITUTO TECNOLGICO DE

CHIHUAHUA

Diseo Digital con VHDL.


(12:00-13:00)

Prctica # 8
Control de velocidad de un motor

ALUMNOS

Cuevas Alarcn Jorge Antonio


Medrano Soto Hernn
Polo Aguilar Gabriela

M.C. Enrique Gerardo Hernndez Vega

13 de junio 2014

ndice
Introduccin
Marco terico.......................................................................................................... 4
1. PWM............................................................................................................. 5
2. Memoria......................................................................................................... 6
3. Temporizadores................................................................................................ 7
3.1 Registro de control......................................................................................... 8
3.2 Registro de modo.......................................................................................... 8
3.3 Modo De Funcionamiento de los Timers..............................................................9
Modo 0 - 13 bits................................................................................................. 9
Modo 1 - 16 bits................................................................................................. 9
Modo 2 - 8 bits auto-recarga................................................................................. 9
Modo 3.......................................................................................................... 10
4. Retardos....................................................................................................... 10
4.1 Retardo por software anidado de tres registros R0, R1 y R2....................................10
5. Interrupciones.................................................................................................... 11
5.1 Proceso de interrupcin.................................................................................. 13
Interrupciones externas..................................................................................... 15
Interrupciones de los timers................................................................................ 16
6. Transistores....................................................................................................... 17
Tipos................................................................................................................ 17
NPN................................................................................................................ 17
PNP................................................................................................................. 18
Corte............................................................................................................ 18
Saturacin...................................................................................................... 18
Activa........................................................................................................... 19
6.1 Configuraciones............................................................................................ 19
Emisor Comn................................................................................................ 19
Base comn.................................................................................................... 19
Colector comn............................................................................................... 19
II. Desarrollo......................................................................................................... 20
2

Objetivo:.......................................................................................................... 20
Material........................................................................................................... 20
Diagrama de flujo para elaborar el cdigo..................................................................21
III. Conclusiones.................................................................................................... 26
IV. Anexos............................................................................................................ 27
Instrucciones......................................................................................................... 35

Introduccin

Un temporizador consta de una serie de flip-flops de divisin entre 2, los


cuales reciben una seal de entrada como su fuente de reloj. El reloj se aplica
al primer flip-flop, el cual divide la frecuencia del reloj entre 2. La salida del
primer flip-flop se aplica a la entrada de reloj del segundo flip-flop. que
tambin divide la frecuencia entre 2, y as sucesivamente. Un temporizador
con un nmero n de etapas divide la frecuencia del reloj de entrada entre 2,
ya que cada etapa sucesiva divide entre 2. La salida de la ltima etapa se
aplica a la entrada de reloj de un flip-flop de desbordamiento del
temporizador, o flag, cuyo estado puede ser verificado mediante el software y
su establecimiento en 1 puede generar una interrupcin. Podemos considerar
al valor binario de las salidas de los flip-flops del temporizador como la
cuenta del nmero de pulsos del reloj (o eventos) desde que el
temporizador se inici. Por ejemplo, un temporizador de 16 bits contara desde
0000H hasta FFFFH. La bandera de desbordamiento se establecera en 1 en el
desbordamiento de FFFFH a 0000H del conteo.
La funcin PWM es algo en lo que posiblemente no pensemos, un fundamento
que desconoceremos si no tenemos amplios conocimientos de informtica
tcnica, pero algo con lo que estamos ms habituados de lo que podramos
imaginar. Este tipo de funcin se lleva a cabo en segundo plano, sin que lo
sepamos, pero proporcionando ventajas importantes a nuestros equipos.
La siguiente prctica consiste disear un control de un motor de tal manera,
que se pueda ajustar la respuesta de aceleracin y frenado del motor
mediante cuatro parmetros, ajustndose a las necesidades del usuario, que se
utilizar, para regular la respuesta, a travs de un sensor magntico, que
actuar como acelerador y freno. La transmisin de potencia al motor, se
realizar mediante modulacin por ancho de pulsos (PWM, siglas en ingls
pulse-width modulation) utilizando una etapa de potencia controlada por el
microcontrolador 89S52.

Marco terico.
Para poder llevar a cabo esta prctica se requiere tener en claro los conceptos
de:

Conocimiento bsico del lenguaje ensamblador.


Conocimientos de programacin.
Concepto de Temporizadores
Retardos.
Instrucciones bsicas de lenguaje ensamblador (Anexos).
Interrupciones
Funcionamiento del PWM
Conocimientos de transistores PNP y NPN

1. PWM
Hablamos de la funcin PWM como abreviatura de la modulacin por ancho
de pulsos, algo que se ha convertido en una prctica habitual de los
interruptores de potencia modernos, controlando la energa de inercia. Esta
accin tiene en cuenta la modificacin del proceso de trabajo de una seal de
tipo peridico. Puede tener varios objetivos, como tener el control de la
energa que se proporciona a una carga o llevar a cabo la transmisin de datos.
La funcin PWM requiere de un circuito en el cual hay distintas partes bien
diferenciadas entre s. El comparador es lo que se convierte en el nexo,
contando con una salida y un total de dos entradas distintas. A la hora de
configurarlo tenemos que tener en cuenta que una de las dos entradas se centra
en dar espacio a la seal del modulador. Por su lado, la segunda entrada tiene
que estar vinculada con un oscilador de tipo de dientes de sierra para que la
funcin se pueda llevar a cabo con xito. La seal que proporciona el
oscilador con dientes es lo que determina la salida de la frecuencia. Es un
sistema que ha dado buenas demostraciones de funcionar, convirtindose en
un recurso muy utilizado en cuanto a la disponibilidad de recursos energticos.
Tenemos que tener en cuenta distintos factores a la hora de hablar de los usos
prcticos de la funcin PWM. Con el paso de los aos y desde que la PWM
entrara en vigor, las placas madre contaron con sensores de temperatura,
consultables desde la bios del equipo. A partir de ese momento se impuso
reducir el ruido de la CPU, haciendo que el ordenador reaccionara de distintas
maneras en base al contexto. Si por ejemplo, estamos utilizando el equipo con
5

el objetivo de descargar archivos, como demos de videojuegos, realmente el


ordenador no necesita una potencia superior a la mnima. En estos casos la
CPU no se calienta, no necesita el ventilador y se debe evitar gastar energa de
forma innecesaria.
Cuando montamos un ordenador que deba poder ofrecer un rendimiento de
primer nivel, pensamos en incluir la mayor potencia de ventilacin, para que
en situaciones crticas estos ventiladores puedan funcionar a toda mquina con
el objetivo de evitar problemas en el equipo. Pero esta configuracin se
desaprovecha en momentos como en el ejemplo citado de la descarga de
archivos. En estas situaciones no es necesario que el ventilador gire a toda
velocidad, sino que se puede mantener en los niveles mnimos. La funcin
PWM es una manera de regularlo. Para perfeccionar esto se le aadi un cable
adicional que manda una seal de la velocidad a la que est funcionando el
ventilador. La placa base se encarga de regular la velocidad a la que debe ir el
ventilador en cada momento. Si el equipo se calienta mucho, le dice con una
seal que debe trabajar ms. Para ello hay que configurar el ordenador desde
la bios siempre pensando en obtener los menores ndices de ruido.
Para que la funcin PWM tenga ms sentido y sea ms completa, existen
accesorios que se encargan de llevar esa seal a otros ventiladores que
tambin se puedan beneficiar de ella. El objetivo comn es mejorar lo mximo
posible el rendimiento de estos equipos.
2. Memoria
Existen dos tipos de memoria las cuales son:
Memoria de programa: esta implementada con la tecnologa ROM, es una
memoria de solo lectura.
Memoria de datos: esta implementada con la tecnologa RAM elaborada a
base de flip flops.
Esta puede ser de hasta 64K bytes de memoria de datos externa. Direcciones
de memoria de datos externos puede ser o bien 1 o 2 bytes de ancho, Las
direcciones de un byte se utilizan a menudo en combinacin con uno o ms
otros I/0 lneas a pgina de la RAM, como se muestra en la figura, tambin
direcciones de dos bytes se pueden utilizar en cuyo caso el byte de direccin
alta se emite en el puerto 2.
6

3. Temporizadores
El C 8051 dispone de 2 Timers de 16 bits, el Timer 0 y Timer 1 que ser
utilizados como contadores o como temporizadores.
Funcionamiento como Temporizador
Cuando funciona como temporizador (Timer), el registro contador se
incrementa cada ciclo mquina. Se activa un indicador cuando el contador
debido a un desbordamiento (<<overfloat>>), alcanza el valor 0. Estos
indicadores aparecen en el registro TCON con los nombres TF0 Y TF1. Por lo
tanto, lo podemos considerar como un contador de ciclos mquina, de tal
manera que, como a cada ciclo mquina le corresponden 12 periodos de reloj,
la razn de contaje es 1/12 la frecuencia del oscilador.
Funcionamiento como Contador
Cuando funciona como contador (Counter), el registro se incrementa en el
flanco descendente de la seal externa aplicada a la patilla T0 o T1. La seal
externa se muestrea durante el estado 5 de la fase 2 (S5P2) de cada ciclo
maquina, Como el contador se incrementa cuando la entrada seala un nivel
alto en un ciclo y un nivel bajo en el ciclo siguiente, el nuevo valor de contaje
aparece en el registro durante el estado 3 de la fase 1 (S3P1) del siguiente
ciclo mquina en el que la transicin ha sido detectada, por lo tanto la razn de
7

contaje es 1/24 de la frecuencia del oscilador, ya que se necesitan dos ciclos


mquina para reconocer la transicin del flanco descendente.
Adems de la posibilidad de eleccin entre estas dos funciones, los Timers 0 y
1 disponen de cuatro modos de funcionamiento diferentes, que permiten
modificar el formato del registro de conteo o habilitar la recarga automtica de
un valor de consigna.
3.1 Registro de control
El control del el Timer 0 y Timer 1 se realiza a travs de los cuatro bits
superiores del registro TCON.
Este registro es direccionable bit a bit y est situado en la posicin 38H de
memoria interna dentro de los registros de funciones especiales (SFRs).
La descripcin de los cuatro bits utilizados por los timers son los siguientes:

TCON.7 (TF1)
TCON.6 (TR1)
TCON.5 (TF0)
TCON.4 (TR0)

Flag de overflow del Timer 1


Flag de puesta en marcha del Timer 1
Flag de overflow del Timer 0
Flag de puesta en marcha del Timer 0

3.2 Registro de modo


La configuracin de un Timer (eleccin de su funcin y su modo) se efecta
mediante programacin del registro de control TMOD.
Este registro no es direccionable bit a bit y est situado en la posicin 89H de
la memoria interna dentro del rea de registros de funciones especiales (SRFs)
La descripcin de los bits de este registro es la siguiente:

3.3 Modo De Funcionamiento de los Timers


El modo de funcionamiento de los timers se selecciona fijando los bits M0 Y
M1 del registro TMOD.
Modo 0 - 13 bits
La frecuencia de entrada es 1/12 de la frecuencia del oscilador trabajando en
modo Temporizador, o la frecuencia de la seal de entrada al pin Tx (1) si
trabaja en modo contador (counter).
El Timer funciona en este caso como un contador de 8 bits precedido por un
predivisor de 32 . El registro del contador se configura, pues, como un registro
de 13 bits: 5 bits en la parte baja para el predivisor (TLx) y 8 bits en la parte
alta para la cuenta (THx). Cuando el contador pase de estar los 13 bits a 1, a
estar todos a 0, el indicador de interrupcin TRx se pone a 1. La entrada de
conteo esta habilitada cuando TRx (bit de control del registro TCON) est a 1
y cuando GATE (Bit de modo de TMOD) est a 0, o bien cuando la entrada
INTx se encuentra en estado 1.
Modo 1 - 16 bits
El modo 1 es idntico al modo 0 excepto porque el registro del contador
emplea su capacidad completa (16 bits) sin predivisor, 8 en TLx y otros 8 en
THx. El rebasamiento se produce al contar 2^16=65.536 ciclos mquina o
flancos de bajada, con lo que se activa el flag de interrupcin.
Modo 2 - 8 bits auto-recarga
El modo 2 de funcionamiento configura el Timer como un contador de 8 bits
con recarga automtica. La parte baja TLx sirve de contador. Cuando este
contador llega a 0 por desbordamiento, el indicador TFx se pone a 1 y el
contenido de THx se carga en el contador TLx. El valor de autorrecarga lo
elige el programador segn sus clculos, y el caso de que fuera 00
hexadecimal, entonces se producira el rebosamiento al contar 2^8=256 ciclos
mquina o flancos de bajada.
Modo 3

10

Es un modo que proporciona dos contadores de 8 bits independientes, siendo


los registros de contaje, el TL0 y el THO. El primero mantiene la estructura
del Timer T0, y el segundo (ver figura) permite solamente la cuenta de ciclos
mquina, realizndose su control directamente mediante la seal TR1 y
activando el flag de interrupcin del Timer T1 cuando se produce el
rebosamiento.
El modo 3 esta dirigido a las aplicaciones que necesitan un contador adicional
de 8 bits. Con el Timer T0 configurado en modo 3, el 8051 posee un timer de
16 bits (T1) y dos timers de 8 bits. Esta caracterstica slo es utilizable en
aplicaciones en las que el Timer T1 no requiera su recurso de interrupcin,
puesto que en este caso su indicador (TF1) est unido a la salida del contador
de 8 bits en que se convierte TH0.
4. Retardos
El tiempo de un retardo por programa no tiene un valor fijo, este depende de
las instrucciones que forman parte del bucle (los ciclos mquina utilizados) y
de la velocidad del reloj del microprocesador (CPU).

Para este ejemplo en cuestin, el bucle se realiza sobre la instruccin DJNZ, la


cual necesita dos ciclos mquina para su ejecucin. Cada ciclo mquina utiliza
12 periodos de reloj. Si la frecuencia de la CPU es de 12MHz, el tiempo
empleado en realizar las 256 iteraciones es de 512 s (microsegundos).
INICIO:
RET1:
END

MOV
DJNZ

R0,#0FFH
R0,RET1

4.1 Retardo por software anidado de tres registros R0, R1 y R2.


Para poder realizar retardos por software con tiempos superiores al segundo se
ha de realizar mediante el anidamiento de bucles. En este sistema, por cada
decremento del registro R1, el registro R0 se ha decrementado 256 veces, y
por cada decremento de R2 el R1 ha realizado 256 iteraciones, por lo que el
resultado final es de 224 = 16777216 iteraciones. El tiempo resultante es
11

aproximadamente 33,554432 segundos, segn las condiciones expuestas en el


ejemplo anterior.

Para determinar el tiempo se han de modificar los bits que representan los
valores ms significativos, correspondientes al R2.
Malgastar la capacidad de clculo de la CPU en temporizaciones o retardos
por software solo tiene sentido cuanto el microprocesador nicamente ha de
atender a un proceso. El trabajo normal es utilizar los timers y las
interrupciones para realizar las tareas de temporizacin, y dejar a la CPU
libre para otros procesos.
RETARDO:
RET3:
RET2:
RET1:

MOV
MOV
MOV
DJNZ
DJNZ
DJNZ
END

R2,#0FFH
R1,#0FFH
R0,#0FFH
R0,RET1
R1,RET2
R2,RET3

5. Interrupciones
El 8052 posee interrupciones de 8 con 6 vectores.
Las interrupciones posibles con sus vectores de interrupcin son:

12

Todas estas interrupciones pueden ser habilitadas o deshabilitadas de forma


conjunta o individualmente.

Se definen adems dos niveles de prioridad. Una vez que se est atendiendo
una interrupcin no se atender otra a menos que la que se est atendiendo sea
de prioridad baja y la nueva interrupcin sea de prioridad alta. Con ste
mtodo el nivel de anidamiento de las interrupciones se ve limitado a dos. La
prioridad de cada interrupcin se puede definir individualmente. Adems,
cuando dos interrupciones son pedidas al mismo tiempo se establece un orden
13

de preferencias siendo la de mayor


interrupcin ms bajo.

prioridad la que tiene el vector de

El proceso de las interrupciones es el siguiente: Cuando se pide una


interrupcin, se pone a uno un flag, de modo que cada vez que el
microcontrolador termina de ejecutar una instruccin comprueba estos flag y
si est activo ejecuta una instruccin LCALL al vector de interrupcin
correspondiente. Estos flags son borrados por hardware una vez ejecutada la
llamada excepto los que se refieren al puerto serie y al temporizador 2, que
debern ser borrados por software.
5.1 Proceso de interrupcin
Como se ha indicado en captulo 8 el ciclo mquina del C 8051 est
compuesta por 12 pulsos de reloj. Dos ciclos completos de reloj forman un
estado, habiendo un total de 6 por cada ciclo mquina, y cada estado esta
compuesto por dos fases (P1 y P2).
Los flags de interrupcin son muestreados por el sistema de interrupciones en
la fase 2 del estado 5 (S5P2) de cada ciclo mquina y se procede con su
procesamiento a no ser que exista una situacin de bloqueo.
Si no existe ninguna situacin de bloqueo:
14

En el primer ciclo mquina el sistema de interrupciones detecta los flags


activados.
En el segundo ciclo mquina se realiza el escrutinio de las interrupciones,
analizando si estn habilitadas y si es as, cul es su nivel de prioridad, al
mismo tiempo que puede ejecutarse un instruccin de 1 ciclo mquina o
terminar la que estaba ejecutando
Durante los ciclos mquina 3 y 4, el sistema de interrupciones genera un
LCALL (llamada) al vector de la interrupcin que seguidamente se va a
ejecutar.
Por lo tanto, el tiempo mnimo de respuesta de una interrupcin, sin que haya
ninguna situacin de bloqueo, que tiene el C desde que solicita sta hasta que
comienza su ejecucin, es algo mayor que la duracin de 3 ciclos mquina.
Por otro lado, estas son la situaciones de bloqueo con las que se puede
encontrar el sistema de interrupciones:
Se est ejecutando una instruccin en el ciclo mquina 3, y hasta que no
finalice no se puede generar el LCALL (llamada) por hardware al vector de
interrupcin
Se est atendiendo otra interrupcin con nivel de prioridad igual o mayor,
entonces al menos una instruccin ms del programa principal tendr que ser
ejecutada antes de que la interrupcin sea vectorizada (el PC se carga con el
vector correspondiente)
Se est ejecutando la instruccin RET I o alguna de acceso a IE o a IP,
entonces al menos una instruccin ms del programa principal tendr que ser
ejecutada antes que la interrupcin sea vectorizada.
En caso de bloqueo y dado que el muestreo de los indicadores de interrupcin
se repite en cada ciclo mquina, la nueva muestra reemplaza a la antigua y, si
la peticin de interrupcin todava est presente, ser tenida en cuenta en el
siguiente ciclo mquina. En caso de que la peticin de interrupcin provenga
de una fuente interna (Puerto serie, Timer, ..), el indicador an estar activo,
bien porque debe estar desactivado por programa, o bien porque se vuelve a
15

poner a cero en el momento del salto a la subrutina de servicio de la


interrupcin. Por tanto, la peticin de interrupcin se tendr en cuenta de
nuevo inmediatamente despus del bloqueo.
Por el contrario, en caso de una interrupcin proveniente de una fuente externa
programada para interrumpir por nivel, es posible que la peticin de
interrupcin nunca sea atendida. Al bloquearse la peticin es preciso que el
cambio de estado dure hasta el prximo muestreo, un ciclo de mquina ms
tarde, para que un nuevo anlisis conduzca a la ejecucin de la peticin.
Interrupciones externas
Utilizando dos lneas del puerto P3 cuyas funciones secundarias son,
respectivamente INT0' (1) e INT1' se puede definir que ocurra una
interrupcin externa. Las interrupciones externas INT0' e INT1' se pueden
programar por nivel (cambio de estado lgico) o por flanco (cambio de estado
de 1 a 0). El control se realiza con el registro TCON (cuatro bits de menor
peso LSB).

Si IT0 e IT1 estn a 1, la peticin de interrupcin en INT0' e INT1'


respectivamente se hace por flanco de bajada, mientras que si estn a 0 se hace
por nivel bajo.
Los bits IE0 e IE1 se ponen a 1 cuando ha habido una peticin de interrupcin
INT0' o INT1' respectivamente. Estos bits tambin pueden servir para
provocar cualquiera de las dos interrupciones por software. Para hacer esto,
primero hay que habilitar la interrupcin en el registro IE y luego poner el bit
IT0 o IT1 a 1 para habilitar la interrupcin por flanco de bajada, seguidamente
activar el bit IE0 o el IE1 para hacer la peticin de INT0' o INT1'
respectivamente. Esto provocar la interrupcin exactamente igual que si se
hubiera producido por hardware.
Cuando el programa salta a la subrutina de interrupcin automticamente se
borra el bit de peticin de interrupcin correspondiente (IE0 o IE1) mientras
16

que el bit de modo de peticin (IT0 o IT1) se mantiene invariable siempre y


cuando se haya producido por flanco de bajada. En cambio, si se ha producido
por un cambio de estado lgico el indicador IE0 o IE1 permanecern a 1, por
lo que han de ser puestos a cero por programa.
Interrupciones de los timers.
Los indicadores o flags TF0 y TF1, correspondientes a el timer 0 y timer 1
respectivamente, reflejan las peticiones de interrupcin de estas dos fuentes.
Cuando se produce un desbordamiento (overflow) en los timers se produce un
pulso en TFx (automticamente se pone a 0) que a su vez provoca una
interrupcin (si est permitida). Esta interrupcin hace que el programa
principal salte al lugar indicado por el vector de interrupcin correspondiente.
Existen dos tipos de configuracin de disparo ya sea por nivel o por
transicin. A continuacin veremos un ejemplo de estas dos formas
Ejemplo de la forma de disparo por nivel.

INICIO:

JUMP INICIO
ORG 19
INC A
RETI
SETB
EA; HABILITACIN
SETB
EX1
JMP $
END

Ejemplo de la forma de disparo por transicin.

INICIO:

JUMP INICIO
ORG 19
INC A
RETI
SETB
IT1; HABILITACIN
SETB
EA
SETB
EX1
JMP $
END

17

6. Transistores
Los transistores son unos de los componentes electrnicos que ms se utilizan,
de hecho, se encuentra en prcticamente todos los aparatos elctricos que
utilizamos a diario.
Se pueden usar como conmutador, rectificador, amplificador, oscilador.
Tipos
Hoy en da la mayora de los transistores que se usan son de este tipo,
bsicamente por dos razones. Este tipo de transistores son ms rpidos y
pueden trabajar con corrientes ms elevadas. La otra razn es que un NPN
puede adaptarse para funcionar en lugar de un PNP, pero no funciona a la
inversa.
NPN

Este tipo de transistores estn empezando a caer en desuso debido a las


cualidades antes citadas de los NPN.
Esta formado por un material cargando negativamente (N) que se encuentra
entre dos materiales cargados positivamente (P)
Si aplicamos una pequea corriente a la base, el transistor permite el paso de
corriente entre el colector y el emisor.
En sus smbolos, la flecha apunta en la direccin en la circula la corriente
cuando el transistor se encuentra en activa.

18

PNP

Corte
Se dice que un transistor est en corte cuando:
corriente de colector = corriente de emisor
Recordemos que un voltaje es una DIFERENCIA de potencial entre dos
puntos, en este caso tal diferencia no existe, por lo que no hay corriente
circulando por el transistor.
Debido a esto, no sacara nada por la base, podr decirse que un transistor en
corte es como un interruptor abierto, no permite que haya corriente
atravesando el circuito.
Esta formado por una capa de material semiconductor cargado positivamente
(P) y dos capas de material cargado negativamente. (N).
Por ello, para que funcione hay que aplicarle una tensin negativa en la base.
Saturacin
corriente de colector = corriente de emisor = corriente mxima
Los transistores requieren cierta potencia para funcionar, esta potencia
depende del transistor y se puede consultar en su correspondiente Dathaseet.
Cuando la diferencia entre el colector y el emisor no supera el mnimo
requerido ( al que se conoce como valor umbral) el transistor no es capaz de
funcionar ampliando lo que se le manda.
19

En este caso, se limita a dejar pasar la corriente tal y como la recibe, como si
se tratase de un cable, entra por un lado y sale por el otro sin sufrir cambios.
Activa
Cuando el transistor no se encuentra en ninguna de las regiones anteriores, es
porque se encuentra en una intermedia, a la que llamamos regin activa.
En este caso el transistor funciona como un amplificador de seal.
6.1 Configuraciones
Emisor Comn
Aplicamos una seal por la base del transistor y la
recibimos amplificada por la colector. El emisor se
conecta a tierra.
De esta forma logramos ganancia tanto de tensin
como de corriente.
Base comn
Aplicamos una seal por el emisor y la obtenemos
por el colector. La base se conecta a masa.De esta
forma obtenemos una ganancia de tensin, la
corriente es prcticamente la misma
Colector comn
La seal se aplica a la base del transistor y se obtiene
por el emisor. El colector se conecta a masa.
De esta forma obtenemos una ganancia de corriente,
la tensin se queda prcticamente como entro (es algo inferior).
II. Desarrollo.

20

Prctica #8 Control de la velocidad de un motor.


Objetivo:
Aplicacin del lenguaje ensamblador.
Aplicacin de conocimientos adquiridos en clase.
Hacer uso de la tarjeta azul y su funcionamiento.
Material
Tarjeta azul ITCH
Keil Vision [Software]
Protoboard
Cables.
Transistor 2N2222
Modulo con motor.
Osciloscopios.
Procedimiento
1.- Leer la frecuencia
2.-Convertir a velocidad angular RPS
3. Desplegar en binario la velocidad angular (RPS) en los leds.
4.- Comparar con el Set-Point con la velocidad a la que debe estar el motor.
5.- Dependiendo del resultado aplicar el ciclo te trabajo correspondiente, para
visualizar la carga y aplicar ms o menos potencia..
6.- Se cicla al paso 1.

Diagrama de flujo para elaborar el cdigo.


Cdigo Principal:

Inicio

Configurar las
interrupciones.

21

Asignar valores
iniciales.

Muestra VR en
leds

Controlador de Velocidad Deseada

Evaluar sentido

No

Evala e incrementa

Si
Si
No

Evala y decrece

Esta en 20.

No

Aumentar
Velocidad

Si

Invertir sentido
Cambia el sentido

Disminuir
Velocidad

Controlador del motor.


Invertir la salida

Leer la salida

22

No

Leer el ltimo bit del


puerto

Cargar al reloj el
tiempo de

Si

Cargar al reloj el
tiempo de encendido.

Estabilizador.
Comparar
velocidades.

VD=VR

VD< VR

No

Vr<VD

Evalua
VR aumentar

Evala si VR
disminuye

Si

Si

No
VR+1

VR-1

Calculador RPS
Incrementar el
contador

No

Contador==8

Si
23

Reinicia el
contador

Toma lectura de
tiempo

Reiniciar el reloj

Busca en tabla

*
Se usar el PWM que se realizo en la prctica anterior, tomando en cuenta en
consideracin lo siguiente:
Para poder controlar la potencia destinada al motor DC, se va a utilizar la
modulacin por ancho de
pulsos conocida como PWM (pulse-with
modulation), el PWM de una seal o fuente de energa, consiste en una tcnica
en la que se modifica el ciclo de trabajo de una seal peridica (una senoidal,
o una cuadrada como en este caso), ya sea para transmitir informacin a travs
de un canal de comunicaciones, o bien, para controlar la cantidad de energa
que se enva a una carga (motor como en este caso)
El ciclo de trabajo de una seal peridica es el ancho relativo de su parte
positiva en relacin con el perodo. Expresado matemticamente:

24

Siendo:
D: el ciclo de trabajo.
: el tiempo en que la funcin es positiva (ancho del pulso).
T: el perodo de la funcin.

Como la amplitud mxima en voltaje de las seales PWM generadas por el


microcontrolador no supera los +5V, debiendo trabajar el motor la tensin
suministrada al sistema completo por el usuario, se ha diseado una etapa de
potencia, la cual adaptar las seales PWM generadas por el microcontrolador
mediante un optoacoplador del modulo, que gobernarn con un transistor
2N2222 , actuando directamente sobre el.
Se manejara el pin P2.0 para controlar el motor, y el puerto P3.2 para
manipular el optocoaplador .
Cada vez que se presione el push button se desactivaran las interrupciones por
1 segundo, durante ese segundo se mostrar la velocidad deseada en el
Display 7 Segmentos y luego se reactivan interrupciones y sigue todo bien

25

Por otra parte , cada que se presiona, cambia la velocidad deseada asi que se
muestra una cantidad diferente aunque sea solo 1 segundo, te permite saber
bien qu es lo que se desea medir.
Se utilizo el transistor en etapa de potencia ya que se deseaba activar algo con
un integrado, pero este no tenia la potencia suficiente para ponerlo en marcha.
Ese es uno de los casos para el que los amplificadores son tiles.
Conexin del motor con el transistor.

Se deben activar las interrupciones, definir el tipo de disparo de la


interrupcin as como el tipo de interrupcin a utilizar. En este caso
utilizaremos el disparo por transicin.

26

III. Conclusiones
Con esta prctica se entendi las dos formas de disparo, ambas tienen sus
ventajas y desventajas.
Al presionar el botn de las interrupciones se contaban ms de las
instrucciones pedidas, al parecer el botn era demasiado sensible al toque y
mientras ms se presionaba ms interrupciones contaba.
Se utiliz la interrupcin por transicin ya que de esta manera
automticamente al presionar el botn se genera la interrupcin y sale de la
rutina de interrupcin casi al nstante.
Se vio la importancia de conocer el uso de tansistores y su aplicacin.
Por otro lado se comprendi que algunas instrucciones an teniendo errores
gramaticales las instrucciones son compiladas.
Comentarios:
Esta prctica ha sido una de las ms complejas llevadas a cabo durante el
semestre, ya que el poco conocimiento del uso de instrumentos de medicin y
conexin en el emulado resultaban poco usuales y muy verstiles las cuales no
nos ayudaban a encontrar el error, no sabamos exactamente si era problema
de cdigo, lgica o mala conexin del transistor.

27

IV. Anexos
Simulacin en proteus

;----CDIGO
;************************************************************
;*
CONTROL DE VELOCIDAD DE UN MOTOR
*
;*
DISEO DIGITAL CON VHDL
;*
PRACTICA #8
*
;* INTEGRANTES: CUEVAS ALARCN JORGE ANTONIO
*
;*

MEDRANO SOTO HERNAN

;
POLO AGUILAR GABRIELA
*
;************************************************************
;----------------------------- INICIO DE CODIGO -----------JMP INI
ORG 03H;----------- INTERRUPCION_0 --------JMP INTERRUPCION_0
ORG 13H
JMP INTERRUPCION_1
28

ORG 0BH
JMP TIMER_0
ORG 1BH;----------- TIMER_1 ---------------JMP TIMER1
;----------------------------- DEFINICIONES ---------------VEL_D EQU R0
VEL_R EQU R1
UNI_DEC EQU R6
CONTC EQU 21H ; DECENAS DE SEGUNDOS
CONTD EQU 22H ; UNIDADES DE SEGUNDOS
UNIDADES EQU 23H
DECENAS EQU 24H
INDICE EQU 25H
T_ON EQU R2
T_OFF EQU R3
SENTIDO EQU R4 ; 1= AUMENTA 0= DISMINUYE
BARRENOS EQU R5
THTEMP EQU R7
ORG 26H
INI:
;----------- RUTINA DE ARRANQUE INICIO (8s Aprox) ----------------MOV R1, #0
C1:MOV R2, #8
C2:MOV R0, #0
CLR P2.0
XU: DJNZ R0, XU
MOV R0, #0
SETB P2.0
XD: DJNZ R0, XD
DJNZ R2, C2
DJNZ R1, C1
;----------- RUTINA DE ARRANQUE FIN ----------------MOV TMOD,#11H
;Modo del timer 256*256
SETB EA
;Habilitacion de Interrupciones
29

SETB IT0
;Configuracion de Interrupcion 0
SETB IT1
SETB EX0
;Habilitacion de Interrupcion 0
SETB EX1
SETB ET0
SETB ET1
;
SETB TR1
;
SETB TR0
;
MOV VEL_D, #6 ;Cargando
MOV VEL_R, #21
MOV T_OFF, #128
;valores
MOV T_ON, #128
;iniciales
MOV SENTIDO,#1
MOV BARRENOS, #0
MOV UNI_DEC, #0
MOV TH0, #0
MOV TL0,#0
LEDS:
MOV P0, VEL_D
MOV A, VEL_R
CPL A
MOV P1, A
JMP LEDS
;------------------------------ RUTINA DEL TIMER ------------ Y CONTROLA
DISPLAY
TIMER1:
CONTMOTOR:
CPL P2.0
MOV A, P2
CJNE A, #0FFH, Apagado
;----------------------- Prendido
MOV TH1, T_ON
MOV TL1, #0
RETI
Apagado:
30

MOV TH1, T_Off


MOV TL1, #0
RETI
;----------------------------- RUTINA DE INTERRUPCION ------INTERRUPCION_1:
;CONTROL DE VELOCIDAD DEL
USUARIO
CJNE SENTIDO,#1,DISMINUYE
AUMENTAR:
CLR C
CJNE VEL_D,#20D,SIGUE_A
MOV SENTIDO, #0
RETI
SIGUE_A:
INC VEL_D
RETI
DISMINUYE:
CJNE VEL_D,#6D,SIGUE_D
MOV SENTIDO, #1
RETI
SIGUE_D:
MOV A, VEL_D
SUBB A,#1
MOV VEL_D, A
FIN:RETI
;--------------------------------------------------------;--------------------------------------------------------INTERRUPCION_0: ; CONECTADA AL SENSOR CONVIERTE LAS RPS
Y ESTABILIZA
;--------------------ESTABILIZADOR INICIO
;-------------------------MOV A, VEL_D
;CJNE VEL_R ,A ,EVALUAR
SUBB A, VEL_R
JNZ EVALUAR
JMP CONTBAR
31

EVALUAR:
MOV A, VEL_D
SUBB A,VEL_R
JC DISMINUIR
;AUMENTAR:
CJNE T_ON,#1D,SIGUE_AU
JMP CONTBAR
SIGUE_AU:
MOV A, T_ON
SUBB A,#1
MOV T_ON, A
INC T_OFF
JMP CONTBAR
DISMINUIR:
CJNE T_ON,#254,SIGUE_DI
JMP CONTBAR
SIGUE_DI:
MOV A, VEL_D
CLR C
MOV A, T_OFF
SUBB A,#1
MOV T_OFF, A
INC T_ON
JMP CONTBAR
;--------------------ESTABILIZADOR FINAL
;--------------------RPS INICIO
CONTBAR: ;INCREMENTA BARRENOS 4 VECES Y PASA A
TOMAR LA LECTURA
INC BARRENOS
CJNE BARRENOS, #8, FIN
SUERTE:
MOV BARRENOS, #0
MOV THTEMP,TH0
MOV TH0, #0
MOV TL0, #0
32

MOV A, THTEMP
SUBB A, #42
JC FIN
MOV DPTR, #TABLA_RPS
MOV INDICE, #0D
CLR A
NEXT: MOV A,INDICE
MOVC A,@A+DPTR
SUBB A, THTEMP
INC INDICE
JNC NEXT
CLR C
MOV A, INDICE
ADD A, #2
MOV VEL_R, A
RETI
;--------------------------RPS FINAL
;-------------------------TIMER_O---------------;-----------------------------------------------TIMER_0: ;NO HACE NADA PORQUE ES UTILIZADO COMO TIMER
;CUYAS LECTURAS SON ENVIADAS A THTEMP
MOV BARRENOS, #0D
CLR C
RETI
TABLA_RPS:
DB 244D ;4
DB 195D ;5
DB 162D ;6
DB 139D ;7
DB 122D ;8
DB 108D ;9
DB 97D ;10
DB 88D ;11
DB 81D ;12
DB 75D ;13
33

DB
DB
DB
DB
DB
DB
DB
DB
DB
DB

69D
65D
61D
57D
54D
51D
48D
46D
44D
42D

;14
;15
;16
;17
;18
;19
;20
;21
;22
;23

END
Calculo de tabla del RPS

La primera columna son las lecturas que se tomaron de TH0, mientras que la segunda
columna es la conversn deseada para ese tiempo, posteriormente se convierten un nmero
de 16 bits para que se quede exclusivamente el nible superior es decir los 4 ms
significativos y fue as como se obtuvieron los valores de la tabla.

34

Circuiteria

35

En el osciloscopio

36

Instrucciones
ARITMETICAS

LOGICAS
37

TRANSFERENCIA

38

Potrebbero piacerti anche