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 LCD

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

  1. KN Servant. Servant.

    Số bài viết: 1,291
    Đã được thích: 3
    Điểm thành tích: 0
    BÁO CÁO GIỮA KÌ
    1. Họ và tên: NGUYỄN NGỌC TÂN
    2. MSSV: 06111091
    3. Nội dung báo cáo:
    Sử dụng bộ KIT thí nghiệm để đo nhiệt độ ở phòng và xuất ra màn hình LCD. Đồng thời điều khiển các máy quạt mà tượng trưng là các đèn LED.
    1. Tiến trình thực hiện
    Khởi tạo:




    [IMG]









    Define





    [IMG]




















    Code :
    Đọc và cài đặt nhiệt độ




    [IMG]






    Hiển thị nhiệt độ và tên người thực hiện

    [IMG]

    Tài liệu các file đã thực hiện
    http://www.mediafire.com/file/4jzatmzjcdn/Bao cao giua ki.rar
  2. KN Servant. Servant.

    Số bài viết: 1,291
    Đã được thích: 3
    Điểm thành tích: 0
    Hôm nay mình đã báo cáo.

    BÁO CÁO GIỮA KÌ



    1. Họ và tên: NGUYỄN NGỌC TÂN
    2. MSSV: 06111091
    3. Nội dung báo cáo:
    Sử dụng bộ KIT thí nghiệm để đo nhiệt độ ở phòng và xuất ra màn hình LCD. Đồng thời điều khiển các máy quạt mà tượng trưng là các đèn LED.

    • Điểm mạnh
    • Có thể cài đặt nhiệt độ báo động
    • Có bốn mức để sử dụng các trạng thái kết hợp của các quạt.
    • Nhiệt độ cao: 2 Quạt đều chạy
    • Nhiệt độ khá cao: Quạt 1 công suất lớn hơn chạy
    • Nhiệt độ bình thường : Quạt 2 công suất nhỏ hơn chạy
    • Nhiệt độ thấp : 2 Quạt không chạy.
    • Có thể đo được nhiệt độ phòng tuy LM35 không ổn định
    • Điểm yếu :
    • Chưa thân thiện với người dùng, chú trọng tên người thực hiện
    1. Tiến trình thực hiện
    Khởi tạo:




    [IMG]










    /*****************************************************
    NỘI DUNG CODE
    Tên và define ban đầu

    Project : Bao cao giua ki
    Version :
    Date : 6/20/2009
    Author : Tanboy Servant
    Company : CDT SPKT
    Comments: Do luong nhiet do qua LM35 và KIT ATMEGA8


    Chip type : ATmega8
    Program type : Application
    Clock frequency : 7.372800 MHz
    Memory model : Small
    External SRAM size : 0
    Data Stack size : 256
    *****************************************************/

    #include <mega8.h>

    // Alphanumeric LCD Module functions
    #asm
    .equ __lcd_port=0x12 ;PORTD // Khai bao PORTD
    #endasm
    #include <lcd.h>
    #include <delay.h>
    #include <stdlib.h> // Xuat chuoi
    #include <stdio.h> // Giao tiep may tinh

    #define ADC_VREF_TYPE 0xE0
    #define Quat1 PORTB.1
    #define Quat2 PORTB.2
    #define dk PIND.3
    #define on 0
    #define off 1


    Khai báo biến
    void main(void)
    {
    // Declare your local variables here
    float nd,ndcd; // nhiet do thuc va nhiet do cai dat
    char ndht[12],ndhtcd[12] ; // nhiet do thuc va nhiet do cai dat hien thi
    // Input/Output Ports initialization
    // Port B initialization
    // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=Out Func1=Out Func0=In
    // State7=T State6=T State5=T State4=T State3=T State2=0 State1=0 State0=T
    PORTB=0x00;
    DDRB=0x06;

    Đọc nhiệt độ và cài đặt nhiệt độ ban đầu:
    while (1)
    {
    ndcd=read_adc(0)/2.55; // Do ADC 8 bit nen chia 2.55
    ftoa(ndcd,0,ndhtcd);
    nd=read_adc(1); // Do dien ap tham chieu la 2.56 nen khong can nhan chia
    ftoa(nd,0,ndht);

    if (dk==on) // Nhan giu đe cai dat nhiet do ban dau
    {

    lcd_clear();
    lcd_putsf("NHIET DO CAI DAT ");
    lcd_puts(ndhtcd);
    lcd_putsf( "oC" );
    delay_ms(500);
    }

    Xuất ra nhiệt độ thực qua từng trường hợp và tên người thiết kế
    else
    {

    if(nd>=ndcd)
    {
    Quat1 = on;
    Quat2 = on;
    lcd_clear();
    lcd_putsf(" CANH BAO NHIET DO CAO ");
    lcd_puts(ndht);
    lcd_putsf(" oC");
    delay_ms(2000);
    }
    else if (nd>=(ndcd-5))
    {
    Quat1 = on;
    Quat2 = off;
    lcd_clear();
    lcd_putsf("NHIET DO KHA CAO ");
    lcd_puts(ndht);
    lcd_putsf(" oC");
    delay_ms(2000);
    }
    else if (nd>=(ndcd-15))
    {
    Quat1= off;
    Quat2= on;
    lcd_clear();
    lcd_putsf("NHIET DO BINH THUONG ");
    lcd_puts(ndht);
    lcd_putsf(" oC");
    delay_ms(2000);
    }
    else
    {
    Quat1= off;
    Quat2= off;
    lcd_clear();
    lcd_putsf("NHIET DO KHA THAP ");
    lcd_puts(ndht);
    lcd_putsf(" oC");
    delay_ms(2000);
    }
    // Ban co the hien thi noi dung nay mot lan cho tat ca bang cach dua doan code nay len truoc ham while(1)
    lcd_clear();
    lcd_putsf("NGUOI THIET KE ");
    lcd_putsf("NGUYEN NGOC TAN");
    delay_ms(2000);
    lcd_clear();
    lcd_putsf(" MSSV ");
    lcd_putsf(" 06111091 ");
    delay_ms(2000);
    }

    };
    }

    Code ở đây
    http://www.mediafire.com/file/2zyf2mjjwdw/Nguyen Ngoc Tan_06111091.rar

    Hình ảnh tuy không thật tốt
    [IMG]
    [IMG]
  3. oph Guest

    Số bài viết: 0
    Đã được thích: 0
    Điểm thành tích: 0
    bạn cho mình hỏi ham sau có ý nghĩa gì vậy :
    #asm
    .equ __lcd_port=0x12 ;PORTD

    thanks!!!!!!!!!!!!:cutesmile:
  4. KN Servant. Servant.

    Số bài viết: 1,291
    Đã được thích: 3
    Điểm thành tích: 0
    Theo mình biết thì đó cho biết là bạn đang khai báo PORTD.
    Nếu sô12 thay bằng 15 thì bạn đang khai báo PORTDB.
  5. hoangleanh87 New Member

    Số bài viết: 244
    Đã được thích: 5
    Điểm thành tích: 0
    Bài của bạn thật hay, bạn có thể viết kỷ hơn tí, các hình ảnh rỏ hơn ...để làm thành 1 TUT hoàn chỉnh và di chuyển vào Sub TUT đã hoàn tất, sẽ rất có ý nghĩa đó bạn.
  6. KN Servant. Servant.

    Số bài viết: 1,291
    Đã được thích: 3
    Điểm thành tích: 0
    Cám ơn anh. Tại em bận quá nên bài viết rất sơ sài.
    Em dem may về quê và đang chờ ngày ra quân MHX nên hơi tệ tí.
    Em sẽ cố gắng mong anh chỉ điểm để em hoàn thành bài viết tốt hơn
  7. hoacomaybuon New Member

    Số bài viết: 2
    Đã được thích: 0
    Điểm thành tích: 0
    cảm ơn bạn nhưng mình cũng không rõ lắm lm35 bạn có thể nêu rõ hơn về nguyên lý làm việc được không mình sắp phải báo cáo nhưng minh hiểu về lm35 còn rất kém
  8. KN Servant. Servant.

    Số bài viết: 1,291
    Đã được thích: 3
    Điểm thành tích: 0
    LM35 xuất ra áp tùy theo nhiệt độ nó cảm nhận được.
    Nói chung nó xuất ra Analog bạn cần sử dụng ADC để có thể sử dụng cho VĐK.
    Chúc bạn thành công
  9. minhhung_spk New Member

    Số bài viết: 24
    Đã được thích: 0
    Điểm thành tích: 1
  10. KN Servant. Servant.

    Số bài viết: 1,291
    Đã được thích: 3
    Điểm thành tích: 0
    Cài này thì ai cũng biết rùi.
    Quan trọng là code thui.
    Đó mới là ý tưởng riêng.
    Lúc trước làm nhưng chưa hiểu lắm.
    Bây giờ ok. Bạn nào thích mình sẽ viết một bài về đo nhiệt độ xuất LCD. (Dùng LM35 đo nhiệt độ 5 kênh. vì môt kênh phải sử dụng để đặt nhiệt độ).
    Tạm thời bạn mình đã mượn LCD nên chưa demo được.
    Chúc vui
  11. trucly869 New Member

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

    Số bài viết: 8
    Đã được thích: 0
    Điểm thành tích: 0
    Bạn có thể giúp mình viết đoạn code chương trình chạy chữ trên LCD không?
    yêu cầu như sau:
    1. dòng 1 chạy từ phải sang trái
    2. dòng 2 chạy ngược lại
    với
    dòng 1: " WELLCOME TO VI XU LY"
    dòng 2: " ĐỒ ÁN CUỐI KỲ" (hiển thị dòng 2 có dấu)
    cảm ơn bạn trước nhe!

Chia sẻ trang này