Documentos de Académico
Documentos de Profesional
Documentos de Cultura
piaxe Emisor
===============================
main:
b1 = 0
inicio: if pin0 = 1 then enviar
b0 = 0
goto inicio
enviar: if b0 = 0 then
b0=1
goto salida1
else
goto inicio
endif
salida1:if b1 = 0 then
serout 0,T2400,("A")
b1 = 1
goto inicio
else
serout 0,T2400,("B")
b1 = 0
goto inicio
endif
el Emisor mada 2 datos con el mismo boton, cuando manda el Primer
dato("A"), Prende el led del picaxe recepto.
y cuando manda el segundo dato("B"), Apaga el led del picaxe receptor.
Ademas se agrego una Bandera(B0), la cual nos sirve para que el
emisor mande el dato, y aun que permanesca oprimido el boton no
mandara mas datos, hasta que se suelte el boton y se oprima
nuevamente.
y tambien se añadio una variable para el estado del el dato(B1), asi
cuando se oprime el boton, si esta prendido el led se apaga, y si esta
apagado se prende.
piaxe Receptor
===============================
main:
inicio: serin 0,T2400,b0
if b0 = "A" then prender
if b0 = "B" then apagar
prender:high 0
goto inicio
apagar: low 0
goto inicio
Bueno espero que les sirva aun que es sencillo, pero se pueden hacer
varias aplicaciones.
aqui le mando unas imagenes de como funciona en el Proteus!,
Cuidence y Suerte.
Prog
;*********************************************************
;*********** Laboratorio PICAXE DISPLAY LCD **************
;********** Desarrollado por Ing Martin Torres ***********
;*********************************************************
;*Notas: La siguiente rutina, presenta el ejemplo nº1 del*
;* control de un LCD 16x2 en modo 4 bits
;*********************************************************
;*******Veamos paso a paso la rutina ********
;*********************************************************
;EN ESTA SECCION CONFIGURAMOS LOS PINES DE ENTRADA Y SALIDA
;NO USAR B11-12-13 YA QUE SON DE USO INTERNO DEL PROGRAMA
;*********************************************************
SYMBOL RS = 2 ; 0 = Command 1 = Data
SYMBOL E = 3 ; 0 = Idle 1 = Active
SYMBOL DB4 = 4 ; LCD Linea Dato 4
SYMBOL DB5 = 5 ; LCD Linea Dato 5
SYMBOL DB6 = 6 ; LCD Linea Dato 6
SYMBOL DB7 = 7 ; LCD Linea Dato 7
SYMBOL RSCMDmask = %00000000
SYMBOL RSDATmask = %00000100
SYMBOL get = b11
SYMBOL bite = b12
SYMBOL rsbit = b13
;********************************************************
;EN ESTA SECCION, ARMAMOS EL CUERPO PRINCIPAL DEL PROGRAMA
;********************************************************
ctrl_LCD:
GOSUB InitialiseLcd
salto_2da_linea:
bite = $C0 ; saltamos ala segunda linea
GOSUB SendCmdBite
Mensaje_2da_linea:
EEPROM 25,("Ing MartinTorres") ; guardamos la palabra en la posicion 25
hasta la 39
FOR get = 25 TO 41 ; cuenta hasta 41 por que es la ultima
letra de esta frase
READ get,bite
GOSUB SendDataBite ;salta e imprime la frase
pause 50
NEXT
pause 100
goto ctrl_LCD
;****************************************************************
;**** Rutina de control estandar del LCD - No Tocar *************
;****************************************************************
InitialiseLcd:
FOR get = 0 TO 5
READ get,bite
GOSUB SendInitCmdBite
NEXT
SendInitCmdBite:
PAUSE 15 ; Retardo 15mS
SendCmdBite:
rsbit = RSCMDmask
SendDataBite:
pins = bite & %11110000 | rsbit
PULSOUT E,1
pins = bite * %00010000 | rsbit
PULSOUT E,1
rsbit = RSDATmask
RETURN
;*****************************************************************
;*****************************************************************
;************************* FIN PROGRAMA **************************
;*****************************************************************
;*****************************************************************
;************ Desarrollado por Ing Martin Torres *****************
;*****************************************************************
;*****************************************************************
;********* http://electroescuelavirtual.blogspot.com/ ************
;********* http://www.automatismos-mdq.com.ar/blog/ **************
;********* http://torreselectronico.com/ *************************
;********* http://www.Ucontrol.com.ar/ ***************************
;********* http://www.YoReparo.com/ ******************************
;*****************************************************************
;*****************************************************************
Segim
;*********************************************************
;*********** Laboratorio PICAXE DISPLAY 7 SEGMENTOS******************
;********** Desarrollado por Ing Martin Torres *******************
;*********************************************************
;*Notas: La siguiente rutina, presenta el ejemplo nº2A para*
;* el control básico de un Display de 7 segmentos
;*********************************************************
;*******Veamos paso a paso la rutina ********
;*********************************************************
for b1 = 0 to 9
let pins=b1
pause 1000
next b1
;***************************************************************
;************************* FIN PROGRAMA **************************
;***************************************************************
;************ Desarrollado por Ing Martin Torres
*************************
;***************************************************************
;********* http://electroescuelavirtual.blogspot.com/
**********************
;********* http://www.automatismos-mdq.com.ar/blog/ ********************
;********* http://torreselectronico.com/ *******************************
;********* http://www.Ucontrol.com.ar/ *******************************
;********* http://www.YoReparo.com/ ********************************
;***************************************************************
;***************************************************************
Rer
;*********************************************************
;*********** Laboratorio PICAXE DISPLAY 7 SEGMENTOS******************
;********** Desarrollado por Ing Martin Torres *******************
;*********************************************************
;*Notas: La siguiente rutina, presenta el ejemplo nº2A2 mencionando otra
manera***
;* para el control básico de un Display de 7 segmentos
**********************
;*********************************************************
;*******Veamos paso a paso la rutina ********
;*********************************************************
let pins = 9 ' %00001001 en display numero 9
pause 1000
let pins = 8 ' %00001000 en display numero 8
pause 1000
let pins = 7 ' %00000111 en display numero 7
pause 1000
let pins = 6 ' %00000110 en display numero 6
pause 1000
let pins = 5 ' %00000101 en display numero 5
pause 1000
let pins = 4 ' %00000100 en display numero 4
pause 1000
let pins = 3 ' %00000011 en display numero 3
pause 1000
let pins = 2 ' %00000010 en display numero 2
pause 1000
let pins = 1 ' %00000001 en display numero 1
pause 1000
let pins = 0 ' %00000000 en display numero 0
pause 2000
;*****************************************************************
;************************* FIN PROGRAMA **************************
;*****************************************************************
;************ Desarrollado por Ing Martin Torres *****************
;*****************************************************************
;*****************************************************************
;********* http://electroescuelavirtual.blogspot.com/ ************
;********* http://www.automatismos-mdq.com.ar/blog/ **************
;********* http://torreselectronico.com/ *************************
;********* http://www.Ucontrol.com.ar/ ***************************
;********* http://www.YoReparo.com/ ******************************
;*****************************************************************
;*****************************************************************
Cuar
*********************************************************
;*********** Laboratorio PICAXE DISPLAY 7 SEGMENTOS******************
;********** Desarrollado por Ing Martin Torres *******************
;*********************************************************
;*Notas: La siguiente rutina, presenta el ejemplo nº2B para*
;* la monitorizacion de la lectura analoga, en un Display de 7 segmentos
;*********************************************************
;*******Veamos paso a paso la rutina ********
;*********************************************************
main:
readadc 0,b1
if b1 > 150 then show9
if b1 > 130 then show8
if b1 > 110 then show7
if b1 > 90 then show6
if b1 > 70 then show5
if b1 > 50 then show4
if b1 > 30 then show3
if b1 > 20 then show2
if b1 > 10 then show1
show0:
let pins = 0 ' %00000000 en display numero 0
goto main
show1:
let pins = 1 ' %00000001 en display numero 1
goto main
show2:
let pins = 2 ' %00000010 en display numero 2
goto main
show3:
let pins = 3 ' %00000011 en display numero 3
goto main
show4:
let pins = 4 ' %00000100 en display numero 4
goto main
show5:
let pins = 5 ' %00000101 en display numero 5
goto main
show6:
let pins = 6 ' %00000110 en display numero 6
goto main
show7:
let pins = 7 ' %00000111 en display numero 7
goto main
show8:
let pins = 8 ' %00001000 en display numero 8
goto main
show9:
let pins = 9 ' %00001001 en display numero 9
goto main
;*****************************************************************
;*****************************************************************
;************************* FIN PROGRAMA **************************
;*****************************************************************
;*****************************************************************
;************ Desarrollado por Ing Martin Torres *****************
;*****************************************************************
;*****************************************************************
;********* http://electroescuelavirtual.blogspot.com/ ************
;********* http://www.automatismos-mdq.com.ar/blog/ **************
;********* http://torreselectronico.com/ *************************
;********* http://www.Ucontrol.com.ar/ ***************************
;********* http://www.YoReparo.com/ ******************************
;*****************************************************************
;*****************************************************************
5
**** Sensor de corriente y tension multiproposito ******
;****** http://electroescuelavirtual.es.tl/ *******
;****** http://www.ucontrol.com.ar/ *******
;*** EN ESTA SECCION, CONFIGURAMOS LOS PINES DE SALIDA ***
;***************** Ing Martin Torres *********************
SYMBOL RS =2 ; 0 = Command 1 = Data
SYMBOL E =3 ; 0 = Idle 1 = Active
SYMBOL DB4 =4 ; LCD Linea Dato 4
SYMBOL DB5 =5 ; LCD Linea Dato 5
SYMBOL DB6 =6 ; LCD Linea Dato 6
SYMBOL DB7 =7 ; LCD Linea Dato 7
SYMBOL RSCMDmask = %00000000 ; Select Command register
SYMBOL RSDATmask = %00000100 ; Select Data register
SYMBOL get = b11
SYMBOL bite = b12
SYMBOL rsbit = b13
SYMBOL Amp = b4 ; lectura del sensor de Amperometrico
SYMBOL Volt = b6 ; Lectura del sensor de Tension
EEPROM 6,("V ")
EEPROM 9,("A ")
;********************************************************
;NO USAR B11-12-13 YA QUE SON DE USO INTERNO DEL PROGRAMA
;********************************************************
Menu_sensor:
pause 500
gosub obtener_lecturas
sertxd("<V=", #volt, ",A=", #Amp, ">") ' Visualizar en forma serial el dato en la PC
b5 = Volt
b4 = Amp
b12 = 2
Gosub SendCmdBite
gosub DisplayVolt
FOR b11 = 6 TO 8 ' Display LCD "V"
READ b11,b12
GOSUB SendDataBite
NEXT
gosub DisplayAmp
FOR b11 = 9 TO 11 ' Display LCD "A"
READ b11,b12
GOSUB SendDataBite
next
goto Menu_sensor
obtener_lecturas:
readadc10 0,w0
let w0=w0 min 100
let w0=w0 max 355
Volt = w0 - 100
readadc10 1, w0
let w0=w0 min 300
let w0=w0 max 555
Amp = w0-300
return
DisplayAmp:
if Amp>128 then pos_amp
if Amp<128 then neg_amp
if Amp=128 then oamp
goto d1
pos_amp:
Amp=Amp-128
goto d1
neg_amp:
b12=45
GOSUB SendDataBite
Amp=128-Amp
goto d1
oamp:
Amp=0
goto d1
d1:
b5=amp
b10=b5/100
b12=b10+48
GOSUB SendDataBite
b10=b10*100
b5=b5-b10
b10=b5/10
b12=b10+48
GOSUB SendDataBite
b12 = 46
Gosub SendDataBite
b10=b10*10
b5=b5-b10
b10=b5
b12=b10+48
GOSUB SendDataBite
Return
DisplayVolt:
b10=b5/100
b12=b10+49
GOSUB SendDataBite
b10=b10*100
b5=b5-b10
b10=b5/10
b12=b10+48
GOSUB SendDataBite
b12 = 46
Gosub SendDataBite
b10=b10*10
b5=b5-b10
b10=b5
b12=b10+48
GOSUB SendDataBite
Return
;*******************************************************************
;*******estas son las rutinas de control del lcd N-O T-O-C-A-R
*******************
;*******************************************************************
InitialiseLcd:
FOR get = 0 TO 5
READ get,bite
GOSUB SendInitCmdBite
NEXT
EEPROM 0,( $33 ) ; habilita lcd en 8-bit / 8-bit
EEPROM 1,( $32 ) ; habilita lcd en 8-bit / 4-bit
EEPROM 2,( $28 ) ; Formatea el Display
EEPROM 3,( $0C ) ; Arranca el Display
EEPROM 4,( $06 ) ; Mueve el cursor
EEPROM 5,( $01 ) ; Limpia la pantalla
RETURN
SendInitCmdBite:
PAUSE 15 ; retardo 15mS
SendCmdBite:
rsbit = RSCMDmask ; envia el comando de registro
SendDataBite:
pins = bite & %11110000 | rsbit ; Put MSB out first
PULSOUT E,1 ; Give a 10uS pulse on E
pins = bite * %00010000 | rsbit ; Put LSB out second
PULSOUT E,1 ; Give a 10uS pulse on E
rsbit = RSDATmask ; Send to Data register next
RETURN
;*****************************************************************
;************************* FIN PROGRAMA ************************