Proyecto Mikrobasic
Prender y apagar Led en PORTA.0 de un 16F84A
Código
GeSHi (freebasic):
1.
2. program BlinkMKB
3.
4. TRISA = 0
5.
6. MAIN:
7. PORTA.0 = 1 ' AUN NO ENCUENTRO COMO PONER ALIAS SOLO EL CLASICO SYMBOL
8. DELAY_MS(500) ' AQUI USAMOS EN LUGAR DE PAUSE EN PBP, LA INSTRUCCIONDELAY_MS Y OBVIAMENTE ES MILISEGUNDOS
9. PORTA.0 = 0
10. DELAY_MS(500)
11. GOTO MAIN
12. END. ' POR NO PONER ESE PUNTO NO ME COMPILO LA PRIMERA VEZ
13.
miren lo facil que es prender un led con un pic 16f84A :
@ device xt_osc ; oscilador externo XT
define osc 4 ; especifica que se va a utilizar uno de 4 Mhz
led var portb.0 ;asignamos led a puerto RB0
inicio:
HIGH led ;asigna un 1 logico
PAUSE 500 ; tiempo de espera de 500mls
LOW led ; apaga led
; encender un led conectado al pin 37 (RB4) del pic 16F877A durante 2.5 seg y
;luego apagarlo 0.5 seg el proceso debe repetirse 4 veces luego el led debe
;permanecer apagado.@ device xt_osc ; oscilador externo XT
define osc 4 ; especifica que se va a utilizar uno de 4 Mhz
x var byte ; crea la variable x y asigna un espacio de memoria
; de o a 255
LED var portb.4 ; asigna el nombre de led a RB4 del pic 16f877A
programa: ; inicio de la linea de programa
for x=0 to 3 ; repetir 4 veces
high led;enciende led
pause 2500 ; esperar 2.5 seg
low led ;apaga led
pause 500 ; espera 0.5 seg
next ; siguiente repeticion hasta que sea x=3
end ; fin del programa
; encender 2 leds conectados a (RB0-RB1) del pic 16F877A alternadamente , es
;decir un led esta encendido mientras el otro esta apagado y viceversa los
;tiempos de transicionson de 700mls entre encendido y apagado el proceso
;debe continuar indefinidamentedurante.
@ device xt_osc ; oscilador externo XT
define osc 4 ; especifica que se va a utilizar uno de 4 Mhz
x var byte ; crea la variable x y asigna un espacio de memoria
; de o a 255
LED1 var portb.0 ; asigna el nombre de led1 a RB0 del pic 16f877A
LED2VAR portb.1 ; asigna el nombre de led2 a RB1
programa: ; inicio de la linea de programa
high led1:low led2 ;enciende led1 y apaga led 2
pause 700 ; esperar 0.7 seg
low led1:high led2 ;apaga led1 y enciende led2
pause 700 ; espera 0.7 seg
goto programa ; ir a programa
end ; fin del programa
;LUEGO DE LAS LUCES DE DISCOTECA ENCIENDA LOSLEDS DEL MEDIO HACIA LOS EXTREMOS
;CON UN TIEMPO DE 200mseg
; leds=leds<<1 EQUIVALE A MULTIPLICAR POR DOS Y DESPLAZARSE UNO A UNO
; leds=leds<<2 EQUIVALE A MULTIPLICAR POR CUATRO Y DESPLAZARSE DE DOS EN DOS
; leds=leds>>1 EQUIVALE A DIVIDIR POR DOS Y DESPLAZARSE UNO A UNO HACIA LA
; DERECHA.
@ device xt_osc ; oscilador externo XTdefine osc 4 ; especifica que se va a utilizar uno de 4 Mhz
x var byte ; crea la variable x y asigna un espacio de memoria
; de o a 255
LEDS var PORTB ; asigna el nombre de leds a todo el puerto B del pic 16f877A
LED0 var portb.0 ; asigna el nombre de led1 a RB0 del pic 16f877A
LED1 VAR portb.1 ; asigna el nombre de led2 a RB1
LED2 VAR portb.2
LED3 VAR portb.3
LED4VAR portb.4
LED5 VAR portb.5
LED6 VAR portb.6
LED7 VAR portb.7
TRISB=0 ; hacemos salidas a todo el puerto b
leds=1 ; cargamos el puerto b con 1 (%00000001)
programa: ; inicio de la linea de programa
for x=0 to 6 ; repetir 7 veces
LEDS=LEDS<<1 ;desplaza uno a uno a la left
GOSUB TIEMPO ; esperar 0.2 seg
next ; siguiente...
Regístrate para leer el documento completo.