Here is the code use for 12F683
and code for 16F84A:Code:include "modedefs.bas" DEFINE ADC_BITS 10 ' Set number of bits in result DEFINE ADC_CLOCK 3 ' Set clock source (3=rc) DEFINE ADC_SAMPLEUS 50 ' Set sampling time in uS ANSEL = %00111111 ' Set all to A/D, A/D clock = Frc TRISIO = %0011111 ' GP.5 = serial out, rest inputs OSCCON = %01100000 ' Internal 4MHz osc tmp var byte RESULT VAR word[8] ' 8-BYTE ARRAY STORAGE FOR 4 A/D CONVERSIONS J VAR BYTE ' A/D CHANNEL NUMBER BYTE VARIABLE resul var byte datain var GPIO.5 b var byte tmp = 0 MAIN: pause 1000 'Wait for 16F84A send data to LCD tmp = tmp + 1 if tmp > 9 then tmp = 0 for b = 1 to 4 serout2 datain,813,["B",dec tmp] next b goto MAIN
Code:include "modedefs.bas" rly VAR PORTB.7 'relay voltrelay var PORTB.6 'Relay Voltage control datain var PORTB.5 'Read serial data from adc sw1 VAR PORTB.0 sw2 VAR PORTB.1 cont2 VAR byte 'RESULT VAR word typ VAR BYTE b VAR BYTE 'If.. Then.. TRISA = %00000000 TRISB = %00000111 rly = 0 voltrelay = 0 b = 0 typ = 0 vslt: lcdout $fe, 1 pause 50 lcdout "1.Relay Voltage" serin2 datain,813,[WAIT("B"),cont2] lcdout $fe, $c0, "2.Enter", #cont2 goto vslt




Bookmarks