• توجه: در صورتی که از کاربران قدیمی ایران انجمن هستید و امکان ورود به سایت را ندارید، میتوانید با آیدی altin_admin@ در تلگرام تماس حاصل نمایید.

برنامه نويسي سخت افزار در ويژوال بيسيک

ahmadfononi

معاونت انجمن
مقدمه
شايد تابحال خواسته باشيد از طريق پورت پرينتر و يا پورت سريال يا باس 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 ايجاد کنيد . ليست کد اين دو فايل بصورت زير است :

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)x
}
short Dummy;x
Dummy=(short)(_outp(PortAddress,PortData));x
return(Dummy);x
;{
short _stdcall Inp(int PortAddress)x
}
short PortData;x
PortData=(short)(_inp(PortAddress));x
return(PortData);x
;{

پس از نوشتن اين دو فايل آنها را در يک دايرکتوري قرار دهيد ( مثلاً C:\port ) و سپس وارد محيط ويژوال سي شويد . از منوي File مورد New را انتخاب کنيد و در کادري که ظاهر مي شود در قسمت Projects مورد Win32 Dynamic-Link Library را انتخاب کنيد . همچنين در سمت راست همان صفحه در کادر Project name عبارت port را وارد کنيد و در کادر Location عبارت C:\port\port را وارد کنيد و آنگاه OK را کليک کنيد .


در مرحله بعدي بايستي فايل هاي 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)x
و براي خواندن از پورت از دستور زير استفاده کنيد :
Portvalue=Inp(port_number)x


نکته : براي دريافت port.dll و يک برنامه نمونه استفاده از اين dll در ويژوال بيسيک ، در بخش نظر خواهي آدرس ايميل خود را بگذاريد .
 
بالا