انا مبتدأ فى مجال الميكروكنتلر و لدى 7 segment موصول بالبورت b واريد كتابة برنامج يقوم بالتالى
عند الضغط على الSwitch الموصول بRA0 يقوم بالعد من 0 الى 15
عند الضغط على الSwitch الموصول بRA1 يقوم بالعد من 15 الى 0
عند الضغط على الSwitch الموصول بRA2 يقوم بعد الاعداد الزوجية
عند الضغط على الSwitch الموصول RA3 يقوم بعد الاعداد الفردية
بعد عمل الدارة على الProteus قمت بكاتبة كود للامر الاول لكن الswitch لا يستجيب و ال 7 segment يظهر اشياء غريبة
http://www.mediafire.com/?u1e5ldh0ld1qd38
كود:
void main() {
trisa=1;
trisb=0;
portb=0;
while(1){
if(porta.f0==1)
portb++;
delay_ms(100);
if(portb==15)
portb=0;
delay_ms(100);
}
}
|
السلام عليكم
اخي السفن سجمنت مبيشتغلش كده
انتا لو عايز تشغلو كده تبقي محتاج المتكامله 7447 عشان تعرف تشغلها
او لو انتا عايزها من غير متكامله
يبقي انا احب اقولك ان كل خرج في ال 7 سيجمنت له شغله
اضائه ليد او +5 او ارضي
و لازم تكون عارف كل سنه بتنور انهي ليد
يعني لكتابه الرقم 1 م علي 1 سيفن سيجمنت
عليك كتابه الكود الاتي بعد تعريف top_left
Bottom left
او تعريفهم باي شي اخر باستخدام Define
و سيكون الكود كالاتي
كود:
void One(){
top_left=1;
Bottom_left=1;
}Void Main(){
one;}
ماذا يفعل هذا الكود؟؟
علي افتراض ان الليد العلوي علي الشمال في السفن سجمنت متصل بالبورت RB0
فسنقوم بكتابه
#defiine top_left Portb.f0
اذا عند كتابه الامر
top_left=1;
تنير الليد العلويه
و هكذا مع كل سن
و اتمني ان اكود افدتك و اي حاجه تاني عايز تعرفها اسئل و انا موجود
السلام عليكم
محمد