Chƣơng trình viết cho bộđiềukhiển

Một phần của tài liệu Nghiên cứu giải pháp tăng hiệu suất sử dụng năng lượng điện mặt trời để chiếu sáng đường nội bộ trong Trường Đại học Nha Trang (Trang 94)

Trích một phần code của chƣơng trình: Date : 2/5/2014

Author : Nguyen Quang Hai

Company : Khoa Dien - Dien Tu, DHNT Comments: DO AN TOT NGHIEP

Chip type : ATmega32 Program type : Application

AVR Core Clock frequency: 8.000000 MHz Memory model : Small

External RAM size : 0 Data Stack size : 512

*****************************************************/ ……….. //khai bao bien luu du lieu khi mat dien

eeprom long luudatangaymo[7][5] = { 0}; // luu tru 7 ngay, 4 gia tri la 2 so cho ngay va 2 so cho thang

eeprom long luudatagiomo[7][5] = {0}; // luu tru 7 ngay, 4 gia tri: gio va phut eeprom long luudatadienapmo[7][5]= {0};

eeprom long luudatangaytat[7][5]={0}; // luu tru 7 ngay, 4 gia tri la 2 so cho ngay va 2 so cho thang

eeprom long luudatadienaptat[7][5]={0};

eeprom int luungaythu; //luu lai ngay hien tai

eeprom int luutrudaluudulieu = 0; // tin hieu bao da mat dien truoc do va cho phep lay lai du lieu

……….. //khai bao bien ma tran luu tru du lieu

//---truoc khi bat den----

long datangaymo[7][5]; // luu tru 7 ngay, 4 gia tri la 2 so cho ngay va 2 so cho thang long datagiomo[7][5]; // luu tru 7 ngay, 4 gia tri: gio va phut

long datadienapmo[7][5]; // luu tru 7 ngay, 4 so dien ap //---truoc khi tat den----

long datangaytat[7][5]; // luu tru 7 ngay, 4 gia tri la 2 so cho ngay va 2 so cho thang long datagiotat[7][5]; // luu tru 7 ngay, 4 gia tri: gio va phut

long datadienaptat[7][5]; // luu tru 7 ngay, 4 so dien ap

……….. void hienthigio() //hien thi gio len LCD

{

rtc_get_time (&gio, &phut, &giay); lcd_gotoxy (0,1);

lcd_putchar (' '); lcd_chuyendoi(gio); lcd_putchar (':'); lcd_chuyendoi(phut);

lcd_putchar (':'); lcd_chuyendoi(giay); }

void hienthingay() //hien thi ngay len LCD {

rtc_get_date (&ngay, &thang, &nam); lcd_gotoxy (9,1); lcd_putchar (' '); lcd_chuyendoi(ngay); lcd_putchar ('/'); lcd_chuyendoi(thang); lcd_putchar ('/'); lcd_chuyendoi(nam); lcd_putchar (' '); } ……… if( SLdauvao < 300 && kiemtradaduocluumo == 0)

// khi dien ap solar nho hon 3V bat den

{

delay_ms(500);

kiemtradaduocluumo = 1; ngaythu = ngaythu + 1;

if (ngaythu == 8) {ngaythu = 1;}

savedatamo(); //luu du lieu truoc khi bat den

{

nguonDC = 0; // cat nguon DC tai = 0; // gat tai qua acu

}

if (sosanh < 1100) //khi acu can điện {

tai = 1; // gat tai qua DC

nguonDC = 1; // dong nguon DC }

}

if (sosanh < 1100) //khi dien ap acu can

{

if (SLdauvao < 300) //neu la ban dem

{ tai = 1; // gat tai qua nguon DC

nguonDC = 1; // dong nguon DC

if( modaduocluu == 1 && kiemtradaduocluutat == 0)

// neu Acu can dien tien hanh ghi lai thoi diem nay

{

kiemtradaduocluutat = 1;

if(kiemtradaduocluumo == 1) {savedatatat();}

// neu du lieu gio mo cua ngay duoc luu thi moi luu gio tat

}

Sau khi viết xong code cho bộ điều khiển ta tiến hành dich ra file .hex và nạp file này cho Atmega16 bằng phần mềm AVR studio 4thông qua mạch nạp STK500 có bán trên thì trƣờng.Sau đó cho bộ điều khiển hoạt động để kiểm tra chức năng và sữa lỗi.

Một phần của tài liệu Nghiên cứu giải pháp tăng hiệu suất sử dụng năng lượng điện mặt trời để chiếu sáng đường nội bộ trong Trường Đại học Nha Trang (Trang 94)