الترقى فى العمل مع الميكروكونترولر من السلسلة PIC16F إلى السلسلة PIC18F :
منتديات الهندسة الكهربية والإلكترونية والميكاترونكس والكومبيوتر :: الميكروكونترولر PIC والبرجة بلغة السى والمترجم مسكروسى برو :: الميكروكونترولر PIC والبرمجة بلغة السى والمترجم ميكروسى برو
صفحة 2 من اصل 2
صفحة 2 من اصل 2 • 1, 2
رد: الترقى فى العمل مع الميكروكونترولر من السلسلة PIC16F إلى السلسلة PIC18F :
السجلات PORTB, TRISB , LATB :
• السجل PORTB هو سجل بسعة 8 بت ، لمنفذ ثنائى الاتجاه . سجل اتجاه البيانات المقابل هو TRISB .
• تحديد (= 1) بت بالسجل TRISB سيجعل طرف المنفذ PORTB المقابل "مدخل" input (أى يتم وضع مشغل الخرج المناظر فى وضع "المعاوقة – المرتفعة" ) .
• مسح (= 0) بت بالسجل TRISB سيجعل طرف المنفذ PORTB المقابل "مخرج" output ( أى يتم وضع محتويات "مزلاج الخرج" output latch على الطرف المختار )
• قراءة السجل PORTB ، تقرأ حالة الأطراف ، والكتابة إليه سوف تكتب إلى "مزلاج المنفذ" .
• سجل مزلاج البيانات LATA معين أيضا بالذاكرة . القراءة – التعديل – الكتابة على السجل LATA ، يقرأ ويكتب قيمة "الخرج الممسوك" للمنفذ PORTB .
• طل طرف من أطراف PORTB له رفع pull-up داخلى ضعيف . بت تحكم واحدة يمكن أن توصل كل الرفع . يتم تنفيذ ذلك عن طريق "مسح البت RBPU (INTCON2<7>) " . يتم تلقائيا فصل الرفع عندما يتم إعداد طرف المنفذ كمخرج . يتم تعطيل تمكين الرفع عند Power-on Reset .
ملاحظة :
عند Power-on Reset "الأطراف RB4:RB0 يتم إعدادها كمداخل تناظرية بشكل افتراضى" وتقرأ بصفر ، و"الأطراف RB7:RB5 يتم إعدادها كمداخل رقمية"
• عن طريق برمجة بت التكوين PBADEN (CONFIG3H<1>) ، والأطراف RB4:RB0 سوف يتم إعدادها بالتبادل كمداخل رقمية عند POR))Power-on Reset .
• أطراف المنفذ PORTB الأربعة (RB7:RB4) لديها ميزة "المقاطعة عند التغير" . فقط الأطراف التى تم إعداها كمداخل هى التى يمكن أن تسبب حدوث هذه المقاطعة . أى طرف من الأطراف RB7:RB4 تم إعداده كمخرج يستثنى من مقارنة المقاطعة عند التغير . يتم مقارنة هذه الأطراف بالقيمة القديمة (السابقة ) الممسوكة (المحفوظة) عند آخر قراءة للمنفذ PORTB . مخارج "عدم التطابق" للأطراف RB7:RB4 يتم أجراء عملية OR بينها جميعا لتوليد إشارة المقاطعة :
RB Port Change Interrupt ، مع بت العلم Flag bit, RBIF (INTCON<0>) . يمكن استخدام المقاطعة عند التغير لإيقاظ الجهاز من السكون Sleep . ويمكن للمستخدم ، فى روتين خدمة المقاطعة ، مسح المقاطعة على النحو التالى :
أ- أى قراءة أو كتابة للمنفذ PORTB ، سوف تؤدى إلى إنهاء حالة عدم التطابق .
ب- مسح بت العلم RBIF .
حالة عدم التطابق سوف تستمر لتحديد بت العلم RBIF. قراءة المنفذ PORTB سوف تنهى حالة عدم التطابق وتسمح لبت العلم ، RBIF ، بأن يتم مسحها .
ميزة المقاطعة عند التغير ينصح بها للاستيقاظ عند عملية الضغط على مفتاح والعمليات حيث يتم استخدام المنفذ PORTB فقط لميزة المقاطعة عند التغير .
• الأطراف RB2 , RB3 ، تتقاسم الوظائف المتعددة مع جهاز USB الخارجى ، وتكون بمثابة "مخارج إشارة تفاضلية (الفرق)" لجهاز مرسل – مستقبل USB خارجى .
مثال لتهيئة المنفذ PORTB :
بلغة الأسمبلى :
بلغة السى مع المترجم ميكروسى برو :
مثال لبرنامج بسيط :
• السجل PORTB هو سجل بسعة 8 بت ، لمنفذ ثنائى الاتجاه . سجل اتجاه البيانات المقابل هو TRISB .
• تحديد (= 1) بت بالسجل TRISB سيجعل طرف المنفذ PORTB المقابل "مدخل" input (أى يتم وضع مشغل الخرج المناظر فى وضع "المعاوقة – المرتفعة" ) .
• مسح (= 0) بت بالسجل TRISB سيجعل طرف المنفذ PORTB المقابل "مخرج" output ( أى يتم وضع محتويات "مزلاج الخرج" output latch على الطرف المختار )
• قراءة السجل PORTB ، تقرأ حالة الأطراف ، والكتابة إليه سوف تكتب إلى "مزلاج المنفذ" .
• سجل مزلاج البيانات LATA معين أيضا بالذاكرة . القراءة – التعديل – الكتابة على السجل LATA ، يقرأ ويكتب قيمة "الخرج الممسوك" للمنفذ PORTB .
• طل طرف من أطراف PORTB له رفع pull-up داخلى ضعيف . بت تحكم واحدة يمكن أن توصل كل الرفع . يتم تنفيذ ذلك عن طريق "مسح البت RBPU (INTCON2<7>) " . يتم تلقائيا فصل الرفع عندما يتم إعداد طرف المنفذ كمخرج . يتم تعطيل تمكين الرفع عند Power-on Reset .
ملاحظة :
عند Power-on Reset "الأطراف RB4:RB0 يتم إعدادها كمداخل تناظرية بشكل افتراضى" وتقرأ بصفر ، و"الأطراف RB7:RB5 يتم إعدادها كمداخل رقمية"
• عن طريق برمجة بت التكوين PBADEN (CONFIG3H<1>) ، والأطراف RB4:RB0 سوف يتم إعدادها بالتبادل كمداخل رقمية عند POR))Power-on Reset .
• أطراف المنفذ PORTB الأربعة (RB7:RB4) لديها ميزة "المقاطعة عند التغير" . فقط الأطراف التى تم إعداها كمداخل هى التى يمكن أن تسبب حدوث هذه المقاطعة . أى طرف من الأطراف RB7:RB4 تم إعداده كمخرج يستثنى من مقارنة المقاطعة عند التغير . يتم مقارنة هذه الأطراف بالقيمة القديمة (السابقة ) الممسوكة (المحفوظة) عند آخر قراءة للمنفذ PORTB . مخارج "عدم التطابق" للأطراف RB7:RB4 يتم أجراء عملية OR بينها جميعا لتوليد إشارة المقاطعة :
RB Port Change Interrupt ، مع بت العلم Flag bit, RBIF (INTCON<0>) . يمكن استخدام المقاطعة عند التغير لإيقاظ الجهاز من السكون Sleep . ويمكن للمستخدم ، فى روتين خدمة المقاطعة ، مسح المقاطعة على النحو التالى :
أ- أى قراءة أو كتابة للمنفذ PORTB ، سوف تؤدى إلى إنهاء حالة عدم التطابق .
ب- مسح بت العلم RBIF .
حالة عدم التطابق سوف تستمر لتحديد بت العلم RBIF. قراءة المنفذ PORTB سوف تنهى حالة عدم التطابق وتسمح لبت العلم ، RBIF ، بأن يتم مسحها .
ميزة المقاطعة عند التغير ينصح بها للاستيقاظ عند عملية الضغط على مفتاح والعمليات حيث يتم استخدام المنفذ PORTB فقط لميزة المقاطعة عند التغير .
• الأطراف RB2 , RB3 ، تتقاسم الوظائف المتعددة مع جهاز USB الخارجى ، وتكون بمثابة "مخارج إشارة تفاضلية (الفرق)" لجهاز مرسل – مستقبل USB خارجى .
مثال لتهيئة المنفذ PORTB :
بلغة الأسمبلى :
- الكود:
CLRF PORTB ; Initialize PORTB by clearing output data latches
CLRF LATB ; Alternate method to clear output data latches
MOVLW 0Eh ; Set RB<4:0> as
MOVWF ADCON1 ; digital I/O pins
; (required if config bit
; PBADEN is set)
MOVLW 0CFh ; Value used to
; initialize data
; direction
MOVWF TRISB ; Set RB<3:0> as inputs
; RB<5:4> as outputs
; RB<7:6> as inputs
بلغة السى مع المترجم ميكروسى برو :
- الكود:
LATB = 0 ; // Clear output data latches
ADCON1 = 0x0E ; //Set RB<4:0> as digital I/O pins
TRISB = 0xCF ; //Set RB<3:0> as inputs,
//RB<5:4> as outputs ,
//RB<7:6> as inputs
مثال لبرنامج بسيط :
- الكود:
/********************************************************************
BINARY COUNTING UP LEDs
-----------------------------------------
In this project 8 LEDs are connected to PORT B of a PIC18F2550 type microcontroller (any other PIC microcontroller can also be used in this project). The microcontroller is operated from an 8MHz crystal.
In this project the LEDs count up in binary from 0 to 255 and then back to 0 with one second delay between each count.
****************************************************************/
void main()
{
unsigned char Cnt = 0; // Declare and initialise Cnt
ADCON1 = 0x0E ; //Set RB<4:0> as digital I/O pins
TRISB = 0; // Configure PORT B as outputs
for(;;) // FOREVER loop
{
PORTB = Cnt; // SendCnt to PORT B
Delay_Ms(1000); // Delay 1 second
Cnt++; // Increment Cnt
}
}
رد: الترقى فى العمل مع الميكروكونترولر من السلسلة PIC16F إلى السلسلة PIC18F :
السجلات PORTC, TRISC , LATC :
· السجل PORTC هو سجل بسعة 7 بت ، لمنفذ ثنائى الاتجاه . سجل اتجاه البيانات المقابل هو TRISC .
· تحديد (= 1) بت بالسجل TRISC سيجعل طرف المنفذ PORTC المقابل "مدخل" input (أى يتم وضع مشغل الخرج المناظر فى وضع "المعاوقة – المرتفعة" ) .
· مسح (= 0) بت بالسجل TRISC سيجعل طرف المنفذ PORTC المقابل "مخرج" output ( أى يتم وضع محتويات "مزلاج الخرج" output latch على الطرف المختار ) .
· فى الأجهزة PIC18F2455/2550/4455/4550 الطرف RC3 غير موجود .
· سجل مزلاج البيانات LATC معين أيضا بالذاكرة . القراءة – التعديل – الكتابة على السجل LATC ، يقرأ ويكتب قيمة "الخرج الممسوك" للمنفذ PORTC .
· المنفذ PORTC فى الأساس يتقاسم الوظائف المتعددة مع موديولات الاتصال التسلسلى ، بما فى ذلك EUSART و MSSP و USB .
· الأطراف RC4(Pin 15) و RC5(Pin 16) تتقاسم الوظائف المتعددة مع موديول USB . اعتمادا على تكوين (إعداد) ، فإن هذه الأطراف يمكن أن تكون بمثابة خطوط بيانات تفاضلية لمرسل – مستقبل USB المدمج بالشريحة ، أو مداخل للبيانات من مستقبل – مستقبل USB خارجى .
· خلافا لغيرها من أطراف المنفذ PORTC الأخرى ، فإن الأطراف RC4 و RC5 ليس لديها بتات TRISC مرتبطة بها . مثل المنافذ الرقمية ، فإنها يمكن أن تعمل كمداخل رقمية . عندما يتم إعدادها من أجل تشغيل USB ، يتم تحديد اتجاه البيانات عن طريق إعداد و حالة موديول USB فى الوقت المعين . إذا تم استخدام مرسل – مستقبل خارجى ، فأن الأطراف RC4 و RC5 دائما تعمل كمداخل من المرسل – المستقبل . وإذا تم استخدام المرسل – المستقبل المدمج على الشريحة ، فإن اتجاه البيانات يتحدد عن طريق العملية التى يتم تنفيذها بواسطة الموديول فى ذلك الوقت .
ملاحظة :
عند الإعادة Power-on Reset ، أطراف المنفذ PORTC ، باستثناء RC4 , RC5 ، يتم إعدادها كمداخل رقمية . لاستخدام الأطراف RC4,RC5 كمداخل رقمية ، يجب تعطيل تمكين موديول USB
(UCON<3> = 0) ، كما يجب تعطيل تمكين مرسل مستقبل USB المدمج فى الشريحة
(UCFG<3> = 1) .
مثال لتهيئة المنفذ PORTC :
· السجل PORTC هو سجل بسعة 7 بت ، لمنفذ ثنائى الاتجاه . سجل اتجاه البيانات المقابل هو TRISC .
· تحديد (= 1) بت بالسجل TRISC سيجعل طرف المنفذ PORTC المقابل "مدخل" input (أى يتم وضع مشغل الخرج المناظر فى وضع "المعاوقة – المرتفعة" ) .
· مسح (= 0) بت بالسجل TRISC سيجعل طرف المنفذ PORTC المقابل "مخرج" output ( أى يتم وضع محتويات "مزلاج الخرج" output latch على الطرف المختار ) .
· فى الأجهزة PIC18F2455/2550/4455/4550 الطرف RC3 غير موجود .
· سجل مزلاج البيانات LATC معين أيضا بالذاكرة . القراءة – التعديل – الكتابة على السجل LATC ، يقرأ ويكتب قيمة "الخرج الممسوك" للمنفذ PORTC .
· المنفذ PORTC فى الأساس يتقاسم الوظائف المتعددة مع موديولات الاتصال التسلسلى ، بما فى ذلك EUSART و MSSP و USB .
· الأطراف RC4(Pin 15) و RC5(Pin 16) تتقاسم الوظائف المتعددة مع موديول USB . اعتمادا على تكوين (إعداد) ، فإن هذه الأطراف يمكن أن تكون بمثابة خطوط بيانات تفاضلية لمرسل – مستقبل USB المدمج بالشريحة ، أو مداخل للبيانات من مستقبل – مستقبل USB خارجى .
· خلافا لغيرها من أطراف المنفذ PORTC الأخرى ، فإن الأطراف RC4 و RC5 ليس لديها بتات TRISC مرتبطة بها . مثل المنافذ الرقمية ، فإنها يمكن أن تعمل كمداخل رقمية . عندما يتم إعدادها من أجل تشغيل USB ، يتم تحديد اتجاه البيانات عن طريق إعداد و حالة موديول USB فى الوقت المعين . إذا تم استخدام مرسل – مستقبل خارجى ، فأن الأطراف RC4 و RC5 دائما تعمل كمداخل من المرسل – المستقبل . وإذا تم استخدام المرسل – المستقبل المدمج على الشريحة ، فإن اتجاه البيانات يتحدد عن طريق العملية التى يتم تنفيذها بواسطة الموديول فى ذلك الوقت .
ملاحظة :
عند الإعادة Power-on Reset ، أطراف المنفذ PORTC ، باستثناء RC4 , RC5 ، يتم إعدادها كمداخل رقمية . لاستخدام الأطراف RC4,RC5 كمداخل رقمية ، يجب تعطيل تمكين موديول USB
(UCON<3> = 0) ، كما يجب تعطيل تمكين مرسل مستقبل USB المدمج فى الشريحة
(UCFG<3> = 1) .
مثال لتهيئة المنفذ PORTC :
- الكود:
CLRF PORTC ; Initialize PORTC by
; clearing output
; data latches
CLRF LATC ; Alternate method
; to clear output
; data latches
MOVLW 07h ; Value used to
; initialize data
; direction
MOVWF TRISC ; RC<5:0> as outputs
; RC<7:6> as inputs
رد: الترقى فى العمل مع الميكروكونترولر من السلسلة PIC16F إلى السلسلة PIC18F :
المنفذ PORTE فى الأجهزة 28-PIN :
فى الأجهزة ذات 28 طرف ، يكون المنفذ PORTE متاح فقط عندما يتم تعطيل وظيفة MCLR (MCLRE = 0) . فى هذه الحالة ، فإن المنفذ PORTE يكون "بت واحدة" ، وتكون "مدخل فقط" ، وهى البت الرابعة (MCLR/VPP/RE3) . وعملها يتم التحكم فيه عن طريق بت تكوين MCLRE . عندما يتم اختيارها كطرف منفذ (MCLRE = 0) ، فإنها تعمل طرف مدخل رقمى فقط ، ومن ثم ، ليس لها بتات TRIS أو LAT مرتبطة بعملها . خلاف ذلك ، فإنها تعمل كمدخل للتصفير (المسح) الرئيسى Master Clear .
فى كلا الإعدادين ، فإن الطرف RE3 أيضا يعمل "كمدخل لجهد البرمجة" خلال البرمجة .
ملاحظة :
عند الإعادة Power-on Reset ، فإن الطرف RE3 يتم تمكينه كمدخل رقمى فقط إذا تم تعطيل تمكين وظيفة Master Clear .
صفحة 2 من اصل 2 • 1, 2
مواضيع مماثلة
» الترقى فى العمل مع الميكروكونترولر من السلسلة PIC16F إلى السلسلة PIC18F :
» مراجعة برمجة الميكروكونترولر PIC من خلال مشاريع الميكروكونترولر PIC16F877A مع الدايودات المشعة للضوء والمترجم ميكروسى برو :
» البداية وبرمجة السلسلة PIC16 بلغة السى :
» 2.1 أنظمة الميكروكونترولر :
» تطور الميكروكونترولر :
» مراجعة برمجة الميكروكونترولر PIC من خلال مشاريع الميكروكونترولر PIC16F877A مع الدايودات المشعة للضوء والمترجم ميكروسى برو :
» البداية وبرمجة السلسلة PIC16 بلغة السى :
» 2.1 أنظمة الميكروكونترولر :
» تطور الميكروكونترولر :
منتديات الهندسة الكهربية والإلكترونية والميكاترونكس والكومبيوتر :: الميكروكونترولر PIC والبرجة بلغة السى والمترجم مسكروسى برو :: الميكروكونترولر PIC والبرمجة بلغة السى والمترجم ميكروسى برو
صفحة 2 من اصل 2
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى