#define inc_dir trisa.f7
#define inc porta.f7
#define dec_dir trisa.f6
#define dec porta.f6
#define ok_dir trisa.f0
#define ok porta.f0
#define seg1_en_dir trisa.f1
#define seg1_en porta.f1
#define seg2_en_dir trisa.f2
#define seg2_en porta.f2
#define seg3_en_dir trisa.f3
#define seg3_en porta.f3
#define seg4_en_dir trisa.f4
#define seg4_en porta.f4
#define pressed 0
#define is ==
#define seg_data_dir trisb
#define seg_data portb
#define input 1
#define output 0
#define select_dir trisa.f5
#define select porta.f5
char segment[]={63,6,91,79,102,109,125 ,7 ,127, 111};
char min1=0,sec=0,q,e=0;
void show_time()
{ seg1_en=0 ;
seg2_en=1 ;
seg3_en=1 ;
seg4_en=1 ;
seg_data=segment[min1/10];
delay_ms(2);
seg_data=0;
seg2_en=0 ;
seg1_en=1 ;
seg3_en=1 ;
seg4_en=1 ;
seg_data=segment[min1%10];
delay_ms(2);
seg_data=0;
seg3_en=0 ;
seg2_en=1 ;
seg1_en=1 ;
seg4_en=1 ;
seg_data=segment[sec/10];
delay_ms(2);
seg_data=0;
seg4_en=0 ;
seg2_en=1 ;
seg3_en=1 ;
seg1_en=1 ;
seg_data=segment[sec%10];
delay_ms(2);
seg_data=0;
}
void setting()
{
while(1)
{
show_time();
if (select is pressed)
{
delay_ms(250);
e++;
if(e is 2)
e=0;
}
if(inc is pressed)
{ delay_ms(250);
if(e is 0){sec++; if(sec is 60)sec=0;}
if(e is 1){min1++;if(min1 is 60)min1=0; }
}
if(dec is pressed)
{ delay_ms(250);
if(e is 0){sec--; if(sec is 255)sec=59;}
if(e is 1){min1--;if(min1 is 255)min1=59; }
}
if(ok is pressed)
{delay_ms(250);
return;
}
}
}
void init()
{
adcon1=7 ;
seg_data_dir = output ;
seg1_en_dir = output ;
seg2_en_dir = output ;
seg3_en_dir = output ;
seg4_en_dir = output ;
inc_dir=input ;
dec_dir=input ;
ok_dir=input ;
select_dir =input;
seg_data=0;
}
void main()
{
init();
while(1)
{
for(min1=0;min1<60;min1++)
{
for(sec=0;sec<60;sec++)
{
for(q=0;q<50;q++)
{
show_time();
if(ok is pressed)
{ delay_ms(250);
setting();
}
}
}
}
}
}
اخي العزيز اسف الكود غير مرتب ولكن واضح مكان # وهكذا انشاء الله تكون واضحه بالنسبة لك وقم بنسخها وحفضها يمكن تطلع مضبوطه
اخي العزيز هذا الكود كامل لساعه مكونه من دقائق وثواني فقط ولاكن الفكره واحدهوباستخدام الخداع البصري تستطيع ان تفعل اي شي
وهنا في هذا المشروع يوجد اربعة ازرار
الزر الاول زيادة الرقم الموجود على السفين سكمنت
الزر الثاني ينقص الرقم الموجود على السفن سيكمنت
الزر الثالث ok
وهو يقوم بايقاف عمل الساعه في حالة الضغط عليه وفي الضغطه الثانيه يرجعها الى العمل
الزر الرابع select
بعد انت توقف الساعه بزر ok
تقوم بالضغط عليه للاختيار بين الثواني والدقائق
وايهما تريد التعديل عليها من حيث زيادتها او نقصانها
لان هنا في حالة الضبط في هذا المشروع عندما تريد ضبط الثواني تكون مفصوله عن الدقائق ولكن بالعمل مرتبطه معها
واتمنى ان تستفاد
namir.albayati