منتديات الهندسة الكهربية والإلكترونية والميكاترونكس والكومبيوتر
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

التدريب الرابع : إنشاء عداد تصاعدى تنازلى من “0” إلى “99” باستخدم وحدتى عرض سفن سيجمنت مع الدائرة المتكاملة 7448 وبدون استخدام ترانزستورات ومع المترجم CCS C .

اذهب الى الأسفل

التدريب الرابع : إنشاء عداد تصاعدى تنازلى من “0” إلى “99” باستخدم وحدتى عرض سفن سيجمنت مع الدائرة المتكاملة 7448 وبدون استخدام ترانزستورات ومع المترجم CCS C  .  Empty التدريب الرابع : إنشاء عداد تصاعدى تنازلى من “0” إلى “99” باستخدم وحدتى عرض سفن سيجمنت مع الدائرة المتكاملة 7448 وبدون استخدام ترانزستورات ومع المترجم CCS C .

مُساهمة من طرف Admin الأربعاء مايو 06, 2015 8:49 pm

التدريب الرابع : إنشاء عداد تصاعدى تنازلى من “0” إلى “99” باستخدم وحدتى عرض سفن سيجمنت مع الدائرة المتكاملة 7448 وبدون استخدام ترانزستورات ومع المترجم CCS C .
الدائرة الكهربية :


التدريب الرابع : إنشاء عداد تصاعدى تنازلى من “0” إلى “99” باستخدم وحدتى عرض سفن سيجمنت مع الدائرة المتكاملة 7448 وبدون استخدام ترانزستورات ومع المترجم CCS C  .  416

البرنامج :

الكود:

/******************************************************
 UP/ Down Counter 0-99 using 7448 without transistors
*******************************************************/
#include <16f877.h>    //
#use delay(clock=4000000)  //

#define    increase      pin_a0  //  use increase instead of pin_a0
#define  decrease      pin_a1  // use decrease instead of pin_a1

char units=0, tens=0, count=0; // int variables, declaration
// Data values for common cathode display
const int digit[10]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09};//

/********* main function********/

void main ()
{
 
  while(true)    // endless loop
  {
      output_b(digit[units]|(0b00100000)); // enable units display , disable tens display , send units data using bit maske by OR
      delay_ms(5);                          // short delay
      ////////////////////////////////////////////////////////////////
      output_b(digit[tens]|(0b00010000));  // enable tens display , disable units display , send tens data using bit maske by OR
      delay_ms(5);                          // short delay
      ////////////////increase button //////////////////////////////////////////
      if (input( increase))  // test if increase button is pressed
      {
      /////////////////////increment //////////////////////
          count++;    // count value is increased by 1
      ///////////////////calculations //////////////////////////
          units=count%10;;        // Calculating units digit
          tens=count/10;          // Calculating tens digit
      //////////////test button condition///////////////////////////////////
          while(input( increase))    // Wait until increase button is not pressed
          {
            output_b(digit[units]|(0b00100000)); // enable units display , disable tens display , send units data using bit maske by OR
            delay_ms(5);                          // short delay
            //////////////////////////////////////
          output_b(digit[tens]|(0b00010000));  // enable tens display , disable units display , send tens data using bit maske by OR
            delay_ms(5);                          // short delay
          }
        }
      /////////////////decrease button///////////////////////
     
      if (input(decrease)&&(count!=0))  // test if decrease button is pressed AND count not equal zero
      {
        /////////////////////////////////////////////
          count--;    // count value is decreased by 1
      //////////////////////calculations ////////////////////////////
        units=count%10;;        // Calculating units digit
        tens=count/10;          // Calculating tens digit
        //////////////////est button condition////////////////
          while(input(decrease))      // Wait until decrease button is not pressed
          {
            output_b(digit[units]|(0b00100000)); //  enable units display , disable tens display , send units data using bit maske by OR
            delay_ms(5);                          // short delay
            output_b(digit[tens]|(0b00010000));  // enable tens display , disable units display , send tens data using bit maske by OR
            delay_ms(5);                          // short delay

          }
      }
      if (count==100)  // if ount value is 100 >>> reset it to zero
          count=0;
    }
}

Admin
Admin

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

https://fathallaabdelaziz.forumarabia.com

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

الرجوع الى أعلى الصفحة

- مواضيع مماثلة
» التدريب الثالث : إنشاء عداد بمفتاح ضاعط أو بحساس لعد الأشياء من “0” إلى “99” باستخدم وحدتى عرض سفن سيجمنت مع استخدام ترانزستورات ومع المترجم CCS C .
» التدريب الثانى : إنشاء عداد بمفتاح ضاعط أو بحساس لعد الأشياء من “0” إلى “99” باستخدم وحدتى عرض سفن سيجمنت مع المترجم CCS C .
» التدريب رقم 3  : إنشاء عداد ثنائى تصاعدى 3 بت :
» الليد ماتريكس LED MATRIX علميا وعمليا والبرمجة بلغة السى والمترجم MIKROC والمترجم CCS C :
» مثال على المقاطعة الخارجية External interrupt : عداد تصاعدى

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