Relogio digital através de um PIC16F628a e um LCD 16X2
Circuito do sistema é bem simples ,como mostra a figura a
baixo.Se precisar de ajuda é só comentar.

OBS:Na imagem a cima não aparece aonde deve ligar o polo
positivo e o polo negativo no PIC e no LCD .A do PIC deve ligar o polo positivo
no pino 14 e o polo negativo no pino 5 .Já o o LCD deve-se ver o datasheet do
seu LCD 16x2 ,pois você deve ligar um polo positivo e um negativo e um
potenciometro.Se tiver alguma duvida quanto a isso comente que eu respondo como
fazer essas ligações.
Lógica do sistema
Eu utilizei o PIC C COMPILER para fazer a linguagem em C
como mostra a baixo:
#fuses
INTRC_IO,NOWDT,PUT,BROWNOUT,NOMCLR,NOLVP
#use delay
(clock=4174000)
////4172000
#include
int x;
int y;
int z;
int k;
int t;
int v;
int i;
void main(){
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
lcd_init();
x=48;
y=48;
z=48;
k=48;
t=48;
v=48;
lcd_gotoxy(1,1);
lcd_putc("RELOGIO");
lcd_gotoxy(1,2);
lcd_putc("DIGITAL");
delay_ms(2000);
lcd_gotoxy(1,1);
lcd_putc(" ");
lcd_gotoxy(1,2);
lcd_putc(" ");
delay_ms(10);
lcd_gotoxy(1,1);
lcd_putc("MKK ELE-");
lcd_gotoxy(1,2);
lcd_putc("TRONICA");
delay_ms(2000);
lcd_gotoxy(1,1);
lcd_putc(" ");
lcd_gotoxy(1,2);
lcd_putc(" ");
delay_ms(10);
while(1){
if(!input(pin_a0)){
////HORA
///aumentar hora
if(!input(pin_a7)){
t++;
delay_ms(500);
if(t==58){
v++;
t=48;
}
if((t==52)&&(v==50)){
t=48;
v=48;
}
}
///diminuir hora
if(!input(pin_a3)){
t--;
delay_ms(500);
if(t==47){
v--;
t=57;
if(v==47){
v=50;
t=51;
}
}
if(v==47){
v=48;
}
}
///MINUTO
///aumentar minuto
if(!input(pin_a6)){
z++;
delay_ms(500);
if(z==58){
k++;
z=48;
if(k==54){
k=48;
}
}
if(k==54){
k=48;
}
}
////diminuir minuto
if(!input(pin_a2)){
z--;
delay_ms(500);
if(z==47){
k--;
z=57;
if(k==47){
z=57;
k=53;
}
}
if(k==47){
k=48;
///SEGUNDO
///aumentar segundo
delay_ms(500);
if(y==58){
x++;
y=48;
if(x==54){
x=48;
}
}
if(x==54){
x=48;
}
}
////diminuir segundo
if(!input(pin_a4)){
y--;
delay_ms(500);
if(y==47){
x--;
y=57;
if(x==47){
y=57;
x=53;
}
}
if(x==47){
x=48;
}
}
}
lcd_gotoxy(1,1);
lcd_putc(v);
lcd_gotoxy(2,1);
lcd_putc(t);
lcd_gotoxy(3,1);
lcd_putc(":");
lcd_gotoxy(4,1);
lcd_putc(k);
lcd_gotoxy(5,1);
lcd_putc(z); lcd_gotoxy(6,1);
lcd_putc(":");
lcd_gotoxy(7,1);
lcd_putc(x);
lcd_gotoxy(8,1);
lcd_putc(y);
if(input(pin_a0)){
for(y=48;y<=57;y++){
lcd_gotoxy(8,1);
lcd_putc(y);
delay_ms(1000);
}
if(y=57){
x++;
if(x==54){
x=48;
z++;
if((v==50)&&(t==51)&&(k==53)&&(z==58)&&(y=57)){
x=48;
y=48;
z=48;
k=48;
t=48;
v=48;
}
}
if((z==58)&&(y=57)){
z=48;
k++;
}
if((k==54)&&(y=57)){
k=48;
t++;
}
if((t==58)&&(y=57)){
t=48;
v++;
}
} }
Agora é o código que você deve gravar no seu
microcontrolador PIC16F62a , que é o arquivo .hex
:1000000000308A00272900000A108A100A1182078E
:1000100028340C34013406340A108A100A1182077D
:10002000523445344C344F34473449344F3400341F
:100030000A108A100A11820744344934473449347B
:10004000543441344C3400340A108A100A118207A7
:100050002034203420342034203420342034203400
:1000600000340A108A100A1182074D344B344B3485
:10007000203445344C3445342D3400340A108A1071
:100080000A118207543452344F344E3449344334C5
:10009000413400340A108A100A1182073A340034BD
:1000A0002930840083130008031964280130F80004
:1000B000F701F70B5928F80B58285930F700F70BC0
:1000C0005F280000800B56280034300EF039F7000E
:1000D0000F30060577048600000006146F2806100E
:1000E00000340608F700060E0F39F80000348316B6
:1000F000061086100611831286100F30831606052F
:10010000F0388600831206150000061400007120E6
:100110007808B0000610000006140000712078086E
:10012000AF0006100F308316060586008312300ECE
:10013000F700F030F70577082F04F8007808AF00D3
:10014000AF1B7D282D1C86102D188614000006116B
:10015000000006102E0EAF000F30AF052F08B000C4
:1001600065202E080F39AF00B000652000340F3035
:100170008316060586000610861006118312861067
:10018000061106100F30A90050200130A7002708E3
:10019000033C031CD3280330B00065200530A900C0
:1001A0005020A70AC7280230B00065200530A900FA
:1001B0005020A7012708033C031CE7282708042038
:1001C000A800AD012808AE007720A70ADA284D293B
:1001D0002A0BEB28EE284030AB00EF28AB010130B2
:1001E0002902AB072B088038AC00AD012C08AE000B
:1001F000772000342808073A031908290B3A031915
:100200000D29063A03191529023A03191B29202939
:100210000130A900AA00E8202629AD010130AE0076
:1002200077200230A900502026290130A900023091
:10023000AA00E8202629AD011030AE00772026293B
:100240000130AD002808AE00772026290034840153
:1002500083131F30830583168E15073083129F008A
:1002600083160108C73908388100831290010030D5
:10027000F8009200003083169200073083129F002E
:10028000831605080330F700F70B442983121F0873
:100290000C1383169F018312B7283030A000A100F1
:1002A000A200A300A400A5000130A900AA00E82034
:1002B000A70127080C20003803196229A70AA80003
:1002C000FA2059290130A9000230AA00E820A7012C
:1002D00027081820003803197129A70AA800FA2056
:1002E00068290830A700FA30A9005020A70B73290D
:1002F0000130A900AA00E820A7012708242000381F
:1003000003198629A70AA800FA207D290130A9002F
:100310000230AA00E820A70127082420003803198A
:100320009529A70AA800FA208C290A30A900502094
:100330000130A900AA00E820A701270831200038D1
:100340000319A629A70AA800FA209D290130A900AF
:100350000230AA00E820A70127083E200038031930
:10036000B529A70AA800FA20AC290830A700FA305E
:10037000A9005020A70BB7290130A900AA00E82046
:10038000A7012708242000380319CA29A70AA800B2
:10039000FA20C1290130A9000230AA00E820A701F3
:1003A0002708242000380319D929A70AA800FA2011
:1003B000D0290A30A900502083160514831205188D
:1003C000A62A831685178312851B002AA40A0230E9
:1003D000A700FA30A9005020A70BE92924083A3CCD
:1003E000031DF529A50A3030A4002408343C031D60
:1003F000002A2508323C031D002A3030A400A50045
:100400008316851583128519222AA4030230A700BA
:10041000FA30A9005020A70B082A24082F3C031DFE
:100420001C2AA5033930A40025082F3C031D1C2AD3
:100430003230A5003330A40025082F3C031D222AAA
:100440003030A500831605178312051B422AA20A25
:100450000230A700FA30A9005020A70B2A2A220850
:100460003A3C031D3C2AA30A3030A2002308363C44
:10047000031D3C2A3030A3002308363C031D422ACA
:100480003030A3008316051583120519642AA203D0
:100490000230A700FA30A9005020A70B4A2A2208F0
:1004A0002F3C031D5E2AA3033930A20023082F3CF2
:1004B000031D5E2A3930A2003530A30023082F3CEB
:1004C000031D642A3030A300831685148312851817
:1004D000842AA10A0230A700FA30A9005020A70BF5
:1004E0006C2A21083A3C031D7E2AA00A3030A10064
:1004F0002008363C031D7E2A3030A0002008363C00
:10050000031D842A3030A000831605168312051AB5
:10051000A62AA1030230A700FA30A9005020A70B99
:100520008C2A21082F3C031DA02AA0033930A100EA
:1005300020082F3C031DA02A3930A1003530A0002F
:1005400020082F3C031DA62A3030A0000130A9004E
:10055000AA00E8202508A800FA200230A9000130EE
:10056000AA00E8202408A800FA200330A9000130DE
:10057000AA00E820A70127084A2000380319C42A46
:10058000A70AA800FA20BB2A0430A9000130AA005B
:10059000E8202308A800FA200530A9000130AA00AD
:1005A000E8202208A800FA200630A9000130AA009D
:1005B000E820A70127084A2000380319E32AA70AE0
:1005C000A800FA20DA2A0730A9000130AA00E820A2
:1005D0002008A800FA200830A9000130AA00E8206D
:1005E0002108A800FA20831605148312051C5C2B31
:1005F0003030A1002108393C031C0F2B0830A90022
:100600000130AA00E8202108A800FA200430A70041
:10061000FA30A9005020A70B082BA10AFA2A39307A
:10062000A100A10803195C2BA00A2008363C031D79
:10063000382B3030A000A20A2508323C031D382B8D
:100640002408333C031D382B2308353C031D382B6D
:1006500022083A3C031D382B3930A100A1080319A8
:10066000382B3030A000A100A200A300A400A500F8
:1006700022083A3C031D442B3930A100A10803197C
:10068000442B3030A200A30A2308363C031D502B14
:100690003930A100A1080319502B3030A300A40A5F
:1006A00024083A3C031D5C2B3930A100A108031932
:0C06B0005C2B3030A400A50ADC2963009C
:02400E00503F21
:00000001FF
;PIC16F628A
Como trasnformar esses numeros e letras em arquivo .hex para
você gravar no seu microcontrolador PIC16F628a?
Basta você copiar esses numeros e letras no bloco de
notas.Daí você vai na opção SALVAR COMO .Vai abrir o local que você deseja
salvar.Você escolhe o local e coloca o nome que você quer para o arquivo mas
depois de escrever o nome coloque a expressão ".hex" Exemplo:
relogio.hex
Pronto você ja pode gravar em seu microcontrolador.Eu
utilizo o WINPIC800 para gravar no microcontrolador.
Como funciona o sistema depois de ter feito tudo isso?
Você vai ligar em uma voltagem de 5V.Vai aparecer na tela DO
LCD "RELOGIO DIGITAL MKK ELETRONICA" e logo o relogio
"00:00:00".Para configurar a hora você deve apertar e segurar o botão
"configurar hora e minuto",(no circuito está "configurar hora e
minuto" mas pode configurar o segundo também),e esperar até que a unidade
do segundo chegue a 9 ("00:00:09").Com o botão "configurar hora
e minuto" sempre pressionado vá apertando os outros botões até configurar
a sua hora desejada.
Bom projeto para você!!!
kd o esquema????????
ResponderExcluir