|
ربنا يبارك فى حضرتك ويزيدك علم
حضرتك بسم الله ما شاء الله عليك
اخر طلب ويبقى كده تمام بإذن الله
انا مش محتاج مفاتيح لظبط الوقت ( مجرد العداد يعد كل ثانية عده واحدة )
انا عاوز اظبط العداد وبعدين اضع الوزن على مفتاح start فيعمل العداد ولما العداد يخلص عد يشغل الريلاي لمدة 3ثواني وبعدين يفصل و يصفر العداد مع حفظ الاعدادات طبعا
وبعدين ارفع الوزن فيفتح مفتاح start وبعدين اضع الوزن تاني على مفتاح start فتبدا عملية العد من جديد وهكذا
اتمني اكون وضحت الفكرة لحضرتك
اشكرك مرة اخي على الاهتمام بالموضوع
|
شكرا جزيلا لك أخي الكريم
تفضل لقد عدلت البرنامج
كود:
// ENG/Adalla Hygazy //
// 7SEGMENT Counter //
// PIC16F877A //
// KH 8M //
// DATA 2020/8/12 //
unsigned short mask(unsigned short num);
unsigned int SEMENT,Time,counter,X1,X2;
//----------------------------------------------------------------------------------//
//Timer0
//Prescaler 1:8; TMR0 Preload = 6; Actual Interrupt Time : 1 ms
//Place/Copy this part in declaration section
void InitTimer0(){
OPTION_REG = 0x82;
TMR0 = 6;
INTCON = 0xA0;
}
void Interrupt(){
if (TMR0IF_bit){
TMR0IF_bit = 0;
TMR0 = 6;
//Enter your code here
if( PORTD.F5==0 ){ PORTB=mask(SEMENT); }
if( PORTD.F5==1 ){ PORTB=mask(counter); PORTC.F6=1; }
else PORTC.F6=0;
}
}
//**********************************************************************************//
void main(){
InitTimer0();
TRISB=0; PORTB=0;
TRISC=0; PORTC=0;
TRISD=240; PORTD=0;
while(1){
//==============================================================================//
if( PORTD.F4==1 && counter>0 && PORTD.F5==0 ){ delay_ms(1000); SEMENT++;}
if( counter >0 && SEMENT == counter)
{
PORTC.F0=1;delay_ms(3000); PORTC.F0=0; SEMENT=0;
while(PORTD.F4==1){ }
}
if(PORTD.F5==1)
{
if(PORTD.F7==1){counter++; delay_ms(250); }
if(PORTD.F6==1){counter--; delay_ms(250); }
if( counter>9 ){ counter=0; }
if( counter<0 ){ counter=9; }
}
//===================================================================================//
}
}
unsigned short mask(unsigned short num){
switch (num){
case 0 : return 0xC0;
case 1 : return 0xF9;
case 2 : return 0xA4;
case 3 : return 0xB0;
case 4 : return 0x99;
case 5 : return 0x92;
case 6 : return 0x82;
case 7 : return 0xF8;
case 8 : return 0x80;
case 9 : return 0x90;
}
}
البرنامج يعمل كما طلبت
تحميل المشروع https://drive.google.com/drive/folde...rU?usp=sharing
متابع معك لو هناك تعديل
بالتوفيق