18
บทที2 ทฤษฎีที่เกี่ยวข้อง 2.1 ไมโครคอนโทรลเลอร์ 2.1.1 สถาปัตยกรรมไมโครคอนโทรลเลอร์ MCS-51 ไมโครคอนโทรลเลอร์แบบชิพเดี่ยวตระกูล MCS-51 มีอยู่ด้วยกันหลายเบอร์ เช่น 80C31, 80C32, 80C51, 80C52, 89C51, 89C52 เป็นต้น ซึ ่งการจัดเรียงขาของ ไมโครคอนโทรลเลอร์แสดงดังรูปที2.1 P0.0 -P0.7 D0 - D7 A0 - A7 P1.0 - P1.7 R + 5 V 9 18 19 20 XTAL P2.0 - P2.7 A8 - A15 P3.0 - P3.7 1 40 2 39 3 38 4 37 5 36 6 35 7 34 8 33 9 32 10 31 11 30 12 29 13 28 14 27 15 26 16 25 17 24 18 23 19 22 20 21 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 Reset P3.0 / TXD P3.1 / RXD P3.2 / INT0 P3.3 / INT1 P3.4 / T0 P3.5 / T1 P3.6 / WR P3.7 / RD XTAL2 XTAL1 GND P2.0 / A8 P2.1 / A9 P2.2 / A10 P2.3 / A11 P2.4 / A12 P2.5/ A13 P2.6 / A14 P2.7/ A15 ALE PSEN EA P0.7 / AD7 P0.6 / AD6 P0.5 / AD5 P0.4 / AD4 P0.3 / AD3 P0.2 / AD2 P0.1 / AD1 P0.0 / AD0 + VCC Microcontroller MCS- 51 Microcontroller MCS- 51 C C C รูปที่ 2.1 การจัดเรียงขาของไมโครคอนโทรลเลอร์ จากรูปที2.1 ประกอบด้วยพอร์ตที่ใช้งานอยู4 พอร์ตได้แก่ พอร์ต 0 พอร์ต 1 พอร์ต 2 และพอร์ต 3 มีรายละเอียดแต่ละพอร์ตดังนี - พอร์ต 0 (P0.0P0.7) เป็นอินพุทหรือเอาท์พุทพอร์ต ถ้ามีการขยายหน่วยความจาภายนอกหรือ อินพุท / เอาท์พุทภายนอกจะใช้เป็น Data Bus (D0-D7) และ Address Bus (A0- A7) - พอร์ต 1 (P1.0-P1.7) เป็นอินพุทหรือเอาท์พุทพอร์ต - พอร์ต 2 (P2.0-P2.7) เป็นอินพุทหรือเอาท์พุทพอร์ต ถ้ามีการต่อหน่วยความจาภายนอกจะใช้ เป็น Address Bus (A8-A15) - พอร์ต 3 (P3.0-P3.7) เป็นอินพุทหรือเอาท์พุทพอร์ต ถ้าไม่ใช้ให้เป็นอินพุท/เอาท์พุทก็สามารถ ทาหน้าที่ตามชื่อหลังได้ดังนี

P1.6 P1.5 P0.5 / AD5 P0.4 / AD4 C A0 - A7 P1.7 P1.4 P0.6 ... · PDF fileบทที่ 2 ทฤษฎีที่เกี่ยวข้อง 2.1 ไมโครคอนโทรลเลอร์

  • Upload
    lexuyen

  • View
    224

  • Download
    0

Embed Size (px)

Citation preview

Page 1: P1.6 P1.5 P0.5 / AD5 P0.4 / AD4 C A0 - A7 P1.7 P1.4 P0.6 ... · PDF fileบทที่ 2 ทฤษฎีที่เกี่ยวข้อง 2.1 ไมโครคอนโทรลเลอร์

บทท 2 ทฤษฎทเกยวของ

2.1 ไมโครคอนโทรลเลอร

2.1.1 สถาปตยกรรมไมโครคอนโทรลเลอร MCS-51 ไมโครคอนโทรลเลอรแบบชพเดยวตระกล MCS-51 มอยดวยกนหลายเบอร เชน

80C31, 80C32, 80C51, 80C52, 89C51, 89C52 เปนตน ซงการจดเรยงขาของไมโครคอนโทรลเลอรแสดงดงรปท 2.1

P0.0 -P0.7D0 - D7A0 - A7

P1.0 - P1.7

R

+ 5 V

9

18

19

20

XTALP2.0 - P2.7A8 - A15

P3.0 - P3.7

1 40 2 39 3 38 4 37 5 36 6 35 7 34 8 33 9 32 10 31 11 30 12 29 13 28 14 27 15 26 16 25 17 24 18 23 19 22 20 21

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

ResetP3.0 / TXDP3.1 / RXDP3.2 / INT0P3.3 / INT1

P3.4 / T0P3.5 / T1

P3.6 / WRP3.7 / RD

XTAL2XTAL1

GND P2.0 / A8P2.1 / A9P2.2 / A10P2.3 / A11P2.4 / A12P2.5/ A13P2.6 / A14P2.7/ A15

ALEPSEN

EAP0.7 / AD7P0.6 / AD6P0.5 / AD5P0.4 / AD4P0.3 / AD3P0.2 / AD2P0.1 / AD1P0.0 / AD0+ VCC

Mic

roco

ntr

olle

r M

CS

- 5

1

Mic

roco

ntr

olle

r M

CS

- 5

1

C

CC

รปท 2.1 การจดเรยงขาของไมโครคอนโทรลเลอร

จากรปท 2.1 ประกอบดวยพอรตทใชงานอย 4 พอรตไดแก พอรต 0 พอรต 1 พอรต 2

และพอรต 3 มรายละเอยดแตละพอรตดงน - พอรต 0 (P0.0–P0.7) เปนอนพทหรอเอาทพทพอรต ถามการขยายหนวยความจ าภายนอกหรออนพท / เอาทพทภายนอกจะใชเปน Data Bus (D0-D7) และ Address Bus (A0- A7) - พอรต 1 (P1.0-P1.7) เปนอนพทหรอเอาทพทพอรต - พอรต 2 (P2.0-P2.7) เปนอนพทหรอเอาทพทพอรต ถามการตอหนวยความจ าภายนอกจะใชเปน Address Bus (A8-A15) - พอรต 3 (P3.0-P3.7) เปนอนพทหรอเอาทพทพอรต ถาไมใชใหเปนอนพท/เอาทพทกสามารถท าหนาทตามชอหลงไดดงน

Page 2: P1.6 P1.5 P0.5 / AD5 P0.4 / AD4 C A0 - A7 P1.7 P1.4 P0.6 ... · PDF fileบทที่ 2 ทฤษฎีที่เกี่ยวข้อง 2.1 ไมโครคอนโทรลเลอร์

4

- P3.0/TxD (Transmit Data) ใชเปนขาเอาทพทส าหรบสงขอมลจากการสอสารแบบอนกรม - P3.1/RxD (Receive Data) ใชเปนขาอนพทส าหรบรบขอมลจากการสอสารแบบอนกรม - P3.2/ 0INT (Interrupt 0) รบสญญาณขดจงหวะจากภายนอก No. 0 - P3.3/ 1INT (Interrupt 1) รบสญญาณขดจงหวะจากภายนอก No. 1 - P3.4/T0 (Timer/Counter0) สามารถโปรแกรมไดวาจะใหเปน Timer หรอ Counter ถาใชสญญาณClock จากภายนอกเขามาจะเปน Counter ถาใชสญญาณ Clock จากภายในจะเปน Timer - P3.5/T1 (Timer/Counter1) ท าหนาทท านองเดยวกบ T0 - P3.6/ WR (Write) สงสญญาณควบคมการเขยนขอมลจาก MCS-51ไปยงภายนอก - P3.7/ RD (Read) สงสญญาณควบคมการอานขอมลจากภายนอกเขามายง MCS-51 - Reset เปนขาอนพท Active High เรมตนท างานขา Reset จะไดรบลอจก “1” ซงจะท าให PC=0000H, P0=P1=P2=P3=FFH, SP=07H และรจสเตอรทกตวเปนศนย - XTAL 1 และ XTAL 2 เปนขาทใชส าหรบตอกบตวครสตอล เพอสรางสญญาณนาฬกาในการก าหนดจงหวะ การท างานของไมโครคอนโทรลเลอรใชในยานความถ 11-16 MHz - EA (External Access) เปนขาอนพทถารบลอจก “0” ใชโปรแกรมจดระบบจากภายนอก ถารบ ลอจก “1” ใชโปรแกรมจดระบบจากภายในเชน MCS-51 เบอร AT89C51, AT89C52 - ALE (Address Latch Enable) ขานจะสงสญญาณทมความถ 1 / 6 เทาของสญญาณนาฬกาจาก ครสตอลมาตลอดเวลา ยกเวนกรณทตองการตดตอกบหนวยความจ าภายนอก ขานจะเปนลอจก “1” แลวจะสง Address 8 บต (A0- A7) มาท P0.0-P0.7 ชวขณะแลวเปลยนเปน Data Bus (D0-D7) - PSEN (Program Store Enable) ขานจะสงสญญาณ Active Low ออกมา 2 ครง ในแตละแมชชนไซเคล เมอตองการอานโปรแกรมจากภายนอก แตถาตองการอานโปรแกรมจากภายในจะไมมสญญาณทขาน - +Vcc เปนขาทใชส าหรบตอไฟเพอเลยงวงจร DC +5V - GND (Ground) เปนขากราวดส าหรบตอกบกราวดของระบบ DC 0V

2.1.2 การจดหนวยความจ า -Program Memory (ROM) เกบโปรแกรมจดระบบงาน

-Data Memory (RAM) เกบขอมลหรอโปรแกรมทมการเปลยนแปลงแกไขได เชน Set Point ตางๆ

Page 3: P1.6 P1.5 P0.5 / AD5 P0.4 / AD4 C A0 - A7 P1.7 P1.4 P0.6 ... · PDF fileบทที่ 2 ทฤษฎีที่เกี่ยวข้อง 2.1 ไมโครคอนโทรลเลอร์

5

Address ของ Program Memory แสดงดงตารางท 2.1

ตารางท 2.1 Address ของ Program Memory

หรอ

0000H

0FFFH

1FFFH

FFFFH

External ROM 64 kbytes

FFFFH

0000H

External ROM

60 k/56 kbytes

Internal ROM

8 kbytes(89C52)

Internal ROM

4kbytes(89C51)

Address ของ Data Memory แสดงดงตารางท 2.2

ตารางท 2.2 Address ของ Data Memory

Address ส าหรบการบรการการขดจงหวะ

0003H จากอนเทอรรป INT00013H จากอนเทอรรป INT10023H จากอนเทอรรปของการสอสารแบบอนกรม000BH จากอนเทอรรปของ T0001BH จากอนเทอรรปของ T1002BH จากอนเทอรรปของ T2

Page 4: P1.6 P1.5 P0.5 / AD5 P0.4 / AD4 C A0 - A7 P1.7 P1.4 P0.6 ... · PDF fileบทที่ 2 ทฤษฎีที่เกี่ยวข้อง 2.1 ไมโครคอนโทรลเลอร์

6

Internal RAM Address 00H-7FH (128 Bytes) แสดงดงตารางท 2.3 ตารางท 2.3 Internal RAM Address 00H-7FH (128 Bytes)

MSB LSB

7F 7E 7D 7C 7B 7A 79 78

77 76 75 74 73 72 71 70

6F 6E 6D 6C 6B 6A 69 68

67 66 65 64 63 63 61 60

5F 5E 5D 5C 5B 5A 59 58

57 56 55 54 53 52 51 50

4F 4E 4D 4C 4B 4A 49 48

47 46 45 44 43 42 41 40

3F 3E 3D 3C 3B 3A 39 38

37 36 35 34 33 32 31 30

2F 2E 2D 2C 2B 2A 29 28

27 26 25 24 23 22 21 20

1F 1E 1D 1C 1B 1A 19 18

17 16 15 14 13 12 11 10

0F 0E 0D 0C 0B 0A

Register Bank 3

Register Bank 2

Register Bank 1

Register Bank 0

07 06 05 04 03 02 01 00

0809

ยานการใชงานทวไป

R0-R7 (8 Bytes)R0-R7 (8 Bytes)R0-R7 (8 Bytes)

R0-R7 (8 Bytes)

7FH30H

2EH

2CH2DH

2BH2AH

28H29H

27H26H25H24H23H

21H22H

10H-17H18H-1FH

08H-0FH00H-07H

20H

ยาน20H-2FH ใชค าสงเขาถงขอมลในระดบบทไดทงหมด128 บท (16 Bytes)

2FH

2.1.3 รจสเตอร (Register) หรอตวแปร 1 รจสเตอรใชงานทวไป (R0-R7 Address 00H-07H) 2 รจสเตอรใชงานเฉพาะ (SFR Address 80H-FFH)

เมอ SFR: Special Function Register AT89C51 ม SFR 22 ตว สวน AT89C52 AT89SXX ม SFR 28 ตว แสดงรายละเอยดดงตารางท 2.4

ตารางท 2.4 รจสเตอรใชงานเฉพาะ

Symbol Name of Register Address *A Accumulator E0H *B B F0H SP Stack Pointer 81H

Page 5: P1.6 P1.5 P0.5 / AD5 P0.4 / AD4 C A0 - A7 P1.7 P1.4 P0.6 ... · PDF fileบทที่ 2 ทฤษฎีที่เกี่ยวข้อง 2.1 ไมโครคอนโทรลเลอร์

7

ตารางท 2.4 รจสเตอรใชงานเฉพาะ (ตอ)

Symbol Name of Register Address DPL Data Pointer Low 82H DPH Data Pointer High 83H *P0 Port 0 80H *P1 Port 1 90H *P2 Port 2 A0H *P3 Port 3 B0H SBUF Serial Data Buffer 99H TL0 Timer/Counter Low 0 8AH TH0 Timer/Counter High 0 8BH TL1 Timer/Counter Low 1 8CH TH1 Timer/Counter High 1 8DH PCON Power Control 87H *SCON Serial Control 98H *TCON Timer/Counter Control 88H TMOD Timer/Counter Mode Control 89H *IE Interrupt Enable Control A8H *IP Interrupt Priority Control B8H *PSW Program Status Word D0H

สวนรจสเตอรทแสดงดงตารางท 2.5 เปน Register 6 ตวทมอยใน AT89C52, AT89SXX ตารางท 2.5 รจสเตอรเพมเตมของ AT89C52, AT89SXX

Symbol Name of Register Address TL2 Timer/Counter Low 2 CCH TH2 Timer/Counter High 2 CDH RCAP2L Capture Register Low CAH RCAP2H Capture Register High CBH T2CON Timer/Counter Control 2 C8H T2MOD Timer/Counter Mode Control 2 C9H

Note: PC (Program Counter) ไมม Address ประจ าตว * เปนรจสเตอรทเขาถงในระดบบตได

Page 6: P1.6 P1.5 P0.5 / AD5 P0.4 / AD4 C A0 - A7 P1.7 P1.4 P0.6 ... · PDF fileบทที่ 2 ทฤษฎีที่เกี่ยวข้อง 2.1 ไมโครคอนโทรลเลอร์

8

ตารางชอประจ าบตของรจสเตอรทเขาถงในระดบบตได แสดงดงตารางท 2.6

ตารางท 2.6 ตารางชอประจ าบตของรจสเตอรทเขาถงในระดบบตได

Symbol ชอประจ าบตของรจสเตอร Register Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 A ACC.7 ACC.6 ACC.5 ACC.4 ACC.3 ACC.2 ACC.1 ACC.0 B B.7 B.6 B.5 B.4 B.3 B.2 B.1 B.0 P0 P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 P1 P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 P2 P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 P3 P3.7 P3.6 P3.5 P3.4 P3.3 P3.2 P3.1 P3.0 SCON SM0 SM1 SM2 REN TB8 RB8 TI RI TCON TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 IE EA - ET2 ES ET1 EX1 ET0 EX0 IP - - PT2 PS PT1 PX1 PT0 PX0 PSW C AC F0 RS1 RS0 OV F1 P ค าอธบาย Special Function Register : SFR Accumulator :ACC, A

ใชเปนตวตงและเกบผลลพธจากการกระท าทางคณตศาสตรและลอจก หรอเปนตวรบ/สงขอมลระหวางไมโครคอนโทรลเลอรกบอปกรณภายนอก

Register: B ใชงานไดทวไปหรอใชเปนตวคณหรอตวหารในค าสง MUL AB, DIV AB Stack Pointer: SP ใชเปนตวชต าแหนงของ Stack ในค าสง PUSH, POP, CALL, RET

Page 7: P1.6 P1.5 P0.5 / AD5 P0.4 / AD4 C A0 - A7 P1.7 P1.4 P0.6 ... · PDF fileบทที่ 2 ทฤษฎีที่เกี่ยวข้อง 2.1 ไมโครคอนโทรลเลอร์

9

Port Register : P0, P1, P2, P3 ใชเปน Input/Output Port เพอตดตอกบอปกรณรอบนอกในกรณทมการตอหนวยความจ า

หรอหนวยอนพท/เอาทพทภายนอกเพมเตม P0 ใชเปน A0-A7 และ D0-D7 P2 ใชเปน A8-A15 P3.6 เปน WR (Write Data) P3.7 เปน RD (Read Data)

Serial Data Buffer : SBUF ใชในการเกบขอมลทสงออกทขา TxD หรอรบขอมลเขามาจากขา RxD ในการรบ/สง

ขอมลแบบอนกรม Timer/Counter Register : T0 (TH0, TL0) T1 (TH1, TL1) T2 (TH2, TL2) ใชในการสรางฐานเวลา จบเวลา หรอนบจ านวนพลสมขนาด 16 บต Capture Register: RCAP2 (RCAP2H, RCAP2L) ใชงานเ มอก าหนดให T2 ท างานในโหมดแคปเจอร ซ ง เ ปนโหมดทก าหนดให

ไมโครคอนโทรลเลอรท าการตรวจจบการเปลยนแปลงสถานะทางลอจกทขา T2EX เพอใชประโยชนในการวดคาบเวลา ความถ และการเปลยนแปลงของสญญาณทขา T2EX มขนาด 16 บต

Control Register มทงหมด 6 ตวไดแก

Power Control : PCON ใชในการก าหนดอตราการรบ/สงขอมลแบบอนกรมและก าหนดการท างานในโหมด

ประหยดพลงงาน Serial Control : SCON ใชในการควบคมการท างานของวงจรสอสารแบบอนกรมภายในไมโครคอนโทรลเลอร Timer/Counter Control : TCON, T2CON ใชในการควบคมการท างานของวงจร Timer / Counter ภายในไมโครคอนโทรลเลอร Timer/Counter Mode Control : TMOD, T2MOD ใช ใ นก า รก า หนดโหมดห รอลกษณะกา รท า ง านของ T imer/Counter ภ า ย ใน

ไมโครคอนโทรลเลอร Interrupt Enable Control : IE ใชในการก าหนดลกษณะการตอบสนองการอนเตอรรปต Interrupt Priority Control : IP ใชในการก าหนดล าดบความส าคญของการตอบสนองการบรการอนเตอรรปตวาจะให

ตอบสนองการเกดอนเตอรรปตในลกษณะใดกอน

Page 8: P1.6 P1.5 P0.5 / AD5 P0.4 / AD4 C A0 - A7 P1.7 P1.4 P0.6 ... · PDF fileบทที่ 2 ทฤษฎีที่เกี่ยวข้อง 2.1 ไมโครคอนโทรลเลอร์

10

Program Counter: PC ใชเปนตวชต าแหนงของโปรแกรมท CPU จะไปประมวลผลเมอ Reset จะท าให

PC=0000H (16 บต) แลวจะเปลยนแปลงอตโนมตตามค าสงทประมวลผล Program Status Word : PSW ใชเปนตวแสดงสภาพของผลลพธจากกระท าทางคณตศาสตรหรอลอจกและยงใชเปน

ตวเลอกให R0-R7 อยใน Register Bank ใดๆ 2.1.4 หลกการเขยนโปรแกรมภาษาแอสเซมบล ภาษาคอมพวเตอรแบงเปน 2 ระดบ

1. ภาษาระดบสง (High Level Language) เชน C, VB 2. ภาษาระดบต า (Low Level Language) ไดแก ภาษาเครองและภาษาแอสเซมบล

ภาษาเครอง เขยนแทนดวยรหสเลขฐานสองหรอฐาน 16 เชนตองการใหคาของ A=5DH ภาษาเครองคอ 745DH หรอ 0111, 0100, 0101, 1101B ภาษาแอสเซมบล เขยนแทนดวยรหสยอตามทบรษทผผลตไมโครคอนโทรลเลอรหรอไมโครโปรเซสเซอรเบอรนนๆเปนผก าหนดเชนตองการใหคาของ A=5DH ภาษาแอสเซมบลคอ MOV A, #5DH รปแบบของโปรแกรมภาษาแอสเซมบล แบงเปน 4 Fields ไดแก 1 Label 2 Mnemonic 3 Operands 4 Comment DELAY: MOV R1,#50H ;R1=50H LOOP: MOV R2,#60H ;R2=60H HERE: DJNZ R2,HERE ;R2-1 UNTIL=00H DJNZ R1,LOOP ;R1-1 1F 00H GO LOOP RET ;IF R1=00H RETURN

1. Label เปนจดทบอกใหรต าแหนงการกระโดดไปหรอการเรยกโปรแกรมยอยนนๆ การเขยน Label ตองไมเวนวรรคปดทายดวยโคลอน (:)

2. Mnemonic เปนรหสค าสง บอกใหรวาตองการท าอะไรเขยนตามขอก าหนด 3. e s 1 คอมมา ( , )

( Mnemonic + Operands = Command, ค าสง ) 4. Comment ค าอธบายโปรแกรม ตองขนตนดวยเซมโคลอน( ; ) มหรอไมม C e t

ซงจะไมมผลตอโปรแกรม

Page 9: P1.6 P1.5 P0.5 / AD5 P0.4 / AD4 C A0 - A7 P1.7 P1.4 P0.6 ... · PDF fileบทที่ 2 ทฤษฎีที่เกี่ยวข้อง 2.1 ไมโครคอนโทรลเลอร์

11

ตารางสญลกษณของคาตางๆในการเขยนโปรแกรมภาษาแอสเซมบล MCS-51 แสดงดงรปท 2.7 ตารางท 2.7 สญลกษณของคาตางๆในการเขยนโปรแกรมภาษาแอสเซมบล MCS-51 สญลกษณ ค าอธบาย Rn R0-R7 อางองขอมลทเปนคาของ R0-R7 Direct หรอ Dadd

00H-0FFH อางองขอมลในหนวยความจ าภายใน ทก าหนดต าแหนงขนาด 8 บต แบบโดยตรง

@Ri @R0, @R1 อางองขอมลในหนวยความจ าภายใน โดยคาต าแหนงขนาด 8 บต ก าหนดดวยคาของ R0,R1 #data #00H-#0FFH ขอมลขนาด 8 บต #data16 #0000H-#0FFFFH ขอมลขนาด 16 บต Bit 00H-0FFH อางองขอมลทละบตใน Internal RAM,SFR Addr16(Cadd)

เปน Label หรอต าแหนงขนาด 16 บต อางองต าแหนง ของหนวยความจ าได 64 k (0000H-0FFFFH)

Addr11(Cadd)

เปน Label หรอต าแหนงขนาด 11 บต อางองต าแหนง ของหนวยความจ าได 2 k (0000H-07FFH นบจากจดทอย)

Rel (Cadd)

เปน Label หรอต าแหนงขนาด 8 บต อางองต าแหนง ของหนวยความจ าหางจากจดทอยในระยะ 00H-0FFH

2.1.5 การเขาถงขอมล ( Addressing Mode )

-Direct Addressing EX. MOV A,7FH ;A = ( 7FH ) -Indirect Addressing EX. MOV A,@R1 ;A = ( R1 ) -Immediate Addressing EX. MOV A,#7FH ;A = 7FH -Register Addressing EX. MOV A,R1 ;A = R1 -Index Addressing EX. MOVC A,@A+DPTR ;A = (A+DPTR) -Register Specific Instruction EX. INC A ;A A+1 Note : ( 7FH ) = ขอมลทอยใน Internal RAM Address 7FH ( R1 ) = ขอมลทอยใน Internal RAM Address ก าหนดโดยคาของ R1

Page 10: P1.6 P1.5 P0.5 / AD5 P0.4 / AD4 C A0 - A7 P1.7 P1.4 P0.6 ... · PDF fileบทที่ 2 ทฤษฎีที่เกี่ยวข้อง 2.1 ไมโครคอนโทรลเลอร์

12

กลมค าสงเทยม ไมมอยในกลมค าสงของ MCS-51 แตใชในการเขยนโปรแกรมภาษาแอสเซมบล EX. ORG 8200H ; โปรแกรมเรมตนทต าแหนง 8200H

DB 20H,50H ; Define Byte คอการก าหนดขอมล 20H ลงในหนวยความจ าต าแหนง 8200H และก าหนดขอมล 50H ลงในหนวยความจ าต าแหนง 8201H (ถามมากกวานใหคนดวยเครองหมายคอมมา ( , ) ขนบรรทดใหมใหพมพ DB ) BUFFER EQU 0A300H ; ค าวา BUFFER มคาเทากบ 0A300H FORWARD EQU 90H ; ค าวา FORWARD มคาเทากบ 90H LED1 BIT P1.1 1 กบ P1.1 SJMP $ Label หรอต าแหนงทค าสงน นอย (กระโดดอยทเดม ) MOV LED1, C ; น าคา Carry Flag ไปออกท P1.1 MOV P2, #FORWARD ; น าคา 90H ไปออกท P2 MOV DPTR, #BUFFER ; DPTR = 0A300H กลมค าสงของ MCS-51 แบงเปน 5 กลมดงน

1. กลมค าสงการโอนยายขอมล ( Data Transfer ) 2. กลมค าสงการกระท าทางคณตศาสตร ( Arithmetic Operations ) 3. กลมค าสงการกระท าทางลอจก ( Logical Operations ) 4. กลมค าสงการกระท าครงละบต ( Boolean Variable Manipulation ) 5. กลมค าสงการกระโดด ( Program & Machine control )

2.2 การใชงาน RTC (Real Time Clock) ดวย DS1307

ระบบฐานเวลาเปนสงส าคญทสามารถน าไปใชในอปกรณอเลกโทรนกสไดหลากหลาย ภายในไมโครคอนโทรเลอรเองกมไทเมอรเพอใชในการจบเวลา หรอน าไปใชเปนฐานเวลาจรงไดเชนกน แตเนองจากไมโครคอนโทรเลอรสามารถท างานไดตอเมอมไฟเลยงเทานน ดงนนการใชไทเมอรของไมโครคอนโทรลเลอร สรางฐานเวลาจรงจงไม เหมาะสมในบางแอปพลเคชน

DS1307 เปน IC ฐานเวลาของดลลสเซมคอนดกเตอร (Dallas Semiconductor) มบสรบสงขอมลแบบ I2C ซงเปนแบบ 2 wire สามารถสอสารได 2 ทศทาง (bi-direction bus) ฐานเวลาของ DS1307 นนสามารถเกบขอมล วนาท, นาท, ชวโมง, วน, วนท, เดอน และป ได ระบบเวลาสามารถท างานโหมดรปแบบ 24 ชวโมง หรอ 12 ชวโมง AM/PM กได ภายมระบบตรวจจบแหลงจายไฟ โดยถาแหลงจายไฟหลกถกตดไป DS1307 สามารถสวตซไปใชไฟจากแบตเตอร และท างานตอไป

Page 11: P1.6 P1.5 P0.5 / AD5 P0.4 / AD4 C A0 - A7 P1.7 P1.4 P0.6 ... · PDF fileบทที่ 2 ทฤษฎีที่เกี่ยวข้อง 2.1 ไมโครคอนโทรลเลอร์

13

โดยทยงสามารถรกษาขอมลไวได โครงสรางมขาทงหมด 8 ขาดงแสดงในรปท 1 และมรายละเอยดการท างานของขาตาง ๆ ดงน

รปท 2.2 ต าแหนงขาไอซ RTC DS1307

VCC: ใชตอไฟเลยง +5V GND: ใชตอกราวด VBAT: ใชตอกบแบตเตอร 3V เพอรกษาการท างาน ในกรณทไมมไฟเลยงจาย SDA: ขารบสงขอมลดวยระบบบส I2C SCL: ขาสญญาณนาฬกาส าหรบการรบสงขอมลดวยระบบบส I2C SQW/OUT: ขาเอาตพตสญญาณ Square Wave สามารถเลอกความถได X1, X2: ใชตอกบครสตอลความถมาตรฐาน 32.768 kHz เพอสรางฐานเวลาจรงใหกบ IC

ระบบบสขอมลแบบ I2C (Inter-IC Communication) ไดถกพฒนาขนโดยบรษทฟลปส (Phillips) การรบสงขอมลใชสายสญญาณเพยงแค 2 เสน คอสายสญญาณขอมล SDA (Serial Data line) และสายสญญาณนาฬกา SCL (Serial Clock line) มการท างานเปนแบบ Master, Slave โดยอปกรณทท าหนาทเปน Master (ไมโครคอนโทรลเลอร) จะควบคมการรบสงขอมล และควบคมสญญาณนาฬกาบน SCL สวนอปกรณ Slave (DS1307) นนจะท างานภายใตการควบคมของอปกรณ Master

2.2.1 การตอใชงานรวมกบไมโครคอนโทรลเลอรดวยระบบบส I2C

นนสามารถท าไดโดยตอตวตานทาน Pull up ดงแสดงในรปท 2 ในกรณทตองการตอรวมกบอปกรณ Slave หลายตว กสามารถท าไดโดยตออปกรณ Slaveขนานกนไป การตดตอสอสารระหวางอปกรณ Master กบ Slave แตละตวนน จะถกแยกโดย Address ของอปกรณ Slave ซงจะถกสงจากอปกรณ Master ไปยงอปกรณ Slave กอนเรมการรบสงขอมล

Page 12: P1.6 P1.5 P0.5 / AD5 P0.4 / AD4 C A0 - A7 P1.7 P1.4 P0.6 ... · PDF fileบทที่ 2 ทฤษฎีที่เกี่ยวข้อง 2.1 ไมโครคอนโทรลเลอร์

14

รปท 2.3 การเชอมตอ DS1307 เขากบไมโครคอนโทรลเลอรดวยระบบบสแบบ I2C

2.2.2 การรบสงขอมลแบบ I2C

มขอก าหนดอย 2 ประการดวยกนคอ

1. การรบสงขอมลจะเรมขนไดเมอบสมสถานะวางเทาน 2. ในชวงทท าการรบสงขอมลอย สายสญญาณ SDA ตองไมเปลยนสถานะในชวงท

SCL มสถานะเปนลอจก “1” ถา SDA มการเปลยนสถานะในชวงท SCL เปนลอจก “1” จะถอวาเปนสญญาณควบคมการรบสงขอมล

สถานะของการรบสงขอมลแบบ I2C สามารถแบงออกไดเปน 5 สถานะดวยกนดงแสดงในรปท 3 และมรายละเอยดดงน

1. สถานะวาง (Bus Not Busy): สญญาณ SDA และ SCL มระดบสญญาณเปน High 2. เรมสงขอมล (Start Data Transfer): มการเปลยนระดบสญญาณของ SDA จาก High เปน

Low ในขณะท SCL มระดบสญญาณเปน High คางไว 3. หยดสงขอมล (Stop Data Transfer): มการเปลยนระดบสญญาณของ SDA จาก Low เปน

High ในขณะท SCL มระดบสญญาณเปน High คางไว 4. รบสงขอมล (Data Valid): มการรบสงขอมลผานสายสญญาณ SDA โดยขอมลแตละบตจะ

ถกสงในชวงท SCL มระดบเปน High โดยในชวงท SCL มสถานะเปน High อยนน SDA จะตองไมเกดการเปลยนระดบสญญาณ

Page 13: P1.6 P1.5 P0.5 / AD5 P0.4 / AD4 C A0 - A7 P1.7 P1.4 P0.6 ... · PDF fileบทที่ 2 ทฤษฎีที่เกี่ยวข้อง 2.1 ไมโครคอนโทรลเลอร์

15

SDA จะเปลยนระดบของสญญาณ ในชวงท SCL มระดบสญญาณเปน Low เทานน ตามมาตรฐานการสงขอมล แบบ I2C นสามารถสงขอมลดวยความถสญญาณนาฬกาสงสด 100 kHz ทโหมดการท างานธรรมดา และ 400 kHz ทโหมดการท างานแบบเรว แตส าหรบ DS1307 สามารถท างานไดในโหมดธรรมดาเทานน

ตอบรบ (Acknowledge): เกดขนหลงจากทมการรบสงขอมลครบแลว โดยอปกรณ Master ตองสรางสญญาณ Clock บน SCL เพมอกลก อปกรณทเปนตวรบขอมลจะดงระดบสญญาณบน SDA ใหเปน Low เพอใหตวสงรบรวาตวรบไดรบขอมลครบแลว

รปท 2.4 การรบสงขอมลผานบส I2C

ในการรบสงขอมลผานบส I2C อปกรณ Master จะเปนผสรางสญญาณ Clock บน SDA และเปนตวควบคมสถานะ Start และ Stop เพอควบคมการรบสงขอมลทงหมด

2.2.3 การสงขอมลไปยงอปกรณ DS1307

การสงขอมลไปยงอปกรณ DS1307 ดงแสดงในรปท 4 ไมโครคอนโทรลเลอรตองสรางสภาวะ Start กอน จากนนตองสง Address ของDS1307 ขนาด 7 บตซงมคาเปน 1101000 และตามดวยบตระบทศทางของขอมล ในกรณทเปนการเขยนขอมลลง DS1307 จะตองเปน “0” จากนนไมโครคอนโทรเลอรจะตองสงต าแหนง Address ภายในรจสเตอรของ DS1307 ทตองการเขยนขอมลลง แลวจงคอยเขยนขอมลลง โดยในการสงขอมลแตละไบตจะตองรอบต Ack จาก DS1307 ทกไบต เมอสงจนครบแลว ถงจะสรางสภาวะ Stop เพอกลบสสถานะวาง

รปท 2.5 การอานขอมลจากอปกรณ Slave ผานบส I2C

Page 14: P1.6 P1.5 P0.5 / AD5 P0.4 / AD4 C A0 - A7 P1.7 P1.4 P0.6 ... · PDF fileบทที่ 2 ทฤษฎีที่เกี่ยวข้อง 2.1 ไมโครคอนโทรลเลอร์

16

ภายใน DS1307 มรจสเตอรภายในใชเกบขอมลเวลาขนาด 7 ไบต 00H-06H ดงแสดงในรปท 6ขอมลคาเวลา และวนทจะถกเกบอยในรปของเลขฐาน 10 สวมวรถเลอกไดวาใหท างานแบบ 12 ชวโมง หรอ 24 ชวโมง โดยก าหนดทบตท 6 ทแอดเดรส 02H โดยถาเปน 1 จะเปนการท างานในโหมด 12 ชวโมง และเมอเลอกแบบ 12 ชวโมง ทบต 5 ในแอดเดรส 02H น นจะใชแสดงคา AM/PM โดยถาบตนเปน 1 จะเปน PM ในกรณทแสดงแบบ 24 ชวโมง บตนจะใชในการแสดงคาหลกสบในของหนวยชวโมงดวย

รปท 2.6 รจสเตอรภายในไอซฐานเวลา DS1307 ทแอดเดรส 07H เปนรจสเตอรควบคมการท างานของ SQW/OUT โดยมรายละเอยดดงน OUT (Out Control): ใชควบคมเอาตพต SQWE (Square Wave Enable): ใชควบคมออสซลเลเตอรภานใน DS1307 โดยถาบตนเปน 1 จะเปนการเปดออสซลเลเตอร RS (Rate Select): ใชควบคมความถของ Square Wave เมอเปดการทกงานของออสซลเลเตอร โดยสามารถปรบเปลยนความถได 4 ความถดวยกนดงแสดงในตารางท 2.8

ตารางท 2.8 การควบคมความถออสซลเลเตอรดวยการเซตบต RS1, RS0

RS1 RS0 SQW OUTPUT FREQUENCY

0 0 1 Hz

Page 15: P1.6 P1.5 P0.5 / AD5 P0.4 / AD4 C A0 - A7 P1.7 P1.4 P0.6 ... · PDF fileบทที่ 2 ทฤษฎีที่เกี่ยวข้อง 2.1 ไมโครคอนโทรลเลอร์

17

0 1 4.096 kHz

1 0 8.192 kHz

1 1 32.768 kHz

2.3 รเลย (Relay)

เปนอปกรณทเปลยนพลงงานไฟฟาใหเปนพลงงานแมเหลก เพอใชในการดงดดหนาสมผสของคอนแทคใหเปลยนสภาวะ โดยการปอนกระแสไฟฟาใหกบขดลวด เพอท าการปดหรอเปดหนาสมผสคลายกบสวตชอเลกทรอนกส ซงเราสามารถน ารเลยไปประยกตใช ในการควบคมวงจรตาง ๆ ในงานชางอเลกทรอนกสมากมาย

รปท 2.7 รปรางและสญลกษณของรเลย

2.3.1 หลกการท างานเบองตน จากรปท 2.8 การท างานเรมจากปดสวตช เพอปอนกระแสใหกบขดลวด (Coil) โดยทวไป

จะเปนของขดลวดพนรอบแกนเหลก ท าใหเกดสนามแมเหลกไปดดเหลกออนทเรยกวาอารเมเจอร (Armature) ใหต าลงมา ทปลายของอารเมเจอรดานหนงมกยดตดกบสปรง (Spring) และปลายอกดานหนงยดตดกบหนาสมผส (Contacts) การเคลอนทอารเมเจอร จงเปนการควบคมการเคลอนทของหนาสมผส ใหแยกจากหรอแตะกบหนาสมผสอกอนหนงซงยดตดอยกบท เมอเปดสวตชอารเมเจอร กจะกลบสต าแหนงเดม เราสามารถน าหลกการนไปควบคมโหลด (Load) หรอวงจรอเลกทรอนกสตาง ๆ ไดตามตองการ

Page 16: P1.6 P1.5 P0.5 / AD5 P0.4 / AD4 C A0 - A7 P1.7 P1.4 P0.6 ... · PDF fileบทที่ 2 ทฤษฎีที่เกี่ยวข้อง 2.1 ไมโครคอนโทรลเลอร์

18

รปท 2.8 หลกการท างานเบองตนของรเลย

2.3.2 หนาสมผสของรเลย

จากรปท 2.8 แสดงรเลยทมหนาสมผสเพยงชดเดยว ปจจบนรเลยทมขดลวดชดเดยวสามารถควบคมหนาสมผสไดหลายชดดงรปท 2.9 อารเมเจอรอนเดยวถกยดอยกบหนาสมผสทเคลอนทได 4 ชด ดงนนรเลยตวนจงสามารถควบคมการแตะหรอจากกนของหนาสมผสไดถง 4 ชด

รปท 2.9 โครงสรางและสญลกษณของหนาสมผสแบบ 4PST

แตละหนาสมผสทเคลอนทไดมชอเรยกวาขว (Pole) รเลยในรปท 2.9 ม 4 ขว จงเรยกหนาสมผสแบบนวาเปนแบบ 4PST (Four Pole Single Throw) ถาแตละขวทเคลอนทแลวแยกจากหนาสมผสอนหนงไปแตะกบหนาสมผสอกอนหนงเหมอนกบสวตชโยก โดยเปนการเลอกหนาสมผส ทขนาบอยท งสองดานดงรปท 2.10 หนาสมผสแบบนมชอวา SPDT (Single Pole Double Throw)

Page 17: P1.6 P1.5 P0.5 / AD5 P0.4 / AD4 C A0 - A7 P1.7 P1.4 P0.6 ... · PDF fileบทที่ 2 ทฤษฎีที่เกี่ยวข้อง 2.1 ไมโครคอนโทรลเลอร์

19

รปท 2.10 หนาสมผสแบบ SPDT

ในกรณทไมมการปอนกระแสไฟฟาเขาขดลวดของรเลย สภาวะ NO (Normally Open) คอสภาวะปกตหนาสมผสกบขวแยกจากกน ถาตองการใหสมผสกนจะตองปอนกระแสไฟฟาเขาขดลวด สวนสภาวะ NC (Normally Closed) คอสภาวะปกตหนาสมผสกบขวสมผสกน ถาตองการใหแยกกนจะตองปอนกระแสไฟฟาเขาขดลวด นอกจากนยงมแบบแยกกอนแลวสมผส (Break-Make) หมายถงหนาสมผสระหวาง 1 และ 2 จะแยกจากกนกอนทหนาสมผส 1 และ 3 จะสมผสกน แตถาหากตรงขามกนคอ หนาสมผส 1 และ 2 จะสมผสกน และจะไมแยกจากกน จนกวาหนาสมผส 1 และ 3 จะสมผสกน (Make-Break)

Break-Make Make-Break

รปท 2.11 หนาสมผสแบบ SPDT แบบ Break-Make และ Make-Break

Page 18: P1.6 P1.5 P0.5 / AD5 P0.4 / AD4 C A0 - A7 P1.7 P1.4 P0.6 ... · PDF fileบทที่ 2 ทฤษฎีที่เกี่ยวข้อง 2.1 ไมโครคอนโทรลเลอร์

20

2.3.3 การเลอกซอรเลย

การเลอกซอรเลยมหลกทควรพจารณาในการเลอกซอ โดยใหระบความตองการเปน ขอ ๆ วารเลยทก าลงจะซอสามารถทจะสนองความตองการ 9 ขอดงน

1. กระแสไฟฟาทใชปอนใหกบขดลวดเปนไฟตรงหรอไฟสลบ 2. แรงเคลอนและความถของไฟฟาทจะใชกบขดลวดของรเลย 3. ความตานทานของขดลวดมคาเทาใด 4. อณหภมสงสดเทาใด 5. หนาสมผสตองใชกบแรงเคลอนและกระแสเทาใด 6. หนาสมผสเปนแบบใด 7. แหลงจายไฟฟาทใชมชวงแรงดนเปลยนแปลงไปมากนอยเพยงใด 8. ตองการเวลาสมผสและจากของหนาสมผสเรวหรอชาเพยงใด 9. ลกษณะรปรางภายนอกเปนอยางไร และจะตดตงเขากบวงจรอยางไร