Ola a todos
Como eu prometi aqui o vídeo e atualização do programa e esquema
'****************************************************************
'* Name : UNTITLED.BAS *
'* Author : [Cesar Morisco *
'* Notice : Copyright (c) 2016 [Centraltek] *
'* : All Rights Reserved *
'* Date : 22/08/2016 *
'* Version : 1.0 *
'* Notes : *
'* : *
'****************************************************************
@ DEVICE pic16F628A
@ DEVICE pic16F628A, WDT_OFF
@ DEVICE pic16F628A, PWRT_OFF
@ DEVICE pic16F628A, BOD_OFF
@ DEVICE pic16F628A, PROTECT_OFF
@ DEVICE pic16F628A, MCLR_OFF
@ DEVICE pic16F628A, HS_OSC
DEFINE OSC 12
TRISB=%00000001:PORTB=%00000000
TRISA=%11111111:PORTA=%00000000
CMCON=7
OPTION_REG = %1000000
DEFINE LCD_DREG PORTB
DEFINE LCD_DBIT 4
DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 2
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 3
DEFINE LCD_LINES 2
DEFINE LCD_COMMANDUS 2000
DEFINE LCD_DATAUS 50
TRIAC VAR PORTB.1
TLA VAR WORD
T1 VAR WORD
A VAR BYTE
C VAR BYTE
B VAR BYTE
for A=0 to 45
pause 150
lcdout $fe,1
for C=0 to 15
lookup C,["BY CESAR MORISCO"],B
lcdout $fe,143+C-A,B
next C
C=0
next A
A=0
ON INTERRUPT GOTO ZERO_CROSS
INTCON = %10010000 'habilitar interrupção PORTA B0
OPTION_REG.6=0
TLA=4200
T1=ABS(TLA/42)'100
LOW TRIAC
INICIO:
IF PORTA.2 = 0 THEN gosub BAIXAR
IF PORTA.3 = 0 THEN GOSUB SUBIR
GOTO INICIO
BAIXAR:
IF TLA<=538 THEN GOSUB LIMITE1
TLA=TLA-1
T1=ABS(TLA/42)'12
RETURN
SUBIR:
IF TLA>=4200 THEN GOSUB LIMITE2
TLA=TLA+1
T1=ABS(TLA/42)'100
RETURN
LIMITE1: TLA=538:RETURN
LIMITE2: TLA=4200:RETURN
DISABLE
ZERO_CROSS:
PAUSEUS 150
PAUSEUS TLA 'RETARDO ANTES DEO DISPARO
HIGH TRIAC 'DISPARO DO TRIAC
PAUSEUS 100 'PAUSE DE 100 MILE
LOW TRIAC
INTCON = %10010000
RESUME
ENABLE
END