المشروع الثالث عشر بداية للتعامل مع شاشة العرض الليد ماتريكس المكونة من 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 ملى ثانية أيضا .