PDA

View Full Version : کنترل LED متصل به پرت پرینتر



active66
چهارشنبه 21 تیر 1385, 01:25 صبح
الان چندمین بار که این تاپیک و مطرح می کنم ولی هیچ وقت نتیجه نگرفتم یکی راهنماییم کنه که چه طوری یه LED رو به پورت پرینتر وصل کنم و اونو خاموش روشن کنم؟

mzjahromi
چهارشنبه 21 تیر 1385, 06:41 صبح
ببین اگر اینها مشکلت رو حل نکرد بگو تا ادامه بدیم
استفاده از سخت افزار (http://www.barnamenevis.org/forum/showthread.php?t=40915&highlight=LED)
چه طور میشه با TC++ پورتها رو کنترل کرد ؟ (http://www.barnamenevis.org/forum/showthread.php?t=46806&highlight=LED)(اینجا سوالات تکراری آشکار میشه)
کنترل LED (http://www.barnamenevis.org/forum/showthread.php?t=41753&highlight=LED)
نحوه استفاده از پورت پارالل در c (http://www.barnamenevis.org/forum/showthread.php?t=32203&highlight=LED)

ghaneipour
چهارشنبه 21 تیر 1385, 07:08 صبح
با سلام
برای اینکار در هر زبان برنامه نویسی یکسری ابزار وجود دارد.
مثلا در c دستور OUT H378,x میتواند در پرت چاپگر مقدار x 0-255 را نمایش دهد.
در رایانه های جدید ولتاژ پرت باید توسط ترانزیستور تقویت شود.

Asad.Safari
دوشنبه 09 مرداد 1385, 00:30 صبح
برای این کار از inpout32.dll استفاده کن !



/**************************************************/
/*** ***/
/*** TEST.c -- test interface to inpout32.dll ***/
/*** ( http://www.logix4u.net/inpout32.htm ) ***/
/*** ***/
/*** Copyright (C) 2003, Douglas Beattie Jr. ***/
/*** ***/
/*** <beattidp@ieee.org> ***/
/*** http://www.hytherion.com/beattidp/ ***/
/*** ***/
/**************************************************/


/************************************************** *****/
/* */
/* Builds with Borland's Command-line C Compiler */
/* (free for public download from Borland.com, at */
/* http://www.borland.com/bcppbuilder/freecompiler ) */
/* */
/* Compile with: */
/* */
/* BCC32 -IC:\BORLAND\BCC55\INCLUDE TEST.C */
/* */
/* */
/* Be sure to change the Port addresses */
/* accordingly if your LPT port is addressed */
/* elsewhere. */
/* */
/************************************************** *****/




#include <stdio.h>
#include <conio.h>
#include <windows.h>


/* Definitions in the build of inpout32.dll are: */
/* short _stdcall Inp32(short PortAddress); */
/* void _stdcall Out32(short PortAddress, short data); */


/* prototype (function typedef) for DLL function Inp32: */

typedef short _stdcall (*inpfuncPtr)(short portaddr);
typedef void _stdcall (*oupfuncPtr)(short portaddr, short datum);

int main(void)
{
HINSTANCE hLib;
inpfuncPtr inp32;
oupfuncPtr oup32;

short x;
int i;

/* Load the library */
hLib = LoadLibrary("inpout32.dll");

if (hLib == NULL) {
printf("LoadLibrary Failed.\n");
return -1;
}

/* get the address of the function */

inp32 = (inpfuncPtr) GetProcAddress(hLib, "Inp32");

if (inp32 == NULL) {
printf("GetProcAddress for Inp32 Failed.\n");
return -1;
}


oup32 = (oupfuncPtr) GetProcAddress(hLib, "Out32");

if (oup32 == NULL) {
printf("GetProcAddress for Oup32 Failed.\n");
return -1;
}


/************************************************** *************/
/* now test the functions */

/* Try to read 0x378..0x37F, LPT1: */

for (i=0x378; (i<0x380); i++) {

x = (inp32)(i);

printf("port read (%04X)= %04X\n",i,x);
}



/***** Write the data register */

i=0x378;
x=0x77;

(oup32)(i,x);

printf("port write to 0x%X, datum=0x%2X\n" ,i ,x);

/***** And read back to verify */
x = (inp32)(i);
printf("port read (%04X)= %04X\n",i,x);



/***** One more time, different value */

i=0x378;
x=0xAA;

(oup32)(i,x);

printf("port write to 0x%X, datum=0x%2X\n" ,i ,x);

/***** And read back to verify */
x = (inp32)(i);
printf("port read (%04X)= %04X\n",i,x);




FreeLibrary(hLib);
return 0;
}

aynehband
چهارشنبه 11 مرداد 1385, 11:43 صبح
اساس کلی کار با پورتها این گونه است که یک شماره برای کنترل و یک شماره برای دیتا و جود دارد ابتدا باید پورت کنترل را تنظیم کنی و سپس دیتا را بفرستی
دستورات مورد نیاز را هم دوستان در اختیارتان قرار داده اند.

mzjahromi
شنبه 14 مرداد 1385, 08:11 صبح
اساس کلی کار با پورتها این گونه است که یک شماره برای کنترل و یک شماره برای دیتا و جود دارد ابتدا باید پورت کنترل را تنظیم کنی و سپس دیتا را بفرستی
دستورات مورد نیاز را هم دوستان در اختیارتان قرار داده اند.
دوست عزیز این مورد فرق میکنه

active66
چهارشنبه 18 مرداد 1385, 04:08 صبح
مرسی از دوستان درست شد با همون فایل DLL درست شد البته این فایلو به هزار زحمت پیدا کردم و در system32 کپی کردم بعدش دستور مدیر بخش و اجرا کردم درست شد . دم همگی گرم.

saeed_smco
یک شنبه 16 اردیبهشت 1386, 23:42 عصر
الان چندمین بار که این تاپیک و مطرح می کنم ولی هیچ وقت نتیجه نگرفتم یکی راهنماییم کنه که چه طوری یه LED رو به پورت پرینتر وصل کنم و اونو خاموش روشن کنم؟
من اینکارو کردم مشکلی ندارم کجا مشکل داری؟ بگو تا راهنماییت کنم

saeed_smco
یک شنبه 16 اردیبهشت 1386, 23:44 عصر
منهم همینکارو کردم با dll ولی تو بعضی سیستمها کار نکرد
نمیدونم چرا؟

__H2__
چهارشنبه 19 اردیبهشت 1386, 10:11 صبح
سلام
با همان دستور OUT و به کمک asm_ در چند خط ناقابل میتوان اینکا را انجام داد.

mzjahromi
چهارشنبه 19 اردیبهشت 1386, 10:45 صبح
سلام
با همان دستور OUT و به کمک asm_ در چند خط ناقابل میتوان اینکا را انجام داد.

این دستور همه جا جواب نمیده

__H2__
چهارشنبه 19 اردیبهشت 1386, 14:37 عصر
سلام مجدد،
اولا احساس نمیکنم جمله ام غیر مودبانه بود
دوماً برای کار با پورت سنترونیکس و یا همکان پرینتر که خیلی خوب جواب میده.
بای.

mzjahromi
پنج شنبه 20 اردیبهشت 1386, 06:59 صبح
تو ویندوز XP بنویسید ببینید اونجا هم جواب میده