Está en la página 1de 31

Aplicaciones, se combina lo estudiado en

PROGRAMAS I Y II.

ING. FRANKLIN BARRA ZAPATA


P1 = 0
Inicio:

If P3.5 = 0 Then Goto Mover


If P3.7 = 0 Then Goto Parar
Goto Inicio

Mover:
P1.0 = 1
Goto Inicio

Parar:
P1.0 = 0
Goto Inicio
CODIGOS DE PROGRAMAS
Dim X As Byte Dim X As Word
P1 = 0 P1 = 0
Inicio: X=0
Inicio:
If P3.5 = 0 Then Goto Subir If P3.5 = 0 Then Goto Subir
If P3.7 = 0 Then Goto Bajar If P3.7 = 0 Then Goto Bajar
Goto Inicio Goto Inicio
Subir:
Subir: X = X + 20
X = X + 20 Wait 1
Wait 1 P1 = X
P1 = X If X >= 240 Then Goto Salto
Goto Inicio Goto Inicio
Bajar:
Bajar: If X = 0 Then Goto Salto1
X = X - 20 X = X - 20
Wait 1 Wait 1
P1 = X P1 = X
Goto Inicio Goto Inicio
Salto:
P1 = 255
Goto Inicio
Salto1:
P1 = 0
Goto Inicio
Inicio:
If P3.3 = 0 Then Goto Parar
If P3.4 = 0 Then Goto Derecha
If P3.5 = 0 Then Goto Izquierda

Goto Inicio

Parar:
P1 = 48
Goto Inicio

Derecha:
P1 = 53
Goto Inicio

Izquierda:
P1 = 58
Goto Inicio
SI VALOR DIGITAL ES MAYOR QUE 50 SE ACTIVA
SEÑAL LUMINOSA (P3.0)
CODIGO DE PROGRAMA
Dim I As Byte Ver:
Dim U As Byte U = I Mod 10
Dim D As Byte D=I-U
Dim N As Byte D = D / 10
D = D * 16
P3 = 0 N = U Or D
Inicio: P2 = N
Gosub Leer_adc Waitms 200
Gosub Ver Return
Gosub Alarma
Waitms 100 Alarma:
Goto Inicio If I > 50 Then
Leer_adc: P3.0 = 1
P3.5 = 1 Else
I = P1 P3.0 = 0
Waitms 100 End If
P3.5 = 0 Return
Return End
SI VALOR DIGITAL ES MAYOR QUE 50 SE ACTIVA
SEÑAL SONORA BUZZER (P3.7)
CODIGO DE PROGRAMA
Dim I As Word Ver:
Dim U As Byte U = I Mod 10
Dim D As Byte D=I-U
Dim N As Byte D = D / 10
D = D * 16
P3 = 0 N = U Or D
Inicio: P2 = N
Gosub Leer_adc Waitms 200
Gosub Ver Return
Gosub Alarma
Waitms 100 Alarma:
Goto Inicio If I > 50 Then
Leer_adc: P3.7 = 1
P1.0 = 0 Else
Shiftin P1.2 , P1.1 , I , 0 P3.7 = 0
P1.0 = 1 End If
I = I / 128 Return
Return End
EL SET POIT ES DE 52 SI VALOR DIGITAL ES MAYOR QUE 52 SE
ACTIVA SEÑAL DE ALARMA SONORA (P1.3) Y SE PONE EN OFF
LAMPARA (P3.7), SI VALOR DIGITAL MENOR QUE 52 SE
DESACTIVA ALARMA SONORA (P1.3) Y SE PONE EN ON
LAMPARA (P3.7)
Dim I As Word Ver:
Dim U As Byte U = I Mod 10
Dim D As Byte D=I-U
Dim N As Byte D = D / 10
Dim S As Byte D = D * 16
N = U Or D
S = 52 P2 = N
P3 = 0 Waitms 200
CODIGO DE Inicio: Return
PROGRAMA Gosub Leer_adc Alarma:
Gosub Ver If I > 50 Then
Gosub Alarma P1.3 = 1
Gosub Control Else
Wait 1 P1.3 = 0
Goto Inicio End If
Leer_adc: Return
P1.0 = 0 Control:
Shiftin P1.2 , P1.1 , I , If I > S Then
0 P3.7 = 0
P1.0 = 1 Else
I = I / 128 P3.7 = 1
Return End If
Return
End
EL BOTON ESTA CONECTADO DIRECTAMENTE AL MUX
Y SELECCIONA CANAL A SER LEIDO, POR LO TANTO EL
CODIGO DE PROGRAMA SOLO LEEA ADC Y MUESTRA
EN DISPLAYS.
Dim I As Word
Dim U As Byte
Dim D As Byte
Dim N As Byte
Inicio:
Gosub Leer_adc
CODIGO DE PROGRAMA Gosub Ver
Waitms 100
Goto Inicio
Leer_adc:
P1.0 = 0
Shiftin P1.2 , P1.1 , I , 0
P1.0 = 1
I = I / 128
Return
Ver:
U = I Mod 10
D=I-U
D = D / 10
D = D * 16
N = U Or D
P2 = N
Waitms 200
Return
End
USO DE 2 MICROCONTROLADORES PARA MEDIR Y
VISUALIZAR UN VALOR DIGITAL

EN EL UC1 SE GUARDA EL PROGRAMA QUE LEE


PUERTO 1 Y VISUALIZA EN DISPLAY, EL UC2 TIENE
EL PROGRAMA QUE LEE EL ADC Y EL VALOR LO
PONE EN EL P1.
CODIGO UC-1
Dim I As Integer
Dim U As Integer CODIGO UC-2
Dim D As Integer
Dim N As Integer
Dim Des As Integer
Dim A As Word
Dim C As Integer
Inicio:
I = P1 Leer_adc:
U = I Mod 100
U = U Mod 10 P3.4 = 0
D=I-U Shiftin P3.3 , P3.2 , A , 0
D = D / 10 P3.4 = 1
Des = D Mod 10
A = A / 128
C = D - Des
C = C / 10
U = U + 16 P1 = A
P3 = U
Waitms 5 Wait 1
Des = Des + 32
P3 = Des Goto Leer_adc
Waitms 5
C = C + 128
P3 = C
Waitms 5
Goto Inicio
USO DE 2 MICROCONTROLADORES PARA MEDIR Y
VISUALIZAR UN VALOR DIGITAL
MEDIDOR DE TEMPERATURA USANDO LM35DZ

EN EL UC1 SE GUARDA EL PROGRAMA QUE LEE


PUERTO 1 Y VISUALIZA EN DISPLAY, EL UC2 TIENE
EL PROGRAMA QUE LEE EL ADC Y EL VALOR LO
PONE EN EL P1.
MEDIDOR DE TEMPERATURA USANDO LM35DZ
CODIGO UC-1
Dim I As Integer
Dim U As Integer CODIGO UC-2
Dim D As Integer
Dim N As Integer
Dim Des As Integer
Dim A As Word
Dim C As Integer
Inicio:
I = P1 Leer_adc:
U = I Mod 100
U = U Mod 10 P3.4 = 0
D=I-U Shiftin P3.3 , P3.2 , A , 0
D = D / 10 P3.4 = 1
Des = D Mod 10
A = A / 128
C = D - Des
C = C / 10
U = U + 16 P1 = A
P3 = U
Waitms 5 Wait 1
Des = Des + 32
P3 = Des Goto Leer_adc
Waitms 5
C = C + 128
P3 = C
Waitms 5
Goto Inicio
Dim U As Byte, I As Word, C As Byte
Dim D As Byte, W As Byte, U1 As Byte
Dim D1 As Byte, C1 As Byte

Poke 10, 64 '--------------0


Poke 11, 121 '--------------1
Poke 12, 36 '--------------2
Poke 13, 48 '--------------3
Poke 14, 25 '--------------4
Poke 15, 18 '--------------5
Poke 16, 2 '--------------6
Poke 17, 120 '--------------7
Poke 18, 0 '--------------8
Poke 19, 16 '--------------9
Inicio:

For I = 0 To 999 ' I=346


W = I Mod 100 'W=346 mod 100=46
C = I \ 100 '346\100=3 _CENTENA
U = W Mod 10 '46/10=6 _UNIDAD
D = W \ 10 '46\10=4 _DECENA
U1 = U + 10
D1 = D + 10
C1 = C + 10

P1 = Peek(U1)
P2 = Peek(D1)
P3 = Peek(C1)

Waitms 100

Next I
Goto Inicio
DESPLAZANDO UN MENSAJE
DESPLAZANDO UN MENSAJE
DESPLAZANDO UN MENSAJE
DESPLAZANDO UN MENSAJE
CODIGO DE PROGRAMA
Dim I As Byte ' Contador de direcciones de memoria EEPROM
Dim D As Byte ' Dato grabado en memoria EEPROM Interna
Da ALIAS P1.2 ' Pin de salida serial sincrona para registro S/P
Ck Alias P1.3 ' Pin de señal de reloj del registro S/P
R Alias P1.4
Y Alias P1.5
T Alias P1.6
Ha Alias P1.7 'Pin Habilitador del Latch 74373
'****************************************************************
'* Mensaje a visualizar en display's
'* Se graba en memoria eeprom interna en cada dirección una letra
Poke 100 , 8 'A
Poke 101 , 70 'c
Poke 102 , 79 'i
Poke 103 , 72 'n
Poke 104 , 64 'o
Poke 105 , 13 'r
Poke 106 , 7 't
Poke 107 , 70 'c
Poke 108 , 4 'e
Poke 109 , 71 'l
Poke 110 , 4 'e
Poke 111 , 255 '
Poke 112 , 8 'A
Poke 113 , 71 'L
Poke 114 , 64 'O
Poke 115 , 9 'h
Poke 116 , 255
'****************************************************************************
CODIGO DE PROGRAMA
Inicio:
'Leer las 16 posciciones de memoria
' Y sacarlas serialmente hacia los registros y latchs
R=1
Y=1
T=0
For I = 100 To 116

D = Peek(i) ' Lee memoria


Shiftout P1.2 , P1.3 , D , 1 ' Sacar serialmente el dato

Ha = 1
Waitms 1
Ha = 0

Waitms 250 ' pausa de 200 ms

Next I

Goto Inicio ' Iniciar todo de nuevo


End

También podría gustarte