PIC BASIC 2 - NTC
Transcript of PIC BASIC 2 - NTC
![Page 1: PIC BASIC 2 - NTC](https://reader030.fdocuments.in/reader030/viewer/2022032610/623a21569dc4ef658b72c588/html5/thumbnails/1.jpg)
66
บทท 4 โครงสรางและสถาปตยกรรมของไมโครคอนโทรลเลอร PIC16F877
ไมโครคอนโทรลเลอรตระกล PIC ของบรษทไมโครชพ (Microchip) โดยเฉพาะเบอร PIC16F877 เปนไมโครคอนโทรลเลอรทกาลงไดรบความนยมอยางแพรหลาย เนองจากเปนไมโครคอนโทรลเลอรแบบ แรก ๆ ทมการประมวลผลแบบ RISC Processor (RISC : Reduced Instruction Set Computer ) โดยใชคาสงการประมวลผลเพยง 33 - 35 คาสง และใชเวลาในการประมวลคาสงเพยง 1 หรอ 2 machine cycle ตอคาสงเทานน การประมวลผลคาสงเปนลกษณะ Pipe Line คอขณะประมวลผลคาสงแรกจะทาการโหลดคาสงถดไปมาเตรยมรอไว ทาใหการทางานทรวดเรวมาก นอกจากนนในตวโครงสรางยงประกอบดวยฮารดแวรฟงกชนโมดลสาหรบใชงานพเศษตาง ๆ มากมาย ไดแก โมดล Analog to Digital Converter , USART , Timer / Counter , SPI , Compare / Capture / PWM , I2C เปนตน โมดลเหลานลวนเพมขดความสามารถใหนาไปใชงานไดอยางหลากหลาย ประกอบกบมเครองมอในการพฒนาทเพยบพรอม คณสมบตของไมโคร คอนโทรลเลอร PIC16F877 มดงนคอ - มคาสงในภาษาแอสเซมบล 35 คาสง - ใชความถออสซลเลเตอรไดสงสด 20 MHz - มหนวยความจาโปรแกรม Flash Memory ขนาด 8 K word ( 14 – bit words) - มหนวยความจาขอมลแบบ RAM 368 Bytes - มหนวยความจาขอมลแบบ EEPROM 256 Byte - มการตอบสนองอนเตอรรพททงหมด 14 แหลง - สามารถเลอกระดบการปองกนขอมล ( Code Protection ) ได - มโหมดประหยดพลงงาน (Sleep Mode) - สามารถเลอกแหลงสญญาณนาฬกาไดหลายโหมด XT RC และออสซเลเตอรพลงงานตา - มฟงกชนการรกษาเสถยรภาพการทางาน ไดแก POR , PWRT, OST, BOR และ WDT - การโปรแกรมตวชพแบบ ICSP ( ICSP : In-Circuit Serial Programming ) - สามารถทางานทไฟเลยงวงจรตงแต 2.0 V ถง 5.5 V - ขาพอรท I/O แตละขา สามารถรบและปลอยกระแสไดสงสด 25 mA - มโมดล Timer / Counter ใชงานทงหมด 3 ตว Timer 0 , Timer 1, และ Timer 2 - มโมดล CCP (CCP : Compare / Capture / PWM ) จานวน 2 ชด - มโมดล Analog to Digital Converter ความละเอยด ขนาด 8 บท และ 10 บท จานวน 8 ชอง ภายในตวชพ
- มโมดลสอสารอนกรมแบบ USART ( USART : Universal Synchronous Asynchronous Receiver / Transmitter ) - มพอรท I/O จานวน 5 พอรท ไดแก พอรท A , B , C , D , และ E มขา I/O รวมกน 33 ขา ดงนคอ PORTA ม 5 ขา RA0 ถง RA5
![Page 2: PIC BASIC 2 - NTC](https://reader030.fdocuments.in/reader030/viewer/2022032610/623a21569dc4ef658b72c588/html5/thumbnails/2.jpg)
67
PORTB ม 8 ขา RB0 ถง RB7 PORTC ม 8 ขา RC0 ถง RC7 PORTD ม 8 ขา RD0 ถง RD7 PORTE ม 3 ขา RE0 ถง RE2
รปท 1 แสดงตวอยางขอมลขดความส แบบ 28 ขา และ 40 ขา
ามารถของไมโครคอนโทรลเลอร PIC16F87X
![Page 3: PIC BASIC 2 - NTC](https://reader030.fdocuments.in/reader030/viewer/2022032610/623a21569dc4ef658b72c588/html5/thumbnails/3.jpg)
68
รป
ท 2 แสดงตาแหนงขา (PIN Diagram) ของตวถงแบบตาง ๆ
![Page 4: PIC BASIC 2 - NTC](https://reader030.fdocuments.in/reader030/viewer/2022032610/623a21569dc4ef658b72c588/html5/thumbnails/4.jpg)
69
รรายละเอยด
รปท 3 ตารางเปรยบเทยบรายละเอยดขดความสามารถของไมโครคอนโทรลเลอร PIC16F87F
ปท 4 แสดงสถาปตยกรรมทเปนโครงสรางของไมโครคอนโทรลเลอร PIC16F877 ของขาสญญาณ I/O และอน ๆ ของไมโครคอนโทรลเลอร ตระกลPIC16F87X มดงน
![Page 5: PIC BASIC 2 - NTC](https://reader030.fdocuments.in/reader030/viewer/2022032610/623a21569dc4ef658b72c588/html5/thumbnails/5.jpg)
70
ตารางท 1 แสดงรายละเอยดและตาแหนงขา ของไมโครคอนโทรลเลอร PIC16F873 / PIC16F876
![Page 6: PIC BASIC 2 - NTC](https://reader030.fdocuments.in/reader030/viewer/2022032610/623a21569dc4ef658b72c588/html5/thumbnails/6.jpg)
71
ตารางท 2 แสดงรายละเอยดและตาแหนงขา ของไมโครคอนโทรลเลอร PIC16F874 / PIC16F877
ตารางท 3 แสดงรายละเอยดและตาแหนงขา ของไมโครคอนโทรลเลอร PIC16F874 / PIC16F877
![Page 7: PIC BASIC 2 - NTC](https://reader030.fdocuments.in/reader030/viewer/2022032610/623a21569dc4ef658b72c588/html5/thumbnails/7.jpg)
72
ตารางท 4 แสดงรายละเอยดและตาแหนงขา ของไมโครคอนโทรลเลอร PIC16F874 / PIC16F877 (ตอ)
หนวยความจาและรจสเตอรภายในตวไมโครคอนโทรลเลอร ( Internal Memory Units ) การทางานของไมโครคอนโทรลเลอร มลกษณะเปนไบทแมชน (Byte Machine) ดงนนหนวยความจาเปนสวนประกอบทสาคญมาก ในโครงสรางของไมโครคอนโทรลเลอร (ตามรปท 4 ) ในตระกล PIC16F87X จะมหนวยความจาทอยภายในตวชพ หลายสวนดวยกน ไดแก 1 ) หนวยความจาโปรแกรม ( Program Memory ) 2 ) หนวยความจาทเปนรจสเตอรใชงานตาง ๆ ( Register Files ) 3 ) หนวยความจาขอมล หรอหนวยความจาเอนกประสงค ( Data Memory ) 4 ) หนวยความจาแบบทไมตองใชไฟเลยง หรอ EEPROM หนวยความจาทง 4 สวนน จะมขนาดความจ และการใชงานทแตกตางกนไป ตามจดประสงการใชงาน หนวยความจาโปรแกรม เปนหนวยความจาทใชเกบและการประมวลผลคาสงในโปรแกรมทผใชไดเขยนและบนทกเกบไว หนวยความจาสวนนจะมขนาด 14 บท ตามรปท 5 เปนโครงสรางประกอบดวย Program Counter เปนตวชตาแหนงลาดบการประมวลผล ( Execute Sequence Cycle) Stack Register เปนหนวยความจาทพกคาตาแหนงลาดบการประมวลผล กรณตองกระโดดไปทางานยอย On-chip Program Memory เปนเนอทโปรแกรมทใชในการประมวลผล ประกอบดวยตาแหนงแอดเดรสทสาคญ ๆ คอ
![Page 8: PIC BASIC 2 - NTC](https://reader030.fdocuments.in/reader030/viewer/2022032610/623a21569dc4ef658b72c588/html5/thumbnails/8.jpg)
73
RESET Vector จะอยท 0000h และ Interrupt Vector จะอยท 0004h นอกนนเปนตาแหนงทเกบโปรแกรมเรมตงแต 0005h ไปจนถงตาแหนงสดทายของหนวยความจา
( ก ) รปท 5 แสดงโครงสราง STACK และหนวยความ (ข ) PIC16F873 / 874 หนวยความจาทเปนรจสเตอรใชงานตาง ๆ (รจสเตอรทใชงานทวไป ( General Purpose Regisจานวน 386 ไบท และรจสเตอรทเปนฟงกชนการทควบคมการทางานของระบบฮารดแวรตาง ๆ ภายในตมทอยคงท (Fixed Address) และถกกาหนดชอใชงาแบบทถกสงวนสารองไวใชงานเฉพาะ ( Reserved) เรยกวา Bank 0 Bank 1 Bank 2 และ Bank 3 เปน( ข )
จาโปรแกรม ( ก ) สาหรบเบอร PIC16F876 / 877
Register Files) หนวยความจาสวนนจะประกอบดวยters ) สาหรบไมโครคอนโทรลเลอร PIC16F877 จะมางานพเศษ ( Special Function Registers) มไวสาหรบวชพ ไมสามารถไปใชงานอนไดโดยรจสเตอรแตละตวจะนไวแลวโดยแบงเปน 2 แบบ คอ แบบใชงานจรง และ รจสเตอรเหลานจะถกแบงออกเปนสวนยอยได 4 สวน ตน ตามรปท 6
![Page 9: PIC BASIC 2 - NTC](https://reader030.fdocuments.in/reader030/viewer/2022032610/623a21569dc4ef658b72c588/html5/thumbnails/9.jpg)
74
รปท 6 แสดงตาแหนงหนวยความจาทเปนรจสเตอรไฟล ของ PIC16F876 / PIC16F877
![Page 10: PIC BASIC 2 - NTC](https://reader030.fdocuments.in/reader030/viewer/2022032610/623a21569dc4ef658b72c588/html5/thumbnails/10.jpg)
75
รจสเตอรทเปนฟงชนการทางานพเศษ (Special Function Registers) รจสเตอรถกใชโดย CPU เปนหนวยความจาชนด RAM สามารถอานและเขยนได รจสเตอรเหลานจะถกกาหนดใหทาหนาทควบคมการทางานของสวน CPU เอง และอปกรณทตอประสานการทางานภายนอก(Peripheral Devices) ตามตารางท 5 ตารางท 6 และ 7 ตารางท 5 แสดงตาแหนงบทใชงานรจสเตอรทเปนฟงชนการทางานพเศษ
![Page 11: PIC BASIC 2 - NTC](https://reader030.fdocuments.in/reader030/viewer/2022032610/623a21569dc4ef658b72c588/html5/thumbnails/11.jpg)
76
ตารางท 6 แสดงตาแหนงบทใชงานรจสเตอรทเปนฟงชนการทางานพเศษ ( ตอ )
![Page 12: PIC BASIC 2 - NTC](https://reader030.fdocuments.in/reader030/viewer/2022032610/623a21569dc4ef658b72c588/html5/thumbnails/12.jpg)
77
ตารางท 7 แสดงตาแหนงบทใชงานรจสเตอรทเปนฟงชนการทางานพเศษ ( ตอ )
รจสเตอรทเปนฟงกชนการทางานพเศษเหลาน ผออกแบบระบบไมโครคอนโทรลเลอรจะตองเอาใจใสในรายละเอยดอยางถถวน หากการออกแบบไมรอบคอบเพยงพอจะทาใหการใชงานอาจมปญหาและอาจเปนอนตรายตอระบบและผเกยวของ หรออาจทาใหกลไกการทางานของระบบเสยหายได โดยเฉพาะคาบทขอมลในรจสเตอรทควบคมการทางานของขา I/O ในสภาวะการเรมทางาน หรอสภาวะการเกด RESET เนองจากไฟตก หรอ เกดการลมเหลวการทางาน หรอสภาวะออกจาก Sleep Mode ขอมลบทของรจสเตอรเหลานในสภาวะเกด RESET ใหดไดจากคอลมนสดทายของตารางท 5 ถง 7 รายละเอยดการทางานของรจสเตอรทงหมดนมเปนจานวนมาก ใหผอานตองเลอกศกษาเฉพาะในสวนทตองนาไปใชงานใน Datasheet ของแตละเบอร และในใบงานทดลองจะอธบายในรจสเตอรทเกยวของไวแลว สวนรจสเตอรสาคญทตองศกษาไวเปนเบองตนมดงตอไปน คอ
![Page 13: PIC BASIC 2 - NTC](https://reader030.fdocuments.in/reader030/viewer/2022032610/623a21569dc4ef658b72c588/html5/thumbnails/13.jpg)
78
STATUS Register เปนรจสเตอรทควบคมสถานการณประมวลผลของ CPU และการเขาถง Page ของหนวยความจารจสเตอรตาง ๆ มรายละเอยดดงน
สาหรบการใชภาษา PIC Basic Pro Compiler ตวคาสงจะจดการกบสถานะตาง ๆ ไดเกอบหมด แตทตองทาความเขาใจ คอสถานะบท 4 และ 3 ทเปนสถานะทนามาเปนตวบอกวา เกดปญหาอะไรกบระบบไฟและการประมวลผลของ CPU
![Page 14: PIC BASIC 2 - NTC](https://reader030.fdocuments.in/reader030/viewer/2022032610/623a21569dc4ef658b72c588/html5/thumbnails/14.jpg)
79
OPTION Register เปนรจสเตอรทควบคมการทางานของ R Pull – up ทพอรท B การเลอกแบบของสญญาณการอนเตอรรพท การทางานของ Timer 0 การกาหนดคา Prescaler
รายละเอยดการใชงานของ OPTION รจสเตอร จะอยในใบงานทดลอง เรองการใชงาน Timer 0
![Page 15: PIC BASIC 2 - NTC](https://reader030.fdocuments.in/reader030/viewer/2022032610/623a21569dc4ef658b72c588/html5/thumbnails/15.jpg)
80
INTCON Register เปนรจสเตอรทควบคมการใหบรการอนเตอรรพท และแสดงสถานะของการเกดอนเตอรรพทตามตาแหนงตาง ๆ ทระบในแตละบท รายละเอยดการประยกตใชงาน อยในใบงานทดลองเรองการใชงานอนเตอรรพท
![Page 16: PIC BASIC 2 - NTC](https://reader030.fdocuments.in/reader030/viewer/2022032610/623a21569dc4ef658b72c588/html5/thumbnails/16.jpg)
81
PIE1 Register เปนรจสเตอรทใชควบคมการเกดอนเตอรรพท จากอปกรณเชอมประสานภายนอก ไดแก Parallel Slave Port (bit 7), A/D Converter (Bit 6), USART Receiver (bit 5), USART Transmitter (bit 4) , Synchronous Serial Port (bit 3), โมดล CCP1 (bit 2), Timer 2 (bit 1), Timer 1 (bit 0) รายละเอยดการใชงานใหศกษาในใบงานทดลองเรองการใชงานอนเตอรรพท
![Page 17: PIC BASIC 2 - NTC](https://reader030.fdocuments.in/reader030/viewer/2022032610/623a21569dc4ef658b72c588/html5/thumbnails/17.jpg)
82
PIR1 Register เปนรจสเตอรทแสดงสถานการณเกดอนเตอรรพททเกดจากอปกรณเชอมประสานภายนอก (Peripheral Interface) จากทก ๆ แหลงอยางอสระกน
![Page 18: PIC BASIC 2 - NTC](https://reader030.fdocuments.in/reader030/viewer/2022032610/623a21569dc4ef658b72c588/html5/thumbnails/18.jpg)
83
PIE2 Register เปนรจสเตอรทควบคมการอนเตอรรพท เมอมการเขยนขอมลใน EEPROM ขอมลในบสชนกน และการใชงานโมดล CCP2
PIR2 Register เปนรจสเตอรทแสดงสถานการณเกดอนเตอรรพท จากการเปดใชงานอนเตอรรพทตามในรจสเตอร PIE2
![Page 19: PIC BASIC 2 - NTC](https://reader030.fdocuments.in/reader030/viewer/2022032610/623a21569dc4ef658b72c588/html5/thumbnails/19.jpg)
84
PCON Register เปนรจสเตอรทใชแสดงถานะการทางานทเกยวของกบการจายไฟเลยงวงจร ไดแก POR (POR : Power On Reset) และ BOR (BOR : Brown-out Reset) เพอเปนตวตรวจสอบการเกด Reset เนองจากความผดปกตทเกยวของกบไฟจายเลยงวงจร