القرية الإلكترونية - الكترونيات - كمبيوتر - هاردوير - خدمات المواقع - كهرباء - فضائيات - جوال - اتصالات - تكييف وتبريد - اجهزة الانتاج الزراعي - كهرباء السيارات

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


لوحة مفاتيح عربية

العودة   منتدى القرية الإلكترونية > القسم الالكتروني > منتدى الإلكترونيات
التسجيل       اجعل كافة المشاركات مقروءة

منتدى الإلكترونيات قسم الالكترونكس لمناقشة الافكار والمعلومات المتعلقة بالهندسة الالكترونية للمبتدئين والهواة والفنيين - Electronics

رد
 
أدوات الموضوع
قديم 04-05-2016, 09:03 AM   #1
F.Abdelaziz
استاذ و مشرف قسم الالكترونيات
 
الصورة الرمزية F.Abdelaziz

المشاركات: 6,894
أحصائية الترشيح

عدد النقاط : 6483


النشاط

معدل تقييم المستوى: 332
افتراضي المدخل المباشر للتعامل مع وحدات السفن سيجمنت بطريقة Multiplexing من خلال تدريبات متعد

المدخل المباشر للتعامل مع وحدات السفن سيجمنت بطريقة Multiplexing من خلال تدريبات متعددة ومتدرجة
التدريب الأول : تمهيد
استخدام وحدتى عرض سفن سيجمنت لعرض العدد الثابت "12" وليشير إلى رقم الوحدة المتفق عليها .
الدائرة الكهربية :



البرنامج :


كود:
/*
 * Project name: Multiplexing_7-Segment -2 units
     MCU:             PIC16F877A
     Oscillator:      HS, 8.0000 MHz
     SW:              mikroC PRO
*/
//////////////////////////////
#define Digit1 PORTA.RA0 // TENS
#define Digit2 PORTA.RA1 // ONES
///////////////////////////////////////
unsigned char Display (unsigned char digit)//convert(decoder) digit to 7 segment bit pattern 
  {
    unsigned char pattern;
    unsigned char  SEGMENT_MAP[10] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
    pattern =  SEGMENT_MAP[digit] ;  //The pattern to return ,segment data for common cathode
    return (pattern);
  }
////////////////////////////////////////
void main() {
  unsigned char MSD, LSD, count=12; // display constant 2 digit number 
  ADCON1= 6;           // Configure all pins as digital inputs .
  TRISA = 0;            // Configure PORTA as outputs , COMMON CATHODES
  TRISB = 0;            // Configure PORTB as outputs ,7 SEGMENT DATA PORT
//////////////////////////
 Digit1 = 0;            //Disable digit 1
 Digit2 = 0;            //Disable digit 2
////////////////
  while(1){
		///////////MSB is Digit1///// Steps :////////
       MSD = count / 10;       	//1-Extract MSD from "count" >>TENS
       PORTB = Display(MSD);    //2-Display the MSD , send to data port
       Digit1 = 1;             	//3- Enable digit 1 
       Delay_Ms(10);            //4- uase a short delay 10ms , as example
       Digit1 = 0;             	//5- Disable digit 2
		/////////////LSB is Digit2////////Repeat steps :///
       LSD = count % 10;        // LSD digit >>>ONES
       PORTB = Display(LSD);    //Display the LSD
       Digit2 = 1;             	//Enable digit 2
       Delay_Ms(10);            //a short 10ms delay
       Digit2 = 0;             	//Disable digit 2
	   ///////////////////////////////////
    }
}

ملف البرنامج والدائرة الكهربية على الرابط :


http://www.mediafire.com/download/cm...T-2UNITS-1.zip
F.Abdelaziz غير متواجد حالياً   رد مع اقتباس مشاركة محذوفة
اعلانات
قديم 04-05-2016, 09:13 AM   #2
F.Abdelaziz
استاذ و مشرف قسم الالكترونيات
 
الصورة الرمزية F.Abdelaziz

المشاركات: 6,894
أحصائية الترشيح

عدد النقاط : 6483


النشاط

معدل تقييم المستوى: 332
افتراضي

التدريب الثانى :
تطوير للتدريب الأول ، وذلك باستخدام أربعة وحدات لعرض العدد "1234"

الدائرة الكهربية :



البرنامج :


كود:
/*
 * Project name: Multiplexing_7-Segment 4 UNITS
     MCU:             PIC16F877A
     Oscillator:      HS, 8.0000 MHz
     SW:              mikroC PRO
*/
#define Digit1 PORTA.RA0 // THOUTHAND
#define Digit2 PORTA.RA1 // HUNDRED
#define Digit3 PORTA.RA2 // TENS
#define Digit4 PORTA.RA3 // ONES

unsigned char Display (unsigned char digit)
  {
    unsigned char pattern;
    unsigned char  SEGMENT_MAP[10] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
    pattern =  SEGMENT_MAP[digit] ;  //The pattern to return
    return (pattern);
  }

void main() {
  unsigned char DD1,DD2, DD3,DD4 ;
  unsigned int count=1234; //more than char
  ADCON1= 6;           // ALL AS DIGITAL
  TRISA = 0;            // Configure PORTA as outputs , COMMON CATHODES
  TRISB = 0;            // Configure PORTB as outputs ,7 SEGMENT DATA PORT

Digit1 = 0;            //Disable digit 1
Digit2 = 0;            //Disable digit 2
Digit3 = 0;            //Disable digit 3
Digit4 = 0;            //Disable digit 4 


  while(1){
		///////////
       DD1 = count / 1000;       //Extract DD1 from count >>THOUTHAND
       PORTB = Display(DD1);    //Display the DD1
       Digit1 = 1;             //Enable digit 1
       Delay_Ms(10);            //a short 10ms delay
       Digit1 = 0;             //Disable digit 1
		/////////
       DD2 = (count/100) % 10;        // DD2 digit >>>HUNDRED
       PORTB = Display(DD2);    //Display the DD3
       Digit2 = 1;             //Enable digit 2
       Delay_Ms(10);            //a short 10ms delay
       Digit2 = 0;             //Disable digit 2
	   ////////////
	   DD3 = (count/10) % 10;       //Extract DD3 from count >>TENS
       PORTB = Display(DD3);    //Display the DD3
       Digit3 = 1;             //Enable digit 3
       Delay_Ms(10);            //a short 10ms delay
       Digit3 = 0;             //Disable digit 3
	   /////////
	   DD4 = count % 10;       //Extract DD4 from count >>ONES
       PORTB = Display(DD4);    //Display the DD4
       Digit4 = 1;             //Enable digit 4
       Delay_Ms(10);            //a short 10ms delay
       Digit4 = 0;             //Disable digit 4
    }
}
F.Abdelaziz غير متواجد حالياً   رد مع اقتباس مشاركة محذوفة
احصائية الشكر والاعجاب - 1 شكراً, 0 عدم اعجاب, 0 اعجاب
شكراً نعيم البديري ( شكر العضو على هذه المشاركة )
اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )
  
قديم 04-05-2016, 09:25 AM   #3
F.Abdelaziz
استاذ و مشرف قسم الالكترونيات
 
الصورة الرمزية F.Abdelaziz

المشاركات: 6,894
أحصائية الترشيح

عدد النقاط : 6483


النشاط

معدل تقييم المستوى: 332
افتراضي

التدريب الثالث : تطبيق على التدريب السابق
قراءة جهد تناظرى من 0v إلى 5v من مقاومة متغيرة وعرض نتيجة التحويل من تناظرى لرقمى من 0 إلى 1023

الدائرة الكهربية :







البرنامج :


كود:
/*
 * Project name: Multiplexing_7-Segment 4 UNITS
     MCU:             PIC16F877A , ADC , 0-1023
     Oscillator:      HS, 8.0000 MHz
     SW:              mikroC PRO
*/
#define Digit1 PORTD.B0 // THOUTHAND
#define Digit2 PORTD.B1 // HUNDRED
#define Digit3 PORTD.B2 // TENS
#define Digit4 PORTD.B3 // ONES

unsigned char Display (unsigned char digit)
  {
    unsigned char pattern;
    unsigned char  SEGMENT_MAP[10] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
    pattern =  SEGMENT_MAP[digit] ;  //The pattern to return
    return (pattern);
  }

void main() {
  unsigned char DD1,DD2, DD3,DD4 ;
  unsigned int ADC_result; //
  ADCON1= 0;           //
  TRISA.B0=1; // AN0 INPUT
  TRISD = 0;            // Configure PORTD as outputs , COMMON CATHODES
  TRISB = 0;            // Configure PORTB as outputs ,7 SEGMENT DATA PORT

Digit1 = 0;            //Disable digit 1
Digit2 = 0;            //Disable digit 2
Digit3 = 0;            //Disable digit 3
Digit4 = 0;            //Disable digit 4


  while(1){
  ADC_result=ADC_Read(0);  // Read analog value from channel 0
		///////////
       DD1 = ADC_result / 1000;       //Extract DD1 from ADC_result >>THOUTHAND
       PORTB = Display(DD1);    //Display the DD1
       Digit1 = 1;             //Enable digit 1
       Delay_Ms(10);            //a short 10ms delay
       Digit1 = 0;             //Disable digit 1
		/////////
       DD2 = (ADC_result/100) % 10;        // DD2 digit >>>HUNDRED
       PORTB = Display(DD2);    //Display the DD3
       Digit2 = 1;             //Enable digit 2
       Delay_Ms(10);            //a short 10ms delay
       Digit2 = 0;             //Disable digit 2
	   ////////////
	   DD3 = (ADC_result/10) % 10;       //Extract DD3 from ADC_result >>TENS
       PORTB = Display(DD3);    //Display the DD3
       Digit3 = 1;             //Enable digit 3
       Delay_Ms(10);            //a short 10ms delay
       Digit3 = 0;             //Disable digit 3
	   /////////
	   DD4 = ADC_result % 10;       //Extract DD4 from ADC_result >>ONES
       PORTB = Display(DD4);    //Display the DD4
       Digit4 = 1;             //Enable digit 4
       Delay_Ms(10);            //a short 10ms delay
       Digit4 = 0;             //Disable digit 4
    }
}
F.Abdelaziz غير متواجد حالياً   رد مع اقتباس مشاركة محذوفة
احصائية الشكر والاعجاب - 1 شكراً, 0 عدم اعجاب, 0 اعجاب
شكراً نعيم البديري ( شكر العضو على هذه المشاركة )
قديم 04-05-2016, 09:43 AM   #4
F.Abdelaziz
استاذ و مشرف قسم الالكترونيات
 
الصورة الرمزية F.Abdelaziz

المشاركات: 6,894
أحصائية الترشيح

عدد النقاط : 6483


النشاط

معدل تقييم المستوى: 332
افتراضي

التدريب الرابع :
قياس درجة حرارة باستخدام الحساس LM35 وعرضها على 4 وحدات سفن سيجمنت

الدائرة الكهربية :










البرنامج :


كود:
/*
 * Project name: Multiplexing_7-Segment 4 UNITS
     MCU:             PIC16F877A , ADC , LM35
     Oscillator:      HS, 8.0000 MHz
     SW:              mikroC PRO
*/
#define Digit1 PORTD.B0 // THOUTHAND
#define Digit2 PORTD.B1 // HUNDRED
#define Digit3 PORTD.B2 // TENS
#define Digit4 PORTD.B3 // ONES

unsigned char Display (unsigned char digit)
  {
    unsigned char pattern;
    unsigned char  SEGMENT_MAP[10] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
    pattern =  SEGMENT_MAP[digit] ;  //The pattern to return
    return (pattern);
  }

void main() {
  unsigned char DD1,DD2, DD3,DD4 ;
  unsigned int result; //
  float scale ;
  char num ;
  ADCON1= 0;           //
  TRISA.B0=1; // AN0 INPUT
  TRISD = 0;            // Configure PORTD as outputs , COMMON CATHODES
  TRISB = 0;            // Configure PORTB as outputs ,7 SEGMENT DATA PORT

Digit1 = 0;            //Disable digit 1
Digit2 = 0;            //Disable digit 2
Digit3 = 0;            //Disable digit 3
Digit4 = 0;            //Disable digit 4


  while(1){
  result=ADC_Read(0);  // Read analog value from channel 0
  scale = result * (5000.0/1023.0); // input analog voltage
  scale = scale /10.0 ; // input temp inc for LM35
  num = scale ;
		///////////
       DD1 = num / 1000;       //Extract DD1 from result >>THOUTHAND
       PORTB = Display(DD1);    //Display the DD1
       Digit1 = 1;             //Enable digit 1
       Delay_Ms(10);            //a short 10ms delay
       Digit1 = 0;             //Disable digit 1
		/////////
       DD2 = (num/100) % 10;        // DD2 digit >>>HUNDRED
       PORTB = Display(DD2);    //Display the DD3
       Digit2 = 1;             //Enable digit 2
       Delay_Ms(10);            //a short 10ms delay
       Digit2 = 0;             //Disable digit 2
	   ////////////
	   DD3 = (num/10) % 10;       //Extract DD3 from result >>TENS
       PORTB = Display(DD3);    //Display the DD3
       Digit3 = 1;             //Enable digit 3
       Delay_Ms(10);            //a short 10ms delay
       Digit3 = 0;             //Disable digit 3
	   /////////
	   DD4 = num % 10;       //Extract DD4 from result >>ONES
       PORTB = Display(DD4);    //Display the DD4
       Digit4 = 1;             //Enable digit 4
       Delay_Ms(10);            //a short 10ms delay
       Digit4 = 0;             //Disable digit 4
    }
}
F.Abdelaziz غير متواجد حالياً   رد مع اقتباس مشاركة محذوفة
قديم 04-05-2016, 09:51 AM   #5
F.Abdelaziz
استاذ و مشرف قسم الالكترونيات
 
الصورة الرمزية F.Abdelaziz

المشاركات: 6,894
أحصائية الترشيح

عدد النقاط : 6483


النشاط

معدل تقييم المستوى: 332
افتراضي

التدريب الخامس :

تطوير للتدريب السابق بوضع حرف :"C" للإشارة إلى الدرجات المئوية .

الدائرة الكهربية :



البرنامج :


كود:
/*
 * Project name: Multiplexing_7-Segment 4 UNITS
     MCU:             PIC16F877A , ADC , LM35 MOD
     Oscillator:      HS, 8.0000 MHz
     SW:              mikroC PRO
*/
#define Digit1 PORTD.B0 //  DIGIT 1 FROM LEFT , THOUTHAND
#define Digit2 PORTD.B1 // DIGIT 2 FROM LEFT , HUNDRED
#define Digit3 PORTD.B2 // DIGIT 3 FROM LEFT , TENS
#define Digit4 PORTD.B3 // DIGIT 4 FROM LEFT ,  ONES

unsigned char Display (unsigned char digit)
  {
    unsigned char pattern;
    unsigned char  SEGMENT_MAP[10] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
    pattern =  SEGMENT_MAP[digit] ;  //The pattern to return
    return (pattern);
  }

void main() {
  unsigned char DD1,DD2, DD3,DD4 ;
  unsigned int ADC_result; //
  float scale ;
  unsigned int num ;
  ADCON1= 0;           //
  TRISA.B0=1; // AN0 INPUT
  TRISD = 0;            // Configure PORTD as outputs , COMMON CATHODES
  TRISB = 0;            // Configure PORTB as outputs ,7 SEGMENT DATA PORT

Digit1 = 0;            //Disable digit 1
Digit2 = 0;            //Disable digit 2
Digit3 = 0;            //Disable digit 3
Digit4 = 0;            //Disable digit 4


  while(1){
  ADC_result=ADC_Read(0);  // Read analog value from channel 0
  scale = ADC_result * (5000.0/1023.0); // input analog voltage
  num = scale /10.0 ; // input temp inc for LM35
		///////////
       DD1 = num / 100;       //Extract DD1 from ADC_result >>THOUTHAND
       PORTB = Display(DD1);    //Display the DD1
       Digit1 = 1;             //Enable digit 1
       Delay_Ms(10);            //a short 10ms delay
       Digit1 = 0;             //Disable digit 1
		/////////
       DD2 = (num/10) % 10;        // DD2 digit >>>HUNDRED
       PORTB = Display(DD2);    //Display the DD3
       Digit2 = 1;             //Enable digit 2
       Delay_Ms(10);            //a short 10ms delay
       Digit2 = 0;             //Disable digit 2
	   ////////////
	   DD3 = num % 10;       //Extract DD3 from ADC_result >>TENS
       PORTB = Display(DD3);    //Display the DD3
       Digit3 = 1;             //Enable digit 3
       Delay_Ms(10);            //a short 10ms delay
       Digit3 = 0;             //Disable digit 3
	   /////////
	   //DD4 = num % 10;       //Extract DD4 from ADC_result >>ONES
       PORTB = 0x39;    //Display C CHARACTER
       Digit4 = 1;             //Enable digit 4
       Delay_Ms(10);            //a short 10ms delay
       Digit4 = 0;             //Disable digit 4
    }
}
F.Abdelaziz غير متواجد حالياً   رد مع اقتباس مشاركة محذوفة
قديم 04-05-2016, 10:06 AM   #6
F.Abdelaziz
استاذ و مشرف قسم الالكترونيات
 
الصورة الرمزية F.Abdelaziz

المشاركات: 6,894
أحصائية الترشيح

عدد النقاط : 6483


النشاط

معدل تقييم المستوى: 332
افتراضي

التدريب السادس :

تطوير للبرنامج الأول مع إزالة حرف "C" واستخدام خانة الآحاد لبيان كسر الآحاد مع عرض النقطة العشرية على وحدة السفن سيجمنت :

الدائرة الكهربية :




البرنامج :


كود:
/*
 * Project name: Multiplexing_7-Segment 4 UNITS
     MCU:             PIC16F877A , ADC , LM35 MOD
     Oscillator:      HS, 8.0000 MHz
     SW:              mikroC PRO
*/
#define Digit1 PORTD.B0 //  DIGIT 1 FROM LEFT , THOUTHAND
#define Digit2 PORTD.B1 // DIGIT 2 FROM LEFT , HUNDRED
#define Digit3 PORTD.B2 // DIGIT 3 FROM LEFT , TENS
#define Digit4 PORTD.B3 // DIGIT 4 FROM LEFT ,  ONES

unsigned char Display (unsigned char digit)
  {
    unsigned char pattern;
    unsigned char  SEGMENT_MAP[10] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
    pattern =  SEGMENT_MAP[digit] ;  //The pattern to return
    return (pattern);
  }

void main() {
unsigned char DD1,DD2, DD3,DD4 ;

float result; //
unsigned int result1;
  ADCON1= 0;           //
  TRISA.B0=1; // AN0 INPUT
  TRISD = 0;            // Configure PORTD as outputs , COMMON CATHODES
  TRISB = 0;            // Configure PORTB as outputs ,7 SEGMENT DATA PORT

Digit1 = 0;            //Disable digit 1
Digit2 = 0;            //Disable digit 2
Digit3 = 0;            //Disable digit 3
Digit4 = 0;            //Disable digit 4


  while(1){
  result=ADC_Read(0);  // Read analog value from channel 0 ,0 to 1023 
  result = result * (5000.0/1023.0); // input analog voltage
  result = result /10.0 ; // input temp in C for LM35 0.0 to 150.0
  		///////////
	result = result *10.0 ;	// float 0.0 to 1500.0
	result1=result; //integer 0 to 1500 to get fraction
		/////////////
       DD1 = result1 / 1000;       //Extract DD1 from result >>THOUTHAND(hundred)
       PORTB = Display(DD1);    //Display the DD1
       Digit1 = 1;             //Enable digit 1
       Delay_Ms(10);            //a short 10ms delay
       Digit1 = 0;             //Disable digit 1
		/////////
       DD2 = (result1/100) % 10;        // DD2 digit >>>HUNDRED (tens)
       PORTB = Display(DD2);    //Display the DD3
       Digit2 = 1;             //Enable digit 2
       Delay_Ms(10);            //a short 10ms delay
       Digit2 = 0;             //Disable digit 2
	   ////////////
	   DD3 = (result1/10) % 10;       //Extract DD3 from result >>TENS (ones)
       PORTB = Display(DD3);    //Display the DD3
       Digit3 = 1;             //Enable digit 3
       Delay_Ms(10);            //a short 10ms delay
       Digit3 = 0;             //Disable digit 3
	   /////////
	   DD4 = result1 % 10;       //Extract DD4 from result >>ONES(fraction)
       //PORTB = 0x39;    //Display C CHARACTER
	   PORTB = Display(DD4);
       Digit4 = 1;             //Enable digit 4
       Delay_Ms(10);            //a short 10ms delay
       Digit4 = 0;             //Disable digit 4
    }
}
F.Abdelaziz غير متواجد حالياً   رد مع اقتباس مشاركة محذوفة
قديم 04-05-2016, 11:49 PM   #7
Sallam
مهندس متميز
 
الصورة الرمزية Sallam

الدولة: Syria
المشاركات: 518
أحصائية الترشيح

عدد النقاط : 281


النشاط

معدل تقييم المستوى: 0
افتراضي

اقتباس:
المشاركة الأصلية كتبت بواسطة F.Abdelaziz مشاهدة المشاركة
المدخل المباشر للتعامل مع وحدات السفن سيجمنت بطريقة Multiplexing من خلال تدريبات متعددة ومتدرجة
التدريب الأول : تمهيد
استخدام وحدتى عرض سفن سيجمنت لعرض العدد الثابت "12" وليشير إلى رقم الوحدة المتفق عليها .
الدائرة الكهربية :



البرنامج :


كود:
/*
 * Project name: Multiplexing_7-Segment -2 units
     MCU:             PIC16F877A
     Oscillator:      HS, 8.0000 MHz
     SW:              mikroC PRO
*/
//////////////////////////////
#define Digit1 PORTA.RA0 // TENS
#define Digit2 PORTA.RA1 // ONES
///////////////////////////////////////
unsigned char Display (unsigned char digit)//convert(decoder) digit to 7 segment bit pattern 
  {
    unsigned char pattern;
    unsigned char  SEGMENT_MAP[10] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
    pattern =  SEGMENT_MAP[digit] ;  //The pattern to return ,segment data for common cathode
    return (pattern);
  }
////////////////////////////////////////
void main() {
  unsigned char MSD, LSD, count=12; // display constant 2 digit number 
  ADCON1= 6;           // Configure all pins as digital inputs .
  TRISA = 0;            // Configure PORTA as outputs , COMMON CATHODES
  TRISB = 0;            // Configure PORTB as outputs ,7 SEGMENT DATA PORT
//////////////////////////
 Digit1 = 0;            //Disable digit 1
 Digit2 = 0;            //Disable digit 2
////////////////
  while(1){
		///////////MSB is Digit1///// Steps :////////
       MSD = count / 10;       	//1-Extract MSD from "count" >>TENS
       PORTB = Display(MSD);    //2-Display the MSD , send to data port
       Digit1 = 1;             	//3- Enable digit 1 
       Delay_Ms(10);            //4- uase a short delay 10ms , as example
       Digit1 = 0;             	//5- Disable digit 2
		/////////////LSB is Digit2////////Repeat steps :///
       LSD = count % 10;        // LSD digit >>>ONES
       PORTB = Display(LSD);    //Display the LSD
       Digit2 = 1;             	//Enable digit 2
       Delay_Ms(10);            //a short 10ms delay
       Digit2 = 0;             	//Disable digit 2
	   ///////////////////////////////////
    }
}

ملف البرنامج والدائرة الكهربية على الرابط :


http://www.mediafire.com/download/cm...T-2UNITS-1.zip
شكرا مجددا على مجهودك وتعبك

اسمح لي أن أشارك مع حضرتك بتعديل بسيط على الكود ليصبح الاظهار للعدد 12 عداد يعد حتى 99 ثم يعود للصفر.

كود:
void main() {
  unsigned char MSD, LSD, count=0; // display constant 2 digit number
  int i;

  ADCON1= 6;           // Configure all pins as digital inputs .
  TRISA = 0;            // Configure PORTA as outputs , COMMON CATHODES
  TRISB = 0;            // Configure PORTB as outputs ,7 SEGMENT DATA PORT
//////////////////////////
 Digit1 = 0;            //Disable digit 1
 Digit2 = 0;            //Disable digit 2
////////////////
  while(1){

	 for (i=0;i<50;i++){
		///////////MSB is Digit1///// Steps :////////
       MSD = count / 10;       	//1-Extract MSD from "count" >>TENS
       PORTB = Display(MSD);    //2-Display the MSD , send to data port
       Digit1 = 1;             	//3- Enable digit 1
       Delay_Ms(10);            //4- uase a short delay 10ms , as example
       Digit1 = 0;             	//5- Disable digit 2
		/////////////LSB is Digit2////////Repeat steps :///
       LSD = count % 10;        // LSD digit >>>ONES
       PORTB = Display(LSD);    //Display the LSD
       Digit2 = 1;             	//Enable digit 2
       Delay_Ms(10);            //a short 10ms delay
       Digit2 = 0;             	//Disable digit 2
	   ///////////////////////////////////
       }
      count++;

    }
}
Sallam غير متواجد حالياً   رد مع اقتباس مشاركة محذوفة
رد

العلامات المرجعية

أدوات الموضوع

تعليمات المشاركة
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة

الانتقال السريع إلى

الساعة الآن: 12:54 AM


Powered by vBulletin® Version 3.8.6, Copyright ©2000 - 2025
Feedback Buttons provided by Advanced Post Thanks / Like (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
القرية الإلكترونية