قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الالي قسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots

   

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 10-07-2013, 02:09 AM المشاركة 25   
افتراضي



ويا حبذا لو تشرح لنا كيفية ضبط إعدادات pic16f628a للعمل على المذبذب الداخلي بدلاً من الخارجي

أخى الكريم

شكرا جزيلا

إليك الإجابة بشىء من التفصيل :

أمر الإعدادات (التهيئة) Config
الصيغة :
Config { configuration fuse settings }
الغرض :
تمكين Enable أو عدم تمكين (تعطيل) Disable بتات تسمى مصهرات fuses ضبط (أعداد) الميكروكونترولر PIC المستخدم .
العوامل :
configuration fuse settings : تختلف من جهاز إلى جهاز آخر ، ولكن يوجد إعدادات قياسية لمعظم أجهزة الميكروكونترولر PIC ( للتفاصيل يتم الرجوع إلى الداتا شيت ) .

مثال :
الميكروكونترولر PIC16F628 :
يوجد طريقتان لكتابة مصهرات التهيئة كما يلى :

كود:
CONFIG $3FFC OR Config INTOSC_ON , WDT_OFF, PWRTE_ON, BODEN_OFF, LVP_OFF,CP_OFF
عمليا يتم تحديد المصهرات أثناء البرمجة من خلال برمجيات جهاز البرمجة ، مثل ICPROG كما فى الشكل التالى :







كما فى الشكل اختيار نوع المذبذب الداخلى intRC I / O ، يعنى استخدام المذبذب الداخلى نوع RC(intRC) مع استخدام الأطراف RA6 و RA7 كأطراف دخل / خرج I/O .

اعلانات

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 10-07-2013, 03:23 AM المشاركة 26   
افتراضي


المشروع السادس دائرة إضاءة السلم أتوماتيكيا ، مؤقت تأخير الفصل
بداية التعامل مع المفاتيح الضاغطة وعبارة الشرط IF..THEN

سوف يكون هذا أول اتصال للميكروكونترولر PICمع العالم الخارجى ، فى البداية يجب فهم طريقة توصيل المفاتيح الضاغطة إلى الميكروكونترولر PIC كمداخل طرفية . يوجد فى الأساس طريقتين لتوصيل المفاتيح ، الطريقة الأولى هى جعل طرف التوصيل دائما عند المنطق المرتفع "1" أى 5V وعند الضغط على المفتاح يتحول الطرف إلى الحالة المنطقية المنخفضة "0" أى 0V . والطريقة الثانية يكون الطرف دائما عند الحالة المنطقية المنخفضة ، وعند الضغط على المفتاح يتحول إلى الحالة المنطقية المرتفعة كما فى الشكل التالى :










العبارة IF…THEN :
تستخدم هذه العبارة بمثابة القيد (الشرط) ، لذلك تسمى "عبارة الشرط" ، فإذا كانت عبارة IF صحيحة true عندئذ يتم تنفيذ العمليات التى تلى THEN ، أما إذا كانت غير صحيحة falseيتم تخطى العمليات التى تلى THEN والانتقال إلى السطر الذى يلىENDIF .
فيما يلى الأشكال المختلفة لعبارة الشرط :
الصيغة الأولى :

كود:
IFPORTB.0= 0 THEN Loop1 ;If the input PORTB.0islogic zero => go to label "Loop1" IF PORTB.6= 1 THEN Loop2 ;If the input PORTB.6 islogic 1 => go to label "Loop2"
الصيغة الثانية :

كود:
IF PORTB.0 =0 THEN; Ifthe comparison is trueexecutesall content HIGH PORTA.2 ; lies between THEN andENDIF PAUSE 1000 LOW PORTA.2 ENDIF
الصيغة الثالثة :
كود:
IF PORTB.3 =0 THEN ;If the comparison is true ;executes the contents betweenTHEN and ELSE ……. ELSE;and if false executes the contents between ELSE and ENDIF ……. ENDIF
الصيغة الرابعة :
كود:
IF repeated > 35 THEN start ; If repeated variable is greater than 35 run start ;and can use other operators: =,! = (NOT EQUAL), <,>, <=,> =
الصيغة الخامسة :
كود:
IF PORTA.1=0 AND PORTA.2=0 THEN prog ;If PORTA.1 and PORTA.2 are zero run prog, also supports other operators ;such as OR, XOR, NOT.
الدائرة الكهربية :







فيما يلى برنامج لغة البسيك لقراءة المفتاح الضاغط :


كود:
Device = 16F628A ; Produce code for a 16F628a device Declare Xtal = 4 ; 4MHz oscillator All_Digital = True ;Or CMCON = 7 converts all port A on Digital Start: If PORTB.3 = 0 Then PowerOn ; asks if PORTB.3 = 0 to go to PowerOn GoTo Start ; go to Start PowerOn: High PORTA.1 ; turn on the led DelayMS 5000 ; wait 5 second Low PORTA.1 ; turn off the LED GoTo Start ; go Start End; end of programming
فى هذا البرنامج :
عند الضغط على المفتاح الضاغط If PORTB.3 = 0 عندئذ Then يتم الذهاب إلى العنوان PowerOn حيث يتم إضاءة الليد المتصل بالطرف RA1(High PORTA.1) والانتظار للفترة المحدد فى زمن التأخير DelayMS 5000 بعد ذلك يتم إطفاء الليد Low PORTA.1( تصلح كدائرة لإضاءة سلم المنزل ، ومؤقت تأخير الفصل OFF-Delay Timer ، مع تغيير زمن التأخير حسب الحاجة ) .

بعض المسائل المحددة بأجهزة الميكروكونترولر PIC :
قبل الخوض فى أى مشروع ، يجب قراءة ورقة الداتا شيت الخاصة بالجهاز المحدد والذى يتم استخدامه . ونظرا لأن بعض الأجهزة لديها ميزات والتى قد تتداخل مع العمليات المتوقعة للطرف .
الميكروكونترولر PIC16F628هو مثال على هذا. هذه الأجهزة لديها مقارنات تناظرية على المنفذ PORTA. عندما بداية توصيل القدرة للجهاز يتم تعيين المنفذ PORTA فى الوضع التناظرى . هذا يجعل أطراف المنفذ PORTAتعمل بطريقة غريبة. لتغيير الأطراف إلى أطراف رقمية ، ببساطة يتم إضافة السطر التالى بالقرب من الجزء الأمامى من برنامج لغة Basicالخاص بك ، أو قبل أن يتم الوصول إلى أى من الأطراف :

كود:
CMCON = 7


أى جهاز
به مداخل تناظرية سوف يكون فى بداية توصيل فى النظام التناظرى . إذا كنت تنوى استخدامها كأنواع رقمية يجب عليك تعيين الأطراف لتكون رقمية باستخدام سطر التعليمات البرمجية التالى : -

كود:
Declare All_Digital = True

هذا السطر سوف يعين الأطراف التناظرية لتكون رقمية فى أى جهاز متوافق .
الطريقة البديلة ، يمكنك معالجة سجلات الأجهزة مباشرة كما يلى : -

كود:
ADCON1 = 7


التعديل الأخير تم بواسطة : F.Abdelaziz بتاريخ 10-07-2013 الساعة 03:57 AM
اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 10-07-2013, 12:56 PM المشاركة 27   
افتراضي


المشروع الثامن عداد ثنائى للنبضات ومنع ظهور (علاج) ارتداد المفتاح
فى هذا المشروع سوف يتم عمل عداد ثنائى ، وسوف يتم إظهار النتيجة فى شكل كود ثنائى من خلال 8 ليدات متصلة بالمنفذ PORTB . سوف نحتاح منع ظهور تأثير الارتداد فى المفتاح ، لأنه عند الضغط على المفتاح الضاغط (الزر) للحظة فإن الميكروكونترولر PIC يكرر هذه العملية حتى يتم تحرير الزر ، وهو يؤدى إلى حدوث أخطاء بالبرنامج إذا لم يتم منع ظهور هذه الارتدادات .
المكونات :
· 8 ليد 5 مم .
· 8 مقاومة 330 أوم نصف وات (برتقالى – برتقالى – بنى ) .
· مقاومة 4.7K نصف وات ( أصفر – بنفسجى – أحمر ) .
· مفتاح ضاغط مفتوح فى الوضع العادى .

الدائرة الكهربية :






البرنامج :

كود:
Device = 16F628A ; Produce code for a 16F628a device Declare Xtal = 4 ; 4MHz oscillator All_Digital = True ;Or CMCON = 7 converts all port A on Digital TRISB = 0 ; makes all port B pins as outputs Dim push_button As PORTA.1 ; assigning push_button name to RA1 Dim num As Byte ; creates the variable num with a size of 255 num = 0 ; loads the initial value 0 to the variable num Press: PORTB = num ; indicates the value of num out through port B If push_button = 0 Then Counter ; question if the button has been pressed GoTo Press ; go to press, remains locked Counter: num = num + 1 ; add 1 to the variable num and the new value stored in num GoTo Press ; return to the beginning of the program End; end of programming


إذا كانت لديك فرصة لرؤية تشغيل هذا المشروع ، ستلاحظ أن كل ضغطة واحدة على الزر تؤدى إلى زيادة العداد بشكل كبير جدا، والسبب هو أن الميكروكونترولر PIC يعمل بسرعة وينفذ تعليمة كل 1 ميكروثانية
وعندما يضغط شخص على زر ، فإنه يحتاج على الأقل إلى 100 ​​مللي ثانية لتحريره ، فى هذا الوقت يقوم الميكروكونترولر بتنفيذ آلاف التعليمات (الضغطات) نتيجة حدوث الارتدادات فى الزر . لحل هذه المشكلة ، يتم منع ظهور هذه الارتدادات debounce فى البرنامج ، عندما نضغط على الزر، فإنه يتم الانتظار حول هذا المكان حتى يتم التأكد من أن الزر قد تم تحريره ، ثم يتم وضع فترة توقف DelayMs 200، فمن الضرورى أن تكون إشارة الزر مستقرة لحظة تحريره

البرنامج المعدل الصحيح :


كود:
Device = 16F628A ; Produce code for a 16F628a device Declare Xtal = 4 ; 4MHz oscillator All_Digital = True ;Or CMCON = 7 converts all port A on Digital TRISB = 0 ; makes all port B pins as outputs Dim push_button As PORTA.1 ; assigning push_button name to RA1 Dim num As Byte ; creates the variable num with a size of 255 num = 0 ; loads the initial value 0 to the variable num Press: PORTB = num ; indicates the value of num out through port B If push_button = 0 Then Counter ; question if the button has been pressed GoTo Press ; go to press, remains locked Counter: If push_button = 0 Then Counter ; expected to release the button to continue DelayMS 200 ; waiting for 200 ms to stabilize the button num = num + 1 ; add 1 to the variable num and the new value stored in num GoTo Press ; return to the beginning of the program End ; end of programming


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 11-07-2013, 02:00 AM المشاركة 28   
افتراضي


المشروع العاشر بداية التعامل مع وحدة العرض السفن سيجمنت والدائرة المتكاملة 7447 :
وحدة العرض السفن سيجمنت تستخدم على نطاق واسع للعرض المرئى للبيانات . فى الأساس سوف نستخدم وحدة من نوع الأنود المشترك ، فى عمل عداد عشرى من 0 إلى 9 بفاصل زمنى 0.5sec .
هذا البرنامج مشابهة جدا لبرنامج العداد ثنائى ، مع الفرق فى أننا نحتاج إلى الأربع بتات المنخفضة فقط
(B.0, B.1, B.2, B.3).الدائرة المتكاملة 7447 ، وهى مفسر الشفرة من كود ثنائى إلى كود سفن سيجمنت ، هى المسؤولة عن تحويل العدد الثنائى إلى رقم عشرى الذى يدخل إلى وحدة العرض السفن سيجمنت .
المكونات :
· وحدة عرض سفن سيجمنت من نوع الأنود المشترك .
· 7 مقاومة 330 أوم ( برتقالى – برتقالى – بنى) نصف وات .
· دائرة متكاملة 7447 .
الدائرة الكهربية :
البرنامج :


كود:
Device = 16F628A ; Produce code for a 16F628a device Declare Xtal = 4 ; 4MHz oscillator TRISB =%11110000 ; makes departures only lower bits of Port B Dim number As Byte ; creates the variable number with value 255 start: number = 0 ; carries zero to the variable number display: PORTB = number ; copy number to PORTB DelayMS 500 ; wait 0.5 seconds If number = 9 Then start ; if number = 9 start number = 0 number = number + 1 ; add 1 to the variable number GoTo display ; go to display End


المشروع الحادى عشر عداد عشرى عن طريق مفتاح ضاغط مع استخدام الدائرة المتكاملة 7447 :


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 11-07-2013, 02:23 AM المشاركة 29   
افتراضي


المشروع الحادى عشر عداد عشرى عن طريق مفتاح ضاغط مع استخدام الدائرة المتكاملة 7447 :
فى هذا المشروع يتم إضافة مفتاح ضاغط ليعمل كعداد رقمى يدوى . لا تنسى عمل علاج لإرتداد المفتاح فى البرنامج .
المكونات :
· وحدة عرض سفن سيجمنت نوع الأنود المشترك .
· مقاومة 4.7K نصف وات و7 مقاومات 330 أوم نصف وات .
· دائرة متكاملة 7447 .
· مفتاح ضاغط مفتوح فى الوضع العادى .

الدائرة الكهربية :
الدائرة الكهربية مثل الدائرة الكهربية السابقة مع إضافة مفتاح ضاغط مفتوح فى الوضع العادى يتصل بالطرف RB4(PORTB.4) .

البرنامج :
كود:
Device = 16F628A ; Produce code for a 16F628a device Declare Xtal = 4 ; 4MHz oscillator TRISB =%11110000 ; makes departures only lower bits of Port B Dim number As Byte ; creates the variable number with value 255 Dim push_button As PORTB.4 ; button B.4 name for the port start: number = 0 ; carries zero to the variable number display: PORTB = number ; copy number to PORTB If push_button = 0 Then increase ; if the button is pressed to go to increase GoTo display ; go to display increase: If push_button = 0 Then increase ; if the lock button is pressed on increasing DelayMS 200 ; wait 0.2 seconds If number = 9 Then start ; if number = 9 start number = 0 number = number + 1 ; add 1 to the variable number GoTo display ; go to display
End


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 11-07-2013, 02:25 AM المشاركة 30   
افتراضي


فى البرنامج السابق : زيادة العداد تتم بعد "الضغط على المفتاح ثم تحريره" .
قد تتساءل : كيف يمكن الحصول زيادة للعدد فقط عند الضغط على المفتاح وقبل تحريره ؟
لهذا الغرض نستخدم "علم" flag، وهو ليس إلا متغير من نوع البت الواحدة ، والذى يخبرنا عندما يتم الضغط على المفتاح ، حيث يتحول إلى الحالة المنطقية المرتفعة (1) .
فيما يلى البرنامج باستخدام "العلم" flag :

كود:
Device = 16F628A ; Produce code for a 16F628a device Declare Xtal = 4 ; 4MHz oscillator TRISB =%11110000 ; makes departures only lower bits of Port B Dim number As Byte ; creates the variable number with value 255 Dim bush_button As PORTB.4 ; B.4 name for the port Dim flag As Bit ; create a flag variable bit start: number = 0 ; carries zero to the variable number display: PORTB = number ; copy number To PORTB If bush_button = 0 Then increase ; if the button is pressed to go to increase DelayMS 80 ; pause to stabilize the key rebound flag = 0 ; load the variable with zero GoTo display ; go to display increase: If flag = 1 Then GoTo display ; question if the variable is one flag = 1 ; upload one variable If number = 9 Then start ; if number = 9 waxing number = 0 number = number + 1 ; add 1 to the variable number GoTo display ; go to display End




الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 11-07-2013, 04:46 AM المشاركة 31   
افتراضي


المشروع الثانى عشر إدارة وحدات العرض السفن سيجمنت المتعددة نوع الأنود المشترك مع الدائرة المتكاملة 7447 :
المشروع التالى لمشروع يستخدم 4 وحدات عرض سفن سيجمنت من أجل عرض الأعداد من 0 إلى 9999 ، يتحقق ذلك بفضل الترانزستورات PNP ، التى من شأنها أن تساعدعلى الانتخاب من المتعدد multiplexing لوحدات العرض ، هذه العملية بسيطة جدا، حيث يتم توصيل الأربع بتات الأعلى قيمة إلى قواعد كل من الترانزستورات (للتحكم فى تشغيل الوحدات ) وتوصيل والأربعة بتات الأدنى قيمة (البيانات) إلى الدائرة المتكاملة 7447.
مثال توضيحى :
إذا أردت الحصول على العدد "6874" :
· فى البداية يتم "تمكين الترانزستور الرابع فقط " (أقصى اليمين) لتشغيل وحدة خانة الآحاد ، بوضع المنطق صفر على قاعدته بينما قواعد باقى الترانزستورات تكون عند المنطق واحد ، و"إرسال بيانات الرقم 4 " ، الدائرة المتكاملة 7447 هى المسؤولة عن التفسير والتحويل للعرض على وحدة العرض .
· ثم يتم الانتقال و "تمكين الترانزستور الثالث فقط" بوضع المنطق صفر على قاعدته والمنطق واحد على قواعد باقى الترانزستورات ، لتشغيل وحدة خانة العشرات فقط ، ثم يتم إرسال بيانات الرقم "7"، وهلم جرا .
· وبحيث لا يتم تمكين كل ترانزستور أكثر من 5 ملى ثانية ، أى تكون التغييرات بسرعة لدرجة أن العين البشرية ترى كل وحدات العرض فى نفس الوقت ، فى حين أنه فى الحقيقة يتم إضاءة وحدة واحدة فقط فى كل مرة ( خداع بصرى) .

الفكرة :
للحصول على الرقم "8" فى خانة المئات نرسل إلى المنفذ PORTB القيمة (176 +8) ، أى العدد "184"لأنه إذا نظرنا فى الشفرة الثنائية ، يجب علينا إدخال البتات الأدنى ( 1000=8)إلى الدائرة المتكاملة 7447 ، والبتات الأعلى ( 1011=176) تكون هى المسؤولة عن تشغيل وحدة العرض المناظرة لخانة المئات كما فى الشكل التالى :



المكونات :
· 4 وحدات عرض سفن سيجمنت .
· 4 ترانزستور 2N3906 .
· 7 مقاومة 330 أوم نصف وات .
· 4 مقاومة 4.7K نصف وات .
· دائرة متكاملة 7447 .

الدائرة الكهربية :

البرنامج :

كود:
Device = 16F628A ; Produce code for a 16F628a device Declare Xtal = 4 ; 4MHz oscillator TRISB = 0 ; all port B pins as output display: PORTB = 224 +8 ;% 11101000=> enable transistor and presents 8 as units DelayMs 5 PORTB = 208 +7 ;%11010111 enable transistor and presents 7 as tens DelayMs 5 PORTB = 176 +6 ;%10110110 enable transistor and presents 6 as hundreds DelayMs 5 PORTB = 112 +5 ;%01110101 enable transistor and presents 5 as thousands DelayMs 5 GOTO display ; enclosed in this loop END

كتجربة للتحقق من أن الميكروكونترولر يقوم بتشغيل وحدة واحدة فقط فى كل مرة ، غير جميع أزمنة التوقف إلى القيمة 150 ms .


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 12-07-2013, 06:15 PM المشاركة 32   
افتراضي


المشروع الثالث عشر بداية للتعامل مع شاشة العرض الليد ماتريكس المكونة من 35 نقطة 7x5 :
تستخدم هذه الشاشات لعرض الرسائل فى البنوك ومؤسسات رعاية الجمهور، ميزة هذه الشاشات هى العدد الكبير من الحروف التى يمكن تشكيلها والحجم الكبير للعرض , سوف يتم التعامل مع الشاشة المكونة من 35 نقطة ( 14 طرف) ، بمجرد أن تتعرف على هذه الشاشة يمكنك بسهولة التعامل مع الأنواع الأخرى .


مثال : إذا أردنا إضاءة الليد الموجود بالصف الثانى ةالعامود الثانى ، علينا توصيل الطرف B بالجهد 5V وتوصيل الطرف 2 بالأرضى .
المكونات :
· شاشة ليد ماتريكس 7X5 .
· 5 ترانزستور 2N3904 .
· 7 مقاومة 330 أوم نصف وات .
· 5 مقاومة 4.7K نصف وات .
الدائرة الكهربية :
ملاحظة:
فى هذا التدريب استخدمنا الترانزستور 2N3904، ولكن إذا استخدامنا المزيد من شاشات العرض ونريد مزيد من الضوء ، فمن المستحسن استبداله بالترانزستور TIP110بالإضافة إلى ذلك يتم وضع الترانزستور 2N3906 فى خرج المنفذ PORTB مع مقاومة تحديد التيار بالقيمة 22 أوم كما فى اللوحة أدناه .
الشكل التالى يبين تتابع لأربعة مشاهد لشخص يلوح بيديه :


البرنامج الذي سيتم تنفيذه ، يعتمد على الانتخاب من متعدد لليدات بحيث يتم :
· تشغيل المشهد الأول التتابع الأول ، عن طريق تكرار المشهد 10 مرات باستخدام حلقة FOR…NEXT أى يظل فى حالة التشغيل لمدة 100 ملى ثانية .
· ثم يتم التحويل إلى تشغيل المشهد الثانى ثم المشهد الثالث وأخير المشهد الرابع بنفس الطريقة .
· تكرار التسلسل بالكامل من البداية وهو ما يؤدى إلى رؤية رجل يلوح بذراعيه .


كود:
Device = 16F628A ; Produce code for a 16F628a device Declare Xtal = 4 ; 4MHz oscillator Config $3FFC ; internal osc All_Digital = True ;CMCON = 7 , convert port A to digital Output PORTA;TRISA = 0 , port A outputs Output PORTB; TRISB = 0 , port B outputs Dim x As Byte ; variable x 255 animation: ;view 1 For x = 1 To 10 ; repeating this sequence 10 times ;C5 on , RB4 on , wait 4 ms, every 20 ms total PORTA =%0000001 : PORTB =%0010000 : DelayMS 4 ;C4 on , RB0,RB1,RB2,RB6 on , wait 4 ms, every 20 ms total PORTA =%0000010 : PORTB =%0100111 : DelayMS 4 PORTA =%0000100 : PORTB =%1111000 : DelayMS 4 PORTA =%0001000 : PORTB =%0100111 : DelayMS 4 PORTA =%1000000 : PORTB =%0010000 : DelayMS 4 Next ;view 2 For x = 1 To 10 ; repeating this sequence 10 times PORTA=%0000001 :PORTB=%0100000 : DelayMS 4 PORTA=%0000010 :PORTB=%0100111 : DelayMS 4 PORTA=%0000100 :PORTB=%1111000 : DelayMS 4 PORTA=%0001000 :PORTB=%0100111 : DelayMS 4 PORTA=%1000000 :PORTB=%0100000 : DelayMS 4 Next ;view 3 For x = 1 To 10 ; repeating this sequence 10 times PORTA=%0000001 :PORTB=%1000000 : DelayMS 4 PORTA=%0000010 :PORTB=%0100111 : DelayMS 4 PORTA=%0000100 :PORTB=%1111000 : DelayMS 4 PORTA=%0001000 :PORTB=%0100111 : DelayMS 4 PORTA=%1000000 :PORTB=%1000000 : DelayMS 4 Next ;view 4 For x = 1 To 10 ; repeating this sequence 10 times PORTA=%0000001 :PORTB=%0100000 : DelayMS 4 PORTA=%0000010 :PORTB=%0100111 : DelayMS 4 PORTA=%0000100 :PORTB=%1111000 : DelayMS 4 PORTA=%0001000 :PORTB=%0100111 : DelayMS 4 PORTA=%1000000 :PORTB=%0100000 : DelayMS 4 Next GoTo animation ; go to animation End
كما هو واضح من البرنامج السابق ، نحن لم نحاول استخدام الأطراف RA4 أو RA5، لأن الأول بمجمع مفتوح open collector، والثانى يمكن أن يعمل كمدخل فقط .
من المهم جدا النظر فى زمن الانتخاب من متعدد ، لأنه لا ينبغى أن يتجاوز ما مجموعه ملى ثانية ، فعلى سبيل المثال إذا أردنا استخدام شاشتين 7x5، يجب أن تخفض زمن التوقف إلى 2 ملى ثانية حتى يكون لدينا ما مجموعه 20 ملى ثانية أيضا .



الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 04:44 PM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)