----------------------------------------------------------------------- ----------------------------------------------------------------------- Simple program: '{$STAMP BS1} ' SYMBOL Z = B0 ' LETS DECLARE A VARIABLE SYMBOL Y = W2 ' LETS DECLARE A VARIABLE ' Z=4 ' SET PULSE WIDTH FOR 40uSecs LOW 6 ' SET PIN 6 TO OUPUT LOW ' MAIN: ' FOR Y=1 TO 65000:PULSOUT 6, Z:NEXT Y ' MAKE THE FET WORK GOTO MAIN: ----------------------------------------------------------------------- More complex program that employs the use of two thermistors (Air and FET) and drives the FET to 10DEG F over ambient air temps. Comment out the debug report to make it run a tad faster '{$STAMP BS1} ' ' HIVOLT3.BAS ' DESULFATOR WITH THERMISTOR MONITORS ' ' 10k RADIO SHACK THERMISTOR HAS A NEGATIVE TEMPERATURE ' COEFFICIENT ' ' ROOM TEMPERATURE POT CALIBRATION READINGS (255 SCALE) = 55 ' 50=72 DEG ' 40=92 DEG ' 30=103 DEG ' ' SYMBOL Z = B0 ' PULSE DURATION SYMBOL Y = W4 ' FOR/NEXT LOOP COUNTER SYMBOL X = W5 ' POT VARIABLE OR THERMISTOR READING SYMBOL W = B1 ' PULSE WIDTH DEBUG REPORT VARIABLE SYMBOL V = B2 ' DESIRED DIFFERENCE READING SYMBOL U = B3 ' POT VARIABLE OF AMBIENT AIR TEMPERATURE SYMBOL T = B4 ' DIFFERENCE TEMP SYMBOL S = W6 ' SNOWBALL DECELERATOR V=10 ' SET THE DESIRED DIFFERENCE TEMP LOW 6 ' SET PIN 6 TO OUPUT LOW Z=1 ' SET INITIAL PULSE WIDTH TO 10 MICROSECONDS S=2000 ' SET INITAL VALUE FOR THE SNOWBALL DECELERATOR MAIN: POT 0, 255, X ' LETS READ THE FET TEMP POT 1, 255, U ' LETS READ AMBIENT AIR TEMP IF U=<0 THEN QUIT: ' IF AMBIENT AIR THERMISTOR OPENS THEN QUIT IF X=<0 THEN QUIT: ' IF THE FET THERMISTOR OPENS THEN QUIT T=U-X IF T=<0 THEN INC: IF T>V THEN DEC: ' IF THE DIFFERENCE IS TOO HIGH THEN DEC IF T1000 THEN DEC: ' LETS SET AN ARBITRARY LIMIT ON PULSE WIDTH GOTO LOOP: INCC: ' INCREMENT THE SNOWBAL DECELERATOR S=S+2500 ' LETS PUT ON THE BRAKES AND EASE ON UP TO REGULATED PULSE WIDTH GOTO MAIN: QUIT: DEBUG "AMBIENT THERMISTOR VALUE IS ", #U, CR DEBUG "FET THERMISTOR VALUE IS ", #X, CR DEBUG "MICRO HALTED" END