O objetivo principal proposto aqui, foi desenvolver um programa que controlasse as vagas de um estacionamento através de leds indicativos com a utilização da porta paralela. Através da análise da Linguagem C++, foi possível desenvolver um sistema que mostra a quantidade de vagas disponíveis no estacionamento. A princípio o pouco conhecimento em linguagens de programação, tornou difícil a criação do programa. Com o andamento do curso e a introdução de novos materiais de estudo, além de pesquisas sobre Linguagem C, permitiu que o desenvolvimento do sistema se tornasse mais fácil. Embasados nas Disciplinas de Introdução aos Sistemas Lógicos e Matemática Computacional e Algoritmo e Programação, foi possível desenvolver circuitos integrados que fizeram o controle da entrada e saída. O pouco conhecimento em eletrônica exigiu a busca de auxílio de professores para o acompanhamento do desenvolvimento do circuito eletrônico(censor) e a integração do mesmo ao sistema.
Para a comunicação do Hardware com o software é primordial ter o arquivo inpout32.dll instalado no computador. Para registrar uma dll, copie a dll que você quer registrar para C:\Windows\System32, após isso, clique em Iniciar, executar, digite o comando cmd e dê <enter>, após isso será exibida a tela de prompt do dos, então digite o comando cd\windows\system32 e <enter>. Depois digite regsvr32 inpout32.dll e <enter>, após isso será exibido uma mensagem de sucesso!!!
C++, pasted just now:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
| #include <stdio.h>
#include <iostream>
#include <stdlib.h>
#include <conio.h>
#include <dos.h>
#include <windows.h> //Necessário para: LoadLibrary()
// GetProcAddress() e HINSTANCE.
using namespace std;
//Declaração dos ponteiros para função.
typedef short _stdcall (*PtrInp)(short EndPorta);
typedef void _stdcall (*PtrOut)(short EndPorta, short valor);
int main(void)
{
int BIT;
HINSTANCE hLib; //Instância para a DLL inpout32.dll.
PtrInp inportb; //Instância para a função Imp32().
PtrOut outportb; //Instância para a função Out32().
//Carrega a DLL na memória.
hLib = LoadLibrary("inpout32.dll");
if(hLib == NULL) //Verifica se houve erro.
{
cout<<"Erro. O arquivo inpout32.dll não foi encontrado.\n";
getch();
return -1;
}
//Obtém o endereço da função Inp32 contida na DLL.
inportb = (PtrInp) GetProcAddress(hLib, "Inp32");
if(inportb == NULL) //Verifica se houve erro.
{
printf("Erro. A função Inp32 não foi encontrada.\n");
getch();
return -1;
}
//Obtém o endereço da função Out32 contida na DLL.
outportb = (PtrOut) GetProcAddress(hLib, "Out32");
if(outportb == NULL) //Verifica se houve erro.
{
printf("Erro. A função Out32 não foi encontrada.\n");
getch();
return -1;
}
int vaga=5; //e=bit recebido (0 ou 1); n = numero de vagas
//existentes no estacionamento
int rec,i; //rec = valor a receber da porta num_v= vaga
int g;
i=vaga;
while (1)
{
system("cls");
printf (" _____________________________________");
printf ("\n| |");
printf ("\n| |");
printf ("\n| |");
printf ("\n| |");
printf ("\n| |");
if(i > 0){
printf ("\n| %d VAGA(s) DISPONIVEL(is) |",i);
}
else { printf ("\n| ******** L O T A D O ******* |");
}
printf ("\n| |");
printf ("\n| |");
printf ("\n| |");
printf ("\n| |");
printf ("\n| |");
printf ("\n _____________________________________");
//aqui está comentado a função para importar os valores da porta
//inport = receber o valor da porta paralela
/*BIT = inportb(0x379);
_sleep(1000); //tempo de espera do loop
if(BIT==248)
{
if(i==0)
{
printf ("\n");
}
else
{
i--;
}
}
if(BIT==56)
{
if(i>=vaga)
{
printf ("\n");
}
else {
i++;
}
}*/
/*Simulação inserindo o valor manualmente,
se digitar 1 decrementará o número de vagas,
e se o valor for 0 incrementará o número de vagas*/
scanf("%d",&g);
if(g==1)
{
if(i==0)
{
printf ("\n");
}
else
{
i--;
}
}
if(g==0)
{
if(i>=vaga)
{
printf ("\n");
}
else
{
i++;
}
}
}
}
|
0 comentários:
Postar um comentário