include "modedefs.bas" define osc 8 DEFINE LCD_DREG PORTB DEFINE LCD_DBIT 4 DEFINE LCD_BITS 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 40 Define ADC_BITS 10 ' Broj bita Define ADC_CLOCK 20/8 ' Klok (0=Oscilator /8) ' Set receive register to receiver enabled DEFINE HSER_RCSTA 90h ' Set transmit register to transmitter enabled DEFINE HSER_TXSTA 20h ' Set baud rate DEFINE HSER_BAUD 4800 ' Set SPBRG directly (normally set by HSER_BAUD) DEFINE HSER_SPBRG 25 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 Napon_1 var word Napon_2 var word Napon_3 var word Napon_4 var word Napon_5 var word Napon_6 var word Napon_7 var word Napon_8 var word Dummy_1 var byte Dummy_2 var byte Dummy_3 var byte Dummy_4 var byte Dummy_5 var byte Dummy_6 var byte Dummy_7 var byte Dummy_8 var byte i var bit USBBufferSizeMax con 18 'maksimalna velicina bafera USBBufferSizeTX con 18 'Ulaz USBBufferSizeRX con 18 'IZlaz test var byte 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, '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 ' Lcdout $fe, 1 ' Izbrisi ceo LCD displej ' Lcdout $fe, 2 ' Pozicioniraj se na prvi red prvi karakter ' Lcdout " AD KONVERTOR" ' Ispisi "AD KONVERTOR" u prvom redu ' Lcdout $fe, $C0 ' Podesi kursor na pocetak drugog reda ' Lcdout "sa 2 kanala" ' Ispisi dati tekst u drugom redu displeja ' Pause 5000 ' Pauza 5 sec ' ' ' Lcdout $fe, 1 ' Izbrisi ceo LCD displej ' Lcdout $fe, 2 ' Pozicioniraj se na prvi red prvi karakter ' Lcdout " A/D kanal br.1" ' Ispisi “A/D kanal br.1 u prvom redu ' ' ' Izvrsi konverziju na RA2 i 16 bita i ' ' rezultat smesti u AD_Rez. ' Lcdout $fe, $C0 ' Podesi kursor na pocetak drugog reda ' Dummy_1 = AD_Rez_1 * 5 * 100 ' Napon_1 = Div32 1023 ' Lcdout $fe, $C0 ' Podesi kursor na pocetak drugog reda ' Lcdout " Napon:", DEC Napon_1 DIG 2,".", DEC2 Napon_1, "V" ' Pause 5000 ' Pauza 10 sec ' Lcdout $fe, 1 ' Izbrisi ceo LCD displej ' Lcdout $fe, 2 ' Pozicioniraj se na prvi red prvi karakter ' Lcdout " A/D kanal br.2" ' Ispisi “A/D kanal br.2 u prvom redu ' ' Lcdout $fe, $C0 ' Podesi kursor na pocetak drugog reda ' Dummy_2 = AD_Rez_2 * 5 * 100 ' Napon_2 = Div32 1023 ' Lcdout $fe, $C0 ' Podesi kursor na pocetak drugog reda ' Lcdout " Napon:", DEC Napon_2 DIG 2,".", DEC2 Napon_2, "V" ' Pause 5000 ' 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[0]] hserout [dec usbbuffer[1]] hserout [dec usbbuffer[2]] hserout [dec usbbuffer[3]] hserout [dec usbbuffer[4]] hserout [dec usbbuffer[5]] hserout [dec usbbuffer[6]] hserout [dec usbbuffer[7]] hserout [dec usbbuffer[8]] hserout [dec usbbuffer[9]] hserout [dec usbbuffer[10]] hserout [dec usbbuffer[11]] hserout [dec usbbuffer[12]] hserout [dec usbbuffer[13]] hserout [dec usbbuffer[14]] hserout [dec usbbuffer[15]] hserout [dec usbbuffer[16]] high porte.0 pause 100 low porte.0 pause 100 high porte.0 pause 100 low porte.0 pause 100 high porte.0 pause 100 low porte.0 pause 100 RETURN