السلام عليكم ورحمه الله وبركاته
ابحث منذ فتره قريبه عن طريقه تركيب دائره تقوم بجمع أصوات الناخبين وعرضها على شاشه الـ 7 segments عبر برنامج proteus
كون هذا هو مشروعي في digital logic design
. المشروع عباره عن
الدخول ( اربعه) اصوات يتم التعويض عن
الرقم 1 = نعم
الرقم 0 = لا
ويتم اضهار النتيجه على شاشه seven segments
كمثال اذا كان
الدخول
1111 فـــأن الرقم الظاهر على شاشه الـ seven segments يكون أربعه لان عدد الاحاد هنا اربعه احاد . وهكذا
يتم احتساب كم عدد الـ 1 في الـ الدخول input
هل من طريقه لعمل ذلك ؟؟
|
السلام عليكم ورحمه الله
تفضل أخى لقد تم عمل مشروع للتصويت الإلكترونى ..
يوجد اربع مستخدمين مجرد الضغط على أي مفتاح من الأربعه تظهر النتيجه واحد على الشاشه ويتوقف المفتاح اللذى تم الضغط عليه حتى لا يستطيع التصويت مرة أخرة .. وايضاااا لو تم الضغط على أي مفتاح أخر يذداد عدد المصوتين الى إثنين ..
وهناك ميزة مهمه لو تم الضغط على أحدى المفاتيح الأربعه واستمر بالضغط لا يؤثر على باقى المفاتيح وتستجيب لعمليه التصويت ..
بمعنى لو تم تعليق أى مفتاح من الأربعه تستجيب باقى المفاتيح لعمليه التصويت .. حتى لو تم تعليق 3 مفاتيح المفتاح الرابع يستجيب لعمليه التصويت ..
وا]ضااا المفتاح يقوم بعمليه تصويت مرة واحدة ويتوقف لحين أنتهاء التصويت .. لكى لا يؤثر على عمليه التصويت ..
...
وهناك مفتاح مخصص لإعادة عمليه التصويت وتصفير الشاشات ..
اليك صورة للدائرة .. وايضااا المشروع كامل للتحميل ..
المشروع كامل للتحميل ....
https://drive.google.com/file/d/0Bxg...ew?usp=sharing
كود البرنامج.. تم اقتباس جزئ من الكود من أحد الأخوة هنا فى المنتدى وتم التعديل عليه ليناسب عمل الدائرة ..
كود:
char numbre[]={63,6,91,79,102,109,125,7,127,111};
float n=0;
unsigned int e=0,x1=0,x2=0,x3=0,x4=0;
char a0,a1,a10,a100;
void main() {
trisb=0b0000000; portb=0;
trisc=0; portc=0;
trise=0; porte=0;
trisd=15; portd=0;
while(1)
{
if(portd.f0==1&&x1==0){n=n+10; x1=1; }
if(portd.f1==1&&x2==0){n=n+10; x2=1; }
if(portd.f2==1&&x3==0){n=n+10; x3=1; }
if(portd.f3==1&&x4==0){n=n+10; x4=1; }
//*************************************//
e=n/100; a100=e%10;
e=n/10; a10=e%10;
e=n; a1=e%10;
e=n*10; a0=e%10;
portb=0b00011111;
portc=numbre[0];
delay_ms(5);
portb=0b00101111;
portc=numbre[0];
delay_ms(5);
portb=0b00110111;
portc=numbre[a0];
delay_ms(5);
portb=0b00111011;
portc=numbre[a1];
portc.f7=1;
delay_ms(5);
portb=0b00111101;
portc=numbre[a10];
delay_ms(5);
portb=0b00111110;
portc=numbre[a100];
delay_ms(5);
}
}
تحياتى لك وبالتوفيق ..
.................................................. ................
اللهم انفعنا بما علمتنا وعلمنا ما ينفعنا وزدنا علما
..