เขียนโปรแกรมไมโครคอนโทรลเลอร์ด้วยภาษา C

เขียนโปรแกรมไมโครคอนโทรลเลอร์ด้วยภาษา C

จากประสบการณ์ที่ผ่านมาการเขียนโปรแกรมให้ไมโครคอนโทรลเลอร์ด้วยภาษาแอสเซมบลีมีการทำงานที่รวดเร็วดี แต่กว่าจะเขียนได้แต่ละโปรแกรมนั้นใช้เวลามาก อีกทั้งยังไม่สามารถเขียนภาษาแอสเซมบลีในระบบใหญ่ๆได้อีกด้วย เพราะมันจะยุ่งยาก เมื่อลองศึกษาดูแล้วมีโปรแกรมที่ช่วยแปลงภาษา C เป็น HEX code ได้เลย โปรแกรมที่ว่านี้คือ KEIL C51 ซึ่งสามารถดาวน์โหลดได้ที่ http://www.keil.com เป็นเวอร์ชั่นทดลองใช้ หลายคนสงสัยว่าจะทำไงถึงจะแปลงภาษา C เป็น HEX code ได้ เอาละมาลองเขียนกันเลยดีกว่าครับ

สร้างโปรเจค

  • เปิดโปรแกรม u Vision2, สร้างไฟล์โปรเจคและเลือก CPU ที่จะใช้จาก device database
  • เขียน source code และเพิ่มเข้าไปใน source file ของโปรเจค
  • ตั้งค่า tool option สำหรับฮาร์ดแวร์ปลายทาง
  • สร้างโปรเจคและ HEX ไฟล์สำหรับ PROM

อ่านดูอาจจะงงลองมาทำ step-by-step ดีกว่าครับผมจะบอกขั้นตอนอย่างละเอียด

เปิด u Vision2 และ สร้างไฟล์โปรเจค

เมื่อเปิดโปรแกรมมาแล้วถ้าต้องการสร้างโปรเจคให้คลิกที่เมนู Project – New Project… มันจะมีหน้าต่างถามชื่อโปรเจค ตัวอย่างนี้จะตั้งชื่อว่า test.uv2 ซึ่งคุณอาจจะตั้งชื่ออื่นก็ได้ เมื่อ OK ไปแล้วจะมีหน้าต่าง Select Device for Target ให้คุณเลือก CPU สำหรับโปรเจคของคุณ ในตัวอย่างนี้ผมเลือก Atmel – 89C51

รูปที่ 1 Select device

รูปภาพทางขวามือด้านล่างจะมี File,Regs,Books เราเรียกว่า Project Window คุณสามารถดูคู่มือ CPU ได้จากหน้าต่าง Project Windows – Books

เขียนโปรแกรม

คุณสามารถสร้างโปรแกรมขึ้นใหมได้โดยคลิกที่เมนู File – New หลังจากนั้นจะมีหน้าต่างว่างๆ ไว้ให้คุณพิมพ์โปรแกรมภาษา C ใส่ลงไป โปรแกรม u Vision จะมีสีบ่งบอกคำสั่งในโปรแกรม เมื่อต้องการ save โปรแกรม ให้ไปที่ File – Save As… ไฟล์ที่บันทึกจะมีนามสกุลเป็น *.C. สมมติผมตั้งชื่อว่า main.c จะได้

รูปที่ 2 หน้าต่างเขียน code

หลังจากนั้นให้เราเอา source file ใส่ลงไปในโปรเจค ให้คุณเข้าไปคลิกที่เครื่องหมาย + หน้า Target 1 ในหน้าต่าง Project window – Files มันจะแตกย่อยออกมาเป็น Source Group 1 ให้คลิกขวาที่ตรงนี้ แล้วเลือก Add Files to Group ‘Source Group 1′ เลือก main.c ที่คุณเพิ่งสร้างไป

รูปที่ 3 Project window

สร้าง Startup Code

ไฟล์ STARTUP.A51 เป็นไฟล์ Startup Code สำหรับ CPU ตระกูล 8051 ไฟล์นี้มีไว้สำหรับเคลียร์หน่วยความจำต่างๆ และตั้งค่าเริ่มต้น (Initial) ให้กับฮาร์ดแวร์ ไฟล์ STARTUP.A51 จะอยู่ที่โฟลเดอร์ C:\KEIL\C51\LIB

เพื่อป้องกันข้อผิดพลาดจากข้อมูลที่ค้างอยู่ใน CPU เราควรจะใส่ตัว Startup ไว้ด้วย ขั้นตอนมีดังนี้ ให้คุณไปที่ Project Window – File แล้วคลิกขวาที่ main.c เลือก Targets,Groups,Files… แล้วพิมพ์ System Files ในหน้าต่าง Groups/Add File แล้วกด Add จากนั้นเลิอกที่ System Files แล้วกด Add Files to Group เลือก STARTUP.A51

??

รูปที่ 4 Start up code

การตั้งค่าอุปกรณ์ต่างๆ

u Vision 2 ให้คุณได้สามารถตั้งค่าฮารด์แวร์ปลายทางได้โดยคลิกที่ปุ่ม Options for Target คุณสามารถตั้งค่าหน่วยความจำได้ใหม่

รูปที่ 5 Options for Target

สร้างโปรเจคและ HEX ไฟล์

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

รูปที่ 6 หน้าต่าง Output

ถ้าต้องการ HEX ไฟล์ไปใช้งานให้กด Option for Target – Output แล้วคลิกที่ Create HEX file แล้วกดที่ Build Target อีกทีคุณจะได้ HEX ไฟล์ไปโปรแกรมลง microcontroller ตัว HEX ไฟล์นี้จะอยู่ในโฟลเดอร์ที่คุณเซฟ ลองทำดูนะครับ

บทความอื่นๆที่เกี่ยวข้อง

Leave a Reply