 |
:: عضو ذهبي ::
تاريخ التسجيل: Apr 2011
الدولة: مصر .. محافظة دمياط
المشاركات: 1,688
|
|
نشاط [ عبدالله حجازى ]
قوة السمعة:110
|
|
30-05-2020, 03:38 AM
المشاركة 1
|
|
السلام عليكم ورحمه الله وبركاته
كل عام وانتم بخير
اقدم لكلم
عداد الكتروني مذود بشاشة رقمية ..
يستخدم في مجال إعادة لف المحركات ...
المخطط الإلكتروني للدائرة

توجد 6 مفاتيح لضبط العداد مخصصه لإختيار عدد اللفات اللتي نريد لفها علي الماكينه
يوجد طرفين لحساس العدد ..
مميزات العداد ..
سهولة اختيار رقم العدد اللذي نريده
تحكم كامل في محرك مكينه اللف
حفظ عدد اللفات المنفذة
أقصي عدد للعداد هو :9000 :
سماعة تنبيه عند انتهاء العد
لمبية بيان لتوضيح اكتمال العد
كود البرنامج
كود:
#define BEZR_ON porte.f1=1; delay_ms(250); porte.f1=0; delay_ms(150);
#define prgram_ON porte.f2=1; delay_ms(250); porte.f2=0; delay_ms(150);
unsigned short mask(unsigned short num);
unsigned int w1=0,e1=0,m1=0,a1=0,A=0;
unsigned int ep1=0,ep2=0,ep3=0,ep4,ep5,ep6,ep7,ep8=0;
void interrupt(){
portc=128;
portb=mask(a1);
delay_ms(1);
portc=64;
portb=mask(m1);
delay_ms(1);
portc=32;
portb=mask(e1);
delay_ms(1);
portc=16;
portb=mask(w1);
delay_ms(1);
INTCON=0b00100000;
TMR0=0;
}
//**************-------------****************//
void main() {
trisb=0; portb=0;
trisd=0; portd=0;
trisc=15; portc=0;
trisa=0; porta=0;
trise=0; porte=0;
/*eeprom_write(1,0);
eeprom_write(2,0);
eeprom_write(3,0);
eeprom_write(4,0);
eeprom_write(5,0);
eeprom_write(6,0);
eeprom_write(7,0);
eeprom_write(8,0);*/
OPTION_REG=0b10000101;
INTCON=0b10100000;
TMR0=217;
w1 = eeprom_read(1); delay_ms(1);
e1 = eeprom_read(2); delay_ms(1);
m1 = eeprom_read(3); delay_ms(1);
a1 = eeprom_read(4); delay_ms(1);
BEZR_ON prgram_ON BEZR_ON
prgram_ON BEZR_ON prgram_ON
porte.f2 = 1;
loop1:
//*******************----------( 1 )-----------**********************//
while(1){
//******************** -- ÊÕÝíÑ ÇáÚÏÇÏÇÊ áÈÏÁ ÇáÚÏ ãä ÌÏíÏ --*******************//
if(portd.f2==1){ BEZR_ON delay_ms(2000); BEZR_ON if(portd.f2==1){ //
a1=0 , m1=0, w1=0, e1=0;
ep1=0, ep2=0, ep3=0, ep4=0;
ep5=0, ep6=0, ep7=0, ep8=0;
eeprom_write(1,ep1); delay_ms(1); eeprom_write(2,ep2); delay_ms(1);
eeprom_write(3,ep3); delay_ms(1); eeprom_write(4,ep4); delay_ms(1);
eeprom_write(5,ep5); delay_ms(1); eeprom_write(6,ep6); delay_ms(1);
eeprom_write(7,ep7); delay_ms(1); eeprom_write(8,ep8); delay_ms(1);
}
}
//*************************** -- END -- **************************************//
if( portd.f6==1 ) { BEZR_ON w1++; ep1++; delay_ms(300); eeprom_write(1,ep1); delay_ms(1); }
if( portd.f5==1 ) { BEZR_ON e1++; ep2++; delay_ms(300); eeprom_write(2,ep2); delay_ms(1); }
if( portd.f4==1 ) { BEZR_ON m1++; ep3++; delay_ms(300); eeprom_write(3,ep3); delay_ms(1); }
if( portd.f3==1 ) { BEZR_ON a1++; ep4++; delay_ms(300); eeprom_write(4,ep4); delay_ms(1); }
//**************-----------------------------------------*************//
if( a1 >9 ) { a1=0; }
if( m1 >9 ) { m1=0; }
if( e1 >9 ) { e1=0; }
if( w1 >9 ) { w1=0; }
ep1 = w1; ep2 = e1;
ep3 = m1; ep4 = a1;
if( portd.f7==1 ) { BEZR_ON goto loop; delay_ms(300); }
}
//***************************-- END --*********************************//
loop:
a1=0,m1=0,e1=0,w1=0;
ep5 = eeprom_read(5); delay_ms(1);
ep6 = eeprom_read(6); delay_ms(1);
ep7 = eeprom_read(7); delay_ms(1);
ep8 = eeprom_read(8); delay_ms(1);
w1=ep5; e1=ep6; m1=ep7; a1=ep8; delay_ms(2);
//**********************------( 2 )-------********************************/
BEZR_ON BEZR_ON
//----- ÝäßÔä ÚÏÇÏ ÊÕÇÚÏì ãÚ ÚÝÙ Þíã ÇáãÊÛíÑÇÊ Ýì ÐÇßÑÉ ÇáÑæã --------------------//
start:
porte.f0=1;
while(1){
if(portd.f1==1){while(1){if(portd.f1==0){ w1++; ep5++; eeprom_write(5,ep5); delay_ms(1); goto start;}}}
if( w1==10 && ep5==10 ){ e1++; ep6++; eeprom_write(6,ep6) ;delay_ms(1); ep5=0; w1=0;} /*eeprom_write //
if( e1==10 && ep6==10 ){ m1++; ep7++; eeprom_write(7,ep7); delay_ms(1); ep6=0; e1=0;}
if( m1==10 && ep7==10 ){ a1++; ep8++; eeprom_write(8,ep8) ;delay_ms(1); ep7=0; m1=0;} /*m1 = eeprom_read(0);//ÇãÑ ÇáÞÑÃÉ ãä ÇáÑæã*/
if(a1==10 && ep7==10)
{
BEZR_ON BEZR_ON
a1=0; m1=0; e1=0; w1=0 ;
ep7=0; ep7=0; ep7=0; ep7=0;
}
//*********************************************************//
if( ep1==w1 && ep2 == e1 && ep3 == m1 && ep4 == a1)
{
eeprom_write(1,ep1); delay_ms(1); eeprom_write(2,ep2); delay_ms(1);
eeprom_write(3,ep3); delay_ms(1); eeprom_write(4,ep4); delay_ms(1);
porte.f0 = 0;
BEZR_ON BEZR_ON BEZR_ON BEZR_ON
goto loop1;
}
//******************** -- ÊÕÝíÑ ÇáÚÏÇÏÇÊ áÈÏÁ ÇáÚÏ ãä ÌÏíÏ --*******************//
if(portd.f2==1){BEZR_ON delay_ms(3000); BEZR_ON if(portc.f2==0){goto start;}; if(portc.f6==1){ //
a1=0; m1=0; w1=0; e1=0;
ep1 = 0; ep2 = 0; ep3 = 0; ep4 =0 ;
ep5 = 0; ep6 = 0; ep7 = 0; ep8 =0 ;
eeprom_write(2,ep2); eeprom_write(3,ep3);
eeprom_write(1,ep1); eeprom_write(4,ep4);
eeprom_write(5,ep5); eeprom_write(6,ep6);
eeprom_write(7,ep7); eeprom_write(8,ep8);
porte.f0=0; goto loop; };
}
}
}
//***************************-- END --*********************************//
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...Pt?usp=sharing
بالتوفيق
|