300 likes | 455 Views
Elektronski fakultet Niš Katedra za elektroniku. REALIZACIJA STEPENI ŠNOG AUTOMATA POMOĆU MIKROKONTROLERA AT89S8253. Milan Stefanović 9800 Mentor: Edin Biševac 10756 prof. dr Mile Stojčev. Tipovi prenosa podataka. Serijski Paralelni. Serijski prenos podatak a.
E N D
Elektronski fakultet Niš Katedra za elektroniku REALIZACIJA STEPENIŠNOG AUTOMATA POMOĆU MIKROKONTROLERA AT89S8253 Milan Stefanović 9800 Mentor: Edin Biševac 10756 prof. dr Mile Stojčev
Tipovi prenosa podataka • Serijski • Paralelni
Serijski prenos podataka • Jednostavnost rešenja (prenos podataka vrši se preko jedinstvene linije) • Pouzdanost (jednostavna detekcija grešaka) • Dobro definisani protokoli
Paralelni prenos podataka (1) • Prenos n bitova (n = 8, 16, 32, 64) vrši se istovremeno • koristi kada se prenosi podaci na kraćim rastojanjima
Paralelni prenos podataka (2) • Veliki broj potrebnih veza (jedna linija po bitu n-bitnog podatka) ograničava primenu paralelnog prenosa isključivo na relativno kratka rastojanja • Tipičan primer je paralelna magistrala IEEE-488 GPIB, koja je projektovana za komunikaciju između pojedinih sistema/uređaja (najčešće je u pitanju merno-informaciona tehnika), koji su međusobno udaljeni maksimalno 20 m
MikrokontrolerAT89S8253 osnovne karakteristike (1) • Obimne procesne mogućnosti (jednobitna logika) • Ugrađena flash programska memorija (12 Kb) • Ugrađena RAM memorija podataka (256 x 8 bitova) • 32 dvosmerne (bidirekcione) i pojedinačno adresibilne ulazno/izlazne linije • Devet izvora prekida • Ugrađeni EEPROM (2Kb) • Programabilni UART sa potpunim dupleksom i detekcijom greške rama podataka
MikrokontrolerAT89S8253 osnovne karakteristike (2) SPI serijski interfejs Tri nivoa zaštite programske memorije Tri 16-bitna tajmera/brojača Programabilni watchdog tajmer Flag prestanka napajanja Režimi smanjene potrošnje Napajanje u opsegu 4-6V Ugrađeni oscilator takta Frekvencija rada do 24MHz.
Programiranje mikrokontrolera • Da bi se izvršilo programiranje mikrokontrolera, neophodno je posedovati bootstrap loader, kao i odgovarajući softver. • Postoje npr.bootstraploader-i SI-Prog i ISP Programmer, kao i softverki alati: IC-Prog, PonyProg, Atmel Microcontroller ISP software itd.
Programiranje mikrokontrolera • Da bi se izvršilo serijsko programiranje/čitanje mikrokontrolera serije AT89S, treba operisatisa samo 5 signala: • Vcc (napajanje) • RST (reset) • SCK (pomerački takt) • MOSI (serijski ulaz) • MISO (serijski izlaz). • Poslednja 3 signala čine serijski interfejs
Prikaz rasporeda elemenata odštampan na gornjoj strani PCB-a
Kôd u asembleru (1) ; STEPENISNI AUTOMAT SA AT89S8253 STATUS EQU 20H GRUPA1 EQU STATUS.0 GRUPA2 EQU STATUS.1 GRUPA3 EQU STATUS.2 GRUPA4 EQU STATUS.3 GRUPA5 EQU STATUS.4 GRUPA6 EQU STATUS.5 GRUPA7 EQU STATUS.6 GRUPA8 EQU STATUS.7 SPRAT1HI EQU 30H SPRAT1LO EQU 31H SPRAT2HI EQU 32H SPRAT2LO EQU 33H SPRAT3HI EQU 34H SPRAT3LO EQU 35H SPRAT4HI EQU 36H SPRAT4LO EQU 37H SPRAT5HI EQU 38H SPRAT5LO EQU 39H SPRAT6HI EQU 3AH SPRAT6LO EQU 3BH SPRAT7HI EQU 3CH SPRAT7LO EQU 3DH SPRAT8HI EQU 3EH SPRAT8LO EQU 3FH VREMEHI EQU 40H VREMELO EQU 41H
Kôd u asembleru (2) ;HARDWARE-ski zahtevi SPRAT1 EQU P2.0 SPRAT2 EQU P2.1 SPRAT3 EQU P2.2 SPRAT4 EQU P2.3 SPRAT5 EQU P2.4 SPRAT6 EQU P2.5 SPRAT7 EQU P2.6 SPRAT8 EQU P2.7 RSEG CODE START JMP GLAVNI ORG START+TIMER1 JMP IRQ ;*************************************************** ; inicijalizacija TIMER-a,reset.RAM-a i sl. ;*************************************************** GLAVNI MOV IE,#00H ;zabrana svih interapta MOV SP,#70H ;definisanje steka INIC: MOV TMOD,#011H ;T1 = 16b_TIMER MOV TH1,#0FCH MOV TL1,#067H ;INT T1 NA 1mS SETB TR1 ;STARTUJE tajmer 1 MOV P3,#0 ;GASI SVE IZLAZE
Kôd u asembleru (3) ;******* resetovanje rama ***** MOV R0,#08 RESR MOV A,#0 MOV @R0,A INC R0 MOV A,R0 CJNE A,#070H,RESR MOV IE,#088H ;DOZVOLA INT T1 ;** POCETAK GLAVNOG PROGRAMA ** GP NOP JMP GP ;****** INTERRUPT TIMER-a 1 na 1mS ************* IRQ PUSH ACC PUSH PSW CLR C MOV A,VREMELO ADDC A,#01 MOV VREMELO,A MOV A,VREMEHI ADDC A,#0 MOV VREMEHI,A
Kôd u asembleru (4) ; testira vremena iskljucenja grupa izlaza TSTOFF1 MOV A,VREMELO CJNE A,SPRAT1LO,TSTOFF2 MOV A,VREMEHI CJNE A,SPRAT1HI,TSTOFF2 CLR GRUPA1 MOV DPTR,#TABONOFF MOV A,#0 MOVC A,@A+DPTR CPL A ANL P3,A TSTOFF2 MOV A,VREMELO CJNE A,SPRAT2LO,TSTOFF3 MOV A,VREMEHI CJNE A,SPRAT2HI,TSTOFF3 CLR GRUPA2 MOV DPTR,#TABONOFF MOV A,#01 MOVC A,@A+DPTR CPL A ANL P3,A TSTOFF3 MOV A,VREMELO CJNE A,SPRAT3LO,TSTOFF4 MOV A,VREMEHI CJNE A,SPRAT3HI,TSTOFF4 CLR GRUPA3
Kôd u asembleru (5) MOV DPTR,#TABONOFF MOV A,#02 MOVC A,@A+DPTR CPL A ANL P3,A TSTOFF4 MOV A,VREMELO CJNE A,SPRAT4LO,TSTOFF5 MOV A,VREMEHI CJNE A,SPRAT4HI,TSTOFF5 CLR GRUPA4 MOV DPTR,#TABONOFF MOV A,#03 MOVC A,@A+DPTR CPL A ANL P3,A TSTOFF5 MOV A,VREMELO CJNE A,SPRAT5LO,TSTOFF6 MOV A,VREMEHI CJNE A,SPRAT5HI,TSTOFF6 CLR GRUPA5 MOV DPTR,#TABONOFF MOV A,#04 MOVC A,@A+DPTR CPL A ANL P3,A
Kôd u asembleru (6) TSTOFF6 MOV A,VREMELO CJNE A,SPRAT6LO,TSTOFF7 MOV A,VREMEHI CJNE A,SPRAT6HI,TSTOFF7 CLR GRUPA6 MOV DPTR,#TABONOFF MOV A,#05 MOVC A,@A+DPTR CPL A ANL P3,A TSTOFF7 MOV A,VREMELO CJNE A,SPRAT7LO,TSTOFF8 MOV A,VREMEHI CJNE A,SPRAT7HI,TSTOFF8 CLR GRUPA7 MOV DPTR,#TABONOFF MOV A,#06 MOVC A,@A+DPTR CPL A ANL P3,A TSTOFF8 MOV A,VREMELO CJNE A,SPRAT8LO,TST1 MOV A,VREMEHI CJNE A,SPRAT8HI,TST1 CLR GRUPA8
Kôd u asembleru (7) MOV DPTR,#TABONOFF MOV A,#07 MOVC A,@A+DPTR CPL A ANL P3,A ; testira ulaze i ukljucuje grupu izlaza TST1 JB GRUPA1,PALI1 JB SPRAT1,TST2 CLR C MOV A,VREMELO ADDC A,#060H MOV SPRAT1LO,A MOV A,VREMEHI ADDC A,#0EAH MOV SPRAT1HI,A SETB GRUPA1 PALI1 MOV DPTR,#TABONOFF MOV A,#0 MOVC A,@A+DPTR ORL P3,A ;UKLJUCUJE ODGOVARAJUCE IZLAZE ZA TAST. SP1 TST2 JB GRUPA2,PALI2 JB SPRAT2,TST3 CLR C MOV A,VREMELO ADDC A,#060H MOV SPRAT2LO,A MOV A,VREMEHI ADDC A,#0EAH
Kôd u asembleru (8) MOV SPRAT2HI,A SETB GRUPA2 PALI2 MOV DPTR,#TABONOFF MOV A,#01 MOVC A,@A+DPTR ORL P3,A ;UKLJUCUJE ODGOVARAJUCE IZLAZE ZA TAST. SP2 TST3 JB GRUPA3,PALI3 JB SPRAT3,TST4 CLR C MOV A,VREMELO ADDC A,#060H MOV SPRAT3LO,A MOV A,VREMEHI ADDC A,#0EAH MOV SPRAT3HI,A SETB GRUPA3 PALI3 MOV DPTR,#TABONOFF MOV A,#02 MOVC A,@A+DPTR ORL P3,A ;UKLJUCUJE ODGOVARAJUCE IZLAZE ZA TAST. SP3 TST4 JB GRUPA4,PALI4 JB SPRAT4,TST5 CLR C MOV A,VREMELO ADDC A,#060H MOV SPRAT4LO,A
Kôd u asembleru (9) MOV A,VREMEHI ADDC A,#0EAH MOV SPRAT4HI,A SETB GRUPA4 PALI4 MOV DPTR,#TABONOFF MOV A,#03 MOVC A,@A+DPTR ORL P3,A ;UKLJUCUJE ODGOVARAJUCE IZLAZE ZA TAST. SP4 TST5 JB GRUPA5,PALI5 JB SPRAT5,TST6 CLR C MOV A,VREMELO ADDC A,#060H MOV SPRAT5LO,A MOV A,VREMEHI ADDC A,#0EAH MOV SPRAT5HI,A SETB GRUPA5 PALI5 MOV DPTR,#TABONOFF MOV A,#04 MOVC A,@A+DPTR ORL P3,A ;UKLJUCUJE ODGOVARAJUCE IZLAZE ZA TAST. SP5 TST6 JB GRUPA6,PALI6 JB SPRAT6,TST7 CLR C MOV A,VREMELO
Kôd u asembleru (10) ADDC A,#060H MOV SPRAT6LO,A MOV A,VREMEHI ADDC A,#0EAH MOV SPRAT6HI,A SETB GRUPA6 PALI6 MOV DPTR,#TABONOFF MOV A,#05 MOVC A,@A+DPTR ORL P3,A ;UKLJUCUJE ODGOVARAJUCE IZLAZE ZA TAST. SP6 TST7 JB GRUPA7,PALI7 JB SPRAT7,TST8 CLR C MOV A,VREMELO ADDC A,#060H MOV SPRAT7LO,A MOV A,VREMEHI ADDC A,#0EAH MOV SPRAT7HI,A SETB GRUPA7 PALI7 MOV DPTR,#TABONOFF MOV A,#06 MOVC A,@A+DPTR ORL P3,A ;UKLJUCUJE ODGOVARAJUCE IZLAZE ZA TAST. SP7 TST8 JB GRUPA8,PALI8 JB SPRAT8,IZIRQ CLR C
Kôd u asembleru (11) MOV A,VREMELO ADDC A,#060H MOV SPRAT8LO,A MOV A,VREMEHI ADDC A,#0EAH ;EA60h=60000dec => vreme=60sec MOV SPRAT8HI,A SETB GRUPA8 PALI8 MOV DPTR,#TABONOFF MOV A,#07 MOVC A,@A+DPTR ORL P3,A ;UKLJUCUJE ODGOVARAJUCE IZLAZE ZA TAST. SP8 IZIRQ MOV TH1,#0FCH MOV TL1,#067H ;INT T1 NA 1mS POP PSW POP ACC RETI ;*** TABLICA PALJENJA/GASENJA IZLAZA *** TABONOFF DB 11000000B ;0 DB 11100000B ;1 DB 01110000B ;2 DB 00111000B ;3 DB 00011100B ;4 DB 00001110B ;5 DB 00000111B ;6 DB 00000011B ;7 END START
Zaključak • Ukratko su opisani su tipovi prenosa podataka • Opisana je arhitektura mikrokontrolera AT89S8253, organizacija memorije, programiranje, mogućnosti • Priloženi su načini serijskog programiranja mikrokontrolera AT89S8252 • Dat je slikoviti prikaz hardverske realizacije • Prezentovan je kôd u asembleru