قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الالي قسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots

أدوات الموضوع

الصورة الرمزية mustafa mohamed
mustafa mohamed
:: مهندس ::
تاريخ التسجيل: Sep 2009
الدولة: السودان
المشاركات: 16
نشاط [ mustafa mohamed ]
قوة السمعة:0
قديم 06-09-2009, 01:05 PM المشاركة 1   
ha مساعدة فى مشروع ساعة رقمية Twitter FaceBook Google+



مشكوررررررررررررررررررررررررررررررررررررر عند ى مشكلة فى مشروعى وهو عبارة عن ساعة رقمية باستخدام atmega 16 و lcd والبرنامج بواسطة mikro c والمشكلة هى اننى لا استطيع ضبط الساعة ارجوك ساعدنى . هذا هو الكود( بدون الضبط) :

كود:
const char _FELO = 60; 
char counter; unsigned short sec,Min,hr,day,mth,olds; unsigned yer; unsigned char ch; int old; 
// LCD module connections sbit LCD_RS at PORTD2_bit; sbit LCD_EN at PORTD3_bit; sbit LCD_D4 at PORTD4_bit; sbit LCD_D5 at PORTD5_bit; sbit LCD_D6 at PORTD6_bit; 
sbit LCD_D7 at PORTD7_bit; 
sbit LCD_RS_Direction at DDD2_bit; 
sbit LCD_EN_Direction at DDD3_bit;
 sbit LCD_D4_Direction at DDD4_bit; 
sbit LCD_D5_Direction at DDD5_bit; 
sbit LCD_D6_Direction at DDD6_bit; 
sbit LCD_D7_Direction at DDD7_bit;
 // End LCD module connections void Timer1Overflow_ISR() org IVT_ADDR_TIMER1_OVF { if (counter >= _FELO) { if(sec>=59)/*-------------------------------------Is sec =60?*/ { sec=0; Min++;/*-----------------------------------Increament Minutes*/ if (Min>=59) { Min=0; hr++;
 if(hr>=23) { hr=0; 
day++; 
if(mth==2) { if(yer%4==0) { if(day>29) { mth++; day=1; goto Felo3;
 } } if(yer%4!=0) { if(day>28) { mth++;
 day=1; 
goto Felo3; } } } switch(mth) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: if(day>31) { mth++; day=1; 
goto Felo3;
 } break; case 4: case 6: case 9: case 11: if(day>30) { mth++; day=1;
 } break; } Felo3: if(mth>12) { yer++; mth=1;
 } hr=0; } else Min=0; } else sec=0;
 } else sec++; counter=0;
 } else counter++; // increment counter } void main() { DDRB=0; sec=58;Min=59;
hr=23;day=31;mth=12,yer=2016; SREG_I_bit = 1; // Interrupt enable TOIE1_bit = 1;
 // Timer1 overflow interrupt enable TCCR1B = 1;
 // Start timer with prescaler Lcd_Init(); 
// Initialize LCD Lcd_Cmd(_LCD_CLEAR); 
// Clear display Lcd_Cmd(_LCD_CURSOR_OFF);
 // Cursor off Lcd_Cmd(_LCD_CLEAR);
 do{ ch = hr % 10u; Lcd_Chr(1,6,48+ch); 
ch= (hr / 10u) % 10u; 
Lcd_Chr(1,5,48+ch); Lcd_Out(1, 7, ":");
 ch = Min % 10u; 
Lcd_Chr(1,9,48+ch); ch= (Min / 10u) % 10u;
 Lcd_Chr(1,8,48+ch); 
ch = sec % 10u; Lcd_Chr(1,12,48+ch);
 ch= (sec / 10u) % 10u; Lcd_Chr(1,11,48+ch);
 Lcd_Out(1, 10, ":");
 ch = day % 10u; Lcd_Chr(2,5,48+ch); 
ch= (day / 10u) % 10u;
 Lcd_Chr(2,4,48+ch); Lcd_Out(2, 6, "/");
 ch = mth % 10u; Lcd_Chr(2,8,48+ch);
 ch= (mth / 10u) % 10u; Lcd_Chr(2,7,48+ch); 
Lcd_Out(2, 9, "/"); ch = yer % 10u;
 Lcd_Chr(2,13,48+ch); 
ch= (yer / 10u) % 10u;
 Lcd_Chr(2,12,48+ch); 
ch = (yer/100u) % 10u; Lcd_Chr(2,11,48+ch); 
ch= (yer / 1000u) % 10u;
 Lcd_Chr(2,10,48+ch); 
}while (1); }

اعلانات
إضافة رد

العلامات المرجعية

«     الموضوع السابق       الموضوع التالي    »
أدوات الموضوع

الانتقال السريع إلى


الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 07:22 PM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)

Powered by vBulletin® Version 3.8.6, Copyright ©2000 - 2025