@ DEVICE pic16F628a, INTRC_OSC_NOCLKOUT
' System Clock Options
@ DEVICE pic16f628a, WDT_On
' Watchdog Timer
@ DEVICE pic16F628a, PWRT_ON
' Power-On Timer
@ DEVICE pic16F628a, BOD_OFF
' Brown-Out Detect
@ DEVICE pic16F628a, MCLR_Off
' Master Clear Options (External)
@ DEVICE pic16F628a, LVP_OFF
' Low-Voltage Programming
@ DEVICE pic16F628a, CPD_OFF
' Data Memory Code Protect
@ DEVICE pic16F628a, PROTECT_OFF
'setto le porte
CMCON= 7
TRISB = 0
input PORTA.1
INPUT PORTA.3
OUTPUT PORTA.2
'definisco le variabili
vel var byte ' velocità motore
temp2 var byte
TEMP3 VAR BYTE
B0 var byte
CLK VAR PORTA.3
STEPS VAR WORD
STEPARRAY VAR BYTE (4)
pause 1000
HIGH PORTA.2
steparray[0]=%00001010
steparray[1]=%00000110
steparray[2]=%00000101
steparray[3]=%00001001
'***************
loop:
IF CLK THEN
if PORTA.1 = 0 then
steps=steps+1
else
steps=steps-1
ENDIF
PORTB = STEPARRAY[steps//4]
ENDIF
While CLK=0:Wend
goto loop