คอมพิวเตอร์ หน้าต่าง อินเทอร์เน็ต

ไมโครคอนโทรลเลอร์ในตระกูล mcs 51 ไมโครคอนโทรลเลอร์ MCS–51: โมเดลโปรแกรม โครงสร้าง คำสั่ง การลงทะเบียนฟังก์ชั่นพิเศษ

สถาปัตยกรรมของตระกูล MCS-51 นั้นถูกกำหนดโดยวัตถุประสงค์เป็นส่วนใหญ่ - การก่อสร้าง กะทัดรัดและ ราคาถูกอุปกรณ์ดิจิทัล ฟังก์ชั่นไมโครคอมพิวเตอร์ทั้งหมดใช้งานโดยใช้ไมโครวงจรเดียว ตระกูล MCS-51 มีวงจรไมโครหลากหลายตั้งแต่ไมโครคอนโทรลเลอร์ที่ง่ายที่สุดไปจนถึงไมโครคอนโทรลเลอร์ที่ค่อนข้างซับซ้อน ไมโครคอนโทรลเลอร์ของตระกูล MCS-51 ช่วยให้คุณสามารถทำงานทั้งการควบคุมสำหรับอุปกรณ์ต่าง ๆ และใช้ส่วนประกอบแต่ละส่วนของวงจรอะนาล็อก ไมโครวงจรทั้งหมดของตระกูลนี้ใช้งานได้เหมือนกัน ระบบคำสั่ง MCS-51ส่วนใหญ่จะดำเนินการในกรณีเดียวกันกับ pinout ที่ตรงกัน(การนับขาของร่างกาย) สิ่งนี้ทำให้อุปกรณ์ที่พัฒนาแล้วสามารถใช้ไมโครวงจรจาก บริษัท ต่าง ๆ เช่น Maxim, Atmel, NXP เป็นต้น (catalog..php?page=components_list&id=39"> ดูค้นหาตามพารามิเตอร์) โดยไม่ต้องเปลี่ยนแผนภาพวงจรของอุปกรณ์และโปรแกรม.

รูปที่ 1. บล็อกไดอะแกรมของคอนโทรลเลอร์ I8751

แผนภาพบล็อกของคอนโทรลเลอร์แสดงไว้ในรูปที่ 1 และประกอบด้วยหน่วยการทำงานหลักดังต่อไปนี้: หน่วยควบคุม หน่วยทางคณิตศาสตร์-โลจิคัล หน่วยจับเวลา/ตัวนับ อินเทอร์เฟซแบบอนุกรมและหน่วยขัดจังหวะ ตัวนับโปรแกรม หน่วยความจำข้อมูล และหน่วยความจำโปรแกรม การสื่อสารสองทางดำเนินการโดยใช้บัสข้อมูลภายใน 8 บิต

มาดูจุดประสงค์ของแต่ละบล็อกกันดีกว่า สมาชิกเกือบทั้งหมดของตระกูล MCS-51 ถูกสร้างขึ้นตามโครงการนี้. ไมโครวงจรต่างๆ ของตระกูลนี้แตกต่างกันเฉพาะในรีจิสเตอร์สำหรับวัตถุประสงค์พิเศษเท่านั้น (รวมถึงจำนวนพอร์ต) ระบบสั่งการของคอนโทรลเลอร์ตระกูล MCS-51 ทั้งหมดมีคำสั่งพื้นฐาน 111 คำสั่งในรูปแบบ 1, 2 หรือ 3 ไบต์และไม่เปลี่ยนแปลงเมื่อย้ายจากชิปหนึ่งไปยังอีกชิปหนึ่ง ช่วยให้มั่นใจได้ถึงความสามารถในการพกพาโปรแกรมที่ยอดเยี่ยมจากชิปตัวหนึ่งไปยังอีกชิปหนึ่ง

หน่วยควบคุมและการซิงโครไนซ์

หน่วยจับเวลาและการควบคุมได้รับการออกแบบเพื่อสร้างสัญญาณซิงโครไนซ์และควบคุมเพื่อให้แน่ใจว่าการทำงานร่วมกันของหน่วยคอมพิวเตอร์เมนเฟรมมีการประสานงานในโหมดการทำงานที่อนุญาตทั้งหมด ชุดควบคุมประกอบด้วย:

  • - อุปกรณ์สำหรับสร้างช่วงเวลา
  • - ตรรกะอินพุต - เอาท์พุต
  • - ลงทะเบียนคำสั่ง
  • - ทะเบียนควบคุมการใช้ไฟฟ้า
  • - ตัวถอดรหัสคำสั่ง ลอจิกควบคุมคอมพิวเตอร์

อุปกรณ์สำหรับสร้างช่วงเวลาออกแบบมาเพื่อสร้างและส่งสัญญาณนาฬิกาภายในของเฟส นาฬิกา และรอบ จำนวนรอบของเครื่องจักรจะกำหนดระยะเวลาของคำสั่ง คำสั่งคอมพิวเตอร์เกือบทั้งหมดจะดำเนินการในหนึ่งหรือสองรอบเครื่อง ยกเว้นคำสั่งการคูณและการหาร ซึ่งมีระยะเวลาดำเนินการคือสี่รอบเครื่อง ให้เราแสดงความถี่ของออสซิลเลเตอร์หลักด้วย F g จากนั้นระยะเวลาของวงจรเครื่องจักรจะเท่ากับ 12/F g หรือคือ 12 ช่วงของสัญญาณออสซิลเลเตอร์หลัก ตรรกะ I/O ได้รับการออกแบบมาเพื่อรับและส่งสัญญาณเอาท์พุตเพื่อให้แน่ใจว่ามีการแลกเปลี่ยนข้อมูลกับอุปกรณ์ภายนอกผ่านพอร์ตอินพุต/เอาท์พุต P0-P3

คำสั่งลงทะเบียนออกแบบมาเพื่อบันทึกและจัดเก็บรหัสการทำงาน 8 บิตของคำสั่งที่กำลังดำเนินการ รหัสการทำงานด้วยความช่วยเหลือของตัวถอดรหัสคำสั่งและลอจิกควบคุมคอมพิวเตอร์ จะถูกแปลงเป็นไมโครโปรแกรมเพื่อดำเนินการคำสั่ง

การลงทะเบียนการควบคุมความต้องการ (PCON)ช่วยให้คุณหยุดไมโครคอนโทรลเลอร์เพื่อลดการใช้พลังงานและลดระดับการรบกวนจากไมโครคอนโทรลเลอร์ การลดการใช้พลังงานและการรบกวนมากยิ่งขึ้นสามารถทำได้โดยการหยุดออสซิลเลเตอร์หลักของไมโครคอนโทรลเลอร์ ซึ่งสามารถทำได้โดยการสลับบิตของรีจิสเตอร์ควบคุมการใช้ PCON สำหรับตัวเลือกการผลิต n-MOS (ซีรีส์ 1816 หรือชิปต่างประเทศที่ไม่มี "c" อยู่ตรงกลางชื่อ) รีจิสเตอร์ควบคุมการใช้ PCON จะมีเพียงบิตเดียวที่ควบคุมอัตรารับส่งข้อมูลของพอร์ตอนุกรม SMOD และ ไม่มีบิตควบคุมการใช้พลังงาน

หน่วยตรรกะทางคณิตศาสตร์ (ALU)เป็นอุปกรณ์แปดบิตคู่ขนานที่ดำเนินการทางคณิตศาสตร์และตรรกะ ALU ประกอบด้วย:

  • - แอคคิวมูเลเตอร์รีจิสเตอร์, รีจิสเตอร์จัดเก็บข้อมูลชั่วคราว TMP1 และ TMP2,
  • - ค่าคงที่รอม
  • - แอดเดอร์
  • - ทะเบียนเพิ่มเติม (ทะเบียน B)
  • - แบตเตอรี่ (ACC)
  • - การลงทะเบียนสถานะโปรแกรม (PSW)

ลงทะเบียน แบตเตอรี่และ ถือทะเบียน- รีจิสเตอร์ 8 บิตที่ออกแบบมาเพื่อรับและจัดเก็บตัวถูกดำเนินการในขณะที่ดำเนินการกับสิ่งเหล่านั้น การลงทะเบียนเหล่านี้ไม่สามารถเข้าถึงได้โดยทางโปรแกรม

รอมคงที่รับประกันการสร้างรหัสแก้ไขสำหรับการแสดงข้อมูลทศนิยมไบนารี รหัสมาสก์สำหรับการดำเนินการบิต และรหัสคงที่

ตัวบวกแปดบิตแบบขนานเป็นวงจรผลรวมแบบซีเควนเชียลที่ออกแบบมาเพื่อดำเนินการทางคณิตศาสตร์ของการบวก การลบ และการดำเนินการทางตรรกะของการบวก การคูณ ความแตกต่าง และเอกลักษณ์

ลงทะเบียน บี- รีจิสเตอร์ 8 บิตที่ใช้ในระหว่างการคูณและการหาร สำหรับคำแนะนำอื่นๆ อาจถือเป็นการลงทะเบียนแบบเรียลไทม์เพิ่มเติมได้

แบตเตอรี่- การลงทะเบียนแปดบิตที่ออกแบบมาเพื่อรับและจัดเก็บผลลัพธ์ที่ได้รับเมื่อดำเนินการทางคณิตศาสตร์ - ตรรกะหรือการดำเนินการกะ

อินเทอร์เฟซแบบอนุกรมและหน่วยขัดจังหวะ (SIP)ออกแบบมาเพื่อจัดระเบียบอินพุต/เอาท์พุตของการไหลของข้อมูลตามลำดับและจัดระเบียบระบบการหยุดชะงักของโปรแกรม บล็อกประกอบด้วย:

  1. - บัฟเฟอร์ PIP
  2. - ตรรกะการควบคุม
  3. - ควบคุมการลงทะเบียน
  4. - บัฟเฟอร์เครื่องส่งสัญญาณ
  5. - บัฟเฟอร์ตัวรับ
  6. - ตัวรับส่งสัญญาณพอร์ตอนุกรม
  7. - ขัดจังหวะการลงทะเบียนลำดับความสำคัญ
  8. - ขัดจังหวะการเปิดใช้งานการลงทะเบียน
  9. - ตรรกะการประมวลผลแฟล็กขัดจังหวะและวงจรการสร้างเวกเตอร์

โปรแกรมเคาน์เตอร์ออกแบบมาเพื่อสร้างที่อยู่ 16 บิตปัจจุบันของหน่วยความจำโปรแกรมภายในและที่อยู่ 8/16 บิตของหน่วยความจำโปรแกรมภายนอก ตัวนับโปรแกรมประกอบด้วยบัฟเฟอร์ PC 16 บิต การลงทะเบียน PC และวงจรส่วนเพิ่ม (เพิ่มเนื้อหา 1)

หน่วยความจำข้อมูล (RAM)มีไว้สำหรับการจัดเก็บข้อมูลชั่วคราวที่ใช้ระหว่างการทำงานของโปรแกรม

พอร์ต P0, P1, P2, P3เป็นพอร์ตอินพุต-เอาท์พุตกึ่งสองทิศทาง และได้รับการออกแบบเพื่อให้แน่ใจว่ามีการแลกเปลี่ยนข้อมูลระหว่างคอมพิวเตอร์และอุปกรณ์ภายนอก รวมกันเป็น 32 เส้นอินพุต-เอาต์พุต

อุปกรณ์จับเวลารุ่นพื้นฐานของตระกูลมีตัวจับเวลา/ตัวนับ 16 บิตที่ตั้งโปรแกรมได้สองตัว (T/C0 และ T/C1) ซึ่งสามารถใช้เป็นทั้งตัวจับเวลาและเป็นตัวนับเหตุการณ์ภายนอก

การลงทะเบียนสถานะโปรแกรม (PSW)ออกแบบมาเพื่อจัดเก็บข้อมูลเกี่ยวกับสถานะของ ALU ระหว่างการทำงานของโปรแกรม

หน่วยความจำโปรแกรม (EPROM)ออกแบบมาเพื่อจัดเก็บโปรแกรมและเป็นหน่วยความจำแบบอ่านอย่างเดียว (ROM) ไมโครวงจรที่แตกต่างกันใช้ ROM ที่ถูกปิดบังซึ่งสามารถลบได้ด้วยรังสีอัลตราไวโอเลตหรือ แฟลชรอม.

การลงทะเบียนตัวชี้ข้อมูล (DPTR)ออกแบบมาเพื่อจัดเก็บที่อยู่ 16 บิตของหน่วยความจำข้อมูลภายนอกหรือหน่วยความจำโปรแกรม

ตัวชี้สแต็ก (SP)เป็นรีจิสเตอร์ 8 บิตที่ออกแบบมาเพื่อจัดระเบียบพื้นที่หน่วยความจำข้อมูลพิเศษ (สแต็ก) ซึ่งสามารถจัดเก็บเซลล์หน่วยความจำใดๆ ไว้ชั่วคราวได้



ต้นกำเนิดของการผลิตไมโครคอนโทรลเลอร์คือ Intel ซึ่งมีตระกูลไมโครคอนโทรลเลอร์แปดบิต 8048 และ 8051 สถาปัตยกรรม MCS-51 ใช้ชื่อมาจากตัวแทนคนแรกของตระกูลนี้ - ไมโครคอนโทรลเลอร์ 8051 ซึ่งเปิดตัวในปี 1980 โดยใช้เทคโนโลยี HMOS ชุดอุปกรณ์ต่อพ่วงที่ประสบความสำเร็จ ความสามารถในการเลือกหน่วยความจำโปรแกรมภายนอกหรือภายในอย่างยืดหยุ่น และราคาที่เอื้อมถึงทำให้ไมโครคอนโทรลเลอร์ตัวนี้ประสบความสำเร็จในตลาด จากมุมมองของเทคโนโลยี ไมโครคอนโทรลเลอร์ 8051 เป็นผลิตภัณฑ์ที่ซับซ้อนมากในช่วงเวลานั้น - ใช้ทรานซิสเตอร์ 128,000 ตัวในคริสตัล ซึ่งเป็น 4 เท่าของจำนวนทรานซิสเตอร์ในไมโครโปรเซสเซอร์ 16 บิต 8086

องค์ประกอบหลักของสถาปัตยกรรมพื้นฐานคือ:
- ALU 8 บิตตามสถาปัตยกรรมแบตเตอรี่
- ธนาคารลงทะเบียน 4 แห่งละ 8 แห่ง
- หน่วยความจำโปรแกรมในตัว 4KB;
- RAM ภายใน 128 ไบต์;
- โปรเซสเซอร์บูลีน
-2 ตัวจับเวลาสิบหกบิต;
- ตัวควบคุมช่องสัญญาณอนุกรม (UART)
- ตัวควบคุมการประมวลผลขัดจังหวะที่มีลำดับความสำคัญสองระดับ
- พอร์ต I/O 8 บิต 4 พอร์ต โดย 2 พอร์ตใช้เป็นแอดเดรส/บัสข้อมูลสำหรับเข้าถึงโปรแกรมภายนอกและหน่วยความจำข้อมูล
- เครื่องกำเนิดสัญญาณนาฬิกาในตัว

ไมโครคอนโทรลเลอร์นี้เป็นที่รู้จักมากที่สุดสำหรับนักพัฒนาและเป็นเครื่องมือควบคุมยอดนิยมในอุปกรณ์หลากหลายประเภท มีโปรแกรมจำลอง โปรแกรมดีบักเกอร์ และโปรแกรมเมอร์ชิป 8051 มากมาย การพัฒนาซอฟต์แวร์จึงเป็นเรื่องง่าย

ขั้นตอนพื้นฐานถัดไปในการพัฒนา MCS-51 คือการถ่ายทอดเทคโนโลยีการผลิตไปยัง CHMOS ซึ่งทำให้สามารถใช้โหมด Idle และ Power Down ได้ ซึ่งช่วยลดการใช้พลังงานของคริสตัลได้อย่างมาก และปูทางไปสู่การใช้ไมโครคอนโทรลเลอร์ในการใช้งานที่ต้องพึ่งพาพลังงาน เช่น ในอุปกรณ์ที่ใช้พลังงานจากแบตเตอรี่แบบสแตนด์อโลน

และขั้นตอนพื้นฐานสุดท้ายในการพัฒนาทิศทางนี้โดย Intel ภายในกรอบงานสถาปัตยกรรม 8 บิตคือการเปิดตัวไมโครคอนโทรลเลอร์ 8xC51FA/FB/FC ซึ่งเรียกสั้น ๆ ว่า 8xC51FX ลักษณะเด่นที่สำคัญของคริสตัลกลุ่มนี้คือการมีอยู่ของอาร์เรย์ตัวนับแบบตั้งโปรแกรมได้ (PCA) แผนภาพบล็อก PCA แสดงในรูปที่ 2

PCA รวมถึง:

เครื่องนับเวลาทำหน้าที่โมดูลการสุ่มตัวอย่างและการเปรียบเทียบทั้งห้าโมดูล ซึ่งสามารถตั้งโปรแกรมให้ทำหน้าที่อย่างใดอย่างหนึ่งต่อไปนี้ได้:

การสุ่มตัวอย่าง 16 บิตของค่าตัวจับเวลาบนขอบบวกของสัญญาณภายนอก
การสุ่มตัวอย่าง 16 บิตของค่าตัวจับเวลาบนขอบลบของสัญญาณภายนอก
การสุ่มตัวอย่าง 16 บิตของค่าตัวจับเวลาบนขอบใดๆ ของสัญญาณภายนอก
ตัวจับเวลาซอฟต์แวร์ 16 บิต;
เอาต์พุตความเร็วสูง 16 บิต (HSO);
พีเอ็มดับเบิลยู 8 บิต

ฟังก์ชันทั้งหมดที่กล่าวมาข้างต้นดำเนินการใน PCA ที่ระดับฮาร์ดแวร์ และไม่โหลดโปรเซสเซอร์กลาง ซึ่งช่วยเพิ่มปริมาณงานของระบบโดยรวม เพิ่มความแม่นยำในการวัดและการประมวลผลสัญญาณ และลดเวลาตอบสนองของไมโครคอนโทรลเลอร์ต่อเหตุการณ์ภายนอก ซึ่ง มีความสำคัญอย่างยิ่งต่อระบบเรียลไทม์ PCA ที่ใช้ใน 8xC51FX ประสบความสำเร็จอย่างมากจนสถาปัตยกรรมไมโครคอนโทรลเลอร์ FX กลายเป็นมาตรฐานอุตสาหกรรมโดยพฤตินัย และ PCA เองก็ได้รับการทำซ้ำหลายครั้งในการดัดแปลงไมโครคอนโทรลเลอร์ต่างๆ จากบริษัทต่างๆ

ในตอนแรก ปัญหาคอขวดที่ใหญ่ที่สุดของสถาปัตยกรรม MCS-51 คือ ALU ที่ใช้แบตเตอรี่ 8 บิต และการดำเนินการคำสั่งที่ค่อนข้างช้า (คำสั่งที่เร็วที่สุดต้องใช้ 12 รอบสัญญาณนาฬิกาในการดำเนินการ) สิ่งนี้จำกัดการใช้ไมโครคอนโทรลเลอร์ในตระกูลในแอปพลิเคชันที่ต้องการความเร็วที่เพิ่มขึ้นและการคำนวณที่ซับซ้อน (16- และ 32- บิต) ปัญหาของการปรับปรุงพื้นฐานของสถาปัตยกรรมเก่าให้ทันสมัยกลายเป็นเรื่องเร่งด่วน ปัญหาของการปรับปรุงให้ทันสมัยนั้นซับซ้อนเนื่องจากความจริงที่ว่าในช่วงต้นทศวรรษที่ 90 มีการพัฒนาซอฟต์แวร์และฮาร์ดแวร์มากมายได้ถูกสร้างขึ้นแล้วและหนึ่งในภารกิจหลักในการพัฒนาสถาปัตยกรรมใหม่คือการใช้ความเข้ากันได้ของฮาร์ดแวร์และซอฟต์แวร์ ด้วยการพัฒนาที่เก่ากว่าโดยใช้ MCS-51 เพื่อแก้ไขปัญหานี้ จึงได้จัดตั้งกลุ่มผู้เชี่ยวชาญร่วมกันจาก Intel และ Philips เป็นผลให้ในปี 1995 มี 2 ตระกูลที่แตกต่างกันอย่างมีนัยสำคัญปรากฏขึ้น: MCS-251/151 จาก Intel และ 51XA จาก Philips (เราจะพูดถึงเรื่องหลังด้านล่าง)

ลักษณะสำคัญของสถาปัตยกรรม MSC-251:

พื้นที่ที่อยู่เชิงเส้น 24 บิตระบุที่อยู่หน่วยความจำสูงสุด 16M(ไมโครคอนโทรลเลอร์ที่ผลิตขึ้นในตระกูล MCS-251 มีพื้นที่ที่อยู่หน่วยความจำ 256K)
ระบบคำสั่งของไมโครคอนโทรลเลอร์ตระกูล MCS-251 ประกอบด้วยคำสั่งทั้งหมด 111 คำสั่งที่รวมอยู่ในระบบคำสั่งของไมโครคอนโทรลเลอร์ตระกูล MCS-51 (“คำสั่งเก่า”) และยังมีคำสั่ง “ใหม่” อีก 157 คำสั่ง รหัสคำสั่งใหม่บางรหัสอยู่ในรูปแบบ 4 ไบต์
ก่อนที่จะใช้ไมโครคอนโทรลเลอร์จะต้องกำหนดค่าก่อนเช่น ใช้โปรแกรมเมอร์ "เบิร์น" ไบต์การกำหนดค่าที่กำหนดว่าชุดคำสั่งใดที่จะใช้งานได้หลังจากเปิดเครื่อง หากคุณติดตั้งชุดคำสั่ง MCS-51 MSC-251 จะเข้ากันได้กับ MCS-51 ในระดับรหัสไบนารี่ โหมดนี้เรียกว่าโหมดไบนารี่ อย่างไรก็ตาม คำแนะนำเพิ่มเติมในโหมดนี้ยังสามารถดูได้จาก "หน้าต่าง" - รหัสคำสั่งที่สงวนไว้ 0A5h โดยปกติแล้ว ความยาวของคำสั่งเพิ่มเติมแต่ละคำสั่งในกรณีนี้จะเพิ่มขึ้น 1 ไบต์ หากคุณติดตั้งชุดคำสั่งเพิ่มเติมในตอนแรก ในกรณีนี้ โปรแกรมที่เขียนสำหรับ MCS-51 จะต้องมีการคอมไพล์ใหม่โดยใช้เครื่องมือข้ามสำหรับ MCS-51 เนื่องจาก ตอนนี้คำสั่งมาตรฐานจะพร้อมใช้งานผ่าน "หน้าต่าง" 0A5h เดียวกันและความยาวจะเพิ่มขึ้น 1 ไบต์ด้วย โหมดนี้เรียกว่าโหมดแหล่งที่มา ช่วยให้คุณสามารถใช้คำสั่งเพิ่มเติมได้อย่างมีประสิทธิภาพสูงสุดและบรรลุประสิทธิภาพสูงสุด แต่ต้องมีการปรับปรุงซอฟต์แวร์
สถาปัตยกรรมรีจิสเตอร์ อนุญาตให้เข้าถึงรีจิสเตอร์ในรูปแบบไบต์ คำ และคำคู่
โหมดการกำหนดที่อยู่หน้าเพื่อเพิ่มความเร็วในการดึงคำแนะนำจากหน่วยความจำโปรแกรมภายนอก
คิวคำสั่ง
ชุดคำสั่งเพิ่มเติม รวมถึงคำสั่งทางคณิตศาสตร์และตรรกะ 16 บิต
ขยายพื้นที่ที่อยู่สแต็กสูงสุด 64K;
การดำเนินการคำสั่งที่เร็วที่สุดใน 2 รอบนาฬิกา
ความเข้ากันได้แบบไบนารีกับโปรแกรมสำหรับ MCS-51

สำหรับผู้ใช้ที่มุ่งเน้นการใช้ไมโครคอนโทรลเลอร์ MCS-251 ทดแทนกลไกสำหรับ MCS-51 นั้น Intel ได้ผลิตไมโครคอนโทรลเลอร์ MCS-251 พร้อมบิตการกำหนดค่าที่ตั้งโปรแกรมไว้แล้วในสถานะโหมดไบนารี ไมโครคอนโทรลเลอร์ดังกล่าวได้รับดัชนี MCS-151

นอกจาก Intel เองแล้ว Temic Semiconductors ยังผลิตไมโครคอนโทรลเลอร์ MCS-251 ภายใต้ใบอนุญาต

Universal Serial Bus (USB) ขยายเทคโนโลยี Plug-and-Play ไปยังอุปกรณ์อินพุต/เอาท์พุตภายนอกที่ใช้กับคอมพิวเตอร์ส่วนบุคคลประสิทธิภาพสูงสมัยใหม่

เพื่อให้สามารถเชื่อมต่ออุปกรณ์ต่อพ่วงได้หลากหลาย มาตรฐาน USB จึงกำหนดโหมดการถ่ายโอนสี่โหมด: ควบคุม, ไอโซโครนัส, พัลส์ และอาเรย์ถ่ายโอน อุปกรณ์ต่อพ่วงแต่ละชิ้นต้องรองรับโหมดควบคุมเพื่อถ่ายโอนพารามิเตอร์การกำหนดค่า คำสั่ง และข้อมูลสถานะอุปกรณ์ การส่งข้อมูลแบบไอโซโครนัสรับประกันการเข้าถึงบัส ปริมาณงานคงที่ และความทนทานต่อข้อผิดพลาด และสามารถใช้ในอุปกรณ์เอาต์พุตเสียงและแอปพลิเคชันระบบโทรศัพท์คอมพิวเตอร์ การส่งผ่านพัลส์มีไว้สำหรับอุปกรณ์อินพุต เช่น เมาส์ จอยสติ๊ก หรือแป้นพิมพ์ที่ส่งข้อมูลไม่บ่อยและเป็นส่วนเล็กๆ แต่มีระยะเวลาการให้บริการที่จำกัด การถ่ายโอนจำนวนมากช่วยให้อุปกรณ์ต่างๆ เช่น เครื่องสแกน เครื่องแฟกซ์ หรือกล้องดิจิทัล สามารถถ่ายโอนข้อมูลจำนวนมากไปยังคอมพิวเตอร์ส่วนบุคคลได้ทันทีที่มีช่องสัญญาณบัส

คุณสมบัติผลิตภัณฑ์หลัก

เข้ากันได้อย่างสมบูรณ์กับ "Universal Serial Bus Specification 1.0"
ตัวรับส่งสัญญาณ USB ในตัว Serial Bus Interface Engine (SIE)
คิว FIFO สี่คิวสำหรับการส่งสัญญาณ
คิว FIFO ขนาด 16 ไบต์สามคิว
สี่ FIFO รับคิว
คิว FIFO ขนาด 16 ไบต์สามคิว
คิว FIFO ที่กำหนดค่าได้หนึ่งคิว (สูงสุด 1,024 ไบต์)
ควบคุมการส่ง/รับอัตโนมัติในคิว FIFO
หยุด/ดำเนินการต่อ
เวกเตอร์ขัดจังหวะบัส USB สามตัว
วงจรล็อคเฟส
อัตราการถ่ายโอนข้อมูล: 12 Mbit/s และ 1.5 Mbit/s
โหมดวงจรช้า
พื้นที่ที่อยู่ภายนอก 256 KB
โหมดประหยัดพลังงาน: สแตนด์บายและปิดเครื่อง
พารามิเตอร์ที่ผู้ใช้กำหนด
รอเวลาจริง
RAM บนชิป 1 KB
พอร์ต I/O สี่พอร์ต
อาร์เรย์ตัวนับแบบตั้งโปรแกรมได้ (PCA)
ไมโครคอนโทรลเลอร์ UART มาตรฐาน (MCS 51)
ตัวจับเวลาจ้องจับผิดฮาร์ดแวร์
ตัวจับเวลา/ตัวนับ 16 บิต 3 ตัวพร้อมความสามารถที่ยืดหยุ่น
เข้ากันได้กับชุดคำสั่งไมโครคอนโทรลเลอร์สถาปัตยกรรม MCS 51 และ MCS 251
สถาปัตยกรรมไมโครคอนโทรลเลอร์ MCS 251 ตามรีจิสเตอร์
ความถี่การทำงาน 6 หรือ 12 MHz

คอนโทรลเลอร์ 8x930Hx มีคุณสมบัติเพิ่มเติม:

ฮับ ​​USB
ตัวเลือกการควบคุมฮับ USB
การจัดการการเชื่อมต่อ
การตรวจจับการเชื่อมต่อ/ขาดการเชื่อมต่อกับอุปกรณ์เอาต์พุต
การจัดการพลังงานรวมถึงการหยุด/ดำเนินการต่อ
การตรวจจับข้อผิดพลาดของบัสและการกู้คืน
รองรับอุปกรณ์เอาท์พุตความเร็วเต็มและความเร็วต่ำ
หน้าสัมผัสเอาต์พุตสำหรับการสลับพลังงานพอร์ต
หน้าสัมผัสอินพุตสำหรับการตรวจจับโอเวอร์โหลด

โหมดการถ่ายโอนข้อมูล USB ที่แตกต่างกันสี่โหมดนั้นมาจากการทำงานร่วมกันขององค์ประกอบสามประการ: โฮสต์, ฮับ, อุปกรณ์ที่ใช้งานได้ โฮสต์ควบคุมการส่งเนื้อหาและข้อมูลควบคุมผ่านบัส อุปกรณ์การทำงานขยายระบบโฮสต์ ซึ่งรวมถึงงานประเภททั่วไปกับพีซี: อินพุตจากแป้นพิมพ์หรือจอยสติ๊ก เอาต์พุตไปยังจอภาพ ตลอดจนกิจกรรมที่ซับซ้อนมากขึ้น เช่น ระบบโทรศัพท์ดิจิทัลและการส่งภาพ ไมโครคอนโทรลเลอร์ Intel 8x930Ax ได้รับการออกแบบมาเพื่อควบคุมอุปกรณ์ที่ใช้งานได้ สุดท้ายนี้ ฮับจะมีจุดขยาย USB ที่ให้การเข้าถึงอุปกรณ์อื่นๆ ที่ใช้งานได้ ไมโครคอนโทรลเลอร์ Intel 8x930Hx ซึ่งรวมอุปกรณ์ที่ใช้งานได้และฟังก์ชันการควบคุมฮับ USB ไว้ด้วยกัน เป็นฮับ USB ตัวแรกที่มีจำหน่ายในท้องตลาดตัวแรกที่ออกแบบมาสำหรับอุปกรณ์ต่อพ่วงพีซีสมัยใหม่

ฮับ ​​USB มีบทบาทสำคัญในการขยายโลกของผู้ใช้พีซี ด้วยการถือกำเนิดของอุปกรณ์ต่อพ่วง เช่น คีย์บอร์ด จอภาพ เครื่องพิมพ์ และอื่นๆ ที่มีฮับในตัว การเชื่อมต่อหรือถอดปลั๊กอุปกรณ์ใหม่จึงทำได้ง่ายเหมือนกับการเสียบเข้ากับเต้ารับ ประสิทธิภาพระดับใหม่และการเชื่อมต่อ USB ที่ขยายอาจนำไปสู่อุปกรณ์รุ่นใหม่สำหรับการใช้งานด้านการทำงานและความบันเทิง จำนวนวันของการ์ดที่ฝังอยู่ ข้อขัดแย้งของ IRQ และสายที่พันกันพันกันจะถูกนับไว้

สายเคเบิลบัส USB ประกอบด้วยสายไฟเพียงสี่เส้นเท่านั้น: Vbus, D+, D- และ GND - ซึ่งทำให้การเชื่อมต่อง่ายขึ้นและสม่ำเสมอยิ่งขึ้น ขั้วต่อมาตรฐานเดียวสำหรับเชื่อมต่ออุปกรณ์ต่อพ่วงเข้ากับบัส USB มีจุดประสงค์เดียวกัน ข้อมูลจะถูกถ่ายโอนแตกต่างกันบนสายเคเบิล D+ และ D-: ที่ความเร็วเต็ม 12 Mbps หรือที่ความเร็วต่ำ 1.5 Mbps ตัวรับส่งสัญญาณถูกสร้างขึ้นในชิป ดังนั้นจึงไม่จำเป็นต้องใช้วงจรอิเล็กทรอนิกส์ภายนอก ข้อยกเว้นคือตัวต้านทานโหลดขั้วต่อบนทั้งเส้น D+ และ D- ซึ่งจำเป็นในการพิจารณาว่าอุปกรณ์นั้นมีความเร็วสูงหรือความเร็วต่ำ

ภาพรวมของครอบครัว
ตระกูล Intel 8x930 ประกอบด้วยตัวควบคุมชิปเดี่ยวสองตัว

คอนโทรลเลอร์ Intel 8x930Ax เป็นอุปกรณ์ 8 บิตที่ใช้สถาปัตยกรรมไมโครคอนโทรลเลอร์ MCS 251 และได้รับการออกแบบให้ทำงานกับอุปกรณ์ต่อพ่วงที่เชื่อมต่อกับบัส USB ในทางกลับกัน 8x930Hx ใช้แกนไมโครคอนโทรลเลอร์ MCS 251 เดียวกัน บวกกับความสามารถที่เพิ่มขึ้นของฮับบัส USB ในตัว การใช้สถาปัตยกรรม MCS 251 ในตัวควบคุมบัส USB ทั้งสองมีข้อดีดังต่อไปนี้:

ประสิทธิภาพสูง
การประยุกต์ใช้หน่วยความจำและการกำหนดแอดเดรสประเภทผสม
การใช้พลังงานต่ำ
ระดับเสียงรบกวนต่ำ
การสนับสนุนที่มีประสิทธิภาพสำหรับภาษาระดับสูง
ชุดคำสั่งขยาย
ความสามารถในตัว

8x930Ax สามารถใช้คำสั่งจากทั้งชุดไมโครคอนโทรลเลอร์ MCS 51 และชุดไมโครคอนโทรลเลอร์ MCS 251 เป็นคำแนะนำ วิธีการนี้ช่วยรักษาการลงทุนของผู้ใช้ในซอฟต์แวร์และบีบประสิทธิภาพสูงสุดออกจากแอปพลิเคชัน

ไมโครคอนโทรลเลอร์ขนาด 8x930 มีคุณสมบัติในตัวมากมายจนดูทรงพลังมากกว่าไมโครคอนโทรลเลอร์ Programmable Counter Array (PCA) มอบความยืดหยุ่นสำหรับแอปพลิเคชันที่ต้องการการเปรียบเทียบหรือบันทึกข้อมูลแบบเรียลไทม์ การสื่อสารความเร็วสูง หรือการมอดูเลตความกว้างพัลส์ นอกจากนี้ คอนโทรลเลอร์ยังมีพอร์ตอนุกรมแบบขยาย, ตัวจับเวลา/เคาน์เตอร์ 16 บิต 3 ตัว, อุปกรณ์เฝ้าระวังฮาร์ดแวร์ 1 ตัว, พอร์ต I/O 8 บิต 4 พอร์ต และโหมดประหยัดพลังงาน 2 โหมด ได้แก่ โหมดสลีปและปิดเครื่อง

คอนโทรลเลอร์ตระกูล 8x930Ax มีหน่วยความจำ 1 KB และสามารถใช้ได้ในเวอร์ชันที่ไม่มีหน่วยความจำถาวร หรือมีหน่วยความจำถาวร 8 หรือ 16 KB สามารถรองรับหน่วยความจำภายนอกได้สูงสุด 256 KB สำหรับคำแนะนำและข้อมูล และรีจิสเตอร์สำหรับวัตถุประสงค์ทั่วไปขนาด 40 ไบต์ ซึ่งอยู่ในโปรเซสเซอร์กลางเป็นไฟล์รีจิสเตอร์ ขึ้นอยู่กับการรวมกันที่ใช้ ไฟล์รีจิสเตอร์อาจมีรีจิสเตอร์ 16 ไบต์, รีจิสเตอร์แบบสองไบต์ 16 รายการ และรีจิสเตอร์สี่ไบต์ 10 รายการ

คอนโทรลเลอร์มีอินเทอร์เฟซที่ยืดหยุ่นพร้อมหน่วยความจำภายนอก ในการเข้าถึงอุปกรณ์ที่มีหน่วยความจำช้า คุณสามารถเพิ่มรอบการรอได้สามรอบ และหากต้องการสร้างรอบเพิ่มขึ้น ก็เป็นไปได้ที่จะเรียกใช้ฟังก์ชันเรียลไทม์ได้ การดึงคำสั่งภายนอกสามารถปรับปรุงประสิทธิภาพได้โดยใช้โหมดเพจ ซึ่งจะสับเปลี่ยนข้อมูลในไบต์สูงของที่อยู่

คอนโทรลเลอร์ 8x930 ทั้งสองมีคิว FIFO แปดคิวเพื่อรองรับอุปกรณ์เอาท์พุตภายใน ได้แก่ คิวส่งสี่คิว และคิวรับสี่คิว คิวส่ง/รับ FIFO สี่คิวรองรับหน่วยการทำงานปลายทางสี่หน่วย (0 ถึง 3) คิว 0 ประกอบด้วย 16 ไบต์และมีไว้สำหรับส่งข้อมูลการควบคุม คิว 1 ผู้ใช้สามารถกำหนดค่าได้และมีความจุสูงสุด 1,024 ไบต์ คิว 2 และ 3 ประกอบด้วยแต่ละคิวขนาด 16 ไบต์ และสามารถใช้เพื่อส่งข้อมูลในโหมดต่อเนื่อง, แบบไอโซโครนัส และอาร์เรย์ เมื่อใช้คอนโทรลเลอร์ 8x930Hx คิวเหล่านี้จะได้รับการเสริมด้วยคิว FIFO คู่หนึ่งสำหรับอุปกรณ์อินพุต คิวเหล่านี้ในคอนโทรลเลอร์ 8x930Hx ได้รับการสนับสนุนโดยรีพีทเตอร์เพิ่มเติม ซึ่งมีหน้าที่ในการส่งสตรีมข้อมูลที่สร้างโดยอุปกรณ์เอาท์พุตอีกครั้ง

ภาพรวมสถาปัตยกรรม
ตามโครงสร้าง การใช้งาน USB ในไมโครคอนโทรลเลอร์ 8x930Ax และ 8x930Hx สามารถแบ่งออกเป็นสี่บล็อก ได้แก่ คิว FIFO บล็อกอินเทอร์เฟซพร้อมอุปกรณ์ที่ใช้งานได้ บล็อกอินเทอร์เฟซบัสอนุกรม และเครื่องรับส่งสัญญาณ คอนโทรลเลอร์ 8x930Hx มีบล็อกเพิ่มเติมสำหรับควบคุมการทำงานของฮับ ได้แก่ บล็อกอินเทอร์เฟซฮับและรีพีทเตอร์

คิวการรับและส่ง FIFO บนคอนโทรลเลอร์ทั้งสองเป็นแบบวงกลม คิวรองรับชุดข้อมูลที่แยกจากกันได้ถึงสองชุดที่มีขนาดตัวแปร และมีการลงทะเบียนตัวนับไบต์ที่ระบุจำนวนไบต์ในชุดข้อมูล คิวมีแฟล็กที่ระบุว่าคิวเต็มหรือว่างเปล่า และยังสามารถรับหรือส่งข้อมูลชุดปัจจุบันซ้ำได้อีกด้วย Functional Unit Interface Unit (FUI) กระจายข้อมูล USB ที่ส่งหรือรับตามประเภทของการส่งและสถานะของคิว นอกจากนี้ บล็อก FFU ยังตรวจสอบสถานะธุรกรรม จัดการคิว FIFO และรายงานเหตุการณ์การควบคุมที่เกิดขึ้นไปยังโปรเซสเซอร์กลาง 8x930 โดยใช้คำขอขัดจังหวะ

บล็อกอินเทอร์เฟซบัสอนุกรมใช้โปรโตคอลการส่งผ่าน USB: จัดเรียงแพ็กเก็ตตามลำดับ สร้างและจดจำสัญญาณ สร้างและตรวจสอบเช็คซัม เข้ารหัส/ถอดรหัสข้อมูลโดยใช้วิธี NRZI การบรรจุบิต สร้างและจดจำตัวระบุแพ็กเก็ต (PID)

ตัวรับส่งสัญญาณในตัวบนไมโครคอนโทรลเลอร์ USB เข้ากันได้กับอินเทอร์เฟซแบบสี่สายธรรมดาที่กำหนดโดยข้อกำหนด USB 1.0 คอนโทรลเลอร์ตระกูล 8x930 มีการขัดจังหวะที่เกี่ยวข้องกับ USB สามรายการ โดยจะเกิดขึ้นที่แต่ละจุดเริ่มต้นของเฟรม จุดสิ้นสุดของการรับ/ส่งข้อมูลไปยังอุปกรณ์การทำงานของเทอร์มินัล ในกรณีที่มีการระงับทั่วโลกหรือกลับมาทำงานต่อ ในฮับ 8x930Hx หน่วยอินเทอร์เฟซฮับใช้เพื่อควบคุมและตรวจสอบสถานะการเชื่อมต่อของพอร์ตเอาต์พุต รีพีเตอร์มีหน้าที่กระจายสัญญาณขึ้นและลงจากพอร์ต USB

กระทรวงการศึกษาทั่วไปและวิชาชีพแห่งสหพันธรัฐรัสเซีย Novosibirsk State Technical University V.N. เวปริก, เวอร์จิเนีย Afanasyev, A.I. ดรูซินิน, A.A. เซมสคอฟ, A.R. Isaev, O.V. Malyavko MICROCONTROLLERS ของครอบครัว MCS-51 หนังสือเรียนในหลักสูตร "ระบบไมโครโปรเซสเซอร์" และ "การออกแบบระบบไมโครโปรเซสเซอร์" สำหรับนักศึกษาอาวุโสของคณะระบบอัตโนมัติและวิศวกรรมคอมพิวเตอร์ทุกรูปแบบการศึกษา Novosibirsk 1997 V.N. เวปริก, เวอร์จิเนีย Afanasyev, A.I. ดรูซินิน, A.A. เซมสคอฟ, A.R. Isaev, O.V. มาลยาฟโก. ไมโครคอนโทรลเลอร์ของตระกูล MCS-51: บทช่วยสอน - โนโวซีบีสค์. บทช่วยสอนนี้ประกอบด้วยคำอธิบายทั่วไปเกี่ยวกับสถาปัตยกรรม ฟังก์ชันการทำงาน และระบบคำสั่งของไมโครคอนโทรลเลอร์ชิปตัวเดียวในตระกูล MCS-51 (ไมโครคอนโทรลเลอร์แบบฝัง) ที่ผลิตโดย INTEL ส่วนที่สองของคู่มือนี้ให้คำอธิบายเกี่ยวกับตัวควบคุมไมโครโปรเซสเซอร์ทางการศึกษา UMPC-51 ซึ่งมอบให้กับนักเรียนเป็นเป้าหมายของการศึกษาเมื่อทำวงจรการทำงานในห้องปฏิบัติการ วัสดุในคู่มือนี้สามารถใช้สำหรับการออกแบบหลักสูตรและอนุปริญญา และยังมีประโยชน์สำหรับวิศวกรวงจรที่เกี่ยวข้องกับการพัฒนาและการทำงานของอุปกรณ์อิเล็กทรอนิกส์อีกด้วย ผู้เขียนขอแสดงความขอบคุณอย่างสุดซึ้งต่อ JSC "New Technologies" ซึ่งเป็นผู้จัดจำหน่ายอย่างเป็นทางการของ INTEL สำหรับการจัดหาวัสดุตามการดำเนินงานของงานนี้ ตารางที่ 15 ภาพประกอบที่ 25 รายการข้อมูลอ้างอิง 12 เรื่อง ผู้วิจารณ์: E.D. บารัน, จี.จี. มาตุชกิน. งานนี้จัดทำขึ้นที่ภาควิชาวิทยาการคอมพิวเตอร์ รัฐโนโวซีบีสค์ © Technical University 2 บทนำ ไมโครคอนโทรลเลอร์ชิปเดี่ยวตระกูล MCS-51 8 บิตปรากฏตัวในตลาดโลกในช่วงต้นทศวรรษที่แปดสิบ การปรับเปลี่ยนคริสตัลครั้งแรก (ประมาณ 7 ครั้ง) เกิดขึ้นโดยใช้เทคโนโลยี n-MOS (HMOS) คุณภาพสูง และเป็นไมโครคอมพิวเตอร์ชิปตัวเดียวที่สมบูรณ์ตามการใช้งานของสถาปัตยกรรม Harvard ซึ่งเป็นหนึ่งในหลักการสำคัญคือการแยกโปรแกรมและตรรกะตามตรรกะ ช่องว่างที่อยู่หน่วยความจำข้อมูล ด้วยการพัฒนาเทคโนโลยีเซมิคอนดักเตอร์ ไมโครวงจร MCS-51 รุ่นต่อๆ มาเริ่มผลิตขึ้นโดยใช้เทคโนโลยี CMOS (CHMOS) ขั้นสูงและพลังงานต่ำมากขึ้น (ในโหมดแอคทีฟ การใช้คริสตัลเพิ่มขึ้นเป็น 10–50 mA) ระบบคำสั่ง MCS-51 ซึ่งมุ่งเน้นไปที่การนำอัลกอริธึมการควบคุมแบบดิจิทัลไปใช้ในขณะที่ยังคงรักษาความคล้ายคลึงภายนอกกับระบบคำสั่งของตระกูล MCS-48 ก่อนหน้านี้ได้รับการขยายในเชิงคุณภาพและมีนวัตกรรมพื้นฐานปรากฏขึ้น: การดำเนินการแบบบิต และฟิลด์บิตที่สามารถระบุตำแหน่งได้ในหน่วยความจำข้อมูลซึ่งทำให้สามารถพูดคุยเกี่ยวกับการใช้งานโปรเซสเซอร์บิตบนชิปได้ ดำเนินการคำสั่งการคูณการหารและการลบ ปรับปรุงการทำงานกับสแต็ก มีการขยายกลุ่มคำสั่งถ่ายโอนการควบคุม ระบบคำสั่งเริ่มดูสมมาตรมากขึ้น กล่าวคือ ขึ้นอยู่กับการถ่ายโอนข้อมูลผ่านแบตเตอรี่น้อยลง ฟังก์ชันการทำงานของอุปกรณ์ต่อพ่วงแบบฝังยังขยายออกไปด้วยการเปิดตัว: ตัวนับเวลา 16 บิตสองตัว; พอร์ตดูเพล็กซ์ฮาร์ดแวร์อนุกรม ระบบขัดจังหวะสองระดับ พอร์ต I/O 8 บิต 4 พอร์ต การเปลี่ยนแปลงพื้นฐานในโครงสร้างของวงจรเวลาของโปรเซสเซอร์ทำให้ทำงานได้เร็วขึ้นกับหน่วยความจำภายนอกของโปรแกรมและข้อมูลตลอดจนปฏิกิริยาต่อการขัดจังหวะทั้งภายนอกและภายใน ขนาดรวมของพื้นที่ที่อยู่ของโปรแกรมภายนอกและหน่วยความจำข้อมูลเพิ่มขึ้นเป็น 128 KB ตัวนับโปรแกรม 16 บิตและตัวชี้ข้อมูลช่วยให้สามารถเข้าถึงช่วงที่อยู่ทั้งหมดได้โดยตรง ซึ่งทำให้นักพัฒนาสามารถใช้อัลกอริธึมเพื่อประมวลผลข้อมูลจำนวนมากได้อย่างรวดเร็ว โหนดที่เข้าถึงซอฟต์แวร์ได้ทั้งหมดของไมโครคอนโทรลเลอร์ถูกรวมเข้าด้วยกันในพื้นที่หน่วยความจำข้อมูลพิเศษ (การลงทะเบียนฟังก์ชันพิเศษ) ซึ่งทำให้สามารถเข้าถึงได้ในลักษณะเดียวกับเซลล์ธรรมดาของ RAM ที่อาศัยอยู่ ในการปรับเปลี่ยนคริสตัลในภายหลัง การปรับปรุงเป็นไปตามเส้นทางของการเพิ่มฟังก์ชันการทำงานเพิ่มเติม ในขณะที่ยังคงรักษาความเข้ากันได้ของซอฟต์แวร์อย่างเต็มรูปแบบกับเวอร์ชันก่อนหน้า คุณสมบัติของการปรับเปลี่ยนล่าสุดของไมโครคอนโทรลเลอร์ตระกูล MCS-51 คือ: การออกแบบคงที่โดยสมบูรณ์; คริสตัลรุ่น 3 และ 5 โวลต์ อุปกรณ์ต่อพ่วงในตัวที่หลากหลาย ความถี่สัญญาณนาฬิกาสูงสุด - 24 MHz; สำหรับคริสตัลแต่ละกลุ่ม - 33 MHz ปัจจุบัน MCS-51 มีคริสตัลประมาณ 60 รุ่น นอกจากนี้ยังมีเอกสารประกอบกรรมสิทธิ์โดยละเอียด (น่าเสียดายที่มีการแปลเป็นภาษารัสเซียเพียงเล็กน้อย) เพื่อเตรียมการสนับสนุนทางคณิตศาสตร์สำหรับไมโครคอนโทรลเลอร์ MCS-51 ส่วนใหญ่จะใช้ภาษา "ASM-51" และ "C" ซึ่งมีคอมไพเลอร์ที่ได้รับการพิสูจน์แล้วจำนวนหนึ่งไลบรารีของรูทีนมาตรฐานและโปรแกรมจำลองซอฟต์แวร์ที่ผลิตโดยต่างๆ บริษัทต่างประเทศและในประเทศ 3 แม้จะมี "โบราณวัตถุ" ที่เพียงพอของตระกูล (มากกว่า 15 ปี) และการปรากฏตัวในตลาดโลกในช่วงไม่กี่ปีที่ผ่านมาของไมโครคอนโทรลเลอร์ชิปตัวเดียวที่มีประสิทธิภาพสูงกว่าและสถาปัตยกรรมที่ได้รับการปรับปรุง - MCS-51, MCS-251, MCS-96, คอนโทรลเลอร์ MCS-51 จะยังคงใช้กันอย่างแพร่หลายมาเป็นเวลานานที่ใช้ในระบบควบคุมแบบฝังที่ค่อนข้างเรียบง่าย 4 1. ระบบแห่งชาติสำหรับส่วนประกอบของ INTEL และองค์ประกอบการทำงานของตระกูล MCS-51 ในการทำเครื่องหมายไมโครวงจร INTEL ใช้ระบบการกำหนดที่ประกอบด้วยหลายฟิลด์: 1 2 3 4 X XX XXXXXXXXXXXXXXXXXX XXXXXXX ฟิลด์แรกมีคำนำหน้าหนึ่งตัวอักษร สะท้อนช่วงอุณหภูมิของวงจรไมโคร : A (ยานยนต์) รุ่นยานยนต์สำหรับช่วงอุณหภูมิขยาย (-40/+125 C) M (ทหาร) รุ่นตามมาตรฐานทางทหาร (-55/+125 C) Q หรือ C ( เชิงพาณิชย์) ช่วงอุณหภูมิ "เชิงพาณิชย์" (0/+70 C ) พร้อมการฝึกอบรมด้านความร้อนแบบไดนามิก (160 8) ชั่วโมง; L หรือ E (แบบขยาย) ช่วงอุณหภูมิ "ขยาย" (-40/+85 C) พร้อมการฝึกระบายความร้อนแบบไดนามิก (160 8) ชั่วโมง; T (ขยาย), ช่วงอุณหภูมิ “ขยาย” (-40/+85 C) โดยไม่มีการฝึกอบร้อน; I (อุตสาหกรรม) ประสิทธิภาพตามมาตรฐานอุตสาหกรรม ฟิลด์ที่สองประกอบด้วยคำนำหน้าหนึ่งหรือสองตัวที่ระบุเวอร์ชันของแพ็คเกจชิป (ประเภทแพ็คเกจ) ปัจจุบันมีแพ็คเกจไมโครวงจรหลายประเภทที่แตกต่างกันหลายสิบประเภท ดังนั้นตามตัวอย่างเราจะให้ชื่อเพียงบางส่วนเท่านั้น: A Ceramic Pin Grid Array, (PGA); แพ็คเกจเซรามิกอินไลน์คู่ C (CDIP); แพ็คเกจ K Ceramic Quad Flatpack (QFP); แพ็คเกจ Flatpack พลาสติกสี่เหลี่ยม KD, สนามละเอียด, ดายดาวน์, (PQFP); KU Plastic Quad Flatpack Package, Fine Pitch, Die Up, (PQFP); ตัวขนส่งชิปที่มีสารตะกั่วพลาสติก N (PLCC); แพ็คเกจอินไลน์พลาสติกคู่ P (PDIP); โมดูลหน่วยความจำไร้สารตะกั่วในบรรทัดเดียวของ SM (SIMM); U พลาสติก Dual In-Line Package, Shrink Dip, (PDIPS); แพ็คเกจ Z Zigzag In-Line (ZIP) ฟิลด์ที่สามสามารถมีอักขระตัวเลขและตัวอักษรได้สูงสุด 15 ตัว ซึ่งระบุประเภทของอุปกรณ์เฉพาะที่อยู่บนชิป ฟิลด์ที่สี่สามารถมีอักขระดิจิทัลและตัวอักษรได้สูงสุดหกตัว ซึ่งสะท้อนถึงคุณสมบัติและการออกแบบต่างๆ ของไมโครวงจร ข้อมูลเพิ่มเติมเกี่ยวกับประเภทของบรรจุภัณฑ์และการออกแบบสามารถดูได้ในหนังสือ: หมายเลขคำสั่งซื้อบรรจุภัณฑ์ 240800 ในส่วนที่เกี่ยวข้องกับไมโครคอนโทรลเลอร์ที่อธิบายไว้ของตระกูล MCS-51 อักขระตัวแรกของฟิลด์ที่สามนั้นตามธรรมเนียม (สำหรับ Intel) เท่ากับ “ 8”. อักขระตัวที่สองของฟิลด์ที่สามมักจะระบุประเภทของ ROM ในตัว: 0 โปรแกรมมาสก์ ROM; คริสตัลที่ไม่มี ROM (สำหรับคริสตัลรุ่นที่ใหม่กว่า); 1 หน้ากาก ROM ของโปรแกรม (รหัส ROM มาตรฐาน, เฟิร์มแวร์); 3 ROM ที่ถูกปิดบัง (สำหรับคริสตัลรุ่นที่ใหม่กว่า), (รหัส ROM ที่ปรับแต่งได้); 7 UFRPROM หรือ ROM ที่ตั้งโปรแกรมได้ครั้งเดียว (EPROM หรือ OTP ROM) 8 EEPROM (แฟลช - หน่วยความจำบนชิป) อาจตามด้วยตัวอักษรที่ระบุคุณสมบัติทางเทคโนโลยีของการผลิต: ไม่มีตัวอักษรเทคโนโลยี HMOS, แหล่งจ่ายไฟ 5V; ด้วยเทคโนโลยี CHMOS แหล่งจ่ายไฟ 5V; เทคโนโลยี L CHMOS, แหล่งจ่ายไฟ 3V; 5 อักขระต่อไปนี้ของฟิลด์ที่สามสำหรับไมโครคอนโทรลเลอร์ของตระกูล MCS-51 คือตัวเลข (เช่น 31,32,51,54,58,152) และตัวอักษรตั้งแต่หนึ่งถึงสี่ตัวที่สะท้อนถึงคุณสมบัติการทำงานของคริสตัล (เช่น จำนวน ROM, ข้อมูลเฉพาะของกลุ่มคริสตัล, การมีอยู่ของระบบที่ปกป้องหน่วยความจำโปรแกรมจากการเข้าถึงโดยไม่ได้รับอนุญาต, ความสามารถในการใช้อัลกอริธึมการเขียนโปรแกรม "Quick Pulse" ขั้นสูงยิ่งขึ้น ฯลฯ ) ในเอกสารทางเทคนิคต้นฉบับจาก Intel ไมโครคอนโทรลเลอร์ทั้งหมดของตระกูล MCS-51 จะถูกจัดเรียงเป็นกลุ่ม (“สายผลิตภัณฑ์”) ซึ่งแต่ละชุดจะรวมคริสตัลเวอร์ชันต่างๆ ที่ใกล้เคียงที่สุดในฟังก์ชันการทำงานและพารามิเตอร์ทางไฟฟ้า เนื่องจากชื่อของวงจรไมโครของกลุ่มหนึ่งแตกต่างกันเล็กน้อย เพื่อกำหนดแต่ละกลุ่ม จึงมีการใช้สัญลักษณ์ทั่วไปซึ่งสร้างขึ้นจากเครื่องหมายของวงจรไมโครเฉพาะ โดยการแทนที่สัญลักษณ์ที่แตกต่างกันด้วย "X" ดังนั้นจึงสามารถแยกแยะกลุ่มไมโครคอนโทรลเลอร์ต่อไปนี้ได้ 1. กลุ่ม 8X5X (สายผลิตภัณฑ์ 8051 และสายผลิตภัณฑ์ 8052): 8031AN, 8051AN, 8751N, 8051ANR, 8751N-8, 8751VN, 8032AN, 8052AN, 8752VN. 2. กลุ่ม 8 KhС51 (สายผลิตภัณฑ์ 80С51): 80С31ВН, 80С51ВН, 87С51 3. กลุ่ม 8РС5Р (สายผลิตภัณฑ์ 8РС52/54/58): 80С32, 80С52, 87С52, 80С54, 87С54, 80С58, 87С58 4. กลุ่ม 8С51FX (สายผลิตภัณฑ์ 8XC51FA/FB/FC): 80C51FA, 83C51FA, 87C51FA, 83C51FB, 87C51FB, 83C51FC, 87C51FC. 5. กลุ่ม 8хL5X (สายผลิตภัณฑ์ 8XL52/54/58): 80L52, 87L52, 80L54, 87L54, 80L58, 87L58. 6. กลุ่ม 8XL51FX (สายผลิตภัณฑ์ 8XL51FA/FB/FC): 80L51FA, 83L51FA, 87L51FA, 83L51FB, 87L51FB, 83L51FC, 87L51FC. 7. กลุ่ม 8 KhС51RX (สายผลิตภัณฑ์ 8XC51RA/RB/RC): 80C51RA, 83C51RA, 87C51RA, 83C51RB, 87C51RB, 83C51RC, 87C51RC. 8. กลุ่ม 8РC51GB (สายผลิตภัณฑ์ 8XC51GX): 80C51GB, 83C51GB, 87C51GB 9. กลุ่ม 8 KhС152JX (สายผลิตภัณฑ์ 8XC152): 80C152JA, 83C152JA, 80C152JB, 80C152JC, 83C152JC, 80C152JD. 10. กลุ่ม 8XC51SL (สายผลิตภัณฑ์ 8XC51SL): 80C51SL-BG, 81C51SL-BG, 83C51SL-BG, 80C51-AH, 81C51SL-AH, 83C51SL-AH, 87C51SL-AH, 80C51SL-AL, 81C51SL-AL, 83C51SL -AL, 87C51SL-AL. ไมโครคอนโทรลเลอร์กลุ่มแรกประกอบด้วยโมเดลระดับล่างของตระกูลที่ผลิตโดยใช้เทคโนโลยี n-MOS และไม่แนะนำให้ใช้ในการพัฒนาใหม่ ส่วนกลุ่มอื่นๆ ทั้งหมดสร้างขึ้นโดยใช้เทคโนโลยี CMOS ที่ทันสมัย ไมโครวงจรของกลุ่มที่สอง, สามและสี่ในปัจจุบันเป็นตัวแทนคลาสสิกของตระกูล MCS-51 กลุ่มที่ห้าและหกประกอบด้วยคริสตัลรุ่น 3 โวลต์ (แรงดันต่ำ) คริสตัลของกลุ่มที่เจ็ดมีการติดตั้ง RAM แบบขยาย (RAM แบบขยาย) ซึ่งมีปริมาตร 512 ไบต์ ไมโครวงจรของกลุ่มที่แปด, เก้าและสิบเป็นไมโครคอนโทรลเลอร์เฉพาะแอปพลิเคชัน (เฉพาะแอปพลิเคชัน) แอปพลิเคชันสมัยใหม่จำนวนมากต้องการไมโครคอนโทรลเลอร์ควบคุมประสิทธิภาพสูง ซึ่งใช้ความสามารถในการกำหนดแอดเดรสขั้นสูง สถาปัตยกรรมการลงทะเบียน RAM ภายในขนาดใหญ่ และพื้นที่สแต็ก และรองรับการเขียนโปรแกรมภาษาระดับสูงอย่างมีประสิทธิภาพ ไมโครคอนโทรลเลอร์เหล่านี้ประกอบด้วยไมโครคอนโทรลเลอร์สถาปัตยกรรมใหม่ของตระกูล MCS-5 และ MCS-251 ซึ่ง Intel เริ่มผลิตในปี 1995 องค์ประกอบการทำงานและคุณสมบัติที่สำคัญของไมโครคอนโทรลเลอร์ MCS-51/MCS-251 มีระบุไว้ในภาคผนวก 6 2. ลักษณะหลักของรุ่นพื้นฐานของตระกูล MCS-51 ของไมโครคอนโทรลเลอร์ โมเดลพื้นฐานของตระกูลไมโครคอนโทรลเลอร์ MCS-51 และพื้นฐานสำหรับการปรับเปลี่ยนในภายหลังทั้งหมดคือไมโครคอนโทรลเลอร์ I-8051 ลักษณะสำคัญมีดังนี้: CPU 8 บิตที่ปรับให้เหมาะสมสำหรับฟังก์ชันการควบคุม เครื่องกำเนิดสัญญาณนาฬิกาในตัว พื้นที่ที่อยู่หน่วยความจำโปรแกรม - 64 K; พื้นที่ที่อยู่หน่วยความจำข้อมูล - 64 K; หน่วยความจำโปรแกรมภายใน - 4 K; หน่วยความจำข้อมูลภายใน - 128 ไบต์; ความสามารถเพิ่มเติมสำหรับการดำเนินการพีชคณิตแบบบูลีน (การดำเนินการระดับบิต); 32 เส้น I/O แบบสองทิศทางและระบุแอดเดรสแยกกันได้ ตัวจับเวลา/ตัวนับมัลติฟังก์ชั่น 16 บิต 2 ตัว; ตัวรับส่งสัญญาณแบบอะซิงโครนัสดูเพล็กซ์เต็มรูปแบบ; ระบบขัดจังหวะเวกเตอร์ที่มีลำดับความสำคัญสองระดับและแหล่งเหตุการณ์หกแหล่ง แผนภาพบล็อกของ I-8051 แสดงในรูปที่ 1 การกำหนดพินไมโครวงจรจะแสดงในรูปที่ 2 การขัดจังหวะภายนอก อินเทอร์รัปต์ 128 ไบต์ T/C 0 ตัวนับ การควบคุม ROM 4K RAM T/C 1 อินพุต CPU BUS 4 I/O การควบคุม OSC แบบอนุกรม พอร์ต พอร์ต P0 P1 P2 P3 T D R D ที่อยู่/ข้อมูล รูปที่ 1. แผนภาพบล็อกของ I-8051 ซีรีส์ MCS-51 ทั้งหมดมีสถาปัตยกรรมของ Harvard กล่าวคือ พื้นที่ที่อยู่แยกกันสำหรับโปรแกรมและหน่วยความจำข้อมูล การจัดระเบียบหน่วยความจำแสดงในรูปที่ 3 ปริมาณหน่วยความจำโปรแกรมภายใน (ประจำถิ่น) (ROM, EPROM หรือ OTP ROM) ที่อยู่บนชิป ขึ้นอยู่กับประเภทของชิป อาจเป็น 0 (ROMless), 4K (ชิปฐาน), 8K, 16K หรือ 32K หากจำเป็น ผู้ใช้สามารถขยายหน่วยความจำของโปรแกรมได้โดยการติดตั้ง ROM ภายนอก การเข้าถึง ROM ภายในหรือภายนอกถูกกำหนดโดยค่าของสัญญาณที่พิน EA (การเข้าถึงภายนอก): EA=Vcc (แรงดันไฟฟ้า) - การเข้าถึง ROM ภายใน; EA=Vss (ศักย์กราวด์) - เข้าถึง ROM ภายนอก สำหรับคริสตัลที่ไม่มี ROM (ไม่มี ROM) พิน EA จะต้องเชื่อมต่อกับ Vss อย่างถาวร ไฟแฟลชอ่าน ROM ภายนอก - PS EN (เปิดใช้งาน Program Store) ถูกสร้างขึ้นเมื่อเข้าถึงหน่วยความจำโปรแกรมภายนอก และจะไม่ทำงานขณะเข้าถึง ROM ที่อยู่บนชิป 7 ระบบขัดจังหวะใช้พื้นที่ของที่อยู่หน่วยความจำโปรแกรมด้านล่าง สถาปัตยกรรมชิป 8051 ให้การสนับสนุนแหล่งขัดจังหวะห้าแหล่ง: การขัดจังหวะภายนอกสองครั้ง; การขัดจังหวะตัวจับเวลาสองครั้ง; ขัดจังหวะจากพอร์ตอนุกรม P1.0 1 40 วีซีซี P1.1 2 39 P0. 0 (AD0) P1.2 3 38 P0.1 (AD1) P1.3 4 37 P0.2 (AD2) P1.4 5 36 P0.3 (AD3) P1.5 6 35 P0.4 (AD4) P1. 6 7 34 P0.5 (AD5) P1.7 8 33 P0.6 (AD6) รีเซ็ต 9 32 P0.7 (AD7) (RD) P3.0 10 31 EA/Vpp (TD) P3.1 11 30 ALE/ PROG (INT0) P3.2 12 29 PSEN (INT1) P3.3 13 28 P2.7 (A15) (T0) P3.4 14 27 P2.6 (A14) (T1) P3.5 15 26 P2.5 ( A13) (WR) P3.6 16 25 P2.4 (A12) (RD) P3.7 17 24 P2.3 (A11) XTAL2 18 23 P2.2 (A10) XTAL1 19 22 P2.1 (A9) กับ 20 21 P2.0 (A8) รูปที่ 2. การกำหนดพิน I-8051 หน่วยความจำโปรแกรม (อ่าน) หน่วยความจำข้อมูล (อ่าน/เขียน) FFFFH ROM ภายนอก FFFFH หน่วยความจำ @DPTR RD ภายนอก PSEN ข้อมูล WR @PC MOVC EA=0 ภายใน @หน่วยความจำข้อมูล DPTR @PC ภายนอก ภายใน FFH บน 128 SFR MOVX ROM ROM 80H EA=0 0000H EA=1 ต่ำกว่า 128 00H 0000H PSEN รูปที่ 3 การจัดระเบียบหน่วยความจำของตระกูล MCS-51 8 รูปที่ 4 แสดงแผนที่พื้นที่ด้านล่างของหน่วยความจำโปรแกรม ROM หน่วยความจำโปรแกรม 0033Н 002BN พอร์ตอนุกรม 0023Н เวกเตอร์อินเทอร์รัปต์ ตัวจับเวลา 1 001BN EINT1 0013Н ตัวจับเวลา 0 000BH EINT0 0003Н ที่อยู่เริ่มต้น 0000H (รีเซ็ต) รูปที่ 4. หน่วยความจำโปรแกรม ที่อยู่ของเวกเตอร์อินเทอร์รัปต์อยู่ที่ช่วง 8 ไบต์: - 0003Н อินเทอร์รัปต์ภายนอก 0 (อินเทอร์รัปต์ภายนอก 0) - พิน IN T 0; - 000BN ขัดจังหวะจากตัวจับเวลา 0 (โดยแฟล็กโอเวอร์โฟลว์ของตัวจับเวลา - T F 0) - 0013Н การขัดจังหวะภายนอก 1 (การขัดจังหวะภายนอก 1) - ปักหมุด IN T 1; - 001BH ขัดจังหวะจากตัวจับเวลา 1 (โดยแฟล็กโอเวอร์โฟลว์ของตัวจับเวลา - T F 1) - 0023H ขัดจังหวะจากพอร์ตอนุกรม (Serial Interrupt = รับ Interrupt หรือ Transmit Interrupt) และอื่น ๆ หน่วยความจำข้อมูลแยกจากหน่วยความจำโปรแกรม ในพื้นที่นี้ RAM ภายนอก 64K สามารถแก้ไขได้ เมื่อเข้าถึงหน่วยความจำข้อมูลภายนอก CPU ของไมโครคอนโทรลเลอร์จะสร้างสัญญาณการอ่าน (RD) หรือการเขียน (W R) ที่สอดคล้องกัน การโต้ตอบกับหน่วยความจำข้อมูลภายในจะดำเนินการที่ระดับคำสั่ง ในขณะที่สัญญาณ R D และ W R จะไม่ถูกสร้างขึ้น หน่วยความจำโปรแกรมภายนอกและหน่วยความจำข้อมูลภายนอกสามารถรวมกันได้โดยการรวมสัญญาณ R D และ PS EN ในวงจร "ตรรกะ AND" เพื่อรับแฟลชหน่วยความจำภายนอก (โปรแกรม/ข้อมูล) หน่วยความจำข้อมูลภายในขนาดต่ำกว่า 128 ไบต์ (ต่ำกว่า 128) มีอยู่ในคริสตัล MCS-51 ทั้งหมด และแสดงในรูปที่ 5 32 ไบต์แรกแสดงถึง 4 ธนาคาร (Register Bank) จาก 8 รีจิสเตอร์ (R7...R0) รีจิสเตอร์ R0 และ R1 ในธนาคารใดๆ สามารถใช้เป็นรีจิสเตอร์ที่อยู่ทางอ้อมได้ 16 ไบต์ที่อยู่ถัดจากธนาคารรีจิสเตอร์จะสร้างบล็อกของพื้นที่บิตแอดเดรสได้ ชุดคำสั่ง MCS-51 มีการดำเนินการบิตให้เลือกมากมาย และ 128 บิตในบล็อกนี้สามารถกำหนดแอดเดรสได้โดยตรงและมีแอดเดรสตั้งแต่ 00H ถึง 7FH ไบต์ทั้งหมดในหน่วยความจำครึ่งล่างขนาด 128 ไบต์สามารถแก้ไขได้ทั้งทางตรงและทางอ้อม หน่วยความจำ RAM ครึ่งบนขนาด 128 ไบต์ (128 ตัวบน) หายไปในชิป I-8051 แต่มีให้ใช้งานในรุ่นคริสตัลที่มี RAM ขนาด 256 ไบต์ ในกรณีนี้ พื้นที่ "Upper 128" สามารถเข้าถึงได้โดยใช้ที่อยู่ทางอ้อมเท่านั้น พื้นที่ SFR (ทะเบียนฟังก์ชั่นพิเศษ) มีไว้สำหรับการระบุที่อยู่โดยตรงเท่านั้น ตำแหน่งของรีจิสเตอร์ฟังก์ชันพิเศษในพื้นที่ SFR จะแสดงในรูปที่ 6 ซึ่งรวมถึงการลงทะเบียนพอร์ต ตัวจับเวลา การควบคุมอุปกรณ์ต่อพ่วง และอื่นๆ 9 7FH พื้นที่ RAM ที่สามารถระบุแอดเดรสแบบไบต์ได้ 30H (ทางตรง, ทางอ้อม) 2FH 7FH 7EH 7DH 7CH 7BH 7AH 79H 78H 2EH 77H 76H 75H 74H 73H 72H 71H 70H พื้นที่ RAM ที่สามารถระบุแอดเดรสบิตได้ (โดยตรง) 21H 0FH 0E H 0DH 0 ช 0BH 0AH 09H 08H 20H 07H 06H 05H 04H 03H 02H 01H 00H 1FH RB3 18H 17H RB2 10H 0FH RB1 08H 07H SP หลังจากรีเซ็ต 00H RB0(R7+R0) รูปที่ 5. RAM ภายในขนาด 128 ไบต์ด้านล่าง การกำหนดบิตแอดเดรส 8 ไบต์ F8H FFH F0H B F7H E8H EFH E0H ACC E7H D8H DFH D0H PSW D7H C8H CFH C0H C7H B8H IP BFH B0H P3 B7H A8H IE AFH A0H P2 A7H 98H SCON SBUF 9FH 90H P1 97H 88H TCON TMOD TL0 TL1 TH0 TH1 8FH 80H P0 SP DPL DPH PCO 87H N 0/8 1/9 2/A 3/B 4/C 5/D 6/E 7/F รูปที่ 6 การวางรีจิสเตอร์ฟังก์ชันพิเศษในพื้นที่ SFR สำหรับที่อยู่ 16 รายการในพื้นที่ SFR สามารถใช้ทั้งการกำหนดแอดเดรสแบบไบต์และบิตได้ สำหรับรีจิสเตอร์แบบระบุตำแหน่งบิต ที่อยู่เลขฐานสิบหกจะลงท้ายด้วย "0H" หรือ "8H" ที่อยู่บิตในพื้นที่นี้มีค่าตั้งแต่ 80H ถึง FFH คริสตัลทั้งชุดในตระกูล MCS-51 มีชุด SFR พื้นฐาน เช่นเดียวกับในชิป I-8051 ซึ่งอยู่ในที่อยู่เดียวกัน อย่างไรก็ตาม ในผลึกที่แสดงถึงการพัฒนาเพิ่มเติมของครอบครัวในภูมิภาค SFR จะมีการเพิ่มทะเบียนใหม่เพื่อขยาย 10

ยูดีซี 681.5, 681.325.5 (075.8)

บีบีเค 32.973.202-018.2 และ 73

ชเชอร์บินา เอ. เอ็น.คอมพิวเตอร์ ระบบ และเครือข่าย ไมโครคอนโทรลเลอร์และไมโครโปรเซสเซอร์ในระบบควบคุม:เชบ. เบี้ยเลี้ยง / อ. ชเชอร์บินา, P.A. Nechaev-SPb.: จาก-ใน โปลีเทคนิค. ม., 2555.-226 น.

สอดคล้องกับเนื้อหาของมาตรฐานการศึกษาของรัฐสำหรับสาขาวิชาการฝึกอบรมและความเชี่ยวชาญเฉพาะด้านในด้านการจัดการในระบบเทคนิควิศวกรรมไฟฟ้าและวิศวกรรมไฟฟ้าและเนื้อหาของหลักสูตรโดยประมาณของสาขาวิชา "คอมพิวเตอร์ระบบและเครือข่าย"

ปัญหาพื้นฐานของการจัดองค์กรทางลอจิคัลของระบบไมโครโปรเซสเซอร์ได้รับการพิจารณาโดยใช้ตัวอย่างสถาปัตยกรรมพื้นฐานของตระกูลไมโครคอนโทรลเลอร์ MCS-51 จาก Intel มีการอธิบายเทคโนโลยีสำหรับการเขียนโปรแกรมไมโครคอนโทรลเลอร์ในภาษา Assembly และ SI

อาจเป็นประโยชน์สำหรับนักเรียนและครูของสถาบันทางเทคนิคระดับสูง ผู้เชี่ยวชาญด้านกระบวนการทางเทคโนโลยีอัตโนมัติและอุปกรณ์การผลิต ตลอดจนวิศวกรออกแบบระบบไมโครโปรเซสเซอร์

นอกจากนี้ยังสอดคล้องกับเนื้อหาของมาตรฐานการศึกษาของรัฐในสาขาวิชา "ไมโครคอนโทรลเลอร์และไมโครโปรเซสเซอร์ในระบบควบคุม" และ "อุปกรณ์อัตโนมัติอิเล็กทรอนิกส์" สำหรับการฝึกอบรมระดับปริญญาตรี วิศวกรรมศาสตร์ และปริญญาโท ในทิศทาง 140400 "พลังงานไฟฟ้าและวิศวกรรมไฟฟ้า"

จัดพิมพ์โดยมติของกองบรรณาธิการและสำนักพิมพ์

มหาวิทยาลัยโพลีเทคนิคแห่งรัฐเซนต์ปีเตอร์สเบิร์ก

© Shcherbina A. N. , Nechaev P. A. , 2012

© รัฐเซนต์ปีเตอร์สเบิร์ก

มหาวิทยาลัยโพลีเทคนิค, 2555

ไอ 978-5-7422-3553-8


บทนำ... 7

บทที่ 1 สถาปัตยกรรมครอบครัว MCS51 10

1.1 ลักษณะทั่วไป 10

1.2 บล็อกไดอะแกรม 11



1.3 การกำหนดพินของไมโครคอนโทรลเลอร์ 8051 15

1.4 การจัดระเบียบหน่วยความจำ 17

1.4.1 หน่วยความจำโปรแกรม (ROM) 18

1.4.2 หน่วยความจำข้อมูล (RAM) 19

1.4.3 การลงทะเบียนฟังก์ชันพิเศษ 20

1.4.4 ทะเบียนธง (PSW) 23

1.5 อุปกรณ์ควบคุมและซิงโครไนซ์ 26

1.6 การจัดระเบียบพอร์ต I/O 27

1.6.1 ข้อมูลทั่วไป 27

1.6.2 ฟังก์ชั่นทางเลือก 27

1.7. ตัวจับเวลา/ตัวนับของไมโครคอนโทรลเลอร์ตระกูล 8051 28

1.7.1. โครงสร้างตัวนับเวลา 28

1.7.2 โหมดการทำงานของตัวจับเวลา - ตัวนับ สามสิบ

1.8. พอร์ตอนุกรม 32

1.8.1. โครงสร้างพอร์ตอนุกรม 32

1.8.2. การควบคุมตัวรับส่งสัญญาณ / การลงทะเบียนสถานะ SCON.. 34

1.8.3. ทะเบียนควบคุมไฟ PCON.. 36

1.9. ระบบขัดจังหวะ 37

1.9.1. โครงสร้างระบบขัดจังหวะ 37

1.9.2 การดำเนินการรูทีนขัดจังหวะ 40

บทที่ 2 คุณสมบัติของไมโครคอนโทรลเลอร์ 80C51GB.. 42

2.1 คุณสมบัติการใช้งาน 42

2.2 พอร์ต I/O P0-P5 43

2.2.1 การทำงานของพอร์ต I/O 43

2.2.2 เขียนลงพอร์ต.. 46

2.3 คุณสมบัติของ 8XC51GB.. ระบบขัดจังหวะ 49

เปิด/ปิดการขัดจังหวะ 50

ขัดจังหวะการจัดการลำดับความสำคัญ 51

การขัดจังหวะภายนอก 54

2.3. ADC โหนด 56

2.4. ฮาร์ดแวร์เฝ้าระวัง 61

2.5. การตรวจจับความล้มเหลวของนาฬิกา 63

2.6. เมทริกซ์ของตัวนับที่ตั้งโปรแกรมได้ RSA 64

2.6.1. โครงสร้าง PCA..64

2.6.2. การลงทะเบียนโหมดตัวนับ PCA (CMOD) 66

2.6.3. การลงทะเบียนการควบคุมตัวนับ PCA (CON) 67

2.6.4. โมดูลการเปรียบเทียบ/ข้อผูกมัด 68

2.7. พอร์ตอนุกรมที่ได้รับการปรับปรุง 76

2.8. ไทม์เมอร์/เคาน์เตอร์ 79

รูปแบบพินของไมโครคอนโทรลเลอร์กลุ่ม 8XC51GB.. 86

บทที่ 3 การเขียนโปรแกรม MK 8051GB.. 89

3.1. โปรแกรมรุ่น 89

3.2 ประเภทข้อมูล 93

3.3 วิธีการระบุที่อยู่ข้อมูล 93

3.4 ระบบคำสั่ง 95

3.4.1 ลักษณะทั่วไป 95

3.4.2 ประเภทของคำสั่ง 96

3.4.3 ประเภทตัวถูกดำเนินการ 97

3.4.4 คำสั่งถ่ายโอนข้อมูลไมโครคอนโทรลเลอร์ 98

3.4.5 คำแนะนำทางคณิตศาสตร์ 8051. 101

3.4.6 คำสั่งการทำงานเชิงตรรกะของไมโครคอนโทรลเลอร์ 8051 104

3.4.7 คำสั่งสำหรับการดำเนินการกับบิตของไมโครคอนโทรลเลอร์ 8051 106

3.5 โปรแกรมดีบัก 111

บทที่ 4 ภาษาโปรแกรม ASM-51 112

4.2 การเขียนข้อความโปรแกรม 113

4.3 ตัวอักษรภาษา 114

4.4 ตัวระบุ 115

4.5 หมายเลข 117

4.6 คำสั่ง 118

4.7 การใช้รูทีนย่อยในภาษา ASM51 122

4.7.1 โครงสร้างของขั้นตอนรูทีนย่อยในภาษา ASM51 122

4.7.2 การส่งตัวแปรพารามิเตอร์ไปยังรูทีนย่อย 123

4.7.3 การใช้ฟังก์ชันรูทีนย่อยในภาษา ASM51 123

4.7.4 การใช้งานรูทีนการจัดการการขัดจังหวะในภาษา ASM51 124

4.8 การเขียนโปรแกรมเชิงโครงสร้างในภาษาแอสเซมบลี 125

4.9 คุณสมบัติของการออกอากาศรายการหลายโมดูล... 126

4.10 การใช้ส่วน 128

4.10.1 การแบ่งหน่วยความจำ MK ออกเป็นส่วนๆ.. 128

4.10.2 ส่วนหน่วยความจำสัมบูรณ์ 129

4.10.2 ส่วนหน่วยความจำที่ย้ายตำแหน่งได้ 131

บทที่ 5 ภาษาโปรแกรม C-51 134

5.1 ลักษณะทั่วไปของภาษา 134

5.3 โครงสร้างของโปรแกรม S-51 136

5.3. องค์ประกอบของภาษาโปรแกรม S-51 138

5.3.1. สัญลักษณ์..138

5.3.2. หน่วยคำศัพท์ ตัวคั่น และการใช้ช่องว่าง 141

5.3.3 ตัวระบุ... 142

5.3.4 คำหลัก 143

5.3.5 ค่าคงที่.. 143

5.4. นิพจน์ในตัวดำเนินการภาษา 146

การเขียนโปรแกรม C-51 146

5.5. ลำดับความสำคัญของการดำเนินงาน 148

5.6. ตัวดำเนินการภาษาโปรแกรม C-51 149

5.6.1. ตัวดำเนินการประกาศ 150

5.6.2 คำสั่งปฏิบัติการ... 150

5.6.3 ผู้ดำเนินการมอบหมาย 151

5.6.4 ผู้ปฏิบัติงานแบบมีเงื่อนไข 151

5.6.5 ตัวดำเนินการโครงสร้าง () 152

5.6.6 ตัวดำเนินการลูปสำหรับ 152

5.6.7 ตัวดำเนินการลูปพร้อมการตรวจสอบสภาพก่อนส่วนเนื้อความของลูป while 153

5.6.8 ตัวดำเนินการลูปพร้อมการตรวจสอบเงื่อนไขหลังเนื้อความของ do while 154

5.6.9 ผู้ปฏิบัติงานหยุด 155

5.6.10 ดำเนินการต่อไป 155

5.6.11 ตัวดำเนินการเลือกสวิตช์ 155

5.6.12 ตัวดำเนินการกระโดดแบบไม่มีเงื่อนไขข้ามไป 157

5.6.13 ตัวดำเนินการนิพจน์ 158

5.6.14 คำสั่ง Return จากรูทีนย่อย return 158

5.6.15 ผู้ปฏิบัติงานว่างเปล่า 158

5.7. การประกาศตัวแปรในภาษาโปรแกรม C-51 159

5.7.1. การประกาศตัวแปร 159

5.7.3 ชนิดข้อมูลจำนวนเต็ม 161

5.7.4 ตัวเลขทศนิยม 162

5.7.5 ตัวแปรประเภทแจกแจง 162

5.7.6. การประกาศอาร์เรย์ในภาษาโปรแกรม C-51 164

5.7.7. โครงสร้าง..165

5.7.8. ชุดค่าผสม (สารผสม) 166

5.8. การใช้พอยน์เตอร์ใน C-51 167

5.8.1. ประกาศของพอยน์เตอร์ 167

5.8.2. พอยน์เตอร์ที่ไม่ได้พิมพ์ 168

5.8.3. พอยน์เตอร์ขึ้นอยู่กับหน่วยความจำ 169

5.9. การประกาศตัวแปรชนิดใหม่ 169

5.10. การเริ่มต้นข้อมูล 170

5.11. การใช้รูทีนย่อยในภาษาการเขียนโปรแกรม C-51 170

5.11.1. คำจำกัดความของรูทีนย่อย... 171

5.11.2. พารามิเตอร์รูทีนย่อย.. 173

5.11.3. การประกาศล่วงหน้าของรูทีนย่อย.. 174

5.11.4 การเรียกรูทีนย่อย.. 176

5.11.5 การเรียกรูทีนย่อยแบบเรียกซ้ำ... 176

5.11.6 ขัดจังหวะขั้นตอนการจัดการ 177

5.11.7 ขอบเขตของตัวแปรและรูทีนย่อย... 178

5.12. โปรแกรมหลายโมดูล 179

บทที่ 6 การเตรียมโปรแกรมในสภาพแวดล้อมการพัฒนาแบบรวม Keil μVision2 182

6.1 การสร้างโครงการใน ASM-51 182

6.2 ตัวอย่างการสร้างโครงการในภาษา C สำหรับผู้ควบคุมการฝึกอบรมในสภาพแวดล้อมการพัฒนาแบบบูรณาการ Keil μVision2 188

บทที่ 7. คำอธิบายของตัวควบคุมการฝึกอบรม.. 199

7.1. โครงสร้างตัวควบคุม 199

7.2. ที่อยู่ช่อง 200

7.2.1. การจัดสรรหน่วยความจำ 200

7.2.2 หน่วยความจำภายนอก 201

7.2.3. หน่วยความจำข้อมูลภายใน 202

7.3. การจัดสรรพอร์ต I/O 202

7.4. พอร์ตอนุกรม……………………………...203

7.5. ทำงานกับจอแอลซีดี 205

7.6. แผงควบคุม……………………………………………………………213

ภาคผนวก P2โครงสร้างรายงานงานห้องปฏิบัติการ……..217

รหัสคำสั่งเครื่องภาคผนวก P3 217

อ้างอิง...224


การแนะนำ

ในการเรียนรู้ความเชี่ยวชาญพิเศษที่เกี่ยวข้องกับระบบอัตโนมัติของกระบวนการทางเทคโนโลยีและการผลิต การศึกษาไมโครคอนโทรลเลอร์เป็นหนึ่งในส่วนสำคัญ

มีการพัฒนาและการเกิดขึ้นอย่างต่อเนื่องของไมโครคอนโทรลเลอร์และไมโครโปรเซสเซอร์ 16 และ 32 บิตในโลก แต่ส่วนแบ่งที่ใหญ่ที่สุดของตลาดไมโครโปรเซสเซอร์ทั่วโลกจนถึงทุกวันนี้ยังคงเป็นอุปกรณ์ 8 บิต ตามการคาดการณ์ทั้งหมดของบริษัทวิเคราะห์ในอนาคตอันใกล้นี้ ตำแหน่งผู้นำของไมโครคอนโทรลเลอร์ 8 บิตในตลาดโลกจะยังคงอยู่

ในปัจจุบัน ในบรรดาไมโครคอนโทรลเลอร์ 8 บิตทั้งหมด ตระกูล MCS-51 เป็นผู้นำอย่างไม่ต้องสงสัยในด้านจำนวนพันธุ์และจำนวนบริษัทที่ผลิตการดัดแปลง ได้ชื่อมาจากตัวแทนคนแรกของตระกูลนี้ - ไมโครคอนโทรลเลอร์ 8051 ชุดอุปกรณ์ต่อพ่วงที่ประสบความสำเร็จความสามารถในการเลือกหน่วยความจำโปรแกรมภายนอกหรือภายในอย่างยืดหยุ่นและราคาที่เหมาะสมทำให้ไมโครคอนโทรลเลอร์นี้ประสบความสำเร็จในตลาด

ข้อดีของตระกูล MCS-51:

· สถาปัตยกรรมที่เป็นมาตรฐานโดยพฤตินัย

· ความกว้างของครอบครัวและความเป็นไปได้ที่หลากหลาย

· ความพร้อมใช้งานของโปรเซสเซอร์เวอร์ชันประสิทธิภาพสูงและขั้นสูง

· การพัฒนาซอฟต์แวร์และฮาร์ดแวร์ที่มีให้ใช้งานฟรีจำนวนมาก;

· ความง่ายในการเขียนโปรแกรมฮาร์ดแวร์ รวมถึงการตั้งโปรแกรมในวงจร

· ต้นทุนต่ำและความพร้อมใช้งานของชิปพื้นฐาน

· ความพร้อมใช้งานของคอนโทรลเลอร์เวอร์ชันพิเศษสำหรับเงื่อนไขการใช้งานพิเศษ

· ความพร้อมใช้งานของเวอร์ชันคอนโทรลเลอร์พร้อมระดับการรบกวนทางแม่เหล็กไฟฟ้าที่ลดลง

· เป็นที่รู้จักอย่างกว้างขวางในหมู่นักพัฒนารุ่นเก่าทั้งในโลกและในประเทศ CIS

· การสนับสนุนด้านสถาปัตยกรรมโดยสถาบันการศึกษาชั้นนำของโลก

และสุดท้ายข้อได้เปรียบหลัก: เมื่อเชี่ยวชาญชิปพื้นฐานของตระกูลแล้วจึงเป็นเรื่องง่ายที่จะเริ่มทำงานกับ "สัตว์ประหลาด" ที่ใช้คอมพิวเตอร์เช่นไมโครคอนโทรลเลอร์จาก Cygnal, Dallas Semiconductor, Analog Devices, Texas Instruments

ตระกูล MCS-51 มีวงจรไมโครหลากหลายตั้งแต่ไมโครคอนโทรลเลอร์ที่ง่ายที่สุดไปจนถึงไมโครคอนโทรลเลอร์ที่ค่อนข้างซับซ้อน ปัจจุบัน มีการดัดแปลงไมโครคอนโทรลเลอร์ตระกูล 8051 มากกว่า 200 รายการ ซึ่งผลิตโดยบริษัทเกือบ 20 แห่ง ทุกปีตัวแทนของครอบครัวนี้จะมีรูปแบบใหม่ปรากฏขึ้น

ทิศทางหลักของการพัฒนาคือ:

· เพิ่มประสิทธิภาพ (เพิ่มความถี่สัญญาณนาฬิกาและสถาปัตยกรรมที่ออกแบบใหม่)

· การลดแรงดันไฟฟ้าและการใช้พลังงาน

· การเพิ่มจำนวน RAM และหน่วยความจำ FLASH บนชิปพร้อมความเป็นไปได้ในการเขียนโปรแกรมในวงจร

· การแนะนำอุปกรณ์ที่ซับซ้อน เช่น ระบบควบคุมไดรฟ์ อินเทอร์เฟซ CAN และ USB ฯลฯ ในส่วนต่อพ่วงของไมโครคอนโทรลเลอร์

ไมโครคอนโทรลเลอร์ของตระกูล MCS-51 ช่วยให้คุณสามารถทำงานทั้งการควบคุมสำหรับอุปกรณ์ต่าง ๆ และใช้ส่วนประกอบแต่ละส่วนของวงจรอะนาล็อก ไมโครวงจรทั้งหมดของตระกูลนี้ทำงานกับระบบคำสั่งเดียวกัน ส่วนใหญ่ทำในกรณีเดียวกันโดยมี pinout เดียวกัน (หมายเลขขาสำหรับเคส) สิ่งนี้ทำให้คุณสามารถใช้ไมโครวงจรจากผู้ผลิตหลายรายสำหรับอุปกรณ์ที่พัฒนาโดยไม่ต้องเปลี่ยนแผนภาพวงจรของอุปกรณ์และโปรแกรม

ผู้ผลิตหลักในตระกูลที่ 51 ของโลก ได้แก่ Philips, Siemens, Intel, Atmel, Dallas, Temic, Oki, AMD, MHS, Gold Star, Winbond, Silicon Systems และอื่น ๆ อีกมากมาย

ลักษณะของอะนาล็อกของไมโครคอนโทรลเลอร์ของตระกูล MCS-51 (Intel 8XC51FA, 8XC51GB, 80С152) ที่มีความสามารถขั้นสูงแสดงไว้ในตาราง ใน 1.

ตารางที่ ข.1

แกะ รอม อาร์เอสเอ เอดีซี ดับบลิวดีที ที/ซี รก. ช่อง ลักษณะเฉพาะ
แอตเมล: AT89C2051
- - - - ยูอาร์ที แฟลช 2 KB
AT89C4051 - - - - ยูอาร์ที แฟลช 4 KB
AT89S4D12 128K - - - ยูอาร์ที, เอสพีไอ แฟลช 4 KB
ดัลลัสเซมิคอนดักเตอร์: DS5000FP
- - - + ยูอาร์ที ตัวโหลด Bootstrap
DS5001FP - - - + ยูอาร์ที ตัวโหลด Bootstrap
DS8xC520 16ก - - + 2xUART 2 สปท
ซีเมนส์: C505C
16ก - + + UART สามารถ 8 สปท
C515C 64ก - + + UART+ SSC+สามารถ 4PWM, 8DPTR
ฟิลิปส์: *89C51RA+
- + - + ยูอาร์ที 2 DPTR, 4 เลเวล ทรานส์, โอเวอร์คล็อก, แฟลช 8K
P51XAG1x 8ก - - + 2 ยูอาร์ที
อินเทล: 8xC51RA
8ก - + + ยูอาร์ที IRQ 4 ระดับ, โอเวอร์คล็อก
8XC196KC 64ก 16ก - + - ยูอาร์ที 3พีเอ็มดับเบิลยู
80C196KB 64ก 8ก - + - ยูอาร์ที พีเอ็มดับเบิลยู

บทที่ 1 สถาปัตยกรรมครอบครัว MCS51

ไมโครคอนโทรลเลอร์แบบชิปเดี่ยว 8 บิตในตระกูล MCS-51 ได้รับความนิยมอย่างมากในหมู่นักพัฒนาระบบควบคุมไมโครโปรเซสเซอร์เนื่องจากสถาปัตยกรรมที่ได้รับการออกแบบมาอย่างดี สถาปัตยกรรมของไมโครคอนโทรลเลอร์คือชุดทรัพยากรฮาร์ดแวร์ที่เข้าถึงด้วยซอฟต์แวร์ทั้งภายในและภายนอกและระบบคำสั่ง สถาปัตยกรรมของตระกูล MCS-51 นั้นถูกกำหนดโดยวัตถุประสงค์เป็นส่วนใหญ่ - การสร้างอุปกรณ์ดิจิทัลขนาดกะทัดรัดและราคาถูก ไมโครคอนโทรลเลอร์ที่ทำหน้าที่ทั้งหมดของไมโครคอมพิวเตอร์โดยใช้วงจรไมโครตัวเดียวเรียกว่าคอมพิวเตอร์ชิปตัวเดียว (SOC)

Intel ได้เปิดตัวประมาณ 50 รุ่นโดยใช้แกนปฏิบัติการของไมโครคอนโทรลเลอร์ Intel 8051 ในเวลาเดียวกัน บริษัท อื่น ๆ หลายแห่งเช่น Atmel, Philips ก็เริ่มผลิตไมโครคอนโทรลเลอร์ของตนเองที่พัฒนาในมาตรฐาน MCS-51

ลักษณะทั่วไป

ลักษณะสำคัญของครอบครัว:

· หน่วยประมวลผลกลาง (CPU) 8 บิต เน้นการควบคุมแอคชูเอเตอร์

· CPU มีวงจรการคูณและหารฮาร์ดแวร์ 8 บิตในตัว

·การมีอยู่ในชุดคำสั่งของการดำเนินการจำนวนมากสำหรับการทำงานกับบิตที่สามารถระบุตำแหน่งได้โดยตรงทำให้สามารถพูดคุยเกี่ยวกับโปรเซสเซอร์สำหรับการทำงานกับข้อมูลบิต (โปรเซสเซอร์บูลีน)

· หน่วยความจำโปรแกรมภายใน (อยู่บนชิป) ชนิดมาส์กหรือตั้งโปรแกรมใหม่ได้ มีปริมาตร 4 ถึง 32 KB สำหรับคริสตัลต่างๆ ในบางเวอร์ชันจะไม่มีอยู่

· RAM ข้อมูลประจำถิ่นอย่างน้อย 128 ไบต์ ซึ่งใช้สำหรับองค์กร ธนาคารที่ลงทะเบียน สแตก และการจัดเก็บข้อมูลผู้ใช้

· อย่างน้อย 32 เส้นอินเทอร์เฟซแบบสองทิศทาง (พอร์ต) สามารถกำหนดค่าแยกกันสำหรับอินพุตหรือเอาต์พุตข้อมูลได้

· ตัวนับ/ตัวจับเวลาหลายโหมด 16 บิตสองตัวที่ใช้ในการนับเหตุการณ์ภายนอก จัดระเบียบการหน่วงเวลา และนาฬิกาพอร์ตการสื่อสาร

· ตัวรับส่งสัญญาณอะซิงโครนัสดูเพล็กซ์แบบสองทิศทาง (UART) ออกแบบมาเพื่อจัดระเบียบช่องทางการสื่อสารระหว่างไมโครคอนโทรลเลอร์และอุปกรณ์ภายนอกด้วยอัตราการถ่ายโอนข้อมูลที่หลากหลาย มีเครื่องมือสำหรับการรวมฮาร์ดแวร์และซอฟต์แวร์ของไมโครคอนโทรลเลอร์เข้ากับระบบที่เชื่อมต่อ

· ระบบขัดจังหวะลำดับความสำคัญสองระดับที่รองรับเวกเตอร์ขัดจังหวะอย่างน้อย 5 ตัวจากแหล่งเหตุการณ์ภายใน 4 แห่งและแหล่งเหตุการณ์ภายนอก 2 แห่ง

· เครื่องกำเนิดสัญญาณนาฬิกาในตัว

โครงร่างโครงสร้าง

แผนภาพบล็อกของตัวควบคุมแสดงในรูปที่ 1.1 และประกอบด้วยหน่วยการทำงานหลักดังต่อไปนี้: หน่วยควบคุม หน่วยทางคณิตศาสตร์-โลจิคัล หน่วยจับเวลา/ตัวนับ อินเทอร์เฟซแบบอนุกรมและหน่วยขัดจังหวะ ตัวนับโปรแกรม หน่วยความจำข้อมูล และหน่วยความจำโปรแกรม การสื่อสารสองทางดำเนินการโดยใช้บัสข้อมูลภายใน 8 บิต สมาชิกเกือบทั้งหมดของตระกูล MCS-51 ถูกสร้างขึ้นตามโครงการนี้ ไมโครวงจรต่างๆ ของตระกูลนี้แตกต่างกันเฉพาะในรีจิสเตอร์สำหรับวัตถุประสงค์พิเศษเท่านั้น (รวมถึงจำนวนพอร์ต)

หน่วยจับเวลาและควบคุม- ออกแบบมาเพื่อสร้างสัญญาณการซิงโครไนซ์และควบคุมที่ให้การประสานงานของการทำงานร่วมกันของหน่วยคอมพิวเตอร์หลักในโหมดการทำงานที่อนุญาตทั้งหมด หน่วยควบคุมประกอบด้วย:

อุปกรณ์สำหรับสร้างช่วงเวลา

ตรรกะอินพุต/เอาท์พุต

ลงทะเบียนคำสั่ง;

ทะเบียนการจัดการการใช้ไฟฟ้า

ตัวถอดรหัสคำสั่ง ตรรกะการควบคุมคอมพิวเตอร์

ข้าว. 1.1. แผนภาพบล็อกของคอนโทรลเลอร์ I8051

อุปกรณ์สำหรับสร้างช่วงเวลาออกแบบมาเพื่อสร้างและส่งสัญญาณนาฬิกาภายในของเฟส นาฬิกา และรอบ จำนวนรอบของเครื่องจักรจะกำหนดระยะเวลาของคำสั่ง คำสั่งคอมพิวเตอร์เกือบทั้งหมดจะดำเนินการในหนึ่งหรือสองรอบเครื่อง ยกเว้นคำสั่งการคูณและการหาร ซึ่งมีระยะเวลาดำเนินการคือสี่รอบเครื่อง ให้เราแสดงความถี่ของออสซิลเลเตอร์หลักด้วย F g ระยะเวลาของวงจรเครื่องจักรเท่ากับ 12/F g หรือคือ 12 ช่วงของสัญญาณออสซิลเลเตอร์หลัก ตรรกะ I/O ได้รับการออกแบบมาเพื่อรับและส่งสัญญาณเอาท์พุตเพื่อให้แน่ใจว่ามีการแลกเปลี่ยนข้อมูลกับอุปกรณ์ภายนอกผ่านพอร์ตอินพุต/เอาท์พุต P0-P3

คำสั่งลงทะเบียนออกแบบมาเพื่อบันทึกและจัดเก็บรหัสการทำงาน 8 บิตของคำสั่งที่กำลังดำเนินการ รหัสการทำงานด้วยความช่วยเหลือของตัวถอดรหัสคำสั่งและลอจิกควบคุมคอมพิวเตอร์ จะถูกแปลงเป็นไมโครโปรแกรมเพื่อดำเนินการคำสั่ง

การลงทะเบียนการควบคุมความต้องการ (PCON)ช่วยให้คุณหยุดไมโครคอนโทรลเลอร์เพื่อลดการใช้พลังงานและลดระดับการรบกวนจากไมโครคอนโทรลเลอร์ การลดการใช้พลังงานและการรบกวนมากยิ่งขึ้นสามารถทำได้โดยการหยุดออสซิลเลเตอร์หลักของไมโครคอนโทรลเลอร์ ซึ่งสามารถทำได้โดยการสลับบิตของรีจิสเตอร์ควบคุมการใช้ PCON สำหรับตัวเลือกการผลิต n-MOS (ซีรีส์ 1816 หรือชิปต่างประเทศที่ไม่มี "c" อยู่ตรงกลางชื่อ) รีจิสเตอร์ควบคุมการใช้ PCON จะมีเพียงบิตเดียวที่ควบคุมอัตรารับส่งข้อมูลของพอร์ตอนุกรม SMOD และ ไม่มีบิตควบคุมการใช้พลังงาน

หน่วยตรรกะทางคณิตศาสตร์ (ALU)เป็นอุปกรณ์แปดบิตคู่ขนานที่ดำเนินการทางคณิตศาสตร์และตรรกะ ALU ประกอบด้วย:

การลงทะเบียนตัวสะสม, การลงทะเบียนการจัดเก็บชั่วคราว TMP1 และ TMP2;

ค่าคงที่รอม;

บวก;

ทะเบียนเพิ่มเติม (ทะเบียน B);

แบตเตอรี่ (ACC);

การลงทะเบียนสถานะโปรแกรม (PSW)

ลงทะเบียน ผู้สะสมและการถือครองทะเบียน- รีจิสเตอร์ 8 บิตที่ออกแบบมาเพื่อรับและจัดเก็บตัวถูกดำเนินการในขณะที่ดำเนินการกับสิ่งเหล่านั้น การลงทะเบียนเหล่านี้ไม่สามารถเข้าถึงได้โดยทางโปรแกรม

รอมคงที่รับประกันการสร้างรหัสแก้ไขสำหรับการแสดงข้อมูลทศนิยมไบนารี รหัสมาสก์สำหรับการดำเนินการบิต และรหัสคงที่

ตัวบวกแปดบิตแบบขนานเป็นวงจรชนิดผสมที่มีการดำเนินการตามลำดับ ออกแบบมาเพื่อดำเนินการทางคณิตศาสตร์ของการบวก การลบ และการดำเนินการทางตรรกะของการบวก การคูณ ความแตกต่าง และเอกลักษณ์

ลงทะเบียน บี- รีจิสเตอร์ 8 บิตที่ใช้ในระหว่างการคูณและการหาร สำหรับคำแนะนำอื่นๆ อาจถือเป็นการลงทะเบียนแบบเรียลไทม์เพิ่มเติมได้

แบตเตอรี่- การลงทะเบียนแปดบิตที่ออกแบบมาเพื่อรับและจัดเก็บผลลัพธ์ที่ได้รับเมื่อดำเนินการทางคณิตศาสตร์ - ตรรกะหรือการดำเนินการกะ

อินเทอร์เฟซแบบอนุกรมและหน่วยขัดจังหวะ (SIP)ออกแบบมาเพื่อจัดระเบียบอินพุตและเอาต์พุตของการไหลของข้อมูลตามลำดับและจัดระเบียบระบบการหยุดชะงักของโปรแกรม บล็อกประกอบด้วย:

บัฟเฟอร์ PIP;

ตรรกะการควบคุม

ทะเบียนควบคุม

บัฟเฟอร์เครื่องส่งสัญญาณ

บัฟเฟอร์ตัวรับ;

ตัวรับส่งสัญญาณพอร์ตอนุกรม

ขัดจังหวะการลงทะเบียนลำดับความสำคัญ;

ขัดจังหวะการเปิดใช้งานการลงทะเบียน;

ตรรกะการประมวลผลแฟล็กขัดจังหวะและวงจรการสร้างเวกเตอร์

โปรแกรมเคาน์เตอร์ออกแบบมาเพื่อสร้างที่อยู่ 16 บิตปัจจุบันของหน่วยความจำโปรแกรมภายในและที่อยู่ 8/16 บิตของหน่วยความจำโปรแกรมภายนอก ตัวนับโปรแกรมประกอบด้วยบัฟเฟอร์ PC 16 บิต การลงทะเบียน PC และวงจรส่วนเพิ่ม (เพิ่มเนื้อหา 1)

หน่วยความจำข้อมูล (RAM)มีไว้สำหรับการจัดเก็บข้อมูลชั่วคราวที่ใช้ระหว่างการทำงานของโปรแกรม

พอร์ต P0, P1, P2, P3เป็นพอร์ตอินพุต-เอาท์พุตกึ่งสองทิศทาง และได้รับการออกแบบเพื่อให้แน่ใจว่ามีการแลกเปลี่ยนข้อมูลระหว่างคอมพิวเตอร์และอุปกรณ์ภายนอก รวมกันเป็น 32 เส้นอินพุต-เอาต์พุต

การลงทะเบียนสถานะโปรแกรม (PSW)ออกแบบมาเพื่อจัดเก็บข้อมูลเกี่ยวกับสถานะของ ALU ระหว่างการทำงานของโปรแกรม

หน่วยความจำโปรแกรม (EPROM)ออกแบบมาเพื่อจัดเก็บโปรแกรมและเป็นหน่วยความจำแบบอ่านอย่างเดียว (ROM) ชิปต่างๆ ใช้มาสก์ ลบล้างด้วยรังสีอัลตราไวโอเลต หรือแฟลชรอม

การลงทะเบียนตัวชี้ข้อมูล (DPTR)ออกแบบมาเพื่อจัดเก็บที่อยู่ 16 บิตของหน่วยความจำข้อมูลภายนอก

ตัวชี้สแต็ก (SP)เป็นรีจิสเตอร์ 8 บิตที่ออกแบบมาเพื่อจัดระเบียบพื้นที่หน่วยความจำข้อมูลพิเศษ (สแต็ก) ซึ่งสามารถจัดเก็บเซลล์หน่วยความจำใดๆ ไว้ชั่วคราวได้

1.3 การกำหนดพินของไมโครคอนโทรลเลอร์ 8051(รูปที่ 1.2)

· U ss - ศักยภาพของสายสามัญ ("กราวด์");

· U cc - แรงดันไฟฟ้าหลัก +5 V;

· X1,X2 - เทอร์มินัลสำหรับเชื่อมต่อเครื่องสะท้อนควอทซ์

· RST - อินพุตรีเซ็ตทั่วไปของไมโครคอนโทรลเลอร์

· PSEN - การอนุญาตหน่วยความจำโปรแกรมภายนอกออกให้เฉพาะเมื่อเข้าถึง ROM ภายนอกเท่านั้น

· ALE - แฟลชที่อยู่หน่วยความจำภายนอก

· EA - ปิดการใช้งานหน่วยความจำโปรแกรมภายใน ระดับ 0 ที่อินพุตนี้บังคับให้ไมโครคอนโทรลเลอร์รันโปรแกรมจาก ROM ภายนอกเท่านั้น ไม่สนใจภายใน (ถ้ามีอย่างหลัง);

ข้าว. 1.2. การกำหนดพิน 8051

· P1 - พอร์ตอินพุต/เอาท์พุตกึ่งสองทิศทางแปดบิต แต่ละบิตของพอร์ตสามารถตั้งโปรแกรมสำหรับทั้งอินพุตและเอาต์พุตของข้อมูล โดยไม่คำนึงถึงสถานะของบิตอื่น ๆ

· P2 เป็นพอร์ตเสมือนสองทิศทาง 8 บิต คล้ายกับ P1 หมุดของพอร์ตนี้ใช้เพื่อให้ข้อมูลที่อยู่เมื่อเข้าถึงโปรแกรมภายนอกหรือหน่วยความจำข้อมูล (หากใช้การกำหนดแอดเดรส 16 บิตของพอร์ตหลัง) นอกจากนี้ หมุดพอร์ตยังใช้ระหว่างการเขียนโปรแกรมเพื่อป้อนบิตที่สำคัญที่สุดของที่อยู่ลงในไมโครคอนโทรลเลอร์

· РЗ - พอร์ตเสมือนสองทิศทาง 8 บิต คล้ายกับ P1 พินของพอร์ตนี้สามารถทำหน้าที่ทางเลือกต่างๆ มากมายที่ใช้เมื่อตัวจับเวลาการทำงาน พอร์ต I/O อนุกรม ตัวควบคุมการขัดจังหวะ และโปรแกรมภายนอกและ หน่วยความจำข้อมูล

· P0 เป็นพอร์ตอินพุต/เอาต์พุตข้อมูลสองทิศทางแบบมัลติเพล็กซ์ 8 บิต โดยไบต์ต่ำของที่อยู่และข้อมูลจะถูกเอาต์พุตผ่านพอร์ตนี้ในเวลาที่ต่างกัน

องค์กรหน่วยความจำ

MCS-51 ซีรีส์ทั้งหมดมีสถาปัตยกรรมของ Harvard กล่าวคือ พื้นที่ที่อยู่แยกกันสำหรับโปรแกรมและหน่วยความจำข้อมูล โครงสร้างหน่วยความจำแสดงไว้ในรูปที่ 1 1.3.

ปริมาณหน่วยความจำโปรแกรมภายใน (ประจำถิ่น) (ROM, EPROM หรือ OTP ROM) ที่อยู่บนชิป ขึ้นอยู่กับประเภทของชิป อาจเป็น 0 (ROMless), 4K (ชิปฐาน), 8K, 16K หรือ 32K หากจำเป็น ผู้ใช้สามารถขยายหน่วยความจำของโปรแกรมได้โดยการติดตั้ง ROM ภายนอก การเข้าถึง ROM ภายในหรือภายนอกถูกกำหนดโดยค่าของสัญญาณที่ขา EA (การเข้าถึงภายนอก):

EA=V cc (แรงดันไฟจ่าย) - เข้าถึง ROM ภายใน

EA=V ss (ศักย์กราวด์) - เข้าถึง ROM ภายนอก

สำหรับคริสตัลที่ไม่มี ROM (ไม่มี ROM) พิน EA จะต้องเชื่อมต่อกับ V ss อย่างถาวร

ข้าว. 1.3. การจัดระเบียบหน่วยความจำของตระกูล MCS-51

ไฟแฟลชอ่าน ROM ภายนอก - (เปิดใช้งาน Store Store) ถูกสร้างขึ้นเมื่อเข้าถึงหน่วยความจำโปรแกรมภายนอกและไม่ได้ใช้งานขณะเข้าถึง ROM ที่อยู่บนชิป ระบบขัดจังหวะจะใช้พื้นที่ที่อยู่หน่วยความจำโปรแกรมด้านล่าง สถาปัตยกรรมชิปหลัก 8051 ให้การสนับสนุนแหล่งขัดจังหวะห้าแหล่ง:

· สองอินเตอร์รัปต์ภายนอก;

· การหยุดชะงักสองครั้งจากตัวจับเวลา

· ขัดจังหวะจากพอร์ตอนุกรม

ในรูป รูปที่ 1.4 แสดงแผนผังพื้นที่ด้านล่างของหน่วยความจำโปรแกรม

ข้าว. 1.4. แผนที่พื้นที่หน่วยความจำโปรแกรมด้านล่าง

หน่วยความจำโปรแกรม (ROM)

สำหรับไมโครคอนโทรลเลอร์ในตระกูล 8051 หน่วยความจำโปรแกรมและหน่วยความจำข้อมูลมีความเป็นอิสระและเป็นอิสระจากกัน จัดการโดยคำสั่งและสัญญาณควบคุมต่างๆ

ปริมาณหน่วยความจำโปรแกรมในตัวที่อยู่บนชิปไมโครคอนโทรลเลอร์ 8051 คือ 4 KB (สูงสุด 32 ในตระกูล) เมื่อเข้าถึงหน่วยความจำโปรแกรมภายนอก ไมโครคอนโทรลเลอร์ 8051 ทั้งหมดจะใช้ที่อยู่ 16 บิตเสมอ ซึ่งทำให้สามารถเข้าถึง ROM ขนาด 64 KB ไมโครคอนโทรลเลอร์จะเข้าถึงหน่วยความจำของโปรแกรมเมื่ออ่าน opcode และตัวถูกดำเนินการ (โดยใช้ตัวนับโปรแกรม PC) และเมื่อดำเนินการคำสั่งเพื่อคัดลอกไบต์จากหน่วยความจำโปรแกรมไปยังตัวสะสม เมื่อดำเนินการคำสั่งคัดลอกข้อมูล การระบุเซลล์หน่วยความจำโปรแกรมที่จะอ่านข้อมูลสามารถทำได้โดยใช้ทั้งตัวนับ PC และตัวชี้ข้อมูลพิเศษสองไบต์ที่ลงทะเบียน DPTR

หน่วยความจำข้อมูล (RAM)

ปริมาตรหน่วยความจำข้อมูลบนชิปคือ 128 ไบต์ ความจุหน่วยความจำข้อมูลภายนอกสามารถเข้าถึง 64 KB 32 ไบต์แรกถูกจัดเป็นธนาคารสี่แห่งสำหรับการลงทะเบียนวัตถุประสงค์ทั่วไป โดยกำหนดธนาคาร 0 ถึงธนาคาร 3 ตามลำดับ แต่ละธนาคารประกอบด้วยแปดรีจิสเตอร์ R0–R7 เมื่อใดก็ได้ โปรแกรมจะสามารถเข้าถึงธนาคารแห่งการลงทะเบียนได้เพียงธนาคารเดียว โดยระบุที่อยู่ของการลงทะเบียน ซึ่งจำนวนนั้นอยู่ในบิตที่สามและสี่ของคำว่า PSW สถานะโปรแกรม

ที่อยู่ของพื้นที่บิตของหน่วยความจำของไมโครคอนโทรลเลอร์ 8051

ตารางที่ 1.1

ที่อยู่ไบต์ (Hex) ที่อยู่บิตตามหลัก
D7 D6 D5 D4 D3 D2 D1 D0
2F 7เอฟ 7อี 7D 7ซี 7B 7เอ
2E
2D 6เอฟ 6อี 6D 6ซี 6B 6เอ
2ซี
2B 5F 5E 5D 5ซี 5B 5เอ
2เอ
4เอฟ 4E 4D 4ซี 4B 4เอ
3เอฟ 3อี 3 มิติ 3ซี 3B 3เอ
2F 2E 2D 2ซี 2B 2เอ
1F 1จ 1D 1ซี 1B 1เอ
0เอฟ 0อี 0D 0ซี 0B 0เอ
20ชม

นักพัฒนาสามารถกำหนดค่าพื้นที่ที่อยู่ที่เหลือได้ตามดุลยพินิจของเขา โดยสามารถรองรับพื้นที่สแต็ก ระบบ และข้อมูลผู้ใช้ได้ สามารถเข้าถึงเซลล์หน่วยความจำข้อมูลได้สองวิธี วิธีแรกคือการกำหนดที่อยู่โดยตรงของเซลล์หน่วยความจำ ในกรณีนี้ ที่อยู่ของเซลล์คือตัวถูกดำเนินการของคำสั่งที่เกี่ยวข้อง วิธีที่สองคือการกำหนดที่อยู่ทางอ้อมโดยใช้การลงทะเบียนตัวชี้ R0 หรือ R1: ก่อนที่จะดำเนินการคำสั่งที่เกี่ยวข้องจะต้องป้อนที่อยู่ของเซลล์ที่จะเข้าถึงลงในหนึ่งในนั้น

ในการเข้าถึงหน่วยความจำข้อมูลภายนอก จะใช้เฉพาะการกำหนดที่อยู่ทางอ้อมโดยใช้รีจิสเตอร์ R0 และ R1 หรือใช้รีจิสเตอร์ตัวชี้ DPTR 16 บิต

ส่วนหนึ่งของหน่วยความจำข้อมูลคือพื้นที่บิต ซึ่งเป็นไปได้ที่จะระบุแต่ละหลักของเซลล์หน่วยความจำโดยใช้คำสั่งบิตพิเศษ ที่อยู่ของบิตที่สามารถระบุตำแหน่งได้โดยตรงสามารถเขียนได้ในรูปแบบ (ByteAddress) (บิต) ความสอดคล้องของวิธีการระบุที่อยู่ทั้งสองนี้สามารถกำหนดได้จากตาราง 1.1.

พื้นฐานของไมโครคอนโทรลเลอร์ (ดูรูปที่ 1) คือหน่วยลอจิกทางคณิตศาสตร์ (ALU) 8 บิต หน่วยความจำ MK มีสถาปัตยกรรมของ Harvard เช่น แบ่งตามตรรกะเป็น: หน่วยความจำโปรแกรม - PP (ภายในหรือภายนอก) แก้ไขโดยตัวนับโปรแกรม 16 บิต (SC) และหน่วยความจำข้อมูล - ภายใน (หน่วยความจำข้อมูลที่อยู่อาศัย - RPD) 128 (หรือ 256) ไบต์เช่นเดียวกับภายนอก (ภายนอก หน่วยความจำข้อมูล – VPD) สูงสุด 64 KB ทางกายภาพ หน่วยความจำโปรแกรมถูกนำมาใช้ใน ROM (อ่านอย่างเดียว) และหน่วยความจำข้อมูลถูกนำมาใช้ใน RAM (ข้อมูลสามารถเขียนและอ่านได้)

การรับและส่งสัญญาณภายนอกจะดำเนินการผ่านพอร์ตแปดบิต 4 พอร์ต P0..P3 เมื่อเข้าถึงหน่วยความจำโปรแกรมภายนอก (EPM) หรือหน่วยความจำข้อมูล (DRAM) พอร์ต P0 และ P2 จะถูกใช้เป็นแอดเดรส/บัสข้อมูลภายนอกแบบมัลติเพล็กซ์ สายพอร์ต P3 ยังสามารถทำหน้าที่ทางเลือกได้ (ดูตารางที่ 1)

รีจิสเตอร์ DPTR 16 บิตจะสร้างที่อยู่ VPD หรือที่อยู่พื้นฐานของหน่วยความจำโปรแกรมในคำสั่งการแปลงแบบสะสม รีจิสเตอร์ DPTR ยังสามารถใช้เป็นรีจิสเตอร์ 8 บิตอิสระสองตัว (DPL และ DPH) เพื่อจัดเก็บตัวถูกดำเนินการ

รีจิสเตอร์คำสั่งภายใน (RC) 8 บิตได้รับโค้ดของคำสั่งที่กำลังดำเนินการ รหัสนี้ถูกถอดรหัสโดยวงจรควบคุมซึ่งสร้างสัญญาณควบคุม (ดูรูปที่ 1)

การเข้าถึงการลงทะเบียนฟังก์ชันพิเศษ - RSF (SFR - ในรูปที่ 1 มีวงกลมด้วยเส้นประ) สามารถทำได้โดยใช้การกำหนดที่อยู่ไบต์โดยตรงในช่วงที่อยู่ตั้งแต่ 128 (80h) ขึ้นไป


หน่วยความจำข้อมูลประจำถิ่น (RDM) ในไมโครคอนโทรลเลอร์รุ่นแรกของตระกูล MCS-51 มีปริมาตร 128 ไบต์ RPD ขนาด 32 ไบต์ล่างยังเป็นรีจิสเตอร์เอนกประสงค์ - RON (4 ช่อง ช่องละ 8 RON) โปรแกรมสามารถติดต่อหนึ่งใน 8 RON ของธนาคารที่ใช้งานอยู่ การเลือกธนาคาร RON ที่ใช้งานอยู่นั้นดำเนินการโดยการเขียนโปรแกรมสองบิตในการลงทะเบียนสถานะโปรเซสเซอร์ - PSW


ตารางที่ 1 – การกำหนดพิน MCS–51

หมายเลขพิน การกำหนด วัตถุประสงค์
1..8 ป1 พอร์ต I/O กึ่งสองทิศทาง 8 บิต
9 พ.ศ

รีเซ็ตสัญญาณ (ระดับแอคทีฟ – สูง);

สัญญาณ RST รีเซ็ต: พีซีและรีจิสเตอร์ฟังก์ชันพิเศษ (SFR) ส่วนใหญ่ ปิดใช้งานการขัดจังหวะและตัวจับเวลาทั้งหมด เลือก RON Bank 0; เขียน "ทั้งหมด" ไปยังพอร์ต P0_P3 เพื่อเตรียมอินพุต เขียนโค้ด 07H ไปยังสแต็กพอยน์เตอร์ (SP)

10..17

พอร์ต I/O กึ่งสองทิศทาง 8 บิต; หลังจากบันทึกในหมวดหมู่ที่เกี่ยวข้อง “1” – ทำหน้าที่เพิ่มเติม (ทางเลือก):

อินพุตพอร์ตอนุกรม – RxD;

เอาต์พุตพอร์ตอนุกรม – TxD;

อินพุตขัดจังหวะภายนอก 0 – ~INT0;

อินพุตขัดจังหวะภายนอก 1 – ~INT1;

อินพุตตัวจับเวลา/ตัวนับ 0 – T0;

อินพุตตัวจับเวลา/ตัวนับ 1 – T1;

เอาต์พุตแฟลช สัญญาณเมื่อเขียนถึง VPD – ~ WR;

เอาต์พุตแฟลช สัญญาณเมื่ออ่านจาก VPD – ~ RD;

18, 19 X1, X2 หมุดสำหรับเชื่อมต่อเครื่องสะท้อนควอทซ์หรือวงจร LC
20 จีเอ็นดี ข้อสรุปทั่วไป
21..28 ป2 พอร์ต I/O กึ่งสองทิศทาง 8 บิต; หรือระบุเอาต์พุต A ในโหมดการทำงานด้วยหน่วยความจำภายนอก (VPP หรือ VPD)
29 พีเอ็มอี Strobe สำหรับอ่านหน่วยความจำโปรแกรมภายนอก ออกเฉพาะเมื่อเข้าถึง ROM ภายนอก
30 เบียร์ ที่อยู่แฟลชที่อยู่หน่วยความจำภายนอก (VPP หรือ VPD);
31 อีเอ การปิดใช้งาน RPP ระดับ “0” ที่อินพุตนี้จะถ่ายโอน MK ไปยังการสุ่มตัวอย่างคำสั่ง จากรันเวย์เท่านั้น ;
39..32 ป0 พอร์ต I/O แบบสองทิศทาง 8 บิต; เมื่อเข้าถึงหน่วยความจำภายนอก ระบบจะออกที่อยู่ A (ซึ่งเขียนไปยังรีจิสเตอร์ภายนอกโดยใช้สัญญาณ ALE) จากนั้นแลกเปลี่ยนไบต์พร้อมกันกับสัญญาณ ~PME (สำหรับคำสั่ง) หรือ ~WR,~RD (สำหรับข้อมูลใน VPD) เมื่อเข้าถึงหน่วยความจำภายนอกทุกหน่วยจะถูกเขียนลงในพอร์ตรีจิสเตอร์ P0 ซึ่งจะทำลายข้อมูลที่เก็บไว้ที่นั่น
40 UC จ่ายแรงดันเอาต์พุต

การสลับธนาคาร RON ช่วยลดความยุ่งยากในการดำเนินการของรูทีนย่อยและการจัดการขัดจังหวะเพราะว่า ไม่จำเป็นต้องส่งเนื้อหาของ RON ของโปรแกรมหลักไปยังสแต็กเมื่อเรียกรูทีนย่อย (ก็เพียงพอที่จะไปที่ธนาคาร RON อื่นที่ใช้งานอยู่ในรูทีนย่อย)

การเข้าถึง RPD สามารถทำได้โดยใช้การกำหนดแอดเดรสไบต์ทางอ้อมหรือโดยตรง (การกำหนดแอดเดรสไบต์โดยตรงช่วยให้คุณเข้าถึงเฉพาะ 128 ไบต์แรกของ RPD)

พื้นที่ RPD แบบขยาย (สำหรับไมโครคอนโทรลเลอร์ของตระกูล MCS-52 และตระกูลต่อๆ ไป) จากที่อยู่ 128 (80h) ถึง 255 (FFh) สามารถแก้ไขได้โดยใช้วิธีระบุที่อยู่ทางอ้อมเท่านั้น

ตารางที่ 2 - บล็อกของรีจิสเตอร์ฟังก์ชันพิเศษ (s f r)

รหัสจำ ชื่อ
0E0ชม * เอซีซี แบตเตอรี่
0F0h *ข ลงทะเบียนตัวขยายการสะสม
0D0ชม *ปสว คำสถานะตัวประมวลผล
0B0ชม *ป3 ท่าเรือ 3
0A0ชม *ป2 พอร์ต 2
90ชม *ป1 ท่าเรือ 1
80ชม * ป0 พอร์ต 0
0B8ชม *ไอพี ขัดจังหวะการลงทะเบียนลำดับความสำคัญ
0A8ชม *เช่น ขัดจังหวะการลงทะเบียนมาสก์
99ชม สบีฟ บัฟเฟอร์ตัวรับส่งสัญญาณแบบอนุกรม
98ชม * สคอน การควบคุมพอร์ตอนุกรม / การลงทะเบียนสถานะ
89ชม ทีเอ็มโอดี ลงทะเบียนโหมดจับเวลา / เคาน์เตอร์
88ชม * ทีคอน การควบคุมตัวจับเวลา/ตัวนับ/การลงทะเบียนสถานะ
8ธ ที1 ตัวจับเวลา 1 (ไบต์สูง)
8บ ทีแอล1 ตัวจับเวลา 1 (ไบต์ต่ำ)
8ช TH0 ตัวจับเวลา 0 (ไบต์สูง)
8อา ทีแอล0 ตัวจับเวลา 0 (ไบต์ต่ำ)
83ชม ดีพีเอช Data Pointer Register (DPTR) (ไบต์สูง)
82ชม ดีพีแอล Data Pointer Register (DPTR) (ไบต์ต่ำ)
81ชม เอสพี การลงทะเบียนตัวชี้สแต็ก
87ชม พีคอน ทะเบียนควบคุมการใช้พลังงาน

2. ซอฟต์แวร์รุ่น MCS–51


ประเภทคำสั่ง MCS–51

คำสั่งเกือบครึ่งหนึ่งดำเนินการใน 1 รอบเครื่อง (MC) ด้วยความถี่ออสซิลเลเตอร์แบบควอตซ์ 12 MHz เวลาดำเนินการของคำสั่งดังกล่าวคือ 1 μs คำสั่งที่เหลือจะดำเนินการใน 2 รอบของเครื่อง ได้แก่ ใน2μs เฉพาะคำสั่งการคูณ (MUL) และหาร (DIV) เท่านั้นที่จะดำเนินการใน 4 รอบของเครื่อง

ในระหว่างรอบเครื่องหนึ่ง การเข้าถึง Program Memory (ภายในหรือภายนอก) สองครั้งจะเกิดขึ้นเพื่ออ่านคำสั่งขนาด 2 ไบต์ หรือการเข้าถึงหน่วยความจำข้อมูลภายนอก (EDM) หนึ่งครั้ง

3. วิธีการ (วิธี) ในการจัดการกับ MCS–51

1. การลงทะเบียนที่อยู่ – ตัวถูกดำเนินการ 8 บิตอยู่ใน RON ของธนาคารลงทะเบียนที่เลือก (ใช้งานอยู่)

2 การระบุที่อยู่โดยตรง (ระบุด้วยเครื่องหมาย - #) - ตัวถูกดำเนินการอยู่ในไบต์ที่สอง (และสำหรับตัวถูกดำเนินการ 16 บิตในไบต์ที่สาม) ของคำสั่ง

3 การกำหนดที่อยู่ทางอ้อม (ระบุด้วยเครื่องหมาย – @) – ตัวถูกดำเนินการอยู่ในหน่วยความจำข้อมูล (RDM หรือ VPD) และที่อยู่ของเซลล์หน่วยความจำมีอยู่ในหนึ่งใน RON ของการกำหนดที่อยู่ทางอ้อม (R0 หรือ R1) ในคำสั่ง PUSH และ POP ที่อยู่จะอยู่ใน stack pointer SP; การลงทะเบียน DPTR สามารถมีที่อยู่ VPD ได้สูงสุด 64K;

4 DIRECT BYTE ADDRESSING – (dir) – ใช้เพื่อเข้าถึงเซลล์ RPD (ที่อยู่ 00h...7Fh) และฟังก์ชันพิเศษลงทะเบียน SFR (ที่อยู่ 80h...0FFh)

5 DIRECT BITS ADDRESSING – (บิต) – ใช้เพื่อเข้าถึง 128 บิตที่สามารถระบุตำแหน่งได้แยกกันซึ่งอยู่ในเซลล์ RPD ที่ที่อยู่ 20H...2FH และเพื่อแยกบิตที่สามารถระบุตำแหน่งได้ของรีจิสเตอร์ฟังก์ชันพิเศษ (ดูตารางที่ 3 และรุ่นโปรแกรม)

6 การกำหนดที่อยู่ดัชนีทางอ้อม (ระบุด้วยเครื่องหมาย – @) – ทำให้การดูตารางในหน่วยความจำโปรแกรมง่ายขึ้น ที่อยู่ PP ถูกกำหนดโดยผลรวมของการลงทะเบียนฐาน (PC หรือ DPTR) และการลงทะเบียนดัชนี (ตัวสะสม)

7 การกำหนดที่อยู่โดยนัย (ในตัว) – รหัสคำสั่งประกอบด้วยการอ้างอิงโดยนัย (โดยค่าเริ่มต้น) ไปยังหนึ่งในตัวถูกดำเนินการ (ส่วนใหญ่มักจะไปที่ Accumulator)

4. รูปแบบคำสถานะโปรเซสเซอร์ (PSW)

C – Carry (CARY) หรือยืมแฟล็ก ยังทำหน้าที่ของ “Boolean Accumulator” ในคำสั่งที่ทำงานด้วยบิต

AC – ธงพกพาเสริม (เพิ่มเติม) – ถูกตั้งค่าเป็น “1” หากในคำสั่งเพิ่มเติม (ADD, ADDC) มีการถ่ายโอนจาก tetrad ต่ำไปยัง tetrad สูง (เช่น จากบิตที่ 3 ไปยังบิตที่ 4)

F0 – การตั้งค่าสถานะผู้ใช้ – ตั้งค่า รีเซ็ต และตรวจสอบโดยซอฟต์แวร์

อาร์เอส1 RS0 ธนาคาร ที่อยู่ (ผบ.)
0 0 0 00น..07น
0 1 1 08น..0ฟ
1 0 2 10ชม..17น
1 1 3 18ชม..1Fh

RS1,RS0 – ลงทะเบียนการเลือกธนาคาร:

OV - แฟล็กโอเวอร์โฟลว์ทางคณิตศาสตร์ ค่าของมันถูกกำหนดโดยการดำเนินการ "เฉพาะหรือ" ของสัญญาณการถ่ายโอนอินพุตและเอาต์พุตของบิตที่สำคัญที่สุดของ ALU ค่าเดียวของแฟล็กนี้บ่งชี้ว่าผลลัพธ์ของการดำเนินการทางคณิตศาสตร์ในโค้ดส่วนเสริมของสองนั้นอยู่นอกขีดจำกัดที่อนุญาต: –128…+127; เมื่อดำเนินการหาร แฟล็ก OV จะถูกรีเซ็ต และในกรณีของการหารด้วยศูนย์ จะถูกตั้งค่าไว้ เมื่อทำการคูณ ธง OV จะถูกตั้งค่าหากผลลัพธ์มากกว่า 255 (0FFH)

บิต PSW – สำรอง มีทริกเกอร์ เข้าถึงได้โดยการเขียนหรือการอ่าน

P – แฟล็กพาริตี – คือการเพิ่มจำนวนหน่วยบิตในตัวสะสมให้เป็นคู่ สร้างโดยวงจรผสม (ซอฟต์แวร์เข้าถึงได้โดยการอ่านเท่านั้น)

ไมโครคอนโทรลเลอร์ MCS-51 ไม่มีแฟล็ก "Z" แต่ในคำสั่งกระโดดแบบมีเงื่อนไข (JZ, JNZ) เนื้อหาปัจจุบัน (ศูนย์หรือไม่เป็นศูนย์) ของตัวสะสมจะถูกตรวจสอบโดยวงจรผสม

คำสั่งการถ่ายโอนและการแลกเปลี่ยนตัวถูกดำเนินการทั้งหมดสามารถดำเนินการได้ผ่านตัวสะสม (ดูรูปที่ 3) นอกจากนี้ การถ่ายโอนจาก/ไปยังหน่วยความจำภายนอก (หน่วยความจำโปรแกรมหรือหน่วยความจำข้อมูล) สามารถทำได้ผ่านแบตเตอรี่เท่านั้น

การถ่ายโอนส่วนใหญ่สามารถทำได้ผ่านไบต์โดยตรง (dir) มีแม้กระทั่งการถ่ายโอนแบบ dir–dir (ดูรูปที่ 3)

การถ่ายโอนที่ขาดหายไปจาก RON ไปยัง RON สามารถนำไปใช้เป็นการถ่ายโอนจาก RON ไปยังไบต์ dir ที่ระบุโดยตรง (โดยคำนึงว่า RON ตั้งอยู่ในพื้นที่เริ่มต้นของหน่วยความจำข้อมูลที่อยู่อาศัย ซึ่งเซลล์สามารถระบุได้ว่าเป็น dir)

คำแนะนำในการแลกเปลี่ยน XCH อนุญาตให้ถ่ายโอนไบต์โดยไม่ทำลายตัวถูกดำเนินการทั้งสองตัว

คำสั่งทางคณิตศาสตร์จะดำเนินการใน Accumulator เท่านั้น ดังนั้น จะต้องวางตัวถูกดำเนินการตัวแรกไว้ใน Accumulator ก่อน จากนั้นจึงบวกหรือลบตัวถูกดำเนินการตัวที่สอง ผลลัพธ์จะถูกวางไว้ใน Accumulator


คำสั่งลบ SUBB จะดำเนินการเฉพาะกับเงินกู้เท่านั้น (นั่นคือ ธง Cary ก็จะถูกลบออกจากผลลัพธ์ด้วย) ดังนั้น เพื่อดำเนินการคำสั่งลบโดยไม่ต้องยืม คุณต้องออกคำสั่ง C flag clear (CLRC) ก่อน

คำสั่งสำหรับการคูณตัวถูกดำเนินการแบบไบต์เดี่ยว - MULAB - วางผลลัพธ์แบบสองไบต์ (16 บิต) ได้แก่ ไบต์ต่ำในตัวสะสม ไบต์สูงในรีจิสเตอร์ B

ผลลัพธ์ของการดำเนินการคำสั่งสำหรับการแบ่งตัวถูกดำเนินการไบต์เดียว - DIVAB - ถูกวางไว้: ผลหาร - ตัวสะสม, ส่วนที่เหลือ - ในการลงทะเบียน B

คำสั่งทางคณิตศาสตร์ของ INC จะเพิ่มหนึ่งคำสั่งให้กับตัวถูกดำเนินการที่เลือก คำสั่งทางคณิตศาสตร์ DEC จะลบหนึ่งออกจากตัวถูกดำเนินการที่เลือก คำสั่ง Decimal Accumulator Adjustment (DAA) ช่วยให้คุณเพิ่มเลขฐานสิบที่เข้ารหัสไบนารี (BCD) โดยไม่ต้องแปลงเป็นรูปแบบเลขฐานสิบหก (รูปแบบฐานสิบหก) ตัวถูกดำเนินการต้นทางจะต้องอยู่ในรูปแบบ BCD เช่น แต่ละเตตราดในหนึ่งไบต์จะมีเฉพาะตัวเลขตั้งแต่ 0 ถึง 9 เท่านั้น (ไม่สามารถมีเลขฐานสิบหกได้: A, B, C, D, E, F) ดังนั้น หนึ่งไบต์สามารถประกอบด้วยตัวเลขตั้งแต่ 00 ถึง 99 สำหรับหมายเลข BCD ที่แพ็ก หรือตัวเลขตั้งแต่ 0 ถึง 9 สำหรับหมายเลข BCD ที่คลายแพ็ก

คำสั่ง DA A - การแก้ไขทศนิยมดำเนินการกับเนื้อหาของ Accumulator หลังจากเพิ่มหมายเลข BCD ในโปรเซสเซอร์ (ตัวเลขถูกเพิ่มตามกฎของเลขคณิตฐานสิบหก) ดังต่อไปนี้ (ดูตัวอย่าง):

· ถ้าเนื้อหาของเตตราดต่ำของตัวสะสมมีค่ามากกว่า 9 หรือมีการตั้งค่าแฟล็กพกพาเสริม (AC = 1) ดังนั้น 6 จะถูกเพิ่มเข้าไปในเนื้อหาของตัวสะสม (เช่น ตัวเลขหกหลักที่หายไปในรูปแบบเลขฐานสิบหก)

· หากหลังจากนี้เนื้อหาของเตตราดสูงสุดของตัวสะสมมีค่ามากกว่า 9 หรือตั้งค่าสถานะ C แล้ว เลข 6 จะถูกบวกเข้ากับเตตราดสูงสุดของตัวสะสม

คำสั่งแก้ไขทศนิยม DA A จะไม่ถูกใช้หลังจากคำสั่งส่วนเพิ่ม (INC) เนื่องจากคำสั่งส่วนเพิ่มไม่ส่งผลต่อ (เปลี่ยน) แฟล็ก C และ AC

คำสั่งเชิงตรรกะ:

ตรรกะ "และ" - ANL

ตรรกะ "หรือ" - ORL,

คำสั่ง XOR แบบลอจิคัล - XRL - ดำเนินการใน Accumulator (เช่นเดียวกับคำสั่งทางคณิตศาสตร์) แต่ก็เป็นไปได้ที่จะดำเนินการคำสั่งเชิงตรรกะในรูปแบบไบต์โดยตรง (dir) เช่นกัน ในกรณีนี้ ตัวถูกดำเนินการที่สองอาจเป็น:

ในแบตเตอรี่หรือ

ตัวดำเนินการทันทีของคำสั่ง

คำสั่งการหมุน (RR A, RL A) และคำสั่งการหมุนผ่านแฟล็ก CARY (RRC A, RLC A) จะเปลี่ยนเนื้อหาของ Accumulator ทีละ 1 บิตแบบวนรอบ การถ่ายโอนตัวถูกดำเนินการบิตจะดำเนินการผ่านแฟล็ก C เท่านั้น