Professional Documents
Culture Documents
Zadaci
Zadaci
1
Naziv vježbe: Izrada projekta kontrole 7-segmentnih displeja
DIO 1.
1. Uvodni dio
Zadatak:
Potrebno je realizirati program za mikrokontroler PIC16F887 koji će na portovima od
PORTA do PORTD paliti i gasiti led diode u vremenskom razmaku od 1s. Pomoću kompajlera
prevesti kôd u HEX format. Nakon toga izvršiti simulaciju hardverskog sistema u
programskom paketu Proteus i potvrditi ispravnost napisanog programa učitavanjam u
mikrokontroler. Otkloniti eventualne greške u programskom kodu.
Implementacija rješenja:
U programskom paketu mikroC napraviti projekat pod nazivom LedBlink na slijedeći
način:
1
Dati ime projektu i spremiti ga u za tu namjenu predviđen folder na D: disku (IV1-4 -
>MikroC->LedBlink)
2
Sastaviti shemu prema slijedećoj slici.
U1
1 15
RE3/MCLR/VPP RC0/T1OSO/T1CKI
16
RC1/T1OSI/CCP2
2 17
RA0/AN0/ULPW U/C12IN0- RC2/P1A/CCP1
R1 R2 R3 R4 R5 R6 3
RA1/AN1/C12IN1- RC3/SCK/SCL
18 R17 R18 R19 R20 R21 R22 R23 R24
1k 1k 1k 1k 1k 1k 4 23 1k 1k 1k 1k 1k 1k 1k 1k
RA2/AN2/VREF-/CVREF/C2IN+ RC4/SDI/SDA
5 24
RA3/AN3/VREF+/C1IN+ RC5/SDO
6 25
RA4/T0CKI/C1OUT RC6/TX/CK
7 26
RA5/AN4/SS/C2OUT RC7/RX/DT
14
RA6/OSC2/CLKOUT
D17 D18 D19 D20 D21 D22 13
RA7/OSC1/CLKIN RD0
19 D7 D6 D5 D1 D2 D3 D4 D8
LED-BIRG
LED-BIRG
LED-BIRG
LED-BIRG
LED-BIRG
LED-BIRG 20 LED-BIBY
LED-BIBY
LED-BIBY
LED-BIBY
LED-BIBY
LED-BIBY
LED-BIBY
LED-BIBY
RD1
33 21
RB0/AN12/INT RD2
34 22
RB1/AN10/C12IN3- RD3
35 27
RB2/AN8 RD4
36 28
RB3/AN9/PGM/C12IN2- RD5/P1B
37 29
RB4/AN11 RD6/P1C
38 30
RB5/AN13/T1G RD7/P1D
39
RB6/ICSPCLK
40 8
RB7/ICSPDAT RE0/AN5
9
RE1/AN6
10
RE2/AN7
PIC16F887
R9 R10 R11 R12 R13 R14 R15 R16 R25 R26 R27 R28 R29 R30 R31 R32
1k 1k 1k 1k 1k 1k 1k 1k 1k 1k 1k 1k 1k 1k 1k 1k
D25 D26 D27 D28 D29 D30 D31 D32 D16 D9 D10 D11 D12 D13 D14 D15
LED-BIRY
LED-BIRY
LED-BIRY
LED-BIRY
LED-BIRY
LED-BIRY
LED-BIRY
LED-BIRY LED-BIGY
LED-BIGY
LED-BIGY
LED-BIGY
LED-BIGY
LED-BIGY
LED-BIGY
LED-BIGY
3
Podesiti frekvenciju oscilatora na 8MHz i pokrenuti simulaciju klikom na
dugme Play u donjem lijevom uglu.
Zadaća:
Korištenjem User Manual-a za mikrokontroler PIC16F887 skicirati i ukratko
objasniti ulogu konfiguracijskih registara korištenih u ovom primjeru (TRISA,
TRISB, TRISC, TRISD).
U help-u mikroC-a pronaći funkciju Delay_ms() i dokumentirati njen način
korištenja.
Objasniti način rada do-while beskonačne petlje. Zašto je ova petlja specifična
kod sistema baziranih na mikrokontrolerima.
Na internetu pronaći jednostavne primjere korištenja 7-segmentnih displeja i
tastera kod sistema sa mikrokonrolerima.
4
2. DIO 7-segmentni display – Implementacija rješenja
Zadatak:
Potrebno je osmisliti algoritam upravljanja sa 7-segmentnim display-om. Detaljno
analizirati rad diplay-a, nacrtati njegovu internu shemu, nacrtati tablicu kombinacija
za paljenja pojedinih segmenata u heksadecimalnom i binarnom sistemu. Napisati
programski kod prema tabelama u programskom paketu MikroC, kompajlirati i
provjeriti njegovu ispravnost u Proteusu.
Rješenje:
5
decimalnim brojevima sa lijeve strane tabele, odnosno redosljedu paljenja
segmenata da bi se prikazala svaka pojedinačna decimalna cifra.
void main() {
INTCON = 0; //Isključi GIE, PEIE,INTE,RBIE,T0IE
PORTA = 0;
TRISA = 0;
PORTD = 0;
TRISD = 0;
do {
for (i = 0; i <= 9; i++) {//Brojačka petlja
PORTA = 1; //Upali tranzistor i omogući
paljenje segmenata
PORTD = maska(i); //Postavi odgovarajuću
kombinaciju na PORTD
6
Delay_ms(500);
}
} while (1); //Beskonačna petlja
}
//Tijelo funkcije maska
unsigned short maska(unsigned short kombinacija) {
switch (kombinacija) {
case 0 : return 0x3F;
case 1 : return 0x06;
case 2 : return 0x5B;
case 3 : return 0x4F;
case 4 : return 0x66;
case 5 : return 0x6D;
case 6 : return 0x7D;
case 7 : return 0x07;
case 8 : return 0x7F;
case 9 : return 0x6F;
}
}
U1
1 15
RE3/MCLR/VPP RC0/T1OSO/T1CKI
16
RC1/T1OSI/CCP2
2 17
RA0/AN0/ULPWU/C12IN0- RC2/P1A/CCP1
3 18
RA1/AN1/C12IN1- RC3/SCK/SCL
4 23
RA2/AN2/VREF-/CVREF/C2IN+ RC4/SDI/SDA
5 24
RA3/AN3/VREF+/C1IN+ RC5/SDO
6 25
RA4/T0CKI/C1OUT RC6/TX/CK
7 26
14
RA5/AN4/SS/C2OUT RC7/RX/DT RN1
RA6/OSC2/CLKOUT
13 19 1 16
RA7/OSC1/CLKIN RD0
20 2 15
RD1
33 21 3 14
RB0/AN12/INT RD2
34 22 4 13
RB1/AN10/C12IN3- RD3
35 27 5 12
RB2/AN8 RD4
36 28 6 11
RB3/AN9/PGM/C12IN2- RD5/P1B
37 29 7 10
RB4/AN11 RD6/P1C
38 30 8 9
RB5/AN13/T1G RD7/P1D
39
RB6/ICSPCLK
40 8 330
RB7/ICSPDAT RE0/AN5
9
RE1/AN6
10
RE2/AN7
PIC16F887
R1 Q1
2N2222
2k
Zadaća:
7
Napisati program koji će ispisivati dvocifrene brojeve na dva 7-seg display-a
shifter <<= 1; do {
if (shifter > 8) cifra = broj / 1000 ;
shifter = 1; PORTD_niz[3] = maska(cifra);
cifra = (broj / 100) % 10;
portd_index++ ; PORTD_niz[2] = maska(cifra);
if (portd_index > 3) cifra = (broj / 10) % 10;
portd_index = 0; PORTD_niz[1] = maska(cifra);
8
cifra = broj % 10; broj++ ;
PORTD_niz[0] = maska(cifra); if (broj > 9999)
broj = 0;
Delay_ms(100); } while(1);
}
U1
1 15
RE3/MCLR/VPP RC0/T1OSO/T1CKI
16
RC1/T1OSI/CCP2
2 17
RA0/AN0/ULPWU/C12IN0- RC2/P1A/CCP1
3 18
RA1/AN1/C12IN1- RC3/SCK/SCL
4 23
RA2/AN2/VREF-/CVREF/C2IN+ RC4/SDI/SDA
5 24
RA3/AN3/VREF+/C1IN+ RC5/SDO
6 25
RA4/T0CKI/C1OUT RC6/TX/CK
7 26
14
RA5/AN4/SS/C2OUT RC7/RX/DT RN1
RA6/OSC2/CLKOUT
13 19 1 16
RA7/OSC1/CLKIN RD0
20 2 15
RD1
33 21 3 14
RB0/AN12/INT RD2
34 22 4 13
RB1/AN10/C12IN3- RD3
35 27 5 12
RB2/AN8 RD4
36 28 6 11
RB3/AN9/PGM/C12IN2- RD5/P1B
37 29 7 10
RB4/AN11 RD6/P1C
38 30 8 9
RB5/AN13/T1G RD7/P1D
39
RB6/ICSPCLK
40 8 330
RB7/ICSPDAT RE0/AN5
9
RE1/AN6
10
RE2/AN7
PIC16F887
R1 Q1 R2 Q2 R3 Q3 R4 Q4
2N2222A 2N2222A 2N2222A 2N2222A
330 330 330 330
Zadatak:
Korištenjem potenciometra spojenog na izvor istosmjernog napona, izvršiti mjerenje
napona pomoću AD konvertora. Izmjereni napon, u osnovnom obliku (od 0 do 1023) prikazati
na 7-segmentnom displeju. Kao ulaz za AD konverziju koristiti pin RB4.
9
Laboratorijska vježba br.2
Naziv vježbe: Izrada projekta kontrole 2x16 matričnog (LCD) displeja
1. Uvodni dio
Zadatak: Potrebno je osmisliti shemu spoja i napisati program koji će na LCD displej-u
ispisivati zadate poruke. Shema treba da se sastoji od mikrokontrolera PIC16F887 na čijem
PORTu-B treba da je spojen LCD displej (2x16) baziran na Hitachi HD44780 kontroleru.
Program treba da koristi gotove funkcije MikroC kompajlera za rad sa LCD displej-ima. Svaku
od funkcija je potrebno detaljno analizirati i komentirati.
Implementacija rješenja:
Na osnovu napisanog programa u programskom paketu Proteus nacrtati shemu spoja
zadatog sklopa. Pomoću zadate literature (Pic Mcu Input And Output Device Interfacing) definisati
svaki pojedini pin na LCD displeju. Za dato programsko rješenje problema potrebno je komentarisati i
svaku funkciju posebno analizirati i ukratko opisati. Prepraviti programski kôd tako da pravilno
ispisuje kompletnu poruku “Srednja Elektrotehnicka Skola Bihac”. Izvršit simulaciju rada cjelokupnog
rješenja i ispraviti eventualne pogreške.
Programski kôd:
ANSELH = 0;
sbit LCD_RS at RB4_bit; C1ON_bit = 0;
sbit LCD_EN at RB5_bit; C2ON_bit = 0;
sbit LCD_D4 at RB0_bit;
sbit LCD_D5 at RB1_bit; Lcd_Init();
sbit LCD_D6 at RB2_bit;
sbit LCD_D7 at RB3_bit; Lcd_Cmd(_LCD_CLEAR);
Lcd_Cmd(_LCD_CURSOR_OFF);
sbit LCD_RS_Direction at TRISB4_bit; Lcd_Out(1,6,txt3);
sbit LCD_EN_Direction at TRISB5_bit;
sbit LCD_D4_Direction at TRISB0_bit; Lcd_Out(2,6,txt4);
sbit LCD_D5_Direction at TRISB1_bit; Delay_ms(2000);
sbit LCD_D6_Direction at TRISB2_bit; Lcd_Cmd(_LCD_CLEAR);
sbit LCD_D7_Direction at TRISB3_bit;
Lcd_Out(1,1,txt1);
Lcd_Out(2,5,txt2);
char txt1[] = "Srednja";
char txt2[] = "Elektrotehnicka"; Delay_ms(2000);
char txt3[] = "Skola";
char txt4[] = "Bihac";
for(i=0; i<4; i++) {
char i; Lcd_Cmd(_LCD_SHIFT_RIGHT);
Move_Delay();
void Move_Delay() { }
Delay_ms(500);
} while(1) {
for(i=0; i<8; i++) {
void main(){ Lcd_Cmd(_LCD_SHIFT_LEFT);
ANSEL = 0; Move_Delay();
10
}
Zadatak: Potrebno je, na osnovu programskog listinga, odrediti algoritam rada programa, sastaviti
shemu u Proteus-u, kompajlirati kod i izvršiti njegovo testiranje. Algoritam opisati pomoću
pseudokoda. Korištenjem „Help-a“ MikroC razvojnog okruženja, opisati funkciju Button() i njene
argumente. Kako istitravanje tastera utiče na tačnost njegovog očitanja? Razjasniti tu problematiku!!
Napisati programske kometare.
Rješenje:
Postoje dva načina spajanja tastera na mikrokontroler (slika). U zavisnosti na koji način su
tasteri spojeni, očitavaju se logička stanja na pinu mikrokontrolera. Vrijednosti otpornika R 1 i R2 su
najčešće u rasponu od 1-10kΩ. MikroC posjeduje funkciju za rad sa tasterima
(Button(__,__,__,__)) koja ima četiri argumenta. Svaki od argumenata ima svoju funkciju
(pronaći u help-u MikroC-a i opisati svaki argument). Tateri se napajaju istim naponom kao i
mikrokontroler. Na ovakav način se spaja i veoma velik broj različitih vrsta senzora.
11
Slika 1. Način spajanja tastera na mikrokontroler
bit staro_stanje;
void main() {
ANSEL = 0;
ANSELH = 0;
TRISB0_bit = 1;
TRISC = 0x00;
PORTC = 0xAA;
staro_stanje = 0;
do {
if (Button(&PORTB, 0, 1, 1)) {
staro_stanje = 1;
}
if (staro_stanje && Button(&PORTB, 0, 1, 0)) {
12
PORTC = ~PORTC;
staro_stanje = 0;
}
} while(1);
}
2. Dio
Prepraviti postojeći program tako da koristi shemu sa slike 1 uz dodatak led diode sa
predotporom (proračunati predotpor). Led diodu spojiti na pin RC1. Tasterom spojenim na RB0 pin
paliti diodu, a tasterom spojenim na RB1 pin gasiti diodu. Kompletan programski kod detaljno
komentarisati. Simulaciju rada sklopa izvršiti u Proteusu (naparaviti novi MikroC i Proteus folder).
Zadatak za zadaću:
Zadatak: Opisati funkciju programskog koda. Napisati programske komentare. Koristiti MikroC
kompajler.
Rješenje:
13
Zadatak:
Prepraviti program i el.shemu tako da se koriste dva AD kanala za mjerenje. Koristiti još jedan
potenciometar, a pomoću tastera u pull-up konfiguraciji, izvršiti odabir kanala sa kojeg će se vršiti
mjerenje. Rezultat mjerenja, za oba slučaja prikazati kao i u vježbi. Rezultate mjerenja potvrditi
računski u svesci!!
Laboratorijska vježba br.5
Naziv vježbe: Korištenje DS18B20 temperaturnog senzora
14
Izmjerena temperatura se u digitalnom formatu putem 1-wire sučelja prenosi do
mikrokontrolera. 1-wire sučelje je intelektualno vlasništvo firme Dallas Inc. Razvijeno je s
ciljem pojednostavljenja u komunikaciji između različitih senzorskih elemenata, a osnovna
zamisao podrazumijeva slanje podataka, napajanje i signalizaciju preko jednog voda. Ovo
sučelje je slično I2C sučelju s tim da su brzine prijenosa mnogo manje ali su udaljenosti na
kojima senzori mogu komunicirati sa master uređajem znatno veće.
Pošto dijele istu podatkovnu i napojnu liniju (u parazitnom načinu rada), jako velik broj
DS18B20 senzora sa jedinstvenim ID brojem može zajedno koegzistirati bez utjecaja jednih
na druge. Svaki senzor, koji je po default-u slave element, se na osnovu ID broja odaziva na
komande master uređaja (MCU).
15
Sl. 1.2 Napajanje DS18B20 iz sistemskog napajanja
Digitalni izlaz
Temperatura Digitalni izlaz (binarni)
(heksadecimalni)
+125°C 0000 0111 1101 0000 07D0h
+25.0625°C 0000 0001 1001 0001 0191h
0°C 0000 0000 0000 0000 0000h
-10.125°C 1111 1111 0101 1110 FF5Eh
1
Potrebno je razlikovati LSB od LSb (Least Significant Bit) i MSB od MSb (Most Significant Bit)
16
-55°C 1111 1100 1001 0000 FC90h
Ow_Reset(&PORTC, 5);
Ow_Write(&PORTC, 5, 0xCC); // Komanda SKIP_ROM
Ow_Write(&PORTC, 5, 0xBE); // Komanda READ_SCRATCHPAD
17
temp = ~temp + 1;
}
// Izvuci cijeli dio temperature
temp_cijela = temp >> RES_SHIFT ;
// Prtvori temp_cijela u karakter
if(temp_cijela/100)
text[0] = temp_cijela/100 + 48;
else
text[0] = '0';
18
Zadatak: Potrebno je analizirati gotovo, jednostavno programsko rješenje za komunikaciju između
PC računara i mikrokontrolera. Programski kod je potrebno detaljno analizirati (saznati šta radi),
opisati svaku pojedinačnu funkciju, nacrtati algoritamsku shemu rada programa i napisati pseudokod.
Takođe, potrebno je izvršiti simulaciju u Proteusu (korištenjem virtuelnog porta) kao i fizičko
spajanje mikrokontrolera sa PC računarom korištenjem razvojnog okruženja EasyPIC5 i RS232 kabla
(slika 1). Testirati program.
Programski listing:
UART1_Write_Text("Start");
char uart_rd; UART1_Write(10);
UART1_Write(13);
void main() {
ANSEL = 0; while (1) {
ANSELH = 0; if (UART1_Data_Ready()) {
C1ON_bit = 0; uart_rd = UART1_Read();
C2ON_bit = 0; UART1_Write(uart_rd);
}
UART1_Init(9600); }
Delay_ms(100); }
1. Simulacija u Proteusu
Potrebno je napraviti novi projekat kao što je prikazano na shemi sa slike 2.
19
A
P1
U1 ERROR
1 15
RE3/MCLR/VPP RC0/T1OSO/T1CKI
16
RC1/T1OSI/CCP2
2 17 9
RA0/AN0/ULPW U/C12IN0- RC2/P1A/CCP1 RI
3 18 4
RA1/AN1/C12IN1- RC3/SCK/SCL DTR
4 23 8
RA2/AN2/VREF-/CVREF/C2IN+ RC4/SDI/SDA CTS
5 24 3
RA3/AN3/VREF+/C1IN+ RC5/SDO TXD
6 25 7
RA4/T0CKI/C1OUT RC6/TX/CK RTS
7 26 2
RA5/AN4/SS/C2OUT RC7/RX/DT RXD
14 6
RA6/OSC2/CLKOUT DSR
13 19 1
RA7/OSC1/CLKIN RD0 DCD
20
RD1
33 21
RB0/AN12/INT RD2
34 22 COMPIM
RB1/AN10/C12IN3- RD3
35 27
RB2/AN8 RD4
36 28
RB3/AN9/PGM/C12IN2- RD5/P1B
37 29
RB4/AN11 RD6/P1C
38 30
RB5/AN13/T1G RD7/P1D
39
RB6/ICSPCLK
40 8
RB7/ICSPDAT RE0/AN5
9
RE1/AN6
10
RE2/AN7
PIC16F887
Instalirati program Virtual Serial Port (skinuti sa e-learninga) i podesiti ga prema slici 3
Izvršiti podešavanje virtuelnog porta u Proteusu (slika 4) tako da koristi Virtual Serial Pair
(COM2) koji je napravljen u prethodnom koraku.
20
Slika 4. Podešavanje virtuelnog COM porta u Proteusu
21
Slika 6. Podešavanje USART terminala
Terminal je sada preko COM3 porta spojen na COM2 port preko kojeg će se vršiti
komunikacija između PC računara i mikrokontrolera. Napomena: nije se moguće spojiti na
već otvoren COM port, zbog toga koristimo program Virtual Serial Port Driver!!
Pokrenuti simulaciju u Proteus-u. Na USART terminalu treba da bude ispisana poruka Start
(slika7). OBJASNITI ZBOG ČEGA SMO DOBILI OVU PORUKU NA TERMINALU NA OSNOVU
PROGRAMSKOG LISTINGA.
22
Slika 8. Poruka „Start“ prikazana na osciloskopu
2. Spajanje hardwera
Koristiti EasyPIC 5 razvojni sistem za kao bazu za komunikaciju između PC računara i
mikrokontrolera (slika 1).
Potvrditi rezultate dobivene u Proteus-u
Zadaća
Potrebno je objasniti namjenu integrisanog kruga MAX232.
Nacrtati, označiti i opisati svaki pojedinačni pin serijskog RS232 kabla.
Ukratko objasniti RS232 protokol koji se koristi kod serijske komunikacije. Objasniti NRZ
(engl. Non Return To Zerro) protokol.
Pokušati na osnovu valnog oblika sa slike 8 dekodirati riječ „Start“ (referirati se na prethodno
pitanje)
Prepraviti el. shemu i programski kod tako da na pritisak jednog tastera šalje poruku „Strart“.
Detektovati slanje poruke sa PC računara (sa USART terminala) i ispisati je na LCD displeju.
Izvršiti mjerenje napona sa potenciometra i preko UART periferne jedinice mikrokontrolera
izvršiti njeno slanje na PC.
Otkriti i detaljno pojasniti značenje kodova (argumenata) koji su predati funkciji
UART1_Write().
UART1_Write(10);
UART1_Write(13);
23
Laboratorijska vježba br.7
Naziv vježbe: Manuelno upravljanje brojem okretaja istosmjernog
motora korištenjem PWM (Pulse Width Modulation) modulacije
24
sbit LCD_EN_Direction at TRISB5_bit;
sbit LCD_D4_Direction at TRISB0_bit; void main() {
sbit LCD_D5_Direction at TRISB1_bit; InitMain();
sbit LCD_D6_Direction at TRISB2_bit; current_duty = 220;
sbit LCD_D7_Direction at TRISB3_bit; PWM1_Start();
PWM1_Set_Duty(current_duty);
unsigned short current_duty, Lcd_Init();
old_duty, current_duty1, old_duty1; Lcd_Cmd(_LCD_CLEAR);
void LCD(unsigned short DC){ Lcd_Cmd(_LCD_CURSOR_OFF);
char text[4]; Lcd_Out(1,1,"DC[%]:");
char text1[4]; LCD(100-current_duty/2.55);
ByteToStr(DC, text); while (1) {
Lcd_Out(1,7,text); if (RA0_bit) {
Lcd_Out(2,1,"Freq[Hz]:"); Delay_ms(30);
Lcd_Out(2,10,"500"); current_duty--;
} LCD(100-current_duty/2.55);
void InitMain() { PWM1_Set_Duty(current_duty);
ANSEL = 0;
ANSELH = 0; }
C1ON_bit = 0; if (RA1_bit) {
C2ON_bit = 0; Delay_ms(30);
PORTA = 0; current_duty++;
TRISA = 0; LCD(100-current_duty/2.55);
PORTB = 0; PWM1_Set_Duty(current_duty);
TRISB = 0; }
PORTC = 0; Delay_ms(25);
TRISC = 0; }
PWM1_Init(500); }
}
Napraviti novi projekat pod nazivom PWM u programskom paketu Proteus prema
shemi. Izvršiti učitavanje pwm.hex fajla u simulator i izvršiti simulaciju. Šta se može zaključiti
iz rezultata simulacije. Objasniti prednosti korištenja tzv. prekidačkog načina rada tranzistora
nad linearnim. Koji je način upravljanja motorom efikasniji i zašto? (koristiti Internet)
R7
10K
J1 D2
1 MCLR
ICSP-PICKIT3
2 VDD
3 GND 1N4001
4 PGD C3
5 PGC
100nF
25630501RP2 B1
12V
U1
7805
LCD1 1 3
LM016L VI VO
GND
C1 C2
2
10uF 10uF
VDD
VSS
VEE
RW
RS
D0
D1
D2
D3
D4
D5
D6
D7
RV1
E
R2 D1
+88.8
15 16
1k 1N4001
1
2
3
4
5
6
7
8
9
10
11
12
13
14
R4
270 Q2
R6 R5 U2 BC547
PINOVI 11,32
1k 1k
500R 1 15
RE3/MCLR/VPP RC0/T1OSO/T1CKI
RC1/T1OSI/CCP2
16 R1 Q1 Q4
2 17 BC547 R3 BUK
RA0/AN0/ULPWU/C12IN0- RC2/P1A/CCP1
3 18 330
RA1/AN1/C12IN1- RC3/SCK/SCL
4 23 8.2
RA2/AN2/VREF-/CVREF/C2IN+ RC4/SDI/SDA
5 24
RA3/AN3/VREF+/C1IN+ RC5/SDO
6
RA4/T0CKI/C1OUT RC6/TX/CK
25 Q3
7 26 BC558
RA5/AN4/SS/C2OUT RC7/RX/DT
14
RA6/OSC2/CLKOUT
13 19
RA7/OSC1/CLKIN RD0
20
RD1
33 21
RB0/AN12/INT RD2
34 22
RB1/AN10/C12IN3- RD3
35 27
RB2/AN8 RD4
36 28
RB3/AN9/PGM/C12IN2- RD5/P1B
37 29
RB4/AN11 RD6/P1C
38 30
RB5/AN13/T1G RD7/P1D
39
RB6/ICSPCLK
40 8
RB7/ICSPDAT RE0/AN5
9
RE1/AN6
10
RE2/AN7
PINOVI 12,31
PIC16F887
25
LCD1
LM016L
VDD
VSS
VEE
RW
RS
D0
D1
D2
D3
D4
D5
D6
D7
D
E
B
1
2
3
4
5
6
7
8
9
10
11
12
13
14
B1
+88.8
12V
B2
12V
D1
UF4004
U1 R4 Q2
1 15 1k BC547
RE3/MCLR/VPP RC0/T1OSO/T1CKI
16
RC1/T1OSI/CCP2
2
RA0/AN0/ULPW U/C12IN0- RC2/P1A/CCP1
17 Q1
3
RA1/AN1/C12IN1- RC3/SCK/SCL
18 R2 IRF540Z
4 23
RA2/AN2/VREF-/CVREF/C2IN+ RC4/SDI/SDA
5 24 10
RA3/AN3/VREF+/C1IN+ RC5/SDO
6
RA4/T0CKI/C1OUT RC6/TX/CK
25 R5 Q4
7
RA5/AN4/SS/C2OUT RC7/RX/DT
26 BC547 Q3
14 1k BC557
RA6/OSC2/CLKOUT
13 19
RA7/OSC1/CLKIN RD0
20
RD1
33 21
RB0/AN12/INT RD2
34 22
RB1/AN10/C12IN3- RD3
35 27
RB2/AN8 RD4
+88.8
Amps
36 28
RB3/AN9/PGM/C12IN2- RD5/P1B
37 29
RB4/AN11 RD6/P1C
38 30
RB5/AN13/T1G RD7/P1D
39
RB6/ICSPCLK
40 8
RB7/ICSPDAT RE0/AN5
9
RE1/AN6
RE2/AN7
10 R3
0.39
PIC16F887
Spoj u proteusu
26