วันพฤหัสบดีที่ 30 ตุลาคม พ.ศ. 2557

ขั้นตอนการคอมไพล์เป็นไฟล์HEX



ขั้นตอนการคอมไพล์เป็นไฟล์HEX
1/4/2557 SONGCHAI PRAPATRUNGSEE
ขั้นตอนการคอมไพล์เป็นไฟล์HEX
เมื่อคลิกBUILDหรือREBUILD
แล้วคอมไพเลอร์จะเข้าไปทำการประมวลผล
แล้วทำการคอมไพล์ในไฟล์INCLUDEก่อน
เสร็จแล้วจึงกลับมาคอมไพล์ในไฟล์.C
ต่อจากบรรทัดที่คอมไพล์ไปแล้ว
การคอมไพล์จะทำการคอมไพล์จากบรรทัดบนลงล่าง
เสร็จแล้วไฟล์HEXจะอยู่ที่FOLDERที่เราเก็บไฟล์โปรเจคไว้
และไฟล์HEXหน้าตาจะเป็นตัวเลข0-9และตัวอักษรA-F

หน่วยความจำโปรแกรม(PROGRAM MEMORY)
คือROM
ROM แปลว่า READ ONLY MEMORY
คือหน่วยความจำถาวรที่สามารถอ่านได้เท่านั้น
ไม่สามารถเขียนคำสั่งได้ในขณะที่
ไมโครคอนโทรลเลอร์ทำงานอยู๋
หมายถึงจะเขียนได้โดยใช้วิธีการอัด(FLASH)
เข้าไปในROMของไมโครคอนโทรลเลอร์เท่านั้น
ROMจะเป็นส่วนที่เก็บคำสั่งที่เราเขียนขึ้น
1ADDRESS=1REGISTER=1BYTE(8BIT)

1ADDRESSจะเก็บได้1BYTE(8BIT)
เลขฐานสิบหก(HEX)1ตัวจะมี4BIT
หมายความว่า1ADDRESS
จะเก็บเลขฐานสิบหก(HEX)ได้2ตัวนั่นเอง
ROMในAT89S51 มี 4KBYTE FLASH
1 KBYTE = 1024 BYTE
4 KBYTE = 4096 BYTE

หน่วยความจำข้อมูล(DATA MEMORY)
คือRAM
RAM แปลว่า RANDOM ACCESS MEMORY
คือหน่วยความจำเข้าถึงโดยสุ่ม
หมายถึงเป็นหน่วยความจำชั่วคราวคือถ้าไม่มีไฟ
ความจำก็จะหายหมด
สามารถเขียนอ่านได้ในขณะที่
ไมโครคอนโทรลเลอร์กำลังทำงานอยู่
RAMจะถูกสั่งงานโดยROM
และRAMก็จะเอาข้อมูลไปให้ROM
เพื่อให้ROMตัดสินใจในการสั่งงานRAM

RAM มี 2ส่วนคือ RAMภายใน
กับหน่วยความจำภายนอก

RAM ภายใน AT89S51
แบ่งออกเป็น4ส่วน คือ
1 ที่อยู่(ADDRESS)ตั้งแต่ 00H – 1FH
   ประกอบด้วย 4แบงค์แต่ละแบงค์มี 8BYTE
   เท่ากับหน่วยความจำแบงค์มี 32BYTE
   ประกอบด้วย
   BANK0 เป็นที่อยู่ของรีจิสเตอร์R0-R7  
   BANK1 เป็นที่อยู่ของรีจิสเตอร์R0-R7
   BANK2 เป็นที่อยู่ของรีจิสเตอร์R0-R7  
   BANK3 เป็นที่อยู่ของรีจิสเตอร์R0-R7

   และสามารถเลือกแบงค์ได้โดยกำหนดค่าใน
บิทRS1และRS0 ซึ่งอยู่ใน
รีจิสเตอร์PSW(PROGRAM STATUS WORD)
BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0
 CY    AC    F0    RS1  RS0  OV    UD    P

CY=CARRY FLAG  บิดทด
AC=AUXILIARY CARRY FLAG (FOR BCD OPERATIONS)
F0=FLAG 0 (AVAILABLE TO THE USER FOR GENERAL PURPOSE)

RS1   RS0   ADDRESS IN RAM(BANK)
 0        0      BANK0 (D:0X00 - D:0X07)
 0        1      BANK1 (D:0X08 -D:0X0F)
 1        0      BANK2 (D:0X10 -D:0X17)
 1        1      BANK3 (D:0X18H -D:0X1F)

OV =OVERFLOW FLAG
UD =USER DEFINABLE FLAG
P  PARITY FLAG

2 ที่อยู่(ADDRESS)ตั้งแต่ 20H – 2FH
   มี 16BYTE สามารถเข้าถึงได้ในระดับบิท

3 ที่อยู่(ADDRESS)ตั้งแต่ 30H – 7FH
   เป็นหน่วยความจำทั่วไปมี 80BYTE

4 ที่อยู่(ADDRESS)ตั้งแต่ 80H – FFH
   เป็นหน่วยความจำโดยอ้อม(INDIRECT DATA)
   หรือเรียกว่าIDATA มี 128BYTE
   หน่วยความจำนี้ไม่มีในAT89S51
   เพราะมีRAM 128BYTE
   หน่วยความจำโดยอ้อม(INDIRECT DATA)
   หรือเรียกว่าIDATA
   จะมีในไมโครคอนโทรลเลอร์ที่มีRAMมากกว่า128BYTE
   เช่นAT89S52มีแรม256BYTE
   ก็จะมีหน่วยความจำIDATA 128BYTE

หน่วยความจำภายนอก AT89S51
สามารใช้หน่วยความจำภายนอกได้สูงสุด 64KBYTE

ไม่มีความคิดเห็น: