DMDT
  • Danh Mục
    • Vi Điều Khiển
      • 8051
      • Arduino
      • AVR
      • IC Chức Năng
      • PIC
    • Module
      • MD Chuyển Đổi
      • MD GSM,GPS,3G
      • MD LCD
      • MD Nguồn
      • MD Wifi
    • Điện Tử Cơ Bản
      • ADC/DAC
      • Bộ Nhớ Bán Dẫn
      • Các Họ IC Số
      • Họ OPAM
      • Mạch Tổ Hợp
      • Mạch Tuần Tự
      • Linh Kiện Cơ Bản
    • Mạch Điện Vui
      • DIY – Tự Ráp Mạch
      • Hướng Dẫn Thiết Kế Mạch
      • Sản Phẩm Sáng Tạo
      • Tự Làm Mạch In
    • Cảm Biến
      • Analog (Tín hiệu điện áp)
      • Digital (Tín hiệu số)
  • Phần Mềm
  • Đồ Án
No Result
View All Result
DMDT
  • Danh Mục
    • Vi Điều Khiển
      • 8051
      • Arduino
      • AVR
      • IC Chức Năng
      • PIC
    • Module
      • MD Chuyển Đổi
      • MD GSM,GPS,3G
      • MD LCD
      • MD Nguồn
      • MD Wifi
    • Điện Tử Cơ Bản
      • ADC/DAC
      • Bộ Nhớ Bán Dẫn
      • Các Họ IC Số
      • Họ OPAM
      • Mạch Tổ Hợp
      • Mạch Tuần Tự
      • Linh Kiện Cơ Bản
    • Mạch Điện Vui
      • DIY – Tự Ráp Mạch
      • Hướng Dẫn Thiết Kế Mạch
      • Sản Phẩm Sáng Tạo
      • Tự Làm Mạch In
    • Cảm Biến
      • Analog (Tín hiệu điện áp)
      • Digital (Tín hiệu số)
  • Phần Mềm
  • Đồ Án
No Result
View All Result
DMDT
No Result
View All Result
Home Vi Điều Khiển AVR

[HỌC AVR] Bài 1: GPIO VỚI AVR

26 Tháng Sáu, 2022
in AVR, Vi Điều Khiển
434 4

Bài 1: GPIO VỚI AVR

Chú ý : Source code bài viết dưới đây được biên dịch bằng phần mềm CodeVisionAVR để biên dịch code không lỗi xin vui lòng Download bản CodeVisionAVR Tại Đây

I.TỔNG QUAN VỀ GPIO CỦA AVR.

Xin chào các bạn!
Trong bài viết này tôi xin giới thiệu với các bạn về GPIO của họ vi điều khiển AVR.
-Trong họ vi điều khiển AVR, các PORT là các “của ngõ” then chốt của vi điều khiển. PORT có thể giao tiếp với các thiết bị ngoại vi theo hai hướng: xuất và nhập.
-Số lượng các PORT ứng với mỗi loại vi điều khiển trong họ AVR là khác nhau. Số lượng các chân I/O trong một PORT cũng khác nhau.
-Ngoài chức năng xuất/nhập thông thường, các chân của vi điều khiển còn mang những chức năng đặc biệt khác như: ADC, Ngắt Ngoài, TIMER, …
Sơ đồ GPIO của ATMEGA8:

-Họ AVR cung cấp cho chúng ta 3 thanh ghi (8bit): PORTx, DDRx, PINx (với x là tên PORT) để điều khiển hướng của các PORT một cách dễ dàng. Mỗi bit của các thanh ghi tương ứng với một chân của PORT.

·DDRx: đây là thanh ghi định hướng cho các chân của vi điều khiển.
 ØDDRx = 0: cấu hình chân là INPUT.
 ØDDRx = 1: cấu hình chân là OUTPUT.
 PORTx: đây là thanh ghi cho biết mức điện áp được xuất ra ở chân OUTPUT.
 ØPORTx = 0: điện áp xuất ra 0V.
 ØPORTx = 1: điện áp xuất ra 5V.
·PINx: đây là thanh ghi đọc trạng thái của chân INPUT.

II.BÀI TOÁN VÍ DỤ.
Để giúp các bạn hiểu rõ cách cấu hình các thanh ghi điều khiển hướng I/O trong AVR, tôi xin đưa ra bài toán:
·Sử dụng vi điều khiển Atmega8, thay đổi trạng thái (sáng/tắt) của LED bằng nút bấm. Mỗi lần nút được bấm, trạng thái của LED sẽ thay đổi.
-Định nghĩa I/O cho các PORT:

#ifndef __GPIO_H
 
#define __GPIO_H
 
#include <mega8.h>
#include <delay.h>
 
//---------- CAU HINH I/0 -------------
// PORTB ------------------------------
// Cau hinh cho LED
// Chan 4 cua PORTB ket noi voi LED don
#define LED PORTB.4
 
// PORTC ------------------------------
// Cau hinh cho BUTTON
// Chan 7 cua PORTD ket noi voi nut bam
// PORTD ------------------------------
#define BUTTON PIND.7
#endif

 

Chương trình chính (gồm có cấu hình I/O cho các PORT):

void main(void)
{
 
// CAU HINH I/O CHO CAC PORT
 
// CAU HINH PORTB
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
PORTB=0x00;    // Dien ap xuat ra la 0V
DDRB=0x10;    // Chan 4 cua PORTB la chan OUTPUT
 
// CAU HINH PORTC
// Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0x00;
 
// CAU HINH PORTD
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=P State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0x80;    // Co tro noi keo len cho chan 7
DDRD=0x00;    // Cac chan cua PORTD la cac chan INPUT
 
while (1)
      {
      if(!BUTTON)                // Neu BUTTON duoc an
      {     
          delay_ms(10);          // Delay chong nhieu
          if(!BUTTON)            // Neu dung BUTTON duoc an
          {
              LED =~LED;        // Trang thai cua LED duoc thay doi
              while(!BUTTON);
          }
      }
 
      // Place your code here
      }
}

 

– Video demo:
– Các bạn có thể tham khảo CODE mẫu và mô phỏng tại đây:

DOWNLOAD TẠI ĐÂY

Tags: atmega8avrGPIOlập trình avr
Share326Tweet204

Related Posts

Module nRF24L01 2.4G – Cách Thức Sử Dụng Với Tất Cả Các Dòng VĐK
Điện Tử Cơ Bản

Module nRF24L01 2.4G – Cách Thức Sử Dụng Với Tất Cả Các Dòng VĐK

19 Tháng Sáu, 2022
[HỌC AVR] BÀI 8.1 .ĐO LƯỜNG ĐA ĐIỂM VỚI DS18B20
AVR

[HỌC AVR] BÀI 11: GIAO TIẾP MA TRẬN PHÍM 4×4

26 Tháng Sáu, 2022
[HỌC AVR] BÀI 8.1 .ĐO LƯỜNG ĐA ĐIỂM VỚI DS18B20
AVR

[HỌC AVR] BÀI 10: HIỂN THỊ LCD128x64 LOẠI CHIP KS0108

26 Tháng Sáu, 2022
Next Post
[HỌC AVR] BÀI 8.1 .ĐO LƯỜNG ĐA ĐIỂM VỚI DS18B20

[HỌC AVR] Bài 2: NGẮT NGOÀI VỚI AVR

[HỌC AVR] BÀI 8.1 .ĐO LƯỜNG ĐA ĐIỂM VỚI DS18B20

[HỌC AVR] Bài 3: TIMER - COUNTER TRÊN AVR

0 0 đánh giá
Đánh giá bài viết
Theo dõi
Đăng nhập
Thông báo của
guest
guest
0 Góp ý
Phản hồi nội tuyến
Xem tất cả bình luận

No Result
View All Result
  • Danh Mục
    • Vi Điều Khiển
      • 8051
      • Arduino
      • AVR
      • IC Chức Năng
      • PIC
    • Module
      • MD Chuyển Đổi
      • MD GSM,GPS,3G
      • MD LCD
      • MD Nguồn
      • MD Wifi
    • Điện Tử Cơ Bản
      • ADC/DAC
      • Bộ Nhớ Bán Dẫn
      • Các Họ IC Số
      • Họ OPAM
      • Mạch Tổ Hợp
      • Mạch Tuần Tự
      • Linh Kiện Cơ Bản
    • Mạch Điện Vui
      • DIY – Tự Ráp Mạch
      • Hướng Dẫn Thiết Kế Mạch
      • Sản Phẩm Sáng Tạo
      • Tự Làm Mạch In
    • Cảm Biến
      • Analog (Tín hiệu điện áp)
      • Digital (Tín hiệu số)
  • Phần Mềm
  • Đồ Án

Welcome Back!

Login to your account below

Forgotten Password?

Retrieve your password

Please enter your username or email address to reset your password.

Log In
wpDiscuz