Professional Documents
Culture Documents
los circuitos internos del conversor A/D. Este tiempo puede ser menor aunque es
cuestin de controlar las tablas de tiempos segn el proceso que se este realizando
Para conseguir una conversin en continuo CS y RD deben de estar a 0 y
la patita INTR conectada a la entrada de WR. Esta INTR/WR conexin fuerza a 0
la patita de WR y asegura la operacin del circuito
Pin
1
2
3
4
5
6
7
8
9
10
11/18
19
20
Nombre
CS- Chip Select
RD- Salida autorizada
WR- Start conversion
CLKIN
INTR
Vlts +
Vlts A GND
Vref/2
D GND
DB7 a DB0
CLK R
Vcc
Funcion
Habilita el chip
Lee la informacion
Iniciar conversion
Entrada de reloj
Indicador fin conversion
Seal positiva analogica
Seal negativa analogica
Tierra analogica
1/2 maximo del Pin 6
Tierra digital
Salidas digitales
Salidas reloj interno
Alimentacion
Logica
I/0
I/0
I/0
I/0
-0,3/16V
0
0
I/0
hasta 6,5V
equ
0x03
PTAA_TRA
equ
0x05
PTAB_TRB
equ
0x06
bsf
ESTADO,5
;Al BANCO 1
clrf
PTAA_TRA
clrf
PTAB_TRB
bcf
estado,5
;Al banco0
PTAA_TRA
TEMPORIZACION DE 0,5 mS
BSF
estado,5
;Al banco 1
movlw 0xFF
movwf PTAB_TRB
bcf
;Al BANCO 0
estado,5
movlw b00010000
movwf PTAA_TRA
movlw b00000000
movwfPTAA_TRA
TEMPORIZACION DE 0,5 mS
movf
PTAB_TRB
pagina inicio
Pagina articulos
asociados
microcontroladores y robotica
el control del tiempo en un microcontrolador
El oscilador externo
2-
El TMR0
3-
El Divisor de frecuencias
p=16c84
radix hex
tmr0_opt equ
0x01
status
equ
0x03
intcon
equ
0x0b
ptb equ
0x06
aux
equ
org
goto
inicio
org
inicio bsf
status,5
clrf
ptb
0x0e
tmr0_opt
bcf
status,5
clrf
ptb
;Registro de Puerta B = 0
unsgd movlw
movwf aux
contabcf
de
;desbordamiento del TMR0 = 0
movlw 0xd8 ;carga W con valor literal 0xd8 (216 en decimal)
movwf tmr0_opt
un
;periodo hasta el desbordamiento de 255-216=39
conta1btfss
asi es
intcon,2
conta1
unidad
;hasta llegar a 255
decfszaux,1 ;decrementa una unidad por cada ciclo de instruccin
;y recarga el registro aux con el nuevo valor.
;por ciclo aux=aux-1 si llega a 0 brinca
goto
movlw 0xff
movwf ptb
end
resumiendo
tiempo = 4 x 1/4000000 x 39 x 100 x 255 = 0,9945 segundos
Aviso de responsabilidad.
pagina inicio
temas asociados
microcontroladores y robotica
Calculo de tiempo en bucles de retardo
anidados
Realizado por A. Marin
Basicamente la precision del tiempo en los microcontroladores depende
del tipo de oscilador y es en los osciladores XT o sea los controlados por cristal
de cuarzo en los que se obtiene mejor precision.
Estamos todos de acuerdo en que las instrucciones de los programas
son de 1 o 2 ciclos de instruccion y tambien estamos de acuerdo que cada
instruccion equivale a 4 ciclos de reloj.
Partamos de un oscilador tipo basico de 4 Mhz, lo que nos daria:
TR (Tiempo Reloj)= Periodo de oscilador/Frecuencia oscilador
TR=1sg/4.000.000 de ciclos por segundo
TR en nanosegundos= 1.000.000.000/4.000.000=250 nanosegundos
TI (Tiempo Instruccion)=4 x TR= 4 x 250 nsg =1000 nsg =
1microsegundo = 1usg.
Resumiendo cada instruccion tarda segun el tipo entre 1usg. y 2 usg. en
ejecutarse.
Veamos cuando tardan cada instruccion de programa:
decfsz
cont1,1
---------------------------goto
bucle
---------------------------decfsz
cont2,1
---------------------------goto
bucle
Aviso de responsabilidad.
Atencion esto son programas realizados sin interes comercial ni
economico alguno, solo desarrollados con animo de enseanza, no pretendo
que funcionen en otros sistemas o para otras personas, cualquier error que
exista debe ser subsanado por la persona que lo usa. Cualquier dao que
ocasione el uso de este programa es responsabilidad del usuario del mismo.
Si tienes alguna duda estoy a tu disposicion.
Pagina inicio
pagina asociada
microcontroladores y robotica
MOTORES
habilitacion. por lo que para controlar un canal de salida se deben enviar dos
seales una al canal y la otra a la habilitacion del par de canales.
Las caracteristicas del chip por Pines son:
PIN
NOMBRE
DESCRIPCION
1,2 EN
Control canales 1 y 2
1A
1Y
Tierra
Tierra
2Y
2A
VCC2
3,4 EN
Control canales 3 y 4
10
3A
11
3Y
12
Tierra
13
Tierra
14
4Y
15
4A
16
VCC1
Alimentacion 5V L293
Con este chip se puede controlar todo tipo de dispositivos que necesiten en un
momento determinado cierta tension con un nivel de potencia, reles, lamparas,
motores, dentro de un orden lo que sea.
La logica que hace que actue el L293 es la siguiente:
LOGICA HABILITACION
LOGICA CANAL
LOGICA SALIDA
Nivel "1"
Nivel "1"
Nivel "1"
Nivel "1"
Nivel "0"
Nivel "0"
Nivel "0"
Nivel "1"
Sin seal
Nivel "0"
Nivel "0"
Sin seal
control
canales 3 y 4
Logica en Pin
10 . Entrada
seal canal 3
Nivel "1"
Nivel "1"
Nivel "1"
Parada
Nivel "1"
Nivel "1"
Nivel "0"
Giro Sentido A
Nivel "1"
Nivel "0"
Nivel "1"
Giro Sentido B
Nivel "1"
Nivel "0"
Nivel "0"
Parada
Nivel "0"
Nivel "1"-"0"
Motor desconectado
Sencillo no?. Un ejemplo tipico de orden seria mandar una seal por las patitas
de un PIC de la siguiente forma:
11100000
Salida clasica de una puerta. El bit 5 al pin 9, el bit 6 al pin 10 y el bit 7 al pin 15
sobre nuestra placa o sobre un L293 daria como resultado el paro inmediato del
motor.
10100000
Haria que el motor funcionara en un sentido.
Ojo se debe prestar atencion a la duracion del tiempo en cada orden.
Otra forma de conectar dos motores es segun este esquema:
motor 1
motor 2
aqui como se observa se pueden controlar dos cargas (motores, reles, etc)
haciendo que funcionen independientemente, las dos cargas se pueden conectar
asi o las dos a la fuente de alimentacion y a masa pero de esta forma lo que se
consigue es que los motores funcionen cada uno en direccion contraria al otro, si
se unen a la misma fuente los dos funcionaran pero en el mismo sentido segun se
apliquen ordenes a los pines 10 y 15, Se entiende que como esta rutina es para
1/2 del Chip L293 en realidad con la placa MT293 se pueden controlar 4 motores
independientes.
Las logicas serian:
Logica en Pin9
control
canales 3 y 4
Logica en Pin
10 . Entrada
seal canal 3
Logica en Pin
15 Entrada
seal canal 4
Actividad en
Motor 1
Actividad en
Motor 2
Nivel "1"
Nivel "1"
Nivel "1"
Stop
Gira
Nivel "1"
Nivel "0"
Nivel "0"
Gira
Stop
Nivel "0"
Motor 0
Motor 0
No repito las rutinas de activacion pero son similiares cambiando las actividades
logicas de las salidas de las Puertas del microcontroladorde a las explicadas con
anterioridad.
--------
Aviso de responsabilidad.
Atencion esto son programas realizados sin interes comercial ni economico alguno,
solo desarrollados con animo de enseanza, no pretendo que funcionen en otros
sistemas o para otras personas, cualquier error que exista debe ser subsanado por la
persona que lo usa. Cualquier dao que ocasione el uso de este programa es
responsabilidad del usuario del mismo. Si tienes alguna duda estoy a tu disposicion.
microcontroladores y robotica
Transmitir Datos
Seal de salida
RXD
Recibir Datos
Seal de entrada
RTS
Solicitud de envio
Seal de salida
DTR
Seal de salida
CTS
Seal de entrada
DSR
Seal de entrada
DCD
Deteccion de portadora
Seal de entrada
SG
Tierra
RI
Indicador de llamada
Seal de entrada
Existen hasta practicamente 25 mas seales pero no son muy usadas y para usos
con el microcontrolador generalmente no son necesarias. En caso de mayor interes
en el Puerto RS232C hay otras paginas mucho mas profundas en cuanto a su
desarrollo.
Posiciones y explicacion de los pines
Conector 25 pines
1
2
3
4
5
6
7
8
15
17
20
22
24
Conector 9 pines
1
3
2
7
8
6
5
1
4
9
-
Nombre
TxD
RxD
RTS
CTS
DSR
SG
DCD
TxC
RxC
DTR
RI
RTxC
Descripcion
Masa chasis
Transmit Data
Receive Data
Request to send
Clear to send
Data Set Ready
Signal Ground
Data Carrier Detect
Transmit Clock
Receive Clock
Data Terminal Ready
Ring Indicator
Transmin/Receive Clock
Los pines que portan los datos son RxD y TxD los demas se encargan de otros
trabajos, el DTR indica que el ordenador esta encendido, DSR que el dispositivo
conectado al puerto esta encendido, RTS que el ordenador al no estar ocupado
puede recibir datos, al reves de CTS que lo que informa es que es el dispositivo el
que puede recibir datos, DCD detecta que existen presencia de datos, etc.
Con los puertos de E/S se pueden intercambiar datos mientras que las IRQ producen
las interrupciones para indicar a la CPU que ha ocurrido un acontecimiento (ha
cambiado el estado de alguna seal de entrada)
En el PC el puerto RS232 esta controlado mediante un circuito integrado Transmisor-
incorpora el USART por ello las comunicciones con el puerto deben de hacerse
mediante rutinas de software.
El primer problema es que los niveles logicos TTL que salen del micro no son
compatibles con los niveles logicos del puerto, para ello debemos introducir en el
circuito un puente que nos traduzca los datos del micro al puerto y viceversa, este
puente es el micro MAX232 o el ICL232 (son exactamente iguales).
Nosotros hemos creado la placa PL232 que facilita esta transmision cambiando las
seales logicas del micro adaptadas al puerto y viceversa.
Para la visualizacion de las seales y la comunicacion del PC con el micro es
necesario unas rutinas macro que gestione el software del micro asi como un
programa base para el PC que gestione el control dentro del Ordenador
El programa para controlar el PC sirve cualquiera que gestione el puerto serie. Uno
muy comun es el programa TERMINAL en DOS (que se encuentra en la red) aunque
los hay mejores este es bastante bueno por su sencillez y facilidad de uso.
Tanto el programa TERMINAL como los macros para la programacion se pueden
encontrar en la red.
Aviso de responsabilidad.
Atencion esto son programas realizados sin interes comercial ni economico
alguno, solo desarrollados con animo de enseanza, no pretendo que funcionen
en otros sistemas o para otras personas, cualquier error que exista debe ser
subsanado por la persona que lo usa. Cualquier dao que ocasione el uso de este
programa es responsabilidad del usuario del mismo. Si tienes alguna duda estoy
a tu disposicion.