ThaiEmbedded Search หาอะไรไม่เจอ Search ที่นี่

Assembly

การแทรก assembly ในภาษา C

การแทรก assembly ในภาษา C

มีคำถาม คำถามนึงที่ถามบ่อยมากว่าจะใส่คำสั่ง assembly ลงไปในภาษา C ยังไง จริงๆแล้วมันก็มีวิธีอยู่ แต่ตั้งแต่ผมเขียนโปรแกรมมาผมก็ไม่เคยใช้เหมือนกัน คือภาษา C ผมว่ามันก็ cover ดีแล้ว แต่รู้ไว้ก็ไม่เสียหายครับ

  • เริ่มจากการสร้าง Project ตามปกติ Keil จะถามเราว่า ต้องการจะ copy ตัว Start up code เข้าไปใน Project ไหม ให้กด No

รูปที่ 1

  • จากนั้นก็ทำการสร้าง File.C ขึ้นมาแล้ว Add เข้าไปใน Project
//************************************************************************//
//Project : insertasm
//Description : Inline assembly
//Device : 89S52
//XTAL : 11.0592 MHz
//By : ThaiEmbedded 2007
//************************************************************************//
#include <REGX51.H>//————————————————————————//
// Delay (mSec)
//————————————————————————//
void dmsec(unsigned int cnt)
{
     unsigned char i;
     while(cnt)
     {
          for (i=1;i<=228;i++);
          cnt–;
     }
}
//————————————————————————//
// Main
//————————————————————————//
void main (void)
{     while(1)
     {
          #pragma ASM
          MOV P0,#0FH
          #pragma ENDASM
          dmsec(300);          #pragma ASM
          MOV P0,#0F0H
          #pragma ENDASM
          dmsec(300);
     }
}
  • ที่ Project Window Tab แรกเราจะเห็น File.C ที่เรา add เพิ่มเข้ามา ให้คลิกขวา
  • เลืือก Option for

รูปที่ 2

  • ติ๊ก Generate Assembler SRC file
  • ติ๊ก Enable Assemble SRC file.
  • ทำการ compile เราจะได้ HEX file ออกมา

เมื่อนำไปต่อกับ hardware จริงเราจะเห็น LED ติดสลับกันที่ละ 4 ดวง

null

รูปที่ 3 วงจรที่ใช้ในการทดลอง

Download Code การแทรก assembly ในภาษา C

Tags: , ,

Friday, September 26th, 2008 MCS-51 No Comments
ข้อมูลในเวบนี้สงวนลิขสิทธิ์ตามพระราชบัญญัติคอมพิวเตอร์ ไม่อนุญาตให้ Copy ข้อมูลไปใช้เพื่อประโยชน์ส่วนตัว หากต้องการนำข้อมูลไปอ้างอิงกรุณาทำ Link กลับมายังบทความด้วย

Syndicate

เว็บไซต์อิเล็กทรอนิกส์-นานาสาระ AVRportal.com Mechatronics Blog