Biologie | Chimie | Didactica | Fizica | Geografie | Informatica | |
Istorie | Literatura | Matematica | Psihologie |
PROGRAMAREA SI UTILIZAREA SUBSISTEMELOR NTRARI SI IESIRI NUMERICE ALE INTERFETEI AX 5411
1.Obiectivele lucrarii
a) Insusirea modului de programare a subsistemului intrarilor numerice (SIN) prin operarea porturilor de intrare - iesire aferente;
b) Insusirea modului de programare a subsistemului iesirilor numerice (SEN) prin operarea porturilor de intrare - iesire aferente;
c) Elaborarea si implementarea unui program in C++Builder pentru realizarea unui decodificator software binar - hexa (7 segmente) ;
d) Elaborarea unui program in C++Builder pentru comanda unui dispozitiv de afisare cu 7 segmente;
2. aparatura si suporturile utilizate:
a) PC in configuratia unitate centrala, monitor, tastatura, mouse;
b) Modul pentru testarea sectiunilor numerice ale interfetei (figura 6.1);
d) Precizarile din prezentul indrumar;
e) Manualul utilizatorului pentru interfata AX 5411 (sectiunile referitoare la descrierea interfetei si prezentarea functiilor porturilor de intrare - iesire;
f) Manuale de prezentare a mediului C++Builder.
3. Breviar
3.1. Caracteristicile principale ale sistemului de interfata AX 5411
In continuare se reiau caracteristicile subsistemelor intrari si iesiri numerice ale sistemului de interfata AX5411. Pentru detalii privind caracteristicile acestui sistem , vezi precizarile din lucrarea nr. 4.
Subsistemul intrarilor numerice
Numar de intrari 8 (DI0.DI7);
Tip semnal acceptat compatibil TTL.
Subsistemul iesirilor numerice
Numar de iesiri 8 (DO0.DO7);
Tip semnal compatibil TTL.
Fig. 6.1. Schema modulului pentru testarea sectiunii
numerice a interfetei (MTSN) : DI0 . DI3 - intrari numerice; DO0 . DO3 - iesiri numerice; K . K -
comutaloare; D . D - diode cu
emisie luminoasa (LED); R . R - rezistoare;
DGND - masa numerica. |
3.2. Programarea SIN si SEN prin operarea porturilor interfetei
AX 5411
Dupa cum se stie din lucrarea numarul 4, adresa portului de baza (IOPORT) pentru interfata AX5411este 0x300 (hexa). Incepand cu aceasta adresa, interfata utilizeaza 16 adrese consecutive care constituie spatiul de intrare - iesire (I/E) al interfetei. In tabelul 6.1 se prezinta porturile aferente SIN si SEN. Reamintim ca asupra unui port se pot efectua operatii de citire (R = Read in tabelul 6.1) respectiv de inscriere (W = Write in tabelul 6.1).
Tabelul 6.1
Semnificatiile porturilor de adresare pentru SIN si SEN ale interfetei AX 5411
LOCATIE |
FUNCTIE |
TIP |
adresa de baza + 3 |
Digital Input - SIN |
R |
adresa de baza + 3 |
Digital Output - SEN |
W |
In continuare se prezinta succint semnificatiile si modul de operare a portului utilizat de SIN si de SEN.
Portul adresa de baza+3, la citire are structura din figura 6.2. In bitii IP0 - IP7 se inscriu cei 8 biti care corespund intrarilor numerice DI0 - DI7.
|
Fig. 6.2.
Portul adresa de baza+3, la scriere are structura din figura 6.3. In bitii OP0 - OP7 se inscriu cei 8 biti care vor fi transmisi la iesirile numerice DO0 - DO7.
|
Observatii
Scrierea intr-un port se face cu instructiunea axOutp, care are sintaxa axOutp(port,val), in care port reprezinta adresa portului, iar val variabila care contine valoarea ce se va transfera.
Citirea unui port se face cu instructiunea axInp, care are sintaxa val=axInp(port), in care port reprezinta adresa portului, iar val variabila care contine valoarea ce se preia prin citire.
Comutatoarele K0 . K3 ale modulului MTSN conecteaza intrarile DI0 - DI3 la masa (inchis - intrare zero) sau le lasa in aer (deschis - intrare 1).
In continuare se prezinta codurile sursa al functiilor Achiz_N si Gen_N, care permit achizitia / generarea unui octet de pe / pe portul IOPORT +3.
//Functia achizitie intrari numerice
int Achiz_N()
//Functia generare iesiri numerice
void Gen_N(int n) // n = octetul care se genereaza
Se prezinta mai jos codul sursa al programului P1 care realizeaza urmatoarele:
achizitia canalelor numerice DI0 - DI3 (la inchiderea unuia din comutatoarele K0 - K3) butonul aferent se activeaza ;
la apasarea unui buton activat se actioneaza iesirea numerica respectiva (concretizata in aprinderea LED-ului aferent de pe panoul MTSN ).
//Program P1 pentru utilizarea SIN si SEN ale interfetei AX5411
#include <vclvcl.h>
#pragma hdrstop
#include 'Unit1P1.h'
#include 'axdrv.h'
#define IOPORT 0x300
#pragma resource '*.dfm'
int nach=0;
unsigned char ngen=0;
TForm1 *Form1;
//Functia achizitie intrari numerice
int Achizitie_N()
//Functia generare iesiri numerice
void Gen_N(int n)
// n = numarul care se genereaza
__fastcall TForm1::TForm1(TComponent* Owner) //Constructor
: TForm(Owner)
void __fastcall TForm1::Timer1Timer(TObject *Sender) //Timer
if ((nach&2)==2)
Button2->Enabled=true;
else
if ((nach&4)==4)
Button3->Enabled=true;
else
if ((nach&8)==8)
Button4->Enabled=true;
else
void __fastcall TForm1::Button5Click(TObject *Sender) //Buton5
void __fastcall TForm1::Button1Click(TObject *Sender) //Buton1
void __fastcall TForm1::Button2Click(TObject *Sender) //Buton2
void __fastcall TForm1::Button3Click(TObject *Sender) //Buton3
void __fastcall TForm1::Button4Click(TObject *Sender) //Buton4
B. Desfasurarea lucrarii
a) Se realizeaza montajul din figura 6.4 in care subsistemele SIN (prin canalele DI0 - DI3 conectoarele 28,30,32,34) si SEN (prin canalele DO0 -DO3 - conectoarele 27,29,31,33) se conecteaza la modulul MTSN.
b) Se alimenteaza sistemul cu tensiune.
c) Se lanseaza mediul C++ Builder (dublu click pe icon-ul corespunzator din desktop) .
c) Se selecteaza din Main Menu optiunea File si apoi OpenProject urmat de calea D:DIDACTICSMP1905 (a sau b)LUC6Project1.mak.
e) Se executa click pe butonul Run din Toolbar (aceasta actiune este urmata de lansarea in executie a programului P1 al carui text sursa este prezentat in breviar);
f) Se examineaza in programul P1 modul de lucru cu functiile Achiz_N si Gen_N .
g) Se elaboreaza programul P2 pentru afisarea starii intrarilor numerice DI0 - DI3 prin intermediul unui digit grafic.
|
Fig. 6.5.
Pe forma programului (Form1) in Caption-ul careia se va afisa textul "Laborator Informatica Industriala" sunt dispuse urmatoarele obiecte reprezentate in figura 6.5:
un buton (Buton 1) iesirea din program (Caption Exit);
cinci casete de editare (Edit1, 2, 3, 4,5) cu urmatoarele functii:
Edit1 - inscrierea valorii in zecimal corespunzatoare starii celor 4 intrari numerice DI0 - DI4;
Edit2 - inscrierea starii intrari numerice DI3 ;
Edit3 - inscrierea starii intrari numerice DI2 ;
Edit4 - inscrierea starii intrari numerice DI1;
Edit5 - inscrierea starii intrari numerice DI0;
5 obiecte tip TImage (Image1,2,3,4,5) cu urmatoarele functii:
Image 1 - in care se va incarca imaginea corespunzatoare digitului care trebuie afisat (se realizeaza cu proprietatea LoadFromFile a obiectului de tip Timage- vezi Lucrarea 4) ;
Image 2,3,4,5 - in care se vor incarca imaginile corespunzatoare starii comutatoarelor K3, K2, K1; K0 (se realizeaza cu proprietatea LoadFromFile a obiectului de tip Timage- vezi Lucrarea 4);
4 obiecte de tip eticheta Label (Label 1,2,3,4) in care se vor afisa simbolurile intrarilor numerice (DI3 - DI0);
un obiect Timer (Timer1), cu Interval=100 ms pentru intervalul de achizitie a intrarilor numerice.
Observatii:
pentru realizarea programului P2 se vor utiliza module din programul P1;
pentru afisare starii comutatoarelor se gasesc in directorul curent imaginile inchis.bmp , deschis.bmp, iar pentru afisare digitului se gasesc imaginile cu numele 0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f.bmp reprezentand starile posibile ale digitului.
in figura 6.5 se prezinta o imagine obtinuta la rularea programului P2 (forma executabila a acestui program - P2.exe - se gaseste in directorul de lucru al subgrupei).
Fig. 6.5.
h) Se elaboreaza programul P3 pentru afisarea starii iesirilor numerice DO0 - DO6) pe un element cu 7 segmente (conectarea SEN la MTSN se realizeaza conform schemei din figura 6.6).
Fig. 6.6. Schema de
conectare pentru comanda elementului de afisare cu 7 segmente. |
Prin program se va realiza comanda digit-ului (pentru a a afisa 15 stari - 0,1,2,3.4,5,6,7,8,9,A,b,C,d,E,F) in trei maniere:
prin actionarea unui obiect de tip TrackBar;
prin actionarea a 16 butoane;
in regim de numarare continua.
Pe ecran se va afisa intr-un obiect Timage digit-ul grafic, utilizat in programul P2.
Pe forma Form1 a programului vor aparea obiectele evidentiate in figura 6.7 :
un obiect Timer (Timer1), cu Interval=100 ms pentru intervalul de generare a iesirilor numerice;
o caseta de editare Edit1 pentru afisarea echivalentului zecimal al iesirilor numerice care se genereaza;
un obiect de tip TrackBar, TrackBar1 ce se utilizeaza pentru a genera un numar intre 0 - 15 ;
20 de obiecte de tip Button cu urmatoarele functii:
Button1 activeaza TarckBar1 pentru comanda digit-ului (regimul 1);
Button2 activeaza cele 16 butoane, pentru comanda digit-ului (regimul 2);
Button3 activeaza regim numarare pentru comanda digit-ului (regimul 3);
Button4 iesire din program;
Button 5-20 pentru comanda digit-ului (regimul 2);
Un obiect de tip Timage , TImage1 in care se va incarca digitul grafic ce va reflecta combinatia afisata pe digit-ul fizic
Fig.6.7.
In directorul subgrupei, se gaseste forma executabila a programului P3, care va fi rulat inaintea inceperii lucrarii.
i) Lucrarea se va considera incheiata in momentul in care programele P2 si P3 sunt functionale. Referatul va cuprinde principalele idei din breviar referitoare la SIN si SEN precum si forma sursa a unit-urilor programelor P2 si P3.
Copyright © 2024 - Toate drepturile rezervate