650 likes | 838 Views
Cap.1. Aspecte generale privind sistemele cu microcontroler. Ansamblul smC - PC / Periferice. Spre alte sist.informatice. Tastatura, Butoane cd. Unitate Centrala P (UCP) + M+ I/O. Sist.conversie şi adaptare comenz i. Sist.adaptare şi conversie date.
E N D
Cap.1. Aspecte generale privind sistemele cu microcontroler Mihai Moga Sisteme cu microcontrolere
Ansamblul smC - PC/ Periferice Mihai Moga Sisteme cu microcontrolere
Spre alte sist.informatice Tastatura, Butoane cd. Unitate Centrala P (UCP) + M+ I/O Sist.conversie şi adaptare comenzi Sist.adaptare şi conversie date Procesul industrial condus STRUCTUA generalA A UNUI sistem cu microcontroler Mihai Moga Sisteme cu microcontrolere
Funcţiile de bază ale unui controler • - prelevarea datelor din proces; • - prelucrarea datelor şi afişarea rezultatelor; • - transmiterea de comenzi către proces; • - dialogul cu operatorul local, Mihai Moga Sisteme cu microcontrolere
Categorii de smC-uri • Sisteme de dezvoltare (SD) - cu circuite de memorie nevolatilă externe sau integrate în care se înscrie programulMonitor • Sisteme de aplicaţii (SA) - care au înscris definitiv, în circuitele de memorie nevolatile, doar programul de aplicaţie elaborat şi testat cu ajutorul unui sistem de dezvoltare adecvat. Mihai Moga Sisteme cu microcontrolere
PC [IDE] Cablu ecranat 3 x 1: RxD; TxD,; GND SD - Sistem de dezvoltare cu C P80C552 [Monitor] In-terfaţa serie RS 232 COM Conectarea SD cu calculatorul master, PC Mihai Moga Sisteme cu microcontrolere
Structura hard de principiu a unui sistem cu C Mihai Moga Sisteme cu microcontrolere
Structura soft de principiu a unui sistem cu C Mihai Moga Sisteme cu microcontrolere
P OSC Logica cda. &sincroniz. mC RAM ROM (Opţional) Mag. D, A & C Porturi I/O paralele Port serial P0 P1 Pn T/Num . . . RxD ... Pn.0 Pn.7 T ... P1.0 ... P0.0 TxD P1.7 P0.7 RAM ext AFI-SAJ MODEM PROMext CAN& Mux Tastatura Periferice atasabile microcontrolerului Arhitectura de principiu a unui mC Mihai Moga Sisteme cu microcontrolere
Cap.2. DESCRIEREA GENERALĂ A mC-ului P80C552 Mihai Moga Sisteme cu microcontrolere
Functii AVdd Vdd Vss alternative AVss ALE STADC P0.0 AD0 P5.0 AD1 AD2 P5.1 AI AD3 AD4 AD5 P5.7 AD6 P0.7 AD7 Vref- P2.0 Vref+ A08 A09 A10 A11 80C552 A12 A13 P2.6 A14 P2.7 A15 PMW0 PMW1 PSEN P4.0 P4.1 EA P3.0 RxD P4.7 P3.1 TxD P1.0 P3.2 INT0 P3.3 INT1 P1.7 P3.6 WR EW RD P3.7 RST XTAL1 XTAL2 Caracteristicile & Simbolul mC-ului P80C552 • UC de tip 80C51; • 256 Octeţi RAM intern, • 3 Contoare/Temporiz. • CAN /10 biţi, 8 intrari; • 6 porturi paralele; • 2 porturi seriale; • Peste 100 instrucţiuni executabile Mihai Moga Sisteme cu microcontrolere
Bornele (pinii) circuitului • VDD, VSS- Alimentare circuit • PSEN - Program Store Enable ; • ALE - Address Latch Enable ; • EA- External Access.; • XTAL1, XTAL2 - Cristal Input, Output; • P0.0 - P0.7 -Portul 0- paralel pe 8 biţi bidirecţional; • ... • P5.0 – P5.7 –Idem Portul 5; • - Borne aferente CAN-ului intern Mihai Moga Sisteme cu microcontrolere
Reg.SP Reg. A Reg.B XTAL2 XTAL1 C 80C51: Arhitectura şi regiştrii interni AD7 - 0 P2.0 P2.7 P0.7 P0.0 Memorie program ROM 4 kBy SFR 128 By Ampl.mag.port P2 Ampl.mag.port P0 Mem.de dateRAM 128 By Reg.deadr.date program Reg.deadr.date Reg.port P2 Reg.port P0 Reg.detransfer 16 linii 8 linii Reg.PC A L U Reg.PSW Reg.DPTRnsfer PSEN Unitate decomandã sisincronizare Reg.deinstruct. B Magistrala interna de date 8 biti ALE mP/8 biţi EA Port serial A RD T/N T0 ; T1 Reg.port P3 Reg.port P1 RST WR Ampl.mag.port P3 Generator de tact Ampl.mag.port P1 Logica cda.întrerup. INT0 INT1 P3.7 P3.0 P1.7 P1.0 Mihai Moga Sisteme cu microcontrolere
Registrii interni • Reg DPTR - Data Pointer - adrese: 82h şi 83h; • Reg SP, Stack Pointer; adresa: 81h, reprezintă Indicatorul vârfului stivei; • Reg P0, P1, P2, şi P3 - regiştri pe 8 biţi, ataşaţi porturilor paralele respective; • Reg P4, P5 sunt regiştri de port specifici mC-ului 80C552 Mihai Moga Sisteme cu microcontrolere
C 80C552: Arhitectura internă Mihai Moga Sisteme cu microcontrolere
Organizarea memoriei la sisteme cu C 80552 Mihai Moga Sisteme cu microcontrolere
Memoria RAM de date internă Mihai Moga Sisteme cu microcontrolere
Regiştrii cu funcţii speciale (SFR • Reg A sau ACC, adresa E0h, registrul Acumulator ; • Reg PSW - Program Status Word- • 7 6 5 4 3 2 1 0 • C AC * RS1 RS0 OV * P • D7h D6h D5h D4h D3h D2h D1h D0h Mihai Moga Sisteme cu microcontrolere
EPROM 80C552 D0-D7 PSEN A0 Mem.ext. .... AD0 P0 program . . . 0 A7 P0 Latch P0 AD7 A8 (64 kO) 7 .... EA DI0 DO0 . . . . . . A15 CS DI7 DO7 OE ALE STB P2 A8 0 . . . P2 RAM D0-D7 A15 P2 7 A0 RD Mem. ext. P3.7 .... A7 de date P3.6 A8 WR (64 kO) .... A15 CS OE WE Fig. 2.6. Schema de conectare a memoriilor externe, de program şi de date Memoria externă de date şi de programe Mihai Moga Sisteme cu microcontrolere
Selectarea circuitului de memorie de 32 kO, cu acces la programul de aplicaţie RAM D0-D7 A0 Mem. ext. .... PSEN de date A7 A8 (32 kO) .... A14 RD OE WE WR CS A15 Mihai Moga Sisteme cu microcontrolere
Functii AVdd Vdd Vss alternative AVss ALE STADC P0.0 AD0 P5.0 AD1 AD2 D0 Q0 D1 Q1 D2 Q2 D3 Q3 D4 Q4 D5 Q5 D6 Q6 D7 Q7 E OE P5.1 AI AD3 AD4 AD5 P5.7 AD6 74LS373 P0.7 AD7 Vref- P2.0 Vref+ A08 A09 A10 A11 80C552 A12 A13 P2.6 A14 P2.7 A15 PMW0 PMW1 PSEN P4.0 P4.1 EA P3.0 RxD P4.7 P3.1 TxD P1.0 P3.2 INT0 P3.3 INT1 P1.7 P3.6 WR EW RD P3.7 RST XTAL1 XTAL2 XTAL2 Schema de conectare a memoriei externe pentru un SA D0 A0 D1 A1 D2 A2 D3 A3 D4 A4 D5 A5 D6 A6 D7 A7 A8 A9 A10 WE OE CS D0 A0 D1 A1 D2 A2 D3 A3 D4 A4 D5 A5 D6 A6 D7 A7 A8 A9 OE CS 2K * 8bit RAM 1K* 8bit EPROM Mihai Moga Sisteme cu microcontrolere
Functii AVdd Vdd Vss alternative AVss ALE STADC P0.0 AD0 P5.0 AD1 AD2 D0 Q0 D1 Q1 D2 Q2 D3 Q3 D4 Q4 D5 Q5 D6 Q6 D7 Q7 E OE P5.1 AI AD3 AD4 AD5 P5.7 AD6 74LS373 P0.7 AD7 Vref- P2.0 Vref+ A08 A09 A10 A11 80C552 A12 A13 P2.6 A14 P2.7 A15 PMW0 PMW1 PSEN P4.0 P4.1 EA P3.0 RxD P4.7 P3.1 TxD P1.0 P3.2 INT0 P3.3 INT1 P1.7 P3.6 WR EW RD P3.7 RST XTAL1 XTAL2 XTAL2 Schema de conectare a memoriei externe pentru un SD D0 A0 D1 A1 D2 A2 D3 A3 D4 A4 D5 A5 D6 A6 D7 A7 A8 A9 A10 WE OE CS D0 A0 D1 A1 D2 A2 D3 A3 D4 A4 D5 A5 D6 A6 D7 A7 A8 A9 OE CS 2K * 8bit RAM 1K* 8bit EPROM A11/P2.3 Mihai Moga Sisteme cu microcontrolere
Adrese memorie : 210 = 1024 = 1 k ; 211 = 2048 = 2 k ; 212 = 4096 = 4 k ; 213 = 8192 = 8 k; 214 = 16384 = 16 k; 215 = 32768 = 32 k ; 216 = 65536 = 64 k Mihai Moga Sisteme cu microcontrolere
Modurile de adresare a memoriei 1. Mem.RAM interna (0-127)& SFR • Adresare directă:MOV A, direct ; e.g. MOV A,R5 Mihai Moga Sisteme cu microcontrolere
Modurile de adresare a memoriei 2. Mem.RAM interna 0 - 255 • Adresare indirectă:MOV A, @Ri , unde Ri = R0 sau R1 Mihai Moga Sisteme cu microcontrolere
Modurile de adresare a memoriei 3. Mem.RAM externa • Adresare indirectă: • MOVX A, @DPTR, unde (DPTR) = 0 …65535 • MOVX A, @Ri , unde Ri = R0 sau R1 Mihai Moga Sisteme cu microcontrolere
S1 S6 S2 S3 S4 S5 S6 S1 P1 P2 P1 P2 P1 P2 P1 P1 P1 P1 P1 P2 P2 P2 P2 P2 Ciclu masinã 1 PSEN ALE Memorare adresa Memorare adresa AD0.... AD7 P0.0 .... P0.7 Cod Cod PCL PCL PC =PC +1 PC =PC + 1 A8 .... A15 P2.0 .... P2.7 PCH PCH PCH Cap 3. Funcţionarea şi programarea C -ului • 1. Cronograma corespunzătoare extragerii unei instrucţiuni pe 2 octeţi din memoria program Execuţia instrucţiunilor cod maşină Mihai Moga Sisteme cu microcontrolere
S5 S3 S6 S4 S6 S1 S1 S2 P1 P1 P1 P1 P1 P1 P1 P1 P2 P2 P2 P2 P2 P2 P2 P2 Ciclu masinã 1 PSEN ALE Memorare adresa Memorare adresa PC =PC +1 AD0 .... AD7 P0.0 .... P0.7 24h 17h C4h C5h Adresa urmat. instr. Codul urmat. instr. Codul instr. Operand Adresa operandului A8 .... A15 P2.0 .... P2.7 A2h A2h A2h Cronograma corespunzătoare extragerii instrucţiunii ADD A,#17h de la adresa A2C3h Execuţia A2C3h 00100100b (24h) (codul operaţiei) A2C4h 00010111b (17h) • 1.instrucţiunilor cod maşină Mihai Moga Sisteme cu microcontrolere
Instrucţiunile C 8051 • Transfer de date : MOV; PUSH; POP; XCH; MOVX. • I. aritmetice: ADD; INC; DEC; SUBB; MUL; DIV, • I. logice: ANL; ORL; XRL, • I. salt şi apel subrutine:CALL; JMP; RET; JC/JNC; JZ/JNZ, JB/JNB; JBC; CJNE; DJNZ; RETI. • I. aplicabile la nivel de bit: CLR, SETB,ANL, MOV, etc Mihai Moga Sisteme cu microcontrolere
Notații • Rr unul dintre regiştrii R7 - R0, din bancul de regiştrii de lucru selectat; • direct adresa unei locaţii de memorie RAM internă (0 –127) sau SFR (128-255); • @Ri locaţie de RAM intern, adresată indirect prin Ri= R1 sau R0; • # data constantă pe 8 biţi, inclusă în instrucţiune; • # data16 constantă pe 16 biţi, inclusă în instrucţiune; • bit bitul adresat direct în RAM-ul intern sau SFR Mihai Moga Sisteme cu microcontrolere
Structura unui program in LA 1. Comanda cseg at adip 2. Corpul programului format din: a) Lista pseudoinstrucţiunilor pentru definirea etichetelor şi mesajelor utilizate: EQU,DATA,DB,USING, etc.; b) Lista instrucţiunilor programului. 3. Comanda end. sfârşit de fişier Programarea C – elor din familia 8051 Mihai Moga Sisteme cu microcontrolere
Aplicaţie: Program de testarea unei zone de 200 locaţii de memorie externă SRAM, începând cu adresa 1000h. START NU Afiseaza DEFECT N=Nc ? Initializeaza: ADR - adresa de testat CNT – contorul de locatii DA Actualizare: ADR :=ADR +1; CNT :=CNT -1; Inscrie in locatia ADR un octet oarecare N Afiseaza OK DA CNT=0 ? CitesteNc, continutullocatiei ADR NU
Programul sursă cseg at 0000h WS: EQU 80Adh ; Psi pentru punctul de revenire program mov DPTR,#1000h ; Iniţializare ADResa locaţiilor testate şi mov R1, #200 ; a CoNTorului de locaţii de testat CONT: mov A,#23 movx @DPTR,A ;Înscrie N şi apoi citeşte conţinutul movx A,@DPTR ; locaţiei ADR curente cjne A,#23,DEFECT inc DPTR ; actualizează adresa de testat djnz R1,CONT ; verifică dacă a fost ultima locaţie mov P1,#10101010b ; Confirma viabilitatea memoriei ljmp WS ; Revine în punctul cald WS al Monitorului DEFECT: mov P1,#00001111b ; Memorie defectă ljmp 80Adh ; Revine în punctul cald WS al Monitorului End Mihai Moga Sisteme cu microcontrolere
Programul obiect • SourceFile = TT.ASM • LOC OBJ LINE SOURCE • cseg at 0000 • 0000 901000 4 mov DPTR,#1000h • 7573C8 5 mov R1, #200 • 0006 7417 6 CONT: mov A,#23 • 0008 F0 7 movx @DPTR,A • 0009 E0 8 movx A,@DPTR • 000A B4170A 9 cjne A,#23,DEFECT • 000D A3 10 inc DPTR • 000E D573F5 11 djnz R1,CONT • 0011 7590AA 12 mov p1,#10101010b • 0014 0280AD 13 ljmp 80Adh • 0017 75900F • 14 DEFECT: mov p1,# 00001111b • 001A 0280AD 15 ljmp 80Adh • End • SYMBOL TABLE LISTING Mihai Moga Sisteme cu microcontrolere
Cap.4 1.Porturile C-ului P80C552 • 6 porturi paralele / 8 biţiP0 … P5; • P1 şi P4 porturi bidirectionale, uz general; • P0 – f.a. pentru acces date (D7 –D0) şi adrese (A7 –A0); • P2 – f.a. pentru acces adrese (A15 –A8); • P3 – f.a. pentru transm. Seriale TxD şi RxD, comanda mem. RD şi WR; • P5 – port de intrare pentru s.analogice Mihai Moga Sisteme cu microcontrolere Mihai Moga Sisteme cu microcontrolere 39
Structura de principiu a unui port Mihai Moga Sisteme cu microcontrolere
Schema unei linii de port, P1.x Mihai Moga Sisteme cu microcontrolere
Interfaţare a unor periferice simple anclanşarea releului cu: SETB P1.0;sau ORL P1,#00000001b; Mihai Moga Sisteme cu microcontrolere
Transferul serial al datelor • Port SIO0 – tip UART; • Port SIO1 – tip IIC; - numai 80C552 Mihai Moga Sisteme cu microcontrolere
Schema transferului serial / SIO0 mC 8051 • mov SBUF, A; • mov A,SBUF RxD (P3.0) TxD (P3.1). Registru de deplasare, SIPO Registru de deplasare, PISO SBUF (Numai scriere) SBUF (Numai citire) Magistrala internă de date Mihai Moga Sisteme cu microcontrolere
Reg. SCON • 7 6 5 4 3 2 1 0 • SM0 SM1 SM2 REN TB8 RB8 TI RI • Fanion (Flag) de stare a recepţiei • Fanion (Flag) de stare transmisiei • Bitul 9 la recepţie. Bitul de paritate • Bitul 9 la transmisie. Bitul de paritate. • Porneste/Opreste recepţia (Receive ENable) • Validează comunicarea multiprocesor • Grup de 2 biţi care determina modul de lucru al transm. seriale ( 0 - 3) Mihai Moga Sisteme cu microcontrolere
Recepţia unui octet de la interfaţa seriala,subrutina WAITKEY WAITKEY: JNB RI, WAITKEY ;aşteptă recepţia completă a unui caracter • MOV A,SBUF ; il citesc din buferul de seriala • CLR RI ; sterg flagul de receptie • RET ; revin in programul apelant Mihai Moga Sisteme cu microcontrolere
Transmisie serie mod 2, 3 Mihai Moga Sisteme cu microcontrolere
:32 SMOD=0 [Hz] f0 Bps :256-TH1 :12 :16 SMOD=1 Vitezele de transfer, bps • Modul 2 : Bps= f0/32 pentru SMOD =1 sau f0/64, pentru SMOD =0; • Modurile 1 & 3 : Mihai Moga Sisteme cu microcontrolere
Stabilirea ratei de transfer • Se stabilește modul de lucru, prin atribuirea de valori biţilor SM0 şi SM1 din registrul SCON; • Dacă s- a stabilit modul 1 sau 3, se stabilişte rata de transfer aleasa, bps, conform relatiei date; • Se calculeaza TH1 din relație și se rotungeste la voloare intreagă. • Exemplu de congigurare: • CLR SM0 ; | pune portul serial SETB SM1 ; | in modul1 de transfer MOV A, PCON ; | | setează SMOD SETB ACC.7 ; | in PCON pentru MOV PCON, A ; a dubla viteza de transfer MOV TH1, #253 ; pune -3 (253–256) in TH1 • MOV TMOD, #20H ; T1 in auto încărcare pe 8-biti • SETB TR1 ; Start T1 Mihai Moga Sisteme cu microcontrolere
Cablu ecranat 3 x 1: RxD; TxD,; GND SD - Sistem de dezvoltare cu C 80C552 f0= 12 MHz COM 1 RS 232 DB9,f Interf RS232 • 4800 bps; • fără control de paritate; • 8 biţi / caracter Sir 8 LED - uri Aplicaţie de comunicaţie serială SD <=> PC • Să se întocmească schema cablului de legătură serială; • Să se configureze comunicaţia serială cu parametrii daţi; • Să se elaboreze o aplicaţii de programare, Mihai Moga Sisteme cu microcontrolere