ไมโครคอนโทรลเลอร์เบื้องต้น

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
ไมโครคอนโทรลเลอร์เบื้องต้น
Advertisements

ไมโครคอนโทรลเลอร์เบื้องต้น
ปัญหาที่พบเกี่ยวกับคอมพิวเตอร์ จัดทำโดย 1. นิชานาถ จันทรา เลขที่ ปรียากร พรมเทศ เลขที่ พิมพ์พัชร ปรีวัฒนานันท์ เลขที่ ภัทรา อ่องสกุล.
หน่วยที่ 3 ภาษาคำสั่งพื้นฐานที่ใช้เขียนโปรแกรม PLC
ซอฟต์แวร์ระบบที่รู้จักกันดี คือซอฟต์แวร์ควบคุมการปฏิบัติการ ของคอมพิวเตอร์ที่เรียกว่า ระบบปฏิบัติการ ระบบปฏิบัติการเป็นชุดคำสั่งที่ใช้ควบคุมระบบฮาร์ดแวร์และ.
LAB ตัวแปร : Variables ในการเขียนโปรแกรมเราต้องการให้โปรแกรม จดจำค่าต่างๆ ไว้ เช่นเมื่อรับค่าข้อมูลจาก ผู้ใช้ หรือค่าที่ได้จากการคำนวณใดๆ ค่า.
วิชา. การใช้โปรแกรมสำเร็จรูปในชีวิตประจำวัน บทที่ 2
ระบบบริหารงานบุคคล.
บทที่ 4 ลงมือพัฒนา โครงงานคอมพิวเตอร์
กาญจนา ทองบุญนาค สาขาวิชาคอมพิวเตอร์ คณะวิทยาศาสตร์และเทคโนโลยี
Winrar โปรแกรมย่อไฟล์ หลายครั้งที่เมื่อเราโหลดข้อมูลมาจากเว็บไซต์ ต่างๆ แล้วไฟล์ที่ได้มีนามสกุลเป็น.rar ซึ่งเราต้อง นำไฟล์นั้นมาแตกออกเพื่อที่เราจะได้ข้อมูลจริงๆที่
ซอฟต์แวร์และการเลือกใช้
องค์ประกอบของคอมพิวเตอร์
การใช้งาน Microsoft Excel
การรักษาความปลอดภัยข้อมูลขั้นพื้นฐาน
ครั้งที่ 7 รีจิสเตอร์ (REGISTER). รีจิสเตอร์ (Register) รีจิสเตอร์เป็นวงจรความจำที่ใช้ในการเก็บค่า ทางไบนารี่ ใช้ในการเก็บค่าในระหว่างการ ประมวลผลโดยใช้ฟลิป.
โปรแกรมสต๊อกสินค้า และ โปรแกรมขายหน้าร้าน Nanosoft Smart INV.NET วิชาโปรแกรมสำเร็จรูปและการ ประยุกต์ใช้งาน อ. วิสุตร์ เพชรรัตน์
บทที่ 2 โครงสร้างและหน้าที่ การทำงาน ของระบบคอมพิวเตอร์
CSIT-URU อ. กฤษณ์ ชัยวัณณคุปต์ Mathematics and Computer Program, URU บทที่ 1 ความรู้ทั่วไปเกี่ยวกับ เทคโนโลยีสารสนเทศ Introduction to Information.
นาย สรวิศ เตธัญญวรากูล ปวช.3/2 นาย ศิวกร มาลี ปวช.3/2.
วิธีการเลือกซื้อ คอมพิวเตอร์. เนื้อหาในส่วนนี้จะให้รายระเอียดและขั้นตอน ในการเลือกซื้อ เครื่องคอมพิวเตอร์ เพื่อให้เราได้เครื่อง คอมพิวเตอร์ที่ตรงกับความ.
จัดทำโดย นางสาว อุศนันท์หาดรื่น ภาควิชาวิศวกรรมคอมพิวเตอร์ คณะวิศวกรรมศาสตร์ มหาวิทยาลัยสยาม ปีการศึกษา 2557.
LOGO ภาษาซี 1.1 อ. กฤติเดช จินดาภัทร์. LOGO ตัวอย่างโค้ดภาษาซี
Windows xp starter Edition ซอฟแวร์เพื่อคนไทย ซ. windows xp starter Edition คืออะไร Windows xp Starter Edition เป็นความ ร่วมมือกันระหว่างรัฐบาลไทยกับ ไมโครซอฟท์ที่ต้องการให้ผู้ใช้งาน.
งานวิชา เทคโนโลยี สารสนเทศ 4/3 เรื่อง INPUT และ OUTPUT จัดทำโดย นาย ชาญชัย ศรีน้อย เลขที่ 3 นาย ณัฐดนัย จันทมาศ เลขที่ 4 นาย อุดมศักดิ์ เกื้อนะ เลขที่
การเชื่อมต่ออุปกรณ์ต่างๆ การเชื่อมต่อเมาส์และ คีย์บอร์ด การเชื่อมต่อจอภาพ 1 2 ช่องเสียบหัวต่อ สายไฟ เข้ากับตัวเครื่อง และสายจอภาพ จอภ าพ คีย์บอ.
ซอร์ฟแวร์ ( Software ). Microsoft excel Microsoft excel Microsoft power point.. Link Link.
วิชาเทคโนโลยีสารสนเทศเพื่อชีวิต
ส่วนประกอบของคอมพิวเตอร์ (Personal Computer : PC)
“วิธีการใช้งาน PG Program New Version สำหรับ PGD”
By Btech GPS : Jan GPS By BtechGPS By Btech GPS : Jan
stack #2 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
องค์ประกอบและเทคนิคการทำงาน
การประยุกต์ Logic Gates ภาค 2
ส่วนประกอบของคอมพิวเตอร์ (Personal Computer : PC)
เรียนรู้การใช้งานโปรแกรม เพื่อจำลองระบบไมโครคอนโทรลเลอร์
ส่วนประกอบต่างๆของ tablet
ไมโครคอนโทรลเลอร์ บทที่ 11.
โครงสร้างภาษา C Arduino
บทที่ 1 ความรู้ทั่วไปเกี่ยวกับคอมพิวเตอร์
บทที่ 1 โครงสร้างคอมพิวเตอร์พื้นฐาน
ประเภทแผ่นโปร่งใส (แผ่นใส) รายวิชา ออปแอมป์และลิเนียร์ไอซี
Basic Input Output System
ระบบบริหารจัดการงานวิจัยของหน่วยงาน Department Research Management System DRMS โดยทีมพัฒนาระบบ DRMS สำนักงานคณะกรรมการวิจัยแห่งชาติ (วช.)
กลุ่มหลักสูตร กลุ่มหลักสูตรที่ 1 : พัฒนาความรู้
วิธีการกำหนดค่า Microsoft SharePoint ของคุณ เว็บไซต์ออนไลน์
แผงวงจรพ่วง (Peripheral Board)
ชั้น G ปารีส ศูนย์การค้าเทอร์มินอล 21 โคราช
บริษัท พัฒนาวิชาการ (2535) จำกัด
Week 5 C Programming.
SMS News Distribute Service
ผู้ช่วยศาสตราจารย์จุฑาวุฒิ จันทรมาลี
“ถ้าหากบริษัทบุหรี่ต้องหยุดทำการตลาดที่พุ่งเป้าไปที่เด็กๆ บริษัทบุหรี่จะล้มละลายภายใน 25 – 30 ปี เพราะจะไม่มีลูกค้าเพียงพอที่ธุรกิจจะอยู่ได้”
บรรยายครั้งที่ 8 - กราฟฟิกวิศวกรรม 1
การสร้างวงจรต้นแบบ (Circuit Prototyping)
บทที่ 7 การประมวลผลอาร์เรย์
บทที่ 8 การแก้ไขข้อผิดพลาดโปรแกรม(Debugging)
ค่ารูรับแสง - F/Stop ค่ารูรับแสงที่มีค่าตัวเลขต่ำใกล้เคียง 1 มากเท่าไหร่ ค่าของรูรับแสงนั้นก็ยิ่งมีความกว้างมาก เพราะเราเปรียบเทียบค่าความสว่างที่ 1:1.
2 โครงสร้างข้อมูลแบบสแตก (STACK).
กิจกรรมที่ 7 นายปรีชา ขอวางกลาง
เริ่มต้นสร้างบล็อกเวิร์ดเพรส
ระบบสำนักงานอัตโนมัติ (Office Automation : OA)
กรณีศึกษา : เทคโนโลยีชีวภาพกับสิ่งแวดล้อม
การเขียนโปรแกรมด้วยภาษาไพทอน การเขียนโปรแกรมแบบทางเลือก
หลักสูตรการบำรุงรักษาระบบโทรศัพท์
ระบบการส่งต่อข้อมูลอาการไม่พึงประสงค์จากการแพ้ยา
แนวทางการดำเนินงานประเมินความเสี่ยงบุคลากรในโรงพยาบาล
เมนูหลัก ส่วนประกอบของคอมพิวเตอร์ ผลการเรียนรู้ที่คาดหวัง
บทที่ 7 การบัญชีภาษีมูลค่าเพิ่ม
กระดาษทำการ (หลักการและภาคปฏิบัติ)
ใบสำเนางานนำเสนอ:

ไมโครคอนโทรลเลอร์เบื้องต้น ปฏิบัติการเกี่ยวกับวิศวกรรมคอมพิวเตอร์ (01204223) ผศ.ดร.ชัยพร ใจแก้ว ภาควิชาวิศวกรรมคอมพิวเตอร์ คณะวิศวกรรมศาสตร์ มหาวิทยาลัยเกษตรศาสตร์

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

ส่วนประกอบภายในและการใช้งาน Flash Memory RAM อุปกรณ์ภายนอก (เช่น LED, จอ LCD, สวิตช์, ตัววัดแสง, มอเตอร์, รีเลย์ ฯลฯ) CPU I/O Ports Registers Timers & Counters Analog to Digital Converter แหล่งจ่ายไฟ (เช่น พอร์ท USB, ถ่านไฟฉาย, Power Bank)

สถาปัตยกรรม AVR สถาปัตยกรรมแบบ 8 บิต RISC ถูกพัฒนาขึ้นโดยบริษัท Atmel ในปี 1996 ซีรีส์ต่าง ๆ ของไมโครคอนโทรลเลอร์ตระกูล AVR tinyAVR เช่น ATtiny12, ATtiny24 megaAVR เช่น ATmega8, ATmega168 XMEGA เช่น ATxmega128A1, ATxmega384A1 1 KB RAM 16 KB Flash

วงจรบอร์ดไมโครคอนโทรลเลอร์

กระบวนการพัฒนาเฟิร์มแวร์ สร้างซอร์สไฟล์ 1 เท็กซ์เอดิเตอร์ (gedit, vim ฯลฯ) ซอร์สโค้ด (.c, .cpp, .s) คอมไพล์โปรแกรม 2 ครอสคอมไพเลอร์ (avr-gcc) ไฟล์ executable (.elf) สกัดรหัสภาษาเครื่อง 3 โปรแกรมสกัดโค้ด (avr-objcopy) 010101 011101 110110 รหัสภาษาเครื่อง (.hex) อัพโหลดเฟิร์มแวร์ ลงชิป 4 โปรแกรมอัพโหลด (avrdude) ชิปโปรแกรมเมอร์

เฟิร์มแวร์ตัวแรก สั่งให้ LED สีเขียวบนเมนบอร์ดติดและดับสลับกันไปทุก ๆ ครึ่งวินาที เริ่มต้น กำหนดให้ขา PD3 เป็นเอาท์พุท ส่งลอจิก 1 ไปยังขา PD3 หน่วงเวลา 500 ms ส่งลอจิก 0 ไปยังขา PD3 หน่วงเวลา 500 ms

การสั่งงานไมโครคอนโทรลเลอร์ โดยมากใช้ภาษาแอสเซมบลี้ หรือภาษาซี อ่านและเขียนค่าผ่าน "รีจีสเตอร์"

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

รีจีสเตอร์ในสถาปัตยกรรม AVR แบ่งเป็นสองประเภท General purpose registers 32 ตัว ตัวละ 8 บิต I/O registers ทั้งหมดถูกอ้างถึงได้ผ่านตำแหน่งของหน่วยความจำ ไฟล์เฮดเดอร์ avr/io.h นิยามชื่อรีจีสเตอร์ไว้เพื่อความสะดวกในการเขียนโปรแกรม

ตัวอย่างรีจีสเตอร์ของ ATmega168 DDRD แต่ละบิตกำหนดทิศทาง (อินพุทหรือเอาท์พุท) ให้ขาแต่ละขาของพอร์ท D PORTD แต่ละบิตกำหนดลอจิกให้ขาแต่ละขาของพอร์ท D ที่ถูกกำหนดเป็นเอาท์พุท PIND แต่ละบิตเก็บค่าลอจิกที่อ่านได้จากขาแต่ละขาของพอร์ท D ที่ถูกกำหนดให้เป็นอินพุท

โปรแกรมตัวอย่าง: first.c ระวังอย่าให้โปรแกรมที่เขียนขึ้น สำหรับไมโครคอนโทรลเลอร์ จบการทำงานออกจากฟังก์ชัน main() ระบุว่าชิปทำงานที่ความถี่ 16 MHz #define F_CPU 16000000UL #include <avr/io.h> #include <util/delay.h> int main() { DDRD = 0b00001000; while (1) PORTD = 0b00001000; _delay_ms(500); PORTD = 0b00000000; } return 0; กำหนดให้ PD3 เป็นเอาท์พุท ส่งลอจิก 1 ไปยังขา PD3 ส่งลอจิก 0 ไปยังขา PD3

การคอมไพล์และสกัดโค้ดภาษาเครื่อง ดูรายละเอียดจากวิกิ [[การพัฒนาเฟิร์มแวร์สำหรับไมโครคอนโทรลเลอร์]] ใช้คำสั่ง avr-gcc เพื่อคอมไพล์โปรแกรมสำหรับ MCU เบอร์ ATMega168 สกัดโค้ดภาษาเครื่องออกจากไฟล์ executable $ avr-gcc -mmcu=atmega168 -O -o first.elf first.c $ avr-objcopy -j .text -j .data -O ihex first.elf first.hex

การอัพโหลดเฟิร์มแวร์ โค้ดภาษาเครื่องต้องถูกโปรแกรมลงไปในหน่วยความจำแฟลชของไมโครคอนโทรลเลอร์ ทำได้โดยใช้ "ชิปโปรแกรมเมอร์"

การอัพโหลดเฟิร์มแวร์ด้วย Boot Loader เข้าสู่ Boot Loader โดยกดปุ่ม รีเซ็ตในขณะที่มีจั๊มเปอร์ เสียบอยู่ที่ขา Boot Loader ใช้คำสั่ง avrdude เพื่ออัพโหลดโค้ดภาษาเครื่องลงสู่ไมโครคอนโทรลเลอร์ $ avrdude -p atmega168 -c usbasp -U flash:w:first.hex

การทำงานของ Boot Loader

แบบฝึกหัด แก้ไขโปรแกรม first.c เพื่อให้ LED สีเขียวบนบอร์ดติดดับเป็นจังหวะดังนี้ ติด 1 วินาที และดับ 2 วินาที สลับกันไป

การบ้าน เขียนโปรแกรมให้ LED ทั้งสามสี ติดไล่วนเป็นลำดับ เขียว -> เหลือง -> แดง -> เขียว … LED แต่ละดวงติดค้างเป็นเวลา .5 วินาที หมายเหตุ: แก้ไขโปรแกรมจากตัวอย่างในวิกิ อย่าลืมระบุ F_CPU

แบบฝึกหัด เขียนโปรแกรมให้ LED ทั้งสามสี ติดไล่วนเป็นลำดับ เขียว -> เหลือง -> แดง -> เขียว … LED แต่ละดวงติดค้างเป็นเวลา .5 วินาที