indrumar lab mpc. 1

31
UNIVERSITATEA “OVIDIUS” CONSTANŢA LUCRĂRI DE LABORATOR Microprocesoare şi microcontrolere Ograzeanu Paul Mdalin

Upload: madalin-ograzeanu

Post on 09-Nov-2015

22 views

Category:

Documents


1 download

DESCRIPTION

INDRUMAR LAB MPC. 1 .doc

TRANSCRIPT

LABORATORUL I

[Type text][Type text]

UNIVERSITATEA OVIDIUS CONSTANA

LUCRRI

DE

LABORATOR

Microprocesoare i microcontrolere

Ograzeanu Paul Mdalin FORMDROPDOWN

FIZICA TEHNOLOGICA

ANUL IV

CUPRINSL I. Interfaarea dispozitivelor simple la microcontroler ........................................................... 3

LII. Interfaarea afioarelor cu 7 segmente ................................................................................ 6LIII. Interfaarea afioarelor inteligente (partea I) .................................................................... 9

LIV. Interfaarea afioarelor inteligente (partea a II-a))...........................................................12LV. Conversia analogdigital ...................................................................................................14LVI. Interfaare motoarelor pas cu pas unipolare la microcontroler .......................................18LVII. Comunicaii seriale i conversia TTL-RS232 21LABORATORUL I

INTERFATAREA DISPOZITIVELOR SIMPLE LA MICROCONTROLER

1.1. Scopul lucrarii

Familiarizarea cu limbajul de nivel inalt pentru microcontrolere de tip:PIC,clasa de mijloc denumit JAL(Just Anather Language).

1.2. Aparatura necesara

Statia de lucru care are instalat compilatorul JAL, platforma de dezvoltare cu microcontroler: PIC 16F877, programatorul :Pickit2 si software-ul aferent programului.

1.3. Consideratii teoretice

Limbajul de programare JAL este un limbaj de nivel inalt in care sintaxele liniilor de cos sunt foarte asemanatoare cu cele ale limbajului Basic pentru PC. Se poate numi Basic pentru microcontrolere.

Prin dispozitive periferice simple intelegem led-uri, butoane, buzere sau difuzoare,motoare de curent continu sau pas cu pas, etc.

1. Biblioteca jpic este interfata spre resursele microcontrolerului si acceseaza registrii ce definesc porturile fizice cat si directia de comunicatie a acestora.

2. Biblioteca jdelay contine rutina de intarziere cu asteptare. Fiecare rutina intarzie cu timpul indicat de catre programator si il inmulteste cu argumentul din paranteza. Aceste rutine de intarziere necesita frecventa de tact a oscilatorului de 4Mhz, 10MHz si 20MHz. Precizia este de cateva procente si cu cat timpul este mai scurt ,cu atat eroarea este mai mare.

1.4.SCHEMA ELECTRICA

1.5.Aplicatii

Se da urmatorul cod:

Include 16f877_20 --se defineste microcontrolerul folosit si frecventa oscilatorului

Include jpic --interfata de baza spre resursele microcontrolerelor PIC 16x84 si 16f87x

Inclide jdelay --biblioteca ce contine rutinele de intarziere

Pin_b0_direction= output se defineste pinul 0 din portul B ca fiind iesire

Forever loop --start program in bucla infinita

Pin_b0 =hight --pinul 0 din portul B trece in starea logica 1

Delay_100ms(5) --intarziere de 0,5 secunde

Pin_b0 =low --pinul 0 din portul B trece in starea logica 0

Delay_100ms(5) -- intarziere de 0,5 secunde

End loop

--sfarsit bucla ,reintializeaza

Acest cod face ca ledul conectat intre pinul 0 al portului B si masa sa se aprinda timp de 500 de milisecunde si sa fie stins tot atat timp.

Se cere:

1.Modificati codul initial astfel incat led-ul sa fie aprins timp de 100 de milisecunde si sa ramana stins timp de 400 de milisecunde.

pin_b0 = hight

delay_100ms(1)

pin_b0 = low

delay_100ms(4)

2. Instalati un al doilea led intre pinul 1 din portul B al microcontrolerului si masa, apoi completati codul astfel incat ledul 1 sa fie aprins timp de 300 milisecunde, dupa care se stinge cel de-al doilea led timp de 300 de milisecunde.

Include 16f877_20

Include jpic

Inclide jdelay

Pin_b0_direction= output

Pin_b1_direction = output

Forever loop

Pin_b0 =hight

Delay_100ms(3)

Pin_b0 =low

Delay_100ms(7)

Pin _b1 = hight

Delay_100ms(3)

Pin_b1 = low

Delay_100ms(7)

End loop

3. Modificati codul astfel incat ambele leduri sa clipeasca in acelasi timp cu o cadenta de 4 ori pe secunda.

Forever loop

Pin_b0 = hight

Pin_b1 = hight

Delay_100ms(2)

Pin_b0 = low

Pin_b1 = low

Delay_50ms(1)

End loop

4. Instalati pe pinul 2 din portul B un push-button. Modificati si completati codul a.i. la apasarea butonului,ledul 1 sa se aprinda cu ocadenta de 4 ori pe secunda si led-ul 2 sa fie stins cand este eliberat ledul 2 sa ramana aprins.

Pin_b0_direction = output

Pin_b1_direction = output

Pin_b2_direction = input

Forever loop

If pin_b1 = low

Pin_b0 = hight

Delay_100ms(2)

Pin_b0 = low

Delay_50ms(1)

Else pin_b1 = hight

Pin_b0 = low

End if

End loop

LABORATORUL II

INTERFAAREA AFIOARELOR CU 7 SEGMENTE

2.1. Scopul lucrarii

Interfatarea directa cu polarizare independenta si multiplexarea afisoarelor cu 7 segmente.

2.2. Aparatura necesara

Statia de lucru care are instalat compilatorul JAL, platforma de dezvoltare cu microcontroler: PIC 16F877, programatorul :Pickit2 si software-ul aferent programului.

2.3. Consideratii teoretice

Presupunem ca dispunem de un afisor cu anod comun, pinul common se va lega la sursa de alimentare iar segmentele a...g se vor conecta la masa prin intermediul unor rezistente de 330 de ohmi.

In general afisoarele cu leduri nu consuma un curent mai mare de 20-25 mA aper segment, asadar, se pot conecta direct la pinii microcontrolerului deoarece curentul maxim generat de un singur pin al microcontrolerului este de maxim 20mA fara a fi nevoie de buffere externe de curent.

Bibioteca jseven contine declaratii destinate afisarii cifrelor 0....9 pe afisoarele numerice cu anod sau catod comun cu interfatare directa la microcontroler. Aceasta biblioteca apeleaza si biblioteca jsevenp.

Biblioteca jsevenpcontine asignarile pinilor I/O utilizati de microcontroller pentru conexiunea cu afisoarele numerice.Aceasta biblioteca poate fi modificata de catre programator in functie de schema hardware pe care se lucreaza.

Instructiunea pentru afisarea pe digitii cu 7 segmente este seven_from_digit.Pentru ca rezultatul instructiunii sa fie negat(cand sunt folosite afisoare cu catod comun) atunci instructiunea se scrie sub forma !seven_from_digit . In JAL semnul exclamarii executa o negatie a variabilei.

2.4.Schema electrica

2.5. Aplicatii

Se da urmatorul cod:

Include 16f877_20

Include jlib

Include jdelay

Include jseven

Port_b_direction = all_output

Port_c_direction = all_output

Port_c2_direction = input

Var byte multiplex1 = 0b_0001

Var byte multiplex2 = 0b_0010

Var byte digit1 = 0

Var byte digit2 = 0

Port_c = multiplex1

Port_b= ! seven_from_digit(digit1)

Acest cod face ca primul digit sa afiseze valoarea variabilei de tip octet digit1acest caz 0 .Digitul este alimentat continu, starile porturilor Bsi C raman neschimbate deoarece instructiunile au fost executate doar o singura data, neexistand o bucla FOR.Acest lucru se numeste ca afisorul a fost polarizat independent, adica nu exista multiplexare pe plrturile microcontrolerului.

Se cere:

1.Completati codul astfel incat ambii digiti sa afiseze cifra 0 prin multiplexarea porturi-lor B si C urmarind cu atentie schema electrica.

Port_c = multiplex1

port_c = multiplex2

Port_b = !seven_from_digit(digit1)

port_b = !seven_from_digit(digit2)

Delay_1ms

delay_1ms

2.Instalati un push-button pe pinul 2 al portului C al microcontrolerului conform schemei electrice.Modificati si completati codul a. i la apasarea butonului variabila afisata de digitul 1 sa se incrementeze cu 1 la fiecare apasare.

If pin_c2

if digit == 10 then digit1 = 0

Them delay_100ms(3)

digit1 = digit1 + 1

Digit1 = digit1 + 1

end if

End if

3.Implementati codul de eliminare a impulsurilor parazite generate de apasarea butonului pentru o incrementare sigura a variabilei, fara sarituri.

Var byte time = 0

Forever loop

Time= time +1

If time ==10

Then digit2 = digit2 + 1

Time = 0

End if

If digit2 ==10

Then digit1 = digit1 + 1

Digit2 = 0

End if

If digit1 ==10 then digit1 = 0 digit2 = 0

End if

Port_c =multiplex1

Port_b =!seven_from_digit(digit1)

Delay_10ms(5)

Port_c = multiplex2

Port_b = !seven_from_digit(digit2)

Delay_10ms(5)

End loop

LABORATORUL III

INTERFAAREA AFIOARELOR INTELIGENTE (PARTEA I)3.1. Scopul lucrarii

Interfaarea driver-ului Hitachi HD44780 afior inteligent alfanumeric cu cristale lichide.

3.2. Aparatura necesara

Staia de lucru care are instalat compilatorul JAL, platforma de dezvoltare cu microcon-troler: PIC 16F877, programatorul: PicKit2 i software-ul aferent programatorului.

3.3. Consideratii teoretice

Hitachi HD44780 este unul dintre cele mai cunoscute circuite integrate destinate modulelor de afiare cu simboluri alfanumerice, caractere formate din matrice de puncte (dot-matrix display) 7x5. Afioarele cele mai rspndite sunt cele cu 16 caractere i 2 rnduri, dar sunt disponibile de la o singura linie pn la 4 linii de cte 16 sau 20 de caractere.

Biblioteca hd447804 asigur interfaarea pe 4 bii la controlerul Hitachi HD44780. Aceast bibliotec apeleaz i biblioteca hd44780p care conine asignrile pinilor microcontrolerului. Aceasta biblioteca poate fi modificat de ctre programator n funcie de legturile hardware realizate n schema electric.

Rutinele incluse n biblioteca hd44780 sunt:

- hd44780_clear terge afiorul

- hd44780_position1 (x) poziioneaz cursorul pe linia 1 i pe poziia lui x fr s stearga afiajul

- hd44780_position2 (x) poziioneaz cursorul pe linia 2 i pe poziia lui x fr s tearga afiajul

- hd44780_line1 poziioneaz cursorul pe linia 1, poziia 1, fr s tearg afiajul

- hd44780_line 2 poziioneaz cursorul pe linia 2, poziia2, fr s tearg afiajul

- cursor_blink (x) pentru x = 1 cursorul i caracterul pulseaz, pentru x = 2 cursorul este afiat, pentru x = 3 cursorul este afiat i caracterul corespunztor pulseaz

- cursor_off stinge cursorul

- cursor_left mut cursorul cu o poziie la stnga

- cursor_right mut cursorul cu o poziie la dreapta

- shift_left curge ntregul text de la stnga spre dreapta

- shift_right curge ntregul text de la dreapta spre stnga

Schema electrica

3.4. Aplicatii

Se d urmtorul cod:

include 16f877_20

include hd447804

include jpic

include jlib

include jdelay

hd44780_clear

hd44780_line1

hd44780 = "H" hd44780 = "e" hd44780 = "l" hd44780 = "l" hd44780 = "o" hd44780 = " "

hd44780 = "W" hd44780 = "o" hd44780 = "r" hd44780 = "l" hd44780 = "d" hd44780 = "!"

Acest cod face ca pe linia 1, ncepnd de la poziia 1, s fie afiat mesajul: Hello World!.

Se cere:

1) Modificai codul astfel nct cuvntul: Hello, s fie afiat pe prima linie, la poziia 3, iar cuvntul: World!, s fie afiat pe rndul 2, la poziia 8.

hd44780_position1 (3)

hd44780 = "H" hd44780 = "e" hd44780 = "l" hd44780 = "l" hd44780 = "o" hd44780 = " "

hd44780_position2 (8)

hd44780 = "W" hd44780 = "o" hd44780 = "r" hd44780 = "l" hd44780 = "d" hd44780 = "!"

2) Poziionai cursorul pe linia 2, poziia 4. Completai codul astfel nct s fie afiat cursorul i caracterul corespunztor poziiei cursorului s pulseze.

hd44780_position2 (4)

cursor_blink (3)

3) Completai codul astfel nct s se afieze acelai mesaj: Hello World, pe primul rnd, de la poziia 1, liter cu liter, la distana de 300 de milisecunde una fa de cealalt, folosind rutinele de ntrziere delay.

hd44780_line1

hd44780 = "H" delay_100ms (3)

hd44780 = "e" delay_100ms (3)

hd44780 = "l" delay_100ms (3)

hd44780 = "l" delay_100ms (3)

hd44780 = "o" delay_100ms (3)

hd44780 = " " delay_100ms (3)

hd44780 = "W" delay_100ms (3)

hd44780 = "o" delay_100ms (3)

hd44780 = "r" delay_100ms (3)

hd44780 = "l" delay_100ms (3)

hd44780 = "d" delay_100ms (3)

hd44780 = "!" delay_100ms (3)

4) Completai codul astfel nct mesajul: Hello World, s circule pe prima linie a afiorului de la dreapta spre stnga folosind o ntrziere de 100ms intr-o bucl infinit.

hd44780_clear

procedure hello is

hd44780_position1 (16)

hd44780 = "H" hd44780 = "e"

hd44780 = "l" hd44780 = "l"

hd44780 = "o" hd44780 = " "

hd44780 = "W" hd44780 = "o"

hd44780 = "r" hd44780 = "l"

hd44780 = "d" hd44780 = "!"

end procedure

forever loop

hello

shift_right

delay_100ms

end loop

LABORATORUL IV

INTERFAAREA AFIOARELOR INTELIGENTE (PARTEA A II-A)3.1. Scopul lucrarii

Afiarea unei variabile n binar i zecimal cu ajutorul bibliotecii: jprint.

3.2. Aparatura necesara

Staia de lucru care are instalat compilatorul JAL, platforma de dezvoltare cu microcontroler: PIC 16F877, programatorul: PicKit2 i software-ul aferent programatorului

3.3. Schema electrica

3.4.Aplicatii

Se d urmtorul cod:

include 16f877_20

include hd447804

include jpic

include jlib

include jdelay

hd44780_clear

hd44780_line1

hd44780 = "B" hd44780 = "&" hd44780 = "D" hd44780 = " " hd44780 = "d" hd44780 = "i "

hd44780 = "s" hd44780 = "p" hd44780 = "l" hd44780 = "a" hd44780 = "y"

Se cere

1) Definii o variabil: number, cu valoarea iniial: 0 i afiai-o pe HD44780 pe linia 2, la poziia 1, innd cont c microcontrolerul lucreaz pe 8 bii, deci valoarea maxim pe care o poate lua o variabil n cod zecimal este: 255.

var byte number = 0

hd44780_position2 (1)

print_decimal_3(hd44780, number)

2) Fixai rata de refresh a afiorului la 30 de milisecunde pentru o bucl de citire (se execut o bucl infinit la fiecare 30 de milisecunde).

forever loop

delay_10ms (3)

end loop

3) Afiai valoarea aceleiai variabile: number, dar n cod binar, ncepnd de pe linia 2, de la poziia 6.

hd44780_position2 (6)

print_binary_8(hd44780, number)

4) Incrementai valoarea variabilei: number, o dat la aproximativ o secund, dar pstrnd valoarea refresh-ului la 30 de milisecunde.

var byte number = 0

var byte time = 0

forever loop

hd44780_position2 (1)

print_decimal_3(hd44780, number)

delay_10ms (3)

time = time + 1

if time == 34 then number = number + 1 time = 0

end if

if number == 256 then number = 0

end if

end loop

LABORATORUL V

CONVERSIA ANALOGDIGITAL4.1.Scopul lucrarii

Conversia analog-digital n microcontrolerul PIC 16F877. Msurarea i calibrarea unui semnal analogic injectat n intrarea AN0. Afiarea rezultatului pe un display alfanumeric HD44780.

4.2. Aparatura necesara

Staia de lucru care are instalat compilatorul JAL, platforma de dezvoltare cu microco-ntroler: PIC 16F877, programatorul: PicKit2 i software-ul aferent programatorului.

4..3. Consideratii teoretice

Parametrii cei mai important ce definesc un convertor analog-digital sunt:

-rezoluia numrul de stri logice distincte maxime pentru o tensiune de intrare.Exemplu:

Convertorul este pe 10 bii deci are 1024 de stri distincte i cap de scal 5 voli. Atunci rezoluia va fi 5V/1024 stri posibile = 4.8 mV. Deci semnalul cel mai mic msurat nu poate fi mai mic dect 4.8V n cazul convertorului A/D integrat n PIC 16F877.

-cap de scal (Full Scale) - cea mai mare valoare posibil la ieirea convertorului A/D

-timpul de conversie intervalul de timp necesar generrii codului binar din momentul nceperii conversiei. Se mai numete i timp de achiziie.-eroarea de offset valoarea digitala de ieire corespunztoare unei tensiuni de intrare nule.

Microcontrolerul PIC 16F877 are n structura intern un convertor de 10 bii cu 8 canale multiplexate. Este un convertor de uz general suficient de precis pentru multe aplicaii precum msurarea tensiunii i curentului n industrie pana la msurarea semnalelor bioelectrice (foarte mici).

Biblioteca janalog apeleaz regitrii interni ai microcontrolerului pentru conversia analog-digital i conine i rutine de conversie a rezultatului n diferite formate, deoarece variabila de lucru pentru microcontrolerul PIC 16F877 este de doar 8 bii (adic o valoare zecimal de 255). Rezultatul conversiei analog-digitale poate lua valori intre 0 i 1023, deci rezultatul va fi spart n mai multe variabile.

Biblioteca bin2bcd3 convertete rezultatul msurtorii, care este format din doi octei (bytes) n 3 variabile de tip octet (byte) pentru manipularea uoar a rezultatului conversiei analog-digitale.

4.4. Schema electrica

4.5 Aplicatii Se d urmtorul cod:

include f877_20

include jpic

include janalog

include jprint

include jdelay

include hd447804

hd44780_clear -- terge afiorul

ad1_noref

forever loop

ch0_on -- pornete conversia pe canalul 0

ch_write_1023 -- convertete rezultatul conversiei

hd44780_line1

print_hexadecimal_2 ( hd44780, isd, "0" )

hd44780_position1 (2)

print_hexadecimal_2 ( hd44780, lsd, "0" )

delay_100ms (3)

end loop.

Se cere:

1) Afiai pe rndul 2 al afiorului valorile parametrilor isd (intermediate significant digit) i lsd (less significant digit) n baza 10. Pentru fiecare msurtoare trecei n tabelul 1 rezulta-tul fiecrui parametru.

hd44780_line2

print_decimal_2 ( hd44780, isd, "0" )

hd44780_position2 (3) -- pentru o mai bun vizualizare a celor 2 parametrii

print_decimal_2 ( hd44780, lsd, "0" )

2) ncepnd de la 0, cretei valoarea tensiunii analogice aplicat la intrarea convertorului n pai de 500mV pn atingei capul de scal. Introducei valorile digitale msurate n tabelul 1.

Valoare analogic (V)Valoare afiatValoare isdValoare lsd

000000000

0,501020102

102050205

1,503070307

204090409

2,505120518

306140620

3,507160722

408180824

4,509210933

510231635

3) Completai codul astfel nct la fiecare valoare ntreag a tensiunii s se aprind cte un LED.

Exemplu:

Pentru tensiunea de 1V s se aprind LED1 i aa mai departe.

if isd == 00 then if lsd == 00 then

pin_d0 = low

pin_d1 = low

pin_d2 = low

pin_d3 = low

pin_d4 = low

end if

end if

if isd >= 02 then if lsd >= 05 then

pin_d0 = high

pin_d1 = low

pin_d2 = low

pin_d3 = low

pin_d4 = low

end if

end if

if isd >= 04 then if lsd >= 09 then

pin_d0 = high

pin_d1 = high

pin_d2 = low

pin_d3 = low

pin_d4 = low

end if

end if

if isd >= 06 then if lsd >= 20 then

pin_d0 = high

pin_d1 = high

pin_d2 = high

pin_d3 = low

pin_d4 = low

end if

end if

if isd >= 08 then if lsd >= 24 then

pin_d0 = high

pin_d1 = high

pin_d2 = high

pin_d3 = high

pin_d4 = low

end if

pin_d2 = hight

end if

pin_d3 = hight

if isd >= 16 then if lsd >= 35 then

pin_d4 = hight

pin_d0 = high

end if

pin_d1 = high

end if.

LABORATORUL VI

INTERFAAREA MOTOARELOR PAS CU PAS UNIPOLARE LA

MICROCONTROLER

5.1.Scopul lucrarii

Interfaarea motoarelor pas cu-pas folosind driver-ele de putere ULN2003

5.2. Aparatura necesara

Staia de lucru care are instalat compilatorul JAL, platforma de dezvoltare cu microcontroler: PIC 16F877, modulul cu driver-ul de putere (ULN2003), programatorul: PicKit2 i software-ul aferent programatorului.

5.3. consideratii teoretice

Circuitul integrat ULN2003 conine 7 drivere de putere (figura 1), fiecare constnd din dou tranzistoare n conexiune Darlington. Comanda lor se face ntr-o gam larg a tensiunii de deschidere, putnd fi folosite semnale TTL (05V) ct i CMOS (030V).

Secvena de comand a motoarelor pas-cu-pas unipolare este prezentat n figura 2.

5.4. Schema electrica

5.5. Aplicatii

Se cere:

S se scrie un program n JAL, care la apsarea butonului B1 s acioneze motorul pas-cu-pas nainte i la apsarea butonului B2 s acioneze motorul napoi. Timing-ul ntre secvene trebuie s fie de 500 milisecunde.

Not:

inei cont de faptul c la ieirea driverului, polaritatea semnalului este inversat; dac la pinul microcontrolerului exist nivel logic 1, atunci ieirea driverului va lua valoarea 0!

include 16f877_20

include jpic

include jdelay

include janalog

pin_b0_direction = input

pin_b1_direction = input

port_d_low_direction = all_output

procedure forward is

port_d_low = 0b_0001

delay_100ms (5)

port_d_low = 0b_0010

delay_100ms (5)

port_d_low = 0b_0100

delay_100ms (5)

port_d_low = 0b_1000

delay_100ms (5)

end procedure

procedure backwards is

port_d_low = 0b_1000

delay_100ms(5)

delay_100ms (5)

end procedure

port_d_low = 0b_0100

forever loop

delay_100ms (5)

if pin_b0 then forward end if

port_d_low = 0b_0010

if pin_b1 then backwards end if

delay_100ms (5)

end loop.

port_d_low = 0b_0001

Laboratorul VIIComunicaii seriale i conversia TTL-RS2327.1. Scopul lucrrii

Conversia TTL-RS232 cu circuitul integrat MAX232, transmisia i recepia serial a da-telor ctre i dinspre PC i msurarea tensiunii cu prelucrarea datelor n cod LabView.

7.2. Aparatura necesar

Staia de lucru care are instalat compilatorul JAL, platforma de dezvoltare cu microcon-troler: PIC 16F877, mediul de dezvoltare LabView, programatorul: PicKit2 i software-ul aferent programatorului.

7.3. Consideraii teoretice

Microcontrolerul PIC16F877 este dotat cu un modul de comunicaie serial care folosete semnale TTL pentru transmisia i recepia serial a datelor. Pentru interfaarea la standardul RS232 este nevoie de un convertor extern care transform semnalele TTL (05V) n semnale standardizate RS232. n acest scop este folosit circuitul integrat MAX232 sau unul echivalent.

Exist 3 moduri de folosire al portului serial RS232, i anume:

simplex atunci cnd un echipament transmite i cellalt recepioneaz; half duplex echipamentele funcioneaz pe rnd; unul transmite i cellalt recepio-neaz i invers; full duplex ambele echipamente pot transmite i recepiona n acelai timp.

Figura 1Semnificaia pinilor RS232 este:

TxD ieire de date

RxD intrare de date

GND masa semnalelor

RTS Request to Send ieire de interogare a perifericelor

DTR Data Terminal Ready semnalizare terminal liber (poate primi sau transmite date)

CTS Clear to Send intrare de acceptare a pachetului de date

DSR Data Set Ready intrare de validare a comunicaiei

DCD Data Carrier Detect intrare de semnalizare a prezentei purttoarei mode-mului

RI Ring Indicator intrare de semnalizare a funcionarii soneriei la terminalul opus

Biblioteca serialso.jal conine rutinele de accesare a transceiverului serial incorporat n PIC16F877. Pentru setarea vitezei de comunicaie se modific parametrul F877_SPBRG = X, din interiorul bibliotecii.

Pentru transmisia datelor se folosete comanda async_tx (variabile definite de ctre pro-gramator). Pentru recepia datelor se folosete comanda async_rx (variabile definite de ctre programator).

7.4. Schema electric

7.5. Aplicaii

Se d urmtorul cod:

include f877_20include jpicinclude janalog

include jprint

include jdelay

include hd447804

include serialsoport_d_direction = all_output

port_d = 0

hd44780_clear

ad1_norefforever loop

ch0_on

ch_write_1023

hd44780_line1

print_hexadecimal_2 ( hd44780, isd, "0" )

hd44780_position1 (2)

print_hexadecimal_2 ( hd44780, lsd, "0" )

async_tx (isd)

async_tx (lsd)

delay_10ms (5)

end loop

Se cere:

1) Lansai codul LabView i cretei tensiunea de intrare pn cnd atingei capul de scal urmrind numrul afiat pe display-ul alfanumeric. Notai valoarea tensiunii de intrare:2) tiind valoarea tensiunii la cap de scal, calculai cea mai mic diviziune a tensiunii msurate innd cont de faptul c rezoluia convertorului A/D este de 10 bii: 3) Completai codul astfel nct s afiai textul HA, HA! pe display-ul alfanumeric i trimitei datele pe interfaa RS232. Folosii codurile ASCII aferente caracterelor din tabela ASCII ataat.4) Modificai viteza de transmisie a datelor seriale la 9600 baud accesnd parametrul SPBRG din biblioteca serialso.

PAGE 20