best view IE mode 800x600 Text Size Medium

Home
แผนที่เว็บไซต์

 

 

 

บทความ

C51 กับ SDCC : การใช้งาน SDCC
ผู้เขียน ... ทีมงาน AppSoftTech

    sdcc เป็นซอฟต์แวร์สำหรับใช้ในการพัฒนาโปรแกรมบนไมโครคอนโทรลเลอร์ MCS51 ในรูปแบบภาษา C ด้วยการ
ออปติไมต์
ANSI-C Compiler โดยนาย Sandeep Dutta โดยที่ sdcc เป็นซอฟต์แวร์ประเภท Freeware ของฟรีที่สามารถใช้งานได้ โดยอยู่ภายใต้เงื่อนไข GPL

รูปแบบในการเขียนโค้ดด้วยภาษา C ของ sdcc จะอิงแบบเดียวกับการเขียนด้วย Keil C51 แต่ความสามารถหลาย ๆ อย่างยังไม่สามารถที่จะเทียบเท่าได้กับตัว Keil แต่ถ้าเป็นการเขียนโปรแกรมควบคุมอุปกรณ์ที่ไม่มีการอินพุตข้อมูลที่ซับซ้อนรวมทั้ง การใช้งานฟังก์ชันที่เกี่ยวกับคณิตศาสตร์ด้วยแล้ว sdcc ก็มีความสามารถที่จะตอบสนองการใช้งานได้เกือบจะสมบูรณ์ จุดที่ยากของ sdcc คือ หลาย ๆ อย่างเราจะต้องจัดการเอง รวมทั้งเงื่อนไขในการคอมไพล์โปรแกรมที่จะต้องกำหนดเอง เนื่องจากการคอมไพล์โค้ดโปรแกรมจะเป็นไปในรูปแบบ command line นั้นคือเราต้องเข้าใจเงื่อนไขการคอมไพล์โปรแกรม ของฟรีก็ต้องใช้วิทยายุทธกันหน่อยละครับ

>> เตรียมเครื่องมือ

ก่อนที่จะใช้งาน sdcc ได้ก็ต้องมีการเตรียมเครื่องมือกันก่อน ซึ่งมีรายละเอียดดังนี้

    1. ดาวน์โหลดและติดตั้ง sdcc ดาวน์โหลดได้ที่ http://sdcc.sourceforge.net
    2. ดาวน์โหลดและติดตั้ง Jen's File Editor (jfe เอดิเตอร์) สำหรับใช้ในการเขียนโค้ดโปรแกรม c ดาวน์โหลดได้ที่ http://home.t-online.de/home/Jens.Altmann/jfe_eng.htm

    การติดตั้ง sdcc ให้ติดตั้งในโฟลเดอร์ c:\sdcc\ สำหรับ jfe ให้ติดตั้งในโฟลเดอร์ sdcc เช่นเดียวกัน หน้าตาของโปรแกรม jfe แสดงดังรูปที่ 1.

    รูปที่ 1. jfe Editor

>> โปรแกรมตัวอย่างที่ 1.

    1. ไปที่เมนู File->New เราจะได้หน้าต่างสำหรับใช้ในการเขียนโค้ดโปรแกรมชื่อ unknown1 ให้เขียนโค้ดโปรแกรมตามตัวอย่างในกรอบโค้ดโปรแกรมตัวอย่างที่ 1. ดังนี้

โค้ดโปรแกรมตัวอย่างที่ 1.

/*
File : ex01.c
Purpose : General C program structure
Autohr : AppSoftTech
E-Mail : c51@appsofttech.com
Compiler : SDCC compiler
*/

#include <reg51.h>    // Header file Register Declarations for 8051 Processor

#define TRUE 1           // Constants
#define PORT_0 P // preprocessor directive

void outport0(void);     // function prototype

void outport0(void) {   // outport1 function (sub function)

     PORT_0 = 0xAA;        // output 0xff to port 1
}

void main(void) {        // main function

         int i=0x00;             // declaration variable and initialization
         P0 = i;                    // output port P0

         outport0();            // call functions
         while(TRUE);     // loop nothing
}
 

    2. เมื่อเขียนโค้ดโปรแกรมตามตัวอย่างที่ 1. แล้วเราจะกำหนดเงื่อนไขการคอมไพล์โปรแกรมตัวอย่างที่ 1. ตามขั้นตอนดังนี้

        - ไปที่เมนู
Settings->Add Tool เราจะได้หน้าต่างดังรูปที่ 2.



    รูปที่ 2. หน้าต่าง
Add Tool (Application Start Settings..)

    กำหนดรายละเอียดดังนี้
        ช่อง
Name : SDCC
        ช่อง Application : C:\SDCC\bin\sdcc.exe
        ช่อง Start Directory : C:\Documents and Settings\HALDEV\My Documents\ex01
        ช่อง Parameters : -Ic:\sdcc\share\sdcc\include -L c:\sdcc\share\sdcc\lib\small $FILE
        หลังจากที่กำหนดเสร็จแล้วให้คลิกปุ่ม OK เราจะได้ปุ่มคำสั่งที่เมนูบาร์

    3. เมื่อกำหนดเครื่องมือในการคอมไพล์โปรแกรมเรียบร้อยแล้ว ให้ save ซอร์สโค้ดโปรแกรมไปที่เมนู File->Save กำหนดชื่อไฟล์ ex01.c ในโฟลเดอร์ ex01

    4. คลิกไปที่ toolbar เมนู SDCC ถ้าไม่พบข้อผิดพลาดใด ๆ เราจะได้ผลลัพธ์ในการคอมไพลโปรแกรมดังนี้



    รูปที่ 3. ผลการคอมไพล์โปรแกรม

    5. เมื่อคอมไพล์โปรแกรมเสร็จเราจะได้ไฟล์นามสกุล .ihx ให้เปลี่ยนนามสกุลไฟล์เป็น .hex แล้วทดสอบโปรแกรมกับบอร์ดทดลองหรือ Simulator MCS-51 ผลการทำงานแสดงดังรูปที่ 4. และ 5.

    รูปที่ 4. ก่อนทดสอบโปรแกรม P0 เท่ากับ 11111111 หรือเท่ากับ 0xFF

    รูปที่ 5. หลังทดสอบโปรแกรม P0 เท่ากับ 10101010 หรือเท่ากับ 0xAA

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

Home Page
>> หากมีข้อเสนอและแนะนำส่ง email มาได้ที่ support@appsofttech.com  ครับ

 

Home Page

best view IE mode 1024x768 Text Size Medium
ผู้จำหน่ายไมโครคอนโทรลเลอร์และอุปกรณ์อิเล็กทรอนิกส์ทุกประเภท
Copyright © 2005 Appsofttech Co., Ltd.


บริษัท แอพซอฟต์เทค จำกัด 19/6 หมู่ 6 หมู่บ้านเอกวัฒนา ซ.เพชรเกษม 53 ถนนเพชรเกษม แขวงบางแค เขตบางแค กรุงเทพฯ  10160 Tel: 0-2413-3985-6, Fax: 0-2413-3165(auto)
Hotline 081-4850870, 081-4316541

[ วิธีสั่งซื้อ | บริษัท | Term of use | Privacy Policy ]
 
Contact email: info@appsofttech.com  Designed by : : Appsofttech Co.,Ltd.