I am learning the English yet, then sorry about some errors!
My idea was to create a circuit with a mix of the good ideas and things that I learned using the PicBasic Pro compiler. My project is based on Persistence of Vison. I belive that the firt project of this type was made by Bob Blick about 25 years ago.
http://www.bobblick.com/techref/proj...propclock.html
“Propeller Clock" Mechanically Scanned LED Clock
Seven light emitting diodes spin, giving the illusion of numbers in the air”
images from attachment
Then, when I started my first study using PIC microcontrolers and PBP compiler, I decided to do it!
My Propeller Clock and Messages Project !!!
The biggest problem of this type of project using an propeller, is the transference of the power for the revolving pcb (rotary board).
I already tried DC motor with transference using brushs but the noise is high beyond the consumption of the brush , batteries in the board, until I found a friend whom he showed to me another way to make this. He is Edson Tomioka from Brasil. Bellow your project link and some images:
http://edsontomioka.zymichost.com/pi.../PICClock.html
images from attachment
He used a cooler, a plain coil printed on pcb to transfer the energy as a transformer with air nucleus. He used a popular 555 integrated and a FET transistor to create about 200KHZ frequency on primary coil, and then using other coil on secondary with a simple fast diode to retifier , a capacitor to filter and a 7805 to regulate to give 5v to microcontroller.
However, I very found difficult to make this coil in the pcb, then I decided to copy the idea of it of a different and more practical skill for me.
I used a piece of a plastic cup of a candy to serve as form for the primary coil that is always fixed glue in cooler. In the rotor I made the secondary coil that turns together with the board.
I had to place a little of adhesive tape in the rotor to increase the space of the center after removing the helices, because underneath of the plastic has a part of iron therefore in my tests without this space occurred the collapse of the magnetic flow!
I used about 60 laps of enamelled wire in primary coil and 60 in the secondary, about 4 ohms every. I used a 13,5V source, then the max. current is about 3 A (peak). Its was necessary to have a min. Current on secundary to circuit to function correctly, about 150mA, basead in my tests!
images from attachment
As you know now, my initial inspiration was the Bob Blick project. However, I also leaned very PBP through the example written by Melanie Newman using a DS1307 RTC from Dallas. This program includes Setting the Date and Time, 3 Buttons Control Setting,12/24 hour Clock Mode,Year,Month,Day of Month (also accounting for Leap Years),Hour,Minute,Second,written for 2 line 16 Character LCD, really a an excellent didactic project!
http://melabs.com/resources/samples/...ted/mn1307.txt
Then, I constructed my RTC to understand better the program and to improve my know how about PBP programming techniques.
image from attachment
And then, I joined everything and with a little of manual and mental effort I constructed my project based on the persistence of the vision
A big cooler spins the "propeller", and 16F877A PIC microcontroller keeps track of time and changes the pattern on 8RGB LEDs with exact timing to simulate an radial array of LEDs.Think about balance while you build this circuit, its is a critical because high rotation of the coller. I placed everything in a closed box for security guard question. Care will be to make this, therefore I do not make responsible!
I still need to improve the part of the adjustment of the clock because I have to use another hardware to adjust the DS1307 (Melanie Newman project) and then to change for the board, but as is only necessary makes this an only time, I was leaving the time to pass!
images from attachment
It is my project on Youtube !!!
Code:
'****************************************************************
'* Name : POV_Clock_by_Pimentel.PBP *
'* Author : [select VIEW...EDITOR OPTIONS] *
'* Notice : Copyright (c) 2010 [select VIEW...EDITOR OPTIONS] *
'* : All Rights Reserved *
'* Date : 09/11/10 *
'* Version : 1.0 *
'* Notes : USA BOBINA P/ TRANSMITIR ENERGIA (VENTOINHA PC) *
'* : GIRA NO SENTIDO ANTI-HORÁRIO *
'* : SEM TRANSISTORES P/ LEDS * : ANALOGICO OMITIDO DEVIDO BAIXO RPM!!! * *
'****************************************************************
@ DEVICE pic16F877a, WDT_OFF ' Watchdog Timer
@ DEVICE pic16F877a, PWRT_OFF ' Power-On Timer
@ DEVICE pic16F877a, BOD_OFF ' Brown-Out Detect
@ DEVICE pic16F877a, LVP_OFF ' Low-Voltage Programming
@ DEVICE pic16F877a, CPD_OFF ' Data Memory Code Protect
@ DEVICE pic16F877a, PROTECT_OFF ' Program Code Protection
@ DEVICE pic16F877a, WRT_OFF ' Flash Memory Word Enable
@ DEVICE pic16F877a, HS_OSC ' System Clock Options
define OSC 20 'define oscilador em 20MHz
TRISB = %00000000 'SETA PORTB P/ LEDS COR AZUL
TRISC = %00000000 'SETA PORTB P/ LEDS COR VERDE
TRISD = %00000000 'SETA PORTD P/ LEDS COR VERMELHO
TRISA.1 = 0 'LED AZUL DO CONTORNO
TRISA.2 = 0 'LED VERDE DO CONTORNO
TRISA.3 = 0 'LED VERMELHO DO CONTORNO
TRISE.0 = 1 'SDA P/ RTC
TRISE.1 = 1 'SCL P/ RTC
TRISE.2 = 1 'JUMPER P/ SELECIONAR HORARIO DE VERAO P/ ADIANTAR 1 HORA
TRISA.0 = 1 'PORTA.0 COMO ENTRADA P/ SENSOR DE EFEITO HALL UGN3503
ADCON1 = %10001110 'SETA PORTA.0 COMO ANALÓGICA E RESULTADO JUSTIFICADO À
'DIREITA
ADCON0 = %10000001 'CONFIGURA O MÓDULO A/D (FOSC/32; CANAL 0; AD_ON)
'ADCON0 = %01000001 'CONFIGURA O MÓDULO A/D (FOSC/8; CANAL 0; AD_ON)
'ADCON0 = %00000001 'CONFIGURA O MÓDULO A/D (FOSC/2; CANAL 0; AD_ON)
SCLpin var PORTE.1
SDApin var PORTE.0
HORARIO_VERAO VAR PORTE.2
HALL VAR PORTA.0
VALOR_AD VAR WORD
DEZ_SEG VAR BYTE 'guardam os dígitos dos horários
UN_SEG VAR BYTE
DEZ_MIN VAR BYTE
UN_MIN VAR BYTE
DEZ_HORA VAR BYTE
UN_HORA VAR BYTE
DEZ_DIA VAR BYTE
UN_DIA VAR BYTE
DEZ_ANO VAR BYTE
UN_ANO VAR BYTE
DEZ_MES VAR BYTE
UN_MES VAR BYTE
MES VAR BYTE
I VAR WORD
'HORA_ANALOGICA VAR BYTE
'MINUTO_ANALOGICO VAR BYTE
'SEGUNDO_ANALOGICO VAR BYTE
' RAM Assignments and Variables
' -----------------------------
CounterA var byte ' General purpose Variable
CounterB var byte ' General purpose Variable
RTCSec var byte ' Seconds
RTCMin var byte ' Minutes
RTCHour var byte ' Hours
RTCWDay var byte ' Weekday
RTCDay var byte ' Day
RTCMonth var byte ' Months
RTCYear var byte ' Year
RTCCtrl var byte ' Control
DH1 VAR BYTE 'DEZENA DA HORA
DH2 VAR BYTE
DH3 VAR BYTE
DH4 VAR BYTE
DH5 VAR BYTE
UH1 VAR BYTE 'UNIDADE DA HORA
UH2 VAR BYTE
UH3 VAR BYTE
UH4 VAR BYTE
UH5 VAR BYTE
DM1 VAR BYTE 'DEZENA DO MINUTO
DM2 VAR BYTE
DM3 VAR BYTE
DM4 VAR BYTE
DM5 VAR BYTE
UM1 VAR BYTE 'UNIDADE DO MINUTO
UM2 VAR BYTE
UM3 VAR BYTE
UM4 VAR BYTE
UM5 VAR BYTE
DS1 VAR BYTE 'DEZENA DO SEGUNDO
DS2 VAR BYTE
DS3 VAR BYTE
DS4 VAR BYTE
DS5 VAR BYTE
US1 VAR BYTE 'UNIDADE DO SEGUNDO
US2 VAR BYTE
US3 VAR BYTE
US4 VAR BYTE
US5 VAR BYTE
DD1 VAR BYTE 'DEZENA DO DIA
DD2 VAR BYTE
DD3 VAR BYTE
DD4 VAR BYTE
DD5 VAR BYTE
UD1 VAR BYTE 'UNIDADE DO DIA
UD2 VAR BYTE
UD3 VAR BYTE
UD4 VAR BYTE
UD5 VAR BYTE
M31 VAR BYTE 'TERCEIRA LETRA DO MES
M32 VAR BYTE
M33 VAR BYTE
M34 VAR BYTE
M35 VAR BYTE
M21 VAR BYTE 'SEGUNDA LETRA DO MES
M22 VAR BYTE
M23 VAR BYTE
M24 VAR BYTE
M25 VAR BYTE
M11 VAR BYTE 'PRIMEIRA LETRA DO MES
M12 VAR BYTE
M13 VAR BYTE
M14 VAR BYTE
M15 VAR BYTE
DA1 VAR BYTE 'DEZENA DO ANO
DA2 VAR BYTE
DA3 VAR BYTE
DA4 VAR BYTE
DA5 VAR BYTE
UA1 VAR BYTE 'UNIDADE DO ANO
UA2 VAR BYTE
UA3 VAR BYTE
UA4 VAR BYTE
UA5 VAR BYTE
'VB VAR BYTE[60]
'VC VAR BYTE[60]
'VD VAR BYTE[60]
AZUL VAR PORTA.1
VERDE VAR PORTA.2
VERMELHO VAR PORTA.3
B0 VAR BYTE
B1 VAR BYTE
B2 VAR BYTE
B3 VAR BYTE
AUX VAR BYTE
TAB VAR BYTE ' ESCOLHE O SELECT QUE VAI EXECUTAR
MN VAR WORD
DELAY CON 325 'delay de cada coluna do POV
VALOR CON 610 'VALOR DO HALL EM CIMA DO IMA
PORTB = 0: PORTD = 0: PORTC = 0 : 'ZERA PORTS
TAB = 1: MN = 0: B2 = 0: B3 = 110:
VERMELHO = 0: VERDE = 0 : AZUL = 0 :
goto LOOP_1
'----------------------------------------------------------------------------------------------------------------------------------------------------------------
'--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
DEZENA_HORA: 'COR BRANCA
PORTB = DH1: PORTC = DH1: PORTD = DH1: GOSUB RETARDO
PORTB = DH2: PORTC = DH2: PORTD = DH2: GOSUB RETARDO
PORTB = DH3: PORTC = DH3: PORTD = DH3: gOSUB RETARDO
PORTB = DH4: PORTC = DH4: PORTD = DH4: GOSUB RETARDO
PORTB = DH5: PORTC = DH5: PORTD = DH5: GOSUB RETARDO
PORTB = 0: PORTC = 0: PORTD = 0: GOSUB RETARDO
GOTO VOLTA_RTC
UNIDADE_HORA: 'COR BRANCA
PORTB = UH1: PORTC = UH1: PORTD = UH1: GOSUB RETARDO
PORTB = UH2: PORTC = UH2: PORTD = UH2: GOSUB RETARDO
PORTB = UH3: PORTC = UH3: PORTD = UH3: GOSUB RETARDO
PORTB = UH4: PORTC = UH4: PORTD = UH4: GOSUB RETARDO
PORTB = UH5: PORTC = UH5: PORTD = UH5: GOSUB RETARDO
PORTB = 0: PORTC = 0: PORTD = 0: GOSUB RETARDO
GOTO VOLTA_RTC
DEZENA_MINUTO: 'COR BRANCA
PORTB = DM1: PORTC = DM1: PORTD = DM1: GOSUB RETARDO
PORTB = DM2: PORTC = DM2: PORTD = DM2: GOSUB RETARDO
PORTB = DM3: PORTC = DM3: PORTD = DM3: GOSUB RETARDO
PORTB = DM4: PORTC = DM4: PORTD = DM4: GOSUB RETARDO
PORTB = DM5: PORTC = DM5: PORTD = DM5: GOSUB RETARDO
PORTB = 0: PORTC = 0: PORTD = 0: GOSUB RETARDO
GOTO VOLTA_RTC
UNIDADE_MINUTO: 'COR BRANCA
PORTB = UM1: PORTC = UM1: PORTD = UM1: GOSUB RETARDO
PORTB = UM2: PORTC = UM2: PORTD = UM2: gOSUB RETARDO
PORTB = UM3: PORTC = UM3: PORTD = UM3: GOSUB RETARDO
PORTB = UM4: PORTC = UM4: PORTD = UM4: GOSUB RETARDO
PORTB = UM5: PORTC = UM5: PORTD = UM5: GOSUB RETARDO
PORTB = 0: PORTC = 0: PORTD = 0: GOSUB RETARDO
GOTO VOLTA_RTC
DEZENA_SEGUNDO: 'COR BRANCA
PORTB = DS1: PORTC = DS1: PORTD = DS1: GOSUB RETARDO
PORTB = DS2: PORTC = DS2: PORTD = DS2: GOSUB RETARDO
PORTB = DS3: PORTC = DS3: PORTD = DS3: GOSUB RETARDO
PORTB = DS4: PORTC = DS4: PORTD = DS4: GOSUB RETARDO
PORTB = DS5: PORTC = DS5: PORTD = DS5: GOSUB RETARDO
PORTB = 0: PORTC = 0: PORTD = 0: GOSUB RETARDO
GOTO VOLTA_RTC
UNIDADE_SEGUNDO:
PORTB = US1: PORTC = US1: PORTD = US1: GOSUB RETARDO
PORTB = US2: PORTC = US2: PORTD = US2: GOSUB RETARDO
PORTB = US3: PORTC = US3: PORTD = US3: GOSUB RETARDO
PORTB = US4: PORTC = US4: PORTD = US4: GOSUB RETARDO
PORTB = US5: PORTC = US5: PORTD = US5: GOSUB RETARDO
PORTB = 0: PORTC = 0: PORTD = 0: GOSUB RETARDO
GOTO VOLTA_RTC
'DP 235 255 255
DP_RTC:
PORTB = 0: PORTC = 0: GOSUB RETARDO
PORTB = 20: PORTC = 20: PORTD = 20: GOSUB RETARDO
PORTB = 0: PORTC = 0: PORTD = 0 : GOSUB RETARDO
PORTB = 0: PORTC = 0: PORTD = 0: GOSUB RETARDO
GOTO VOLTA_RTC
DEZENA_DIA: 'COR BRANCA
PORTB = DD1: PORTC = DD1: PORTD = DD1: GOSUB RETARDO
PORTB = DD2: PORTC = DD2: PORTD = DD2: GOSUB RETARDO
PORTB = DD3: PORTC = DD3: PORTD = DD3: GOSUB RETARDO
PORTB = DD4: PORTC = DD4: PORTD = DD4: GOSUB RETARDO
PORTB = DD5: PORTC = DD5: PORTD = DD5: GOSUB RETARDO
PORTB = 0: PORTC = 0: PORTD = 0: ' GOSUB RETARDO
GOTO VOLTA_RTC
UNIDADE_DIA: 'COR BRANCA
PORTB = UD1: PORTC = UD1: PORTD = UD1: GOSUB RETARDO
PORTB = UD2: PORTC = UD2: PORTD = UD2: GOSUB RETARDO
PORTB = UD3: PORTC = UD3: PORTD = UD3: GOSUB RETARDO
PORTB = UD4: PORTC = UD4: PORTD = UD4: GOSUB RETARDO
PORTB = UD5: PORTC = UD5: PORTD = UD5: GOSUB RETARDO
PORTB = 0: PORTC = 0: PORTD = 0: GOSUB RETARDO
GOTO VOLTA_RTC
'-------------------------------------------------------------------------------
'MES
MES1:
PORTB = M11: PORTC = M11: PORTD = M11: GOSUB RETARDO
PORTB = M12: PORTC = M12: PORTD = M12: GOSUB RETARDO
PORTB = M13: PORTC = M13: PORTD = M13: GOSUB RETARDO
PORTB = M14: PORTC = M14: PORTD = M14: GOSUB RETARDO
PORTB = M15: PORTC = M15: PORTD = M15: GOSUB RETARDO
PORTB = 0: PORTC = 0: PORTD = 0: GOSUB RETARDO
GOTO VOLTA_RTC
MES2:
PORTB = M21: PORTC = M21: PORTD = M21: GOSUB RETARDO
PORTB = M22: PORTC = M22: PORTD = M22: GOSUB RETARDO
PORTB = M23: PORTC = M23: PORTD = M23: GOSUB RETARDO
PORTB = M24: PORTC = M24: PORTD = M24: GOSUB RETARDO
PORTB = M25: PORTC = M25: PORTD = M25: GOSUB RETARDO
PORTB = 0: PORTC = 0: PORTD = 0: GOSUB RETARDO
GOTO VOLTA_RTC
MES3:
PORTB = M31: PORTC = M31: PORTD = M31: GOSUB RETARDO
PORTB = M32: PORTC = M32: PORTD = M32: GOSUB RETARDO
PORTB = M33: PORTC = M33: PORTD = M33: GOSUB RETARDO
PORTB = M34: PORTC = M34: PORTD = M34: GOSUB RETARDO
PORTB = M35: PORTC = M35: PORTD = M35: GOSUB RETARDO
PORTB = 0: PORTC = 0: PORTD = 0: GOSUB RETARDO
GOTO VOLTA_RTC
'-------------------------------------------------------------------------------
VINTE:
'0 = 062,069,073,081,062,000 ok
PORTB = 62: PORTC = 62: PORTD = 62: GOSUB RETARDO
PORTB = 69: PORTC = 69: PORTD = 69: GOSUB RETARDO
PORTB = 73: PORTC = 73: PORTD = 73: GOSUB RETARDO
PORTB = 81: PORTC = 81: PORTD = 81: GOSUB RETARDO
PORTB = 62: PORTC = 62: PORTD = 62: GOSUB RETARDO
PORTB = 0: PORTC = 0: PORTD = 0: GOSUB RETARDO
'2 = 070,073,081,097,066,000 ok
PORTB = 70: PORTC = 70: PORTD = 70: GOSUB RETARDO
PORTB = 73: PORTC = 73: PORTD = 73: GOSUB RETARDO
PORTB = 81: PORTC = 81: PORTD = 81: GOSUB RETARDO
PORTB = 97: PORTC = 97: PORTD = 97: GOSUB RETARDO
PORTB = 66: PORTC = 66: PORTD = 66: GOSUB RETARDO
PORTB = 0: PORTC = 0: PORTD = 0: GOSUB RETARDO
GOTO VOLTA_RTC
'-------------------------------------------------------------------------------
DEZENA_ANO: 'COR BRANCA
PORTB = DA1: PORTC = DA1: PORTD = DA1: GOSUB RETARDO
PORTB = DA2: PORTC = DA2: PORTD = DA2: GOSUB RETARDO
PORTB = DA3: PORTC = DA3: PORTD = DA3: GOSUB RETARDO
PORTB = DA4: PORTC = DA4: PORTD = DA4: GOSUB RETARDO
PORTB = DA5: PORTC = DA5: PORTD = DA5: GOSUB RETARDO
PORTB = 0: PORTC = 0: PORTD = 0: GOSUB RETARDO
GOTO VOLTA_RTC
UNIDADE_ANO: 'COR BRANCA
PORTB = UA1: PORTC = UA1: PORTD = UA1: GOSUB RETARDO
PORTB = UA2: PORTC = UA2: PORTD = UA2: GOSUB RETARDO
PORTB = UA3: PORTC = UA3: PORTD = UA3: GOSUB RETARDO
PORTB = UA4: PORTC = UA4: PORTD = UA4: GOSUB RETARDO
PORTB = UA5: PORTC = UA5: PORTD = UA5: GOSUB RETARDO
PORTB = 0: PORTC = 0: PORTD = 0: GOSUB RETARDO
GOTO VOLTA_RTC
TRACO:
PORTB = 0: PORTC = 0: PORTD = 0: GOSUB RETARDO
PORTB = 0: PORTC = 0: PORTD = 0: GOSUB RETARDO
GOTO VOLTA_RTC
'ESP 255 255 255 255 255 255
ESP_RTC:
PORTB = 0: PORTC = 0: PORTD = 0
GOSUB RETARDO: GOSUB RETARDO: GOSUB RETARDO
GOSUB RETARDO: GOSUB RETARDO: GOSUB RETARDO
GOSUB RETARDO: pauseus 600' GOSUB RETARDO
GOTO VOLTA_RTC
LOOP_1:
MOSTRA_RELOGIO_DIGITAL:
GOSUB RTC
'AQUI ENTRA A LÓGICA P/ AJUSTE DO HORÁRIO DE VERÃO ATRAVÉS DE JUMPER
IF HORARIO_VERAO = 0 THEN
IF DEZ_HORA = 0 THEN
UN_HORA = UN_HORA + 1
IF UN_HORA = 10 THEN
UN_HORA = 0
DEZ_HORA = 1
GOTO SAI_AJUSTE
ENDIF
ENDIF
IF DEZ_HORA = 1 THEN
UN_HORA = UN_HORA + 1
IF UN_HORA = 10 THEN
UN_HORA = 0
DEZ_HORA = 2
GOTO SAI_AJUSTE
ENDIF
ENDIF
IF DEZ_HORA = 2 THEN
UN_HORA = UN_HORA + 1
IF UN_HORA = 4 THEN
UN_HORA = 0
DEZ_HORA = 0
GOTO SAI_AJUSTE
ENDIF
ENDIF
ENDIF
SAI_AJUSTE:
'-------------------------------------------------------------------------------
'0 = 062,069,073,081,062,000
IF DEZ_HORA = 0 THEN
DH1 = 62 :DH2 = 69 :DH3 = 73 :DH4 = 81 :DH5 = 62
ENDIF
'1 = 000,033,127,001,000,000
IF DEZ_HORA = 1 THEN
DH1 = 0 :DH2 = 33 :DH3 = 127 :DH4 = 1 :DH5 = 0
ENDIF
'2 = 033,067,069,073,049,000
IF DEZ_HORA = 2 THEN
DH1 = 33 :DH2 = 67 :DH3 = 69 :DH4 = 73 :DH5 = 49
ENDIF
'-------------------------------------------------------------------------------
'0 = 062,069,073,081,062,000
IF UN_HORA = 0 THEN
UH1 = 62 :UH2 = 69 :UH3 = 73 :UH4 = 81 :UH5 = 62
ENDIF
'1 = 000,033,127,001,000,000
IF UN_HORA = 1 THEN
UH1 = 0 :UH2 = 33 :UH3 = 127 :UH4 = 1 :UH5 = 0
ENDIF
'2 = 033,067,069,073,049,000
IF UN_HORA = 2 THEN
UH1 = 33 :UH2 = 67 :UH3 = 69 :UH4 = 73 :UH5 = 49
ENDIF
'3 = 066,065,081,105,070,000
IF UN_HORA = 3 THEN
UH1 = 66 :UH2 = 65 :UH3 = 81 :UH4 = 105 :UH5 = 70
ENDIF
'4 = 012,020,036,127,004,000
IF UN_HORA = 4 THEN
UH1 = 12 :UH2 = 20 :UH3 = 36 :UH4 = 127 :UH5 = 4
ENDIF
'5 = 114,081,081,081,078,000
IF UN_HORA = 5 THEN
UH1 = 114 :UH2 = 81 :UH3 = 81 :UH4 = 81 :UH5 = 78
ENDIF
'6 = 030,041,073,073,006,000
IF UN_HORA = 6 THEN
UH1 = 30 :UH2 = 41 :UH3 = 73 :UH4 = 73 :UH5 = 6
ENDIF
'7 = 064,071,072,080,096,000
IF UN_HORA = 7 THEN
UH1 = 64 :UH2 = 71 :UH3 = 72 :UH4 = 80 :UH5 = 96
ENDIF
'8 = 054,073,073,073,054,000
IF UN_HORA = 8 THEN
UH1 = 54 :UH2 = 73 :UH3 = 73 :UH4 = 73 :UH5 = 54
ENDIF
'9 = 048,073,073,074,060,000
IF UN_HORA = 9 THEN
UH1 = 48 :UH2 = 73 :UH3 = 73 :UH4 = 74 :UH5 = 60
ENDIF
'-------------------------------------------------------------------------------
'0 = 062,069,073,081,062,000
IF DEZ_MIN = 0 THEN
DM1 = 62 :DM2 = 69 :DM3 = 73 :DM4 = 81 :DM5 = 62
ENDIF
'1 = 000,033,127,001,000,000
IF DEZ_MIN = 1 THEN
DM1 = 0 :DM2 = 33 :DM3 = 127 :DM4 = 1 :DM5 = 0
ENDIF
'2 = 033,067,069,073,049,000
IF DEZ_MIN = 2 THEN
DM1 = 33 :DM2 = 67 :DM3 = 69 :DM4 = 73 :DM5 = 49
ENDIF
'3 = 066,065,081,105,070,000
IF DEZ_MIN = 3 THEN
DM1 = 66 :DM2 = 65 :DM3 = 81 :DM4 = 105 :DM5 = 70
ENDIF
'4 = 012,020,036,127,004,000
IF DEZ_MIN = 4 THEN
DM1 = 12 :DM2 = 20 :DM3 = 36 :DM4 = 127 :DM5 = 4
ENDIF
'5 = 114,081,081,081,078,000
IF DEZ_MIN = 5 THEN
DM1 = 114 :DM2 = 81 :DM3 = 81 :DM4 = 81 :DM5 = 78
ENDIF
'6 = 030,041,073,073,006,000
IF DEZ_MIN = 6 THEN
DM1 = 30 :DM2 = 41 :DM3 = 73 :DM4 = 73 :DM5 = 6
ENDIF
'-------------------------------------------------------------------------------
'0 = 062,069,073,081,062,000
IF UN_MIN = 0 THEN
UM1 = 62 :UM2 = 69 :UM3 = 73 :UM4 = 81 :UM5 = 62
ENDIF
'1 = 000,033,127,001,000,000
IF UN_MIN = 1 THEN
UM1 = 0 :UM2 = 33 :UM3 = 127 :UM4 = 1 :UM5 = 0
ENDIF
'2 = 033,067,069,073,049,000
IF UN_MIN = 2 THEN
UM1 = 33 :UM2 = 67 :UM3 = 69 :UM4 = 73 :UM5 = 49
ENDIF
'3 = 066,065,081,105,070,000
IF UN_MIN = 3 THEN
UM1 = 66 :UM2 = 65 :UM3 = 81 :UM4 = 105 :UM5 = 70
ENDIF
'4 = 012,020,036,127,004,000
IF UN_MIN = 4 THEN
UM1 = 12 :UM2 = 20 :UM3 = 36 :UM4 = 127 :UM5 = 4
ENDIF
'5 = 114,081,081,081,078,000
IF UN_MIN = 5 THEN
UM1 = 114 :UM2 = 81 :UM3 = 81 :UM4 = 81 :UM5 = 78
ENDIF
'6 = 030,041,073,073,006,000
IF UN_MIN = 6 THEN
UM1 = 30 :UM2 = 41 :UM3 = 73 :UM4 = 73 :UM5 = 6
ENDIF
'7 = 064,071,072,080,096,000
IF UN_MIN = 7 THEN
UM1 = 64 :UM2 = 71 :UM3 = 72 :UM4 = 80 :UM5 = 96
ENDIF
'8 = 054,073,073,073,054,000
IF UN_MIN = 8 THEN
UM1 = 54 :UM2 = 73 :UM3 = 73 :UM4 = 73 :UM5 = 54
ENDIF
'9 = 048,073,073,074,060,000
IF UN_MIN = 9 THEN
UM1 = 48 :UM2 = 73 :UM3 = 73 :UM4 = 74 :UM5 = 60
ENDIF
'-------------------------------------------------------------------------------
'0 = 062,069,073,081,062,000
IF DEZ_SEG = 0 THEN
DS1 = 62 :DS2 = 69 :DS3 = 73 :DS4 = 81 :DS5 = 62
ENDIF
'1 = 000,033,127,001,000,000
IF DEZ_SEG = 1 THEN
DS1 = 0 :DS2 = 33 :DS3 = 127 :DS4 = 1 :DS5 = 0
ENDIF
'2 = 033,067,069,073,049,000
IF DEZ_SEG = 2 THEN
DS1 = 33 :DS2 = 67 :DS3 = 69 :DS4 = 73 :DS5 = 49
ENDIF
'3 = 066,065,081,105,070,000
IF DEZ_SEG = 3 THEN
DS1 = 66 :DS2 = 65 :DS3 = 81 :DS4 = 105 :DS5 = 70
ENDIF
'4 = 012,020,036,127,004,000
IF DEZ_SEG = 4 THEN
DS1 = 12 :DS2 = 20 :DS3 = 36 :DS4 = 127 :DS5 = 4
ENDIF
'5 = 114,081,081,081,078,000
IF DEZ_SEG = 5 THEN
DS1 = 114 :DS2 = 81 :DS3 = 81 :DS4 = 81 :DS5 = 78
ENDIF
'6 = 030,041,073,073,006,000
IF DEZ_SEG = 6 THEN
DS1 = 30 :DS2 = 41 :DS3 = 73 :DS4 = 73 :DS5 = 6
ENDIF
'-------------------------------------------------------------------------------
'0 = 062,069,073,081,062,000
IF UN_SEG = 0 THEN
US1 = 62 :US2 = 69 :US3 = 73 :US4 = 81 :US5 = 62
ENDIF
'1 = 000,033,127,001,000,000
IF UN_SEG = 1 THEN
US1 = 0 :US2 = 33 :US3 = 127 :US4 = 1 :US5 = 0
ENDIF
'2 = 033,067,069,073,049,000
IF UN_SEG = 2 THEN
US1 = 33 :US2 = 67 :US3 = 69 :US4 = 73 :US5 = 49
ENDIF
'3 = 066,065,081,105,070,000
IF UN_SEG = 3 THEN
US1 = 66 :US2 = 65 :US3 = 81 :US4 = 105 :US5 = 70
ENDIF
'4 = 012,020,036,127,004,000
IF UN_SEG = 4 THEN
US1 = 12 :US2 = 20 :US3 = 36 :US4 = 127 :US5 = 4
ENDIF
'5 = 114,081,081,081,078,000
IF UN_SEG = 5 THEN
US1 = 114 :US2 = 81 :US3 = 81 :US4 = 81 :US5 = 78
ENDIF
'6 = 030,041,073,073,006,000
IF UN_SEG = 6 THEN
US1 = 30 :US2 = 41 :US3 = 73 :US4 = 73 :US5 = 6
ENDIF
'7 = 064,071,072,080,096,000
IF UN_SEG = 7 THEN
US1 = 64 :US2 = 71 :US3 = 72 :US4 = 80 :US5 = 96
ENDIF
'8 = 054,073,073,073,054,000
IF UN_SEG = 8 THEN
US1 = 54 :US2 = 73 :US3 = 73 :US4 = 73 :US5 = 54
ENDIF
'9 = 048,073,073,074,060,000
IF UN_SEG = 9 THEN
US1 = 48 :US2 = 73 :US3 = 73 :US4 = 74 :US5 = 60
ENDIF
'===============================================================================
'na parte cima escreve:
'0 = 062,069,073,081,062,000 ok
IF DEZ_DIA = 0 THEN
DD1 = 62 :DD2 = 69 :DD3 = 73 :DD4 = 81 :DD5 = 62
ENDIF
'1 = 000,064,127,066,000,000 ok
IF DEZ_DIA = 1 THEN
DD1 = 0 :DD2 = 64 :DD3 = 127 :DD4 = 66 :DD5 = 0
ENDIF
'2 = 070,073,081,097,066,000 ok
IF DEZ_DIA = 2 THEN
DD1 = 70 :DD2 = 73 :DD3 = 81 :DD4 = 97 :DD5 = 66
ENDIF
'3 = 049,075,069,065,033,000 ok
IF DEZ_DIA = 3 THEN
DD1 = 49 :DD2 = 75 :DD3 = 69 :DD4 = 65 :DD5 = 33
ENDIF
'-------------------------------------------------------------------------------
'0 = 062,069,073,081,062,000 ok
IF UN_DIA = 0 THEN
UD1 = 62 :UD2 = 69 :UD3 = 73 :UD4 = 81 :UD5 = 62
ENDIF
'1 = 000,064,127,066,000,000 ok
IF UN_DIA = 1 THEN
UD1 = 0 :UD2 = 64 :UD3 = 127 :UD4 = 66 :UD5 = 0
ENDIF
'2 = 070,073,081,097,066,000 ok
IF UN_DIA = 2 THEN
UD1 = 70 :UD2 = 73 :UD3 = 81 :UD4 = 97 :UD5 = 66
ENDIF
'3 = 049,075,069,065,033,000 ok
IF UN_DIA = 3 THEN
UD1 = 49 :UD2 = 75 :UD3 = 69 :UD4 = 65 :UD5 = 33
ENDIF
'4 = 016,127,018,020,024,000 ok
IF UN_DIA = 4 THEN
UD1 = 16 :UD2 = 127 :UD3 = 18 :UD4 = 20 :UD5 = 24
ENDIF
'5 = 057,069,069,069,039,000 ok
IF UN_DIA = 5 THEN
UD1 = 57 :UD2 = 69 :UD3 = 69 :UD4 = 69 :UD5 = 39
ENDIF
'6 = 048,073,073,074,060,000 ok
IF UN_DIA = 6 THEN
UD1 = 48 :UD2 = 73 :UD3 = 73 :UD4 = 74 :UD5 = 60
ENDIF
'7 = 003,005,009,113,001,000 ok
IF UN_DIA = 7 THEN
UD1 = 3 :UD2 = 5 :UD3 = 9 :UD4 = 113 :UD5 = 1
ENDIF
'8 = 054,073,073,073,054,000 ok
IF UN_DIA = 8 THEN
UD1 = 54 :UD2 = 73 :UD3 = 73 :UD4 = 73 :UD5 = 54
ENDIF
'9 = 030,041,073,073,006,000 ok
IF UN_DIA = 9 THEN
UD1 = 30 :UD2 = 41 :UD3 = 73 :UD4 = 73 :UD5 = 6
ENDIF
'-------------------------------------------------------------------------------
'VAI ATÉ 2039 SOMENTE...
'1 = 000,064,127,066,000,000 ok
IF DEZ_ANO = 1 THEN
DA1 = 0 :DA2 = 64 :DA3 = 127 :DA4 = 66 :DA5 = 0
ENDIF
'2 = 070,073,081,097,066,000 ok
IF DEZ_ANO = 2 THEN
DA1 = 70 :DA2 = 73 :DA3 = 81 :DA4 = 97 :DA5 = 66
ENDIF
'3 = 049,075,069,065,033,000 ok
IF DEZ_ANO = 3 THEN
DA1 = 49 :DA2 = 75 :DA3 = 69 :DA4 = 65 :DA5 = 33
ENDIF
'-------------------------------------------------------------------------------
'-------------------------------------------------------------------------------
'0 = 062,069,073,081,062,000 ok
IF UN_ANO = 0 THEN
UA1 = 62 :UA2 = 69 :UA3 = 73 :UA4 = 81 :UA5 = 62
ENDIF
'1 = 000,064,127,066,000,000 ok
IF UN_ANO = 1 THEN
UA1 = 0 :UA2 = 64 :UA3 = 127 :UA4 = 66 :UA5 = 0
ENDIF
'2 = 070,073,081,097,066,000 ok
IF UN_ANO = 2 THEN
UA1 = 70 :UA2 = 73 :UA3 = 81 :UA4 = 97 :UA5 = 66
ENDIF
'3 = 049,075,069,065,033,000 ok
IF UN_ANO = 3 THEN
UA1 = 49 :UA2 = 75 :UA3 = 69 :UA4 = 65 :UA5 = 33
ENDIF
'4 = 016,127,018,020,024,000 ok
IF UN_ANO = 4 THEN
UA1 = 16 :UA2 = 127 :UA3 = 18 :UA4 = 20 :UA5 = 24
ENDIF
'5 = 057,069,069,069,039,000 ok
IF UN_ANO = 5 THEN
UA1 = 57 :UA2 = 69 :UA3 = 69 :UA4 = 69 :UA5 = 39
ENDIF
'6 = 048,073,073,074,060,000 ok
IF UN_ANO = 6 THEN
UA1 = 48 :UA2 = 73 :UA3 = 73 :UA4 = 74 :UA5 = 60
ENDIF
'7 = 003,005,009,113,001,000 ok
IF UN_ANO = 7 THEN
UA1 = 3 :UA2 = 5 :UA3 = 9 :UA4 = 113 :UA5 = 1
ENDIF
'8 = 054,073,073,073,054,000 ok
IF UN_ANO = 8 THEN
UA1 = 54 :UA2 = 73 :UA3 = 73 :UA4 = 73 :UA5 = 54
ENDIF
'9 = 030,041,073,073,006,000 ok
IF UN_ANO = 9 THEN
UA1 = 30 :UA2 = 41 :UA3 = 73 :UA4 = 73 :UA5 = 6
ENDIF
'-------------------------------------------------------------------------------
' Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
IF MES = 1 THEN 'Jan
'J = 001,063,065,064,032,000 ok
M11 = 1 :M12 = 63 :M13 = 65 :M14 = 64 :M15 = 32
'a = 0120,084,084,084,032,000 ok
M21 = 120 :M22 = 84 :M23 = 84 :M24 = 84 :M25 = 32
'n = 120,004,004,008,124,000 ok
M31 = 120 :M32 = 4 :M33 = 4 :M34 = 8 :M35 = 124
ENDIF
IF MES = 2 THEN 'Feb
'F = 001,009,009,009,127,000 ok
M11 = 1 :M12 = 9 :M13 = 9 :M14 = 9 :M15 = 127
'e = 024,084,084,084,056,000 ok
M21 = 24 :M22 = 84 :M23 = 84 :M24 = 84 :M25 = 56
'b = 048,072,072,080,124,000 ok
M31 = 48 :M32 = 72 :M33 = 72 :M34 = 80 :M35 = 124
ENDIF
IF MES = 3 THEN 'Mar
'M = 127,002,012,002,127,000 ok
M11 = 127 :M12 = 2 :M13 = 12 :M14 = 2 :M15 = 127
'a = 0120,084,084,084,032,000 ok
M21 = 120 :M22 = 84 :M23 = 84 :M24 = 84 :M25 = 32
'r = 008,004,004,008,124,000 ok
M31 = 8 :M32 = 4 :M33 = 4 :M34 = 8 :M35 = 124
ENDIF
IF MES = 4 THEN 'Apr
'A = 126,009,009,009,126,000 ok
M11 = 126 :M12 = 9 :M13 = 9 :M14 = 9 :M15 = 126
'p = 008,020,020,020,124,000 ok
M21 = 8 :M22 = 20 :M23 = 20 :M24 = 20 :M25 = 124
'r = 008,004,004,008,124,000 ok
M31 = 8 :M32 = 4 :M33 = 4 :M34 = 8 :M35 = 124
ENDIF
IF MES = 5 THEN 'May
'M = 127,002,012,002,127,000 ok
M11 = 127 :M12 = 2 :M13 = 12 :M14 = 2 :M15 = 127
'a = 0120,084,084,084,032,000 ok
M21 = 120 :M22 = 84 :M23 = 84 :M24 = 84 :M25 = 32
'y = 060,080,080,080,012,000 ok
M31 = 60 :M32 = 80 :M33 = 80 :M34 = 80 :M35 = 12
ENDIF
IF MES = 6 THEN 'Jun
'J = 001,063,065,064,032,000 ok
M11 = 1 :M12 = 63 :M13 = 65 :M14 = 64 :M15 = 32
'u = 124,032,064,064,060,000 ok
M21 = 124 :M22 = 32 :M23 = 64 :M24 = 64 :M25 = 60
'n = 120,004,004,008,124,000 ok
M31 = 120 :M32 = 4 :M33 = 4 :M34 = 8 :M35 = 124
ENDIF
IF MES = 7 THEN 'Jul
'J = 001,063,065,064,032,000 ok
M11 = 1 :M12 = 63 :M13 = 65 :M14 = 64 :M15 = 32
'u = 124,032,064,064,060,000 ok
M21 = 124 :M22 = 32 :M23 = 64 :M24 = 64 :M25 = 60
'l = 000,064,127,065,000,000 ok
M31 = 0 :M32 = 64 :M33 = 127 :M34 = 65 :M35 = 0
ENDIF
IF MES = 8 THEN 'Aug
'A = 126,009,009,009,126,000 ok
M11 = 126 :M12 = 9 :M13 = 9 :M14 = 9 :M15 = 126
'u = 124,032,064,064,060,000 ok
M21 = 124 :M22 = 32 :M23 = 64 :M24 = 64 :M25 = 60
'g = 060,084,084,084,024,000 ok
M31 = 60 :M32 = 84 :M33 = 84 :M34 = 84 :M35 = 24
ENDIF
IF MES = 9 THEN 'Sep
'S = 049,073,073,073,070,000 ok
M11 = 49 :M12 = 73 :M13 = 73 :M14 = 73 :M15 = 70
'e = 024,084,084,084,056,000 ok
M21 = 24 :M22 = 84 :M23 = 84 :M24 = 84 :M25 = 56
'p = 008,020,020,020,124,000 ok
M31 = 8 :M32 = 20 :M33 = 20 :M34 = 20 :M35 = 124
ENDIF
IF MES = 10 THEN 'Oct
'O = 062,065,065,065,062,000 ok
M11 = 62 :M12 = 65 :M13 = 65 :M14 = 65 :M15 = 62
'c = 032,068,068,068,056,000 ok
M21 = 32 :M22 = 68 :M23 = 68 :M24 = 68 :M25 = 56
't = 032,064,068,063,004,000 ok
M31 = 32 :M32 = 64 :M33 = 68 :M34 = 63 :M35 = 4
ENDIF
IF MES = 11 THEN 'Nov
'N = 127,016,008,004,127,000 ok
M11 = 127 :M12 = 16 :M13 = 8 :M14 = 4 :M15 = 127
'o = 056,068,068,068,056,000 ok
M21 = 56 :M22 = 68 :M23 = 68 :M24 = 68 :M25 = 56
'v = 028,032,064,032,028,000 ok
M31 = 28 :M32 = 32 :M33 = 64 :M34 = 32 :M35 = 28
ENDIF
IF MES = 12 THEN 'Dec
'D = 028,034,065,065,127,000 ok
M11 = 28 :M12 = 34 :M13 = 65 :M14 = 65 :M15 = 127
'e = 024,084,084,084,056,000 ok
M21 = 24 :M22 = 84 :M23 = 84 :M24 = 84 :M25 = 56
'c = 032,068,068,068,056,000 ok
M31 = 32 :M32 = 68 :M33 = 68 :M34 = 68 :M35 = 56
ENDIF
'-------------------------------------------------------------------------------
'-------------------------------------------------------------------------------
LOOP_RTC_DIGITAL:
VERMELHO = 1: VERDE = 0 : AZUL = 0
GOSUB TESTA_HALL
if VALOR_AD > VALOR then MSG_RTC 'TESTAR VALOR DO AD NO IMÃ
GOTO LOOP_RTC_DIGITAL
MSG_RTC:
PAUSEUS 20
for B0 = 0 TO 19
IF MN < 150 THEN
BRANCHL B0,[ESP_RTC,DEZENA_HORA,UNIDADE_HORA,DP_RTC,DEZENA_MINUTO,UNIDADE_MINUTO,DP_RTC,DEZENA_SEGUNDO,UNIDADE_SEGUNDO,ESP_RTC,UNIDADE_ANO,DEZENA_ANO,VINTE,TRACO,MES3,MES2,MES1,TRACO,UNIDADE_DIA,DEZENA_DIA]
ENDIF
VOLTA_RTC:
MN = MN + 1
NEXT B0
IF MN >= 120 THEN
MN = 0
AUX = AUX + 1
IF AUX > 100 THEN
AUX = 0
GOTO BANNER_MOVENDO 'MOSTRA_RELOGIO_ANALOGICO
ELSE
GOTO MOSTRA_RELOGIO_DIGITAL
ENDIF
ELSE
GOTO LOOP_RTC_DIGITAL
ENDIF
'-------------------------------------------------------------------------------
'MOSTRA_RELOGIO_ANALOGICO:
'VERMELHO = 0: VERDE = 1 : AZUL = 1
'FOR I = 0 TO 59
' VB[I] = 0: VC[I] = 0: VD[I] = 0
'NEXT I
'GOSUB RTC
'MINUTO_ANALOGICO = (DEZ_MIN * 10) + (UN_MIN)
'FOR I = 0 TO MINUTO_ANALOGICO
' VD[I] = 8
'NEXT
'SEGUNDO_ANALOGICO = (DEZ_SEG* 10) + (UN_SEG)
'FOR I = 0 TO SEGUNDO_ANALOGICO
' VB[I] = 2
'NEXT
'HORA_ANALOGICA = (DEZ_HORA *10) + (UN_HORA)
''-------------------------------------------------------------------------------
'IF HORARIO_VERAO = 0 THEN
' HORA_ANALOGICA = HORA_ANALOGICA + 1
' IF HORA_ANALOGICA = 24 OR HORA_ANALOGICA = 12 THEN
' HORA_ANALOGICA = 0
' ENDIF
'ENDIF
''-------------------------------------------------------------------------------
' IF HORA_ANALOGICA >= 12 THEN
' HORA_ANALOGICA = (HORA_ANALOGICA - 12)*5
' ELSE
' HORA_ANALOGICA = (HORA_ANALOGICA *5)
' ENDIF
''ESSA ROTINA SERVE MELHOR P/ ANALÓGICO DE PONTEIRO
''-------------------------------------------------------------------------------
''IF MINUTO_ANALOGICO < 12 THEN
''HORA_ANALOGICA = HORA_ANALOGICA
''ENDIF
''IF MINUTO_ANALOGICO > 11 AND MINUTO_ANALOGICO < 24 THEN
''HORA_ANALOGICA = HORA_ANALOGICA + 1
''ENDIF
''IF MINUTO_ANALOGICO > 23 AND MINUTO_ANALOGICO < 36 THEN
''HORA_ANALOGICA = HORA_ANALOGICA + 2
''ENDIF
''IF MINUTO_ANALOGICO > 35 AND MINUTO_ANALOGICO < 48 THEN
''HORA_ANALOGICA = HORA_ANALOGICA + 3
''ENDIF
''IF MINUTO_ANALOGICO > 47 AND MINUTO_ANALOGICO < 60 THEN
''HORA_ANALOGICA = HORA_ANALOGICA + 4
''ENDIF
'FOR I = 0 TO HORA_ANALOGICA
'' if I//5 = 0 OR I = 0 THEN 'HABILITANDO O IF MOSTRA-SE APENAS UM LED NA HORA CORRESPONDENTE (DE 5 EM 5 MIN)
' VC[I] = 64
'' ENDIF
'NEXT
'LOOP_RTC_ANALOGICO:
'GOSUB TESTA_HALL
'if VALOR_AD > VALOR then MSG_RTC_ANALOGICO 'TESTAR VALOR DO AD NO IMÃ
'GOTO LOOP_RTC_ANALOGICO
'MSG_RTC_ANALOGICO:
' PAUSEUS 100
' for B0 = 0 TO 59
' IF MN < 150 THEN
' BRANCHL B0,[P45,P44,P43,P42,P41,P40,P39,P38,P37,P36,P35,P34,P33,P32,P31,P30,P29,P28,P27,P26,P25,P24,P23,P22,P21,P20,P19,P18,P17,P16,P15,P14,P13,P12,P11,P10,P9,P8,P7,P6,P5,P4,P3,P2,P1,P0,P59,P58,P57,P56,P55,P54,P53,P52,P51,P50,P49,P48,P47,P46]
' ENDIF
'VOLTA_RTC_ANALOGICO:
'MN = MN + 1
'NEXT B0
'IF MN >= 120 THEN
' MN = 0
' AUX = AUX + 1
' IF AUX > 180 THEN
' AUX = 0
' GOTO BANNER_MOVENDO
' ELSE
' GOTO MOSTRA_RELOGIO_ANALOGICO
' ENDIF
'ELSE
' GOTO LOOP_RTC_ANALOGICO
'ENDIF
''-------------------------------------------------------------------------------
'--------------------------------------------------------------------------------
BANNER_MOVENDO:
GOSUB TESTA_HALL
if VALOR_AD > VALOR then MSG_MOVENDO 'TESTAR VALOR DO AD NO IMÃ
GOTO BANNER_MOVENDO
MSG_MOVENDO:
SELECT CASE TAB
CASE 1:
VERMELHO = 0: VERDE = 1 : AZUL = 0
for B0 = B2 to B3
'SEJAM BEM-VINDOS!
LOOKUP B0,[000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,_
000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,049,073,073,073,070,000,127,073,073,073,065,000,002,001,065,126,064,000,063,072,072,072,063,000,127,032,024,032,127,000,000,000,000,000,000,000,127,073,073,073,054,000,_
127,073,073,073,065,000,127,032,024,032,127,000,000,008,008,008,000,000,124,002,001,002,124,000,000,065,127,065,000,000,127,016,008,004,127,000,127,065,065,034,028,000,062,065,065,065,062,000,049,073,073,073,070,000,000,000,000,125,000,000,_
000,000,00,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,_
000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000],B1
PORTB = B1 : PORTC = B1: PORTD = B1: GOSUB RETARDO : PORTB = 0: PORTC = 0: PORTD = 0
next
CASE 2:
VERMELHO = 0: VERDE = 0 : AZUL = 1
for B0 = B2 to B3
' CONSULTEM NOSSAS OFERTAS!
' C---------------------- O-----------------------N-----------------------S-----------------------U-----------------------L-----------------------T-----------------------E-----------------------M-----------------------BR----------------------N----------------------
' O-----------------------S-----------------------S-----------------------A-----------------------S-----------------------BR----------------------O-----------------------F-----------------------E-----------------------R----------------------
' T-----------------------A-----------------------S-----------------------
LOOKUP B0,[000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,_
062,065,065,065,034,000,062,065,065,065,062,000,127,016,008,004,127,000,049,073,073,073,070,000,126,001,001,001,126,000,127,001,001,001,001,000,064,064,127,064,064,000,127,073,073,073,065,000,127,032,024,032,127,000,000,000,000,000,000,000,_
127,016,008,004,127,000,062,065,065,065,062,000,049,073,073,073,070,000,049,073,073,073,070,000,063,072,072,072,063,000,049,073,073,073,070,000,000,000,000,000,000,000,062,065,065,065,062,000,127,072,072,072,064,000,127,073,073,073,065,000,_
127,072,076,074,049,000,064,064,127,064,064,000,063,072,072,072,063,000,049,073,073,073,070,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,_
000,000,000,000,000,000,000,000,000,000,000,000,000,000,000],B1
PORTB = 0 : PORTC = B1: PORTD = 0: GOSUB RETARDO : PORTB = 0: PORTC = 0: PORTD = 0
next
CASE 3:
VERMELHO = 1: VERDE = 0 : AZUL = 0
for B0 = B2 to B3
'baterias multimarcas
'b------------------------a-----------------------t----------------------- e---------------------
'r----------------------i------------------a------------------------s----------------------br-----------------------m----------------------u-----------------------l-------------------------t-----------------------i--------------------------
'm----------------------a-----------------------r-----------------------c-----------------------a-----------------------s
LOOKUP B0,[000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,_
127,005,009,009,006,000,002,021,021,021,015,000,016,126,017,001,002,000,014,021,021,021,012,000,031,008,016,016,008,000,000,017,095,001,000,002,021,021,021,015,000,009,021,021,021,002,000,000,000,000,000,000,000,000,031,016,031,016,015,000,_
030,001,001,002,031,000,000,065,127,001,000,000,016,126,017,001,002,000,000,017,095,001,000,000,031,016,031,016,015,000,002,021,021,021,015,000,031,008,016,016,008,000,014,017,017,017,002,000,002,021,021,021,015,000,009,021,021,021,002,000,_
000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,_
000,000,000,000,000,000,000,000,000,000,000,000,000,000,000],B1
PORTB = B1 : PORTC = B1: PORTD = B1: GOSUB RETARDO : PORTB = 0: PORTC = 0: PORTD = 0
next
END SELECT
INC_PONTEIRO:
B2 = B2 + 1: B3 = B3 + 1: AUX = 0
IF B3 > 254 THEN LOOP_MSG
GOTO BANNER_MOVENDO
LOOP_MSG:
TAB = TAB + 1 : B2 = 0: B3 = 110: AUX = 0
IF TAB = 4 THEN FIM_MSG_RODANDO
GOTO BANNER_MOVENDO
FIM_MSG_RODANDO:
TAB = 1
'--------------------------------------------------------------------------------
BANNER_PARADO:
GOSUB TESTA_HALL
if VALOR_AD > VALOR then MSG_PARADA 'TESTAR VALOR DO AD NO IMÃ
GOTO BANNER_PARADO
MSG_PARADA:
SELECT CASE TAB
CASE 1:
VERMELHO = 0 : VERDE = 1: AZUL = 0
for B0 = 0 to 118
'NA PARTE DE BAIXO ESCREVE "Baterias"
'br--------------------- B---------------------- a---------------------- t---------------------- e---------------------- r---------------------- i-----------------------a-----------------------s-----------------------BR----------------------
LOOKUP B0,[000,000,000,000,000,000,127,073,073,073,054,000,002,021,021,021,015,000,016,126,017,001,002,000,014,021,021,021,012,000,031,008,016,016,008,000,000,017,095,001,000,000,002,021,021,021,015,000,009,021,021,021,002,000,000,000,000,000,000,000,_
120,084,084,084,032,000,008,004,004,008,124,000,024,084,084,084,056,000,124,032,064,064,060,000,060,084,084,084,024,000,120,004,004,008,124,000,120,084,084,084,032,000,120,004,004,008,127,000,120,004,004,008,124,000,126,009,009,009,126,000],B1
'a----------------------'r------------------------e---------------------- u---------------------- g--------------------- n---------------------- a---------------------- h--------------------- -n--------------------- -A---------------------
'NA PARTE DE CIMA ESCREVE: "Anhanguera"
PORTB = B1 : PORTC = B1: PORTD = B1: GOSUB RETARDO : PORTB = 0: PORTC = 0: PORTD = 0
next B0
'-----------------------------------------------------------------------------
CASE 2:
VERMELHO = 0 : VERDE = 0: AZUL = 1
for B0 = 0 to 118
'NA PARTE DE BAIXO ESCREVE "32280880"
'br--------- 3--------------------- - 2--------------------- - 2---------------------- 8---------------------- 0---------------------- 8---------------------- 8---------------------- 0--------------------- br---------------------
LOOKUP B0,[000,000,000,066,065,081,105,070,000,000,033,067,069,073,049,000,000,033,067,069,073,049,000,000,054,073,073,073,054,000,000,062,069,073,081,062,000,000,054,073,073,073,054,000,000,054,073,073,073,054,000,000,062,069,073,081,062,000,000,000,_
000,000,000,000,000,000,024,084,084,084,056,000,120,004,004,008,124,000,056,068,068,068,056,000,002,001,009,126,008,000,024,084,084,084,056,000,000,064,127,065,000,000,024,084,084,084,056,000,001,001,127,001,001,000,000,000,000,000,000,000],B1
'br---------------------'e--------------------- -n---------------------- o---------------------- f--------------------- e---------------------- l---------------------- e-----------------------T--------------------- BR---------------------
'NA PARTE DE CIMA ESCREVE: "Telefone"
PORTB = 0 : PORTC = B1: PORTD = B1: GOSUB RETARDO : PORTB = 0: PORTC = 0: PORTD = 0
next B0
END SELECT
B0 = 0
AUX = AUX + 1
IF AUX > 200 THEN
TAB = TAB + 1
AUX = 0
ENDIF
IF TAB = 3 THEN
TAB = 1
GOTO LOOP_1'BANNER_MOVENDO
ELSE
GOTO BANNER_PARADO
ENDIF
'-------------------------------------------------------------------------------
'--------------------------------------------------------------------------------
RTC:
' Read RTC
I2CRead SDApin,SCLpin,$D0,$00,[RTCSec,RTCMin,RTCHour,RTCWDay,RTCDay,RTCMonth,RTCYear,RTCCtrl]
' ' Display Time on Line 1
' ' ----------------------
If RTCHour.6=1 then
' Work-Out 12 or 24 hour Display for Hours
CounterA=(RTCHour>>4)&$01
else
CounterA=(RTCHour>>4)&$03
endif
CounterA=CounterA*10+(RTCHour&$0F)
If RTCHour.6=1 then
' ' Display Hours appropriately for 12 or 24 hour Mode
'' LCDOut #CounterA
PAUSEUS 1 'NADA PIS VAI ESTAR SETADO P/ 24H
else
'' LCDOut #CounterA Dig 1,#CounterA Dig 0
UN_HORA = CounterA Dig 0 'eu é que coloquei pois counterA é usado depois e fode as coisas...colocando aqui e não é alterado mais!!!!
DEZ_HORA = CounterA Dig 1 'eu é que coloquei..idem!!!!
endif
'' LCDOut ":",#(RTCMin>>4)&$0F,#RTCMin&$0F,":"
'' LCDOut #(RTCSec>>4)&$0F,#RTCSec&$0F," "
' ' Display Date on Line 2
' ' ----------------------
'' LCDOut " ",#(RTCDay>>4)&$0F,#RTCDay&$0F," "
CounterB=((RTCMonth>>4)&$0F)*10+(RTCMonth&$0F)
MES = CounterB 'ESSA AQUI É P/ PEGAR O MES ANTES DE TRANSFORMAR DE NOVO P/ BCD E BUSCAR AS LETRAS DO MES NA EEPROM INTERNA ...DEVE VARIAR DE 1 A 12, OU SEJA DOZE MESES
'' LCDOut " 20",#(RTCYear>>4)&$0F,#RTCYear&$0F,$FE,$80
DEZ_SEG = (RTCSec>>4)&$0F 'aqui eu peguei os valores já em decimal de cada algarísmo do horário de alarme, os que nao estao aqui é pq eu já peguei lá em cima antes deles irem p/ qq subrotina que alterasse seu valor...
UN_SEG = RTCSec&$0F
UN_MIN = RTCMin&$0F
DEZ_MIN = (RTCMin>>4)&$0F
UN_DIA = RTCDay&$0F
DEZ_DIA = (RTCDay>>4)&$0F
UN_ANO = RTCYear&$0F
DEZ_ANO = (RTCYear>>4)&$0F
RETURN
'---------------------------------------------------------------------------->>>>>>>>>>>>>
'--------------------------------------------------------------
TESTA_HALL:
ADCON0.2 = 1 'INICIA CONVERSÃO (bit-2 DO ADCON0 = "1")
CONVERTENDO:
If ADCON0.2 = 1 Then CONVERTENDO ' ESPERA bit-2 DO ADCON0 FICAR "0"
VALOR_AD.highbyte = ADRESH 'MOVE BYTE ALTO DO RESULTADO P/ VALOR_AD
VALOR_AD.lowbyte = ADRESL 'MOVE BYTE BAIXO DO RESULTADO P/ VALOR_AD
'AQUI JÁ TENHO O VALOR DA VARIÁVEL VALOR_AD
RETURN
'-----------------------------------------------------------------
'===============================================================================
RETARDO:
PAUSEUS DELAY
RETURN
End
'-------------------------------------------------------------------------------
' LEDS LIGADOS NO PORTB DE B.0 ATÉ B.6 (A PARTE INFERIOR DO CARACTERE ESTÁ NO B.0, POIS MOTOR COM ROTAÇAO ANTI-HORÁRIA)
'SEMI-CICLO INFERIOR
'A = 063,072,072,072,063,000
'B = 127,073,073,073,054,000
'C = 062,065,065,065,034,000
'D = 127,065,065,034,028,000
'E = 127,073,073,073,065,000
'F = 127,072,072,072,064,000
'G = 062,065,073,073,047,000
'H = 127,008,008,008,127,000
'I = 000,065,127,065,000,000
'J = 002,001,065,126,064,000
'K = 127,008,020,034,065,000
'L = 127,001,001,001,001,000
'M = 127,032,024,032,127,000
'N = 127,016,008,004,127,000
'O = 062,065,065,065,062,000
'P = 127,072,072,072,048,000
'Q = 062,065,069,066,061,000
'R = 127,072,076,074,049,000
'S = 049,073,073,073,070,000
'T = 064,064,127,064,064,000
'U = 126,001,001,001,126,000
'V = 124,002,001,002,124,000
'W = 126,001,006,001,126,000
'X = 099,020,008,020,099,000
'Y = 112,008,007,008,112,000
'Z = 067,069,073,081,097,000
'-------------------------------------------------------------------------------
'0 = 062,069,073,081,062,000
'1 = 000,033,127,001,000,000
'2 = 033,067,069,073,049,000
'3 = 066,065,081,105,070,000
'4 = 012,020,036,127,004,000
'5 = 114,081,081,081,078,000
'6 = 030,041,073,073,006,000
'7 = 064,071,072,080,096,000
'8 = 054,073,073,073,054,000
'9 = 048,073,073,074,060,000
', = 000,005,006,000,000,000
'* = 020,008,062,008,020,000
'! = 000,000,125,000,000,000
'? = 032,064,069,072,048,000
'% = 098,100,008,019,035,000
'& = 054,073,085,034,005,000
'$ = 018,042,127,042,036,000
'# = 020,127,020,127,020,000
'-------------------------------------------------------------------------------
'a = 002,021,021,021,015,000
'b = 127,005,009,009,006,000
'c = 014,017,017,017,002,000
'd = 014,017,017,009,127,000
'e = 014,021,021,021,012,000
'f = 008,063,072,064,032,000
'g = 012,021,021,021,030,000
'h = 127,008,016,016,015,000
'i = 000,017,095,001,000,000
'j = 002,001,017,094,016,000
'k = 127,004,010,017,000,000
'l = 000,065,127,001,000,000
'm = 031,016,031,016,015,000
'n = 031,008,016,016,015,000
'o = 014,017,017,017,014,000
'p = 031,020,020,020,008,000
'q = 008,020,020,012,031,000
'r = 031,008,016,016,008,000
's = 009,021,021,021,002,000
't = 016,126,017,001,002,000
'u = 030,001,001,002,031,000
'v = 028,002,001,002,028,000
'w = 030,001,006,001,030,000
'x = 017,010,004,010,017,000
'y = 024,005,005,005,030,000
'z = 017,019,021,025,017,000
'===============================================================================
'SEMI-CICLO SUPERIOR
'br = 000,000,000,000,000,000 ok
'A = 126,009,009,009,126,000 ok
'B = 054,073,073,073,127,000 ok
'C = 034,065,065,065,062,000 ok
'D = 028,034,065,065,127,000 ok
'E = 065,073,073,073,127,000 ok
'F = 001,009,009,009,127,000 ok
'G = 122,073,073,065,062,000 ok
'H = 127,008,008,008,127,000 ok
'I = 000,065,127,065,000,000 ok
'J = 001,063,065,064,032,000 ok
'K = 065,034,020,008,127,000 ok
'L = 064,064,064,064,127,000 ok
'M = 127,002,012,002,127,000 ok
'N = 127,016,008,004,127,000 ok
'O = 062,065,065,065,062,000 ok
'P = 006,009,009,009,127,000 ok
'Q = 094,033,081,065,062,000 ok
'R = 070,041,025,009,127,000 ok
'S = 049,073,073,073,070,000 ok
'T = 001,001,127,001,001,000 ok
'U = 063,064,064,064,063,000 ok
'V = 031,032,064,032,031,000 ok
'W = 063,064,048,064,063,000 ok
'X = 099,020,008,020,099,000 ok
'Y = 007,008,112,008,007,000 ok
'Z = 067,069,073,081,097,000 ok
'-------------------------------------------------------------------------------
'0 = 062,069,073,081,062,000 ok
'1 = 000,064,127,066,000,000 ok
'2 = 070,073,081,097,066,000 ok
'3 = 049,075,069,065,033,000 ok
'4 = 016,127,018,020,024,000 ok
'5 = 057,069,069,069,039,000 ok
'6 = 048,073,073,074,060,000 ok
'7 = 003,005,009,113,001,000 ok
'8 = 054,073,073,073,054,000 ok
'9 = 030,041,073,073,006,000 ok
', = 000,000,048,080,000,000 ok
'* = 020,008,062,008,020,000 ok
'! = 000,000,095,000,000,000 ok
'? = 006,009,081,001,002,000 ok
'% = 098,100,008,019,035,000 ok
'& = 080,034,085,073,054,000 ok
'$ = 018,042,127,042,036,000 ok
'# = 020,127,020,127,020,000 ok
'-------------------------------------------------------------------------------
'a = 0120,084,084,084,032,000 ok
'b = 048,072,072,080,124,000 ok
'c = 032,068,068,068,056,000 ok
'd = 127,072,068,068,056,000 ok
'e = 024,084,084,084,056,000 ok
'f = 002,001,009,126,008,000 ok
'g = 060,084,084,084,024,000 ok
'h = 120,004,004,008,127,000 ok
'i = 000,064,125,068,000,000 ok
'j = 004,061,068,064,032,000 ok
'k = 000,068,040,016,127,000 ok
'l = 000,064,127,065,000,000 ok
'm = 120,004,124,004,124,000 ok
'n = 120,004,004,008,124,000 ok
'o = 056,068,068,068,056,000 ok
'p = 008,020,020,020,124,000 ok
'q = 124,024,020,020,008,000 ok
'r = 008,004,004,008,0124,000 ok
's = 032,084,084,084,072,000 ok
't = 032,064,068,063,004,000 ok
'u = 124,032,064,064,060,000 ok
'v = 028,032,064,032,028,000 ok
'w = 060,064,048,064,060,000 ok
'x = 068,040,016,040,068,000 ok
'y = 060,080,080,080,012,000 ok
'z = 068,076,084,100,068,000 ok
Thank you
Pimentel


Menu

Re: serial LCD 1602 Backpack using PIC16F690 for Hitach HD44780
one last update:
jackberg1 Yesterday, 17:11added an PGM Sw on RA3
to edit the baud rate:
turn off the LCD display, press & hold the PGM sw, turn on the LCD
line 1 will show "Press to Select" , line 2 : "Baud Rate:"...