บทที่ 4 ไมโครโพรเซสเซอร และ ... · 2014-10-15 · 3)...

14
บทที่ 4 ไมโครโพรเซสเซอรและไมโครคอนโทรลเลอร ในปจจุบันไมโครโพรเซสเซอรไดถูกพัฒนาใหมีประสิทธิภาพมากขึ้น สามารถประมวลผล ขอมูลไดเร็ว และราคาถูกลง มีการออกแบบใหสามารถใชงานไดง-าย มีเครื่องมือที่ช-วยอํานวยความ สะดวกในการพัฒนา จึงทําใหไมโครโพรเซสเซอรและไมโครคอนโทรลเลอรเป2นส-วนประกอบที่สําคัญ ในวงจรอิเล็กทรอริกส เครื่องคอมพิวเตอร เครื่องคํานวณ เครื่องมือวัดและเครื่องใชไฟฟ7าต-าง ๆ อีก มากมาย 1. ไมโครโพรเซสเซอรและไมโครคอนโทรลเลอร ไมโครโพรเซสเซอร (Microprocessor) คือ อุปกรณอิเล็กทรอนิกสชนิดหนึ่งซึ่งมีลักษณะ โครงสรางเป2นไอซี (Integrate Circuit : IC) หรือที่เรียกกันว-า ชิป (Chip) โครงสรางภายในจะเป2น วงจรรวมขนาดใหญ- ประกอบแดวย หน-วยคํานวณทางคณิตศาสตรและลอจิก รีจีสเตอร ระบบบัส ต-าง ๆ รวมกันเป2นไมครโพรเซสเซอรหรือตัวประมวลผลกลางเพื่อทําหนาที่หลักในการประมวลผลตาม โปรแกรมการทํางาน ไมโครคอนโทรลเลอร (Microcontroller) คือ ชิปประมวลผลอย-างหนึ่งซึ่งทําหนาทีประมวลผลตามโปรแกรมหรือชุดคําสั่งเหมือนกันไมโครโพรเซสเซอร โครงสรางภายในจะเป2นวงจร รวมขนาดใหญ-ประกอบไปดวย หน-วยคํานวณทางคณิตศาสตรและลอจิก บัสขอมูล บัสควบคุม บัสทีอยู- พอรตขนาน พอรตอนุกรม รีจีสเตอร หน-วยความจํา วงจรนับ วงจรนับเวลาและวงจรอื่น ๆ รวมกันอยู-ภายในชิปหรือไอซี ไมโครคอนโทรลเลอรถูกออกแบบมาเพื่อใชในงานควบคุม สามารถ ติดต-อกับอุปกรณอินพุตไดสะดวก ใชงานง-าย สามารถทํางานไดโดยชิปเพียงตัวเดียว มีคําสั่งทีสนับสนุนในการเขียนโปรแกรมควบคุมและสามารถเขาถึงขอมูลระดับบิตได 1.1 ไมโครโพรเซสเซอร Z-80 Z-80 เป2นไมโครโพรเซสเซอรขนาด 8 บิต มีขาสัญญาณจํานวน 40 ขา เป2นไมโคร โพรเซสเซอรที่ไดรับความนิยมในสิบกว-าปTที่ผ-านมา เนื่องจากมีโครงสรางที่ไม-ซับซอนง-ายต-อการ เรียนรู แต-ในปจจุบันไดนําเอาไมโครคอนโทรลเลอรมาใชแทนเนื่องจากมีขอที่ดีกว-าหลายประการ ดังนั้นในรายละเอียดของ Z-80 จะกล-าวถึงขอมูลเบื้องตนเท-านั้น

Upload: others

Post on 10-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: บทที่ 4 ไมโครโพรเซสเซอร และ ... · 2014-10-15 · 3) รีจิสเตอร i จะมีคา 00h 4) รีจิสเตอร

บทท่ี 4 ไมโครโพรเซสเซอร�และไมโครคอนโทรลเลอร�

ในป�จจุบันไมโครโพรเซสเซอร�ได�ถูกพัฒนาให�มีประสิทธิภาพมากข้ึน สามารถประมวลผล

ข�อมูลได�เร็ว และราคาถูกลง มีการออกแบบให�สามารถใช�งานได�ง-าย มีเครื่องมือท่ีช-วยอํานวยความสะดวกในการพัฒนา จึงทําให�ไมโครโพรเซสเซอร�และไมโครคอนโทรลเลอร�เป2นส-วนประกอบท่ีสําคัญในวงจรอิเล็กทรอริกส� เครื่องคอมพิวเตอร� เครื่องคํานวณ เครื่องมือวัดและเครื่องใช�ไฟฟ7าต-าง ๆ อีกมากมาย 1. ไมโครโพรเซสเซอร�และไมโครคอนโทรลเลอร� ไมโครโพรเซสเซอร� (Microprocessor) คือ อุปกรณ�อิเล็กทรอนิกส�ชนิดหนึ่งซ่ึงมีลักษณะโครงสร�างเป2นไอซี (Integrate Circuit : IC) หรือท่ีเรียกกันว-า ชิป (Chip) โครงสร�างภายในจะเป2นวงจรรวมขนาดใหญ- ประกอบแด�วย หน-วยคํานวณทางคณิตศาสตร�และลอจิก รีจีสเตอร� ระบบบัสต-าง ๆ รวมกันเป2นไมครโพรเซสเซอร�หรือตัวประมวลผลกลางเพ่ือทําหน�าท่ีหลักในการประมวลผลตามโปรแกรมการทํางาน ไมโครคอนโทรลเลอร� (Microcontroller) คือ ชิปประมวลผลอย-างหนึ่งซ่ึงทําหน�าท่ีประมวลผลตามโปรแกรมหรือชุดคําสั่งเหมือนกันไมโครโพรเซสเซอร� โครงสร�างภายในจะเป2นวงจรรวมขนาดใหญ-ประกอบไปด�วย หน-วยคํานวณทางคณิตศาสตร�และลอจิก บัสข�อมูล บัสควบคุม บัสท่ีอยู- พอร�ตขนาน พอร�ตอนุกรม รีจีสเตอร� หน-วยความจํา วงจรนับ วงจรนับเวลาและวงจรอ่ืน ๆ รวมกันอยู-ภายในชิปหรือไอซี ไมโครคอนโทรลเลอร�ถูกออกแบบมาเพ่ือใช�ในงานควบคุม สามารถติดต-อกับอุปกรณ�อินพุตได�สะดวก ใช�งานง-าย สามารถทํางานได�โดยชิปเพียงตัวเดียว มีคําสั่งท่ีสนับสนุนในการเขียนโปรแกรมควบคุมและสามารถเข�าถึงข�อมูลระดับบิตได�

1.1 ไมโครโพรเซสเซอร� Z-80 Z-80 เป2นไมโครโพรเซสเซอร�ขนาด 8 บิต มีขาสัญญาณจํานวน 40 ขา เป2นไมโครโพรเซสเซอร�ท่ีได�รับความนิยมในสิบกว-าปTท่ีผ-านมา เนื่องจากมีโครงสร�างท่ีไม-ซับซ�อนง-ายต-อการเรียนรู� แต-ในป�จจุบันได�นําเอาไมโครคอนโทรลเลอร�มาใช�แทนเนื่องจากมีข�อท่ีดีกว-าหลายประการ ดังนั้นในรายละเอียดของ Z-80 จะกล-าวถึงข�อมูลเบ้ืองต�นเท-านั้น

Page 2: บทที่ 4 ไมโครโพรเซสเซอร และ ... · 2014-10-15 · 3) รีจิสเตอร i จะมีคา 00h 4) รีจิสเตอร

21

ภาพท่ี 4.1 ขาสัญญาณของ Z-80 ท่ีมา (ZiLOG, 2004: 7) ขาสัญญาณของ Z-80 จะแบ-งได�เป2น 6 กลุ-มดังนี้ กลุ-มท่ี 1 บัสข�อมูล (Data Bus)

กลุ-มท่ี 2 บัสท่ีอยู- (Address Bus) กลุ-มท่ี 3 สัญญาณควบคุมระบบ (System Control) กลุ-มท่ี 4 สัญญาณควบคุมซีพียู (CPU Control) กลุ-มท่ี 5 สัญญาณคุมบัส (CPU Bus Control) กลุ-มท่ี 6 สัญญาณความถ่ีและแหล-งจ-ายไฟ กลุ มท่ี 1 บัสข#อมูล (Data Bus) บัสข�อมูล (Data Bus) ของ Z-80 มีขนาด 8 บิต เป2นสัญญาณบัส 3 สถานะ (Tristate)

ประกอบไปด�วยบิต D0-D7 เป2นบัสสองทิศทางใช�ในการรับและส-งข�อมูลระหว-างไมโครโพรเซสเซอร�กับหน-วยความจําและระหว-างไมโครโพรเซสเซอร�กับอุปกรณ�อินพุตและเอาต�พุต

กลุ มท่ี 2 บัสท่ีอยู (Address Bus) บัสท่ีอยู- (Address Bus) ของ Z-80 มีขนาด 16 บิตเป2นสัญญาณบัส 3 สถานะประกอบไป

ด�วยบิต A0-A15 เป2นบัสทิศทางเดียว ใช�ในการระบุตําแหน-งในกรติดต-อกับหน-วยความจําข�อมูลและหน-วยความจําโปรแกรมรวมกันได�สูงสุด 64 KB

Page 3: บทที่ 4 ไมโครโพรเซสเซอร และ ... · 2014-10-15 · 3) รีจิสเตอร i จะมีคา 00h 4) รีจิสเตอร

22

กลุ มท่ี 3 สัญญาณควบคุมระบบ (System Control) สัญญาณควบคุมระบบเป2นสาสัญญาณท่ีใช�ในการควบคุมการทํางานระหว-างซีพียูและ

อุปกรณ�ต-อพ-วง เช-น หน-วยความจําข�อมูล หน-วยความจําโปรแกรม อุปกรณ�อินพุตและเอาต�พุต ซ่ึงประกอบไปด�วยขาสัญญาณต-าง ๆ ดังนี้

M1 (Machine Cycle One) คือ ถ�าขานี้เป2น "0" จะบอกให�ทราบว-าขณะนี้ซีพียูกําลังอยู-ในสภาวะอ-านคําสั่ง ถ�า ซีพียู กําลังอ-านคําสั่งท่ีมี 2 ไบต� เช-นคําสั่ง CBH DDH EDH FDH (H ต-อท�ายหมายถึงเป2นฐานสิบหก) ท่ีขา M1 นี้จะ ส-งสัญญาณ ข้ึนใน แต-ละไบต� นอกจากนี้ M1 ยังสร�างสัญญาณร-วมกับ IORQ เพ่ือบอกสถานะการตอบรับการขัดจังหวะ

MREQ (Memory Request) ถ�าขานี้ เป2น "0" บอกให�ทราบว-า ซีพียู จะติดต-อกับหน-วยความจํา ตามตําแหน-งท่ีอยู-ท่ีปรากฏในบัสตําแหน-งท่ีอยู-

IORQ (Input Output Request) ถ�าขานี้ เป2น "0" บอกให�ทราบว-า ซีพียูติดต-อกับอุปกรณ�

อินพุต หรือเอาต�พุต โดย A0- A7 เป2นตัวกําหนดเบอร�ทางเข�า ออกถ�า IORQ เกิดสัญญาณข้ึนพร�อมกับ M1 จะบอกให�ทราบว-า ซีพียู กําลังตอบสนองการขัดจังหวะ (Interrupt) และข�อมูลในบัสข�อมูลก็คือค-า อินเทอร�รัพต� -เวกเตอร�

RD (Memory Read) ถ�าขานี้มีสัญญาณเป2น "0" บอกให�รู�ว-าขณะนี้ ซีพียู กําลังอ-าน เอาข�อมูลจาก หน-วยความจํา หรือ อุปกรณ�อินพุต-เอาต�พุต

WR (Memory Write) ถ�าเป2น "0" จะบอกให�รู�ว-าซีพียูต�องเขียนข�อมูลลงในตําแหน-ง ท่ีบัสกําหนด หรืออาจจะเป2นหน-วยความจํา หรือ อุปกรณ� อินพุต-เอาต�พุต ก็ได�

RFSH (Refresh) ถ�าขานี้เป2น "0"จะบอกให�ทราบว-าท่ี A0 - A6 เป2นตําแหน-งท่ีจะใช� ฟuvนฟู (Refresh) ในแรมแบบพลวัต ส-วน A7 จะเป2น "0" ขณะท่ี A8 - A15 จะแสดงค-ารีจิสเตอร�

กลุ มท่ี 4 สัญญาณควบคุมซีพียู (CPU Control) สัญญาณควบคุมซีพียูเป2นสัญญาณท่ีใช�ในการควบคุมการทํางานของซีพียูจากอุปกรณ�

ภายนอก การอินเตอร�รัพท� การรีเซตระบบ ซ่ึงประกอบด�วยขาสัญญาณต-าง ๆ ดังนี้ HALT (Halt state) ถ�าได�รับสัญญาณ "0" ซีพียู จะหยุดการทํางานเพ่ือรอการ

ขัดจังหวะ หรือต้ังใหม- ช-วง Halt ซีพียูจะเสมือนกระทําคําสั่ง NOP (No Operation) เพ่ือให�เกิดวัฎจักรในการทํางานท่ีจะส-งสัญญาณไป ฟuvนฟูในแรมแบบพลวัต

WAIT (Wait) เป2นขาอินพุต ถ�าป7อน "0" ให�กับขานี้จะเป2นการบอกให� ซีพียูหยุดรอ เพ่ือให�หน-วยความจํา หรืออุปกรณ� อินพุตเอาต�พุต รับหรือส-งข�อมูลได�ทันเวลา

INT (Interrupt Request) เป2นขาอินพุตจะรับ "0" จากอุปกรณ� อินพุต-เอาต�พุต เม่ือต�องการขัดจังหวะซีพียู ซ่ึงซีพียูจะตรวจสอบสัญญาณนี้ทุกครั้งท่ีจบการกระทําแต-ละคําสั่ง การตอบสนองการขัดจังหวะ (Interrupt) สามารถควบได�โดยโปรแกรม ด�วยการกําหนดค-าในฟลิปฟลอปขัดจังหวะ (IFF) การตอบสนองขัดจังหวะจะเกิดได�ยังต�องไม-มีสัญญาณ "0" เข�ามายังขา BUSRQ เม่ือ ซีพียู ตอบสนองต-อการขัดจังหวะ ซีพียู จะสร�างสัญญาณ IORQ ระหว-างช-วงเวลา M1 การตอบสนองต-อการขัดจังหวะมี 3 โหมด

Page 4: บทที่ 4 ไมโครโพรเซสเซอร และ ... · 2014-10-15 · 3) รีจิสเตอร i จะมีคา 00h 4) รีจิสเตอร

23

NMI (Non Maskable Interrupt) เป2นขาอินพุตเม่ือรับสัญญาณ "0" จะบอก ซีพียู

ให�รู�ว-าอุปกรณ�ภายนอกร�องขอขัดจังหวะ การขัดจังหวะด�วยวิธีนี้ซีพียูให�ความสําคัญสูงกว-า INT กล-าวคือ ซีพียูจะตอบสนองและกระทําทันท่ีด�วยการเริ่มปฏิบัติการคําสั่ง ในตําแหน-ง 0066H โดยอัตโนมัติ การกระโดดไปกระทําในกรณีนี้ ซีพียู จะเก็บค-าตัวนับโปรแกรมเดิมไว�ในสแตก (Stack) เพ่ือจะได�กลับไปตําแหน-งทํางานเดิม เม่ือเสร็จสิ้นการขัดจังหวะแล�ว

RESET (Reset) เป2นขาอินพุต ถ�าได�รับสัญญาณ "0" จะเป2นการเริ่มต�นการทํางาน ใหม-หมดท้ังระบบ การเริ่มต�นใหม-จะมีผล ดังนี้

1) ตัวนับคําสั่งในโปรแกรม จะมีค-าเป2น "0" 2) IFF (Interrupt Flip- Flop ) จะไม-ทํางาน 3) รีจิสเตอร� I จะมีค-า 00H 4) รีจิสเตอร� R จะมีค-า 00H 5) จะมีการต้ังค-าขัดจังหวะโหมดมาอยู-ท่ีโหมด 0

ในขณะเริ่มต�นใหม- ท่ีบัสตําแหน-งท่ีอยู- และ บัสข�อมูล จะมีอิมพีแดนซ�สูง เพ่ือขอ แยกตัวออกจากซีพียู ส-วนบัสควบคุมจะไม-มีสัญญาณใดๆ การฟuvนฟูแรมแบบพลวัต ก็จะไม-เกิดข้ึน

กลุ มท่ี 5 สัญญาณคุมบัส (CPU Bus Control) BUSRQ (Bus Request) ถ�าได�รับ "0" ท่ีขานี้เสมือนกับการบอกให� ซีพียู ควบคุมบัส

เพ่ือแยกซีพียูออกจากระบบบัส BUSAK (Bus Acknowledge) เป2นขาเอาต�พุต ถ�าเป2น "0" เม่ือ ซีพียูได�แยกตัวออก

จากบัสตําแหน-งท่ีอยู- และบัสข�อมูลแล�วสัญญาณนาฬิกาเป2นสัญญาณนาฬิกาท่ีป7อนแก-ขาควบคุม ถ�าเป2น Z - 80A จะใช�ความถ่ี 2 MHz ส-วน Z - 80B ใ ช� 4 MHz

กลุ มท่ี 6 สัญญาณความถ่ีและแหล งจ ายไฟ

(Clock) คือ สัญญาณอินพุตเพ่ือป7อนสัญญาณนาฬิกาให�กับไมโครโพรเซสเซอร� + 5V คือ ขาแรงดันไฟฟ7ากระแสตรง 5 โวลต� สําหรับจ-ายไฟให�กับอุปกรณ� GND คือ ขากราวด�ของอุปกรณ�และวงจร

1.2 ประเภทไมโครคอนโทรลเลอร�

ไมโครคอนโทรลเลอร� มีด�วยกันหลายประเภทแบ-งตามสถาป�ตยกรรม (การผลิตและกระบวนการทํางานระบบการประมวลผล) ท่ีมีใช�ในป�จจุบันยกตัวอย-างได�ดังนี้

1.2.1 ไมโครคอนโทรลเลอร�ตระกูล PIC (บริษัทผู�ผลิต Microchip ไมโครชิป) ไมโครคอนโทรลเลอร� PIC16C7X เป2นชิปท่ีใช�เทคโนโลยี CMOS ซ่ึงมีราคาถูกแต-ให� Performance สูง และได�มีการรวมเอาอุปกรณ�แปลงสัญญาณแอนาล็อกเป2นดิจิตอลไว�ในภายใน ชิป PIC16C7X เป2น

Page 5: บทที่ 4 ไมโครโพรเซสเซอร และ ... · 2014-10-15 · 3) รีจิสเตอร i จะมีคา 00h 4) รีจิสเตอร

24

สถาป�ตยกรรมแบบ RISC โดยมีชุดคําสั่งเพียง 35 Single word/Single cycle คําสั่งท้ังหมดเป2นไซเคิลเด่ียว (200 นาโนวินาที) ยกเว�นคําสั่งท่ีใช�ในการ กระโดดข�ามโปรแกรมจะใช� 2 ไซเคิล ผลิตภัณฑ�ท่ีใช�ชิป PIC16C74A จะมีคุณลักษณะพิเศษคือ ช-วยลดต�นทุนของระบบและประหยัดไฟ เป2นอุปกรณ� ท่ี มี คุณลักษณะอย-างมากมาย เช-น สามารถทําการติดต-อแบบอนุกรมท้ังแบบ Synchronous และ แบบ Asynchronous (USART) รวมท้ังอุปกรณ�ในการแปลงข�อมูลจากแอนาล็อกเป2นดิจิตอลขนาด 8 บิต

1.2.2 ไมโครคอนโทรลเลอร�ตระกูล MCS-51 (บริษัทผู�ผลิต Atmel, Phillips) 1.2.3 ไมโครคอนโทรลเลอร�ตระกูล AVR (บริษัทผู�ผลิต Atmel) 1.2.4 ไมโครคอนโทรลเลอร�ตระกูล ARM7,ARM9 (บริษัทผู�ผลิต Atmel, Phillips,

Analog Device, Samsung, STMicroelectronics) 1.2.5 ไมโครคอนโทรลเลอร�ตระกูล Basic Stamp (บริษัทผู�ผลิต Parallax) 1.2.6 ไมโครคอนโทรลเลอร�ตระกูล PSOC (บริษัทผู�ผลิต CYPRESS) 1.2.7 ไมโครคอนโทรลเลอร�ตระกูล MSP (บริษัทผู�ผลิต Texas Intruments) 1.2.8 ไมโครคอนโทรลเลอร�ตระกูล 68HC (บริษัทผู�ผลิต MOTOROLA) 1.2.9 ไมโครคอนโทรลเลอร�ตระกูล H8 (บริษัทผู�ผลิต Renesas) 1.2.10 ไมโครคอนโทรลเลอร�ตระกูล RABBIT (บริ ษัทผู�ผลิต RABBIT

SEMICONDUCTOR) 1.2.11 ไมโครคอนโทรลเลอร�ตระกูล Z80 (บริษัทผู�ผลิต Zilog)

1.3 ไมโครคอนโทรลเลอร�ตระกูล MCS-51

1.3.1 สถาปJตยกรรมไมโครคอนโทรลเลอร� MCS-51 ไมโครคอนโทรลเลอร�แบบชิปเด่ียวตระกูล MCS-51 มีอยู-ด�วยกันหลายเบอร� เช-น

80C31, 80C32, 80C51, 80C52, 89C51, 89C52 เป2นต�น

ภาพท่ี 4.2 การจัดวางตําแหน-งขาการทํางาน ของไมโครคอนโครลเลอร�ตระกูล MCS-51

Page 6: บทที่ 4 ไมโครโพรเซสเซอร และ ... · 2014-10-15 · 3) รีจิสเตอร i จะมีคา 00h 4) รีจิสเตอร

25

ไมโครคอนโทรลเลอร�ตระกูล MCS-51 เป2นไมโครคอนโทรลเลอร�ขนาด 8 บิต มีจํานวนขาในการทํางานท้ังหมด 40 ขา ประกอบด�วยขาสัญญาณต-าง ๆ ดังนี้

1. พอร�ต 0 ( P0.0 –P0.7) เป2นอินพุตหรือเอาท�พุตพอร�ต ถ�ามีการขยายหน-วยความจําภายนอกหรืออินพุต /เอาท�พุตภายนอกจะใช�เป2น Data Bus (D0 - D7) และ Address Bus (A0 - A7)

2. พอร�ต 1 (P1.0-P1.7) เป2นอินพุตหรือเอาท�พุตพอร�ต 3. พอร�ต 2 (P2.0-P2.7) เป2นอินพุตหรือเอาท�พุตพอร�ต ถ�ามีการต-อหน-วยความจําภายนอก

จะใช�เป2น Address Bus (A8-A15) 4. พอร�ต 3 (P3.0-P3.7) เป2นอินพุตหรือเอาท�พุตพอร�ต หรือทําหน�าท่ีตามชื่อหลังได�ดังนี้ 5. P3.0/TxD (Transmit Data) ใช�เป2นขาเอาท�พุตสําหรับส-งข�อมูลจากการสื่อสารแบบ

อนุกรม 6. P3.1/RxD (Receive Data) ใช�เป2นขาอินพุตสําหรับรับข�อมูลจากการสื่อสารแบบอนุกรม 7. P3.2/ 0INT (Interrupt 0) รับสัญญาณขัดจังหวะจากภายนอก No. 0 8. P3.3/ 1INT (Interrupt 1) รับสัญญาณขัดจังหวะจากภายนอก No. 1 9. P3.4/T0 (Timer/Counter0) สามารถโปรแกรมได�ว-าจะให�เป2น Timer หรือ Counter 10. P3.5/T1 (Timer/Counter1) ทําหน�าท่ีทํานองเดียวกับ T0 11. P3.6/WR (Write) ส-งสัญญาณควบคุมการเขียนข�อมูลจาก MCS-51ไปยังภายนอก 12. P3.7/RD (Read) ส-งสัญญาณควบคุมการอ-านข�อมูลจากภายนอกเข�ามายัง MCS-51 13. Reset เป2นขาอินพุต Active High เริ่มต�นทํางานขา Reset จะได�รับลอจิก “1” 14. XTAL 1 และ XTAL 2 เป2นขาท่ีใช�สําหรับต-อกับตัวคริสตอล เพ่ือสร�างสัญญาณนาฬิกา 15. EA (External Access) เป2นขาอินพุตถ�ารับลอจิก “0” ใช�โปรแกรมจัดระบบงานจาก

ภายนอก 16. ALE (Address Latch Enable) ขานี้จะส-งสัญญาณท่ีมีความถ่ี 1 / 6 เท-าของสัญญาณ

นาฬิกาจากคริสตอลมาตลอดเวลา ยกเว�นกรณีท่ีต�องการติดต-อกับหน-วยความจําภายนอก ขานี้จะเป2น ลอจิก “1” แล�วจะส-ง Address 8 บิต (A0- A7) มาท่ี P0.0-P0.7 ชั่วขณะแล�วเปลี่ยนเป2น Data Bus

17. PSEN (Program Store Enable) เม่ือต�องการอ-านโปรแกรมจากภายนอก ขานี้จะส-งสัญญาณ Active Low ออกมา 2 ครั้ง ในแต-ละแมชชีนไซเคิล ถ�าต�องการอ-านโปรแกรมจากภายในจะไม-มี สัญญาณท่ีขานี้

18. Vcc เป2นขาท่ีใช�สําหรับต-อไฟเลี้ยงวงจร แรงดันไฟฟ7ากระแสตรง 5 โวลท� 19. GND (Ground) เป2นขาท่ีใช�สําหรับต-อกับกราวด�ของวงจร

2.2 การจัดแบ งหน วยความจําของ MCS-51

2.2.1 Program Memory (ROM) 2.2.2 Data Memory (RAM)

Page 7: บทที่ 4 ไมโครโพรเซสเซอร และ ... · 2014-10-15 · 3) รีจิสเตอร i จะมีคา 00h 4) รีจิสเตอร

26

ตารางท่ี 2.1 ตําแหน-ง (Address) ของ Program Memory

2.3 รีจีสเตอร� (Register) หรือตัวแปร 2.3.1 รีจีสเตอร�ใช�งานท่ัวไป (R0-R7) 2.3.2 รีจีสเตอร�ใช�งานเฉพาะ (SFR : Special Function Register) AT89C51 มี SFR 22 ตัว ส-วน AT89C52 AT89SXX มี SFR 28 ตัว

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

Symbol Name of Register Address ACC *Accumulator E0H B *B Register F0H SP Stack Pointer 81H 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 รีจีสเตอร�เพ่ิมเติมของ AT89C52, AT89SXX วงจรกําเนิดสัญญาณนาฬิกา

Page 8: บทที่ 4 ไมโครโพรเซสเซอร และ ... · 2014-10-15 · 3) รีจิสเตอร i จะมีคา 00h 4) รีจิสเตอร

27

ใน MCS-51 มีส-วนของวงจรกําเนิดสัญญาณนาฬิกาอยู-ภายใน ซ่ึงสามารถใช�เป2นสัญญาณนาฬิกาให�กับ CPU ได� ในการใช�งานของ On-Chip Oscillator นั้น โดยการต-อคริสตอลเป2นตัวกําเนินความถ่ีและต�องใช�ตัวเก็บประจุต-อท่ีขา XTAL1 กับ XTAL2 แลดังภาพท่ี 4.3 (ก)

(ก) (ข) ภาพท่ี 4.3 วงจรกําเนิดสัญญาณนาฬิกา ท่ีมา (,59)

อย-างไรก็ดี ถ�าต�องการใช�สัญญาณ Clock จากภายนอก ก็ทําได�โดยการต-อสัญญาณ Ext. Clock เข�าท่ีขา XTAL1 ดังภาพท่ี 4.3 (ข) MACHINE CYCLES

สําหรับ MCS-51 Machine cycle จะประกอบด�วยการทํางาน 6 States (S1 – S6) ซ่ึงในแต-ละ State ของการทํางาน จะใช�เวลา 2 Clocks ดังนั้นถ�าใช� Clock 12 MHz ก็จะได�เวลาในการทํางานของ 1 Machine cycle คือ 1 µS

ในรูปเป2นตัวอย-างของการ Fetch / Execute ของคําสั่ง ซ่ึงจะในแต-ละ Machine cycle จะมีการ Fetch รหัสคําสั่ง 2 ครั้ง ถึงแม�ว-าคําสั่งนั้นๆ จะเป2นคําสั่งแบบ 1 Byte ก็ตาม ในกรณีท่ีคําสั่งนั้นๆ ไม-ต�องการข�อมูล Byte ท่ีสอง CPU ก็เพียงแต-ไม-สนใจข�อมูลท่ี Fetch ได�เกินมา และค-าของ PC ก็จะไม-เพ่ิมข้ึน

Page 9: บทที่ 4 ไมโครโพรเซสเซอร และ ... · 2014-10-15 · 3) รีจิสเตอร i จะมีคา 00h 4) รีจิสเตอร

28

จากรูป a และ b ซ่ึงเป2นคําสั่งท่ีใช�การทํางาน 1 Machine cycle ท่ี S1 CPU ก็จะอ-าน Op-code ท่ีต�องการเข�ามายัง Instruction register และท่ี S4 จะมีการ Fetch ครั้งท่ีสองเกิดข้ึน ซ่ึงในรูป a การ Fetch ครั้งท่ีสองนี้ CPU จะไม-สนใจข�อมูลท่ีได�มา ส-วนในรูป b ข�อมูลท่ีได�มาก็จะเป2น Byte ท่ีสองของคําสั่ง

จากรูป c เป2นการทํางานของคําสั่งท่ีใช�การทํางาน 2 Machine cycles CPU จะไม-สนใจข�อมูลท่ีได�จากการ Fetch 3 ครั้งด�วยกันและในรูป d เป2นการทํางานของคําสั่ง MOVX ซ่ึงเป2นการติดต-อกับ External data memory ในกรณีนี้ จะไม-มีการ Fetch เกิดข้ึน เนื่องเป2นการอ-านข�อมูลเข�าจาก External data memory

Page 10: บทที่ 4 ไมโครโพรเซสเซอร และ ... · 2014-10-15 · 3) รีจิสเตอร i จะมีคา 00h 4) รีจิสเตอร

29

ขบวนการ Fetch / Execute นี้จะเหมือนกัน ไม-ว-าจะเป2นการทํางานของโปรแกรมท่ีอยู-ใน Internal หรือ External program memory ดังนั้นแล�วมันจะใช�เวลาในการทํางานของคําสั่งต-างๆ เท-ากัน

จากรูป a จะเป2นการแสดงถึงจังหวะการทํางานของสัญญาณต-างๆ ของการ Fetch เม่ือคําสั่ง

นั้นอยู-ใน External program memory ซ่ึงสัญญาณ PSEN จะเกิดข้ึน 2 ครั้งต-อ Machine cycle ในรูป b จะแสดงสัญญาณต-างๆ ท่ีเกิดข้ึนเม่ือกระทําคําสั่งท่ีมีการติดต-อกับ External data memory การ Fetch จะถูกข�ามไป 2 ครั้ง และจะเห็นว-าจังหวะเวลาของการอ-านข�อมูลจาก External data memory นั้นจะใช�เวลาท่ีมากกว-าการอ-านข�อมูลจาก Program memory และจากรูป จะแสดงถึงจังหวะเวลาของการส-งค-า Address ท่ีต�องการออกมาทาง Port 0, Port 2, สัญญาณ ALE และ PSEN ซ่ึงสัญญาณ ALE นี้จะใช�ในการ Latch ค-าของ Low address byte ท่ีออกมาทาง Port 0 ส-วนเม่ือ CPU ทํางานจากคําสั่งท่ีอยู-ใน Internal program memory นั้น สัญญาณ PSEN จะไม-ทํางาน แต-อย-างไรก็ตามสําหรับสัญญาณ ALE จะทํางาน 2 ครั้งต-อ Machine cycle ตลอด แต-จะยกเว�นเม่ือ CPU ทํางานคําสั่ง MOVX

Page 11: บทที่ 4 ไมโครโพรเซสเซอร และ ... · 2014-10-15 · 3) รีจิสเตอร i จะมีคา 00h 4) รีจิสเตอร

30

Timing Diagram MCS-51

P0P1

P3 P2

ALE

EA

INTERNAL

ROMLATCH

OE

RAM

DATA

ADDR

WR

VCC

WR

PAGE

BITES

I/ORD

0000H

จังหวะเวลาการทํางานของสัญญาณต-างๆ ท่ีเกิดข้ึนนั้นสามารถจะแบ-งได�ดังนี้ เม่ือ Fetch Op-code จาก External Program Memory

เม่ือ MCS-51 อ-านข�อมูลจาก External Data Memory

Page 12: บทที่ 4 ไมโครโพรเซสเซอร และ ... · 2014-10-15 · 3) รีจิสเตอร i จะมีคา 00h 4) รีจิสเตอร

31

เม่ือ MCS-51 เขียนข�อมูลเข�า External Data Memory

เม่ือ MCS-51 ทํางานกับ I/O Port

Page 13: บทที่ 4 ไมโครโพรเซสเซอร และ ... · 2014-10-15 · 3) รีจิสเตอร i จะมีคา 00h 4) รีจิสเตอร

32

สรุปเนื้อหาท#ายบท ซีพียู Z - 80 มีหน-วยท่ีสําคัญ 5 หน-วย คือ 1. หน-วยควบคุม ทําหน�าท่ีควบคุมกลไกต-างๆ ในระบบ เช-นควบคุมบัสควบคุมซีพียูในการตอบรับ การขัดจังหวะท่ีอุปกรณ�ภายนอกร�องขอมา 2. หน-วยคํานวณ และตรรกะ ทําหน�าท่ีประมวลผล ทางคณิตศาสตร� และทางตรรกะ 3. กลุ-มรีจิสเตอร� ทําหน�าท่ีพักข�อมูล เพ่ือรอประมวลผล หรือเก็บผลลัพธ�มีท้ัง ขนาด 8 บิต และ 16 บิต 4. กลุ-มบัฟเฟอร� หรือ กลุ-มรีจิสเตอร�ท่ีพักข�อมูลรอส-งไปให�กับ ซีพียู หรืออุปกรณ�ภายนอก 5. กลุ-มบัสต-างๆ เช-น บัสข�อมูล ใช�เป2นทางเดินของกลุ-มข�อมูล บัสตําแหน-งท่ีอยู-ใช�เป2นทางเดินของตําแหน-งท่ีอยู- และบัสสําหรับควบคุมต-างๆ แบบฝ̂กหัด

1. Z - 80 มีส-วนประกอบท่ีสําคัญอะไรบ�าง 2. รีจิสเตอร�ใน Z - 80 มีก่ีอย-างอะไรบ�าง 3. จงบอกหน�าท่ี ของแอกคูมิวเลเตอร� 4. จงบอกหน�าท่ีของรีจิสเตอร�แฟล็ก 5. บัฟเฟอร�หมายถึงอะไร มีก่ีชนิด 6. ระบบบัสใน Z - 80 มีก่ีชนิด อะไรบ�าง 7. Z - 80 มีจํานวนขาบัสก่ีขา และมีหน�าท่ีอย-างไร 8. จงบอกความแตกต-างระหว-าง สัญญาณควบคุมระบบ กับสัญญาณควบคุมซีพียู

เอกสารอ#างอิง

Page 14: บทที่ 4 ไมโครโพรเซสเซอร และ ... · 2014-10-15 · 3) รีจิสเตอร i จะมีคา 00h 4) รีจิสเตอร

33

ไพศาล โมลิสกุลมงคง, ประสงค� ปราณีตพลกรัง, อนุโชต วุฒิพรพงษ� และ ศรายุธ คลังทอง.(2547).”สถาปJตยกรรมคอมพิวเตอร� (Computer Architecture)”. กรุงเทพ ฯ:ดวงกมลสมัย. Stallings, William. ().”สถาปJตยกรรมคอมพิวเตอร�”.ผู�แปล : สัลยุทธ� สว-างวรรณ.พิมพ�ครั้งท่ี 6. ซีอ็ดยูเคชั่น.กรุงเทพฯ. ZiLOG. (2004).”Z80 CPU User Manual”. ZiLOG Worldwide Headquarters.CA.