1. · 2016. 8. 16. · pic18f4550 รูปที่ 1.9 โครงสร...
TRANSCRIPT
1
2
1. ไมโครคอนโทรลเลอร
2. ภาษาสาหรบไมโครคอนโทรลเลอร
3. โครงสรางของไมโครคอนโทรลเลอร PIC18F4550
4. การจดหนวยความจาของไมโครคอนโทรลเลอรเบอร PIC18F4550
5. รจสเตอร (Register) ของไมโครคอนโทรลเลอรเบอร PIC18F4550
1. แสดงความรเกยวกบโครงสรางและสวนประกอบของไมโครคอนโทรลเลอร
1. อธบายโครงสรางและสวนประกอบของไมโครคอนโทรลเลอรไดถกตอง
2. อธบายหนาทสวนตาง ๆ ของไมโครคอนโทรลเลอรได
3. ระบชนดการบรรจภณฑของไมโครคอนโทรลเลอรได
4. แยกประเภทของของไมโครคอนโทรลเลอรได
5. บอกชอบรษทผผลตไอซไมโครคอนโทรลเลอรแตละตระกลได
6. อธบายภาษาทใชกบไมโครคอนโทรลเลอรได
7. อธบายคณลกษณะของไมโครคอนโทรลเลอรเบอร PIC18F4550 ได
8. บอกความหมายของตวอกษรทระบไวทตาแหนงขาของไมโครคอนโทรลเลอร
9. อธบายการจดหนวยความจาของไมโครคอนโทรลเลอรเบอร PIC18F4550 ได
10. อธบายความหมายของรจสเตอรในไมโครคอนโทรลเลอรเบอร PIC18F4550 ได
3
ปจจบนไมโครคอนโทรลเลอรถกนามาใชอยางกวางขวางในงานดานอเลกทรอนกส เพราะสามารถใช
งานไดงาย สะดวก มขนาดเลก ราคาถก และทสาคญสามารถสงงานใหทางานตามเงอนไขใหมตามผใช
ตองการได โดยไมจาเปนตองเปลยนวงจรภายนอก มบรษทผผลตไอซไมโครคอนโทรลเลอรออกมาหลาย
ตระกล เชน Z80, PIC, MCS51, AVR, ARM7,ARM9, 68HC แตละตระกลมคณสมบตขอเดนขอดอย
แตกตางกนออกไป
1.1.1 ความหมายของไมโครคอนโทรลเลอร
ไมโครคอนโทรลเลอร (Microcontroller) มาจากคาวาไมโคร (Micro) หมายถงขนาดเลก และ
คาวาคอนโทรลเลอร (Controller) หมายถงตวควบคมหรออปกรณควบคม ดงนนไมโครคอนโทรลเลอร จง
หมายถงอปกรณควบคมขนาดเลกทสามารถควบคมอปกรณภายนอกได แตในตวอปกรณควบคมขนาดเลก
นไดบรรจความสามารถทคลายคลงกบระบบคอมพวเตอร กลาวคอไมโครคอนโทรลเลอรไดรวมเอาซพย
(CPU) หนวยความจา (Memory) อนพตเอาตพตพอรต (I/O Port) รจสเตอร (Register) วงจรผลตสญญาณ
(Oscillator) และวงจรอเลกทรอนกส เชน วงจรแปลงจากสญญาณแอนะลอกเปนดจทลวงจรสรางสญญาณ
PWM (มเฉพาะบางเบอร) ไมโครคอนโทรลเลอรจงสามารถนาไปประยกตใชงานควบคมตาง ๆ ไดด 1.1.2 โครงสรางภายในของไมโครคอนโทรลเลอร
ไมโครคอนโทรลเลอรแตละเบอรแตละตระกลนนมโครงสรางภายในแตกตางกนขนอยกบ
บรษทผผลตและจดประสงคของการสรางไมโครคอนโทรลเลอรเบอรนน ๆ พนฐานของโครงสรางภายในของ
ไมโครคอนโทรลเลอรจะประกอบดวยสวนประกอบดงรปท 1.1
รปท 1.1 โครงสรางของไมโครคอนโทรลเลอร
4
1.1.3 โครงสรางภายนอกของไมโครคอนโทรลเลอร ในปจจบนผผลตไอซไมโครคอนโทรลเลอรไดสรางโครงสรางขาเพอตอใชงานหลายลกษณะ
เชน โครงสรางแบบ SOIC, PDIP, PLCC และ TQFP
1. โครงสรางแบบ SOIC (SOIC : Small Outline Integrated Circuit)
รปท 1.2 โครงสรางไอซแบบ SOIC
2. โครงสรางแบบ PDIP (PDIP : Plastic Dual In-line Package)
รปท 1.3 โครงสรางไอซแบบ PDIP
3. โครงสรางแบบ PLCC (PLCC : Plastic Leaded Chip Carrier)
รปท 1.4 โครงสรางไอซแบบ PLCC
4. โครงสรางแบบ TQFP (TQFP : Thin Quad Flat Pack Packages)
5
รปท 1.5 โครงสรางไอซแบบ TQFP
การจดตาแหนงขาแบบ PDIP ของไอซเบอร PIC18F4455 และ PIC18F4550
รปท 1.6 โครงสรางไอซแบบ PDIP ของไอซเบอร PIC18F4455 และ PIC18F4550
การจดตาแหนงขาแบบ TQFP ของไอซเบอร PIC18F4455 และ PIC18F4550
รปท 1.7 โครงสรางไอซแบบ TQFP ของไอซเบอร PIC18F4455 และ PIC18F4550
6
1.1.4 ประเภทของไมโครคอนโทรลเลอร ไมโครคอนโทรลเลอร เมอประเภทแบงตามสถาปตยกรรมการประมวลผลแบงไดเปน
1) ไมโครคอนโทรลเลอร 8 บต
2) ไมโครคอนโทรลเลอร 12 บต
3) ไมโครคอนโทรลเลอร 14 บต
4) ไมโครคอนโทรลเลอร 16 บต
5) ไมโครคอนโทรลเลอร 32 บต
ถาหากแบงตามสถาปตยกรรมของบรษทผผลต การผลตและกระบวนการทางานระบบการ
ประมวลผล แบงไดเปน
1) ไมโครคอนโทรลเลอรตระกล Z80 (บรษทผผลต Zilog)
2) ไมโครคอนโทรลเลอรตระกล PIC (บรษทผผลต Microchip)
3) ไมโครคอนโทรลเลอรตระกล MCS51 (บรษทผผลต Atmel, Phillips)
4) ไมโครคอนโทรลเลอรตระกล AVR (บรษทผผลต Atmel)
5) ไมโครคอนโทรลเลอรตระกล ARM7,ARM9 (บรษทผผลต Atmel, Phillips Analog
Device, Sumsung, ST Microelectronics)
6) ไมโครคอนโทรลเลอรตระกล Basic Stamp (บรษทผผลต Parallax)
7) ไมโครคอนโทรลเลอรตระกล PSOC (บรษทผผลต Cypress)
8) ไมโครคอนโทรลเลอรตระกล MSP (บรษทผผลต Texas Instruments)
9) ไมโครคอนโทรลเลอรตระกล 68HC (บรษทผผลต Motorola)
10) ไมโครคอนโทรลเลอรตระกล H8 (บรษทผผลต Renesas)
11) ไมโครคอนโทรลเลอรตระกล RABBIT (บรษทผผลต Rabbit Semiconductor)
7
คาสงทไมโครคอนโทรลเลอรทางานนนเปนคาสงภาษาเครอง ซงเปนคาสงทอยในรปของรหส
เลขฐานสบหก (Hexadecimal Code) หรอไฟลนามสกลดอตเฮกซ (.hex) ถาเขยนคาสงดวยภาษาอน ๆ
ตองแปลงใหเปนภาษาเครองกอนนาไปดาวนโหลดลงในไมโครคอนโทรลเลอร
ดงไดแกรมในรปท 1.6
ภาษา Assembly
Assembler
ไอซไมโครคอนโทรลเลอร
ภาษา C
C Complier
ไอซไมโครคอนโทรลเลอร
ภาษา BASIC
BASIC Complier
ไอซไมโครคอนโทรลเลอร
ไฟล .Hex ไฟล .Hex ไฟล .Hex
รปท 1.8 ไฟลคาสงทใชงานในไมโครคอนโทรลเลอร
ภาษาสาหรบไมโครคอนโทรลเลอรแบงเปน 3 ระดบ ดงน
1. ภาษาเครอง (Machine Languages)
2. ภาษาระดบตา (Low-level Languages) คอภาษาแอสเซมบล (Assemble Languages)
3. ภาษาระดบสง (High-level Languages) ประกอบดวย
1) ภาษาซ (C Languages)
2) ภาษาซพลสพลส (C++ Languages)
3) ภาษาเบสก (BASIC Languages)
4) ภาษาเบสกสแตมป (BASIC Stamp Languages)
5) ภาษาจาวา (JAVA Languages)
ภาษาตาง ๆ เหลานสามารถนามาเขยนเปนโปรแกรม (Program) หรอ Source Code เพอสงงาน
ไมโครคอนโทรลเลอรไดเหมอนกน มขอดขอเสย ยากงายแตกตางกนออกไป สาหรบในหนงสอเลมนใช
ภาษาเบสก เพราะวาเปนภาษาท ใกล เคยงกบภาษาองกฤษ ทาใหสามารถเขาใจการส งงาน
ไมโครคอนโทรลเลอรไดงายขน
8
ไอซไมโครคอนโทรลเลอรตระกล PIC มโครงสรางภายนอกตงแต 6 ขาขนไปถงหลายรอยขา การ
อธบายการทางานของไมโครคอนโทรลเลอรนน สาหรบหนงสอเลมนใชไอซเบอร PIC18F4550 เปนตวอยาง
สาหรบการควบคม สงงาน และตดตอกบอปกรณอนพตเอาตพตตาง ๆ ถาหากผอานตองการใช
ไมโครคอนโทรลเลอร เบอร อน ๆ สามารถใช ได เชน เดยวกนโดยคาน งถ งความสามารถของ
ไมโครคอนโทรลเลอรตวนน ๆ ดวย โครงสรางไอซไมโครคอนโทรลเลอรเบอร PIC18F4550 โครงสรางแบบ
PDIP มขาใชงานจานวน 40 ขา ดงรปท 1.9
PIC1
8F45
50
รปท 1.9 โครงสรางตาแหนงขาของไมโครคอนโทรลเลอรเบอร PIC18F4550
1.3.1 คณสมบตของไมโครคอนโทรลเลอรเบอร PIC18F4550 1. หนวยความจา
(1) หนวยความจาโปรแกรม (Program Memory) ขนาด 32768 ไบต หรอ 32 Kbyte
(2) หนวยความจาขอมล (Data Memory) ขนาด 2048 ไบต หรอ 2 Kbyte
(3) หนวยความจาขอมลอสแควรพรอม (Data EEPROM Memory) ขนาด 256 ไบต
9
2. ความถของสญญาณนาฬกา สญญาณนาฬกาของไมโครคอนโทรลเลอร เบอร
PIC18F4550 สามารถใชตงแตระดบไฟฟากระแสตรง ( 0 Hz) ถง 48 MHz ทงนขนอยกบแหลงจายไฟฟา
VDD ดวย สญญาณนาฬกานสามารถใช Internal oscillator (ภายในตวไอซ) ตงแตความถ 31 kHz ถง 8
MHz และถาใชวงจรExternal oscillator ใชไดสงสดท 48 MHz
การควบคมวงจรผลตความถของวงจรออสซลเลเตอรของไมโครคอนโทรลเลอรเบอร PIC18F4550
คอนโทรลผานรจสเตอร OSCCON Register และ OSCTUNE Register ซงมโหมดการทางานคอ XT,
XTPLL, HS, HSPLL, EC, ECIO, ECPLL, ECPIO, INTHS, INTXT, INTIO และ INTCKO
รปท 1.10 ไดอะแกรมสญญาณนาฬกาของไมโครคอนโทรลเลอรเบอร PIC18F4550
10
3. แหลงจายไฟฟากระแสตรง ไมโครคอนโทรลเลอรเบอร PIC18F4550 สามารถใชกบ
แรงดนไฟฟากระแสตรงทแรงดนตาสด 2 โวลต ถงแรงดนไฟฟาสงสด 5.5 โวลต คาแรงดนไฟฟาตาสดท
สามารถใชกบไอซเบอรน ดงรปท 1.10
แรงดนไฟฟ
า (V
olts)
4 M
Hz
48 M
Hz
รปท 1.11 แรงดนแหลงจายไฟฟาตาสดของไมโครคอนโทรลเลอรเบอร PIC18F4550
จากรปท 1.11 แสดงคาแรงดนไฟฟากระแสตรงตาสดทจายใหไมโครคอนโทรลเลอรเบอร
PIC18F4550 ทยงสามารถทางานไดปกต จากรปถาหากใชความถของสญญาณนาฬกาตากวา 4 MHz
สามารถใชแหลงจายไฟฟากระแสตรงตาสด 2 โวลต ถาใชความถ 20 MHz แหลงจายไฟฟากระแสตรง
ตาสด 2.8 โวลต ถาใชความถ 48 MHz แหลงจายไฟฟากระแสตรงตาสด 4.3 โวลต ซงปกตจะใชแหลงจาย
ไฟฟากระแสตรง 5.0 โวลต แตสงสดไมเกน 5.5 โวลต
4. ดจทลพอรต เปนพอรตแบบสองทศทาง
(1) พอรต A จานวน 7 บต คอ RA0 - RA6
(2) พอรต B จานวน 8 บต คอ RB0 - RB7
(3) พอรต C จานวน 7 บต คอ RC0 – RC7, RC4 - RC7
(4) พอรต D จานวน 8 บต คอ RD0 – RD7
(5) พอรต E จานวน 4 บต คอ RE0 – RE3
11
5. โมดลแปลงสญญาณ Analog เปน Digital (ความละเอยด 10 บต) จานวน 13 อนพต
6. รบสญญาณอนเทอรรฟต (Interrupt Sources) จานวน 20 แหลง
7. ไทเมอร (Timers) จานวน 4 ตว คอ
(1) Timer 0 ขนาด 16 บต
(2) Timer 1 ขนาด 16 บต
(3) Timer 2 ขนาด 8 บต
(4) Timer 3 ขนาด 16 บต
8. Capture/Compare/PWM Modules จานวน 1 แหลง
9. Enhanced Capture/Compare/PWM Modules จานวน 1 แหลง
10. มวงจร In-Circuit Debug (ICD) ขา RB6 และ RB7
11. วงจรสอสารขอมลแบบอนกรม (Serial Communications)
(1) MSSP
(2) Enhanced USART
12. ม Module สอสารแบบ USB (Universal Serial Bus) จานวน 1 ขา
13. การรเซต (Reset) ไมโครคอนโทรลเลอรเบอร PIC18F4550 มการรเซตดงน
(1) Master Clear ( MCLR )
(2) Power-on Reset (POR)
(3) Programmable Brown-out Reset (BOR)
(4) RESET Instruction
(5) Stack Full Reset
(6) Stack Underflow Reset
(7) Watchdog Timer (WDT) Reset
12
1.3.2 การใชงานพอรต PIC18F4550 รปท 1.9 แสดงโครงสรางนอกของไอซไมโครคอนโทรลเลอรเบอร PIC18F4550 ซงมจานวน
40 Pin แตละขาหรอแตละ Pin มหนาทแตกตางกนไป และภายในขาเดยวกนยงทาหนาทไดหลายลกษณะ
รายละเอยดดงตารางท 1.1
ความหมายของคาทใชไดแก I = Input (อนพต), O = Output (เอาตพต), P = Power
(แหลงจายไฟ), ST = Schmitt Trigger input with CMOS levels (อนพตมวงจรชมตตทรกเกอรอางอง
ระดบ CMOS), TTL = TTL compatible input (อนพตอางองระดบ TTL) และ CMOS = CMOS
compatible input or output (อนพตเอาตพตอางองระดบ CMOS), Analog = แอนะลอก
ตารางท 1.1 การทางานของพอรต PIC18F4550
ขาท ชอขา ชนดของ
ขา ชนดของ
วงจรบฟเฟอร รายละเอยด
1 MCLR/VPP/RE3
MCLR I ST Master Clear (Reset)
VPP P Programming voltage input.
RE3 I ST Digital input.
2 RA0/AN0
RA0 I/O TTL Digital I/O.
AN0 I Analog Analog input 0
3 RA1/AN1
RA1 I/O TTL Digital I/O.
AN1 I Analog Analog input 1
4 RA2/AN2/VREF-/CVREF
RA2 I/O TTL Digital I/O.
AN2 I Analog Analog input 2
VREF- I Analog A/D reference voltage (low) input.
CVREF O Analog Analog comparator reference output.
13
ตารางท 1.1 (ตอ) การทางานของพอรต PIC18F4550
ขาท ชอขา ชนดของ
ขา ชนดของ
วงจรบฟเฟอร รายละเอยด
5 RA3/AN3/VREF+
RA3 I/O TTL Digital I/O.
AN3 I Analog Analog input 3
VREF+ I Analog A/D reference voltage (high) input.
6 RA4/T0CKI/C1OUT/RCV
RA4 I/O ST Digital I/O.
T0CKI/ I ST Timer0 external clock input.
C1OUT O - Comparator 1 output
RCV I TTL External USB transceiver RCV input
7 RA5/AN4/SS/HLVDIN/C2OUT
RA5 I/O TTL Digital I/O.
AN4 I Analog Analog input 4.
SS I TTL SPI™ slave select input.
HLVDIN I Analog High/Low-Voltage Detect input.
C2OUT O - Comparator 2 output.
8 RE0/AN5/CK1SPP
RE0 I/O TTL Digital I/O.
AN5 I Analog Analog input 5.
CK1SPP O - SPP clock 1 output.
9 RE1/AN6/CK2SPP
RE1 I/O TTL Digital I/O.
AN6 I Analog Analog input 6.
CK2SPP O - SPP clock 2 output.
14
ตารางท 1.1 (ตอ) การทางานของพอรต PIC18F4550
ขาท ชอขา ชนดของ
ขา ชนดของ
วงจรบฟเฟอร รายละเอยด
10 RE2/AN7/OESPP
RE2 I/O TTL Digital I/O.
AN7 I Analog Analog input 7.
OESPP O - SPP output enable output.
11 VDD P - Positive supply for logic and I/O pins.
12 VSS P - Ground reference for logic and I/O
pins.
13 OSC1/CLKI
OSC1 I Analog Oscillator crystal input or external
clock source input.
CLKI I Analog External clock source input. Always
associated with pin function OSC1.
14 OSC2/CLKO/RA6
OSC2 O - Oscillator crystal output. Connects to
crystal or resonator in Crystal
Oscillator mode.
CLKO O - In RC mode, OSC2 pin outputs CLKO
which has 1/4 the frequency of OSC1
and denotes the instruction cycle rate.
RA6 I/O TTL General purpose I/O pin.
15 RC0/T1OSO/T13CKI
RC0 I/O ST Digital I/O.
T1OSO O - Timer1 oscillator output.
T13CKI I ST Timer1/Timer3 external clock input.
15
ตารางท 1.1 (ตอ) การทางานของพอรต PIC18F4550
ขาท ชอขา ชนดของ
ขา ชนดของ
วงจรบฟเฟอร รายละเอยด
16 RC1/T1OSI/CCP2/UOE
RC1 I/O Digital I/O.
T1OSI I Timer1 oscillator input.
CCP2 I/O Capture 2 input/Compare 2
output/PWM 2 output.
UOE O External USB transceiver OE output.
17 RC2/CCP1/P1A
RC2 I/O ST Digital I/O.
CCP1 I/O ST Capture 1 input/Compare 1
output/PWM 1 output.
P1A 0 TTL Enhanced CCP1 PWM output,
channel A.
18 USB 0 - Internal USB 3.3V voltage regulator
output.
19 RD0/SPP0
RD0 I/O ST Digital I/O.
SPP0 I/O TTL Streaming Parallel Port data.
20 RD1/SPP1
RD1 I/O ST Digital I/O.
SPP1 I/O TTL Streaming Parallel Port data.
21 RD2/SPP2
RD2 I/O ST Digital I/O.
SPP2 I/O TTL Streaming Parallel Port data.
22 RD3/SPP3
RD3 I/O ST Digital I/O.
SPP3 I/O TTL Streaming Parallel Port data.
16
ตารางท 1.1 (ตอ) การทางานของพอรต PIC18F4550
ขาท ชอขา ชนดของ
ขา ชนดของ
วงจรบฟเฟอร รายละเอยด
23 RC4/D-/VM
RC4 I TTL Digital input.
D- I/O - USB differential minus line (I/O).
VM I TTL External USB transceiver VM input.
24 RC5/D-/VM
RC5 I TTL Digital input.
D+ I/O - USB differential minus line (I/O).
VP I TTL External USB transceiver VP input.
25 RC6/TX/CK
RC6 I/O ST Digital I/O.
TX O - EUSART asynchronous transmit.
CK I/O ST EUSART synchronous clock
(see RX/DT).
26 RC7/RX/DT/SDO
RC7 I/O Digital I/O.
RX I EUSART asynchronous receive.
DT I/O EUSART synchronous data
(see TX/CK).
SDO O SPI™ data out.
27 RD4/SPP4
RD4 I/O ST Digital I/O.
SPP4 I/O TTL Streaming Parallel Port data.
28 RD5/SPP5/P1B
RD5 I/O ST Digital I/O.
SPP5 I/O TTL Streaming Parallel Port data.
P1B O - Enhanced CCP1 PWM output,
channel B.
17
ตารางท 1.1 (ตอ) การทางานของพอรต PIC18F4550
ขาท ชอขา ชนดของ
ขา ชนดของ
วงจรบฟเฟอร รายละเอยด
29 RD6/SPP6/P1C
RD6 I/O ST Digital I/O.
SPP6 I/O TTL Streaming Parallel Port data.
P1C O - Enhanced CCP1 PWM output,
channel C.
30 RD7/SPP7/P1D
RD5 I/O ST Digital I/O.
SPP7 I/O TTL Streaming Parallel Port data.
P1D O - Enhanced CCP1 PWM output,
channel D.
31 VSS P - Ground reference for logic and I/O
pins.
32 VDD P - Positive supply for logic and I/O pins.
33 RB0/AN12/INT0/FLT0/SDI/SDA
RB0 I/O TTL Digital I/O.
AN12 I Analog Analog input 12.
INT0 I ST External interrupt 0.
FLT0 I ST Enhanced PWM Fault input (ECCP1 module).
SDI I ST SPI™ data in.
SDA I/O ST I2C™ data I/O.
34 RB1/AN10/INT1/SCK/SCL
RB1 I/O TTL Digital I/O.
AN10 I Analog Analog input 10.
INT1 I ST External interrupt 1.
SCK I/O ST Synchronous serial clock I/O for SPI .
SCL I/O ST Synchronous serial clock I/O for I2C .
18
ตารางท 1.1 (ตอ) การทางานของพอรต PIC18F4550
ขาท ชอขา ชนดของ
ขา ชนดของ
วงจรบฟเฟอร รายละเอยด
35 RB2/AN8/INT2/VMO
RB2 I/O TTL Digital I/O.
AN8 I Analog Analog input 8.
INT2 I ST External interrupt 2.
VMO O - External USB transceiver VMO
output.
36 RB3/AN9/CCP2/VPO
RB3 I/O TTL Digital I/O.
AN9 I Analog Analog input 9.
CCP2(1) I/O ST Capture 2 input/Compare 2
output/PWM 2 output.
VPO O - External USB transceiver VPO output.
37 RB4/AN11/KBI0/CSSPP
RB4 I/O TTL Digital I/O.
AN11 I Analog Analog input 11.
KBI0 I TTL Interrupt-on-change pin.
CSSPP O - SPP chip select control output.
38 RB5/KBI1/PGM
RB5 I/O TTL Digital I/O.
KBI1 I TTL Interrupt-on-change pin.
PGM I/O ST Low-Voltage ICSP™ Programming
enable pin.
19
ตารางท 1.1 (ตอ) การทางานของพอรต PIC18F4550
ขาท ชอขา ชนดของ
ขา ชนดของ
วงจรบฟเฟอร รายละเอยด
39 RB6/KBI2/PGC
RB6 I/O TTL Digital I/O.
KBI2 I TTL Interrupt-on-change pin.
PGC I/O ST In-Circuit Debugger and ICSP
programming clock pin.
40 RB7/KBI3/PGD
RB7 I/O TTL Digital I/O.
KBI3 I TTL Interrupt-on-change pin.
PGD I/O ST In-Circuit Debugger and ICSP
programming data pin
20
1.4.1 หนวยความจาโปรแกรม (Program Memory)
Reset Vector
On - Chip
High Priority Interrupt Vector
Low Priority Interrupt Vector
Read ‘0’
Program Memory
0000h
Stack Level 1
PC<20:0>
Stack Level 31
0018h
7FFFh8000h
0008h
1FFFFFh200000h
User
Mem
ory S
pace
CALL,RCALL,RETURN,RETFIE,RETLW,
CALLW,ADDULNK,SUBULNK
21
รปท 1.12 การจดตาแหนงของ Program Memory ไอซเบอร PIC18F4550
หนวยความจาโปรแกรม (Program Memory) เปนสวนทสาคญ เพราะเปนทเกบคาสงทอยในรปของ
ภาษาเครองเพอสงงานใหไมโครคอนโทรลเลอรทางานตามผเขยนโปรแกรมตองการ หนวยความจา
21
โปรแกรมของไมโครคอนโทรลเลอรเบอร PIC18F4550 เปนแบบแฟลช (Flash Memory) ทาใหสามารถ
เขยนใหมไดนบ 100,000 ครง
จากรปท 1.12 หนวยความจาโปรแกรม (Program Memory) เรมทแอดเดรสท 0000h ถงแอดเดรสท
7FFFh (32768 ไบตหรอ 32 กโลไบต) ซงแอดเดรส 0000h เปน Reset Vector แอดเดรส 0008h เปน High
Priority Interrupt Vector และแอดเดรส 0018h เปน Low Priority Interrupt Vector เรมใชงาน Program
Memory ทแอดเดรส 0019h เปนตนไปจนถง 7FFFFh สวนแอดเดรสท 8000h เปนตนไปไมไดใชงานจะ
อานคาเปน 0 ดงนนการเขยนโปรแกรมจงตองเรมตนทแอดแดรส 0019h แตถาหากผเขยนโปรแกรมไมไดใช
งานอนเตอรรป สามารถละเลยเรอง Interrupt Vector ได
ไอซไมโครคอนโทรลเลอรเบอร PIC18F4550 มหนวยความจาพเศษสาหรบเกบคาของโปรแกรม
เคานเตอร (Program Counter) ขนาด 21 บต ซงมบทบาทมากในการกระโดดไปทางานในโปรแกรมยอย
โดย CPU จะเกบคาโปรแกรมเคานเตอรไวท Stack แลวไปทางานทโปรแกรมยอย เมอทางานแลวเสรจ
CPU จะอานคาโปรแกรมเคานเตอรจาก Stack กลบมาแลวทางานตามคาสงของโปรแกรมหลกตอไป
สาหรบจานวน Stack ของไมโครคอนโทรลเลอรเบอร PIC18F4550 มทงสน 31 ระดบคอ Stack Level 1 ถง
Stack Level 31 1.4.2 หนวยความจาขอมล (Data Memory)
ในอนกรมของไอซ PIC18F หนวยความจาขอมลมแอดเดรสจานวน 12 บต จงสามารถ
ออกแบบไดสงสด 212 = 4096 ไบต แตไมโครคอนโทรลเลอรเบอร PIC18F4550 ไดออกแบบใชงานเพยง
จานวน 256 ไบต คอแอดเดรส 000h ถง 7FFh โดยแบงออกเปนชวง ๆ ละ 16 แอดเดรส แตละชวงเรยกวา
แบงก (Bank) จงไดเปนแบงก 0 ถงแบง 7 แบงกท 8 ถงแบงกท 14 ไมไดใชงานจะอานคาออกมาเปน 0 สวน
แบงกท 15 แอดเดรสท F00h ถง F5F ไมไดใชงาน แตจะใชงานตงแตแอดเดรส F60h ถงแอดเดรส FFFh ใช
งานสาหรบรจสเตอรพเศษ (SFR : Special Function Registers)
22
Access RAM
(1)
GPR
GPR
GPR
GPR
GPR
(1)GPR
(1)GPR
(1)GPR
BSR<3:0>
= 0000
= 0001
= 0010
= 0011
= 0100
= 0101
= 0110
= 0111
Bank 0
Bank 1
Bank 2
Bank 3
Bank 4
Bank 5
Bank 6
Bank 7
Bank 8
Bank 14
Bank 15
00h
FFh00h
FFh00h
FFh00h
FFh00h
FFh00h
FFh00h
FFh00h
FFh
00h
FFh SFR FFFh
000h
0FFh100h
1FFh200h
2FFh300h
3FFh400h
4FFh500h
5FFh600h
6FFh700h
7FFh800h
EFFhF00hF5FhF60h
Unused
Unused
รปท 1.13 การจดตาแหนงของ Data Memory ไอซเบอร PIC18F4550
รจสเตอร (Register) เปนหนวยความจาขนาดเลกทอยภายในซพย ทางานไดเรวมาก ใชเกบขอมลท
จาเปนในการคานวณหรอระบสถานะของการทางานของหนวยประมวลผลกลาง และมกถกอางถงบอย ๆ
ในระหวางการคานวณของหนวยประมวลผล เพอใหโปรแกรมททางานอย สามารถเขาถงขอมลทจาเปน
เหลานไดอยางรวดเรว รจสเตอรของไมโครคอนโทรลเลอร PIC18F4550 มจานวนมาก ดงตารางท 1.2
23
ตารางท 1.2 ชอรจสเตอรของไมโครคอนโทรลเลอรเบอร PIC18F4550
ชอรจสเตอร ชอรจสเตอร ชอรจสเตอร ชอรจสเตอร
ADRESH EECON2 LATB PCL
ADRESL EECON1 LATC PCLATU
ADCON0 FSR0H LATD PCLATH
ADCON1 FSR0L LATE POSTINC0
ADCON2 FSR1H OSCTUNE POSTDEC0
BAUDCON FSR1L OSCCON POSTINC0
BSR FSR2H PIR1 POSTINC1
CCPR1H FSR2L PIE1 POSTDEC1
CCPR1L HLVDCON PIR2 POSTINC2
CCP1CON INDF0 PIE2 POSTDEC2
CCPR2H INDF1 PR2 PORTA
CPR2L INDF2 PREINC1 PORTB
CCP2CON INTCON PREINC2 PORTD
CVRCON INTCON1 PLUSW1 PORTE
CMCON INTCON2 PLUSW2 RCON
ECCP1DEL INTCON3 PREINC0 RCREG
ECCP1AS IPR1 PLUSW0 RCSTA
EEADR IPR2 PRODH STKPTR
EEDATA LATA PRODL STATUS
SSPCON1 T1CON TRISE UEP1
SSPCON2 T2CON TXREG UEP0
SSPCON2 T3CON TXSTA UCFG
SSPBUF TMR0H UEP15 UADDR
SSPADD TMR0L UEP14 UCON
24
ตารางท 1.2 (ตอ) ชอรจสเตอรของไมโครคอนโทรลเลอรเบอร PIC18F4550
ชอรจสเตอร ชอรจสเตอร ชอรจสเตอร ชอรจสเตอร
SSPSTAT TMR1H UEP13 USTAT
SPBRGH TMR1L UEP12 UEIE
SPBRG TMR2 UEP11 UEIR
SPPCON TMR3H UEP10 UIE
SPPEPS TMR3L UEP9 UIR
SPPCFG TOSU UEP8 UFRMH
SPPDATA TOSH UEP7 UFRML
TABLAT TOSL UEP6 WREG
TBLPTRU TRISA UEP5 WDTCON
TBLPTRH TRISB UEP4
TBLPTRL TRISC UEP3
T0CON TRISD UEP2
การตงคาและการใชงานรจสเตอรเหลาน ใหดจากคมอหรอ Data Sheet จากผผลตคอบรษท
Microchip และผเขยนไดอธบายไวในบททเกยวของกบรจสเตอรนน ๆ
ไมโครคอนโทรลเลอรหมายถงอปกรณควบคมขนาดเลกทสามารถควบคมอปกรณภายนอกได
โครงสรางภายในประกอบดวยหนวยประมวลผลกลาง หนวยความจาโปรแกรม หนวยความจาขอมล หนวย
ผลตสญญาณนาฬกา ไทเมอร โมดล ADC โมดล CCP หนวยควบคมการ Interrupt การสอสารแบบ SPI,
UART,USB นอกจากนไมโครคอนโทรลเลอรบางตระกลยงไดออกแบบฟงกชนพเศษตาง ๆ เชน การตดตอ
ผาน Internet ความสามารถอานขอมล SD Card เปนตน ไมโครคอนโทรลเลอรมหลายตระกล เชน Z80,
PIC, MCS51, AVR, ARM7,ARM9 68H, H8 Basic Stamp, PSOC, MSP, RABBIT แตละตระกลม
คณสมบตขอเดนขอดอยแตกตางกนออกไป
ภาษาทไมโครคอนโทรลเลอรสามารถทางานไดทนทคอภาษาเครอง (File .Hex) ซงเปนรหส
เลขฐานสบหก เมอผโปรแกรมใชภาษาอนจะตองแปลงใหเปนภาษาเครองกอนทจะดาวนโหลดลงในไอซ
25
ไมโครคอนโทรลเลอร ภาษาทสามารถเขยนเปนโปรแกรมหรอซอรสโคดไดแกแอสเซมบล (Assemble
Languages) ภาษาซ (C Languages) ภาษาซพลสพลส (C++ Languages) ภาษาเบสก (BASIC
Languages) ภาษาเบสกสแตมป (BASIC Stamp Languages) และภาษาจาวา (JAVA Languages)
ไอซไมโครคอนโทรลเลอรเบอร PIC18F4550 เปนผลตภณฑของบรษท Microchip หนวยความจา
โปรแกรม (Program Memory) ขนาด 32768 ไบต หรอ 32 Kbyte หนวยความจาขอมล (Data Memory)
ขนาด 2048 ไบต หรอ 2 Kbyte หนวยความจาขอมลอสแควรพรอม (Data EEPROM Memory) ขนาด 256
ไบต Internal oscillator (ภายในตวไอซ) ตงแตความถ 31 kHz ถง 8 MHz และใช External Oscillator ได
สงสด 48 MHz การจดวางตาแหนง Pin แบบ PDIP เปน 40 Pin แตละ Pin สามารถทางานไดหลายหนาท
เชนขาท 5 (RA3/AN3/VREF+) ทาหนาทเปนพอรตดจทลอนพตเอาตพต ทาหนาทเปนแอนะลอกอนพตชอง
ท 3 และยงทาหนาทเปนจดอางองไฟฟาบวกของวงจรแปลงจากแอนะลอกเปนดจตอล เปนตน
รจสเตอรเปนหนวยความจาขนาดเลกทอยภายในซพย ทางานไดเรวมาก ใชเกบขอมลทจาเปนในการ
คานวณหรอระบสถานะของการทางานของหนวยประมวลผลกลาง และมกถกอางถงบอย ๆ ในระหวางการ
คานวณของหนวยประมวลผล เพอใหโปรแกรมททางานอย สามารถเขาถงขอมลทจาเปนเหลานไดอยาง
รวดเรว
26
คาสง จงตอบคาถามตอไปนใหถกตอง
1. จงใหความหมายของคาวาไมโครคอนโทรลเลอร
2. จงอธบายขอแตกตางระหวางไมโครโพรเซสเซอรกบไมโครคอนโทรลเลอร
3. จากรปดานลาง ระดบแรงดนไฟฟากระแสตรงตาสดทไอซไมโครคอนโทรลเลอรยงสามารถทางานไดมคา
เทาไร เมอใชครสตอล 30 MHz
แรงดนไฟฟ
า (V
olts)
4 M
Hz
48 M
Hz
27
4. จากรปดานลาง จงอธบายหนาทของ Pin ท 1, 6, 11, 17, 18, 39 และ 40 ของ PIC18F4550
1
765432
1098
11121314151617181920
30292827262524232221
393837363534333231
40MCLR/Vpp/RE3RA0/AN0RA1/AN1
RA2/AN2/VREF-CVREF
RA3/AN3/VREF+RA4/T0CK/C1OUT/RCV
RA5/AN4/SS/HLVDIN/C2OUTRE0/AN5/CK1SPPRE1/AN6/CK2SPP
RE2/AN7/OESPPVDD
VSS
OSC1/CLKIOSC2/CLKO/RA6
RC0/T1OSO/T13CKIRC1/T1OSI/CCP2 /UOE
RC2/CCP1/P1AVUSB
RD0/SPP0RD1/SPP1
RB7/KBI3/PGDRB6/KBI2/PGCRB5/KBI1/PGMRB4/AN11/KBI0/CSSPPRB3/AN9/CCP2 /VFRB2/AN8/INT2/VMORB1/AN10/INT1/SCK/SCLRB0/AN12/INT0/FLT0/SDI/SDAVDD
VSS
RD7/SPP7/P1DRD6/SPP6/P1CRD5/SPP5/P1BRD4/SPP4RC7/RX/DT/SDORC6/TX/CKRC5/D+/VPRC4/D-/VMRD3/SPP3RD2/SPP2
(1)
(1)
28
คาสง จงทาเครองหมาย X ลงในขอทถกตองทสด
1. ขอใดไมใชสวนประกอบของไมโครคอนโทรลเลอร
ก. CPU ข. Interrupt Control
ค. Input Output Port ง. ARM9
2. Watchdog Timer ของไมโครคอนโทรลเลอรหนาทใด
ก. ผลตสญญาณนาฬกา ข. ตรวจสอบสถานะตาง ๆ ของการทางาน
ค. ตงเวลาการทางาน ง. ตรวจสอบขอมลอนพต
3. การบรรจภณฑของไมโครคอนโทรลเลอรดงรปดานลางเปนแบบใด
ก SOIC ข. PDIP
ค. PLCC ง. TQFP
4. ขอใดไมใชประเภทของของไมโครคอนโทรลเลอร
ก. 8 บต ข. 16 บต
ค. 24 บต ง. 32 บต
5. ผผลตไอซไมโครคอนโทรลเลอรตระกล AVR คอบรษทใด
ก. Microchip ข. Phillips
ค. Parallax ง. Atmel
6. ขอใดไมใชสวนทสาคญททาใหไมโครคอนโทรลเลอรทางานได
ก. สญญาณรเซตขณะเรมตน ข. สญญาณนาฬกา
ค. Source Code ภาษาเครอง ง. สญญาณการ Interrupt
7. ขอใดไมใชคณลกษณะของไมโครคอนโทรลเลอรเบอร PIC18F4550
ก. ใช Clock ตงแต 0 Hz – 48 MHz ข. ใชไฟฟากระแสตรง 1.5 V ถง 5.5 V
ค. ม Program Memory ขนาด 32 Kbyte ง. ม Data Memory ขนาด 2 Kbyte
29
8. ขอใดเปนความหมายของขอความทระบไวทขา 26 (RC7/RX/DT/SDO) ของ PIC18F4550
ก. ดจทลอนพตเอาตพตพอรต C บตท 7 ข. อนพตของ EUSART asynchronous
ค. เอาตพตของ SPI™ data ง. ถกทกขอ
9. จดหนวยความจาขอมลของไมโครคอนโทรลเลอรเบอร PIC18F4550 จดเปนก Bank
ก 8 ข. 16
ค. 32 ง. 64
10. ขอใดใหความหมายของคาวารจสเตอร (Register) ไดจดเจนทสด
ก เปนหนวยความจาขนาดเลกทอยภายในซพยทางานไดเรวมาก
ข. ใชเกบขอมลทจาเปนในการคานวณหรอระบสถานะของ CPU
ค. ความสามารถเขาถงขอมลทจาเปนเหลานไดอยางรวดเรว
ง. บอกการทางานของหนวยประมวลผลกลางในระหวางการคานวณของ CPU
30