التدريب رقم 3  : إنشاء عداد ثنائى تصاعدى 3 بت :

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل

التدريب رقم 3  : إنشاء عداد ثنائى تصاعدى 3 بت :

مُساهمة من طرف Admin في السبت مارس 05, 2016 1:13 pm

التدريب رقم 3  : إنشاء عداد ثنائى تصاعدى 3 بت :
الغرض من هذا المشروع هو إنشاء عداد تصاعدى ثنائى 3 بت ، والذى يقوم بالعد من 000 إلى 111 مع تأخير واحد ثانية بين كل عدة . بعد الوصول إلى 111 يتم إعادته مرة أخرى إلى الصفر 000 ويبدأ العد مرة أخرى . سوف يتم عرض قيمة العد على ثلاثة ليدات .
الدائرة الكهربية :




يتم توصيل الأطراف GP0, GP1, GP2 (PIC pins 7, 6, 5) إلى الليدات LED 3, 2, 1 على الترتيب .
البرنامج :
تمهيد :
ينبغى تهيئة وإعداد السجلات ANSEL (سجل اختيار وضع الدخل طرف الدخل / الخرج التناظرى) و CMCON (سجل التحكم فى المقارن ) لاستخدام القنوات التناظرية كمداخل / مخارج رقمية كما يلى :



الكود:


INITIALIZING GPIO example :
void init(){
CMCON0 = 7 ; // Set GP<2:0> to  digital I/O
ANSEL=0; // digital I/O  ANS<3:0>: Analog Select bits ,
//1 = Analog input , 0 = Digital I/O.
TRISIO=0x0C ; //0b00001100 Set GP<3:2> as inputs , and set GP<5:4,1:0> as outputs
GPIO = 0; // Init GPIO
}
//==========================


/*
   Experiment No. 1 : 3-bit Up Counter
  LEDs 1, 2, and 3 are connected to GPIO2, GPIO1, and GPIO0    respectively
*/

short i;
void main() {
CMCON0 = 7; // Disable comparators
TRISIO = 8;  // 0b00001000 >> GPIO0-GPIO2 are Outputs, GP3 is default input
ANSEL = 0;  // No ADC
GPIO = 0;
delay_ms(500);
i=0;
while(1) {
   GPIO=i;
   delay_ms(1000);
   i = i+1;
   if(i ==  i=0;

   }
}


Admin
Admin

عدد المساهمات : 985
تاريخ التسجيل : 28/01/2014

معاينة صفحة البيانات الشخصي للعضو http://fathallaabdelaziz.forumarabia.com

الرجوع الى أعلى الصفحة اذهب الى الأسفل

استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى