บทความประกอบการเรียนรู้ => เทคนิคการอินเตอร์เฟส Visual Basic => ข้อความที่เริ่มโดย: admin ที่ มกราคม 07, 2010, 02:35:52 PM

หัวข้อ: งานครั้งที่ 7 เขียนโปรแกรมควบคุม LED ทางพอร์ตขนาน (VB, VC#)
เริ่มหัวข้อโดย: admin ที่ มกราคม 07, 2010, 02:35:52 PM
เขียนโปรแกรมทำงานเป็นสวิตช์สั่งงานออกทางพอร์ตเพื่อควบคุมหลอดไฟ 8 หลอด โดยใช้สวิตช์ 8 ตัวควบคุมแต่ละหลอดแบบอิสระต่อกัน

(http://www.praphas.com/PhotoForum/interface/Lab6.png)


http://www.youtube.com/v/aaQjXwtknYM
หัวข้อ: Re: ครั้งที่ 6 โปรแกรมสั่งงานหลอดไฟ 8 หลอดทางพอร์ตขนาน
เริ่มหัวข้อโดย: admin ที่ มกราคม 12, 2010, 10:22:55 AM
รูปหลอดไฟสามารถนำมาจากเวป
http://www.clker.com/clipart-6515.html

(http://www.clker.com/cliparts/5/7/b/5/1194989231691813435led_circle_red.svg.thumb.png)(http://www.clker.com/cliparts/f/c/e/c/1194989232184685632led_circle_yellow.svg.thumb.png)(http://www.clker.com/cliparts/1/3/e/6/1194989228908147779led_circle_grey.svg.thumb.png)(http://www.clker.com/cliparts/8/7/9/4/11949892291176866770led_circle_orange.svg.thumb.png)(http://www.clker.com/cliparts/e/a/2/7/11949892302105303854led_circle_purple.svg.thumb.png)(http://www.clker.com/cliparts/1/5/4/b/11949892282132520602led_circle_green.svg.thumb.png)(http://www.clker.com/cliparts/6/4/9/f/1194989227957039545led_circle_blue.svg.thumb.png)

LED (On-Off)
(http://www.clker.com/cliparts/X/A/P/f/5/n/red-led-off-th.png)(http://www.clker.com/cliparts/M/h/R/9/8/H/red-led-on-th.png)
(http://www.clker.com/cliparts/6/l/f/V/f/H/green-led-off-th.png)(http://www.clker.com/cliparts/z/r/p/I/x/a/green-led-on-th.png)
(http://www.clker.com/cliparts/Y/u/h/d/l/1/led-off-th.png)(http://www.clker.com/cliparts/o/c/7/P/9/5/led-on-th.png)
(http://www.clker.com/cliparts/R/B/I/T/f/z/led-green-th.png)(http://www.clker.com/cliparts/E/E/C/W/C/P/led-green-th.png)

สำหรับผู้ที่ใช้ VB6.0 ภาพในเวปไซด์ดังกล่าวที่เป็นสกุล png ซึ่งวิชวลเบสิกอ่านไม่ได้  ให้ทำการแปลงสกุลภาพเป็น gif ทำได้โดยใช้โปรแกรมโฟโต้ชอป เปิดไฟล์แล้ว save as เป็นไฟล์ gif

(http://www.praphas.com/PhotoForum/interface/Lab7/circle_black.gif)(http://www.praphas.com/PhotoForum/interface/Lab7/circle_blue.gif)(http://www.praphas.com/PhotoForum/interface/Lab7/circle_green.gif)(http://www.praphas.com/PhotoForum/interface/Lab7/circle_orange.gif)(http://www.praphas.com/PhotoForum/interface/Lab7/circle_purge.gif)(http://www.praphas.com/PhotoForum/interface/Lab7/circle_red.gif)(http://www.praphas.com/PhotoForum/interface/Lab7/circle_yellow.gif)
หัวข้อ: Re: ครั้งที่ 6 โปรแกรมสั่งงานหลอดไฟ 8 หลอดทางพอร์ตขนาน
เริ่มหัวข้อโดย: admin ที่ มกราคม 12, 2010, 10:29:26 AM
(http://www.clker.com/cliparts/a/e/2/7/1194989235964580482led_rectangular_h_grey.svg.thumb.png)(http://www.clker.com/cliparts/c/4/e/5/11949892331147620294led_rectangular_h_black.svg.thumb.png)(http://www.clker.com/cliparts/6/6/0/8/1194989233158318133led_rectangular_h_blue.svg.thumb.png)(http://www.clker.com/cliparts/1/e/b/2/1194989234414508160led_rectangular_h_green.svg.thumb.png)(http://www.clker.com/cliparts/d/b/f/1/11949892352101664721led_rectangular_h_orange.svg.thumb.png)(http://www.clker.com/cliparts/c/8/1/8/1194989236722398127led_rectangular_h_purple.svg.thumb.png)(http://www.clker.com/cliparts/0/7/f/7/11949892362139290987led_rectangular_h_red.svg.thumb.png)(http://www.clker.com/cliparts/9/f/6/5/1194989237903188335led_rectangular_h_yellow.svg.thumb.png)

(http://www.praphas.com/PhotoForum/interface/Lab7/sw1-on.gif) (http://www.praphas.com/PhotoForum/interface/Lab7/sw1-off.gif) (http://www.praphas.com/PhotoForum/interface/Lab7/sw2-on.gif) (http://www.praphas.com/PhotoForum/interface/Lab7/sw2-off.gif)

(http://www.praphas.com/PhotoForum/interface/Lab7/sw3-on.gif) (http://www.praphas.com/PhotoForum/interface/Lab7/sw3-off.gif) (http://www.praphas.com/PhotoForum/interface/Lab7/sw4-on.gif) (http://www.praphas.com/PhotoForum/interface/Lab7/sw4-off.gif)

(http://www.praphas.com/PhotoForum/interface/Lab7/sw5-on.gif) (http://www.praphas.com/PhotoForum/interface/Lab7/sw5-off.gif) (http://www.praphas.com/PhotoForum/interface/Lab7/sw6-on.gif) (http://www.praphas.com/PhotoForum/interface/Lab7/sw6-off.gif)
หัวข้อ: Re: ครั้งที่ 6 โปรแกรมสั่งงานหลอดไฟ 8 หลอดทางพอร์ตขนาน
เริ่มหัวข้อโดย: admin ที่ มกราคม 12, 2010, 11:38:34 AM
Inpout32.dll ไลบรารีพิเศษที่ใช้ในการเขียนโปรแกรมติดต่อพอร์ตขนาน  สามารถดาวน์โหลดได้ฟรีที่
https://sourceforge.net/projects/lptcontrol/?source=directory (https://sourceforge.net/projects/lptcontrol/?source=directory)


ดำเนินการดังนี้

-ทำการแตกไฟล์(ที่ได้ดาวน์โหลดมาจาก URL ข้างบน)
-คัดลอกไฟล์ inpout32.dll
-ไปไว้ในโฟลเดอร์ system32 ที่อยู่ในโฟลเดอร์ windows  --> C:\Windows\System32\
 

ถ้าเป็น Windows Me, 2000, XP --------------> ให้ก็อปปี้ไว้ที่โฟลเดอร์ C:\Windows\System32 หรือ C:WinntSystem32

(http://image.free.in.th/z/ix/pddll.png)

หากไม่ดำเนินการเวลารันผลจะเป็นเช่นนี้
(http://image.free.in.th/z/it/err_inpout32.png)
เวลาใช้งาน
ต้องประกาศการใช้งานก่อนเขียนโปรแกรม เมื่อต้องการใช้คำสั่งส่งข้อมูลออกพอร์ต
โค๊ด: [Select]
Private Declare Sub Out Lib "inpout32.dll" Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer) 
ต้องประกาศการใช้งานก่อนเขียนโปรแกรม เมื่อต้องการใช้คำสั่งรับข้อมูลจากพอร์ต
โค๊ด: [Select]
Private Declare Function Inp Lib "inpout32.dll" Alias "Inp32" (ByVal PortAddress As Integer) As Integer 

การใช้ฟังก์ชั่นหน่วงเวลา
ต้องประกาศการใช้งานก่อนเขียนโปรแกรม
โค๊ด: [Select]
Public Declare Sub Sleep Lib "Kernel32.dll" (ByVal PortAddress As Integer)


รูปแบบการใช้งาน
คำสั่งส่งข้อมูลออก
out เบอร์พอร์ต,ข้อมูลที่ส่งออก
ตัวอย่างเช่น
out &H378,12

คำสั่งรับข้อมูลจากพอร์ต
inp (เบอร์พอร์ต)
ตัวอย่างเช่น
 value=inp(&H379)


คำสั่งหน่วงเวลา
Sleep 500    'หน่วงเวลา 500 มิลลิวินาที
หัวข้อ: Re: งานครั้งที่ 7 การประกอบวงจรและเขียนโปรแกรมควบคุม LED แบบขนาน
เริ่มหัวข้อโดย: admin ที่ ธันวาคม 31, 2010, 03:21:57 PM
การจำลองการทำงานของโปรแกรมโดยไม่ต้องต่อวงจรจริงด้วยโปรแกรม Proteus

1. ดาวน์โหลดอุปกรณ์สำหรับทดลองที่
http://www.praphas.com/download/interface/library-LPT.rar (http://www.praphas.com/download/interface/library-LPT.rar)

2. คัดลอกไฟล์ LPT02.LIB ที่อยู่ในโฟลเดอร์ Library ไปไว้ในโฟลเดอร์   C:\Program Files\Labcenter Electronics\Proteus 7 Professional\LIBRARY

3. คัดลอกไฟล์ Port.dll ที่อยู่ในโฟล์เดอร์ Models ไปไว้ในโฟลเอดร์ C:\Program Files\Labcenter Electronics\Proteus 7 Professional\MODELS

(http://image.free.in.th/z/im/4dll2.png)

4. เวลาเรียกใช้ให้พิมพ์ในช่องค้นหาอุปกรณ์โดยพิมพ์คำว่า "LPT" จะปรากฏให้ใช้งาน 2 ตัวเลือกใช้ตัวไหนก็ได้มันอันเดียวกัน

(http://www.praphas.com/PhotoForum/interface/Lab7/lab7-1.png)

ผลการจำลองซึ่งทำในขณะเดียวกันกับต่อวงจรเชื่อมต่อจริงจะให้ผลเช่นเดียวกัน
(http://www.praphas.com/PhotoForum/interface/Lab7/lab7-2.jpg)
หัวข้อ: Re: งานครั้งที่ 7 เขียนโปรแกรมควบคุม LED ทางพอร์ตขนาน
เริ่มหัวข้อโดย: admin ที่ พฤษภาคม 16, 2018, 03:21:14 PM
การประกาศใช้ฟังก์ชั่นเมื่อใช้กับ Visual C#
โค๊ด: [Select]
using System.Runtime.InteropServices;
public class PortAccessAPI
{
    [DllImport("inpout32.dll", EntryPoint = "Out32")]
    public static extern void Output(int address, int value);
    [DllImport("inpout32.dll", EntryPoint = "Inp32")]
    public static extern int Input(int address);
}

ฟังก์ชั่นใช้งานเมื่อต้องการส่งค่าออกพอร์ต
โค๊ด: [Select]
int value = 24;
PortAccessAPI.Output(0x378, value);

ฟังก์ชั่นใช้งานเมื่อต้องการรับค่าจากพอร์ต
โค๊ด: [Select]
int value;
value = PortAccessAPI.Input(adress);

ตำแหน่งการประกาศใช้ฟังก์ชั่น
(http://image.free.in.th/v/2013/ie/180516090501.png)