Basic Programming for AVR Microcontroller

Download Report

Transcript Basic Programming for AVR Microcontroller

Basic Programming
for AVR Microcontroller
ทำควำมรู้จกั
• ผลิตโดยบริษัท ATMEL
• ใช้ สถาปัตยกรรมแบบ RISC หนึ่งคาสั่ งใช้ clock เพียงลูกเดียว
• มีหลายเบอร์ หลายขนาดให้ เลือกใช้ ตามวัตถุประสงค์ ของผู้ใช้
คุณสมบัติที่สำคัญ
•
•
•
•
•
สถาปัตยกรรมแบบ RISC
มีรีจิสเตอร์ ให้ ใช้ งานทัว่ ไปขนาด 8bit จานวน 32 ตัว *
หน่ วยความจา rom แบบ flash 16kbyte เขียน\ลบได้ หมื่นครั้ง
หน่ วยความจาแบบ EEPROM ขนาด 512 byte เขียน\ลบได้ แสนครั้ง
การสื่ อสารข้ อมูลอนุกรมมีท้งั แบบ UART หรือ RS323
ส่วนประกอบ ขำพอร์ ตอินพุทเอำต์พทุ
• VCC ขาแรงดันไฟตรง
• GND ขากราวด์
• PORT A (PA0 - PA7)
input/output สัญญาณดิจิตอล และอะนาลอคได้
• PORT B (PB0 - PA7)
input/output สัญญาณดิจิตอล โปรแกรมชิพ
ป้ อนสัญญาณนาฬาภายนอก
• PORT C (PC0 - PA7)
input/output สัญญาณดิจิตอล เชื่อมต่อกับดีบคั โปรแกรม
• PORT D (PD0 - PA7)
input/output สัญญาณดิจิตอล อินเทอร์รัปสัญญาณภายนอก
• RESET ขารีเซ็ตวงจร
• AVCC ขาแรงดันสาหรับ PORT A
หลักการเขียนโปรแกรมควบคุม
microcontroller
เลขฐำนสอง
• พอร์ ตของไมโครคอนโทรเลอร์ มีขนาด 8bit แต่ ละพอร์ ตมี 8 ขา แต่ ละขา
สามารถกาหนดได้ สองสถานะ คือ 0 , 1
PA 7
PA 6
PA 5
PA 4
PA 3
PA 2
PA 1
PA 0
x
x
x
x
x
x
x
x
ในรูปเป็ นพอร์ ต PA ถ้ าต้ องการให้ บิตที่ 3 กับ 5 ติด ต้ องกาหนดค่ า
PA 7
PA 6
PA 5
PA 4
PA 3
PA 2
PA 1
PA 0
0
0
1
0
1
0
0
0
• สามารถเปรียบเทียบกับเลขฐานสองก็คอื 00101000
• ถ้ านาไปเขียนในโปรแกรมภาษา C ก็แค่ กาหนดเป็ น
PA = 0b00101000;
• สามารถเขียนอยู่ในรูปฐานสิ บหกได้ แปลงโดยใช้ เครื่องคิดเลข
PA = 0x28;
ทำควำมเข้ ำใจกับรี จิสเตอร์ และกำหนดค่ำกำรใช้ งำน
• เพือ่ กาหนดทิศทางเริ่มต้ นเพือ่ ใช้ งานแต่ ละพอร์ ท
โดยทีบ่ ิตใดเท่ ากับ 1 หมายถึงเอาต์ พุต เท่ ากับ 0 หมายถึงอินพุต
DDA
7
DDA
6
DDA
5
DDA
4
DDA
3
DDA
2
DDA
1
DDA
0
1
1
1
1
0
0
0
0
DDA
7
DDA
6
DDA
5
DDA
4
DDA
3
DDA
2
DDA
1
DDA
0
out
out
out
out
in
in
in
in
หมายถึง
โดยใช้ วธิ ีกาหนดค่าคือ DDA = 0b1111000;
ตัวอย่ำงกำรเขียนโปรแกรม
เรียกใช้ lib และกาหนดค่า CPU
กาหนดรีจสิ ตี้
ตั้งพอร์ ต
ฟังก์ชนหน่ วงเวลา
สรุ ป หลักการเขียนโปรแกรมควบคุม
microcontroller
•
•
•
•
ต้ องทาความเข้ าใจเกีย่ วกับส่ วนทีต่ ้ องการใช้ งานที่เรียกว่าโมดูลภายใน
ต้ องเข้ าใจและกาหนดค่ าในรีจิสเตอร์ ทเี่ กีย่ วข้ องกับโมดูลให้ เป็ น
มีความรู้ภาษา C
ต้ องมีความเข้ าใจทางด้ านอิเล็กทรอนิคส์ บ้าง ซึ่งจะช่ วยให้ การเขียน
โปรแกรมและใช้ งาน microcontroller เป็ นไปตามความต้ องการมากขึน้