'**************************************************************** '* Name : UNTITLED.BAS * '* Author : Milan Obradovic * '* Notice : Copyright (c) 2010 milan.obrad@gmail.com * '* : All Rights Reserved * '* Date : 6.7.2010 * '* Version : 1.0 * '* Notes : * '* : * '**************************************************************** include "modedefs.bas" define osc 20 Define ADC_BITS 10 ' Broj bita Define ADC_CLOCK 1 ' Klok (0=Oscilator /8) ' Set receive register to receiver enabled DEFINE HSER_RCSTA 90h ' Set transmit register to transmitter enabled ' Set baud rate DEFINE HSER_BAUD 2400 ' Set SPBRG directly (normally set by HSER_BAUD) DEFINE HSER_SPBRG 129 'txsta = %00100010 AD_Rez_1 var word 'rezultat ad konverzije AD_Rez_2 var word 'rezultat ad konverzije AD_Rez_3 var word 'rezultat ad konverzije AD_Rez_4 var word 'rezultat ad konverzije AD_Rez_5 var word 'rezultat ad konverzije AD_Rez_6 var word 'rezultat ad konverzije AD_Rez_7 var word 'rezultat ad konverzije AD_Rez_8 var word 'rezultat ad konverzije i var bit USBBufferSizeMax con 18 'maksimalna velicina bafera USBBufferSizeTX con 18 'Ulaz USBBufferSizeRX con 18 'IZlaz test var word USBBuffer var byte[USBBufferSizeMaX] USBBufferCount var byte 'Odabiranje pojedinih AD kanala ADCON0 = %0000001 'KANAL1 ADCON0 = %0000101 'KANAL2 ADCON0 = %0001001 'KANAL3 ADCON0 = %0001101 'KANAL4 ADCON0 = %0010001 'KANAL5 ADCON0 = %0010101 'KANAL6 ADCON0 = %0011001 'KANAL7 ADCON0 = %0011101 'KANAL8 pAUSE 500 TRISA = %11111111 'PORT A JE ULAZNI ADCON1 = %10000010 'PORT A JE U ANALOGNOM MODU, low porte.0 'REZULTAT JE DESNO FORMATIRAN, '0 I 5 SU REFERENTNI NAPONI. pause 500 Pocetak: ProgramStart: GOsub DoSerIn goto ProgramStart DoSerIn: usbbuffercount = usbbuffersizerx hserin [dec3 usbbuffer[0]] if usbbuffer[0] = 254 THEN gosub DoSerOut endif return DoSerOut: usbbuffercount = usbbuffersizetx USBBuffer[0] = 254 'REALIZACIJA AD KONVERZIJE adcin 0, ad_rez_3 'izvrsi konverziju na RA0 i 10 bita 'rezultata smesti u AD_rez_1 adcin 1, ad_rez_4 'izvrsi konverziju na RA1 i 10 bita 'rezultata smesti u AD_rez_2 adcin 2, ad_rez_1 'izvrsi konverziju na RA2 i 10 bita 'rezultata smesti u AD_rez_3 adcin 3, ad_rez_2 'izvrsi konverziju na RA3 i 10 bita 'rezultata smesti u AD_rez_4 adcin 4, ad_rez_5 'izvrsi konverziju na RA4 i 10 bita 'rezultata smesti u AD_rez_5 adcin 5, ad_rez_6 'izvrsi konverziju na RA5 i 10 bita 'rezultata smesti u AD_rez_6 adcin 6, ad_rez_7 'izvrsi konverziju na RA6 i 10 bita 'rezultata smesti u AD_rez_7 adcin 7, ad_rez_8 'izvrsi konverziju na RA7 i 10 bita 'rezultata smesti u AD_rez_8 usbbuffer[1] = ad_rez_1.lowbyte 'Nizi bajt rezultata smesti 'u USBBuffer[1] usbbuffer[2] = ad_rez_1.Highbyte 'Nizi bajt rezultata smesti 'u USBBuffer[1] usbbuffer[3] = ad_rez_2.lowbyte 'Nizi bajt rezultata smesti 'u USBBuffer[1] usbbuffer[4] = ad_rez_2.highbyte 'Nizi bajt rezultata smesti 'u USBBuffer[1] usbbuffer[5] = ad_rez_3.lowbyte 'Nizi bajt rezultata smesti 'u USBBuffer[1] usbbuffer[6] = ad_rez_3.highbyte 'Nizi bajt rezultata smesti 'u USBBuffer[1] Usbbuffer[7] = ad_rez_4.lowbyte 'Nizi bajt rezultata smesti 'u USBBuffer[1] usbbuffer[8] = ad_rez_4.highbyte 'Nizi bajt rezultata smesti 'u USBBuffer[1] usbbuffer[9] = ad_rez_5.lowbyte 'Nizi bajt rezultata smesti 'u USBBuffer[1] usbbuffer[10] = ad_rez_5.Highbyte 'Nizi bajt rezultata smesti 'u USBBuffer[1] usbbuffer[11] = ad_rez_6.lowbyte 'Nizi bajt rezultata smesti 'u USBBuffer[1] usbbuffer[12] = ad_rez_6.highbyte 'Nizi bajt rezultata smesti 'u USBBuffer[1] usbbuffer[13] = ad_rez_7.lowbyte 'Nizi bajt rezultata smesti 'u USBBuffer[1] usbbuffer[14] = ad_rez_7.highbyte 'Nizi bajt rezultata smesti 'u USBBuffer[1] Usbbuffer[15] = ad_rez_8.lowbyte 'Nizi bajt rezultata smesti 'u USBBuffer[1] usbbuffer[16] = ad_rez_8.highbyte 'Nizi bajt rezultata smesti 'u USBBuffer[1] hserout [dec usbbuffer[1]] timeout2: hserin 5000,timeout2, [dec3 test] if test = 444 then hserout [dec usbbuffer[2]] endif High porte.0 timeout3: hserin 5000,timeout3, [dec3 test] if test = 444 then hserout [dec usbbuffer[3]] endif low porte.0 timeout4: hserin 5000,timeout4, [dec3 test] if test = 444 then hserout [dec usbbuffer[4]] endif High porte.0 timeout5: hserin 5000,timeout5, [dec3 test] if test = 444 then hserout [dec usbbuffer[5]] endif low porte.0 timeout6: hserin 5000,timeout6, [dec3 test] if test = 444 then hserout [dec usbbuffer[6]] endif High porte.0 timeout7: hserin 5000,timeout7, [dec3 test] if test = 444 then hserout [dec usbbuffer[7]] endif low porte.0 timeout8: hserin 5000,timeout8, [dec3 test] if test = 444 then hserout [dec usbbuffer[8]] endif High porte.0 timeout9: hserin 5000,timeout9, [dec3 test] if test = 444 then hserout [dec usbbuffer[9]] endif low porte.0 timeout10: hserin 5000,timeout10, [dec3 test] if test = 444 then hserout [dec usbbuffer[10]] endif High porte.0 timeout11: hserin 5000,timeout11, [dec3 test] if test = 444 then hserout [dec usbbuffer[11]] endif low porte.0 timeout12: hserin 5000,timeout12, [dec3 test] if test = 444 then hserout [dec usbbuffer[12]] endif High porte.0 timeout13: hserin 5000,timeout13, [dec3 test] if test = 444 then hserout [dec usbbuffer[13]] endif low porte.0 timeout14: hserin 5000,timeout14, [dec3 test] if test = 444 then hserout [dec usbbuffer[14]] endif High porte.0 timeout15: hserin 5000,timeout15, [dec3 test] if test = 444 then hserout [dec usbbuffer[15]] endif low porte.0 timeout16: hserin 5000,timeout16, [dec3 test] if test = 444 then hserout [dec usbbuffer[16]] endif high porte.0 RETURN