Програмиране паралелен порт

H

Hammer111

Guest
Здравейте всички

Аз търсех как да програмирате паралелен порт, но имам някои грешки.Аз съм с Microsoft Visual C 6.0.Тук е моят код
Този кодекс е променен, оригиналът не работи или
Код:/ * Досие ex1.c

от HarshaPerla за electroSofts.com.

Показва съдържанието на статут на регистър на паралелен порт.

Проверка с TurboC 3.0 и Borland C 3.1 за DOS.

* /# включват "stdio.h"

# включват "conio.h"

# включват "dos.h"

кратко _stdcall Inp32 (кратко portaddr);

нищожен _stdcall Out32 (кратко portaddr, кратко Datum);# определят ПРИСТАНИЩЕ 0x378нищожен основни ()

(

Int данни;

докато (! kbhit ())

(

данни = Inp32 (PORT 1);

printf ( "Данните са в състоянието на регистъра:% 3d (знак след десетичната запетая),% 3X (HEX) \ N", данни, данни);

printf ( "\ N Пин 15:% D", (данни & 0x08) / 0x08);

printf ( "\ N Pin 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 на "данни".

 
Изглежда, че сте го използвате в DOS.inpout32.dll е прозорец динамичен звено библиотека, тя няма да работи в DOS

 
как мога да го използвате в DOS, когато имам Microsoft Visual C 6.0 и работа с Windows XP?
Този код се копира и промяна от уебсайта на връзката е първият ми пост.

 
Когато казвате "DOS" Предполагам, че става дума за стари MS-DOS, Windows, а не на командния ред.
VC 6.0 изгражда Windows GUI приложения и Windows конзола.Вие имате нужда от различен компилатор за създаване на 16-битов DOS програма.
Когато се създаде програма за DOS, не използвайте каквато и DLL файлове или inpout32.

 
Прочетете повече за DLL, който използвате на адрес:

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

Аз препоръчвам гледам на Borland C например.

-Jonathan

 
Опитайте това му в ТК след това се променят според нуждите ви

Код:

# включват "stdio.h"

# включват "conio.h"

# включват "graphics.h"

# включват "dos.h"

# включват "stdlib.h"

# определят ИСК 27

# определят outport 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);

нищожен дисплей (нищожен);

нищожен основни (Void)

(

Int д-р = Detect, M, A, B;

initgraph (& д-р, & m, "C: \ \ TC \ \ BGI");

Чар канала, името [10];

начало:

cleardevice ();

дисплея ();

бутон (80,75,130,100, "А");

бутон (80125130150, "B");

бутон (80175130200, "C");

бутон (80225130250, "D");

бутон (80275130300, "Е");

бутон (80325130350, "F");

бутон (80375130400, "Изход");

setcolor (1);

settextstyle (11,0,3);

outtextxy (140390, "Натиснете ESC, за да излезете от");

outtextxy (140,90, "GLOW LED по ваш избор");

outtextxy (140140, "LED мига");

outtextxy (140190, "Завърти наляво");

outtextxy (140240, "Завърти надясно");

outtextxy (140290, "Завърти наляво ДЯСНА");

outtextxy (140340, "ЕДИН ПО ЕДИН OFF");

CH = getch ();

ако (CH == 27) / / за излизане

(

closegraph ();

излизане (0);

)

в противен случай

ако (CH == "А" | | CH == "А") / / Въведете Led No A

(

представител:

cleardevice ();

дисплея ();

setcolor (1);

setfillstyle (1,0);

правоъгълник (100100550300); / / черен

FloodFill (120,120,1);

setcolor (1);

правоъгълник (315140330160); / / малък син

setcolor (4);

кръг (400,180,5); / / LED 7

кръг (380,180,5); / / LED 6

кръг (360,180,5); / / LED 5

кръг (340,180,5); / / LED 4

кръг (320,180,5); / / LED 3

кръг (300,180,5); / / LED 2

кръг (280,180,5); / / LED 1

кръг (260,180,5); / / LED 0

setcolor (1);

settextstyle (10,0,1);

outtextxy (180100 ", въведете LED НЕ 0 - 7");

gotoxy (41,10);

получава (наименование);

ако (име [0] == 48) / / LED светлина 0

(

outportb (outport, не [0]);

setcolor (4);

setfillstyle (1,4);

FloodFill (261,181,4);

)

ако (име [0] == 49) / / LED светлина 1

(

outportb (outport, не [1]);

setcolor (4);

setfillstyle (1,4);

FloodFill (281,181,4);

)

ако (име [0] == 50) / / LED светлина 2

(

outportb (outport, не [2]);

setcolor (4);

setfillstyle (1,4);

FloodFill (301,181,4);

)

ако (име [0] == 51) / / LED светлина 3

(

outportb (outport, не [3]);

setcolor (4);

setfillstyle (1,4);

FloodFill (321,181,4);

)

ако (име [0] == 52) / / LED 4 сияние

(

outportb (outport, не [4]);

setcolor (4);

setfillstyle (1,4);

FloodFill (341,181,4);

)

ако (име [0] == 53) / / LED 5 сияние

(

outportb (outport, не [5]);

setcolor (4);

setfillstyle (1,4);

FloodFill (361,181,4);

)

ако (име [0] == 54) / / LED светлина 6

(

outportb (outport, не [6]);

setcolor (4);

setfillstyle (1,4);

FloodFill (381,181,4);

)

ако (име [0] == 55) / / LED 7 сияние

(

outportb (outport, не [7]);

setcolor (4);

setfillstyle (1,4);

FloodFill (401,181,4);

)

setcolor (1);

settextstyle (11,0,10);

outtextxy (210350, "PRESS R За да се върнете към основното");

outtextxy (240370, "Натиснете ESC, за да излезете от");

CH = getch ();

ако (CH == "R" | | == 'CH R ")

Отидох в главното;

в противен случай

ако (CH == 27) / / за излизане

(

closegraph ();

излизане (0);

)

в противен случай

Отидох в представител;

) / / А КРАЙ

////////// LED НЕ Б

ако (CH == "Б" | | CH == "Б")

(cleardevice ();

дисплея ();

setcolor (1);

setfillstyle (1,0);

правоъгълник (100100550300); / / черен

FloodFill (120,120,1);

setcolor (4);

кръг (400,180,5); / / LED 7

кръг (380,180,5); / / LED 6

кръг (360,180,5); / / LED 5

кръг (340,180,5); / / LED 4

кръг (320,180,5); / / LED 3

кръг (300,180,5); / / LED 2

кръг (280,180,5); / / LED 1

кръг (260,180,5); / / LED 0setcolor (14);

settextstyle (10,0,1);

outtextxy (145100, "Натиснете клавиш, за да спрат");

setcolor (1);

settextstyle (11,0,10);

outtextxy (210350, "PRESS R За да се върнете към основното");

outtextxy (240370, "Натиснете ESC, за да излезете от");

Int а = 4;

докато (! kbhit ())

(

/ / harware интерфейс

outportb (outport, ledon);

setcolor (11);

кръг (400,180,5); / / LED 7

кръг (380,180,5); / / LED 6

кръг (360,180,5); / / LED 5

кръг (340,180,5); / / LED 4

кръг (320,180,5); / / LED 3

кръг (300,180,5); / / LED 2

кръг (280,180,5); / / LED 1

кръг (260,180,5); / / LED 0

setfillstyle (1, а);

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 (outport, ledoff);

а = 0;

setcolor (11);

setfillstyle (1, а);

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);

)CH = getch ();

ако (CH == "R" | | == 'CH R ")

Отидох в главното;

в противен случай

ако (CH == 27) / / за излизане

(

closegraph ();

излизане (0);

)

) ///////// Б КРАЙ

/ / доведе не C

ако (CH == 'C' | | CH == "С")

(

cleardevice ();

дисплея ();

setcolor (1);

setfillstyle (1,0);

правоъгълник (100100550300); / / черен

FloodFill (120,120,1);

setcolor (4);

кръг (400,180,5); / / LED 7

кръг (380,180,5); / / LED 6

кръг (360,180,5); / / LED 5

кръг (340,180,5); / / LED 4

кръг (320,180,5); / / LED 3

кръг (300,180,5); / / LED 2

кръг (280,180,5); / / LED 1

кръг (260,180,5); / / LED 0

setcolor (14);

settextstyle (10,0,1);

outtextxy (145100, "Натиснете клавиш, за да спрат");

setcolor (1);

settextstyle (11,0,10);

outtextxy (210350, "PRESS R За да се върнете към основното");

outtextxy (240370, "Натиснете ESC, за да излезете от");

С = 401;

докато (! kbhit ())

(

setcolor (11);

setfillstyle (1,4);

кръг (400,180,5); / / LED 7

кръг (380,180,5); / / LED 6

кръг (360,180,5); / / LED 5

кръг (340,180,5); / / LED 4

кръг (320,180,5); / / LED 3

кръг (300,180,5); / / LED 2

кръг (280,180,5); / / LED 1

кръг (260,180,5); / / LED 0

FloodFill (C, 181,11);

забавяне (200);

setfillstyle (1,0);

FloodFill (C, 181,11);

забавяне (200);

C-= 20;

IF (в == 241)

С = 401;/ / Хардуер

за (а = 0; един <= 7; А )

(

outportb (outport, не [A]);

забавяне (800);

)

)

CH = getch ();

ако (CH == "R" | | == 'CH R ")

Отидох в главното;

в противен случай

ако (CH == 27) / / за излизане

(

closegraph ();

излизане (0);

}////////////// В края

)

////////////////////// Г

ако (CH == "D" | | CH == "D")

(

cleardevice ();

дисплея ();

setcolor (1);

setfillstyle (1,0);

правоъгълник (100100550300); / / черен

FloodFill (120,120,1);

setcolor (4);

кръг (400,180,5); / / LED 7

кръг (380,180,5); / / LED 6

кръг (360,180,5); / / LED 5

кръг (340,180,5); / / LED 4

кръг (320,180,5); / / LED 3

кръг (300,180,5); / / LED 2

кръг (280,180,5); / / LED 1

кръг (260,180,5); / / LED 0

setcolor (14);

settextstyle (10,0,1);

outtextxy (145100, "Натиснете клавиш, за да спрат");

setcolor (1);

settextstyle (11,0,10);

outtextxy (210350, "PRESS R За да се върнете към основното");

outtextxy (240370, "Натиснете ESC, за да излезете от");

С = 261;

докато (! kbhit ())

(

setcolor (11);

setfillstyle (1,4);

кръг (400,180,5); / / LED 7

кръг (380,180,5); / / LED 6

кръг (360,180,5); / / LED 5

кръг (340,180,5); / / LED 4

кръг (320,180,5); / / LED 3

кръг (300,180,5); / / LED 2

кръг (280,180,5); / / LED 1

кръг (260,180,5); / / LED 0

FloodFill (C, 181,11);

забавяне (500);

setfillstyle (1,0);

FloodFill (C, 181,11);

забавяне (500);

C = 20;

IF (в == 421)

С = 261;

/ / Твърд фаянс

за: (а = 7; A> = 0; A -)

(

outportb (outport, не [A]);

забавяне (800);

)

)

CH = getch ();

ако (CH == "R" | | == 'CH R ")

Отидох в главното;

в противен случай

ако (CH == 27) / / за излизане

(

closegraph ();

излизане (0);

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

) ////////// Г края

////////////////////// Д

ако (CH == "Е" | | CH == "Е")

(

cleardevice ();

дисплея ();

setcolor (1);

setfillstyle (1,0);

правоъгълник (100100550300); / / черен

FloodFill (120,120,1);

setcolor (4);

кръг (400,180,5); / / LED 7

кръг (380,180,5); / / LED 6

кръг (360,180,5); / / LED 5

кръг (340,180,5); / / LED 4

кръг (320,180,5); / / LED 3

кръг (300,180,5); / / LED 2

кръг (280,180,5); / / LED 1

кръг (260,180,5); / / LED 0

setcolor (14);

settextstyle (10,0,1);

outtextxy (145100, "Натиснете клавиш, за да спрат");

setcolor (1);

settextstyle (11,0,10);

outtextxy (210350, "PRESS R За да се върнете към основното");

outtextxy (240370, "Натиснете ESC, за да излезете от");

С = 401;

докато (! kbhit ())

(

setcolor (11);

setfillstyle (1,4);

кръг (400,180,5); / / LED 7

кръг (380,180,5); / / LED 6

кръг (360,180,5); / / LED 5

кръг (340,180,5); / / LED 4

кръг (320,180,5); / / LED 3

кръг (300,180,5); / / LED 2

кръг (280,180,5); / / LED 1

кръг (260,180,5); / / LED 0

ако (F == 0)

(

FloodFill (C, 181,11);

забавяне (100);

setfillstyle (1,0);

FloodFill (C, 181,11);

забавяне (100);

C-= 20;

IF (в == 241)

(

F = 1;

С = 261;

)

)

ако (F == 1)

(

FloodFill (C, 181,11);

забавяне (5);

setfillstyle (1,0);

FloodFill (C, 181,11);

забавяне (5);

C = 20;

IF (в == 421)

(

F = 0;

С = 401;

)

)

/ / Твърд фаянс

за: (а = 7; A> = 0; A -)

(

outportb (outport, не [A]);

забавяне (800);

)

за (а = 0; един <= 7; А )

(

outportb (outport, не [A]);

забавяне (800);

)

)

CH = getch ();

ако (CH == "R" | | == 'CH R ")

Отидох в главното;

в противен случай

ако (CH == 27) / / за излизане

(

closegraph ();

излизане (0);

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

) ////////// Д края

////////////////////// Е

ако (CH == "F" | | == 'CH F ")

(

cleardevice ();

дисплея ();

setcolor (1);

setfillstyle (1,0);

правоъгълник (100100550300); / / черен

FloodFill (120,120,1);

setcolor (4);

кръг (400,180,5); / / LED 7

кръг (380,180,5); / / LED 6

кръг (360,180,5); / / LED 5

кръг (340,180,5); / / LED 4

кръг (320,180,5); / / LED 3

кръг (300,180,5); / / LED 2

кръг (280,180,5); / / LED 1

кръг (260,180,5); / / LED 0

setcolor (14);

settextstyle (10,0,1);

outtextxy (145100, "Натиснете клавиш, за да спрат");

setcolor (1);

settextstyle (11,0,10);

outtextxy (210350, "PRESS R За да се върнете към основното");

outtextxy (240370, "Натиснете ESC, за да излезете от");

докато (! kbhit ())

(

setcolor (11);

setfillstyle (1,4);

кръг (400,180,5); / / LED 7

кръг (380,180,5); / / LED 6

кръг (360,180,5); / / LED 5

кръг (340,180,5); / / LED 4

кръг (320,180,5); / / LED 3

кръг (300,180,5); / / LED 2

кръг (280,180,5); / / LED 1

кръг (260,180,5); / / LED 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 (outport, не [0xaa]);

забавяне (800);

outportb (outport, не [0x55]);)

CH = getch ();

ако (CH == "R" | | == 'CH R ")

Отидох в главното;

в противен случай

ако (CH == 27) / / за излизане

(

closegraph ();

излизане (0);

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

) ////////// Е краяgetch ();

closegraph ();

) / / Главната целнищожен дисплей (нищожен)

(

Int I, 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, е); / * Текст Fillpoly * /

setcolor (14);

settextstyle (7,0,3);

outtextxy (170,6, "LED - Displa Y");

setcolor (1);

settextstyle (11,0,3);

outtextxy (150445, "Авторско право Хасан & Атиф ПРОДУКЦИИ 2006");

outtextxy (220457, "Всички права запазени");

)нищожен бутон (INT C1, Int R1, Int C2, Int R2, сивен CH [])

(

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);

outtextxy (C1 11, R1 7, CH);

)

нищожен миг "(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

Файла по-горе е DLL, Lib, VC 6 проекта файл
---------------------------

------------- Моите фаворити вградени Хардуер
---------------------------
www.embedded-hardware.com

 

Welcome to EDABoard.com

Sponsor

Back
Top