این مقاله نسبتا کاملی در مورد
اشنایی با پارالل
برنامه نویسی و ارتباط با این پورت
روشن کردن led با پورت پارالل
استفاده از بافر برای محافظت از پورت
+
ضمیمه
سورس مثالها
در 12 صفحه
کد:
http://rapidshare.com/files/380087816/port_paralel.rar
600کیلو را همینجا حجی ضمیمه میکردی این راپیدشیر بعد از یه مدت فایلها را حذف میکنه ، حیفس
یک سوال در مورد ULN2803 فرضا من قصد داشته باشم روی یکی از پایه ها پالس بدم بیرون ( فقط خروجی ) گیرنده ای هم دارم مه پالس در یافت میکند ، نحوه برقراری ارتباط + چطوری میشه ؟
پایه شماره 10 این آی سی چیکاره هست ؟
(۲۰-اردیبهشت-۱۳۸۹, ۱۶:۲۳:۵۸)joker نوشته است: [ -> ]یک سوال در مورد ULN2803 فرضا من قصد داشته باشم روی یکی از پایه ها پالس بدم بیرون ( فقط خروجی ) گیرنده ای هم دارم مه پالس در یافت میکند ، نحوه برقراری ارتباط + چطوری میشه ؟
پایه شماره 10 این آی سی چیکاره هست ؟
سلام جوکر جان اگه سوال داری تاپیک جدید باز کن اینجا فقط جای قرار دادن مقالاته
(۲۰-اردیبهشت-۱۳۸۹, ۱۶:۵۲:۱۳)HoseinVig نوشته است: [ -> ] (۲۰-اردیبهشت-۱۳۸۹, ۱۶:۲۳:۵۸)joker نوشته است: [ -> ]یک سوال در مورد ULN2803 فرضا من قصد داشته باشم روی یکی از پایه ها پالس بدم بیرون ( فقط خروجی ) گیرنده ای هم دارم مه پالس در یافت میکند ، نحوه برقراری ارتباط + چطوری میشه ؟
پایه شماره 10 این آی سی چیکاره هست ؟
سلام جوکر جان اگه سوال داری تاپیک جدید باز کن اینجا فقط جای قرار دادن مقالاته
من نگاه نکردم ببینم کجاست :) دیدم مربوط به این پست بود دیگه همینجا ریپلای کردم :)
در مورد خود مقاله ، به نظرم سمپل موجود توی مقاله اشتباه داره
یعنی طبق قسمتی که توی مقاله اومده قاعدتا با ارسال عدد 4 باید پین شماره 2 پورت روشن بشه که این اتفاق نمی افته
خب من مشکل دسترسی درست به پینهای پورت پرینتر را اینطوری حل کردم ( تکمیل مثال همراه مقاله : port_lpt )
اول یک متغییر عمومی در نظر گرفتم به این شکل:
کد:
var
Form2: TForm2;
OldVludeonPort:string = '00000000';
بعد یک فانکشن نوشتم به این شکل :
کد:
function PinMaker(Pin:integer):string;
var
STB:array [1..8] of char;
begin
9:OldVludeonPort[1]:='1' ;
8:OldVludeonPort[2]:='1' ;
7:OldVludeonPort[3]:='1' ;
6:OldVludeonPort[4]:='1' ;
5:OldVludeonPort[5]:='1' ;
4:OldVludeonPort[6]:='1' ;
3:OldVludeonPort[7]:='1' ;
2:OldVludeonPort[8]:='1' ;
end;
که ورودی اون شماره پین بود ( پینهای 2 الی 9 پورت پارالل که خروجی این پورت هستند)
خب توی برنامه هم مثلا برای روشن کردن پایه های 3-4-8 اینطوری نوشتم :
کد:
PinMaker(3);
PinMaker(4);
PinMaker(8);
OutPortB ( $378,BinToByte(OldVludeonPort) );
sleep(100);
OldVludeonPort := '00000000';
OutPortB ( $378,BinToByte(OldVludeonPort) );
پیوست : از بچگی کلا با بیت و بایت و محاسباتشون مشکل داشتم :(
عرضم به حضورتون که مثالی که با استفاده از ring0 نوشته شده در حلقه های for موقع ارسال پالس ، منجر به کرش کردن سیستم عامل میشد گاهی ( xp Sp3 )
از همون مثال اول که با استفاده از dll inpout32.dll بود استفاده کردم و مشکلی هم در کار کردن زیاد نداشت
فایل ضمیمه یک فروند کنترلر سه محوره cnc هست که به واسطه این مقاله نوشته شده است( با تشکر ویژه از جناب Lord_viper )
( برای تستهای اولیه ساخت cnc میتونید ازش استفاده کنید، یادگاری )
محور x : پین های 2-3 _ شماره 2 پالس ، شماره 3 تعیین جهت
محور y : پینهای 4- 5 _ شماره 4 پالس ،شماره 5 تعیین جهت
محور z : پینهای 6-7 - شماره 6 پالس ، شماره 7 تعیین جهت