با کمک یه سری از بچه های این انجمن و مطالب مفید موجود در این انجمن و اینترنت تونستم یه سری چیزها یاد بگیرم و این هم یه پروژه کامل برای اکواریوم
این پروژه رو ساختم و الان داره به صورت کامل کار می کنه ( فعلا )
در این برنامه از سه کلید استفاده کردم برای تنظیم ساعت ودقیقه و یک کلید هم برای روشن کردن مداوم مدار
البته این برنامه رو تنظیم کردم که از صبح ساعت 9 مدار کار می کنه و به اعزای هر 25 دقیقه ( 0تا5 و 30 تا 35 دقیق ) یک رله رو وصل می کنه
اطلاعاتی که می تونید از این پروژه کسب کنید
1- وصل کردن کلید به میکرو
2- کار با تایمر و ساعت
عکس از محیط برنامه در پروتوس :

دانلود سورس کد برنامه + فایل شبیه سازی شده آن با پروتوس
http://uplod.ir/x33inzfmg8hm/akvariom.rar.htm
در فایل شبیه ساز برای این که مدار به درستی کار کنه سه تا خط زرد رو وصل کردم توجه داشته باشید که هنگام طراحی اون خط زردها رو نباید طراحی کنید
سورس کد برنامه :
باز اینجا از تمام کسانی که راهنماییم کردن ممنون هستم
و از دوستانی که نظر و یا پیشنهاد و از همه مهمتر راهنمایی درباره نحویه کدنویسی و ... دارن ممنون می شم بگید
این پروژه رو ساختم و الان داره به صورت کامل کار می کنه ( فعلا )
در این برنامه از سه کلید استفاده کردم برای تنظیم ساعت ودقیقه و یک کلید هم برای روشن کردن مداوم مدار
البته این برنامه رو تنظیم کردم که از صبح ساعت 9 مدار کار می کنه و به اعزای هر 25 دقیقه ( 0تا5 و 30 تا 35 دقیق ) یک رله رو وصل می کنه
اطلاعاتی که می تونید از این پروژه کسب کنید
1- وصل کردن کلید به میکرو
2- کار با تایمر و ساعت
عکس از محیط برنامه در پروتوس :

دانلود سورس کد برنامه + فایل شبیه سازی شده آن با پروتوس
http://uplod.ir/x33inzfmg8hm/akvariom.rar.htm
در فایل شبیه ساز برای این که مدار به درستی کار کنه سه تا خط زرد رو وصل کردم توجه داشته باشید که هنگام طراحی اون خط زردها رو نباید طراحی کنید
سورس کد برنامه :
کد:
#include <mega8.h> #include <delay.h> #define key_h PINB.3 #define key_m PINB.1 #define key_s PINB.2 #define led_key PORTB.4 #define led_time PORTD.0 #define relay1 PORTB.0 unsigned char h,m,s,i; void stop(void) { i=0; led_key=0; relay1=0; } interrupt [TIM2_OVF] void timer2_ovf_isr(void) { if(s==59) { s=0; if(m==59) { m=0; h++; if(h==24)h=0; } else m++; } else s++; led_time=~led_time; if(i==0) { if(((h>8)&(h<14)|(h>15)&(h<22))) { if((m>0)&(m<=5)|(m>30)&(m<=35)) { relay1=1; } else relay1=0; } else relay1=0; } } void main(void) { i=0; h=0; m=0; s=0; ASSR=0x08; TCCR2=0x05; TCNT2=0x00; OCR2=0x00; ACSR=0x80; DDRB.0=1; DDRB.1=0; DDRB.2=0; DDRB.3=0; DDRB.4=1; DDRD.0=1; PORTB.1=1; PORTB.2=1; PORTB.3=1; // Global enable interrupts #asm("sei") while (1) { if(key_h==0) { stop(); led_key=1; while(key_h==0); delay_ms(10); h++; if(h==24)h=0; led_key=0; } else if(key_m==0) { stop(); led_key=1; while(key_m==0); delay_ms(10); m++; if(m==60)m=0; led_key=0; } else if(key_s==0) { while(key_s==0); delay_ms(10); if(i==0) { i=1; led_key=1; relay1=1; } else { stop(); } } } }
باز اینجا از تمام کسانی که راهنماییم کردن ممنون هستم
و از دوستانی که نظر و یا پیشنهاد و از همه مهمتر راهنمایی درباره نحویه کدنویسی و ... دارن ممنون می شم بگید
دیدگاه