|
Vejam esta aplicacao em C++ e me digam se
consigo fazer isto em centura...
agradeço por qualquer ajuda.
Jose Maria.
#include <conio.h>
#include <stdio.h> #include <process.h> #define STX 0x02
#define ETX 0x03 #define ESC 0x1b #define ENQ 0x05 unsigned int
port,regint,regpen,infser,regstt,regdat,regmod;
void form_col(int c,int l){
gotoxy(c,l);
putch(0xb3); }
void form_tell (void) {
clrscr();
gotoxy(15,2); puts("INDUSTRIAS FILIZOLA S.A."); gotoxy(15,3); puts(" FONE : (011)292-2055"); gotoxy(15,4); puts(" BALANCA MODELO BP"); } main () {
unsigned char i,tent,bufrec[20],c; form_tell();
gotoxy(13,6); puts("DIGITE O No. DA <COM> (1 ou 2) "); do{ switch (i=getch()) { case '1': port=0x03f0; putch (i); break; case '2': port=0x02f0; putch (i); break; default: i=0; } }while(i==0); regint=port | 0x09;
regpen=port | 0x0a; infser=port | 0x0b; regstt=port | 0x0d; regdat=port | 0x08; regmod=port | 0x0c; outportb(regint,0x00); /* reseta
interrupcoes */
outportb(regpen,0x01); /* reseta interrupcoes pendentes */ outportb(infser,0x83); /* 8bits dado,1stop bit,sem paridade DLAB=1 */ outportb(regstt,0x00); /* status reset */ outportb(regdat,0x30); /* boud rate lsb */ outportb(regint,0x00); /* boud rate msb. (taxa de 2400) */ outportb(infser,0x03); /* DLAB=0 */ form_tell();
gotoxy(12,6); puts("Peso liquido ... ... kg"); for(c=0;c<20;bufrec[c++]=' '); do{ if((inportb(regstt) & 0x60) == 0x60){ outportb(regdat,ENQ); i=1; c=0; do{ if((inportb(regstt) & 0x01) == 0x01){ tent=inportb(regdat); if((tent!=STX)&&(tent!=ETX)) bufrec[c++]=tent; if(tent==ETX) i=0; } }while(i); for(c=4,bufrec[6]=0;c>1;c--) bufrec[c+1]=bufrec[c]; bufrec[2]=0; gotoxy(31,6); printf(" %.2s.%3.3s",bufrec,&bufrec[3]); } if(i!=ESC) if(kbhit()) i=getch(); }while(1); exit(0); }
|
