Professional Documents
Culture Documents
end sub
#Le Chaves e manda para Painel
sub procedure Le_Chaves()
Manda_Para_Painel(Chaves_b * 256 + Chaves_d)
end sub
sub procedure Apaga_Registro()
#Pede confirmacao
Usart_Write_Text(chr(13) + "APAGA QUAL REGISTRO" + chr(13))
#Aguarda confirmacao
Usart_Read_Text_new(4)
#Se for sim...
if strtoint(Comando_Mensagem) > Numero_de_Registros then
#Registro invalido
Usart_Write_Text(chr(13) + "REGISTRO INVALIDO" + chr(13))
else
#Tranforma de string para byte
index = strtoint(Comando_Mensagem)
#Apaga
SI2C_Write(index*Tam_Registro,0x00)
Usart_Write_Text(chr(13) + "REGISTRO APAGADO" + chr(13))
end if
end sub
#Mostra Menus de operacao sobre mensagens
#Aguarda opcao de menu
sub procedure Menu()
while TRUE
#ENTRE COM UM COMANDO
Usart_Write_Text("Entre com o comando:"+ chr(13))
#AGUARDA ENTRADA
while Usart_Data_Ready() = 0
wend
#Aguarda comando
Usart_Read_Text_new(11)
#Usart_Write_Text(Comando_Mensagem)
#Se Comando for ERASE
if strstr(Comando_Mensagem,"ERASE ALL") = 0 then
Apaga_todos_registros()
else
#Se Comando for HELP
if strstr(Comando_Mensagem,"HELP") = 0 then
Usart_Write_Text(chr(13)+ "Painel de Mensagens - DBASE II SINTAX" + chr
(13))
Usart_Write_Text("-------------------------------------" + chr(13))
Usart_Write_Text("ERASE ALL,ERASE,GOTO BOTTON,GOTO TOP,DISPLAY,EDIT,LIS
T ALL,HELP,GOTO, PAINEL, EXIT" + chr(13))
else
#Se Comando for GOTO TOP
if strstr(Comando_Mensagem,"GOTO TOP") = 0 then
index = Numero_de_Registros
Usart_Write_Text(chr(13) + "NO TOPO" + chr(13))
else
#Se Comando for GOTO TOP
if strstr(Comando_Mensagem,"GOTO BOTTON") = 0 then
index = 0
Usart_Write_Text(chr(13) + "NA BASE" + chr(13))
else
#Se Comando for DISPLAY
if strstr(Comando_Mensagem,"DISPLAY") = 0 then
Mostra_Registro()
else
#Se Comando for EDIT
if strstr(Comando_Mensagem,"EDIT") = 0 then
Edita_registro()
else
#Se Comando for LIST
if strstr(Comando_Mensagem,"LIST ALL") = 0 t
hen
Lista_Todos_Registros()
else
if strstr(Comando_Mensagem,"GOTO") = 0 th
en
Vai_Para_um_registro()
else
if strstr(Comando_Mensagem,"PAINEL") =
0 then
Manda_Para_Painel(index)
txt_cat[0] = 13
Usart_Write_Text(txt_cat)
else
if strstr(Comando_Mensagem,"ERASE")
= 0 then
Apaga_Registro()
else
if strstr(Comando_Mensagem,"EXIT"
) = 0 then
Usart_Write_Text(chr(13) + "V
OLTANDO AO PAINEL" + CHR(13))
goto sai_menu
else
Usart_Write_Text(chr(13) + "C
OMANDO INVALIDO!!!" + CHR(13))
end if
end if
end if
end if
end if
end if
end if
end if
end if
end if
end if
wend
sai_menu:
end sub
main:
#Define Portc como saida
TRISC = 0x80
#Define PORTD E PORTB (MSB) com entrada (Selecao Mensagem)
TRISD = 0xFF
TRISB = 0xFF
#Inicializa SPI para conversar com o MAX6952
#SPI_INIT
#Inicializa MAX6952
MAX_6952_init
#Inicializa SOFT I2C
I2C_Init(100000)
#Usart Init 19200, para comunicacao com PC
Usart_Init(19200)
#Index para mensagens recebe 0
index = 0
#Seleciona_Mensagem()
#Menu()
#Seleciona_Mensagem_Imprime()
while 1 = 1
#SE NAO PRESSIONADO UMA TECLA
if Usart_Data_Ready = 0 then
#FICA MOSTRANDO NO PAINEL
Le_Chaves()
else
#SE FOI PRESSIONADO, VERIFICA SE FOI A LETRA "U"
if Usart_Read = "U" then
#APRESENTA MENUS
Menu()
end if
end if
wend
end.