Tải bản đầy đủ (.pdf) (3 trang)

Thực hành vi điều khiển AVR - Bài 1 pptx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (250.7 KB, 3 trang )

Bài 1: Input and output – AVR
Đặc tính: Dưới đây là 3 loại AVR thong dụng nhất, tuỳ vào mục đích sử dụng bạn có thể
chọn loại AVR khác nhau.
Cộng dụng cơ bản là như nhau, khác nhau chủ yếu là số chân vào ra và cách bố trí chức
năng.
ATmega 8: (or 88) Gồm 28 pin và 23 chân I/O
ATmega 16: Gồm 40 pin và 32 chân I/O
ATmega 128: Gồm 64 pin và 53 chân I/O

Giới thiệu


Cấu trúc chân của AVR có thể phân biệt rõ chức năng (vào ra) trạng thái (0 1) từ đó ta có
4 kiểu vào ra cho một chân của avr.Khác với 89 là chỉ có 2 trạng thái duy nhất (0 1) . Đặc
biệt nguồn từ chân của AVR đủ khoẻ để điều khiển Led trực tiếp (mA) còn 89 chỉ là vài
uA .
Để điều khiển các chân này chúng ta có 2 thanh ghi
->PORTx :giá trị tại từng chân (0 – 1) có thể truy cập tới từng bit PORTx.n
->DDRx : thanh ghi chỉ trạng thái của từng chân , vào hoặc là ra .



Ví dụ : Dùng nút ấn điều khiển đèn led bật tắt .

Sơ đô mạch:

Ta có PortD.0 sẽ là chân ra đèn led , cần có giá trị 1 thì đèn sang và 0 thì đèn tắt . PortD.1
sẽ là chân nhận phím bấm ,khi bấm sẽ nhận về avr mức 0 còn bình thường ta để ở trạng
thái pull (treo cao trở có logic là 1).

#include


#define led PORTD.0 //khi dinh nghia chan rat a luon ghi la PORTx.x chân vào
luon kí hiệu là PINx.x
#define nutbam PIND.1

void main(void)
{
// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=Out
// State7=T State6=T State5=T State4=T State3=T State2=T State1=P State0=0
PORTD=0x02; // 0b00000010 Giá trị chân D.1 là 1(treo trở 5V pullup) còn các
cổng khác đều có giá trị là 0.
DDRD=0x01; // 0b00000001 D.0 là cổng ra , còn các cổng khác là cổng vào
while (1)
{

if(!nutbam ) led=!led ; //mỗi khi ấn nút led sẽ đảo trạng thái.

}
}

×