Login | thai-learning | Privacy Policy | About Us |

Thai Learning | ทฤษฎี IS ขั้นสูง | เว็บไทย | สารสนเทศวิทยานิพนธ์ | หนังสือรามคำแหงทั้งหมด | เกี่ยวกับผู้จัดทำ | บทกลอน |
วิชาที่ผมสอนเทอมนี้
   เว็บโปรแกรมมิ่งสำหรับ IS-2
   บรรยากาศ เทอม 2-2555
วิชาที่ผมเรียนเทอมนี้
   ทฤษฎี IS ขั้นสูง
   บรรยากาศ เทอม 2-2555
วิชาที่เรียน 1/2555
   เมนูหลักวิชาเรียนเทอมนี้
   การโปรแกรมเว็บสารสนเทศ ฯ
   การโปรแกรมงานภูมิศาสตร์ ฯ
   โปรแกรมสำหรับงานสารสนเทศ
   อินเตอร์เน็ตและการบริการ สารสนเทศบนเว็บ
   บรรยากาศ เทอม 1-2555
โปรแกรมที่ผมพัฒนาครับ
   เมนูหลักโปรแกรมที่ผมพัฒนา
   ถอดรหัสผ่าน M$-Access
   ระบบการเข้าเรียนและให้คะแนน
   การทำงานของ Adder Logic
   ปรับระดับเสียงโวลุ่ม ด้วย CLI
   เกมส์เลื่อนภาพแสนสนุก vb6
บทความที่ผมเขียนครับ
   เมนูบทความ
   ภาษาซีสำหรับผู้เริ่มต้น
   ไมโครคอนโทรเลอร์เบื้องต้น
   ไมโครคอนโทรลเลอร์จำลอง
   การกำเนิดกระแสไฟฟ้าอย่างง่าย
   ควบคุมแรงดัน 0-220 โวลท์
   Graphics LCD ด้วย CCSC
   การออกแบบ PCB ด้วย Orcad
   การออกแบบ PCB ด้วย Protel
   ไพธอนส่งเมล์ด้วย GPRS
   ไพธอนควบคุม LCD ผ่าน LPT
   ควบคุม LPT ด้วย Labview
   อิมเมจโปรเซสซิ่ง ตอน 1/3
   อิมเมจโปรเซสซิ่ง ตอน 2/3
   อิมเมจโปรเซสซิ่ง ตอน 3/3
   ภาษาซีบนลินุกซ์สมองกลฝังตัว
   การใช้งาน MinGW เบื้องต้น
   ภาษาซี ARM-LPC2368
   ออกแบบ FPGA ด้วย Schematic
   ออกแบบ FPGA ด้วยภาษา VHDL
   ออกแบบ PCB เทคนิค Dryfilm
   เขียนโปรแกรม Python GUI
   การติดตั้ง NumPy 1.6.1
   เขียนไพธอนถอดรหัส MDB
   วิชวลเบสิค ควบคุมกล้อง
   สังเคราะห์ภาพกราฟิก pov-ray
   อิมพอร์ท MySQL ด้วย BigDump
   ติดตั้ง postgresql และ phppgadmin บน centos linux
   การใช้งานเธรดด้วยภาษา PHP
   การสังเคราะห์สีให้ไวยากรณ์ภาษา
   การสร้าง Search Engine
   เขียนไพธอน Client/Server
   การสร้างพาทิชั่นที่ใหญ่กว่า 3TB บนลินุกซ์ (Ubuntu)
   การรันสคริปต์ CGI ด้วยภาษาไพธอน
   การใช้งานคำสั่ง DD บน Ubuntu - Linux
   การใช้งาน Raspberry Pi
   การเอ็กซีคิวส์ + การจัดเรียงแอพฯในลินุกซ์
   X11 ด้วย Xming และ Putty
   TITAN5 บน Ubuntu - Linux
   รหัสจังหวัดทั่วโลก + เรดาร์
   การควบคุมเว็บบราวเซอร์ผ่าน SELENIUM ด้วยภาษาไพธอน
โปรแกรมภาษา
   เมนู VB-Classic
   ฟังก์ชั่น Visual Basic
   คำสั่ง Visual Basic
   ตัวแปรภาษาไพธอน (ขั้นสูง)
   โมดูลต่าง ๆ ภายในภาษาไพธอน
ข่าวสารไอที
   กูเกิ้ลเปิดตัว Tablet 7 นิ้ว
   อินเดีย IIT เปิดตัว Tablet
   RaspBerry PI สมองกลฝังตัว
   คอมพิวเตอร์จิ๋ว
บริการสารสนเทศ
   ไทยเว็บ 2012
   เว็บไทย
   ฐานข้อมูล วิทยานิพนธ์
   รวมคำศัพท์ภาษาไทย
   เคยฟังมั้ย - เพลงมาร์ช มมส
   ประวัติศาสตร์ชาติไทย หลวงปู่ฤาษีลิงดำ
   เพลงน้อมใจปล่อยวาง 1
   เพลงน้อมใจปล่อยวาง 2
   เพลงน้อมใจปล่อยวาง 3
เกี่ยวกับเรา
   เกี่ยวกับผู้ก่อตั้ง
   บทกลอนที่ผมแต่งครับ..
   แลกลิงค์กับเรา ที่นี่
   รายละเอียดแม่ข่าย
   ดาต้าเซนเตอร์ (Data Center)
   เงื่อนไขการใช้งาน

  
 

บทความ : ไมโครคอนโทรลเลอร์สำหรับผู้เริ่มต้น
เขียนโดย อ.จักรกฤษณ์ แสงแก้ว สาขาสารสนเทศศาสตร์ คณะวิทยาการสารสนเทศ มหาวิทยาลัยมหาสารคาม


ผู้เขียนพบปัญหาสำคัญในการศึกษาไมโครคอนโทรลเลอร์สำหรับเยาวชนหรือผู้สนใจในบ้านเมืองไทย สืบเนื่องจากการไม่มีชุดทดลอง และการไม่มีผู้คอยอธิบายสำหรับผู้เริ่มต้น จึงทำให้การเรียนรู้และค้นคว้าด้วยตนเองยากลำบาก บางคนท้อไปเลยและเลิกศึกษาค้นคว้าด้านนี้ จึงเป็นที่น่าเสียดายอย่างยิ่ง ส่วนผู้ที่ศึกษาไปแล้วเมื่อเข้าใจมวลความรู้ที่ได้ค้นคว้าแล้ว แต่มิได้เขียนเป็นคำอธิบายหรือวิธีการที่ง่ายต่อการเข้าใจเอาไว้ จึงทำให้ผู้เริ่มต้นศึกษารุ่นหลัง ๆ เกิดความยากลำบากและเป็นอย่างนี้ซ้ำแล้วซ้ำเล่า !!

บทความนี้จึงขอเป็นสื่อกลางให้กับผู้สนใจได้มีโอกาสเรียนรู้และศึกษา เมื่อท่านได้ศึกษาจนจบบทความนี้แล้วเกิดแรงศรัทธาในการเรียนรู้เพิ่มขึ้น ผู้เขียนก็พลอยปิติใจตามไปด้วย ผู้เขียนขอเริ่มต้นบรรยาย โดยมีสาระสำคัญดังนี้ :

จุดประสงค์
เมื่อศึกษาบทความนี้จบแล้วท่านจะสามารถเขียนโปรแกรมให้หลอดไฟกระพริบสลับไปมาด้วยบอร์ดทดลอง NX-877 โดยใช้ภาษาซี CCSC ของบริษัท MicrochipPIC ได้
ท่านต้องสามารถประกอบชุดทดลองในลักษณะทางกายภาพได้
สามารถโหลดผลลัพธ์จากการคอมไพล์ลงบนไมโครคอนโทรลเลอร์ได้
เปลี่ยนโหมดการทำงานระหว่างการโหลดข้อมูลลงไอซี และโหมดการสั่งให้ชุดคำสั่งเริ่มต้นทำงานบนบอร์ด NX-877 ได้

เครื่องมือ
บอร์ดทดลองอิเล็กทรอนิกส์ (ผู้เขียนเลือกใช้ของ Inex รุ่น NX-877) ภาพด้านล่างแสดงบอร์ดทดลองรุ่น NX-877

โปรแกรม Miracle PIC สำหรับโหลดโปรแกรมลงสู่ไอซี เพื่อสั่งให้ทำงานต่อไป
ภาษาซี CCSC ของบริษัท MicrochipPIC

หมายเหตุ : ผู้เขียนอนุมานว่าท่านท่านมีความรู้ภาษาซีพื้นฐานมาบ้างแล้ว เนื่องจากการเขียนโปรแกรมชุดนี้จะใช้มาตรฐานซี

ขั้นตอนการดำเนินงาน
1. การประกอบชุดบอร์ดทดลองเข้ากับคอมพิวเตอร์ เพื่อทำการโหลดข้อมูลเข้าสู่ไอซี (ไมโครคอนโทรลเลอร์)
2. การติดตั้งคอมไพล์เลอร์ CCSC
3. การติดตั้งโปรแกรม Miracle PIC สำหรับโหลดข้อมูลเก็บไว้ในไมโครคอนโทรลเลอร์ (IC)
4. การเขียนโปรแกรมควบคุมไมโครคอนโทรลเลอร์ด้วยภาษาซี CCSC ของบริษัท MicrochipPIC
5. การโหลดผลลัพธ์ที่ผ่านการคอมไพล์เข้าไปในไมโครคอนโทรลเลอร์ (ไอซี)
6. การเดินสายสัญญาณระหว่าง C0 ของไมโครคอนโทรเลอร์ไปยังหลอด LED
7. การตรวจสอบผลลัพธ์ทางฮาร์ดแวร์

1. การประกอบชุดบอร์ดทดลองเข้ากับคอมพิวเตอร์ เพื่อทำการโหลดข้อมูลเข้าสู่ไอซี (ไมโครคอนโทรลเลอร์)
ขั้นที่ 1: เนื่องจากบอร์ดทดลอง NX-877 อนุญาตให้โปรแกรมเมอร์โหลดข้อมูลเข้าไปในไมโครคอนโทรลเลอร์ผ่านพอร์ตพรินเตอร์ เราเชื่อมต่อสัญญาณได้ดังภาพนี้


ขั้นที่ 2: สายสัญญาณอีกด้านหนึ่งเชื่อมต่อเข้ากับพอร์ตพรินเตอร์ที่อยู่ด้านหลังคอมพิวเตอร์ของท่าน แสดงได้ดังภาพต่อไปนี้


ขั้นที่ 3: เสียบปลั๊กหม้อแปลง (Adapter) เข้ากับเต้าไฟ 200 โวลต์ (ไฟบ้าน)


ขั้นที่ 4: ปลายของหม้อแปลงจะมีแจ็คสำหรับเสียบลงไปบนบอร์ดเพื่อจ่ายไฟเลี้ยง ให้ท่านเสียบลงบอร์ดทดลองดังภาพต่อไปนี้



ขั้นที่ 5: เปิดสวิตซ์ไฟ เพื่อปล่อยกระแสไฟฟ้าเข้าไปเลี้ยงบอร์ดทดลอง โดยการโยกสวิตซ์และดันขึ้นไปด้านบน ดังภาพต่อไปนี้



2. การติดตั้งคอมไพล์เลอร์ CCSC
ในการเขียนโปรแกรมสำหรับควบคุมอุปกรณ์ไมโครคอนโทรลเลอร์สามารถเลือกใช้งานได้หลากหลายภาษา (เพราะการพัฒนาที่ต่อเนื่องทำให้เรามีตัวเลือกเยอะขึ้นกว่าอดีตที่ต้องพัฒนาด้วยภาษาเครื่อง) บทความนี้เลือกใช้คอมไพล์เลอร์ CCSC ของบริษัท MicrochipPIC

ขั้นที่ 2.1 : ให้ท่าน Double Click ที่ไฟล์ PcWHUpd 3.221.exe ดังภาพต่อไปนี้


ขั้นที่ 2.2: หลังจากนั้นจะพบกับวินโดวส์แสดงข้อความต้อนรับดังภาพต่อไปนี้


ขั้นที่ 2.3: ขั้นตอนนี้เป็นการแจ้งเตือนเกี่ยวกับลิขสิทธิ์ผลิตภัณฑ์ แสดงได้ดังภาพต่อไปนี้


ขั้นที่ 2.4: ลำดับถัดมาเป็นการกำหนดไดเร็คทอรี่สำหรับการติดตั้ง ในตัวอย่างนี้กำหนดเป็นค่าปกติของโปรแกรม แสดงได้ดังนี้


ขั้นที่ 2.5: ขั้นตอนเตรียมพร้อมที่จะติดตั้ง


ขั้นที่ 2.6: ขั้นตอนการคัดลอกไฟล์ต่าง ๆ ที่จำเป็นสำหรับคอมไพล์เลอร์ CCSC ลงบนระบบคอมพิวเตอร์ของท่าน แสดงได้ดังนี้


ขั้นที่ 2.7: แจ้งข้อความให้ทราบว่าท่านต้องการเชื่อมต่อโปรแกรม CCSC เข้ากับ MPLAB หรือไม่ ตัวอย่างนี้ผู้เขียนไม่ได้ใช้ MPLAB จึงตอบ No


ขั้นที่ 2.8: แสดงรายละเอียดที่ได้มีการติดตั้งลงไปแล้ว


ขั้นที่ 2.9: ติดตั้งเสร็จสมบูรณ์


ขั้นที่ 2.10: เมื่อติดตั้งเสร็จเรียบร้อย ท่านจะพบไอคอนเพิ่มขึ้นบนหน้าจอเดสท็อป และปรากฎในเมนูของวินโดวส์ ดังภาพนี้


3. การติดตั้งโปรแกรม Miracle PIC สำหรับโหลดข้อมูลเก็บไว้ในไมโครคอนโทรลเลอร์ (IC)
โปรแกรมสำหรับโหลดข้อมูลเก็บไว้ในไมโครคอนโทรลเลอร์มีให้เลือกใช้หลายผลิตภัณฑ์ เช่น EPicWin และ Miracle เป็นต้น ในตัวอย่างนี้ผู้เขียนเลือกใช้ Miracle ซึ่งเป็นผลิตภัณฑ์ของบริษัท INex ประเทศไทย

ขั้นที่ 3.1: ดับเบิ้ลคลิ๊กที่ไฟล์ mPIC_1.62 Setup ดังภาพต่อไปนี้ (ท่านอาจใช้เวอร์ชั่นที่ใหม่กว่านี้ได้)


ขั้นที่ 3.2: เนื่องจาก MiraclePIC ใช้โปรแกรม Winzip ในการบีบอัด ดังนั้นจึงแสดงคำว่า WinZip Self-Extractor ดังภาพต่อไปนี้


ขั้นที่ 3.3: เริ่มต้นติดตั้ง



ขั้นที่ 3.4: ขั้นตอนการคัดลอกไฟล์เข้าสู่ระบบคอมพิวเตอร์ของท่านแสดงได้ดังนี้


ขั้นที่ 3.5: ตั้งชื่อโปรแกรมโฟลเดอร์ เพื่อปรากฎในเมนูหลักของวินโดวส์ ตัวอย่างนี้ใช้ค่าปกติ แสดงได้ดังนี้


ขั้นที่ 3.6: เมื่อติดตั้งโปรแกรม MiraclePIC เสร็จเรียบร้อย ท่านจะพบไอคอนเพิ่มขึ้นบนหน้าจอเดสท็อป และปรากฎในเมนูของวินโดวส์ ดังภาพนี้


4. การเขียนโปรแกรมควบคุมไมโครคอนโทรลเลอร์ด้วยภาษาซี CCSC
ขั้นที่ 4.1: ให้ท่านคลิ๊กไอคอน PIC C Compiler ดังภาพต่อไปนี้


ขั้นที่ 4.2: เลือก New->Manual Create


ขั้นที่ 4.3: ตั้งชื่อไฟล์และเบอร์ไอซีที่ท่านใช้งาน ถ้าท่านใช้ไอซีเบอร์ PIC16F877 ให้เลือกไอซีเบอร์ดังกล่าว แต่เนื่องจากผู้เขียนได้เปลี่ยนไอซีเบอร์ 18F458 ลงไปแทน ซึ่งมีความสามารถคล้ายคลึงกันต่างที่มีหน่วยความจำมากกว่า ศึกษาข้อแตกต่างระหว่างไอซีเบอร์ดังกล่าวได้จากคู่มือไอซี (Data Sheet)


ขั้นที่ 4.4:
ยังไม่มีไฟล์ปรากฎท่านต้องการสร้างมั้ย ? ตอบใช่เพื่อสร้างโปรเจ็คใหม่


ขั้นที่ 4.5:
ให้ท่านพิมพ์โค๊ดดังภาพด้านล่างนี้

เนื่องจากผู้เขียนได้เปลี่ยนไอซีเบอร์ 18F458 แทนเบอร์ 16F877 ดังนั้นส่วน include ภายในซอร์สโค๊ดจึงต้องเปลี่ยนตามเบอร์ของคอนโทรลเลอร์ ขอให้ท่านป้อนเบอร์ 16F877.h หากท่านใช้ไอซีเบอร์ดังกล่าว

ท่านสามารถคัดลอกซอร์สโค๊ดลงในโปรแกรมของท่านด้วยข้อมูลด้านล่างนี้ !!
ซอร์สโค๊ด
#include <18F458.h>
#fuses HS,NOLVP,NOWDT,PUT,NOPROTECT
#use delay(clock=20000000)
#use fast_io(c)
main()
{
    set_tris_c(0x00);
    while (1){
           output_high(pin_c0);
           delay_ms(500);
           output_low(pin_c0);
           output_ms(500);
    }
}

ขั้นที่ 4.6: ขั้นการคอมไพล์ เลือก Compile -> Compile F9 หรือกดปุ่ม F9 ได้เช่นเดียวกัน


ขั้นที่ 4.7:
คอมไพล์เสร็จเรียบร้อยจะแสดงวินโดวส์ดังภาพต่อไปนี้

ภาพนี้เป็นการแสดงรายละเอียดเกี่ยวกับการคอมไพล์ทั้งหมด โดยจะบอกจำนวนรอมที่ใช้งาน หรือจำนวนแรมที่ได้ใช้งานไปแล้ว ตัวอย่างนี้โค๊ดของเราต้องการสั่งให้ไฟกระพริบเท่านั้น ดังนั้นแทบไม่ได้ใช้ทรัพยากรของฮาร์ดแวร์มากเลย ผลการคอมไพล์จะแตกต่างกันไปตามจำนวนโค๊ดหรือวิธีการในการเขียนของโปรแกรมเมอร์

5. การโหลดผลลัพธ์ที่ผ่านการคอมไพล์เข้าไปในไมโครคอนโทรลเลอร์ (ไอซี)
ขั้นที่ 5.1: เลือกไอคอน Miracle Pic 1.62


ขั้นที่ 5.2: คลิ๊ก File -> Open และเลือกไฟล์ example01.hex

เนื่องจากปกติการคอมไพล์โค๊ดภาษาซีภายในระบบปฏิบัติการวินโดวส์จะมีผลลัพธ์เป็น .exe แต่ผลลัพธ์จากการคอมไพล์ไฟล์ในงานคอนโทรลเลอร์จะให้ผลลัพธ์เป็น .hex ย่อมาจาก hexadicimal หมายถึงเลขฐานสิบหก ซึ่งไฟล์ดังกล่าวจะเก็บไว้ในไดเร็คทอรี่เดียวกับซอร์สโค๊ดที่ท่านได้ตั้งไว้ในตอนเริ่มสร้างโปรเจ็ค


รูปไฟล์ example01.hex ซึ่งผ่านการคอมไพล์จาก CCSC แล้ว

ขั้นที่ 5.3: เนื่องจากการประกาศส่วนหัวที่ซอร์สโค๊ด จะบังคับให้ค่าที่ใช้ในการโหลดข้อมูลลงบนไอซีเป็นไปตามที่กำหนดเอาไว้ในเฮดเดอร์ดังกล่าว ซึ่งท่านสามารถตรวจสอบรายละเอียดได้โดยการคลิ๊กที่ View -> Configuration จะได้ผลลัพธ์ดังภาพต่อไปนี้

รายละเอียดส่วนนี้ผู้อ่านสามารถข้ามไปได้ในตอนเริ่มต้น และในบทหลัง ๆ เราจะทำความเข้าใจเกี่ยวกับตัวเลือกแต่ละตัวว่าทำงานอย่างไร

ขั้นที่ 5.4: กดสวิตซ์บอร์ดทดลองให้ปรากฎเป็นไฟสีแดง ซึ่งเป็นโหมดการบันทึกไฟล์ .HEX ลงบนไมโครคอนโทรลเลอร์ แสดงได้ดังภาพต่อไปนี้


ขั้นที่ 5.5: เลือกคลิ๊กบนภาพ เพื่อทำการโหลดไฟล์ HEX ซึ่งเป็นลัพธ์จากการคอมไพล์เข้าสู่ไมโครคอนโทรเลอร์

6. การเดินสายสัญญาณระหว่าง C0 ของไมโครคอนโทรเลอร์ไปยังหลอด LED
ขั้นที่ 6.1: ที่ขาของ Port C ให้เลือกช่อง 0 และเสียบสายไฟลงในช่องดังกล่าว แสดงได้ดังภาพต่อไปนี้


ขั้นที่ 6.2: ที่ช่องเสียบเพื่อใช้งานหลอด LED ให้ท่านเชื่อมสายไฟมายังหลอด LED แสดงได้ดังภาพต่อไปนี้


ขั้นที่ 6.3: ผลลัพธ์ของการเดินสายสัญญาณแสดงได้ดังภาพต่อไปนี้


7. การตรวจสอบผลลัพธ์ทางฮาร์ดแวร์
ขั้นที่ 7.1: ขั้นตอนสุดท้ายเป็นการตรวจสอบผลลัพธ์ว่าฮาร์ดแวร์ได้ทำงานตามที่ได้เขียนโปรแกรมหรือไม่ ให้ท่านกดสวิตซ์สลับกลับเป็นไฟสีเขียว แสดงถึงโหมดซีพียูเริ่มต้นทำงาน แสดงได้ดังภาพต่อไปนี้



ขั้นที่ 7.2: ถ้าหลอดไฟที่บอร์ดทดลองกระพริบดังภาพด้านล่างต่อไปนี้ แสดงว่าโปรแกรมได้ทำงานอย่างถูกต้องแล้ว หากไม่เป็นไปตามนี้อาจมีสาเหตุจากสายต่อระหว่างขา C0 ของไมโครคอนโทรลเลอร์และหลอด LED ให้ตรวจสอบในรายละเอียดดังกล่าวเพิ่มเติม



สรุปผล
บทความนี้ผู้เขียนได้บรรยายสำหรับผู้เริ่มต้น หวังเป็นอย่างยิ่งว่าท่านจะมองเห็นภาพโดยรวมของการประยุกต์ใช้งานไมโครคอนโทรเลอร์ในด้านต่าง ๆ และยังหวังต่อไปว่าบทความนี้จะกระตุ้นให้เกิดการเรียนรู้ของเยาวชนในชาติไทย ซึ่งถือว่าเป็นฐานกำลังสำคัญต่อไปในอนาคต






All trademarks and trade names are the property of their respective owners and used here for identification purposes only.
Privacy Policy | Terms of service | Report a Policy Violation (0.0051 sec)