basic of microcontroller

15
1 Microprocessor Microprocessor by pisit wisutmetheekorn [email protected] Microprocessor Microprocessor Microprocessor by pisit wisutmetheekorn [email protected] 2 Course Outline 1. ความรูพื้นฐานเกี่ยวกับไมโครโปรเซสเซอร -ไมโครคอนโทรลเลอร 2. สถาปตยกรรมไมโครคอนโทรลเลอรตระกูล MCS MCS- 51 51 3. การเขียนโปรแกรมภาษาแอสเซมบลี้และกลุมคําสั่งของ MCS MCS- 51 51 4. การอินเตอรรัพท 5. การเขียนโปรแกรมควบคุมระบบดวยภาษาซี 6. 6. การใชงาน Peripheral ของ MCS MCS- 51 51 7. การเชื่อมตอไมโครคอนโทรลเลอรกับอุปกรณภายนอก 8. ตัวอยางการออกแบบระบบที่ควบคุมดวยไมโครคอนโทรลเลอร

Upload: pisit-wisutmetheekorn

Post on 24-Dec-2014

188 views

Category:

Documents


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Basic of Microcontroller

1

Microprocessor Microprocessor by pisit wisutmetheekorn [email protected]

Microprocessor

Microprocessor Microprocessor by pisit wisutmetheekorn [email protected] 2

Course Outline1. ความรูพื้นฐานเกี่ยวกบัไมโครโปรเซสเซอร-ไมโครคอนโทรลเลอร2. สถาปตยกรรมไมโครคอนโทรลเลอรตระกูลMCSMCS--51513. การเขียนโปรแกรมภาษาแอสเซมบลี้และกลุมคําสั่งของ MCSMCS--51514. การอินเตอรรัพท5. การเขียนโปรแกรมควบคุมระบบดวยภาษาซี6. 6. การใชงาน Peripheral ของ MCSMCS--51517. การเชื่อมตอไมโครคอนโทรลเลอรกับอุปกรณภายนอก8. ตัวอยางการออกแบบระบบที่ควบคุมดวยไมโครคอนโทรลเลอร

Page 2: Basic of Microcontroller

2

Microprocessor Microprocessor by pisit wisutmetheekorn [email protected] 3

Books & References1. ไมโครคอนโทรเลอร MCS-51

(ร.ศ. อุดม จีนประดับ)2. The 8051 Microcontroller Architecture Programming and

Applications (Kenneth J. Ayala)3. The 8051 Microcontroller & Embedded Systems(Muhammad Ali Mazidi, Prentice Hall)4. Design with Microcontrollers (John B. Peatman)

Microprocessor Microprocessor by pisit wisutmetheekorn [email protected] 4

Introduction to Microprocessor/Microcontroller

เดิมทีเดียวไมโครโปรเซสเซอรตัวแรกเกิดจากความตองการของรัฐบาลสหรัฐซึ่งก็ไดใหทางภาคอุตสาหกรรมไดทําการออกแบบชิปตัวแรกขึ้นแตผลที่ไดในตอนนั้นก็ไมประสบความสําเร็จเลยแตอยางไรก็ตามสิ่งที่ไดตามมาก็คือองคความรูใหมที่เปนพื้นฐานของไมโครโปรเซสเซอรทุกวันนี้ และจุดเริ่มตนก็มาอยูตรงที่พนักงานของบริษัท Bell Telephone 2 คนคือ Robert Noyce และ Gordon Moore ไดออกมาเปดบริษัทที่ช่ือวา Integrate Electronicsหรือเปนที่รูจักกันในนาม INTEL INTEL ในปพ.ศ.2511 และใน 2 ปถัดมาบริษัทก็ไดรับการสนับสนุน จากองคการ NASA ในการออกแบบอุปกรณอิเล็กทรอนิกสใหเล็กลงตอนนั้นก็เริ่มจากการออกแบบเครื่องคํานวณ และในเวลานั้นก็ไดมีการออกแบบไมโครโปรเซสเซอรขนาด 4 บิตเบอร 4004

Page 3: Basic of Microcontroller

3

Microprocessor Microprocessor by pisit wisutmetheekorn [email protected] 5

CH1: Introduction to Microprocessor/Microcontroller

แตอยางไรก็ตามไมโครโปรเซสเซอร 4004 ก็ยังมีความสามารถไมมากนักจึงไดพัฒนามาเปนไมโครโปรเซสเซอร 8008 ซึ่งเปนแบบ 8 บิตและหลังจากนั้น 1 ปก็ไดผลิตไมโครโปรเซสเ.ซอร 8080 ออกสูทองตลาดหลังจากสรางตนแบบมาหลายปอยางไรก็ตามในชวงเดียวกันนี้ก็มีไมโครโปรเซสเซอรจากบริษัทอื่นๆเกิดขึ้นอยางเชน Motorola ก็ไดออกไมโครโปรเซสเซอรเบอร 6800 และหลังจากนี้ INTEL ก็พัฒนาไมโครโปรเซสเซอรเบอรอื่นๆตามมา เชน 8085 , 8748และไมโครโปรเซสเซอร 8748 ซึ่งอยูในตระกูล MCS-48 ถือวาเปนไมโครคอนโทรลเลอรในรุนแรกๆโดย 8748 จะประกอบดวยหนวยความจําแบบ EPROMขนาด 1 KB มี RAM ภายใน 64Bytes มีขาอินพุต/เอาตพุต 27 ขาและ Timer ขนาด8 บิต 1 ตัว และหลังจากนั้นก็ไดผลิตเบอรอื่นๆในตระกูลนี้ออกมาหลายรุนดวยกันซึ่งทําใหขนาดของวงจรทั้งหมดเล็กลงกวาการออกแบบดวยไมโครโปรเซสเซอร

Microprocessor Microprocessor by pisit wisutmetheekorn [email protected] 6

ตนแบบเครื่องคํานวณที่ควบคุมดวยไมโครโปรเซสเซอร 4004

Federico Faggin ผูออกแบบ 4004 และเปนผูกอต้ังบริษัท Zilog

CH1: Introduction to Microprocessor/Microcontroller

รูปที่1-1 ผูที่เกี่ยวของกับประวัติของไมโครโปรเซสเซอร

Page 4: Basic of Microcontroller

4

Microprocessor Microprocessor by pisit wisutmetheekorn [email protected] 7

CH1: Introduction to Microprocessor/Microcontroller

และหลังจากนั้นไมโครคอนโทรเลอรก็มีการพัฒนาอยางตอเนื่องจนกระทั่งป 2523บริษัทอินเทลก็ไดนําไมโครคอนโทรลเลอรตระกูล MCS-51 ออกสูทองตลาดซึ่งมีความสามารถมากกวาตระกูล MCS-48 และในตระกูล MCS-51 นี่เองก็ไดมีหลายบริษัทที่ไดนําเอาฐานของไมโครคอนโทรลเลอรตระกูลนี้ไปออกแบบเพิ่มอุปกรณบริการตางๆบนชิปเขาไปใหเหมาะสมกับการทํางานประเภทตางๆ เชนการเพิ่ม A/Dการเพิ่มจํานวนขาเพื่อเพิ่มจํานวนพอรต เปนตน

รูปที่1-2 รูปรางของ 8748

Microprocessor Microprocessor by pisit wisutmetheekorn [email protected] 8

CH1: Introduction to Microprocessor/Microcontroller

ระบบคอมพิวเตอรเบื้องตนระบบคอมพิวเตอรเบื้องตน

รูปที่1-3โครงสรางระบบคอมพิวเตอร

CPUCPU

I/OI/O

Address BusAddress Bus

Data BusData BusControl BusControl Bus

ROMROM RAMRAM

Page 5: Basic of Microcontroller

5

Microprocessor Microprocessor by pisit wisutmetheekorn [email protected] 9

CH1: Introduction to Microprocessor/Microcontroller

จากรูปที่1-3 เปนองคประกอบโดยทั่วไปของระบบคอมพิวเตอรโดยจากรูปแสดงใหเห็นโครงสรางทางฮารดแวรแตสําหรับสวนที่เปนซอฟตแวรซึ่งทําหนาที่ควบคุมการทํางานของระบบทั้งหมดจะถูกเก็บใน ROM โดยคําสั่งใน ROMจะถูกนําไปประมวลผลโดย CPU โดยคําสั่งใน ROM จะถูกสงผานบัสขอมูลไปยัง CPU สําหรับบัสในระบบคอมพิวเตอรโดยทั่วไปแลวก็แบงออกเปน 3 ชนิดคือ1. Data Bus : ทางผานขอมูลระหวาง CPU และ I/O หรือ หนวยความจํา2. Address Bus : แอดเดรสกําหนดตําแหนงของหนวยความจําหรือ I/O3. Control Bus : สัญญาณควบคุมจาก CPU เพื่อควบคุมการติดตอกับอุปกรณ

ตางๆบนบัสไมวาจะเปน RAM / ROM หรือ I/Oและเพื่อใหเขาใจระบบมากขึ้นก็จะตองทําความเขาใจในการทํางานของ CPU ดวย

Microprocessor Microprocessor by pisit wisutmetheekorn [email protected] 10

CH1: Introduction to Microprocessor/Microcontroller

Instruction Register

Instruction Decoderand Control Unit

ALU

Program Counter

Accumulator

Stack PointerClock

Register

รูปที่1-4 โครงสรางอยางงายของ CPU

Page 6: Basic of Microcontroller

6

Microprocessor Microprocessor by pisit wisutmetheekorn [email protected] 11

CH1: Introduction to Microprocessor/Microcontroller

การทํางานของการทํางานของ CPU CPU (Central Processing Unit)(Central Processing Unit)ผังของตัวประมวลผลดังแสดงในรูปที่1-4 จะประกอบดวยสวนตางๆดังนี้1. Register : ใชในการเก็บขอมูลช่ัวคราว(ไฟเลี้ยงหายขอมูลก็หาย)

2. ALU (Arithmetic and Logic Unit) :เปนสวนคํานวณคณิตศาสตรและลอจิก

3. รีจิสเตอรคําสั่ง (Instruction Register): เปนรีจิสเตอรเก็บรหัสคําสั่ง

4. สวนถอดรหัสคําสั่งและหนวยควบคุม(Instruction decoder and Control Unit)ทําหนาที่แปลคําสั่งและสรางสัญญาณไปควบคุมการทํางานสวนตางๆใหไดผล ตามคําสั่ง

Microprocessor Microprocessor by pisit wisutmetheekorn [email protected] 12

5. Program Counter (PC) ทําหนาที่เก็บตําแหนงของคําสั่งถัดไปที่จะถูกกระทํา6. Accumulator เปนสวนของหนวยความจําใชในการคํานวณทางคณิตศาสตร7. Stack Pointer (SP) เปนรีจิสเตอรเก็บตําแหนงของหนวยความจําซึ่งจะถูกใชงานอยางอัตโนมัติเมื่อเกิดการเรียกใชโปรแกรมยอยคาของ Program Counter จะถูกเก็บลงบนพื้นที่ของ Stack และ SP ก็จะเก็บตําแหนงที่เก็บคา PC เมื่อครูนี้ ซึ่งจะกล าวถึ ง เรื่ อ ง S t ac k อีกครั้ ง ในตอนที่ กล าวถึ งรี จิ ส เตอรต า งๆของไมโครคอนโทรลเลอรที่เราจะศึกษากันตอไป8. Clock สวนสรางสัญญาณนาฬิกาซึ่งเปนการใหจังหวะในการทํางานของสวนตางๆภายใน CPU

CH1: Introduction to Microprocessor/Microcontroller

Page 7: Basic of Microcontroller

7

Microprocessor Microprocessor by pisit wisutmetheekorn [email protected] 13

CH1: Introduction to Microprocessor/Microcontroller

สําหรับการทํางานของ CPU นั้นอาจแบงออกเปนขั้นตอนคือ1.การ Fetch คําสั่ง (Fetch Instruction)เปนขั้นตอนที่หนวยควบคุม (Control Unit) อานคําสั่งจากหนวยความจําแลวทําการถอดรหัสคําสั่งนั้น โดยการทํางานเริ่มจาก-ตําแหนงคําสั่งที่เก็บใน Program Counterรีจิสเตอรจะถูกสงมาที่ Address Bus-สัญญาณควบคุมการอาน(Read) จะทํางานเพื่อทําใหเกิดการอานขอมูลในหนวยความจํา-คําสั่งที่เปนขอมูลจากหนวยความจําถูกสงมาบน Data Bus-คําสั่งที่ถูกสงมาบน Data bus จะถูกเก็บไวในรีจิสเตอรคําสั่ง (IR) ของ CPU-และคาตําแหนงใน Program Counter รีจิเสอตรก็จะถูกเพิ่มขึ้นเพื่อทําการ Fetch คําสั่งถัดไป2.การกระทําตามคําสั่ง (Execute Instruction) เปนขั้นตอนตั้งแต CPU กระทําตามคําสั่งที่ Fetch มาจนแลวเสร็จคําสั่งนั้นๆซึ่งในขั้นตอนนี้อาจจะมีขั้นตอนอื่นๆรวมอยูเพราะขึ้นกับวาคําสั่งนั้นใหทําอะไรบาง

Microprocessor Microprocessor by pisit wisutmetheekorn [email protected] 14

CH1: Introduction to Microprocessor/Microcontroller

ดังนั้นอาจเขียนขั้นตอนการทํางานของ CPU ดังรูปตอไปน้ี

Fetch

Execute

Fetch

1 รอบคําสั่ง(Machine Cycle)

คําสั่งถัดไป

รูปที่1-5 ขั้นตอนการทํางานของ CPU

Page 8: Basic of Microcontroller

8

Microprocessor Microprocessor by pisit wisutmetheekorn [email protected] 15

CH1: Introduction to Microprocessor/Microcontroller

อยางที่กลาวมาแลววาไมโครคอนโทรลเลอรนั้นถูกออกแบบมาสําหรับงานดานควบคุมโดยเฉพาะไมวาจะอยูในเครื่องใชตางๆ,ระบบควบคุมในรถยนตสวนประกอบของคอมพิวเตอรเชนมีใน Hard disk โมเด็ม เมาส คียบอรดดังนั้นก็ตองการใหอุปกรณอื่นๆที่มีอยูภายนอกมีนอยที่สุดดังนั้นโครงสรางของไมโครคอนโทรลเลอรก็จะเปนการรวมเอา Peripheral ตางๆมาอยูบนไมโครคอนโทรลเลอรและนอกจาก นั้นยังมีสวนที่จัดการเกี่ยวกับอินเตอรรัพทอยูบนไมโครคอนโทรลเลอรอีกดวยดังแสดงในรูปที่1-6 ซึ่งในรูปเปนเพียงตัวอยางเทานั้นเพราะไมโครคอนโทรลเลอรแตละตัวก็จะมีอุปกรณตางๆบนชิปที่แตกตางกันไปตามวัตถุประสงคของการออกแบบ

Microprocessor Microprocessor by pisit wisutmetheekorn [email protected] 16

CH1: Introduction to Microprocessor/Microcontroller

CPUCPU

Timer InterruptControl

SerialPort

Internal Bus

RAM ROM ParallelPort

รูปที่1-6 ตัวอยางโครงสรางของไมโครคอนโทรเลอร

Page 9: Basic of Microcontroller

9

Microprocessor Microprocessor by pisit wisutmetheekorn [email protected] 17

CH1: Introduction to Microprocessor/Microcontroller

ตัวอยางการใชงานไมโครคอนโทรลเลอร

รูปที่1-7 ไมโครคอนโทรลเลอรในมิเตอรวัดการใชพลังงานไฟฟา

Microprocessor Microprocessor by pisit wisutmetheekorn [email protected] 18

รูปที่1-8 มิเตอรวัดกําลังไฟฟาที่ควบคุมดวยไมโครคอนโทรลเลอร

CH1: Introduction to Microprocessor/Microcontroller

Page 10: Basic of Microcontroller

10

Microprocessor Microprocessor by pisit wisutmetheekorn [email protected] 19

รูปที่1-9 ไมโครคอนโทรลเลอรกับการเก็บขอมูลการใชไฟฟาในหางสรรพสินคา

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

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

CH1: Introduction to Microprocessor/Microcontroller

Microprocessor Microprocessor by pisit wisutmetheekorn [email protected] 20

รูปที่1-10 รูปรางของบอรดควบคุมสําหรับการนับการใชไฟฟา

89C51RD289C51RD2

CH1: Introduction to Microprocessor/Microcontroller

Page 11: Basic of Microcontroller

11

Microprocessor Microprocessor by pisit wisutmetheekorn [email protected] 21

รูปที่1-11 ตนแบบ 3 เฟส Power meter ที่ควบคุมดวย 89C51RD2

CH1: Introduction to Microprocessor/Microcontroller

Microprocessor Microprocessor by pisit wisutmetheekorn [email protected] 22

รูปที่1-12 ตัวอยางการใชไมโครคอนโทรเลอรในงานควบคุมอุณหภูมิ

CH1: Introduction to Microprocessor/Microcontroller

Page 12: Basic of Microcontroller

12

Microprocessor Microprocessor by pisit wisutmetheekorn [email protected] 23

รูปที่1-13 ไดอะแกรมของบอรดไมโครคอนโทรเลอรในรูปที่1-12

CH1: Introduction to Microprocessor/Microcontroller

Microprocessor Microprocessor by pisit wisutmetheekorn [email protected] 24

รูปที่1-14 ตนแบบของบอรดไมโครคอนโทรเลอรในรูปที่1-13

CH1: Introduction to Microprocessor/Microcontroller

Page 13: Basic of Microcontroller

13

Microprocessor Microprocessor by pisit wisutmetheekorn [email protected] 25

Basic Digital Circuit

Inverter : 74LS04

CH1: Introduction to Microprocessor/Microcontroller

Microprocessor Microprocessor by pisit wisutmetheekorn [email protected] 26

CH1: Introduction to Microprocessor/Microcontroller

ในการใช Gate ขับอุปกรณภายนอกตองคํานึงถึงความสามารถในการจายกระแส

Page 14: Basic of Microcontroller

14

Microprocessor Microprocessor by pisit wisutmetheekorn [email protected] 27

AND gate : 74LS08

CH1: Introduction to Microprocessor/Microcontroller

Microprocessor Microprocessor by pisit wisutmetheekorn [email protected] 28

ดิจิตอลเกตในแบบที่เอาตพุตเปน Open Collector จะเหมาะสมกับการเชื่อมตอระหวางวงจรที่แรงดันไมเทากันเชนจาด TTL ไปขับวงจรขับรีเลยเปนตน

Page 15: Basic of Microcontroller

15

Microprocessor Microprocessor by pisit wisutmetheekorn [email protected] 29

วงจรสมมูลแบบ Open Collector และคุณสมบัติ 74LS07

Microprocessor Microprocessor by pisit wisutmetheekorn [email protected] 30

Decoder Circuit with 74LS138

CH1: Introduction to Microprocessor/Microcontroller

Decoder จะใชสําหรับในการ Decode สัญญาณแอดเดรสเพื่ออางหนวยความจํา