인터페이스"프로그래밍

H

Hammer111

Guest
모두 안녕

어떻게 병렬 포트 프로그램을 검색했지만, 난 몇 가지 오류가있습니다.내가에서는 Microsoft Visual C 를 사용 6.0.여기 내 코드는
이 코드입니다 수정된 원본 중 하나를 작동하지 않습니다
코드 :/ * 파일 : ex1.c

HarshaPerla electroSofts.com에 의해.

병렬 포트의 상태 레지스터의 내용을 표시합니다.

TurboC 3.0과 볼랜드 C 3.1과 DOS 용 테스트.

* /# "stdio.h"를 포함

# "conio.h"를 포함

# "dos.h"를 포함

짧은 _stdcall Inp32 (짧은 portaddr);

무효 _stdcall Out32 (짧은 portaddr, 짧은 계산의 기산);포르 0x378 정의 #메인 무효 ()

(

int 데이터;

(! kbhit 동안 ())

(

데이터 = Inp32 (포르 1);

printf ( "데이터를 상태 레지스터에없습니다 : % 3 차원 (10 진수), % 3 배 (16 진수) \ n", 데이터, 데이터);

printf ( "\ n 핀 15 : % d 개", (데이터 & 0x08) / 0x08);

printf ( "\ n 핀 13 : % d 개", (데이터 & 0x10) / 0x10);

printf ( "\ n 핀 12 : % d 개", (데이터 & 0x20) / 0x20);

printf ( "\ n 핀 11 : % d 개", (데이터 및 0x80으로) /은 0x80);

printf ( "\ n 핀 10 : % d 개", (데이터 & 0x40) / 0x40);

)

)
 
inpout32.lib은 C 라이브러리가있습니다.를 C 프로그램을 컴파일을 해보 C를 대신

표현 "(데이터 & 0x08) / 0x08)"0 또는 1의 '비트 3에 따라 줄 서투른 방법으로 데이터를'.

 
처럼 도스에서 사용하는 것 같은데.inpout32.dll 창문을 동적 링크 라이브러리, 그것을 도스에서 작동하지 않을 것입니다

 
내가 어떻게 업무에 내가 가지고에서는 Microsoft Visual C 그것을 어떻게 사용합니까 6.0 및 Windows XP를 사용하고 계십니까?
이 코드를 복사 및 웹사이트 링크에서 수정된 제 첫번째 게시물입니다.

 
언제 내가 당신을 예전 MS - DOS를, 그리고 윈도우 명령 프롬프트에 대해 얘기하는 가정 "도스"라고.
VC 6.0 콘솔 어플 리케이션 윈도우의 GUI와 Windows 빌드합니다.당신은 16 비트 DOS 프로그램을 만들려면 다른 컴파일러가 필요합니다.
하면 DOS 프로그램을 만들거나 inpout32 모든 DLL을 사용하지 마십시오.

 
읽기에 대한 자세한 당신 DLL을 사용하는 경우 :

http://www.logix4u.net/inpout32.htm

내가 볼랜드 C 예제를보고하는 것이 좋습니다.

- 조나단

 
이것은 TC를 누른 다음 사용자의 필요에 따라 변경 시도

코드 :

# "stdio.h"를 포함

# "conio.h"를 포함

# "graphics.h"를 포함

# "dos.h"를 포함

# "stdlib.h"를 포함

ESC를 정의 # 27

외항 정의 # 0x378

ledon 0xff 정의 #

ledoff 0x00 정의 #

int 정적 없다 [8] = (0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80으로);

int c는 f를 = 0;

무효 버튼 (, int를 int를 [숯불 int int]);

무효 깜박임 (, int를 int int) int;

무효 디스플레이 (무효);

무효의 main (무효)

(

int 박사 = 감지, 난, A와 B;

initgraph (& 닥터, & m의는 "C : \ \ TC를 \ \ bgi");

숯불 채널 이름을 [10];

주 :

cleardevice ();

디스플레이 ();

버튼 (80,75,130,100, "");

버튼 (80125130150,의 "B");

버튼 (80175130200, 그 "C");

버튼 (80225130250, "개발");

버튼 (80275130300, "이메일");

버튼 (80325130350,에서 "F");

버튼 (80375130400, "종료");

setcolor (1);

settextstyle (11,0,3);

outtextxy (140390, "Esc 키를 눌러 종료하고");

outtextxy (140,90, "글로우 선택하신") LED가;

(140140, "outtextxy") LED가 깜박이고;

outtextxy (140190, "왼쪽으로 회전");

outtextxy (140240, "오른쪽으로 회전");

outtextxy (140290, "왼쪽으로 회전 오른쪽");

(140340, "하나씩 해제") outtextxy;

채널 = getch ();

면 (채널 == 27) / / 종료하기

(

closegraph ();

출구 (0);

)

그 밖의

면 (채널 == ''| | 채널 == '') / / 아니 주도 입력

(

담당자 :

cleardevice ();

디스플레이 ();

setcolor (1);

setfillstyle (1,0);

사각형 (100100550300); / / 검정

floodfill (120,120,1);

setcolor (1);

사각형 (315140330160); / / 파란색의 작은

setcolor (4);

동그라미 (400,180,5); / / 7 주도

동그라미 (380,180,5); / / 6 LED가

동그라미 (360,180,5); / / 5 주도

동그라미 (340,180,5); / / 4 주도

동그라미 (320,180,5); / / 3 주도

동그라미 (300,180,5); / / 2 주도

동그라미 (280,180,5); / / 1 주도

동그라미 (260,180,5); / / 0 주도

setcolor (1);

settextstyle (10,0,1);

outtextxy (180100, "다음 Enter") 아니오 0 - 7 LED가;

gotoxy (41,10);

(이름)되면;

만약 (이름 [0] == 48) / / 0 발광 LED가

(

outportb (외항, 아니 [0]);

setcolor (4);

setfillstyle (1,4);

floodfill (261,181,4);

)

만약 (이름 [0] == 49) / / 노을 1 주도

(

outportb (외항, 안돼 [1]);

setcolor (4);

setfillstyle (1,4);

floodfill (281,181,4);

)

만약 (이름 [0] == 50) / / 노을 2 주도

(

outportb (외항, 안돼 [2]);

setcolor (4);

setfillstyle (1,4);

floodfill (301,181,4);

)

만약 (이름 [0] == 51) / / 노을 3 주도

(

outportb (외항, 안돼 [3]);

setcolor (4);

setfillstyle (1,4);

floodfill (321,181,4);

)

만약 (이름 [0] == 52) / / 4 발광 LED가

(

outportb (외항, 안돼 [4]);

setcolor (4);

setfillstyle (1,4);

floodfill (341,181,4);

)

만약 (이름 [0] == 53) / / 5 노을 주도

(

outportb (외항, 아니 [5]);

setcolor (4);

setfillstyle (1,4);

floodfill (361,181,4);

)

만약 (이름 [0] == 54) / / 6 LED가 발광

(

outportb (외항, 안돼 [6]);

setcolor (4);

setfillstyle (1,4);

floodfill (381,181,4);

)

만약 (이름 [0] == 55) / / 7 발광 LED가

(

outportb (외항, 안돼 [7]);

setcolor (4);

setfillstyle (1,4);

floodfill (401,181,4);

)

setcolor (1);

settextstyle (11,0,10);

outtextxy (210350, "R 키를 눌러 돌아가십시오") 메인하려면;

outtextxy (240370, "Esc 키를 눌러 종료하고");

채널 = getch ();

면 (채널 == 'r에'| | 채널 == '연구')

고토 메인;

그 밖의

면 (채널 == 27) / / 종료하기

(

closegraph ();

출구 (0);

)

그 밖의

고토 담당자;

) / / 끝

////////// 없음 B 조 LED가

면 (채널 == 'b'| | 채널 == 'B 조')

(cleardevice ();

디스플레이 ();

setcolor (1);

setfillstyle (1,0);

사각형 (100100550300); / / 검정

floodfill (120,120,1);

setcolor (4);

동그라미 (400,180,5); / / 7 주도

동그라미 (380,180,5); / / 6 LED가

동그라미 (360,180,5); / / 5 주도

동그라미 (340,180,5); / / 4 주도

동그라미 (320,180,5); / / 3 주도

동그라미 (300,180,5); / / 2 주도

동그라미 (280,180,5); / / 1 주도

동그라미 (260,180,5); / / 0 주도setcolor (14);

settextstyle (10,0,1);

outtextxy (145100, "아무 키나 누르십시오 그만두는");

setcolor (1);

settextstyle (11,0,10);

outtextxy (210350, "R 키를 눌러 돌아가십시오") 메인하려면;

outtextxy (240370, "Esc 키를 눌러 종료하고");

int = 4;

(! kbhit 동안 ())

(

/ / harware 인터페이스

outportb (외항, ledon);

setcolor (11);

동그라미 (400,180,5); / / 7 주도

동그라미 (380,180,5); / / 6 LED가

동그라미 (360,180,5); / / 5 주도

동그라미 (340,180,5); / / 4 주도

동그라미 (320,180,5); / / 3 주도

동그라미 (300,180,5); / / 2 주도

동그라미 (280,180,5); / / 1 주도

동그라미 (260,180,5); / / 0 주도

(1, setfillstyle);

floodfill (261,181,11);

floodfill (281,181,11);

floodfill (301,181,11);

floodfill (321,181,11);

floodfill (341,181,11);

floodfill (361,181,11);

floodfill (381,181,11);

floodfill (401,181,11);

지연 (800);

outportb (외항, ledoff);

= 0;

setcolor (11);

(1, setfillstyle);

floodfill (261,181,11);

floodfill (281,181,11);

floodfill (301,181,11);

floodfill (321,181,11);

floodfill (341,181,11);

floodfill (361,181,11);

floodfill (381,181,11);

floodfill (401,181,11);

= 4;

지연 (800);

)채널 = getch ();

면 (채널 == 'r에'| | 채널 == '연구')

고토 메인;

그 밖의

면 (채널 == 27) / / 종료하기

(

closegraph ();

출구 (0);

)

) ///////// B 조 최종

/ / 아니요 C 주도

면 (채널 == 'c'는 | | 채널 == 'C'로)

(

cleardevice ();

디스플레이 ();

setcolor (1);

setfillstyle (1,0);

사각형 (100100550300); / / 검정

floodfill (120,120,1);

setcolor (4);

동그라미 (400,180,5); / / 7 주도

동그라미 (380,180,5); / / 6 LED가

동그라미 (360,180,5); / / 5 주도

동그라미 (340,180,5); / / 4 주도

동그라미 (320,180,5); / / 3 주도

동그라미 (300,180,5); / / 2 주도

동그라미 (280,180,5); / / 1 주도

동그라미 (260,180,5); / / 0 주도

setcolor (14);

settextstyle (10,0,1);

outtextxy (145100, "아무 키나 누르십시오 그만두는");

setcolor (1);

settextstyle (11,0,10);

outtextxy (210350, "R 키를 눌러 돌아가십시오") 메인하려면;

outtextxy (240370, "Esc 키를 눌러 종료하고");

C = 401;

(! kbhit 동안 ())

(

setcolor (11);

setfillstyle (1,4);

동그라미 (400,180,5); / / 7 주도

동그라미 (380,180,5); / / 6 LED가

동그라미 (360,180,5); / / 5 주도

동그라미 (340,180,5); / / 4 주도

동그라미 (320,180,5); / / 3 주도

동그라미 (300,180,5); / / 2 주도

동그라미 (280,180,5); / / 1 주도

동그라미 (260,180,5); / / 0 주도

floodfill (c 팀, 181,11);

지연 (200);

setfillstyle (1,0);

floodfill (c 팀, 181,11);

지연 (200);

시스템 c - = 20;

(C == 241면)

C = 401;/ / 하드웨어

대한 (= 0; "= 7; )

(

outportb (외항, 아니 []);

지연 (800);

)

)

채널 = getch ();

면 (채널 == 'r에'| | 채널 == '연구')

고토 메인;

그 밖의

면 (채널 == 27) / / 종료하기

(

closegraph ();

출구 (0);

최종 }////////////// C

)

////////////////////// d 개

면 (채널 == 'd'을 | | 채널 == 'D 조')

(

cleardevice ();

디스플레이 ();

setcolor (1);

setfillstyle (1,0);

사각형 (100100550300); / / 검정

floodfill (120,120,1);

setcolor (4);

동그라미 (400,180,5); / / 7 주도

동그라미 (380,180,5); / / 6 LED가

동그라미 (360,180,5); / / 5 주도

동그라미 (340,180,5); / / 4 주도

동그라미 (320,180,5); / / 3 주도

동그라미 (300,180,5); / / 2 주도

동그라미 (280,180,5); / / 1 주도

동그라미 (260,180,5); / / 0 주도

setcolor (14);

settextstyle (10,0,1);

outtextxy (145100, "아무 키나 누르십시오 그만두는");

setcolor (1);

settextstyle (11,0,10);

outtextxy (210350, "R 키를 눌러 돌아가십시오") 메인하려면;

outtextxy (240370, "Esc 키를 눌러 종료하고");

C = 261;

(! kbhit 동안 ())

(

setcolor (11);

setfillstyle (1,4);

동그라미 (400,180,5); / / 7 주도

동그라미 (380,180,5); / / 6 LED가

동그라미 (360,180,5); / / 5 주도

동그라미 (340,180,5); / / 4 주도

동그라미 (320,180,5); / / 3 주도

동그라미 (300,180,5); / / 2 주도

동그라미 (280,180,5); / / 1 주도

동그라미 (260,180,5); / / 0 주도

floodfill (c 팀, 181,11);

지연 (500);

setfillstyle (1,0);

floodfill (c 팀, 181,11);

지연 (500);

짜리 c = 20;

(C == 421면)

C = 261;

/ / 하드 도자기

대한 (= 7; "= 0; -)

(

outportb (외항, 아니 []);

지연 (800);

)

)

채널 = getch ();

면 (채널 == 'r에'| | 채널 == '연구')

고토 메인;

그 밖의

면 (채널 == 27) / / 종료하기

(

closegraph ();

출구 (0);

}///////////

) ////////// d 개의 끝

전자 //////////////////////

면 (채널 == 'e'는 | | 채널 == 'E'의)

(

cleardevice ();

디스플레이 ();

setcolor (1);

setfillstyle (1,0);

사각형 (100100550300); / / 검정

floodfill (120,120,1);

setcolor (4);

동그라미 (400,180,5); / / 7 주도

동그라미 (380,180,5); / / 6 LED가

동그라미 (360,180,5); / / 5 주도

동그라미 (340,180,5); / / 4 주도

동그라미 (320,180,5); / / 3 주도

동그라미 (300,180,5); / / 2 주도

동그라미 (280,180,5); / / 1 주도

동그라미 (260,180,5); / / 0 주도

setcolor (14);

settextstyle (10,0,1);

outtextxy (145100, "아무 키나 누르십시오 그만두는");

setcolor (1);

settextstyle (11,0,10);

outtextxy (210350, "R 키를 눌러 돌아가십시오") 메인하려면;

outtextxy (240370, "Esc 키를 눌러 종료하고");

C = 401;

(! kbhit 동안 ())

(

setcolor (11);

setfillstyle (1,4);

동그라미 (400,180,5); / / 7 주도

동그라미 (380,180,5); / / 6 LED가

동그라미 (360,180,5); / / 5 주도

동그라미 (340,180,5); / / 4 주도

동그라미 (320,180,5); / / 3 주도

동그라미 (300,180,5); / / 2 주도

동그라미 (280,180,5); / / 1 주도

동그라미 (260,180,5); / / 0 주도

(f를 == 0 경우)

(

floodfill (c 팀, 181,11);

지연 (100);

setfillstyle (1,0);

floodfill (c 팀, 181,11);

지연 (100);

시스템 c - = 20;

(C == 241면)

(

f를 = 1;

C = 261;

)

)

(f를 == 1면)

(

floodfill (c 팀, 181,11);

지연 (5);

setfillstyle (1,0);

floodfill (c 팀, 181,11);

지연 (5);

짜리 c = 20;

(C == 421면)

(

f를 = 0;

C = 401;

)

)

/ / 하드 도자기

대한 (= 7; "= 0; -)

(

outportb (외항, 아니 []);

지연 (800);

)

대한 (= 0; "= 7; )

(

outportb (외항, 아니 []);

지연 (800);

)

)

채널 = getch ();

면 (채널 == 'r에'| | 채널 == '연구')

고토 메인;

그 밖의

면 (채널 == 27) / / 종료하기

(

closegraph ();

출구 (0);

}///////////

) ////////// 최종 전자

////////////////////// f를

면 (채널 == 'f를'| | 채널 == 'F')

(

cleardevice ();

디스플레이 ();

setcolor (1);

setfillstyle (1,0);

사각형 (100100550300); / / 검정

floodfill (120,120,1);

setcolor (4);

동그라미 (400,180,5); / / 7 주도

동그라미 (380,180,5); / / 6 LED가

동그라미 (360,180,5); / / 5 주도

동그라미 (340,180,5); / / 4 주도

동그라미 (320,180,5); / / 3 주도

동그라미 (300,180,5); / / 2 주도

동그라미 (280,180,5); / / 1 주도

동그라미 (260,180,5); / / 0 주도

setcolor (14);

settextstyle (10,0,1);

outtextxy (145100, "아무 키나 누르십시오 그만두는");

setcolor (1);

settextstyle (11,0,10);

outtextxy (210350, "R 키를 눌러 돌아가십시오") 메인하려면;

outtextxy (240370, "Esc 키를 눌러 종료하고");

(! kbhit 동안 ())

(

setcolor (11);

setfillstyle (1,4);

동그라미 (400,180,5); / / 7 주도

동그라미 (380,180,5); / / 6 LED가

동그라미 (360,180,5); / / 5 주도

동그라미 (340,180,5); / / 4 주도

동그라미 (320,180,5); / / 3 주도

동그라미 (300,180,5); / / 2 주도

동그라미 (280,180,5); / / 1 주도

동그라미 (260,180,5); / / 0 주도

floodfill (401,181,11);

floodfill (361,181,11);

floodfill (321,181,11);

floodfill (281,181,11);

지연 (500);

setfillstyle (1,0);

floodfill (401,181,11);

floodfill (361,181,11);

floodfill (321,181,11);

floodfill (281,181,11);

지연 (500);

setfillstyle (1,4);

floodfill (381,181,11);

floodfill (341,181,11);

floodfill (301,181,11);

floodfill (261,181,11);

지연 (500);

setfillstyle (1,0);

floodfill (381,181,11);

floodfill (341,181,11);

floodfill (301,181,11);

floodfill (261,181,11);

지연 (500);/ / 하드 도자기outportb (외항, 아니 [0xaa]);

지연 (800);

outportb (외항, 아니 [0x55]);)

채널 = getch ();

면 (채널 == 'r에'| | 채널 == '연구')

고토 메인;

그 밖의

면 (채널 == 27) / / 종료하기

(

closegraph ();

출구 (0);

}///////////

) ////////// f를 말getch ();

closegraph ();

) / / 메인 끝무효 디스플레이 (무효)

(

int 전, f를 [10] = (7,7,100,30,320,60,520,30,629,7);

setcolor (13);

setfillstyle (1,3);

사각형 (1,1,638,478);

floodfill (5,5,13);

setcolor (11);

setfillstyle (7,9); / * 텍스트 배경 * /

fillpoly (5, f를); / * 텍스트 Fillpoly * /

setcolor (14);

settextstyle (7,0,3);

(170,6, "outtextxy LED가 - DISPLA Y"는);

setcolor (1);

settextstyle (11,0,3);

outtextxy (150445, "저작권 하산 & Atif 프로덕션 2006");

outtextxy (220457, "판권 소유");

)무효 버튼 (int에 C1, int r1, int C2 상태, int R2는, 숯불 채널 [])

(

setcolor (0);

직사각형 (에 C1 1, r1 1, C2를 2, R2는 2);

setcolor (8);

직사각형 (에 C1 2, r1 2, C2를 1, R2는 1);

setcolor (15);

직사각형 (에 C1 - 1, r1 - 1, C2를, R2는);

setcolor (7);

setfillstyle (1,7);

사각형 (를 C1, r1, C2를, R2는);

floodfill (에 C1 5, r1 5,7);

setcolor (0);

(에 C1 11, r1 7, 채널) outtextxy;

)

무효 깜박임 (int에 C1, int r1, int C2 상태, int R2는)

(

setcolor (8);

직사각형 (에 C1 - 1, r1 - 1, C2를 - 2, R2는 - 2);

setcolor (0);

직사각형 (에 C1 - 2, r1 - 2, C2를 - 1, R2는 - 1);

setcolor (15);

사각형 (를 C1, r1, C2를 1, R2는 1);

setcolor (7);

setfillstyle (1,7);

사각형 (를 C1, r1, C2를, R2는);

floodfill (에 C1 5, r1 5,7);

) [/ img]이
 
만약 당신이 C에서 당신은 아래 링크를 userport first.See를 설치하고 설치하는 방법을 참조해야 할까
http://booksbybibin.14.forumer.com/viewtopic.php?t=74

이제 프로그래밍

Bibin 존
www.bibinjohn.tk

 
다운로드에서 시도
http://www.ett.co.th/article/pc/etpci8255v3_vc_Demo1.rar

위의 파일, lib 디렉토리 dll을 가지고 VC 6 프로젝트 파일
---------------------------

------------- 내 즐겨찾기 하드웨어 임베디드
---------------------------
www.embedded - hardware.com

 

Welcome to EDABoard.com

Sponsor

Back
Top