Saturday, June 12, 2010

Input to the Microcontroller الإدخال إلى المتحكم الدقيق




الآن و بعد أن تعلمنا معا كيفية إخراج الإشارات على منفذ المتحكم الدقيق
16F84A

بلغتى

Assembley & Embedded C

فنبدأ الآن فى تعلم الإدخال عن طريق المنافذ الخاصة به .

فمن المعروف أن معظم دوائر المشاريع المضمنة تحتوى على مدخلات (إشارات تحكم من الإنسان أو من آلة أو إشارات و قراءات من مجسات للحرارة و الضغط و الحركة و غير ذلك ) كما تحتوى على مخرجات تحدث بناءا على البرنامج المكتوب بالمتحكم الدقيق

و لذلك فمن الممكن أن يستخدم الإدخال للمتحكم الدقيق كأمر من الإنسان الذى يقوم بتشغيل النظام أو يقوم ببرمجته للتشغيل الأوتوماتيكى لاحقا ً .

و هذا هو برنامج بلغة التجميع

Assembley Language

يقوم بقراءة أمر الإدخال بالضغط على زر

Push Button

و هذا هو البرنامج


; Button.ASM
;******************************************************

list p=16f84

include "p16f84.inc"

org 0x00

goto start

org 0x20

start

bcf INTCON,7

movlw 0x00

bsf STATUS,5

movwf TRISA

bcf STATUS,5

movlw 0xFF

bsf STATUS,5

movwf TRISB

bcf STATUS,5

again

btfss PORTB,0

call LED_ON

call LED_OFF

goto again

LED_ON

movlw 0xFF

movwf PORTA

goto again




LED_OFF

movlw 0x00

movwf PORTA

goto again

end

;***********************************************


هذا البرنامج يقوم بإضاءة صمام ثنائى مضئ عندما يتم الضغط على الزر . و يقوم بإطفاء هذا الصمام الثنائى المضئ عندما تترك الضغط على هذا الزر .

فى هذا البرنامج تم استخدام أمر جديد من أوامر لغة التجميع الخاصة بهذا المتحكم الدقيق و هو

BTFSS

و هو يقوم بفحص بت من المسجل الخاص بالمنفذ المتصل بالزر و هو

PortB Register

فهو عندما يجد هذه البت قيمتها 1 يقوم بتجاهل تنفيذ الأمر التالى .

و بهذه الطريقة تم استخدام هذا الأمر فى إضاءة الصمام الثنائى عند الضغط على الزر .

و هذا الأمر يعتبر

bit-oriented command

أى أنه يقوم بفحص البت الموجود فى المسجل و يتخذ القرار بناءاً على قيمة هذه البت .

هذه هى الدائرة الألكترونية المطلوبة فى برنامج المحاكى

Proteus 7 ISIS





قم ببناء هذه الدائرة ثم اتبع الخطوات فى المقالة التى تم فيها شرح طريقة إضافة كود المصدر بلغة التجميع ثم ترجمته إلى برنامج يعمل على المتحكم الدقيق كملف

HEX

و بعد أن تنهى الخطوات السابقة و تقوم بعمل الترجمة قم بتشغيل المحاكى لترى النتيجة





الآن سوف نقوم بدراسة البرنامج السابق بلغة السى المضمنة

ُEmbedded C Language







//******************************************************



#include"pic.h"

main()

{

unsigned char i;



TRISA = 0 ; // Make PORTB output

TRISB = 0xFF ; // Make PORTB input

PORTA = 0 ; // Initialize PORTB

for(;;) // This is the infinite loop that keeps the PIC running

{


if ( PORTB == 0 )

PORTA = 1;

else

PORTA = 0 ;


}



}




//************************************************************






مرة ثانية ، قم بإضافة الكود المصدر للبرنامج بلغة السى المضمنة إلى الدائرة السابقة كما تعلمنا فى المقالة السابقة التى شرحت ذلك ثم قم بتشغيل برنامج المحاكى .


و هنا تستطيع تحميل ملفات البرنامج و النموذج الخاص بالمحاكى




No comments:

Post a Comment