สารบัญ:

PIC16F877 มัลติมิเตอร์ 6 ขั้นตอน
PIC16F877 มัลติมิเตอร์ 6 ขั้นตอน

วีดีโอ: PIC16F877 มัลติมิเตอร์ 6 ขั้นตอน

วีดีโอ: PIC16F877 มัลติมิเตอร์ 6 ขั้นตอน
วีดีโอ: CCS C ตอน #5 DIY เครื่องมือสำหรับช่างซ่อมตู้เย็น กับ PIC16F877 2024, กรกฎาคม
Anonim
PIC16F877 มัลติมิเตอร์
PIC16F877 มัลติมิเตอร์

PICMETER บทนำ

โครงการ PICMETER นี้ได้กลายเป็นเครื่องมือที่มีประโยชน์และเชื่อถือได้สำหรับผู้ที่ชื่นชอบอุปกรณ์อิเล็กทรอนิกส์

  • ทำงานบนไมโครคอนโทรลเลอร์ PIC16F877 / 877A
  • เป็นระบบการพัฒนา PIC
  • เป็นมัลติมิเตอร์ 19 ฟังก์ชัน (โวลต์มิเตอร์, เครื่องวัดความถี่, เครื่องกำเนิดสัญญาณ, เทอร์โมมิเตอร์…)
  • เป็นตัวตรวจสอบส่วนประกอบ (R, L, C, ไดโอด …) ที่มีช่วงสูงสุด 5 ช่วงในแต่ละฟังก์ชัน
  • มีวิทยุ ASK แบนด์ 433MHz ซึ่งรอการใช้งานบางประเภท
  • เป็นระบบการรับข้อมูลระยะไกลที่คอมพิวเตอร์เครื่องอื่น (PC) สามารถรวบรวมข้อมูลผ่านพอร์ตอนุกรมสำหรับการแสดงผลกราฟิก (ถูกใช้เป็นส่วนหน้าของโครงการ ECG)
  • มีสิ่งอำนวยความสะดวกการบันทึก (สำหรับการบันทึกข้อมูลในช่วงเวลาหลายชั่วโมง) ผลลัพธ์จะถูกอัปโหลดจาก EEPROM
  • มันสร้างสัญญาณทดสอบเพื่อขับมอเตอร์บางตัว
  • ผ่านการทดสอบอย่างละเอียด ดูรูปถ่ายในขั้นตอนที่ 5
  • ซอฟต์แวร์เปิดตัวเป็นโอเพ่นซอร์ส

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

เสบียง

ชิปตัวเดียวที่สำคัญที่จะซื้อคือ Microchip PIC16F877A-I/P

  • A = การแก้ไขในภายหลังซึ่งแตกต่างจากเดิมในการกำหนดบิตการกำหนดค่า
  • I = ช่วงอุณหภูมิอุตสาหกรรม
  • P= 40-Lead Plastic Dual In-line Package, 10 MHz, ขีดจำกัด VDD ปกติ

นอกจากนี้ Hitachi LM032LN 20 ตัวอักษร 2 บรรทัด LCD ซึ่งสร้างขึ้นในตัวควบคุม HD44780

ส่วนอื่น ๆ เป็นเพียงส่วนประกอบทางไฟฟ้าทั่วไป, PCB แบบแถบ, LM340, LM311, LM431, ทรานซิสเตอร์พลังงานต่ำเอนกประสงค์เป็นต้น

ขั้นตอนที่ 1: คำอธิบาย PICBIOS

PICBIOS คำอธิบาย
PICBIOS คำอธิบาย

PICBIOS คำอธิบาย

ซอฟต์แวร์นี้ทำงานบนบอร์ด PIC16F877 และใช้หน่วยความจำโปรแกรม 4k ด้านล่าง ให้สภาพแวดล้อมซอฟต์แวร์สำหรับโปรแกรมแอปพลิเคชันที่ใช้หน่วยความจำโปรแกรมครึ่งบน แนวคิดนี้คล้ายกับ PC-BIOS โดยมี "debug" สองสามคำสั่ง เช่น คำสั่งสำหรับการพัฒนาโปรแกรมและมี 5 องค์ประกอบ:

  1. เมนูบูต
  2. โปรแกรมติดตั้ง
  3. Command Line Interface (ผ่านพอร์ตอนุกรม)
  4. เคอร์เนลและไดรเวอร์อุปกรณ์
  5. อินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชัน

ขั้นตอนที่ 2: คำอธิบาย PICMETER

PICMETER คำอธิบาย
PICMETER คำอธิบาย

PICMETER คำอธิบาย

บทนำ

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

เมนูคือ "หัวใจ" ที่เลือกฟังก์ชันโดยใช้ปุ่ม [ซ้าย] และ [ขวา] จากนั้นสำหรับแต่ละฟังก์ชัน ช่วงต่างๆ จะถูกเลือกโดยปุ่ม [inc] และ [dec] ตัวอย่างเช่น ตัวเก็บประจุวัดจากประมาณ 0.1nF ถึง 9000uF โดยใช้ 5 ช่วงแยกกัน

2.1 ซอฟต์แวร์ PICMETER

จัดเป็นโปรแกรมแอปพลิเคชันที่ใช้หน่วยความจำโปรแกรม 4k ระดับบน และอาศัยฟังก์ชันของ PICBIOS สำหรับอุปกรณ์ I/O และการจัดการขัดจังหวะ ประกอบด้วยส่วนเมนูซึ่งทำงานเป็นงานพื้นหลังและสำรวจปุ่มทุก ๆ 20 มิลลิวินาที เมื่อกดปุ่มเพื่อเปลี่ยนฟังก์ชันหรือเปลี่ยนช่วง ระบบจะเรียกรูทีนที่เหมาะสม เมื่อไม่มีการกดปุ่มใดๆ การอ่านที่วัดได้จะถูกอัพเดตในช่วงเวลาประมาณ 0.5 วินาที โดยทั่วไปเมนูคือตารางค้นหา

ฟังก์ชั่น 2.2 เมตร - ส่วน

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

ส่วนโวลต์มิเตอร์ - ไฟล์ต้นฉบับคือ vmeter.asm

ประกอบด้วยฟังก์ชันที่อิงตามการวัดแรงดันไฟฟ้าโดยใช้ ADC

  • แรงดัน ADC (อ่านค่าแรงดันที่อินพุตที่เลือก AN0 ถึง AN4)
  • AD2 Dual (แสดงแรงดันไฟฟ้าบน AN0 และ AN1 พร้อมกัน)
  • เทอร์โมมิเตอร์ TMP -10 ถึง 80? degC (2N3904 หรือตัวแปลงสัญญาณ LM334 คู่)
  • LOG – ตั้งค่าช่วงเวลาการบันทึก
  • OHM – การวัดความต้านทาน (วิธีโพเทนชิออมิเตอร์) จาก0Ω ถึง 39MΩ ใน 4 ช่วง
  • DIO – Diode วัดแรงดันไปข้างหน้า (0-2.5V)
  • CON – ความต่อเนื่อง (เสียงบี๊บเมื่อความต้านทานน้อยกว่าเกณฑ์ 25, 50 หรือ 100)

คอมโพเนนต์ Meter1 - ไฟล์ต้นฉบับคือ meter1.asm

การวัดตัวเก็บประจุ ตัวเหนี่ยวนำ และตัวต้านทานโดยใช้วงจรเปรียบเทียบ LM311 ขึ้นอยู่กับการวัดเวลาของรอบการชาร์จหนึ่งรอบ

  • CAL – การสอบเทียบ – วัดค่าคงที่ 80nf และ 10μF สำหรับการทดสอบและปรับแต่งตัวเอง
  • Cx1 – การวัดตัวเก็บประจุตั้งแต่ 0.1nF ถึง 9000μF ใน 5 ช่วง
  • Lx1 – การวัดตัวเหนี่ยวนำจาก 1mH ถึง ?? mH ใน 2 ช่วง
  • Rx1 – การวัดค่าตัวต้านทานจาก 100Ω ถึง 99MΩ ใน 3 ช่วง

ไฟล์ต้นฉบับ Meter2 Meter2.asm

การวัดส่วนประกอบโดยใช้ออสซิลเลเตอร์เพื่อการผ่อนคลาย LM311 ทางเลือกและออสซิลเลเตอร์ Colpitts ขึ้นอยู่กับการวัดช่วงเวลาของรอบ N ซึ่งแม่นยำกว่าวิธีการข้างต้นเล็กน้อยเมื่อวัดเวลา N= มากถึง 1,000 รอบ เป็นโซลูชันฮาร์ดแวร์มากกว่าและต้องมีการก่อสร้างมากขึ้น

  • Cx2 – การวัดตัวเก็บประจุจาก 10pF ถึง 1,000 μF ใน 5 ช่วง
  • Rx2 – การวัดค่าตัวต้านทานจาก 100 โอห์ม ถึง 99M ใน 5 ช่วง
  • Lx2 - การวัดตัวเหนี่ยวนำจาก 1mH ถึง 60mH ใน 1 ช่วง
  • osc - การวัดค่าตัวเหนี่ยวนำ (วิธี Colpitts) ตั้งแต่ 70μH ถึง 5000μH ? ใน 2 ช่วง

เครื่องวัดความถี่ - ไฟล์ต้นฉบับ Fmeter.asm

มีฟังก์ชันที่ใช้ตัวนับและตัวจับเวลา PIC และอื่นๆ

  • FREQ - เครื่องวัดความถี่ตั้งแต่ 0Hz ถึง 1000kHz ใน 3 ช่วง
  • XTL - วัดความถี่ของผลึก LP (ไม่ได้ทดสอบ)
  • SIG – เครื่องกำเนิดสัญญาณจาก 10Hz ถึง 5KHz ใน 10 ขั้นตอน
  • SMR – สเต็ปเปอร์มอเตอร์ - ทิศทางถอยหลัง
  • SMF – สเต็ปเปอร์มอเตอร์- ทิศทางไปข้างหน้า

การสื่อสาร - ไฟล์ต้นฉบับคือ comms.asm

ฟังก์ชันสำหรับส่ง/รับสัญญาณเพื่อทดสอบอุปกรณ์ต่อพ่วงแบบอนุกรมและ SPI

  • UTX ทดสอบอนุกรม TX & inc และอัตราบิตเดคจาก 0.6 ถึง 9.6k
  • URX ทดสอบ Serial RX & inc และอัตราบิตเดคจาก 0.6 ถึง 9.6k
  • SPM - ทดสอบ SPI ในโหมดมาสเตอร์
  • SPS - ทดสอบ SPI ในโหมดทาส

โมดูลวิทยุ FSK - ไฟล์ต้นฉบับคือ Radio.asm

ฟังก์ชั่นโดยใช้โมดูลรับและส่งวิทยุ RM01 และ RM02 โมดูลเหล่านี้เชื่อมต่อผ่าน SPI ซึ่งใช้พินพอร์ต C เกือบทั้งหมด

  • RMB – ตั้งค่าโมดูลวิทยุอัตรา BAUD
  • RMF – ตั้งค่าความถี่ RF โมดูลวิทยุ
  • RMC - ตั้งค่าความถี่สัญญาณนาฬิกาของโมดูลวิทยุ
  • XLC – ปรับโหลดความจุคริสตัล
  • POW - ตั้งค่ากำลังส่งสัญญาณ
  • RM2 - ส่งข้อมูลทดสอบ (โมดูล RM02)
  • RM1 – รับข้อมูลการทดสอบ (โมดูล RM01)

โมดูลควบคุม - ไฟล์ต้นทาง control.asm

  • SV1 - เอาต์พุตเซอร์โว (โดยใช้ CCP1) ตั้งแต่ 1ms ถึง 2ms ในขั้นตอน 0.1ms
  • SV2 - เอาต์พุตเซอร์โว (โดยใช้ CCP2) ตั้งแต่ 1ms ถึง 2ms ในขั้นตอน 0.1ms
  • PW1 - เอาต์พุต PWM (ใช้ CCP1) จาก 0 ถึง 100% ใน 10% ขั้นตอน
  • PW2 - เอาต์พุต PWM (ใช้ CCP2) ตั้งแต่ 0 ถึง 100% ในขั้นตอน 10%

การได้มาซึ่งข้อมูลระยะไกล - ไฟล์ต้นฉบับคือ remote.asm

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

เวลา - ไฟล์ต้นฉบับคือ time.asm

Tim – เพียงแค่แสดงเวลาในรูปแบบ hh:mm:ss และอนุญาตให้เปลี่ยนแปลงได้โดยใช้ปุ่ม 4 ปุ่ม

ขั้นตอนที่ 3: คำอธิบายวงจร

คำอธิบายวงจร
คำอธิบายวงจร
คำอธิบายวงจร
คำอธิบายวงจร

คำอธิบายวงจร

3.1 คณะกรรมการพัฒนาขั้นพื้นฐาน

รูปที่ 1 แสดงบอร์ดพัฒนาพื้นฐานเพื่อให้ PICBIOS ทำงาน เป็นแหล่งจ่ายไฟที่มีมาตรฐานและตรงไปตรงมา 5V และตัวเก็บประจุแบบแยกส่วน C1, C2 ….

นาฬิกาเป็นคริสตัล 4 MHz ดังนั้น TMR1 จึงทำเครื่องหมายในช่วง 1us Microchip แนะนำให้ใช้ตัวเก็บประจุ 22pF C6, C7 แต่ดูเหมือนจะไม่จำเป็นจริงๆ ส่วนหัว ICSP (การเขียนโปรแกรมแบบอนุกรมในวงจร) ใช้เพื่อเริ่มโปรแกรม PIC เปล่าด้วย PICBIOS

พอร์ตอนุกรม (COM1) – หมายเหตุ TX และ RX ถูกสลับกัน เช่น COM1- TX เชื่อมต่อกับพอร์ต C-RX และ COM1- RX เชื่อมต่อกับพอร์ต C-TX (โดยทั่วไปจะเรียกว่า “โมเด็ม null”) นอกจากนี้ ระดับสัญญาณที่จำเป็นสำหรับ RS232 ควรเป็น +12V (ช่องว่าง) และ -12V (เครื่องหมาย) อย่างไรก็ตาม ระดับแรงดันไฟฟ้า 5V (ช่องว่าง) และ 0V (เครื่องหมาย) ดูเหมือนจะเพียงพอสำหรับพีซีทุกเครื่องที่ฉันใช้ ดังนั้นระดับสัญญาณของ RX และ TX จึงกลับกันโดยโปรแกรมควบคุมสาย (Q3) และตัวรับสาย (Q2)

จอ LCD LM032LN (2 แถว 20 อักขระ) ใช้อินเทอร์เฟซ “HD44780” มาตรฐาน ซอฟต์แวร์ใช้โหมด nibble 4 บิตและเขียนเท่านั้น ซึ่งใช้ 6 พินของพอร์ต D ซอฟต์แวร์สามารถกำหนดค่าสำหรับ nibble low (พอร์ต D บิต 0-3) หรือ nibble high (พอร์ต D บิต 4-7) ตามที่ใช้ที่นี่.

สวิตช์ปุ่มกดมีอินพุต 4 ช่องสำหรับการเลือกเมนู ใช้การกดเพื่อสร้างสวิตช์เนื่องจากซอฟต์แวร์ตรวจจับขอบที่ตกลงมา ตัวต้านทานแบบดึงขึ้น (=25k) อยู่ภายใน PORT B. ไม่สามารถใช้พอร์ต RB6 สำหรับสวิตช์ได้ เนื่องจากฝาปิด 1nF (ซึ่งแนะนำสำหรับ ICSP) ไม่จำเป็นต้องมีสวิตช์รีเซ็ต ?

ปุ่ม0

ตัวเลือกเมนูซ้าย [◄]

ปุ่ม1

ตัวเลือกเมนูขวา [►]

ปุ่ม2

เพิ่มช่วง/ค่า/เลือก [▲]

ปุ่ม3

ลดช่วง/ค่า/เลือก [▼]

3.2 อินพุตแบบอะนาล็อกและตัวตรวจสอบส่วนประกอบ – บอร์ด 1

รูปที่ 2 แสดงวงจรอนาล็อกสำหรับ PICMETER1 อินพุตแบบอะนาล็อก AN0 และ AN1 ใช้สำหรับการวัดแรงดันไฟฟ้าเอนกประสงค์ เลือกค่าตัวต้านทานสำหรับตัวลดทอนเพื่อให้ 5V บนพินอินพุต AN0/AN1

สำหรับช่วงอินพุต 10V m = 1 + R1/R2 = 1 + 10k/10k = 2

สำหรับช่วงอินพุต 20V m = 1 + (R3+R22)/R4 = 1 + 30k/10k = 4

AN2 ใช้สำหรับวัดอุณหภูมิโดยใช้ทรานซิสเตอร์ Q1 เป็นทรานสดิวเซอร์อุณหภูมิ "ดิบ" ค่าสัมประสิทธิ์อุณหภูมิของทรานซิสเตอร์ NPN ที่ 20 องศาเซลเซียส = -Vbe/ (273+20) = - 0.626/293 = -2.1 mV/K (ดูการวัดอุณหภูมิในส่วนอนาล็อก) LM431 (U1) ให้แรงดันอ้างอิง 2.5V บน AN3 สุดท้าย AN4 ใช้สำหรับหรือทดสอบส่วนประกอบในส่วนอนาล็อก

สำหรับการวัดส่วนประกอบ ส่วนประกอบทดสอบจะเชื่อมต่อระหว่างอินพุต RE2 (D_OUT) และ AN4 ตัวต้านทาน R14 ถึง R18 ให้ค่าความต้านทานที่แตกต่างกันห้าค่าที่ใช้สำหรับการวัดความต้านทาน (วิธีโพเทนชิออมิเตอร์) ในส่วนอะนาล็อก ตัวต้านทานถูก "เชื่อมต่อในวงจร" โดยการตั้งค่าพินของพอร์ต C/พอร์ต E เป็นอินพุตหรือเอาต์พุต

Meter1 ทำการวัดส่วนประกอบโดยการชาร์จตัวเก็บประจุและตัวต้านทานที่รู้จัก/ไม่รู้จักผสมกัน LM311 (U2) ใช้เพื่อสร้าง CCP1 อินเตอร์รัปต์เมื่อตัวเก็บประจุชาร์จถึงขีด จำกัด บน (75% VDD) และปล่อยไปที่เกณฑ์ที่ต่ำกว่า (25% VDD) แรงดันไฟฟ้าที่กำหนดโดย R8, R9, R11 และโพเทนชิออมิเตอร์ R10 ซึ่งให้ค่าเล็กน้อย การปรับ เมื่อทำการทดสอบตัวเก็บประจุ ตัวเก็บประจุ C13 (=47pF) บวกกับค่าความจุจรจัดของบอร์ดจะให้ค่าการตัดแต่ง 100pF เพื่อให้แน่ใจว่าเมื่อถอดส่วนประกอบทดสอบ ช่วงเวลาระหว่าง CCP1 อินเตอร์รัปต์จะเกิน 100us และไม่ทำให้ PIC โอเวอร์โหลด ค่าการตัดแต่งนี้ (100pF) ถูกลบออกจากการวัดส่วนประกอบด้วยซอฟต์แวร์ D3 (1N4148) ให้เส้นทางการปลดปล่อยเมื่อทดสอบตัวเหนี่ยวนำและป้องกัน D_OUT ป้องกันไม่ให้แรงดันไฟฟ้าเป็นลบ

λΩπμ

ขั้นตอนที่ 4: คู่มือการก่อสร้าง

คู่มือการก่อสร้าง
คู่มือการก่อสร้าง
คู่มือการก่อสร้าง
คู่มือการก่อสร้าง

คู่มือการก่อสร้าง

สิ่งที่ดีคือโครงการนี้สร้างและทดสอบเป็นขั้นตอน วางแผนโครงการของคุณ สำหรับคำแนะนำเหล่านี้ ฉันคิดว่าคุณกำลังสร้าง PICMETER1 แม้ว่าขั้นตอนจะคล้ายกันสำหรับ PICMETER2 และ 3

4.1 บอร์ดพัฒนา PCB

คุณต้องสร้างบอร์ดพัฒนาพื้นฐาน (รูปที่ 1) ซึ่งควรพอดีกับ PCB ขนาดมาตรฐาน 100 x 160 มม. วางแผนเลย์เอาต์เพื่อให้เป็นระเบียบมากที่สุด ทำความสะอาด PCB และชุบทองแดงทั้งหมด ใช้ส่วนประกอบและตัวเชื่อมต่อที่เชื่อถือได้ ผ่านการทดสอบหากทำได้ ใช้ซ็อกเก็ต 40 พินสำหรับ PIC ตรวจสอบรอยต่อบัดกรีทั้งหมดอย่างต่อเนื่อง การดูภาพเค้าโครงบอร์ดของฉันด้านบนอาจเป็นประโยชน์

ตอนนี้คุณมี PIC เปล่า และคุณต้องตั้งโปรแกรม PICBIOS ลงในหน่วยความจำแฟลช หากคุณมีวิธีการเขียนโปรแกรมอยู่แล้ว ก็ไม่เป็นไร ถ้าไม่ฉันแนะนำวิธีการต่อไปนี้ที่ฉันใช้สำเร็จ

4.2 AN589 โปรแกรมเมอร์

นี่เป็นวงจรอินเทอร์เฟซขนาดเล็กที่ช่วยให้ PIC สามารถเขียนโปรแกรมจากพีซีโดยใช้พอร์ตเครื่องพิมพ์ (LPT1) การออกแบบนี้เผยแพร่ครั้งแรกโดย Microchip ใน Application Note (อ้างอิง 3). รับหรือสร้างโปรแกรมเมอร์ที่เข้ากันได้กับ AN589 ฉันได้ใช้การออกแบบ AN589 ที่ได้รับการปรับปรุงซึ่งอธิบายไว้ที่นี่ นี่คือ ICSP ซึ่งหมายความว่าคุณใส่ PIC ลงในซ็อกเก็ต 40 พินเพื่อตั้งโปรแกรม จากนั้นต่อสายเครื่องพิมพ์เข้ากับอินพุต AN539 และสาย ICSP จาก AN589 เข้ากับบอร์ดพัฒนา การออกแบบโปรแกรมเมอร์ของฉันใช้พลังงานจากบอร์ดพัฒนาผ่านสายเคเบิล ICSP

4.3 การตั้งค่า PIPGM

ตอนนี้คุณต้องการซอฟต์แวร์การเขียนโปรแกรมเพื่อทำงานบนพีซี PICPGM ทำงานร่วมกับโปรแกรมเมอร์ต่างๆ รวมทั้ง AN589 และดาวน์โหลดได้ฟรี (ดูข้อมูลอ้างอิง).

จากเมนูฮาร์ดแวร์ เลือกโปรแกรมเมอร์ AN589 บน LPT1

อุปกรณ์ = PIC16F877 หรือ 877A หรือตรวจจับอัตโนมัติ

เลือกไฟล์ Hex: PICBIOS1. HEX

เลือก Erase PIC จากนั้นเลือก Program PIC จากนั้นเลือก Verify PIC ด้วยโชคบางอย่างคุณจะได้รับข้อความการสำเร็จ

ถอดสาย ICSP, รีสตาร์ท PIC หวังว่าคุณจะเห็น PICBIOS แสดงบน LCD ไม่เช่นนั้นให้ตรวจสอบการเชื่อมต่อของคุณ ตรวจสอบเมนูการบู๊ตโดยกดปุ่มซ้ายและขวา

4.4 การเชื่อมต่อแบบอนุกรม (ไฮเปอร์เทอร์มินอลหรือสีโป๊ว)

ตรวจสอบการเชื่อมต่อแบบอนุกรมระหว่าง PIC และ PC เชื่อมต่อสายเคเบิลอนุกรมจาก PC COM1 เข้ากับบอร์ดพัฒนาแล้วเรียกใช้โปรแกรมสื่อสาร เช่น Win-XP Hyper-Terminal รุ่นเก่า หรือ PUTTY

หากใช้ Hyperterminal ให้กำหนดค่าดังนี้ จากเมนูหลัก โทร > ตัดการเชื่อมต่อ จากนั้นไฟล์> คุณสมบัติ> เชื่อมต่อกับแท็บ เลือก Com1 จากนั้นคลิกปุ่ม Configure เลือก 9600 bps ไม่มีความเท่าเทียมกัน 8 บิต 1 หยุด การควบคุมการไหลของฮาร์ดแวร์” จากนั้นโทร > โทรเพื่อเชื่อมต่อ

หากใช้ PuTTY, Connection> Serial > Connect to COM1 และ 9600 bps, no parity, 8 bits, 1 stop เลือก “RTS/CTS” จากนั้น Session> Serial> Open

ที่เมนู PICBIOS Boot เลือก “Command Mode” จากนั้นกด [inc] หรือ [dec] ข้อความแจ้ง "PIC16F877>" ควรปรากฏขึ้นบนหน้าจอ (หากไม่ได้ตรวจสอบอินเทอร์เฟซแบบอนุกรมของคุณ) กด ? เพื่อดูรายการคำสั่ง

4.5 โปรแกรม PICMETER

เมื่อการเชื่อมต่อแบบซีเรียลใช้งานได้ การเขียนโปรแกรมหน่วยความจำแฟลชก็ทำได้ง่ายๆ เพียงส่งไฟล์ฐานสิบหก ป้อนคำสั่ง “P” ซึ่งตอบสนองด้วย “ส่งไฟล์ฐานสิบหก…”

ใช้ไฮเปอร์เทอร์มินัลจากเมนูถ่ายโอน > ส่งไฟล์ข้อความ > PICMETER1. HEX >เปิด

ความคืบหน้าจะถูกระบุโดย “:.” เนื่องจากแต่ละบรรทัดของรหัสฐานสิบหกถูกตั้งโปรแกรมไว้ ในที่สุดก็โหลดสำเร็จ

หากคุณกำลังใช้ PuTTY คุณอาจต้องใช้ Notepad และคัดลอก/วางเนื้อหาทั้งหมดของ PICMETER1. HEX ลงใน PuTTY

ในทำนองเดียวกันเพื่อตรวจสอบ ป้อนคำสั่ง “V” ในไฮเปอร์เทอร์มินัล จากเมนูถ่ายโอน > ส่งไฟล์ข้อความ > PICMETER1. HEX > ตกลง

Warning = xx…หากคุณตั้งโปรแกรมชิป 16F877A คุณจะได้รับข้อความเตือน สิ่งนี้เกี่ยวข้องกับความแตกต่างระหว่าง 877 และ 877A ซึ่งตั้งโปรแกรมในบล็อคคำ 4 คำ น่าเสียดายที่ตัวเชื่อมโยงไม่จัดตำแหน่งจุดเริ่มต้นของส่วนในขอบเขตคำ 4 คำ วิธีแก้ปัญหาง่ายๆ คือมีคำสั่ง NOP 3 คำสั่งที่จุดเริ่มต้นของแต่ละส่วน ดังนั้นไม่ต้องสนใจคำเตือน

รีสตาร์ทและที่เมนูบูต BIOS เลือก "เรียกใช้แอปพลิเคชัน" คุณควรเห็น PICMETER1 บนจอ LCD

4.6 เรียกใช้ PICMETER1

ตอนนี้เริ่มสร้างส่วนเพิ่มเติมของบอร์ดพัฒนา (รูปที่ 2) เพื่อรับโวลต์มิเตอร์ ฟังก์ชัน Component Meter ทำงานตามที่ต้องการ

Meter1 ต้องการการสอบเทียบ ในฟังก์ชัน "Cal" ปรับ R10 เพื่อให้อ่านค่าได้ประมาณ 80.00, 80.0nF และ 10.000uF โดยประมาณ จากนั้นอ่านค่า 100pF ขนาดเล็กบนฟังก์ชัน Cx1 หากการอ่านไม่ออก ให้เปลี่ยนฝาครอบทริม C13 หรือเปลี่ยนค่าของ “trimc” ใน meter1.asm

ตอนนี้ให้เรียกใช้การตั้งค่า PICBIOS และเปลี่ยนการตั้งค่าการปรับเทียบบางส่วนใน EEPROM ปรับเทียบอุณหภูมิโดยการปรับออฟเซ็ต 16 บิต (รูปแบบสูง ต่ำ) คุณอาจต้องเปลี่ยนค่า "การหน่วงเวลา"

หากคุณตั้งใจที่จะสร้างโครงการตามที่เป็น – ยินดีด้วย คุณทำเสร็จแล้ว ! บอกฉันเกี่ยวกับความสำเร็จของคุณใน Instructables

4.7 MPLAB

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

รายละเอียดวิธีการสร้างโปรเจ็กต์ใหม่ แล้วเพิ่มไฟล์ลงในโปรเจ็กต์ในเอกสารฉบับเต็ม

ขั้นตอนที่ 5: รูปภาพของการทดสอบ

ภาพถ่ายของการทดสอบ
ภาพถ่ายของการทดสอบ
ภาพถ่ายของการทดสอบ
ภาพถ่ายของการทดสอบ
ภาพถ่ายของการทดสอบ
ภาพถ่ายของการทดสอบ

ภาพข้างบนเทอร์โมมิเตอร์ อ่านอุณหภูมิ 15 องศาเซลเซียส

ความถี่ในการทดสอบ, การอ่าน = 416k

ตัวเหนี่ยวนำการทดสอบทำเครื่องหมาย 440uF อ่าน 435u

การทดสอบตัวต้านทาน 100k อ่าน 101k นั่นเป็นเรื่องง่าย

การทดสอบตัวเก็บประจุ 1000pF การอ่านคือ 1.021nF

ขั้นตอนที่ 6: ข้อมูลอ้างอิงและลิงก์

6.1 เอกสารข้อมูล PIC16F87XA, Microchip Inc.

ww1.microchip.com/downloads/en/devicedoc/39582b.pdf

6.2 ข้อมูลจำเพาะการเขียนโปรแกรมหน่วยความจำ PIC16F87XA FLASH, Microchip

ww1.microchip.com/downloads/en/devicedoc/39589b.pdf

6.3 บันทึกการใช้งาน AN589, Microchip Inc.

ww1.microchip.com/downloads/en/appnotes/00589a.pdf

6.4 ดาวน์โหลด PIPGM

picpgm.picprojects.net/

ดาวน์โหลดฟรี 6.5 MPLab IDE v8.92, Microchip

pic-microcontroller.com/mplab-ide-v8-92-free-download/

6.6 เอกสารข้อมูลสำหรับโมดูล Hope RFM01-433 และ RFM02-433, RF Solutions

www.rfsolutions.co.uk/radio-modules-c10/hope-rf-c238

6.7 LT Spice อุปกรณ์อะนาล็อก

www.analog.com/en/design-center/design-tools-and-calculators/ltspice-simulator.html

6.8 วงจรโปรแกรมเมอร์ pic ตาม AN589, Best-Microcontroller-Projects

www.best-microcontroller-projects.com/pic-programmer-circuit.html

6.9 ไฟล์โอเพ่นซอร์ส

โอเพ่นซอร์ส

แนะนำ: