basic of microcontroller
DESCRIPTION
TRANSCRIPT
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. ตัวอยางการออกแบบระบบที่ควบคุมดวยไมโครคอนโทรลเลอร
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
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 ผูที่เกี่ยวของกับประวัติของไมโครโปรเซสเซอร
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
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
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
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
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 ตัวอยางโครงสรางของไมโครคอนโทรเลอร
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
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
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
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
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 ขับอุปกรณภายนอกตองคํานึงถึงความสามารถในการจายกระแส
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 ไปขับวงจรขับรีเลยเปนตน
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 สัญญาณแอดเดรสเพื่ออางหนวยความจํา