কমপিউটার ইন্টারফেসের মূল বিষয় হচ্ছে কমপিউটারের পোর্ট সমন্ধে ভালোভাবে জানা৷ অনেকেই ইন্টারফেসের প্রোগ্রামগুলো করতে চেষ্টা করছেন, কিন্তু পোর্টের সঠিক কনফিগারেশন না জানার কারণে প্রোগ্রামের আউটপুট সঠিকভাবে পাচ্ছেন না৷ এ পর্বে কমপিউটারের প্যারালাল পোর্ট নিয়ে প্রোগ্রাম ডেভেলপ করা হয়েছে৷ প্যারালাল পোর্ট হিসেবে কমপিউটারের প্রিন্টার পোর্টকেই বুঝানো হয়৷ নিচের চিত্রে প্রোগ্রামের আউটপুট উইন্ডোটি দেখানো হয়েছে৷ কমপিউটারের প্রিন্টার পোর্টের সম্পূর্ণ বর্ণনা পাবেন এ প্রোগ্রামটির মাধ্যমে৷ প্রিন্টার পোর্ট তিনটি অংশে বিভক্ত- ডাটা পোর্ট, স্ট্যাটাস পোর্ট, কন্ট্রোল পোর্ট৷ প্রিন্টার পোর্টকে D25 কানেক্টরও বলা হয়ে থাকে৷ এই পোর্টের মোট ২৫টি পিন থাকে৷ এই ২৫টি পিনের ৮টি পিন ডাটা পোর্ট, ৫টি এস্টাট্যাস পোর্ট, ৪টি কন্ট্রোল পোর্ট ও ৮টি গ্রাউন্ড হিসেবে থাকে৷ ৮টি গ্রাউন্ড পিন একত্রে সংযুক্ত থাকে, তাই এদের যেকোনো একটি পিন গ্রাউন্ড করলেই চলবে৷ তবে ৮টি পিনকে একত্রে করে গ্রাউন্ড করা ভালো৷ অনেক D25 কানেক্টরে ৮টি গ্রাউন্ড পিন একত্রে যুক্ত করা নাও থাকতে পারে৷ D25 কানেক্টর কমপিউটারে লাগানোর আগে ভালোভাবে পরীক্ষা করে নিতে হবে৷ প্রতিটি পিনের লেবেল করে নিয়ে পিন ১ হতে ২৫ ভালো করে মিলিয়ে নিন আর লেবেল উল্টাপাল্টা বা ভুল হলে কমপিউটারের আউটপুটের ফলাফল ভিন্ন হবে৷ ডাটা পোর্টে যে ৮টি পিন থাকে তা শুরু হয় পিন ২ দিয়ে৷ সুতরাং পিন ২ থেকে পিন ৯ এই ৮টি পিন ডাটা পোর্টের মধ্যে যেখানে পিন ২ হচ্ছে প্রথম ডিজিটটি, যা D0 দিয়ে নামকরণ করা হয়৷ পিন ২ হতে ৯ পর্যন্ত পিন যথাক্রমে D0 থেকে D7 হবে৷ নিচের প্রোগ্রাম কোডটি ভিজুয়্যাল বেসিকে ডেভেলপ করে রান করিয়ে পিন ২ হতে পিন ৯-এ ক্লিক করুন৷ এবার ডাটা পোর্টের ফলাফল লক্ষ করুন৷ ডাটা পোর্টের ফলাফল বাইনারি ও ই িন্টজার উভয়ভাবে দেখানো হয়েছে৷ ঠিক তেমনি পিন ১০, ১১, ১২, ১৩ ও ১৫ এস্টাট্যাস পোর্টের অধীনে৷ একইভাবে পিনগুলোতে ক্লিক করে ফলাফল দেখুন প্রোগ্রামের আউটপুটে৷ পিন ১, ১৪, ১৬ ও ১৭ কন্ট্রোল পোর্টের অধীনে৷ এই কন্ট্রোল পোর্টের পিনগুলোতে ক্লিক করে প্রোগ্রামের আউটপুটে ফলাফল দেখুন৷ পিনগুলোর কনফিগারেশন প্রোগ্রামের আউটপুট উইন্ডোতে বর্ণনা করা হয়েছে৷ ডাটা পোর্ট দিয়ে আউট, এস্টাট্যাস পোর্ট দিয়ে ইন ও কন্ট্রোল পোর্ট দিয়ে আউট করা হয়৷ এই তিন ধরনের পোর্টের এড্রেস ভিন্ন৷ ডাটা পোর্টের এড্রেস 0X378, এস্টাট্যাস পোর্টের এড্রেস 0X379 ও কন্ট্রোল পোর্টের এড্রেস 0X37A. এই এড্রেসগুলো সাধারণত C প্রোগ্রামিংয়ে ব্যবহার হয়ে থাকে৷ ভিজুয়্যাল বেসিকের এড্রেসগুলো প্রোগ্রামের আউটপুট উইন্ডোতে বর্ণনা করা হয়েছে৷ যখন কোনো সার্কিটের গ্রাউন্ড কমপিউটারে পোর্টের গ্রাউন্ডের সাথে যুক্ত করা হয়, তখন অবশ্যই খেয়াল রাখতে হবে প্রিন্টার পোর্টের গ্রাউন্ড পিন ৮টি, যা পিন ১৮ হতে পিন ২৫ অবশ্যই একত্রে সার্কিটের গ্রাউন্ডে যুক্ত করতে হবে৷
ভিজুয়্যাল বেসিকে প্রোগ্রামের ফলাফল পেতে হলে Inpout32.dll ফাইলটির প্রয়োজন পড়বে৷ প্রোগ্রামিং কোডে একটি মডিউল ব্যবহার করা হয়েছে৷ এই মডিউলটিই Inpout32.dll-কে ব্যবহার করে প্রোগ্রামের আউটপুট দেবে৷ এই ডিএলএল ফাইলটি http://www.logix4u.net/inpout32-source-and-binszip থেকে ডাউনলোড করে নিতে হবে৷ এবার এই ফাইলটি Unzip করে Inpout32.dll ফাইলটি উইন্ডোজের সিস্টেম ফোল্ডারে রাখতে হবে৷ সাধারণত ডাটা পোর্টের ডাটা আউট করার জন্য out port_add, value লাইনটি ব্যবহার করা হয়েছে৷ তেমনি in করার জন্য a=inp(port_add) ব্যবহার করা হয়৷ ডাটা পোর্ট ও কন্ট্রোল পোর্ট দিয়ে ডাটা আউট ও স্ট্যাটাস পোর্ট দিয়ে ডাটা ইনপুট করা হয়৷ প্রোগ্রামের প্রতিটি কোড প্রোগ্রামের কোডিং করার সময়ই বর্ণনা করা হয়েছে৷ তাই প্রোগ্রামিং কোড ভালো করে লক্ষ করুন ও বুঝার চেষ্টা করুন৷ ডাটা পোর্টের লেড (LED) লাগিয়ে টেস্ট করতে পারেন প্রোগ্রামটি ঠিকভাবে কাজ করছে কি না৷ তবে সেক্ষেত্রে অবশ্যই LED-এর ধনাত্মক প্রান্ত প্রিন্টার পোর্টের ডাটা পিনগুলোতে লাগাতে হবে আর অপর প্রান্তে LED-এর সাথে সমান্তরাল 1K রেজিস্টর লাগিয়ে প্রিন্টার পোর্টের গ্রাউন্ড পিনগুলোর সাথে যুক্ত করে গ্রাউন্ড করতে হবে৷ সাহায্যের জন্য দেখুন www.geocities.com/redu0007.
Name - Parallel Port Controller Main Author - Josh Gaby, Program Developer: Md. Redwanur Rahman Date - 28/10/2004 Option Explicit Public Function Data_Port() 8bit binary Declare variables Dim D As Integer Dim A As String Get the binary from check boxs D08, D07, D06, D05, D04, D03, D02 and D01 eg: Off, Off, Off, On, On, Off, Off and On = 0, 0, 0, 1, 1, 0, 0, 1 A = D08.Value & D07.Value & D06.Value & D05.Value & D04.Value & D03.Value & D02.Value & D01.Value Convert binary into integer eg: 0 | 0 | 0 | 1 | 1 | 0 | 0 | 1 128 | 064 | 032 | 016 | 008 | 004 | 002 | 001 016 + 008 + 001 = 25 If D08.Value = 1 Then D = D + 128 If D07.Value = 1 Then D = D + 64 If D06.Value = 1 Then D = D + 32 If D05.Value = 1 Then D = D + 16 If D04.Value = 1 Then D = D + 8 If D03.Value = 1 Then D = D + 4 If D02.Value = 1 Then D = D + 2 If D01.Value = 1 Then D = D + 1 Display the integer on the form lblDi.Caption = A Display the 8bit binary on the form lblDb.Caption = D Send the integer to the parallel port using inpout.dll (The "&H378" tells it that it is a data port and the integer tell it wich pins to turn on) Out Val("&H378"), Val(D) End Function Public Function Status_Port() 5bit binary Declare variables Dim E As Integer Dim b As String Get the binary from check boxs S05, S04, S03, S02 and S01 eg: Off, On, Off, Off and On = 1, 1, 0, 0, 1 b = S05.Value & S04.Value & S03.Value & S02.Value & S01.Value Convert binary into integer eg: 0 | 1 | 0 | 0 | 1 016 | 008 | 004 | 002 | 001 008 + 001 = 9 If S05.Value = 1 Then E = E + 16 If S04.Value = 1 Then E = E + 8 If S03.Value = 1 Then E = E + 4 If S02.Value = 1 Then E = E + 2 If S01.Value = 1 Then E = E + 1 Display the integer on the form lblSi.Caption = b Display the 5bit binary on the form lblSb.Caption = E Send the integer to the parallel port using inpout.dll (The "&H379" tells it that it is a status port and the integer tell it wich pins to turn on) Out Val("&H379"), Val(E) End Function Public Function Control_Port() 4bit binary Declare variables Dim F As Integer Dim C As String Get the binary from check boxs C04, C03, C02 and C01 eg: On, On, On and On = 1, 1, 1, 1 C = C04.Value & C03.Value & C02.Value & C01.Value Convert binary into integer eg: 1 | 1 | 1 | 1 008 | 004 | 002 | 001 008 + 004 + 002 + 001 = 15 By default control ports have a value of 1 so to make the check boxs behave the same way as the others I had to make them add when the check boxs turn Off instead of On If C04.Value = 0 Then F = F + 8 If C03.Value = 0 Then F = F + 4 If C02.Value = 0 Then F = F + 2 If C01.Value = 0 Then F = F + 1 Display the integer on the form I had to minus F from 15 so that it would show correctly on the form lblCi.Caption = 15 - F Display the 4bit binary on the form lblCb.Caption = C Send the integer to the parallel port using inpout.dll (The "&H37A" tells it that it is a control port and the integer tell it wich pins to turn on) Out Val("&H37A"), Val(F) End Function Private Sub C01_Click() Call public Function Control_Port Call Control_Port End Sub Private Sub C02_Click() Call public Function Control_Port Call Control_Port End Sub Private Sub C03_Click() Call public Function Control_Port Call Control_Port End Sub Private Sub C04_Click() Call public Function Control_Port Call Control_Port End Sub Private Sub D01_Click() Call public Function Data_Port Call Data_Port End Sub Private Sub D02_Click() Call public Function Data_Port Call Data_Port End Sub Private Sub D03_Click() Call public Function Data_Port Call Data_Port End Sub Private Sub D04_Click() Call public Function Data_Port Call Data_Port End Sub Private Sub D05_Click() Call public Function Data_Port Call Data_Port End Sub Private Sub D06_Click() Call public Function Data_Port Call Data_Port End Sub Private Sub D07_Click() Call public Function Data_Port Call Data_Port End Sub Private Sub D08_Click() Call public Function Data_Port Call Data_Port End Sub Private Sub Form_Load() Send all pins the Off signal (0) Call Data_Port Call Status_Port Call Control_Port End Sub Private Sub S01_Click() Call public Function Satus_Port Call Status_Port End Sub Private Sub S02_Click() Call public Function Satus_Port Call Status_Port End Sub Private Sub S03_Click() Call public Function Satus_Port Call Status_Port End Sub Private Sub S04_Click() Call public Function Satus_Port Call Status_Port End Sub Private Sub S05_Click() Call public Function Satus_Port Call Status_Port End Sub Private Sub tmrResis_Timer() lblresis.Caption = Str(Inp(Val("&H379"))) End Sub
This is just the Module out of the vb test app that comes with inpout.dll when you download it Public Declare Function Inp Lib "inpout32.dll" _ Alias "Inp32" (ByVal PortAddress As Integer) As Integer Public Declare Sub Out Lib "inpout32.dll" _ Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer)
ফিডব্যাক : redu0007@yahoo.com