MCS-51 Architecture - .:: GEOCITIES.ws · MCS-51 Architecture Microprocessor by pisit...

21
1 MCS-51 Architecture Microprocessor Microprocessor by pisit wisutmetheekorn [email protected] 2 บทที2: MCS-51 Architecture รูปที2-1โครงสรางภายใน8051

Transcript of MCS-51 Architecture - .:: GEOCITIES.ws · MCS-51 Architecture Microprocessor by pisit...

Page 1: MCS-51 Architecture - .:: GEOCITIES.ws · MCS-51 Architecture Microprocessor by pisit wisutmetheekorn psw1999@yahoo.com 2 บทที่2: MCS-51 Architecture รูปที่2-1โครงสร

1

MCS-51 Architecture

MicroprocessorMicroprocessor by pisit wisutmetheekorn [email protected]

2

บทที่2: MCS-51 Architecture

รูปท่ี2-1โครงสรางภายใน8051

Page 2: MCS-51 Architecture - .:: GEOCITIES.ws · MCS-51 Architecture Microprocessor by pisit wisutmetheekorn psw1999@yahoo.com 2 บทที่2: MCS-51 Architecture รูปที่2-1โครงสร

2

3

บทที่2: MCS-51 Architecture

รูปที่2-1เปนโครงสรางภายในไมโครคอนโทรลเลอร 8051 ของ Intel ประกอบดวย1. 8 บิต CPU ที่มีรีจิสเตอร A (Accumulator) และรีจิสเตอร B2. Program Counter (PC) และ Data Pointer (DPTR) ขนาด 16 บิต 3. รีจิสเตอร 8 บิตเก็บสถานะโปรแกรม ช่ือ PSW( Program Status Word)4. Stack Pointer (SP) ขนาด 8 บิต5. มีหนวยความจําภายในแบบ ROM 4 K กรณีไมโครคอนโทรลเลอร 8051มีหนวยความจําภายในแบบ EPROM กรณีไมโครคอนโทรลเลอร 8751ไมมีหนวยความจําทั้ง ROM หรือ EPROM สําหรับเบอร 8031

6. มีหนวยความจําแบบ RAM 128ไบต(กรณี 8052 จะมี RAM 256 ไบต)แบงเปน- 4 รีจิสเตอร Bank แตละ Bank แบงเปน 8 รีจิสเตอร(R0-R7)- มีรีจิสเตอรที่สามารถอางแอดเดรสแบบบิตไดทั้งหมด 16 ตัว(16 ไบต)- 80 ไบตสําหรับรีจิสเตอรใชงานทั่วไป

4

บทที่2: MCS-51 Architecture

7. มีพอรตอินพุตจํานวน 32 บิต (4 Port คือ P0-P3)8. มี Timer/Counter 16 บิต 2 ตัวคือ T0 , T19. มีรีจิสเตอรช่ือ SBUF เปนรีจิสเตอรสําหรับการสื่อสารอนุกรมแบบ Full-Duplex10. มีรีจิสเตอรควบคุมการทํางานไมโครคอนโทรลเลอรและPeripheral ใน MCS-51

คือ TCON, TMOD, SCON, PCON, IP และ IE11. มีแหลงกําเนิดสัญญาณอินเตอรรัพต

- จากภายนอก 2 แหลง- จากภายในไมโครคอนโทรลเลอร 3 แหลง

12. มีวงจรออสซิลเลเตอรและวงจรสัญญาณนาฬิกา

SFR (Special Function Register ) คือรีจิสเตอรภายใน8051 ที่มีหนาที่เฉพาะอยางปกติ SFR มีแอดเดรสตั้งแต 80H ขึ้นไปจากรูป2-2 SFR บางตัวสามารถอางแอดเดรสแบบบิตได

Page 3: MCS-51 Architecture - .:: GEOCITIES.ws · MCS-51 Architecture Microprocessor by pisit wisutmetheekorn psw1999@yahoo.com 2 บทที่2: MCS-51 Architecture รูปที่2-1โครงสร

3

5

Bank 0Bank 1Bank 2

Bank 3

R0R1R2R3R4R5R6R7

0001020304050607

08

0F10

1718

1F20

7F

Bit Addressable2F

00

7Fตําแหนงบิตขอมูลที่อางแบบบิตได

30

General PurposeArea

00Byte Address

E0รีจิสเตอร A

F0รีจิสเตอร B

B8IP รีจิสเตอร

A8IE รีจิสเตอร

89TMOD รีจิสเตอร

88TCON รีจิสเตอร

8CTH0 Counter

8ATL0 Counter

8DTH1 Counter

8BTL1 Counter

98SCON รีจิสเตอร

99SBUF รีจิสเตอร

87PCON รีจิสเตอร

D0PSW

81Stack Pointer

83DPH

82DPLData Pointer

16 บิต ไมมีตําแหนง

Program Counter

90 A0 E0

80Port P0

Port P1 Port P2 Port P3

อางตําแหนงแบบบิตได

รูปท่ี2-2 รีจิสเตอรและหนวยความจําภายใน8051(ยกเวน ROM)

07

6

บทที่2: MCS-51 Architecture

จากรูปที่2-2 เปนรีจิสเตอรภายในไมโครคอนโทรลเลอร MCS-51 ซึงมีทั้งรีจิสเตอรที่ทําหนาที่ควบคุมการทํางานของอุปกรณตางๆบนไมโครคอนโทรลเลอรและหนวยความจําแบบ RAM (Internal RAM) ที่ใชในการเก็บขอมูลรวมไปถึงรีจิสเตอร A ซึ่งใชเก็บขอมูลหรือเปนรีจิสเตอรในตอนที่กระทําคําสั่งทางคณิตศาสตรรีจิสเตอรรวมถึงหนวยความจําภายในไมโครคอนโทรลเลอรเหลานี้จะถูกควบคุมดวยโปรแกรมในรูปที่2-3 เปนรูปแสดงขาภายนอกของ 8051 ซึ่งบางขาก็มีหนาที่หลายอยางเชนพอรตP2.0 เปนทั้งพอรตอินพุต/เอาตพุตและเปนขาที่เปนสายสัญญาณแอดเดรส A8 ที่ใชในการอางหนวยความจําภายนอกไมโครคอนโทรลเลอร โดยขาใดมีมากกวาหนึ่งหนาที่ก็จะเขียนกํากับในวงเล็บซึ่งขาของ 8051 หลายๆขาที่ไมสามารถทําหนาที่หลายอยางพรอมๆกันในเวลาเดียวกันได ดังนั้นการออกแบบวงจรเชื่อมตอก็ตองระวังคุณสมบัติของขาตางๆของไมโครคอนโทรลเลอรดวย

Page 4: MCS-51 Architecture - .:: GEOCITIES.ws · MCS-51 Architecture Microprocessor by pisit wisutmetheekorn psw1999@yahoo.com 2 บทที่2: MCS-51 Architecture รูปที่2-1โครงสร

4

7

1234567891011121314151617181920

4039383736353433323130292827262524232221

P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RST

(RXD)P3.0(TXD)P3.1

(T0)P3.4(T1)P3.5

XTAL2XTAL1

GND

(INT0)P3.2(INT1)P3.3

(RD)P3.7(WR)P3.6

VccP0.0(AD0)P0.1(AD1)P0.2(AD2)P0.3(AD3)P0.4(AD4)P0.5(AD5)P0.6(AD6)P0.7(AD7)EA/VPPALE/PROGPSENP2.7(A15)P2.6(A14)P2.5(A13)P2.4(A12)P2.3(A11)P2.2(A10)P2.1(A9)P2.0(A8)

8051(8031)

รูปที่2-3 ลักษณะขาของ 8051 ไมโครคอนโทรลเลอร

+5VDC

0V

8

บทที่2: MCS-51 Architecture

วงจรออสซิลเลเตอรและสัญญาณนาฬิกา

ทุกสวนของไมโครคอนโทรลเลอรนั้นจะทํางานเปนจังหวะเดียวกันดวยการใหจังหวะการทํางานจากสัญญาณนาฬิกาโดย 8051 จะมีขา 18(XTAL1)และขา19 (XTAL2) ที่เตรียมไวเพื่อตออุปกรณใหวงจรออสซิลเลเตอรภายในทํางานโดยเราจะตอเพียง Crystal Oscillator และตัวเก็บประจุ 2 ตัวดังในรูป2-4 เทานี้ก็จะเกิดสัญญาณนาฬิกาที่เปนตัวใหจังหวะกับสวนตางๆภายในของไมโครคอนโทรลเลอร

รูป2-4 วงจรออสซิลเลเตอรสําหรับ 8051

Page 5: MCS-51 Architecture - .:: GEOCITIES.ws · MCS-51 Architecture Microprocessor by pisit wisutmetheekorn psw1999@yahoo.com 2 บทที่2: MCS-51 Architecture รูปที่2-1โครงสร

5

9

T

1 >

1) Ch 1: 1 V 25 ns

dX: 90.8 ns X: 18.3 ns

T

1 >

1) Ch 1: 1 V 25 ns

รูป2-5 รูปคลื่นที่ขา XTAL2 , XTAL1 และ ALE ของ 8051

XTAL2 XTAL1

T

1 >

1) Ch 1: 2 V 250 ns

ALE

10

ความถี่ของ Crystal Oscillator ที่ตอเขากับ MCS-51 มียานความถี่ที่สามารถทํางานไดกวางทั้งนี้ขึ้นกับการออกแบบของผูผลิตวาจะใหทํางานในยานใดเพราะบางบริษัทก็กําหนดใหความถี่สูงเพื่อไมโครคอนโทรลเลอรจะทํางานไดเร็วใชเวลาประมวลผลนอยกวาแตหากดูจากเอกสารคูมือ 8051 ที่ผลิตโดย Intel ก็จะพบวายานความถี่สัญญาณนาฬิกาจะกําหนดใหอยูในชวง 1 ถึง 16 MHZ แตถาเปนของบริษัท Dallas Semiconductor ก็อาจสูงถึง 40 MHz (ปจจุบันรวมกับบริษัท Maxim)

บทที่2: MCS-51 Architecture

รูปที่2-6 ตัวอยาง Crystal Oscillator

Page 6: MCS-51 Architecture - .:: GEOCITIES.ws · MCS-51 Architecture Microprocessor by pisit wisutmetheekorn psw1999@yahoo.com 2 บทที่2: MCS-51 Architecture รูปที่2-1โครงสร

6

11

บทที่2: MCS-51 Architecture

จากสัญญาณนาฬิกาที่สรางขึ้นนี้จะเปนตัวกําหนดการทํางานใน MCS-51 โดยชวงเวลา 2 ลูกคลื่น ถือวาเปน 1 State และถารวมเปน 6 State นี้ก็จะถือวาเปน1 Machine Cycle ดังนั้นหากเราตองการรูวาคําสั่งใดของ8051 ทํางานจนเสร็จจะใชเวลาเทาใดก็จะหาไดจากจํานวน Machine Cycle ที่คําสั่งนั้นใชแลวดูวาสัญญาณนาฬิกาคือเทาใดเราก็จะสามารถคํานวณคาเวลาได

1 State1 Machine Cycle

6 State / Cycle1/ fCLK

รูปที่2-7 Timing – Machine Cycle ของ 8051

ALE

CLK

12

สมมุติวาคําสั่ง ADD A,R1 หากเปดตารางชุดคําสั่งของ 8051 จะพบวาใชเวลาประมวลผล 1 Machine Cycle นั่นก็คือใชเวลา 12 คาบเวลาของสัญญาณนาฬิกาที่ใหกับ 8051 และถาเราใชความถี่ 16 MHz จะใชเวลาทําคําสั่งเทากับ

T = จํานวน Machine Cycle x 12 / ความถี่ Crystal= 1 x 12 / 16MHz = 0.75 mSec

แตถาหากวาเปนไมโครคอนโทรลเลอรMCS-51 เบอรอื่นๆเราก็ตองมาดูวาจํานวน Clock ใน 1 State มีคาเทาใดเพราะบางเบอรก็ใชเวลานอยกวา 12 Clockใน 1 State ดังนั้นเขียนสมการทั่วไปของเวลาในการทําคําสั่งดังนี้

จํ านวน Machine Cycle ทใีช จํานวนClock ใน 1 S tเวลาในการทําคําสั่ง = ค ว า ม ถี่ ข อ ง ค ริ ส ตั ล ที่ ใ ช

×

บทที่2: MCS-51 Architecture

Page 7: MCS-51 Architecture - .:: GEOCITIES.ws · MCS-51 Architecture Microprocessor by pisit wisutmetheekorn psw1999@yahoo.com 2 บทที่2: MCS-51 Architecture รูปที่2-1โครงสร

7

13

Program Counter และ Data Pointer

ใน 8051 จะมีรีจิสเตอรขนาด 16 บิต 2 ตัวก็คือ - Program Counter (PC) ใชช้ีตําแหนงหนวยความจําที่เก็บโปรแกรม- Data Pointer (DPTR) ใช ช้ี ตํ าแหน งหน วยความจํ าแบบขอมูลและ

โปรแกรมระบบไมโครคอนโทรลเลอร 8051 จะมีหนวยความจํา 2 ลักษณะ(ไมรวม RAM ภายใน) คือ

1. หนวยความจําสําหรับเก็บโปรแกรม(Code Memory)2. หนวยความจําภายนอกสําหรับเก็บขอมูล (Data Memory)

** ที่บอกวาเปนหนวยความจําภายนอกสําหรับเก็บขอมูลก็เพราะวาหนวยความจําแบบนี้ในไมโครคอนโทรลเลอร 8051 จะมีเฉพาะที่เราตอเพิ่มเขาไปในระบบ

บทที่2: MCS-51 Architecture

14

คําสั่งควบคุมการทํางานไมโครคอนโทรลเลอรจะถูก Fetch จากหนวยความจําที่มีตําแหนงตามคาของรีจิสเตอร PC และคาของรีจิสเตอร PC นี้จะถูกเพิ่มขึ้นโดยอัตโนมัติเมื่อมีการ Fetch คําสั่งของไมโครคอนโทรลเลอรหรือการทํางานในบางคําสั่งของไมโครคอนโทรลเลอรืเชนคําสั่งกระโดด(Jump)แบบตางๆ นอกจ ากนั้ นลักษณะที่พิเศษของรีจิสเตอร Program Counter นี้ก็คือตัวมันเองไมมีแอดเดรสซึ่งตรงกันขามกับรีจิสเตอร SFR ตัวอื่นๆที่มีคาตําแหนงบอกทั้งสิ้นแมกระทั่ง Port I/OP0 – P3 ก็ยังมีแอดเดรสสําหรับ DPTR จะเปนรีจิสเตอรที่เกิดจากรีจิสเตอร 8 บิต 2 ตัวคือ DPHและDPL ใชในการอ างอิ งถึงขอมูลในหนวยความจําทั้ งแบบที่ เปนขอมูลภายนอกชิป (ExternalData) และสวนที่เปนโปรแกรมทั้งภายในและภายนอกชิป(Internal & External Code Memory) โดยการเปลี่ยนคาของ DPTR จะขึ้นกับคําสั่งที่เราเขียนในโปรแกรมควบคุมซึ่งจะอางชื่อของ DPTR เองหรืออาจกําหนดคาผานรีจิสเตอร 8 บิตคือ DPH และ DPL

Page 8: MCS-51 Architecture - .:: GEOCITIES.ws · MCS-51 Architecture Microprocessor by pisit wisutmetheekorn psw1999@yahoo.com 2 บทที่2: MCS-51 Architecture รูปที่2-1โครงสร

8

15

รีจิสเตอร A และ B

รีจิสเตอร A จะเปนรีจิสเตอรที่ใชงานในการกระทําทางคณิตศาสตร บวก, ลบ, คูณ, หารรวมถึ งการใช รี จิ ส เตอร A ในการส งผ านขอมูลระหว า งภายในไมโครคอนโทรลเลอรเองและหนวยความจําภายนอก รีจิสเตอร B จะถูกใชรวมกับรีจิสเตอร A ในตอนที่ทําคําสั่งคณิตศาสตรที่เปนการคูณและการหาร และนอกจากนั้นทั้งสองรีจิสเตอรนี้ก็ยังใชในการเก็บขอมุลทั่วๆไปไดอีกดวย

บทที่2: MCS-51 Architecture

16

Program Status Word(PSW)

PSW เปนรีจิสเตอรตัวหนึ่งใน 8051 ซึ่งใชในการเก็บ Flag ซึ่ง Flag นี้ก็คือบิตขอมูลที่บอกสถานะอะไรการทํางานของโปรแกรม ใน8051จะมีการเก็บ Flag ไวใน รีจิสเตอร PSW และรีจิสเตอร PCON โดย Flag ที่เก็บใน PSW นี้ไดแก- CY (Carry Flag) เปนบิตที่ใชเก็บผลเมื่อทําคําสั่งเกี่ยวกับคณิตศาสตร, การกระโดดการ Rotate และคําสั่งเกี่ยวกับ Boolean- AC (Auxilliary Carry Flag) เปนแฟลกที่จะมีการเซ็ตในกรณีการบวกลบเลข BCDเพราะ BCD นี้จะมองที่ขอมูล 4 บิต - OV (Over Flow Flag) เปนแฟลกที่มีการเปลี่ยนแปลงเมื่อมีการกระทําคําสั่งคณิตศาสตรซึ่งจะใชแสดงกรณีผลลัพธที่ไดเกินขนาดรีจิสเตอรเก็บได- P (Parity Flag) เปนบิตที่บอกพาริต้ีของรีจิสเตอร A 1 เปน Odd Parity ซึ่งก็คือจํานวนบิตที่เปน1 นั้นมีจํานวนเปนเลขคี่

Page 9: MCS-51 Architecture - .:: GEOCITIES.ws · MCS-51 Architecture Microprocessor by pisit wisutmetheekorn psw1999@yahoo.com 2 บทที่2: MCS-51 Architecture รูปที่2-1โครงสร

9

17

-F0 เปน User Flag ซึ่ง User สามารถกําหนดคาใหเปน 1 หรือ 0 เองโดยใชบันทึกเพื่อแสดงเหตุการณอะไรบางอยางในโปรแกรม- RS0 , RS1 คือบิตที่ 0 และ 1 ที่ใชกําหนด Bank ของหนวยความจําที่ใชในโปรแกรมวาเปนการอางถึงรีจิสเตอร R0-R7 ของหนวยความจํา Bank ใด

RS1 RS00 0 เลือกรีจิสเตอร R0-R7 ของ Bank 00 1 เลือกรีจิสเตอร R0-R7 ของ Bank 11 0 เลือกรีจิสเตอร R0-R7 ของ Bank 21 1 เลือกรีจิสเตอร R0-R7 ของ Bank 3

CY AC F0 RS1 RS0 OV - P

psw.0psw.1psw.2psw.3psw.4psw.5psw.6psw.7

รีจิสเตอร PSW bit 0bit7

18

Stack and Stack Pointer

ในตอนเริ่มตนที่รีเซต 8051 หรือเพิ่งมีการจายไฟเลี้ยงใหระบบคาของรีจิสเตอร SP จะมีคาเทากับ 07 ซึ่งช้ีที่หนวยความจําภายในของ 8051 (Internal RAM)โดยพ้ืนที่ตรงนี้เราจะเรียกวา Stack และจะถูกใชงานเมื่อมีการใชคําสั่ง PUSH , POPซึ่งจะขอกลาวในภายหลังแตในกรณีของการเรียกโปรแกรมยอยนั้นจะมีการเก็บตําแหนงถัดของคําสั่ง(หลังการเรียกใชโปรแกรมยอย)ไวในหนวยความจําที่รีจิสเตอร Stack ช้ีอยูและหลังจากทําโปรแกรมยอยจบแลวหากเราเรียกใชคําสั่งใหจบโปรแกรมยอยนั่นคือ RET (Return) ก็จะเกิดการนําตําแหนงที่เก็บใน Stack นี้ไปใหรีจิสเตอร PC ซึ่งก็จะเกิดการกลับไปทํางานคําสั่งที่อยูหลังการเรียกโปรแกรมยอย อยางไรก็ตามเนื้อที่ของ Stack เปน RAMภายในดังนั้นการใชงานหากไมระมัดระวังก็อาจเกิดการซอนกันระหวางขอมูลในหนวยความจําที่เรากําหนดและ Stack ได ซึ่งจะขออธิบายในภายหลัง

Page 10: MCS-51 Architecture - .:: GEOCITIES.ws · MCS-51 Architecture Microprocessor by pisit wisutmetheekorn psw1999@yahoo.com 2 บทที่2: MCS-51 Architecture รูปที่2-1โครงสร

10

19

SFR Function Address(HEX)A Accumulator 0E0B Arithmetic 0F0DPH อางหนวยความจําภายนอก 83DPL อางหนวยความจําภายนอก 82IE ควบคุมการเกิดของอินเตอรรัพท 0A8IP จัดลําดับการตอบสนองตออินเตอรรัพท 0B8P0 I/O port latch 80P1 I/O port latch 90P2 I/O port latch 0A0P3 I/O port latch 0B0PCON Power Control 87PSW Program Status Word 0D0

ตําแหนงของ SFR ภายใน8051

20

SFR Function Address(HEX)SCON Serial Port Control 98SBUF Serial Port Data Buffer 99

SP Stack Pointer 81TMOD Timer counter mode control 89TCON Timer/Counter Control 88TL0 Timer 0 Low byte 8ATH0 Timer 0 High byte 8CTL1 Timer1 Low byte 8BTH1 Timer 1 High byte 8D

*** PC (Program Counter) ไมมีแอดเดรสซึ่งอาจกลาวไดวาไมใช SFR

Page 11: MCS-51 Architecture - .:: GEOCITIES.ws · MCS-51 Architecture Microprocessor by pisit wisutmetheekorn psw1999@yahoo.com 2 บทที่2: MCS-51 Architecture รูปที่2-1โครงสร

11

21

Internal ROMROM ภายใน 8051 นั้นปกติแลวจะมีคา 4 KB แตหากเปนไมโครคอนโทรลเลอรเบอรอื่นในตระกูล MCS-51 (รวมถึง MCS-51 ของบริษัทอื่นๆดวย)จะมีขนาด ROM ตางกันเชน8031 ไมมี ROM ภายใน8751 จะมีหนวยความจําภายในเปน EPROM ที่สามารถเก็บ CODE ได89S8252 มีหนวยความจําแบบ Flash ขนาด 8 KB ที่สามารถโหลดขอมูลลงไปได89C420 มีหนวยความจําแบบ Flash ขนาด 16 KB 89C51RD2 มีหนวยความจําแบบ Flash ขนาด 64 KB ปกติหากเราตองการใชหนวยความจําสวนที่เปนโปรแกรม (CODE) เปนชิปอยูภายนอกไมโครคอนโทรลเลอร MCS-51 เราก็เพียงแตตอขา EA(External Access) ลง Groundและตองมีวงจรเพิ่มเติมในสวนถอดรหัสสัญญาณแอดเดรสที่จะตอกับหนวยความจํา

22

Memory Map ของ MCS-51

** ขนาด ROM ภายในขึ้นกบัเบอรของ MCS-51* ขนาด RAM ไมรวม SFR และขึ้นกับเบอร MCS-51

Program Memory Data Memory

ภายนอกขนาดสูงสุด64 KB

EPROM

EA = 0 EA = 1

ROM/EPROMFLASH(ภายใน)1-64KB**

InternalRAM

RAM ภายนอกขนาดสูงสุด 64KB

รูปที่2.8 โครงสราง Memory ของ 8051

Page 12: MCS-51 Architecture - .:: GEOCITIES.ws · MCS-51 Architecture Microprocessor by pisit wisutmetheekorn psw1999@yahoo.com 2 บทที่2: MCS-51 Architecture รูปที่2-1โครงสร

12

23

รูปที่2.9 ไดอะแกรมการเชื่อมตอ 8051 และ RAM

MCS-51

AD0-AD7

A8-A15RD

LATCH A0-A7Data

Address(H)RAM

WR WROE

Address(L)ALE LE / OC

D0-D7

24

จากรูปที่2.9 เปนวงจรเชื่อมตอ 8051 และหนวยความจําภายนอกโดยในที่นี้เปนสวนของ Data Memory ซึ่งมักจะเปน RAM เพราะเราจะสามารถกระทําไดทั้งการอานและการเขียนขอมูลหรือในบางครั้งหากอินพุตเอาตพุตไมพอขยายพอรตก็จะออกแบบใหเปนสวนหนึ่งของหนวยความจํานี้เพราะพอรตก็จะตองมีทั้งสวนที่เปนอินพุตและเอาตพุตเหมือนกับที่เราทั้งอานและเขียนขอมูลจาก RAM นั่นเอง ในรูปที่ 2.9จะมี Latch 1 ตัวเพื่อคางคาแอดเดรสไบตตํ่าไวกอนเนื่องจากวาบัสก็คือขา AD0-AD7 ของ 8051 นั้นเปนทั้งแอดเดรสและขอมูลดังนั้นจึงตองคงคาแอดเดรส A0-A7 ไวกอนจากนั้นเมื่อรวมกับ A8-A15 ก็จะสามารถอางหนวยความจําของ RAM ไดแตก็ตองขึ้นกับวาเปนการทํางานอะไรโดยหากเปนการอานขอมูลก็แสดงดังรูปที่ 2.10ซึ่งสัญญาณขา RD ของ8051 จะทํางานหลังจากที่ A8-A15 คงตัวแลวนั่นคือขอมูลจาก RAM มาปรากฏที่บัสขอมูล D0-D7 ก็จะเปนจังหวะที่ 8051 อานขอมูลเขาไปภายในพอดีในการออกแบบวงจรเชื่อมตอตองเขาใจสัญญาณนี้เปนอยางดี

Page 13: MCS-51 Architecture - .:: GEOCITIES.ws · MCS-51 Architecture Microprocessor by pisit wisutmetheekorn psw1999@yahoo.com 2 บทที่2: MCS-51 Architecture รูปที่2-1โครงสร

13

25

A0-A7 D0-D7Port P0

Port P2

ALERD

A8-A15Latch Address

กรณีอานขอมูล

รูปที่ 2.10 Timing การอานขอมูลจากหนวยความจําภายนอก

บทที่2: MCS-51 Architecture

26

A0-A7 D0-D7Port P0

Port P2

ALEWR

A8-A15Latch Address

กรณีเขียนขอมูล

รูปที่ 2.11 Timing การเขียนขอมูลจากหนวยความจําภายนอก

บทที่2: MCS-51 Architecture

ในรูป2.11 ขา WR จะทํางานขอบขาลงโดยเปนจังหวะที่ D0-D7 มารอบนบัสพรอมดวยแอดเดรส A8-A15 สวน A0-A7 นั้นถูก Latch ไวแลวกอนหนานี้

Page 14: MCS-51 Architecture - .:: GEOCITIES.ws · MCS-51 Architecture Microprocessor by pisit wisutmetheekorn psw1999@yahoo.com 2 บทที่2: MCS-51 Architecture รูปที่2-1โครงสร

14

27

รูปที่2.12 ไดอะแกรมการเชื่อมตอ 8051 และ EPROM

MCS-51

AD0-AD7

A8-A15

PSEN

LATCHData

Address(H)EPROM

OE

Address(L)ALE LE / OC

D0-D7

EA

28

จากรูปที่2.12 การเชื่อมตอกับ Code Memory หรือสวนที่เปน EPROM นี้จะตองใชสัญญาณที่ช่ือวา PSEN โดยสัญญาณนี้จะทํางานเมื่อมีการอานโปรแกรมจากหนวยความจําภายนอกซึ่งก็คือกระบวนการ Fetch คําสั่งของไมโครคอนโทรลเลอรและอีกกรณีหนึ่งก็คือการใชคําสั่งประเภท MOVCและในรูปที่2-13 นั้นขา PSEN จะทํางานหลังจากที่ขา ALE ทํางานนั่นก็คือมีแอดเดรส A0-A15 ไปปรากฏที่ EPROM แลวและมีขอมลูมารอบนบัส D0-D7 และเมื่อ PSEN ทํางานที่ขอบขาลงผลก็คือขอมูลจะถูกอานขึ้นไปอยางอัตโนมัติเขาไปในไมโครคอนโทรลเลอร

Page 15: MCS-51 Architecture - .:: GEOCITIES.ws · MCS-51 Architecture Microprocessor by pisit wisutmetheekorn psw1999@yahoo.com 2 บทที่2: MCS-51 Architecture รูปที่2-1โครงสร

15

29

รูปที่ 2.11 Timing การอานขอมูลจาก External Code Memory ของ8051

PSEN

A0-A7 D0-D7Port P0

Port P2

ALE

A8-A15Latch Address

บทที่2: MCS-51 Architecture

30

Port P0-P3 ของ 8051

ไมโครคอนโทรลเลอร 8051 มีพอรตทั้งหมด 32 บิตซึ่งมากพอหากตองการใชในงานที่เปนอินพุตเอาตพุตแบบดิจิตอลแตอยางไรก็ตามจะมีเฉพาะP0 เทานั้นที่ทําหนาที่เปนพอรตอินพุต/เอาตพุตอยางเดียวเพราะนอกนั้นจะสามารถทําหนาที่อื่นไดดวยแตอยางไรก็ตามก็ขึ้นกับโปรแกรมและวงจรที่ออกแบบวาตองหารใหพอรตเหลานั้นทําหนาที่ เปนพอรตหรือเปนอะไรอยางเชนกรณีที่ตองการเชื่อมตอ 8051 กับหนวยความจําภายนอกเชน RAMหรือ EPROM เราก็ตองยอมเสียพอรต P0 เพื่อทําหนาที่เสนทางเดินของขอมูลD0-D7 รวมถึงการเปนสายแอดเดรส A0-A7 ดวยและพอรต P2ก็จะตองทําหนาที่เปนสายแอดเดรส A8-A15 สําหรับพอรต P3 นั้นจะมีหลายหนาที่บางขาเปนสัญญาณควบคุมในการติดตอกับหนวยความจําที่เปน Data Memory ซึ่งไดแก RAM ในรูปที่2-9 ที่มีขา P3.6 เปนขา WR และขา P3.7 เปนขา RD สวนขาอื่นของ P3 จะเปนขาเกี่ยวกับ อินเตอรรัพท, Timer-Counter และพอรตสื่อสารแบบอนุกรม

Page 16: MCS-51 Architecture - .:: GEOCITIES.ws · MCS-51 Architecture Microprocessor by pisit wisutmetheekorn psw1999@yahoo.com 2 บทที่2: MCS-51 Architecture รูปที่2-1โครงสร

16

31

กอนที่จะไปดูการทํางานของวงจรภายในพอรต P0-P3 ขออธิบายอุปกรณพ้ืนฐานกอนนั่นก็คือ D-FlipFlop ดังรูป2.12 การทํางานของ D-FlipFlop ก็คือเอาตพุต Q จะเปลี่ยนตามอินพุต D เมื่อมีสัญญาณClock เขามาโดยเปนแบบขอบขาลง

รูปที่ 2.12 การทํางานของ D-FlipFlop

32

D Q

Clk Q

Read latch

Read pin

Write to latch

Internal CPU bus

M1

P0.X pinP1.X

TB1

TB2

จากวงจรจะพบวาหากใชพอรตเปนเอาตพุตจะตองตอ R-Pull UP ไมเชนนั้นเมื่อสั่งให M1 Off พอรต P0.X จะไมตอกับอะไรซึ่งก็คือ High Impedance ดูรูปที่2.14 ประกอบ

รูปที่ 2.13 วงจรภายในพอรต P0

Page 17: MCS-51 Architecture - .:: GEOCITIES.ws · MCS-51 Architecture Microprocessor by pisit wisutmetheekorn psw1999@yahoo.com 2 บทที่2: MCS-51 Architecture รูปที่2-1โครงสร

17

33

รูปที่ 2.14 การทํางาน P0 เมื่อมีการเขียนขอมูล ‘1’

เมื่อสั่ง P0.x เปน ‘1’ นั่นคือขา D ของ Flip Flop = 1 และถาสัญญาณ Write to latchทํางานก็จะเกิดลอจิก 1 ที่ขา Q ของ FlipFlop หรือ 0 ที่สวิตช M1 ทําให M1 เปดวงจร และขา P0 ที่ตอกับภายนอกก็จะอยูในสภาวะไมไดตอกับอะไรหรือ High Impedance

D Q

Clk Q

Read latch

Read pin

Write to latch

Internal CPU bus

M1

P0.X pinP1.X

TB1

TB2

10 Off

High Impedance

34

D Q

Clk Q

Read latch

Read pin

Write to latch

Internal CPU bus

M1

P0.X pinP1.X

TB1

TB2

01 On

Logic ‘ 0 ’

รูปที่ 2.15 การทํางาน P0 เมื่อมีการเขียนขอมูล ‘0’

รูปนี้แสดงกรณีที่เขียนขอมูล 0 ไปยังพอรต P0.x ซึ่งกรณีนี้ M1 จะนํากระแสทําใหขาที่ตอภายนอกของ P0.x นั้นมีคาเปนลอจิกศูนย

Page 18: MCS-51 Architecture - .:: GEOCITIES.ws · MCS-51 Architecture Microprocessor by pisit wisutmetheekorn psw1999@yahoo.com 2 บทที่2: MCS-51 Architecture รูปที่2-1โครงสร

18

35

รูปที่ 2.16 การตอ R Pull ใหพอรต P0

เมื่อตอ R Pull Up และเขียนขอมูล 1 มาพอรต P0.x l สวิตช M1 จะเปดวงจรดังนั้นวงจรภายนอกขา P0.x จะตออยูกับ VCC โดยผาน R Pull Up

0อุปกรณภายนอก

36

และถาเราใชงานพอรต P0 นี้เปนทั้งอินพุตและเอาตพุตสิ่งที่เราตองทํากอนที่จะให P0 ทํางานเปนอินพุตก็คือจะตองสั่งคาลอจิก 1 ให P0กอนดวยการเขียนชุดคําสั่งนั่นคือ mov P0,#0FFh ซึ่งทําให M1 นั้น Off และตอนนี้เองที่ขาอินพุตนี้จะมีคาตามสภาวะของสัญญาณจากภายนอกที่มาตอใหพอรต P0 เปนอินพุต

D Q

Clk Q

Read latch

Read pin

Write to latch

Internal CPU bus

M1

P0.X pinP1.X

TB1

TB2

รูปที่ 2.17 วงจรภายใน P0 กรณีเปนทั้งอินพุตและเอาตพุต

10

1

Page 19: MCS-51 Architecture - .:: GEOCITIES.ws · MCS-51 Architecture Microprocessor by pisit wisutmetheekorn psw1999@yahoo.com 2 บทที่2: MCS-51 Architecture รูปที่2-1โครงสร

19

37

D Q

Clk Q

Vcc

Load(L1)

Read latch

Read pin

Write to latch

Internal CPU bus

M1

P1.X pinP1.X

TB1

TB2

รูปที่ 2.18 การทํางานเมื่อเขียนขอมูล 1ไปยังพอรต P1

พอรต P1 จะมีการ Pull Up อยูภายใน 8051 ซึ่ง R นี้ถูกสรางดวยวงจรอิเล็กทรอนิกสดังนั้นการใชงานเปนเอาตพุตจึงไมตองตอ R Pull up เหมือนอยางพอรต P0

10

38

P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7

DS5000875189518051

Vcc10 K

Port

0

รูปที่ 2.19 การตอ R Pull Up 10 K Ohm ที่พอรต 0

Page 20: MCS-51 Architecture - .:: GEOCITIES.ws · MCS-51 Architecture Microprocessor by pisit wisutmetheekorn psw1999@yahoo.com 2 บทที่2: MCS-51 Architecture รูปที่2-1โครงสร

20

39

17RDP3.716WRP3.615T1P3.514T0P3.413INT1P3.312INT0P3.211TxDP3.110RxDP3.0

PinFunctionP3 Bit

หนาที่อื่นของขาตางๆที่เปนพอรต P3

40

RESET Value of Some 8051 Registers:

0000DPTR0007SP0000PSW0000B0000ACC0000PCReset ValueRegister

RAM are all zero. P0-P3จะมีคาเปนลอจิก 1

Page 21: MCS-51 Architecture - .:: GEOCITIES.ws · MCS-51 Architecture Microprocessor by pisit wisutmetheekorn psw1999@yahoo.com 2 บทที่2: MCS-51 Architecture รูปที่2-1โครงสร

21

41

สรุปในบทนี้ก็จะกลาวถึงโครงสรางภายในของรีจิสเตอรทีมีใน MCS-51ในเบื้องตนเพื่อที่จะเรียนรูการเขียนโปรแกรมควบคุมและสําหรับรีจิสเตอรควบคุมการทํางานตางๆนั้นก็จะกลาวถึงอีกครั้งในตอนที่อธิบายการทํางานของสวนนั้นๆพรอมทั้งการเขียนโปรแกรมควบคุม

- Cycle การทํางานของไมโครคอนโทรลเลอร- การทํางานของพอรตบน MCS-51- หนวยความจําของ MCS-51- การติดตอหนวยความจําของ MCS-51

สิ่งที่ควรรูและทบทวน