ข่าว
ข่าว
บทสรุปวิทยาศาสตร์ยอดนิยมที่แข็งแกร่งที่สุดของ MCU [ชุดรวมที่แนะนำ] (2)
2022-03-17 230

6

การเขียนโปรแกรมไมโครคอนโทรลเลอร์


 

การเขียนโปรแกรมสำหรับไมโครคอนโทรลเลอร์ (MCU) กับการเขียนโปรแกรมสำหรับพีซี (PC) นั้นแตกต่างกันมาก แม้ว่าเครื่องมือพัฒนา MCU ที่ใช้ภาษา C จะได้รับความนิยมมากขึ้นเรื่อยๆ แต่สำหรับนักออกแบบที่ต้องการเขียนโค้ดโปรแกรมที่มีประสิทธิภาพและชอบใช้ภาษาแอสเซมบลี ภาษาแอสเซมบลียังคงเป็นภาษาโปรแกรมที่กระชับและมีประสิทธิภาพมากที่สุด


สำหรับการเขียนโปรแกรม MCU นั้น โครงสร้างพื้นฐานโดยคร่าวๆ สามารถกล่าวได้ว่าเหมือนกัน ซึ่งโดยทั่วไปแบ่งออกเป็นสามส่วน ได้แก่ ส่วนการเริ่มต้น (นี่คือความแตกต่างที่สำคัญที่สุดระหว่างการเขียนโปรแกรม MCU และ PC) ส่วนเนื้อหาของลูปโปรแกรมหลัก และส่วนจัดการการขัดจังหวะ ซึ่งจะอธิบายดังต่อไปนี้:
  1. การเริ่มต้น:ในการออกแบบโปรแกรม MCU ทั้งหมด การเริ่มต้นใช้งานถือเป็นขั้นตอนพื้นฐานและสำคัญที่สุด ซึ่งโดยทั่วไปประกอบด้วยขั้นตอนต่อไปนี้:
  ปิดกั้นการขัดจังหวะทั้งหมดและเริ่มต้นตัวชี้สแต็ก:โดยทั่วไปแล้ว ขั้นตอนการเริ่มต้นระบบไม่ต้องการให้เกิดการขัดจังหวะใดๆ  
  ล้างพื้นที่ RAM ของระบบและแสดงหน่วยความจำ:แม้ว่าบางครั้งอาจไม่จำเป็นอย่างยิ่ง แต่จากมุมมองของความน่าเชื่อถือและความสม่ำเสมอ โดยเฉพาะอย่างยิ่งเพื่อป้องกันข้อผิดพลาดที่ไม่คาดคิด การพัฒนาพฤติกรรมการเขียนโปรแกรมที่ดีจึงเป็นสิ่งที่แนะนำ  
  การเริ่มต้นใช้งานพอร์ต IO:ตามข้อกำหนดการใช้งานของโครงการ ให้ตั้งค่าโหมดอินพุตและเอาต์พุตของพอร์ต IO ที่เกี่ยวข้อง สำหรับพอร์ตอินพุต คุณต้องตั้งค่าตัวต้านทานแบบ pull-up หรือ pull-down และสำหรับพอร์ตเอาต์พุต คุณต้องตั้งค่าระดับเอาต์พุตเริ่มต้นเพื่อป้องกันข้อผิดพลาดที่ไม่จำเป็น  
  การตั้งค่าการขัดจังหวะ:สำหรับแหล่งสัญญาณขัดจังหวะทั้งหมดที่จำเป็นต้องใช้ในโครงการ จะต้องเปิดใช้งานและตั้งค่าเงื่อนไขการกระตุ้นสำหรับสัญญาณขัดจังหวะ ในขณะที่สัญญาณขัดจังหวะที่ซ้ำซ้อนซึ่งไม่ได้ใช้งานจะต้องปิดใช้งาน  
  การเริ่มต้นใช้งานโมดูลการทำงานอื่นๆ:สำหรับโมดูลฟังก์ชันอุปกรณ์ต่อพ่วงทั้งหมดของ MCU ที่จำเป็นต้องใช้งาน จะต้องตั้งค่าที่เกี่ยวข้องตามข้อกำหนดของแอปพลิเคชันโครงการ ตัวอย่างเช่น สำหรับการสื่อสาร UART จะต้องตั้งค่าอัตรา Baud Rate ความยาวข้อมูล วิธีการตรวจสอบ และความยาว Stop Bit สำหรับ Programmer Timer จะต้องตั้งค่าแหล่งสัญญาณนาฬิกา จำนวนการแบ่งความถี่ และข้อมูล Reload Data  
  การกำหนดค่าเริ่มต้นของพารามิเตอร์:หลังจากเสร็จสิ้นการเริ่มต้นใช้งานฮาร์ดแวร์และทรัพยากรของ MCU แล้ว ขั้นตอนต่อไปคือการเริ่มต้นใช้งานตัวแปรและข้อมูลบางส่วนที่ใช้ในโปรแกรม การเริ่มต้นใช้งานในส่วนนี้จำเป็นต้องออกแบบให้เหมาะสมกับโครงการเฉพาะและโครงสร้างโดยรวมของโปรแกรม สำหรับบางแอปพลิเคชันที่ใช้ EEPROM เพื่อบันทึกข้อมูลที่สร้างไว้ล่วงหน้าของโครงการ ขอแนะนำให้คัดลอกข้อมูลที่เกี่ยวข้องไปยัง RAM ของ MCU ในระหว่างการเริ่มต้นใช้งาน เพื่อปรับปรุงความเร็วในการเข้าถึงข้อมูลของโปรแกรมและลดการใช้พลังงานของระบบ (โดยหลักการแล้ว การเข้าถึง EEPROM ภายนอกจะเพิ่มการใช้พลังงานของแหล่งจ่ายไฟ)  
  2. ส่วนเนื้อหาหลักของลูปโปรแกรม:ไมโครคอนโทรลเลอร์ส่วนใหญ่ทำงานต่อเนื่องเป็นเวลานาน ดังนั้นส่วนหลักของโปรแกรมจึงถูกออกแบบมาในรูปแบบลูป สำหรับแอปพลิเคชันที่มีโหมดการทำงานหลายโหมด อาจมีส่วนลูปหลายส่วน ซึ่งจะถูกแปลงผ่านสถานะแฟล็ก โดยทั่วไปแล้ว ส่วนหลักของโปรแกรมจะจัดเรียงเป็นโมดูลดังต่อไปนี้:
  ขั้นตอนการคำนวณ:โดยทั่วไปแล้วโปรแกรมคำนวณมักใช้เวลานาน ดังนั้นเราจึงคัดค้านอย่างยิ่งต่อการประมวลผลโปรแกรมเหล่านั้นโดยใช้การขัดจังหวะ โดยเฉพาะอย่างยิ่งการคูณและการหาร  
ประมวลผลโปรแกรมที่มีความต้องการเวลาจริงต่ำหรือไม่มีเลย
 
  แสดงขั้นตอนการโอนเงิน:โดยส่วนใหญ่แล้วมุ่งเป้าไปที่แอปพลิเคชันที่ใช้ไดรเวอร์ LED และ LCD ภายนอก  
  3. ตัวจัดการการขัดจังหวะ:โปรแกรมขัดจังหวะส่วนใหญ่ใช้สำหรับจัดการงานและเหตุการณ์ที่ต้องการความรวดเร็วสูง เช่น การตรวจจับสัญญาณภายนอกที่เกิดขึ้นอย่างกะทันหัน การตรวจจับและประมวลผลปุ่ม การนับเวลา การสแกนจอแสดงผล LED เป็นต้น  
ภายใต้สถานการณ์ปกติ โปรแกรมขัดจังหวะควรมีโค้ดที่กระชับและสั้นที่สุดเท่าที่จะเป็นไปได้ สำหรับฟังก์ชันที่ไม่จำเป็นต้องประมวลผลแบบเรียลไทม์ สามารถตั้งค่าแฟล็กทริกเกอร์ในโปรแกรมขัดจังหวะได้ จากนั้นโปรแกรมหลักจะดำเนินการธุรกรรมเฉพาะนั้นๆ สิ่งนี้มีความสำคัญมาก โดยเฉพาะอย่างยิ่งสำหรับไมโครคอนโทรลเลอร์ (MCU) ที่ใช้พลังงานต่ำและมีความเร็วต่ำ ซึ่งต้องมั่นใจได้ว่ามีการตอบสนองต่อการขัดจังหวะทั้งหมดอย่างทันท่วงที  
  4. สำหรับการจัดเรียงหน่วยงานต่างๆ นั้น ไมโครคอนโทรลเลอร์แต่ละตัวจะมีวิธีการประมวลผลที่แตกต่างกัน:  
 ตัวอย่างเช่น สำหรับแอปพลิเคชัน MCU ความเร็วต่ำและใช้พลังงานต่ำ (Fosc=32768Hz) เนื่องจากโครงการดังกล่าวเป็นอุปกรณ์พกพาและใช้จอ LCD ทั่วไป การตอบสนองต่อการกดปุ่มและการตอบสนองการแสดงผลจึงต้องการประสิทธิภาพแบบเรียลไทม์สูง ดังนั้นโดยทั่วไปจึงใช้การขัดจังหวะแบบกำหนดเวลาเพื่อประมวลผลการกดปุ่มและการแสดงข้อมูล สำหรับ MCU ความเร็วสูง เช่น แอปพลิเคชัน Fosc>1MHz เนื่องจาก MCU มีเวลาเพียงพอที่จะดำเนินการส่วนของลูปโปรแกรมหลักในขณะนี้ จึงสามารถตั้งค่าแฟล็กทริกเกอร์ต่างๆ ในการขัดจังหวะที่เกี่ยวข้องและนำงานทั้งหมดในส่วนของโปรแกรมหลักไปดำเนินการได้  
  5. ในการเขียนโปรแกรม MCU สิ่งหนึ่งที่ต้องให้ความสนใจเป็นพิเศษคือ:

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

7

บทสรุปเชิงวิศวกรเกี่ยวกับการเขียนโปรแกรมไมโครคอนโทรลเลอร์



 

1,ฝึกฝนนิสัยการสรุปให้ดี การสรุปไม่ใช่แค่การสรุปสิ่งที่คุณเรียนรู้เท่านั้น แต่ยังเป็นการทบทวนและเจาะลึกกระบวนการเรียนรู้ด้วย นอกจากนี้ยังช่วยหลีกเลี่ยงการทำผิดพลาดซ้ำในครั้งที่สอง


  2,ก่อนที่จะเขียนโปรแกรม คุณต้องมีความเข้าใจที่คุ้นเคยเกี่ยวกับโครงการเสียก่อน ต้องตระหนักถึงมัน และวางโครงร่างทั่วไปไว้ก่อน สิ่งสำคัญมากคือต้องพิจารณาอย่างรอบคอบว่าควรจัดวางอย่างไร และโครงสร้างแบบใดเหมาะสมที่สุด จำเป็นต้องวิเคราะห์ว่าควรทำโมดูลใดก่อน ขั้นตอนเฉพาะของโมดูลนั้นคืออะไร ควรตั้งชื่อฟังก์ชันแต่ละฟังก์ชันอย่างไร การเชื่อมต่อกับโมดูลอื่น ๆ เป็นต้น การเตรียมกระดาษและจดบันทึกกระบวนการที่สำคัญ ๆ ไว้ก็เป็นความคิดที่ดี  
  3,สำหรับการเขียนโปรแกรมแบบโมดูลาร์ในภาษาซี คุณต้องแบ่งแต่ละโมดูลออกเป็นส่วนๆ ก่อน จากนั้นเขียนโปรแกรมทีละโมดูล กำหนดลำดับการทำงาน ทำตามลำดับนั้น แล้วจึงเขียนโมดูลถัดไปหลังจากที่โมดูลแรกเสร็จสมบูรณ์ สำหรับไฟล์เฮดเดอร์ ให้เขียนไฟล์เฮดเดอร์ของโมดูลนั้นหลังจากที่เขียนโมดูลเสร็จแล้ว  
  4,อย่าเพิกเฉยต่อคำเตือนเมื่อมันปรากฏขึ้น นั่นหมายความว่ามีบางอย่างผิดปกติเกี่ยวกับโปรแกรม คุณจำเป็นต้องทำความเข้าใจที่มาของปัญหาและหาทางแก้ไข จงระบุให้ชัดเจนเมื่อค้นหาที่มาของปัญหา คุณสามารถค้นหาข้อมูลในอินเทอร์เน็ตในด้านนี้ หรือขอคำแนะนำจากผู้อื่น ตัวอย่างเช่น ฟังก์ชันหลักในโปรเจกต์อื่นถูกเพิ่มเข้ามาในโปรเจกต์นี้ อาจมีชื่อฟังก์ชันซ้ำกัน นอกจากนี้ยังมีเหตุผลที่จะต้องวิเคราะห์ปรากฏการณ์จากการทดลองและดำเนินการทีละขั้นตอน หรืออาจมีการเลือกอินเทอร์เฟซผิดเมื่อกำหนดพอร์ต บางครั้ง การหยุดพักและคิดทบทวนก็เป็นสิ่งที่ดี หากคุณไม่สามารถแก้ไขได้จริงๆ ไม่ว่าปัญหาจะง่ายแค่ไหน คุณก็ควรใส่ใจ เพราะอาจมีข้อผิดพลาดซ่อนอยู่   
ในการพัฒนาแอปพลิเคชันไมโครคอนโทรลเลอร์ ปัญหาต่างๆ เช่น ประสิทธิภาพการใช้งานโค้ด ประสิทธิภาพในการต้านทานการรบกวน และความน่าเชื่อถือของไมโครคอนโทรลเลอร์ ยังคงเป็นปัญหาที่ต้องแก้ไข ต่อไปนี้คือบทสรุปทักษะพื้นฐานหลายประการที่ควรเชี่ยวชาญในการพัฒนาไมโครคอนโทรลเลอร์        
         

8

ทักษะการพัฒนาไมโครคอนโทรลเลอร์


   
       

1.วิธีลดข้อผิดพลาดในโปรแกรม

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


  • พารามิเตอร์ทางกายภาพ: พารามิเตอร์เหล่านี้ส่วนใหญ่เป็นพารามิเตอร์ป้อนเข้าของระบบ ซึ่งรวมถึงพารามิเตอร์การกระตุ้น พารามิเตอร์การทำงานระหว่างกระบวนการเก็บข้อมูล และพารามิเตอร์ผลลัพธ์เมื่อสิ้นสุดกระบวนการ

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

  • พารามิเตอร์การใช้งาน: พารามิเตอร์การใช้งานเหล่านี้มักปรากฏเป็นเงื่อนไขการใช้งานของไมโครคอนโทรลเลอร์และหน่วยการทำงานบางอย่าง พารามิเตอร์กระบวนการ: หมายถึงพารามิเตอร์ที่เปลี่ยนแปลงอย่างเป็นระเบียบในระหว่างการทำงานของระบบ


2.วิธีเพิ่มประสิทธิภาพของโค้ดโปรแกรมภาษาซี

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


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


       3.วิธีแก้ปัญหาการป้องกันการรบกวนของไมโครคอนโทรลเลอร์วิธีที่มีประสิทธิภาพที่สุดในการป้องกันการรบกวนคือการกำจัดแหล่งกำเนิดการรบกวนและปิดกั้นเส้นทางการรบกวน แต่การทำเช่นนั้นมักเป็นเรื่องยาก ดังนั้นเราจึงทำได้เพียงตรวจสอบว่าความสามารถในการป้องกันการรบกวนของไมโครคอนโทรลเลอร์นั้นแข็งแกร่งเพียงพอหรือไม่ ในขณะที่การพัฒนาความสามารถในการป้องกันการรบกวนของระบบฮาร์ดแวร์กำลังได้รับความสนใจมากขึ้นเรื่อยๆ การป้องกันการรบกวนด้วยซอฟต์แวร์ก็ได้รับความสนใจมากขึ้นเช่นกัน เนื่องจากมีความยืดหยุ่นในการออกแบบ ประหยัดทรัพยากรฮาร์ดแวร์ และมีความน่าเชื่อถือสูง  
ปรากฏการณ์การรบกวนที่พบบ่อยที่สุดในไมโครคอนโทรลเลอร์คือการรีเซ็ต ส่วนกรณีที่โปรแกรมทำงานผิดปกติ สามารถใช้ซอฟต์แวร์ดักจับและวอชด็อกเพื่อนำโปรแกรมกลับสู่สถานะรีเซ็ตได้ ดังนั้น สิ่งที่สำคัญที่สุดสำหรับซอฟต์แวร์ไมโครคอนโทรลเลอร์ในการต้านทานการรบกวนคือการจัดการกับสถานะรีเซ็ต  
โดยทั่วไป ไมโครคอนโทรลเลอร์จะมีรีจิสเตอร์แฟล็กบางตัวที่สามารถใช้เพื่อตรวจสอบสาเหตุของการรีเซ็ตได้ นอกจากนี้ คุณยังสามารถซ่อนแฟล็กบางตัวไว้ใน RAM ได้ด้วยตนเอง ทุกครั้งที่โปรแกรมถูกรีเซ็ต สาเหตุการรีเซ็ตที่แตกต่างกันจะถูกระบุโดยการตรวจสอบแฟล็กเหล่านี้ คุณยังสามารถกระโดดไปยังโปรแกรมที่เกี่ยวข้องโดยตรงตามแฟล็กที่แตกต่างกันได้ วิธีนี้ช่วยให้โปรแกรมทำงานได้อย่างต่อเนื่อง และผู้ใช้จะไม่สังเกตเห็นว่าโปรแกรมถูกรีเซ็ตขณะใช้งาน  
       4.วิธีการทดสอบความน่าเชื่อถือของระบบไมโครคอนโทรลเลอร์เมื่อการออกแบบระบบไมโครคอนโทรลเลอร์เสร็จสมบูรณ์แล้ว จะมีรายการทดสอบและวิธีการทดสอบที่แตกต่างกันสำหรับผลิตภัณฑ์ระบบไมโครคอนโทรลเลอร์แต่ละชนิด แต่บางรายการจะต้องได้รับการทดสอบ:
 
  • ทดสอบความสมบูรณ์ของฟังก์ชันซอฟต์แวร์ของไมโครคอนโทรลเลอร์
  • การทดสอบการเปิดและปิดเครื่อง
  • การทดสอบอายุ
  • การทดสอบต่างๆ เช่น ESD และ EFT

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

9

สรุปการทำงานของชิป


 
 

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


วิธีการเขียนข้อมูลลงในชิป วิธีการอ่านข้อมูล และพอร์ตใดที่จะใช้ในการป้อนข้อมูลหรืออ่านข้อมูล (ซึ่งเป็นสิ่งสำคัญที่สุด)  
เมื่อเชื่อมต่อชิปผ่านบัส คุณต้องเข้าใจโปรโตคอลของบัสก่อน ชิปที่เชื่อมต่อกับบัส I2C ส่วนใหญ่จะควบคุมชิปอื่นผ่านบัสนี้  
  1,ไอซี 74hc595 หนึ่งตัวในโครงสร้างตาข่ายใช้สำหรับการเลือกคอลัมน์ และอีกสองตัวใช้สำหรับการเลือกสี โครงสร้างตาข่ายนี้เทียบเท่ากับกลุ่มของไดโอด
ไดโอดจะสว่างขึ้นก็ต่อเมื่อปลายด้านหนึ่งได้รับระดับสูงและปลายอีกด้านหนึ่งได้รับระดับต่ำเท่านั้น เพียงแต่ว่าหากเลือกปลายด้านใดด้านหนึ่งแตกต่างกัน สีที่สว่างขึ้นก็จะแตกต่างกันไปด้วย  
การเลือกโหมดการทำงานของตัวจับเวลา: สี่บิตบนสุดตั้งค่าตัวจับเวลา T1 และสี่บิตล่างสุดตั้งค่า T0 จากนั้นตัวเลขสองหลักสุดท้ายของแต่ละโหมดจะตั้งค่าโหมดการทำงาน เมื่อตั้งค่าตัวจับเวลาสองตัว โปรดระมัดระวังในการใช้ หรือ (|) เมื่อใช้การขัดจังหวะ โปรดใส่ใจกับการล้างค่าที่ควรล้างหลังจากเข้าสู่การขัดจังหวะ  
  2,ตัวรับส่งสัญญาณพอร์ตอนุกรม: โดยทั่วไปอัตราการส่งข้อมูล (baud rate) จะถูกตั้งค่าในโหมด 2 (โหลดกลับเป็นค่าเริ่มต้นโดยอัตโนมัติ) เนื่องจากอุปกรณ์แต่ละชนิดมีขีดความสามารถในการประมวลผลข้อมูลที่แตกต่างกัน การตั้งค่าอัตราการส่งข้อมูลจึงมีไว้เพื่อรองรับอุปกรณ์ความเร็วต่ำและเพื่อการสื่อสารระหว่างกัน บิตแฟล็กการขัดจังหวะจะต้องถูกล้างด้วยซอฟต์แวร์ เมื่อตั้งค่าการขัดจังหวะพอร์ตอนุกรม ไม่ว่าจะเป็นการส่งหรือรับข้อมูล ก็สามารถเข้าสู่ฟังก์ชันการขัดจังหวะได้ ดังนั้นควรให้ความสำคัญกับการตั้งค่าฟังก์ชันการขัดจังหวะ (โดยทั่วไปแล้วคอมพิวเตอร์โฮสต์หรือคอมพิวเตอร์สเลฟจะตั้งค่าฟังก์ชันตามความรู้สึกของตนเอง)  
หากคุณใช้การขัดจังหวะในการส่ง คุณต้องหาวิธีเข้าสู่การขัดจังหวะเป็นครั้งแรกเสียก่อน ดังนั้นคุณต้องส่งข้อมูลไปก่อนหนึ่งครั้ง จากนั้นจึงจะสามารถเข้าสู่การขัดจังหวะได้ สามารถส่งได้ครั้งละหนึ่งไบต์เท่านั้น และบิตถัดไปจะส่งได้ก็ต่อเมื่อตั้งค่า TI แล้วเท่านั้น  
  3,ตัวแปลงสัญญาณ PCF8591AD มีช่องรับสัญญาณเข้าสี่ช่อง เมื่ออ่านค่าจาก PCF8591 ระบบจะเลือกช่องสัญญาณที่เลือกไว้ และอ่านค่าแรงดันไฟฟ้าที่ป้อนเข้ามาจากช่องสัญญาณนั้น ข้อมูลที่แปลงแล้วจะถูกเก็บไว้ในชิป จากนั้นจึงอ่านออกมา เมื่ออ่านค่า ระบบจะเขียนที่อยู่ของชิปก่อน จากนั้นเขียนที่อยู่ย่อยของอุปกรณ์ (0x40 | หมายเลขช่องสัญญาณ) แล้วจึงอ่านข้อมูลที่ได้  
  4,การแปลงค่า Da นั้น เริ่มจากการเขียนที่อยู่ของอุปกรณ์ลงในชิปก่อน จากนั้นเขียนที่อยู่ย่อย (0x40) และสุดท้ายเขียนค่าดิจิทัลที่ต้องการแปลง นี่คือข้อมูลชิปที่อยู่ของอุปกรณ์  
  5,สำหรับจอแสดงผล LCD หลังจากที่เขียนและแสดงผลข้อมูลแล้ว ข้อมูลนั้นจะแสดงผลอยู่เสมอโดยไม่มีการรีเฟรชอย่างต่อเนื่อง หากต้องการเปลี่ยนแปลงข้อมูล จะต้องป้อนข้อมูลใหม่เท่านั้น  
  6,สำหรับชิปนาฬิกา DS1302 เมื่ออ่านข้อมูล ข้อมูลแรกจะถูกอ่านที่ขอบขาลงของสัญญาณนาฬิกาที่แปดเมื่อเขียนข้อมูล จากนั้นจึงเตรียมการส่งออกครั้งต่อไป โปรดใส่ใจกับวิธีการเขียนโปรแกรมและตำแหน่งของค่าส่งคืน  
  7,ในชิป DS1302 ให้ระบุรีจิสเตอร์ก่อน แล้วจึงเขียนข้อมูลลงไป รีจิสเตอร์ข้อมูลบนชิปจะระบุที่อยู่ (ฉันยังไม่ค่อยเข้าใจโปรแกรมป้องกันการเขียนเท่าไหร่ การเขียนข้อมูลเกิดขึ้นตลอดเวลาไม่ใช่เหรอ ทำไมการป้องกันการเขียนถึงยังเปิดอยู่?)
(จากที่ผู้เชี่ยวชาญคนก่อนได้กล่าวไว้ คุณสามารถตั้งค่าแฟล็กหลังจากเวลาเริ่มต้นได้ หากมีแฟล็กนี้แล้ว ก็ไม่จำเป็นต้องตั้งค่าเวลาเริ่มต้นอีก อย่างไรก็ตาม หากปิดเครื่อง หน่วยความจำ RAM ของ MCU จะไม่สามารถบันทึกแฟล็กนี้ได้ ดังนั้นคุณสามารถใช้ RAM ของ DS1302 เพื่อบันทึกแฟล็ก และอ่านแฟล็กหลังจากเปิดเครื่องได้ ผมเองก็เป็นมือใหม่ และวางแผนจะใช้ DS1302 ในเร็วๆ นี้ ผมไม่แน่ใจว่าถูกต้องหรือไม่ และยังไม่ได้นำไปใช้งานจริง โปรดแบ่งปันข้อมูลเพิ่มเติมด้วยครับ)
  8,ควรจดบันทึกค่าเริ่มต้นไว้เผื่อลืมในภายหลัง บางครั้งควรสังเกตว่าบิตต่ำสุดหรือบิตสูงสุดถูกประมวลผลก่อนเมื่ออ่านหรือเขียน ซึ่งสามารถพิจารณาได้จากแผนภาพเวลา  
  9,สำหรับตัวรับส่งสัญญาณอินฟราเรด เมื่อรับสัญญาณ ตัวรับส่งสัญญาณจะพิจารณาว่าเป็นระดับสูงหรือระดับต่ำโดยอาศัยเวลาที่อยู่ระหว่างขอบขาลงสองครั้ง ในการเขียนโปรแกรม ขั้นแรกให้ใช้ตัวจับเวลาเพื่อกำหนดเวลา บันทึกเวลา แล้วแปลงเป็นเลขฐานสอง (อ่านเพิ่มเติมเกี่ยวกับวิธีการเขียนโปรแกรมนี้ มันดีมาก)  
  10,มอเตอร์สเต็ปเปอร์: ส่วนใหญ่ใช้สำหรับการสวิตช์ แรงบิดของมอเตอร์สเต็ปเปอร์จะลดลงเมื่อความเร็วรอบเพิ่มขึ้น ส่วนใหญ่ใช้สำหรับการป้อนชิ้นส่วนอัตโนมัติในเครื่องจักร และยังสามารถใช้ในงานควบคุมที่มีความแม่นยำสูงได้อีกด้วย  
มอเตอร์สเต็ปเปอร์เป็นอุปกรณ์ควบคุมแบบวงเปิดที่แปลงสัญญาณพัลส์ไฟฟ้าเป็นการเคลื่อนที่เชิงมุมหรือการเคลื่อนที่เชิงเส้น ภายใต้สภาวะที่ไม่มีการโอเวอร์โหลด ความเร็วและตำแหน่งหยุดของมอเตอร์จะขึ้นอยู่กับความถี่และจำนวนพัลส์ของสัญญาณพัลส์เท่านั้น และจะไม่ได้รับผลกระทบจากการเปลี่ยนแปลงของโหลด เมื่อตัวขับสเต็ปเปอร์ได้รับสัญญาณพัลส์ มันจะขับมอเตอร์สเต็ปเปอร์ให้หมุนไปในทิศทางที่กำหนดด้วยมุมคงที่ เรียกว่า "มุมสเต็ป" การหมุนจะเกิดขึ้นทีละขั้นด้วยมุมคงที่ การเคลื่อนที่เชิงมุมสามารถควบคุมได้โดยการควบคุมจำนวนพัลส์เพื่อให้ได้ตำแหน่งที่แม่นยำ ในขณะเดียวกัน ความเร็วและความเร่งของการหมุนของมอเตอร์สามารถควบคุมได้โดยการควบคุมความถี่ของพัลส์เพื่อให้ได้การควบคุมความเร็ว  
  11,มอเตอร์เซอร์โว: (servo motor) หมายถึงมอเตอร์ที่ควบคุมการทำงานของชิ้นส่วนเชิงกลในระบบเซอร์โว เป็นอุปกรณ์ส่งกำลังทางอ้อมที่ช่วยเสริมการทำงานของมอเตอร์ มอเตอร์เซอร์โวสามารถควบคุมความเร็วและความแม่นยำของตำแหน่งได้อย่างแม่นยำมาก และสามารถแปลงสัญญาณแรงดันไฟฟ้าเป็นแรงบิดและความเร็วในการหมุนเพื่อขับเคลื่อนวัตถุควบคุม ความเร็วรอบของมอเตอร์เซอร์โวถูกควบคุมโดยสัญญาณอินพุตและสามารถตอบสนองได้อย่างรวดเร็ว ในระบบควบคุมอัตโนมัติ มอเตอร์เซอร์โวถูกใช้เป็นแอคชูเอเตอร์และมีคุณสมบัติเด่น เช่น ค่าคงที่เวลาทางกลไฟฟ้าต่ำ ความเป็นเส้นตรงสูง แรงดันเริ่มต้นต่ำ เป็นต้น สามารถแปลงสัญญาณไฟฟ้าที่ได้รับเป็นค่าการกระจัดเชิงมุมหรือความเร็วเชิงมุมที่ส่งออกไปยังเพลามอเตอร์ แบ่งออกเป็นสองประเภท คือ มอเตอร์เซอร์โว DC และ AC คุณสมบัติหลักคือ จะไม่มีการหมุนเมื่อแรงดันสัญญาณเป็นศูนย์ และความเร็วในการหมุนจะลดลงอย่างคงที่เมื่อแรงบิดเพิ่มขึ้น มอเตอร์ DC: มีช่วงการใช้งานกว้าง ใช้ในรถยนต์ขนาดเล็กเป็นส่วนใหญ่


ข้อสงวนสิทธิ์: บทความนี้คัดลอกมาจาก "International Electronic Business Information" บทความนี้เป็นเพียงความคิดเห็นส่วนตัวของผู้เขียนเท่านั้น และไม่ได้แสดงถึงความคิดเห็นของ Sacco Micro และอุตสาหกรรม การนำไปพิมพ์ซ้ำและเผยแพร่ต่อเป็นไปเพื่อสนับสนุนการคุ้มครองสิทธิ์ในทรัพย์สินทางปัญญาเท่านั้น โปรดระบุแหล่งที่มาและผู้เขียนต้นฉบับก่อนนำไปพิมพ์ซ้ำ หากพบการละเมิดลิขสิทธิ์ โปรดติดต่อเราเพื่อลบออก

หมายเลขโทรศัพท์ของบริษัท: +86-0755-83044319
โทรสาร: +86-0755-83975897
อีเมล์: 1615456225@qq.com
QQ: 3518641314 ผู้จัดการหลี่

QQ: 332496225 ผู้จัดการชิว

ที่อยู่: ห้อง 809 อาคาร C อาคารเทคโนโลยีจ้านเทา เลขที่ 1079 ถนนหมินจือ เขตหลงหัวใหม่ เมืองเซินเจิ้น

whatsapp

สายด่วนบริการ

tel: +86 755 83044319

WhatsApp

Whatsapp:+8618073002950