Chào mừng đến với Câu Lạc Bộ Sáng Tạo
Chia sẻ kinh nghiệm
Kết nối đam mê
Đang cập nhật thời gian...
BÀI VIẾT NỔI BẬT
Xin chào! Tôi là Ếch Sáng Tạo :-)
Chia sẻ trang




Chuyên mục
Bài mới
Xem nhiều
Thống kê
    Đang tải..
Bài viết
[Bài 1] Xuất nhập Port đơn giản cho AVR - SangTaoClub.Net
[Bài 1] Xuất nhập Port đơn giản cho AVR
Đăng bởi: Vũ Văn Thái - Thời gian: 29-05-2014, 21:22
Chuyên mục: Học lập trình AVR - Lượt xem: 10.506

Xuất nhập Port đơn giản cho AVR

Chào các bạn, hôm nay chúng ta sẽ tìm hiểu về lập trình xuất nhập port cho vi điều khiển AVR. Việc xuất nhập port rất đơn giản các bạn tham khảo đoạn code sau:

Các  bạn đọc ghi chú để hiểu các câu lệnh có tác dụng ntn nha. (Ghi chú sau dấu // )

1. Điều khiển xuất dữ liệu ra PORTD.0

#include <mega8.h>
#include <delay.h> //Thu vien Ham delay chuan, Set clock CPU 8Mhz
#define LED PORTD.0 //Chan PD0 gan LED
/**************Ctr tao xung 1Hz dieu khien LED********************/
void main(){ //Chuong trinh chinh
        DDRD.0=1; //Chan PD0 la chan xuat du lieu
        LED=0; //Cho LED tat
        delay_ms(2000); //Tao tre 2 giay
        while(1){ //Vong lap ctr - Vong lap vo tan
                LED=1; //LED sang
                delay_ms(500); //Tre 0.5 giay
                LED=0; //LED tat
                delay_ms(500);
        }
}

Mạch nguyên lý:

Xuất nhập Port đơn giản cho AVR - SangTaoClub.Net

2. Điều khiển LED thông qua nút nhấn:

#include <mega8.h>
#include <delay.h> //Thu vien Ham delay chuan, Set clock CPU 8Mhz
#define LED PORTD.0 //Chan PD0 gan LED
#define BUT PINC.0 //Chan PC0 lam nut nhan
/**************Ctr nhan nut dieu khien LED********************/
void main(){ //Chuong trinh chinh
        DDRD.0=1; //Chan PD0 la chan xuat du lieu
        DDRC.0=0; //Chan PC0 la chan nhap du lieu
        PORTC.0=1; //Su dung tro cau chan PC0
        LED=0; //Cho LED tat
        while(1){ //Vong lap ctr - Vong lap vo tan
                if(!BUT){ //Nhan nut thi LED chop 2 lan roi tat
                        LED=1; //LED sang lan 1
                        delay_ms(200);
                        LED=0; //LED tat
                        delay_ms(500);
                        LED=1; //LED sang lan 2
                        delay_ms(200);
                        LED=0; //LED tat
                        while(!BUT); //Neu nut van nhan thi ko lam gi ca
                }
        }
}

Mạch nguyên lý:

Xuất nhập Port đơn giản cho AVR - SangTaoClub.Net

Qua bài viết này các bạn sẽ biết cấu trúc của một chương trình trong C như thế nào và cách điều khiển port xuất nhập vào ra ntn trước khi vào lập trình nâng cao.

Tải Code và mô phỏng trong File đính kèm......

Chúc bạn học tốt!!


Tải về đính kèm:
xuat_nhap_port.zip
Kích thước: 69.98 KB


  • Bạn chưa đăng nhập, không thể viết bình luận!
    Bấm vào đây để Đăng nhập hoặc Đăng ký!
  • el_tri lúc 27-09-2014, 10:01
    Anh ơi, cho em hỏi ạ : e muốn làm sáng led theo kiểu đuổi, tức là ban đầu 8 led cùng sáng, rồi led1 tắt, (7 led còn lại sáng), led2 tắt (7led còn lại sáng) v..v. mà em mới viết đc code sau
    \*
    #include <mega16.h>
    #include <delay.h>
    // Declare your global variables here
    int m,n,i,j;
    void main(void)

    {

    PORTB=0x00;
    DDRB=0xFF;

    PORTB=0xFF;   
    while(1) {
                     m=1;
                        for(i=0;i<7;i ) {
                        PORTB=m;
                      delay_ms(100);
                m=m<<1;}
                     
                      if(i==7) {
                      n=m;
                      for(j=0;j<7;j ){           
                            PORTB=n;
                            delay_ms(100);
                            n=n>>1;
                           
                            }
                      }
           }\*

  • el_tri lúc 22-06-2014, 21:29
    em cảm ơn ad vì những bài học và sản phẩm trên web để e theo học, vì trường cũng ko dạy, nhất là lập trình avr . mong ad có nhiều bài học mới.
  • Trang 1/1: 1

    Bài viết cùng chuyên mục
    ATMG16 giao tiếp với LCD ATMG16 giao tiếp với LCD
    Đăng bởi: haydayanh - Thời gian: 04-06-2021, 22:33
    Chuyên mục: Học lập trình AVR - Lượt xem: 3.062
    Hướng dẫn làm KIT AVR đơn giản Hướng dẫn làm KIT AVR đơn giản
    Đăng bởi: Vũ Văn Thái - Thời gian: 25-10-2014, 09:39
    Chuyên mục: Học lập trình AVR - Lượt xem: 11.601
    [Bài 6] Lập trình giao tiếp USART và RS232 với AVR [Bài 6] Lập trình giao tiếp USART và RS232 với AVR
    Đăng bởi: Vũ Văn Thái - Thời gian: 15-08-2014, 15:25
    Chuyên mục: Học lập trình AVR - Lượt xem: 19.966
    [Bài 5] Lập trình ADC - Đo nhiệt độ dùng LM35 hiển thị LCD với AVR [Bài 5] Lập trình ADC - Đo nhiệt độ dùng LM35 hiển thị LCD với AVR
    Đăng bởi: Vũ Văn Thái - Thời gian: 25-06-2014, 10:17
    Chuyên mục: Học lập trình AVR - Lượt xem: 60.353
    [Bài 4] Lập trình giao tiếp LCD16x2 cho AVR trên CodeVisionAVR [Bài 4] Lập trình giao tiếp LCD16x2 cho AVR trên CodeVisionAVR
    Đăng bởi: Vũ Văn Thái - Thời gian: 22-06-2014, 10:42
    Chuyên mục: Học lập trình AVR - Lượt xem: 25.259
    [Bài 3] Lập trình ngắt cho AVR trên CodeVisionAVR [Bài 3] Lập trình ngắt cho AVR trên CodeVisionAVR
    Đăng bởi: Vũ Văn Thái - Thời gian: 16-06-2014, 14:06
    Chuyên mục: Học lập trình AVR - Lượt xem: 23.967
    [Bài 2] Tìm hiểu bộ Timer-Counter trên AVR [Bài 2] Tìm hiểu bộ Timer-Counter trên AVR
    Đăng bởi: Vũ Văn Thái - Thời gian: 15-06-2014, 11:55
    Chuyên mục: Học lập trình AVR - Lượt xem: 21.797
    Hướng dẫn set fuse bit cho AVR Hướng dẫn set fuse bit cho AVR
    Đăng bởi: Vũ Văn Thái - Thời gian: 16-05-2014, 22:09
    Chuyên mục: Học lập trình AVR - Lượt xem: 23.747
    Mạch nạp ISP cho vi điều khiển AVR và 89S Mạch nạp ISP cho vi điều khiển AVR và 89S
    Đăng bởi: Vũ Văn Thái - Thời gian: 10-05-2014, 12:22
    Chuyên mục: Học lập trình AVR - Lượt xem: 21.439
    Lập trình C trong CodeVisionAVR Lập trình C trong CodeVisionAVR
    Đăng bởi: Vũ Văn Thái - Thời gian: 28-04-2014, 19:30
    Chuyên mục: Học lập trình AVR - Lượt xem: 17.887
    Chào mừng canbaoke14 đã tham gia câu lạc bộ sáng tạo!
    Vũ Văn Thái - vuthai
    Hôm nay là sinh nhật của nhokclassic, anhbadia, conga2000, sonkhoi_star, minhkhanh982, winloan, lethanhtungnb89, quanglong_sangtao, wintk94, xuanbang, lebang, minhkyqt, fatduck92, minhquang09c4a, Khien_kd, anhlich1512_1994, thanhlong, maiphuocloi93, thanhlong142010, tuviethoang, MrSamTran_96, nguyentientrung, buikhanh_95, obesite, k123kien, nguyencongle, Khatmau_sr, Kemcaca0, tinhdau, quang_123, ← Gửi tin nhắn chúc mừng
    Múi giờ: UTC+07:00 - Asia/Ho Chi Minh ***** IP của bạn: 3.137.199.145 ***** Status: Cache Update thành công!