ขั้นตอนการคอมไพล์เป็นไฟล์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
ไม่มีความคิดเห็น:
แสดงความคิดเห็น