1. THÔNG BÁO TUYỂN ADMIN DIỄN ĐÀN 2013
    Tìm kiếm nhà trọ - Ở ghép
    THÔNG BÁO BÁN ÁO SPKT.NET CHO THÀNH VIÊN DIỄN ĐÀN


    HÃY TÌM KIẾM Ở ĐÂY TRƯỚC KHI ĐẶT CÂU HỎI
    {xen:phrase loading}

Báo cáo giữa kỳ - Đo nhiệt độ xuất ra LED7

Thảo luận trong 'Báo cáo giửa kỳ' bắt đầu bởi nogame, 8 Tháng sáu 2010.

  1. nogame New Member

    Số bài viết: 4
    Đã được thích: 0
    Điểm thành tích: 0
    Mình tên: Phạm Duy Thái
    MSSV: 07112135
    Lớp: 07112clc
    Đây là mạch đo nhiệt độ dùng LM35 và Atmega32, xuất ra 74247 rồi ra LED7. Đây là project đã cũ nhưng mình post ở đây với tinh thần học tập và mong được "khuyến mãi" từ thầy Cường :))
    LM35: không có gì để nói.
    Atmega32: mình chọn nó vì có tích hợp sẵn bộ ADC.
    74247: điều duy nhất nó hơn 7447 là số 6 và số 9 của nó có gạch ngang nhìn đẹp hơn :x
    LED7: 1. giá thành rẻ hơn LCD
    2. mạch này dùng đo nhiệt độ phòng nên chỉ cần hiện số chẵn là được
    3. code xuất ra LCD mình chưa nghiên cứu :))
    Chương trình được viết bằng WinAVR
    Mã:
    #include <avr/io.h> // cac dia chi io phu thuoc vao MakeFile
    #include <util/delay.h>               
    
    unsigned char doc_nhiet_do (unsigned char);
    unsigned char tinh_toan (unsigned char);
    unsigned char chong_nhieu (unsigned char, unsigned char);
    void LED7 (unsigned char);
    
    int main (void)
    {
        ADCSRA |= (1 << ADEN); //cho phep su dung ADC    
        ADMUX |= (0 << REFS1)|(0 << REFS0)|(0 << MUX4); //su dung dien ap tham chieu AREF = 5V, ngo vao ADC0                             
            
        DDRD = 0xFF; //set 8 chan cua PortD thanh Output                                          
        
        unsigned char nhiet_do_moi, nhiet_do_cu;
    
        while (1)
        {                    
            nhiet_do_moi = doc_nhiet_do (0);
            nhiet_do_moi = tinh_toan (nhiet_do_moi);
            nhiet_do_moi = chong_nhieu (nhiet_do_moi, nhiet_do_cu);        
            LED7 (nhiet_do_moi);
            nhiet_do_cu = nhiet_do_moi;
            _delay_ms (100);
        }
    }
    
    unsigned char doc_nhiet_do (unsigned char x)
    {    
        ADCSRA |= (1 << ADSC); //bat dau chuyen doi ADC                               
        loop_until_bit_is_set (ADCSRA, ADIF); //cho toi khi bit ADIF duoc set <=> chuyen doi hoan tat
        return ADC; //gia tri chuyen doi duoc chua trong bien ADC (mac dinh)
    }
    
    unsigned char tinh_toan (unsigned char x)
    {
        x = x / 2; // x = x * 5000 / 1024 / 10
        return x;
    }
    
    unsigned char chong_nhieu (unsigned char x, unsigned char y)
    {
        if (x != y)
        {
            _delay_ms (100);
            x = doc_nhiet_do (0);
            x = tinh_toan (x);
        }
        return x;
    }
    
    void LED7 (unsigned char x)
    {
        unsigned char don_vi, chuc, dem;
        dem = x;
    
        chuc = dem / 10;
        dem -= 10 * chuc;                
        don_vi = dem;
            
        PORTD = (chuc << 4) + don_vi;
    }
    
    Video demo:
    -avaRMmWauY

    Code và file Protues mô phỏng:
    HTML:
    http://www.mediafire.com/?hmmtudjqmxj
  2. haiau59 New Member

    Số bài viết: 1
    Đã được thích: 0
    Điểm thành tích: 0
    Anh ơi cho em xin sơ đồ mạch thật đi.chứ mô phỏng proteus khác với làm thật lắm.em đang tập làm cái này.mong anh giúp đỡ.em cảm ơn
  3. nogame New Member

    Số bài viết: 4
    Đã được thích: 0
    Điểm thành tích: 0
    Phần cung cấp nguồn, thạch anh, reset ... có thể tham khảo file đính kèm (hình 1)

    Các file đính kèm:

  4. thaiquangbiz New Member

    Số bài viết: 8
    Đã được thích: 0
    Điểm thành tích: 0
  5. nogame New Member

    Số bài viết: 4
    Đã được thích: 0
    Điểm thành tích: 0
  6. thaiquangbiz New Member

    Số bài viết: 8
    Đã được thích: 0
    Điểm thành tích: 0
  7. bogiaclc New Member

    Số bài viết: 11
    Đã được thích: 0
    Điểm thành tích: 0
  8. vantrungspk New Member

    Số bài viết: 1
    Đã được thích: 0
    Điểm thành tích: 0
  9. 09dv111 New Member

    Số bài viết: 6
    Đã được thích: 0
    Điểm thành tích: 0

Chia sẻ trang này