//Calibrador p70
//
#include <16F628.h>
#device *=16
///3505-2871
#FUSES NOWDT
#FUSES INTRC_IO
#FUSES PUT
#FUSES PROTECT=3
#FUSES BROWNOUT
#FUSES NOMCLR
#FUSES NOLVP
#FUSES NOCPD
//
#use delay(clock=4000000)
#use rs232(baud=9600,parity=E,xmit=PIN_a0,rcv=PIN_a1,bits=8)
//#use rs232(baud=9600,parity=N,xmit=PIN_a0,rcv=PIN_a1,bits=8)
#define use_portb_lcd TRUE
#include <lcd1.c>
#include <stdlib.h>
#use FAST_IO(A)
#use FAST_IO(B)
#byte porta=0x05
#byte portb=0x06
#byte trisb = 0x86
#byte trisa = 0X85
#byte sai=0xff
#bit botao1=porta.7
#bit botao2=porta.6
#bit botao3=porta.5
#bit Rele_Reset=porta.3
#bit Rele_Grava=porta.2
#bit tristx=trisa.0
#bit bittx=porta.0
#bit trisb3=trisb.3
char versao[20];
char wversao[1];
byte data;
byte wdata[6];
int k,i,l,c;
void p70()
{
rele_reset = 0;
rele_grava = 0;
trisb = 1;
lcd_putc("\f");
lcd_gotoxy(1,1);
lcd_putc("3-Atual 1-Versao");
lcd_gotoxy(1,2);
lcd_putc("2-Teste/Calibra");
botao1 = 1;
while (1)
{
if (botao2 == 0) {
lcd_putc("\f");
lcd_gotoxy(1,1);
lcd_putc(" Lendo EPROM ");
Rele_Reset = 1;
delay_ms(1200);
Rele_Reset = 0;
lcd_putc("\f");
lcd_gotoxy(1,1);
l = 1;
c = 1;
for (i=1;i<=23;++i) {
wversao[0] = getc();
if (i > 3) {
versao[i-3] = wversao[0];
};
};
for (i=1;i<=20;i++) {
lcd_gotoxy(c,l);
lcd_putc(versao);
c++;
if (c==16) {
l = 2;
c=1;
};
};
while (Botao3 == 1) {
};
while (Botao3 == 0) {
};
reset_cpu();
};
if (Botao1 == 0) {
Rele_Grava = 1;
lcd_putc("\f");
lcd_gotoxy(1,1);
lcd_putc(" Modo Atualiza ");
lcd_gotoxy(1,2);
lcd_putc("1-Reset 2-Sair ");
botao1 = 1;
while (Botao3 == 1) {
if (Botao2 == 0) {
Rele_Reset = 1;
delay_ms(600);
};
if (Botao2 == 1) {
Rele_Reset = 0;
};
};
reset_cpu();
};
if (Botao3 == 0) {
lcd_putc("\f");
lcd_gotoxy(1,1);
lcd_putc("3- Testa Motor");
lcd_gotoxy(1,2);
lcd_putc("1-Calibra 2-Sai");
k = 0;
delay_ms(1000);
while (Botao3 == 1) {
if (Botao2 == 0) {
lcd_putc("\f");
lcd_gotoxy(1,1);
lcd_putc(" Modo Calibrar ");
putc(110);
delay_ms(1000);
putc(20);
delay_ms(1000);
lcd_gotoxy(1,2);
lcd_putc("Inserir a Folha");
while (Botao3 == 1) {
};
rele_reset = 1;
delay_ms(1000);
reset_cpu();
};
if (Botao1 == 0) {
lcd_putc("\f");
lcd_gotoxy(1,1);
lcd_putc("Veloci. Frente ");
putc(110);
delay_ms(1000);
putc(25);
delay_ms(1000);
putc(01);
for (i=1;i<=100;++i) {
data = getc();
lcd_gotoxy(0,2);
printf(LCD_PUTC, " %u",data);
//delay_ms(1);
};
putc(99);
lcd_putc("\f");
lcd_putc("Veloci. Tras ");
lcd_gotoxy(1,1);
putc(110);
delay_ms(1000);
putc(25);
delay_ms(1000);
putc(02);
for (i=1;i<=100;++i) {
data = getc();
lcd_gotoxy(0,2);
printf(LCD_PUTC, " %u",data);
//delay_ms(1);
};
putc(99);
lcd_putc("\f");
lcd_gotoxy(1,1);
lcd_putc("1- Testa Motor");
lcd_gotoxy(1,2);
lcd_putc("2-Calibra 3-Sai");
Botao3 == 0;
k == 0;
};
};
while (botao3==0) {
delay_us(1);
};
reset_cpu();
};
}
}
void bl700() {
putc(51);
putc(00);
delay_ms(1000);
putc(10);
putc(56);
putc(00);
delay_ms(1000);
lcd_putc("\f");
lcd_gotoxy(1,1);
lcd_putc("Insira o cartao");
lcd_gotoxy(1,2);
lcd_putc("Menu para Cont.");
while (botao1 == 1) {
delay_us(100);
};
delay_ms(500);
lcd_putc("\f");
lcd_gotoxy(1,1);
putc(00);
k = 0;
lcd_putc(" 1 2 3 - 4 5 6");
while (botao1 == 1) {
do {
data = getc();
} while (data==0) ;
k = k + 1;
if (k==5) {
wdata[0] = data;
};
if (k==6) {
wdata[1] = data;
};
if (k==7) {
wdata[2] = data;
};
if (k==8) {
wdata[3] = data;
};
if (k==9) {
wdata[4] = data;
};
if (k==10) {
wdata[5] = data;
};
if (k>=16) {
lcd_gotoxy(1,2);
printf(LCD_PUTC, " %X%X%X - %X%X%X",wdata[0],wdata[1],wdata[2],wdata[3],wdata[4],wdata[5]);
k = 0;
delay_ms(400);
putc(00);
};
if (botao3 == 0) {
Reset_cpu();
};
};
putc(00);
lcd_putc("\f");
lcd_gotoxy(0,1);
lcd_putc(" Retire a folha ");
putc(255);
delay_ms(1000);
putc(10);
putc(56);
putc(255);
delay_ms(2000);
reset_cpu();
}
void Main() {
rele_reset = 0;
rele_grava = 0;
lcd_init();
lcd_gotoxy(1,1);
lcd_putc(" calibrador ");
lcd_gotoxy(1,2);
lcd_putc("1-P70 2-BL700");
botao1 = 1;
botao2 = 1;
botao3 = 1;
while (1)
{
if (botao1 == 0) {
delay_ms(100);
if (botao1 == 0) {
while (botao1 == 0) {
};
p70();
};
};
if (botao3 == 0) {
while (botao3 == 0) {
};
bl700();
};
};
reset_cpu();
}
existe algum erro??? pois ele não esta fazendo 2 funções que seria "lendo eprom" e "modo calibrar" no void p70(){