تقنيات عرض الرسائل والإعلانات على شاشات الليد ماتريكس مع المترجم CCS C والمترجم ميكروسى برو: مقدمة : مبدأ عمل شاشة العرض LED dot matrix :
منتديات الهندسة الكهربية والإلكترونية والميكاترونكس والكومبيوتر :: برمجة الميكروكونترولر PIC بلغة السى مع المترجم CCS - C
صفحة 1 من اصل 1
تقنيات عرض الرسائل والإعلانات على شاشات الليد ماتريكس مع المترجم CCS C والمترجم ميكروسى برو: مقدمة : مبدأ عمل شاشة العرض LED dot matrix :
تقنيات عرض الرسائل والإعلانات على شاشات الليد ماتريكس مع المترجم CCS C والمترجم ميكروسى برو:
مقدمة : مبدأ عمل شاشة العرض LED dot matrix :
فى هذه الشاشات ، يتم توصيل مجموعة من الليدات مع بعضها البعض فى شكل صفوف rows وأعمدة columns بغرض تقليل عدد الأطراف المطلوبة لتشغيلها . فعلى سبيل المثال وحدة عرض 8X8 تحتاج إلى 64 طرف مدخل / مخرج (طرف لكل ليد ) . بتوصيل جميع الأنودات مع بعضها فى شكل صفوف ( من الصف الأول R1 إلى الصف الثامن R8 ) وتوصيل الكاثودات مع بعضها فى شكل أعمدة (من العامود الأول C1 إلى العامود الثامن C8 ) فإن أطراف المداخل / المخارج المطلوبة للتشغيل تقل إلى 16 طرف ( 8 صفوف و 8 أعمدة) . يعنون كل ليد برقم صفه ورقم عاموده . ففى الشكل أدناه ، إذا جعلنا الصف الرابع R4 فى الحالة المرتفعة ( الأنودات) ، وجعلنا العامود الثالث C3 فى الحالة المنخفضة (الكاثودات – لاحظ حرف C مشترك بين معنى العامود والكاثود ) ، فأن الليد الموجود عند تقاطع الصف الرابع والعامود الثالث سوف يضىء .
يمكن عرض الحروف عن طريق المسح السريع لأى من الصفوف أو الأعمدة .
عرض النص Displaying Text :
النص Text له وجهين (شكلين) :
• الوجه الأول الأول هو النص نفسه text ، والذى يتكون من أحرف كود أسكى ، ويمكن تخزينه فى شكل سلسلة نصية string .
• الوجه الثانى هو تمثيله الرسومى graphic أو خريطة النقط bitmap (التمثيل النقطى) .
التمثيل النقطى (خريطة النقط) لمجموعة معينة من الأحرف يسمى الخط أو الفونت font . يمكنك تحديد الفونت الخاص بك لتمثيل مجموعة من الأحرف .
تتكون مجموعة أحرف النص القياسية text من الأحرف الأبجدية والرقمية : 0-9, A-Z , a-z جنبا إلى جنب مع بعض الأحرف الخاصة مثل الفاصلة ، والفاصلة المنقوطة , والمسافة الفارغة ، إلخ .
فى البداية يمكننا تحديد عدد محدود وقليل من الأحرف ، مثل الحروف الكابيتال A-Z وتجاهل الأحرف الخاصة ، أو اختيار مجموعة أحرف أسكى الكاملة . لكن ، تذكر أنه كلما كانت مجموعة الأحرف أكبر كلما زاد التمثيل النقطى وبالطبع زادت مساحة التخزين المطلوبة لها .
مفهوم مسح العرض (الشاشة) Scanning The Display
عندما يكون لدينا ليد ماتريكس يكون لدينا خياران :
• الخيار الأول : تقنية مسح الصفوف : إضاءة صف row واحد فى كل مرة ، مع عرض (تواجد) نموذج الليدات الموصلة والمفصولة على الأعمدة ، وإعطائها بعض الوقت لترك أثر للصورة على أعيننا ، ثم بعد ذلك يتم إيقاف تشغيل الصف الأول والانتقال إلى الصف الثانى . يتم تكرار نفس العملية مرة أخرى ومرة أخرى .
• الخيار الثانى : تقنية مسح الأعمدة : بنفس الطريقة ، يمكننا استخدام مسح الأعمدة بدلا من مسح الصفوف .
كلا التقنيتين جيد على حد سواء . بالنسبة لوحدات العرض الصغيرة ، يكون مسح الأعمدة سهل ، لأنه لن تكون مجبرا على معالجة بتات بيانات كثيرا ، ولكن كلما زاد طول الليد ماتريكس ، كان لزاما عليك مسح المزيد والمزيد من الأعمدة ويصبح العرض مرتعش . لذلك سوف نختار طريقة مسح الصفوف ، بحيث أن المفاهيم المكتسبة بالتطبيق ذو الحجم الصغير يمكن بسهولة تطبيقها على العروض ذات الحجم الكبير .
التمثيل النقطى للحرف Bitmap of a character :
معظم أنظمة العرض ، مثل شاشات LCD أو الوحدات الطرفية تستخدم ماتريكس نوع 5X7 (خمس أعمدة وبع صفوف) لتمثيل وعرض الحرف . وهذا الحجم من المصفوفات يعتبر جيد إلى حد ما لعرض وتمثيل معظم الأحرف المستخدمة بشكل شائع . لكن يوجد الماتريكس 8X8 ، وهو بالتأكيد يمكن أن يستوعب التمثيل النقطى للماتريكس 5X7 بسهولة ، كما أنه يتيح لنا الحرية فى استخدام الماتريكس 8X8 بكاملها لعمل تمثيل نقطى أكثر تفصيلا .
البداية تكون برسم ماتريكس من المربعات الفارغة على ورقة وملء المربعات المناسبة بنقط الرسم " تسمى بكسلات" pixels (النقط الضوئية) التى تريد توصيلها (عرضها) ، كما فى الشكل التالى :
الآن لديك 8 بايت من البيانات للحرف الواحد ، وكل بايت يمثل صف واحد ، أو قد يمثل عامود كما تحب . تذكر أن " كل حرف من خط نوع 8X8 سوف يتطلب 8 بايت من البيانات" . مجموعة الأحرف النقطية سوف تحتاج أن يتم تخزينها فى مكان ما ، يمكنك تخزينها كجزء من ذاكرة البرنامج program memory كثوابت ، أو تخزينها فى ذاكرة EEPROM الداخلية للميكروكونترولر . أما إذا سمح الهاروير الخاص بك ، فإن أفضل مكان يستخدم للتخزين هو ذاكرة EEPROM خارجية والتى تعتمد على الناقل I2C ، أو استخدام كارت تخزين بيانات SD . هنا ، سنحاول تقليل الاعتماد على أجهزة الهاردوير الخارجية وسيتم تخزين الأحرف النقطية فى ذاكرة البرنامج كثوابت .
تدريب : عرض حرف واحد ، الحرف A على سبيل المثال :
الحرف A كنص text ، يتم تخزينه كقيمة لحرف واحد من حروف أسكى ، وهو العدد العشرى 65 ، ولكنه كحرف نقطى فإنه سوف يحتل 8 بايت من التخزين . يمكننا تخزين الحرف النقطى كبتات رأسية ، أو كبتات أفقية . الخيار الأفضل يعتمد على كيفية تكوين الهاردوير الخاص بك . ونظرا لإننا سوف نستخدم مسح الصفوف ، فسوف يكون مريحا للغاية تخزين الحروف النقطية كصفوف (بيانات الأعمدة) ، تظهر الأعداد المناظرة على يمين الشكل أعلاه ، أو أسفل الشكل ، كما ترغب ، وهى :
ملحوظة :
إذا قمنا بتخزين التكوين الرأسى ، عندئذ فإن الحرف سوف يظهر كما لو كنا أدرنا وحدة العرض ، لأنه سوف يتم عرض التمثيل النقطى للأعمدة كصفوف .
التدريب الأساسى : عملية المسح والعرض لحرف واحد غير متحرك :
مقدمة : مبدأ عمل شاشة العرض LED dot matrix :
فى هذه الشاشات ، يتم توصيل مجموعة من الليدات مع بعضها البعض فى شكل صفوف rows وأعمدة columns بغرض تقليل عدد الأطراف المطلوبة لتشغيلها . فعلى سبيل المثال وحدة عرض 8X8 تحتاج إلى 64 طرف مدخل / مخرج (طرف لكل ليد ) . بتوصيل جميع الأنودات مع بعضها فى شكل صفوف ( من الصف الأول R1 إلى الصف الثامن R8 ) وتوصيل الكاثودات مع بعضها فى شكل أعمدة (من العامود الأول C1 إلى العامود الثامن C8 ) فإن أطراف المداخل / المخارج المطلوبة للتشغيل تقل إلى 16 طرف ( 8 صفوف و 8 أعمدة) . يعنون كل ليد برقم صفه ورقم عاموده . ففى الشكل أدناه ، إذا جعلنا الصف الرابع R4 فى الحالة المرتفعة ( الأنودات) ، وجعلنا العامود الثالث C3 فى الحالة المنخفضة (الكاثودات – لاحظ حرف C مشترك بين معنى العامود والكاثود ) ، فأن الليد الموجود عند تقاطع الصف الرابع والعامود الثالث سوف يضىء .
يمكن عرض الحروف عن طريق المسح السريع لأى من الصفوف أو الأعمدة .
عرض النص Displaying Text :
النص Text له وجهين (شكلين) :
• الوجه الأول الأول هو النص نفسه text ، والذى يتكون من أحرف كود أسكى ، ويمكن تخزينه فى شكل سلسلة نصية string .
• الوجه الثانى هو تمثيله الرسومى graphic أو خريطة النقط bitmap (التمثيل النقطى) .
التمثيل النقطى (خريطة النقط) لمجموعة معينة من الأحرف يسمى الخط أو الفونت font . يمكنك تحديد الفونت الخاص بك لتمثيل مجموعة من الأحرف .
تتكون مجموعة أحرف النص القياسية text من الأحرف الأبجدية والرقمية : 0-9, A-Z , a-z جنبا إلى جنب مع بعض الأحرف الخاصة مثل الفاصلة ، والفاصلة المنقوطة , والمسافة الفارغة ، إلخ .
فى البداية يمكننا تحديد عدد محدود وقليل من الأحرف ، مثل الحروف الكابيتال A-Z وتجاهل الأحرف الخاصة ، أو اختيار مجموعة أحرف أسكى الكاملة . لكن ، تذكر أنه كلما كانت مجموعة الأحرف أكبر كلما زاد التمثيل النقطى وبالطبع زادت مساحة التخزين المطلوبة لها .
مفهوم مسح العرض (الشاشة) Scanning The Display
عندما يكون لدينا ليد ماتريكس يكون لدينا خياران :
• الخيار الأول : تقنية مسح الصفوف : إضاءة صف row واحد فى كل مرة ، مع عرض (تواجد) نموذج الليدات الموصلة والمفصولة على الأعمدة ، وإعطائها بعض الوقت لترك أثر للصورة على أعيننا ، ثم بعد ذلك يتم إيقاف تشغيل الصف الأول والانتقال إلى الصف الثانى . يتم تكرار نفس العملية مرة أخرى ومرة أخرى .
• الخيار الثانى : تقنية مسح الأعمدة : بنفس الطريقة ، يمكننا استخدام مسح الأعمدة بدلا من مسح الصفوف .
كلا التقنيتين جيد على حد سواء . بالنسبة لوحدات العرض الصغيرة ، يكون مسح الأعمدة سهل ، لأنه لن تكون مجبرا على معالجة بتات بيانات كثيرا ، ولكن كلما زاد طول الليد ماتريكس ، كان لزاما عليك مسح المزيد والمزيد من الأعمدة ويصبح العرض مرتعش . لذلك سوف نختار طريقة مسح الصفوف ، بحيث أن المفاهيم المكتسبة بالتطبيق ذو الحجم الصغير يمكن بسهولة تطبيقها على العروض ذات الحجم الكبير .
التمثيل النقطى للحرف Bitmap of a character :
معظم أنظمة العرض ، مثل شاشات LCD أو الوحدات الطرفية تستخدم ماتريكس نوع 5X7 (خمس أعمدة وبع صفوف) لتمثيل وعرض الحرف . وهذا الحجم من المصفوفات يعتبر جيد إلى حد ما لعرض وتمثيل معظم الأحرف المستخدمة بشكل شائع . لكن يوجد الماتريكس 8X8 ، وهو بالتأكيد يمكن أن يستوعب التمثيل النقطى للماتريكس 5X7 بسهولة ، كما أنه يتيح لنا الحرية فى استخدام الماتريكس 8X8 بكاملها لعمل تمثيل نقطى أكثر تفصيلا .
البداية تكون برسم ماتريكس من المربعات الفارغة على ورقة وملء المربعات المناسبة بنقط الرسم " تسمى بكسلات" pixels (النقط الضوئية) التى تريد توصيلها (عرضها) ، كما فى الشكل التالى :
الآن لديك 8 بايت من البيانات للحرف الواحد ، وكل بايت يمثل صف واحد ، أو قد يمثل عامود كما تحب . تذكر أن " كل حرف من خط نوع 8X8 سوف يتطلب 8 بايت من البيانات" . مجموعة الأحرف النقطية سوف تحتاج أن يتم تخزينها فى مكان ما ، يمكنك تخزينها كجزء من ذاكرة البرنامج program memory كثوابت ، أو تخزينها فى ذاكرة EEPROM الداخلية للميكروكونترولر . أما إذا سمح الهاروير الخاص بك ، فإن أفضل مكان يستخدم للتخزين هو ذاكرة EEPROM خارجية والتى تعتمد على الناقل I2C ، أو استخدام كارت تخزين بيانات SD . هنا ، سنحاول تقليل الاعتماد على أجهزة الهاردوير الخارجية وسيتم تخزين الأحرف النقطية فى ذاكرة البرنامج كثوابت .
تدريب : عرض حرف واحد ، الحرف A على سبيل المثال :
الحرف A كنص text ، يتم تخزينه كقيمة لحرف واحد من حروف أسكى ، وهو العدد العشرى 65 ، ولكنه كحرف نقطى فإنه سوف يحتل 8 بايت من التخزين . يمكننا تخزين الحرف النقطى كبتات رأسية ، أو كبتات أفقية . الخيار الأفضل يعتمد على كيفية تكوين الهاردوير الخاص بك . ونظرا لإننا سوف نستخدم مسح الصفوف ، فسوف يكون مريحا للغاية تخزين الحروف النقطية كصفوف (بيانات الأعمدة) ، تظهر الأعداد المناظرة على يمين الشكل أعلاه ، أو أسفل الشكل ، كما ترغب ، وهى :
- الكود:
{0x18,0x24,0x66,0x66,0x7E,0x66,0x66,0x66};
{0x00,0x3F,0x7F,0x88,0x88,0x7F,0x3F,0x00};
ملحوظة :
إذا قمنا بتخزين التكوين الرأسى ، عندئذ فإن الحرف سوف يظهر كما لو كنا أدرنا وحدة العرض ، لأنه سوف يتم عرض التمثيل النقطى للأعمدة كصفوف .
التدريب الأساسى : عملية المسح والعرض لحرف واحد غير متحرك :
مواضيع مماثلة
» الليد ماتريكس LED MATRIX علميا وعمليا والبرمجة بلغة السى والمترجم MIKROC والمترجم CCS C :
» مبدأ برمجة سجل الإزاحة 74164 ، دخل تسلسلى خرج متوازى بدون ماسك مع الليد ماتريكس والمترجم CCS C :
» كيفية البدء فى عمل شاشة ليد ماتريكس ناجحة والبرمجة بلغة السى مع المترجم ميكروسى برو :
» دليل ربط شاشة LCD نوع 2X16 بالميكروكونترولر PIC16F877A مع استخدام المترجم CCS C :
» بداية ممارسة برمجة الليد ماتريكس بشكل احترافى
» مبدأ برمجة سجل الإزاحة 74164 ، دخل تسلسلى خرج متوازى بدون ماسك مع الليد ماتريكس والمترجم CCS C :
» كيفية البدء فى عمل شاشة ليد ماتريكس ناجحة والبرمجة بلغة السى مع المترجم ميكروسى برو :
» دليل ربط شاشة LCD نوع 2X16 بالميكروكونترولر PIC16F877A مع استخدام المترجم CCS C :
» بداية ممارسة برمجة الليد ماتريكس بشكل احترافى
منتديات الهندسة الكهربية والإلكترونية والميكاترونكس والكومبيوتر :: برمجة الميكروكونترولر PIC بلغة السى مع المترجم CCS - C
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى