1 / 18

Ispis tekstualnih poruka na LED displeju

Elektronski Fakultet u Nišu Katedra za elektroniku Predmet: Embeded sistemi. Ispis tekstualnih poruka na LED displeju. Mentor: prof.Dr. Mile Stojčev Studentni:Igor Stojanović 12777 Miloš Lazić 13166. Hardverska realizacija.

Download Presentation

Ispis tekstualnih poruka na LED displeju

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. Elektronski Fakultet u Nišu Katedra za elektroniku Predmet: Embeded sistemi Ispis tekstualnih poruka na LED displeju Mentor: prof.Dr. Mile Stojčev Studentni:Igor Stojanović 12777 Miloš Lazić 13166

  2. Hardverska realizacija • Princip kontrole jedne LED diode

  3. Hardverska realizacija • 8x8 LED matrica

  4. Hardverska realizacija • Primer ispisivanja slova

  5. Hardverska realizacija • Talasnioblicisignalanaportovima PORTB i PORTD

  6. Softverska realizacija • Algoritam glavnog koda

  7. Softverska realizacija • Glavni program #include "funkcija.h" // uključvanjebibliotekefunkcija #include "slovo.h"// uključivanjebibliotekeslovo void main(){ short intstr[9];//definisanjebaferazasmeštanjeslova char prenos; short int *pr;//pokazivačnabaferstr short intust;//promenljivakoja se koristikaopokazivač //trenutnepozicija u baferustr short intind,mar;//markerikojidefinišiprogramskitok unsigned intwr[8]={0,0,0,0,0,0,0,0};// vektorzapamćenje //podatakakoji se prikazujenadispleju TRISB=0x00;//definisanjeporta b kaoizlazni TRISD=0x00;//definsanjeporta d kaoizlazni PORTB=0x00;//postavljanjeporta b nanulu PORTD=0x00;//postavljanjeporta d nanulu ANSELH=0;//definisanjeporta b kaodigitalni

  8. Softverska realizacija ust= str; pr=wr; mar=0;//postavljanjemarkerana 0 kako bi se omogućila UART //komunikacijapriprvomprelaskukoda while(1) {//beskonačnapetlja ust=0; if(mar==0){ Usart_Init(19200);//inicijalizacija UART komunikacijena //brzinu 19200bps while((str[ust])!=46) {// ispitivanjedali je karakter //poslatpreko UART-a ‘.’ if(Usart_Data_Ready()) {//ispitivanjedali je primljen //karakter ust++;//inkrementiranjemarkerapozicije str[ust]=Usart_Read();//smeštanjeprihvaćenogpodatka u bafer Usart_Write(str[ust]);// slanjeprihvaćenogpodatkanatrag//na HyperTerminal

  9. Softverska realizacija }}} ind=1;// postavljanjemarkeraindna 1 jercitanje //popunjenogbaferatrebapočetiod 1 pozicije mar=1;// postavljanjemarkera mar na 1 radionemogućavanja //ponovnogstartovanja UART komunikacijepriponovnom //izvršavanjuglavnogprograma u while petlji while(str[ind]!=46) {//čitanjekarakteraizbaferasvedok //se ne naidnjena ‘.’ prenos=str[ind];//nakončitanjasvakogpojedinačnog //karakterapoziva se funkcijazaprepoznavanjeslova slovo(prenos,pr);//funkcijazaprepoznavanjeslova ind++;//inkrementiranjemarkerapozicijezačitanjeiz //bafera }} }

  10. Softverska realizacija • Algoritam funkcje za ispitivanje slova

  11. Softverska realizacija • Kod funkcije za ispitivanje slova void slovo(char prenos,int pr) {//funkcija prihvata //pokazivač na promenljivu za pamćenje prikaza za displej, //pr,i pročitano slovo iz glavne funkcije switch(prenos) {//ispitivanje pročitanog slova i //pozivanje odgovarajuće funkcije za ispis slova case 'a': as(pr);break; case 'b': bs(pr);break; case 'c': cs(pr);break; case 'd': ds(pr);break; case 'e': es(pr);break; case 'f': fs(pr);break; case 'g': gs(pr);break; case 'h': hs(pr);break; case 'i': is(pr);break; case 'j': js(pr);break;

  12. Softverska realizacija case 'k': ks(pr);break; case 'l': ls(pr);break; case 'm': ms(pr);break; case 'n': ns(pr);break; case 'o': os(pr);break; case 'p': ps(pr);break; case 'r': rs(pr);break; case 's': ss(pr);break; case 't': ts(pr);break; case 'u': us(pr);break; case 'v': vs(pr);break; case 'z': zs(pr);break; case ' ': space(pr);break; }}

  13. Softverska realizacija • Algoritam funkcije za ispisivanje slova

  14. Softverska realizacija • Kod funkcije za ispisivanje jednog slova //slovo a void as(int *pr){//funkcija koja ispisuje slovo na displeju unsigned int c[8];//definisanje konstante u kojoj se pamte //vektori slova unsigned int pom[8];//pomoćna promenljiva koja se koristi //za pomeranje karaktera na displeju short int i,j,k,l;//promenljive brojača //inicijalne vrednosti vektora slova c[0]=0x003C; c[1]=0x0042; c[2]=0x0042; c[3]=0x0042; c[4]=0x007E; c[5]=0x0042; c[6]=0x0042; c[7]=0x0042;

  15. Softverska realizacija for(i=0;i<=7;i++) {//brojačpozicijapomerajakaraktera //nadispleju for(j=0;j<=7;j++) {//pomeranjesvakogkarakterazajedno //mestoulevo pom[j]=c[j] & 0x0100;//maskiranjepromenljiveradi //izdvajanjaprvogbita pom[j]= pom[j] >> 8;//pomeranjeza 8 mestaudesno *(pr+j)= *(pr+j) << 1; *(pr+j)= *(pr+j) | pom[j]; c[j]= c[j] << 1; } for(j=0;j<=100;j++) {//brojačkapetljazaosvežavanje //displeja l=0x01; for(k=0;k<=7;k++){ PORTD=0x00; PORTB=*(pr+k); PORTD=l; Delay_us(300); l= l << 1; }}//procedura je indetična zasvaslova, kaoizaslovo “A” PORTD=0x00; } return; }

  16. Dodatne aplikacije • Aplikacija “Trougao” void main() { short int i,k; TRISB=0x00;// definisanje porta B kao izlazni TRISD=0x00;// definisanje porta D kao izlazni PORTB=0x00;//postavljanje inicijalnih vrednosti na port B PORTD=0x00;//postavljanje inicijalnih vrednosti na port D while(1) {// beskonačna petlja k=0x01; //promenljiva za izbor vrste PORTB=0x01; Delay_us(300); for(i=0;i<=7;i++){//petlja za osvežavanje vrsta PORTD=k; Delay_us(300); );// funkcija za kašnjenj radi izbegavanje //flicker efekta PORTD=0x00; PORTB=PORTB << 1;//pomeranje vrednsti porta B za jedno //mesto PORTB=PORTB | 0x01;//maskiranje bitova k=k << 1; }}}

  17. Dodatne aplikacije • Aplikacija “Dijagonala” void main() { short int i,k; TRISB=0x00; //definisanje porta B kao izlazni TRISD=0x00; // definisanje porta D kao izlazni PORTB=0x00;//postavljanje inicijalnih vrednosti na port B PORTD=0x00;//postavljanje inicijalnih vrednosti na port D while(1){ //beskonačna petlja PORTB=0x01;//dodela početne vrednosti za port B k=0x01; //promenljiva za izbor vrste for(i=0;i<=7;i++){//petlja za osvežavanje vrsta PORTD=k; // dodela promenljive portu Delay_us(300);// funkcija za kašnjenj radi izbegavanje //flicker efekta PORTD=0x00; PORTB= PORTB << 1;// pomeranje vrednsti porta B za jedno //mesto k=k << 1;// pomeranje vrednosti k za jedno mesto }}}

  18. Korišćena literatura • Dogan Ibrahim-Microcontroller Projects in C for the 8051 • Muhammad Ali Mazidi, Rolan D. Mckinlay, Danny Causey-PIC microcontroller and Embedded Systems • Barnet Cox & O.Cull- Embedded C Programming and the Microchip PIC • Mikroelektronika-UNI-DS3 razvojnisisitem,Korisničkouputstvo • Milan Verle-PIC kontroleri • PIC16F887, Datasheet- Dostupnonawww.microchip.com • ULN2308,Datasheet-Dostupno nawww.alldatasheet.com

More Related