سلام .
بله اددی جان درست میگید .
برای شروع ورودی و خروجی های کامپیوتر رو با هم یه مروری بکنیم :
پورت موازی
پورت سریال
ارتباط از طریق ISA
ارتباط از طریق PCI
ارتباط سریال از طریق اینفرارد
ارتباط سریال از طریق بلوتوث
دیگه چیز به ذهنم نمیاد دوستان کمک کنن .
موفق باشید .
شأن انسان در ایمان و هجرت و جهاد است و هجرت، مقدمهآی جهاد فیآسبیلآالله.
هجرت، هجرت از سنگینیآهاست و جاذبهآهایی که تو را به خاک میآچسباند.
چکمهآهایت را بپوش، رهآتوشهآات را بردار و هجرت کن.
:idea: سلام
فکر می کنم جای بحث و تبادل نظر در خصوص PC Interface خیلی خالی باشه!
به نظرم با ارائه پروژه هایی در زمینه پورت های سریال ، موازی ، USB و شکاف های PIC
PIC Express و ISA ( البته دیگه منسوخ شده ) بشه بحث رو راه انداخت
پورت های سریال و موازی و USB رو که راحت میشه توی Visual Basic و حتی تحت سیستم عامل XP و کلاً OS های مبتنی بر NT برنامه نویسی کرد
ولی اونایی دیگه احتیاج به درایورها و کامپوننت های خاص و احیاناً پولی و نه غیر رایگان و برنامه نویسی سیستمی مثل C یا ++C و Assembly دارن که قضیه یکم سخت و پیچیده میشه
سلام خوبی صابر جان ؟
عوضش من USB رو فراموش کردم
موفق باشید .
شأن انسان در ایمان و هجرت و جهاد است و هجرت، مقدمهآی جهاد فیآسبیلآالله.
هجرت، هجرت از سنگینیآهاست و جاذبهآهایی که تو را به خاک میآچسباند.
چکمهآهایت را بپوش، رهآتوشهآات را بردار و هجرت کن.
شاید تابحال خواسته باشید از طریق پورت پرینتر و یا پورت سریال یا باس ISA با سخت افزاری که خودتان ساخته اید ارتباط برقرار کنید . برای این کار شما نیاز به برنامه ای دارید که بوسیله دستورات I/O با سخت افزار شما ارتباط برقرار کند . چون ویژوال بیسیک دارای دستورات کار با پورتهای I/O نیست بایستی توسط ویژوال سی یک Dll برای کار با این پورتها بسازیم و تو وی بی فایل کامپایل شده رو به طور مشابه توابع آی پی آی به کار بگیرید.
DLL و کاربردهای آن
اگر شما در DOS برنامه نویسی کرده باشید با دستورات INPUT و OUPUT در زبان QuickBasic و با دستورات inp و outp در C آشنا هستید . این توابع در VB پیاده سازی نشده اند . این توابع برای سازندگان سخت افزار برای PC و نیز برنامه نویسان سیستم حیاتی هستند زیرا به شما اجازه خواندن از پورت و نوشتن به پورت را می دهند . برای ایجاد امکان استفاده ار پورت در VB باید از Dll یا کتابخانه های دینامیک استفاده کنیم . Dll ها به VB اجازه می دهند تا یک کد نوشته شده به یک زبان دیگر را در زمان اجرا ( بطور دینامیک ) به برنامه لینک شود . چون ویژوال سی دارای توابع خواندن و نوشتن پورت است بنابراین ما از این زبان برای ساخت Dll موردنظر استفاده می کنیم .
نوشتن DLL در VC
برای ساخت Dll ما بایستی دو فایل را ایجاد کنیم . اولین فایل یک فایل define یا DEF است و دومین فایل ، یک فایل C++ source یا CPP می باشد . هر دو فایل را می توانید توسط Notepad ایجاد کنید . لیست کد این دو فایل بصورت زیر است :
پس از نوشتن این دو فایل آنها را در یک دایرکتوری قرار دهید ( مثلاً C:port ) و سپس وارد محیط ویژوال سی شوید . از منوی File مورد New را انتخاب کنید و در کادری که ظاهر می شود در قسمت Projects مورد Win32 Dynamic-Link Library را انتخاب کنید . همچنین در سمت راست همان صفحه در کادر Project name عبارت port را وارد کنید و در کادر Location عبارت C:portport را وارد کنید و آنگاه OK را کلیک کنید .
Port.def file :
LIBRARY Port
DESCRIPTION DLL FOR I/O PORT
EXPORTS
Outp @1
Inp @2
Port.cpp file :
include "conio.h"x#
short _stdcall Outp(int PortAddress,int PortData){
short Dummy;
Dummy=(short)(_outp(PortAddress,PortData));
return(Dummy);
;}
short _stdcall Inp(int PortAddress)
{
short PortData;
PortData=(short)(_inp(PortAddress));
return(PortData);
;}
در مرحله بعدی بایستی فایل های def و cpp را به workspace ایجاد شده اضافه کنیم . برای اینکار در برگه FileView روی عبارت Port files کلیک راست کرده و مورد Add Files to Project را انتخاب کنید .
در کادری که ظاهر می شود فایل port.cpp را انتخاب کنید . با همین روش فایل port.def را نیز به پروژه اضافه نمائید .
حال وارد منوی Build شده مورد Build port.dll را انتخاب کنید تا dll مورد نظر ساخته شود .
dll ساخته شده را در دایرکتوری system ویندوزتان کپی کنید .
استفاده از Dll در ویژوال بیسیک
برای استفاده از توابع dll ساخته شده باید ابتدا توابع Out و In را declare کنید :
Private Declare Function Outp Lib "port.dll" (Byval PortAddress as Integer,Byval PortData as Integer) as Integer
Private Declare Function Inp Lib "port.dll" (Byval PortAddress as Integer) as Integer
حال در برنامه تان برای نوشتن به یک پورت از دستور زیر استفاده کنید :
Dummy=Outp(port_number,data)
و برای خواندن از پورت از دستور زیر استفاده کنید :
سلام علی جان
بله من این مطلب رو قبلاً در ایران ویج دیده بودم
ولی من هر کاری کردم نتونستم این DLL رو در ویژوال سی کامپایل و Build کنم هی ارور و وارنینگ میداد
به نظرم برای ارسال بیت و بایت به پورت موازی بهترین dll موجود input32.dll هستش
که در تمامی نسخه های ویندوز حتی NT و XP به راحتی میشه به پورت موازی دسترسی داشت
و اطلاعات رو توش خوند و نوشت کار باهاش در Visual Basic خیلی خیلی ساده هستش :roll:
سلام صابر خان
کلا من با زبان های ویژوال کار نکردم و اطلاعات ندارم
آیا بهتر نیست از زبانهای سیستمی استفاده کنیم ؟
دیگه احتیاجی به DLL نویسی هم نداریم
اگه با C یا اسمبلی خواستید این کار رو بکنید ما هم در خدمتیم !!
موفق باشید
بله علی جان
برای برنامه نویسی سخت افزار هیچ چیز جای زبان های سیستمی رو نمیگیره منم ارادت خاصی دارم نسبت به اسمبلی و C ولی زبان های ویژوال یه چیز دیگه است اون یه چیز دیگه که میگم مثل راحتی ، آسونی ، کاربرپسندی و از همه مهمتر واسط گرافیکی هستش یه پیشنهاد برای اینکه در حق این زبان ها کوتاهی نشه شما برای دسترسی به پورت موازی در اسمبلی و C یه پروژه بذارین منم در ویژوال بیسیک تا هم سطح تایپیک بره بالا و هم یه چیزی یاد بگیریم
ممنون
با سلام:
یک سوال داشتم و احتیاج به راهنمایی شما
من دستگاهی را با میکرو ساخته ام و می خواهم آن را به کامپوتر نیز وصل کنم تا با هم تبادل اطلاعات داشته باشندو برنامه کامپیوتری آن را نیز با دلفی نوشته ام که البته با پورت سزیبال کار می کند .حال سوال من اینست که اگر بخواهم که این ارتباط از طریق پورت usb باشد در دلفی چگونه باید کار کنم.
با چند نفری که در این مورد صحبت کردم میگفتند که برنامه نویسی قسمت میکرو مشکلی ندارد اما برنامه نویسی برای کامپیوتر برای usb بسیار سخت و غیر ممکن است(البته برای من ) چون احتیاج به فایل های dll دارد که اولا نمی توان آنها را گیر آورد و ثانیا نمی شود فهمید که این فایل ها چگونه کار می کنند. لطفا مرا در این زمینه زاهنمایی فرمائید.
(در ضمن در برنامه نویسی کامپیوتر زیاد مسلط نیستم)
با تشکر
ر کسی را بهر کاری در جهان آورده اند
کار ما عشق است و ما را بهر آن آورده اند
سلا دوست عزیز
سخت که چه عرض کنم برنامه نویس USB بله احتیاج به کامپوننت ها ( اکتیوایکس ها و DLLمخصوصی ) داره تا زبان برنامه نویسی شما ویژوال بیسیک یا دلفی بتونه بوسله اونا با USB ارتباط برقرار کنه بعد با دیکرلر کردن توابع و فانکشن ها میتونی بوسیله دستورات اون کامپوننت در پورت USB بخونی و بنویسی البته در اکثر مواقع نیاز هستش که شما یک درایور هم برای شناسایی سخت افزار متصل به USB برای سیستم عامل های کاربر بنویسی که این یکم قضیه رو پیچیده و مشکل میکنه . یکی از کامپوننت های معروف و البته غیر رایگان برای پورت USB کامپوننت DriverLINXهستش که آدرس اون www.driverlinx.com هستش ببین اگه بتونی کرکی برای این کامپوننت پیداکنی میتونی بوسیله دستورات و HELP اون با USB ارتباط برقرار کنی برای نوشتن درایور هم میتونی از Jungo استفاده کنی اینم آدرسش www.jungo.com این هم در ضمینه USB قوی هستش باید یکم بگردی من یه زمان سورسی برای برقراری ارتباط بین USB و ویژوال بیسیک داشتم که اونقدر پیچیده بود و از ماژوال های تو در تو استفاده کرده بود که ازش سر در نیاوردم بهترین راه همون تهیه کامپوننت هستش کار رو خیلی خیلی آسون میکنه
دوستان عزیز سلام .
آی سی هایی که برای رابط USB نیاز میشه رو من از اساتیدی که کار کرده بودن سوال میکردم ظاهرا گیر نمیاد . ولی درایور هایی در ایران هست که یه شرکت ایرانی درستشون کرده اون داده ها رو براتون تبادل میکنه و درایوری که نوشته میشه برای اون هست یعنی همه چیز آماده هست شما فقط میخونید و مینویسید .
یه سری به جمهوری بزنید اطلاعات بیشتری گیرتون میاد .
موفق باشید
شأن انسان در ایمان و هجرت و جهاد است و هجرت، مقدمهآی جهاد فیآسبیلآالله.
هجرت، هجرت از سنگینیآهاست و جاذبهآهایی که تو را به خاک میآچسباند.
چکمهآهایت را بپوش، رهآتوشهآات را بردار و هجرت کن.
دوستان عزیز سلام .
آی سی هایی که برای رابط USB نیاز میشه رو من از اساتیدی که کار کرده بودن سوال میکردم ظاهرا گیر نمیاد . ولی درایور هایی در ایران هست که یه شرکت ایرانی درستشون کرده اون داده ها رو براتون تبادل میکنه و درایوری که نوشته میشه برای اون هست یعنی همه چیز آماده هست شما فقط میخونید و مینویسید .
یه سری به جمهوری بزنید اطلاعات بیشتری گیرتون میاد .
موفق باشید
بله محمد جان این ماژوال آماده ارتباط با پورت USB و خواندن و نوشتن در آن در سایت ایرانی www.usb.ir هستش حتماً یه سری بهش بزنید
در واقع من در پست بالا این دوستمون را جهت نوشتن همین درایورها و ماژول ها راهنمایی کرده بودم که خوب یکم سخت هستش ولی این درایورها و ماژول های را سایت ایرانی فوق خودش نوشته و شما میتونید براحتی پورت USB رو به مدارتون اضافه کنید
راستی اضافه میکنم که قیمت سخت افزار این ماژول 35 هزار تا 45 هزار هستش
البته درایورها و PDF های اون برای دانلود رایگان هستش ولی عملاً بدون سخت افزار کاربرد ندارند
فکر کنم گرون باشه :cry:
ماژول این شرکت ایرانی خیلی چیز جالبی است ولی خیلی خیلی گران است و اصلا به صرفه نیست ولی یک ماژول چینی پیدا کردم به قیمت 12 هزار تومان که راحت می توان با پورت usb ارتباط برقرار کرد هر چند این نیز گران است ولی باز به صرفه تر است (اگر 45 هزار تومان پول داشتیم که دیگر به ما دانشجو نمی گفتند :shock: :shock: :shock: )
با تشکر
ر کسی را بهر کاری در جهان آورده اند
کار ما عشق است و ما را بهر آن آورده اند
دیدگاه