1 / 37

KONVERTOR KODOVA REALIZOVAN SA MIKROKONTROLEROM PIC16F877-04

Perica Stojanović , 10091/T. Elektronski fakultet - Ni š Katedra za elektroniku Predmet: Mikroprocesor sk i sistemi Profesor: Mile Stojčev. KONVERTOR KODOVA REALIZOVAN SA MIKROKONTROLEROM PIC16F877-04. SADR ŽAJ RADA. Uvodna reč P1. Pregled najpoznatijih kodova

cid
Download Presentation

KONVERTOR KODOVA REALIZOVAN SA MIKROKONTROLEROM PIC16F877-04

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Perica Stojanović, 10091/T Elektronski fakultet - NišKatedra za elektronikuPredmet: Mikroprocesorski sistemiProfesor: Mile Stojčev KONVERTOR KODOVA REALIZOVAN SA MIKROKONTROLEROM PIC16F877-04 KONVERTOR KODOVA

  2. SADRŽAJ RADA • Uvodna reč • P1. Pregled najpoznatijih kodova • P2. Mikrokontroler PIC16F877-04 • P3. Softverski UART terminal • P4. AllPIC i IC-Prog • P5. Realizacija konvertora kodova • P6. Laboratorijska vežba • P7. Reference • P8. CV • Završna reč KONVERTOR KODOVA

  3. UVOD (1) • Pred vama je seminarski rad koji je realizovan od kraja aprila do sredine maja 2008. godine. Prema predlogu mentora prof. dr Mileta Stojčeva projektovan je jednostavan konvertor kodova sa mikroko-ntrolerom PIC16F877-04. Prvobitna namera je bila da se upotrebi mikrokontroler PIC16F84A koji ima 13 I/O pinova, a njegovo “pro-širenje” bi se ostvarilo preko pomeračkih registara. Međutim, od tog rešenja se brzo odustalo. Izabran je, dakle, PIC16F877-04 koji može da radi na frekvenciji od 4 MHz i poseduje 33 I/O pinova. • Osvrt na najpoznatije kodove dat je u prvom poglavlju seminarskog rada. • Drugo poglavlje sadrži veoma kratak opis mikrokontrolera PIC16F877, s obzirom da je veoma dosta podataka o ovom mikrokontroleru izloženo u seminarskim radovima Mikroprocesori i Mikroprocesorski sistemi. KONVERTOR KODOVA

  4. UVOD (2) • U trećem poglavlju je ukratko opisan softverski UART terminal, koji služi za komunikaciju mikrokontrolera PIC16F877-04 i PC računara. • Postupak programiranja mikrokontrolera izložen je u četvrtom poglavlju. Kao alati su korišćeni ALLPIC i IC-Prog. • U petom i šestom poglavlju je predstavljena implementacija konvertora kodova, kao i način njegove upotrebe. • Na kraju je dat spisak korišćene reference. KONVERTOR KODOVA

  5. TEŽINSKI KODOVI Kod težinskog koda svakoj binarnoj cifri se dodeljuje težina t. Zbir težina čija je vrednost 1 ekvivalentna je decimalnom broju pred-stavljen četvorobitnom kombinacijom. Drugim rečima, ako su di (i = 0, . . .,3) cifarske vrednosti a ti pred-stavljaju odgovarajuće težine, tada je decimalni ekvivalent 4-bitnog binarnog broja dat kao d3×t3 + d2×t2 + d1×t1 + d0×t0. KONVERTOR KODOVA

  6. TEŽINSKI KODOVI - PRIMERI KONVERTOR KODOVA

  7. NETEŽINSKI KOD "VIŠAK 3" KONVERTOR KODOVA

  8. GREJOV KOD KONVERTOR KODOVA

  9. PIC16F877-04 KONVERTOR KODOVA

  10. PIC16F877 - OSNOVNE K-KE (1) • RISC mikroprocesor visokih performansi • 35 instrukcija obima jedne reči • Radna frekvencija do 20 MHz • Trajanje taktnog intervala 200 ns, pri frekvenciji 20 MHz • Opkôd obima 14 bita • Harverski magacin sa osam nivoa • Tri načina adresiranja (direktno,indirektno i relativno) • Programska flash memorija kapaciteta 8 k X 14-bitnih reči • Memorije za podatke tipa RAM kapaciteta 368 X 8 bita • Memorije za podatke EEPROM tipa kapaciteta 256 X 8 bita • Prekidi (do 14 izvora prekida) • U/I portovi: A, B, C, D, E KONVERTOR KODOVA

  11. PIC16F877 - OSNOVNE K-KE (2) • Tri tajmera: • - Timer0 (TMR0): 8-bitni tajmer/brojač_događaja • - Timer1 (TMR1): 16-bitni tajmer/brojač_događaja • - Timer2 (TMR2): 8-bitni tajmer/brojač_događaja • 10-bitni 8-kanalni analogno-digitalni (A/D) konvertor • Serijska komunikacija: MSSP, USART • Paralelna komunikacija: PSP • Power-on Reset - reset pri uključenju napajanja (POR) • Power-up timer - unošenje kašnjenja nakon uključenja napajanja (PWRT) • Oscillator Start-up Timer - unošenje kašnjenja nakon stabilizovanja radne frekvencije oscilatora (OST) KONVERTOR KODOVA

  12. PIC16F877 - OSNOVNE K-KE (3) • Sleep mode - režim rada sa malim utroškom energije • Watchdog tajmer sa sopstvenim integrisanim RC oscilatorom za nezavisan rad • Izbor tipa oscilatora • Radni napon od 2V do 5.5V • Mala potrošnja energije: • <0.6 mA pri naponu od 3V i radnoj frekvenciji od 4 MHz • 20µA pri naponu od 3V i radnom taktu od 32kHz • <1µA u standby režimu rada. KONVERTOR KODOVA

  13. PIC16F877 - ARHITEKTURA KONVERTOR KODOVA

  14. PIC16F877 -PROGRAMSKA MEMORIJA KONVERTOR KODOVA

  15. PIC16F877 -REGISTRI KONVERTOR KODOVA

  16. PIC16F877 - IZBOR KVARCA I REZONATORA KONVERTOR KODOVA

  17. MIKROC • Kvalitetan editor sa automatskom kontrolom • Jasan asemblerski kôd i standardna kompatibilnost generisanih HEX datoteka • Preglednost strukture programa (kôda) • Veliki broj integrisanih biblioteka i rutina, koje značajno ubrzavaju pisanje programa • Detaljni izveštaji i grafičko predstavljanje mape RAM i ROM memorija, statistike kôda i slično. KONVERTOR KODOVA

  18. MIKROC - OSNOVNI PROZOR KONVERTOR KODOVA

  19. USART TERMINAL KONVERTOR KODOVA

  20. USART TERMINAL • Parametri koji se podešavaju: • Serijski port (COM1, COM2, COM3) • Brzina prenosa • Broj stop bitova (1, 1.5 ili 2) • Izbor parnosti (bez, parna, neparna itd.) • Broj bitova koji čine karakter (5, 6, 7 ili 8) • Uključivanje/isključivanje handshaking signala (RTS i DTR) • Izbor formata podatka koji se šalje (ASCII, HEX ili DEC) • Način slanja. KONVERTOR KODOVA

  21. ASCII TABLICA KONVERTOR KODOVA

  22. ALLPIC BOOTLOADER • Jednostavan i jeftin (do 10 evra) • Pripada grupi JDM loadera • Programiranje preko serijskog porta. KONVERTOR KODOVA

  23. ALLPIC - ELEKTRIČNA ŠEMA KONVERTOR KODOVA

  24. ICPROG - SOFTVER • Jednostavan za korišćenje • Kompatibilan sa 10-ak bootstrap loadera KONVERTOR KODOVA

  25. BLOK-ŠEMA KONVERTORA (1) KONVERTOR KODOVA

  26. BLOK-ŠEMA KONVERTORA (2) • Na Slici je prikazana blok šema konvertora kodova relizovanog sa mikrokontrolerom PIC16F877-04 (radi na frekvenciji 4MHz). Omogućena je serijska veza mikrokontrolera sa PC računarom, a za konverziju naponskih nivoa (RS232C-TTL i obrnuto) zaduženo je interfejsno IC MAX232. Logika u kolu (PIC i MAX232) se napaja sa naponom 5V, koji se obezbeđuje preko stabilizator napona L7805 (u kućištu TO-220). • Tasterom T1 se resetuje mikrokontroler. KONVERTOR KODOVA

  27. SPISAK KOMPONENTI (1) KONVERTOR KODOVA

  28. SPISAK KOMPONENTI (2) KONVERTOR KODOVA

  29. ELEKTRIČNA ŠEMA KONVERTORA (1) KONVERTOR KODOVA

  30. ELEKTRIČNA ŠEMA KONVERTORA (2) KONVERTOR KODOVA

  31. ŠTAMPANA PLOČA KONVERTORA KONVERTOR KODOVA

  32. PROGRAM ZA PIC16F877 (mikroC) /1/ • unsigned short i, j, k, l, m, n =0; • void main() { • // DEFINISANJE PORTOVA • TRISB = 0x00; • PORTB = 0x00; • TRISD = 0x00; • PORTD = 0x00; • TRISC = 0xBF; • TRISA = 0xFF; • PORTA = 0x00; • ADCON1 = 6; • // INICIJALIZACIJA USART MODULA • Usart_Init(2400); • do { • if (PORTC.F4==0) { • n.F7=PORTC.F2; • n.F6=PORTC.F1; • n.F5=PORTC.F0; • n.F4=PORTA.F5; • n.F3=PORTA.F4; • n.F2=PORTA.F3; • n.F1=PORTA.F2; • n.F0=PORTA.F1; KONVERTOR KODOVA

  33. PROGRAM ZA PIC16F877 (mikroC) /2/ • j = (n & 0xF0) >> 4; • k = n & 0x0F; • PORTB = n; • PORTD = 0x00; • // KONVERZIJA "VISAK 3" • if ((PORTC.F3==0)&&(k<=9)&&(j<=9)&&(PORTA.F0==0)) { • l = (j + 3) << 4; • m = k + 3; • PORTD = l+m; • } • // KONVERZIJA U GREJOV KOD • if ((PORTC.F3==1)&&(PORTA.F0==0)) { • PORTD.F7=J.F3; • PORTD.F6=((J.F3&&!(J.F2))||(!(J.F3)&&J.F2)); • PORTD.F5=((J.F2&&!(J.F1))||(!(J.F2)&&J.F1)); • PORTD.F4=((J.F1&&!(J.F0))||(!(J.F1)&&J.F0)); • PORTD.F3=K.F3; • PORTD.F2=((K.F3&&!(K.F2))||(!(K.F3)&&K.F2)); • PORTD.F1=((K.F2&&!(K.F1))||(!(K.F2)&&K.F1)); • PORTD.F0=((K.F1&&!(K.F0))||(!(K.F1)&&K.F0)); • } • } KONVERTOR KODOVA

  34. PROGRAM ZA PIC16F877 (mikroC) /3/ • if (PORTC.F4==1) { • // PODATAK SE PRIMA I VRACA KA RACUNARU • if (Usart_Data_Ready()) { • i = Usart_Read(); • Usart_Write(i); • } • j = (i & 0xF0) >> 4; • k = i & 0x0F; • PORTB = i; • PORTD = 0x00; • // KONVERZIJA U "VISAK 3" • if ((PORTC.F3==0)&&(k<=9)&&(j<=9)) { • l = (j + 3) << 4; • m = k + 3; • PORTD = l+m; • } • // KONVERZIJA U GREJOV KOD • if (PORTC.F3==1) { • PORTD.F7=J.F3; • PORTD.F6=((J.F3&&!(J.F2))||(!(J.F3)&&J.F2)); • PORTD.F5=((J.F2&&!(J.F1))||(!(J.F2)&&J.F1)); • PORTD.F4=((J.F1&&!(J.F0))||(!(J.F1)&&J.F0)); KONVERTOR KODOVA

  35. PROGRAM ZA PIC16F877 (mikroC) /4/ • PORTD.F3=K.F3; • PORTD.F2=((K.F3&&!(K.F2))||(!(K.F3)&&K.F2)); • PORTD.F1=((K.F2&&!(K.F1))||(!(K.F2)&&K.F1)); • PORTD.F0=((K.F1&&!(K.F0))||(!(K.F1)&&K.F0)); • } • } • } while (1); • }//~! KONVERTOR KODOVA

  36. FUNKCIJE TRANSFORMACIJE KONVERTOR KODOVA

  37. CV - PERICA STOJANOVIĆ KONVERTOR KODOVA

More Related