 |
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
|
|
نشاط [ F.Abdelaziz ]
قوة السمعة:
|
|
13-06-2017, 04:31 PM
المشاركة 9
|
|
عداد تصاعدى / تنازلى من 0000 إلى 9999 بأربع وحدات سفن سيحمنت ومفسر شفرة 7448 :
البرنامج :
كود:
#define disp_unit1 PORTA.F2 // Thousands Digit
#define disp_unit2 PORTA.F3 //Hundreds Digit
#define disp_unit3 PORTA.F6 //Tens Digit
#define disp_unit4 PORTA.F7 //Ones Digit
#define Up PORTA.F0
#define Down PORTA.F1
unsigned Number=0,Ones,Tens,Hundreds,Thousands ,rem ; // Variables
void Display() // Display function
{
Thousands = Number/1000; // Thousands
rem = Number%1000 ; // reminder
Hundreds = rem/100; // Hundreds
rem = rem%100 ; // reminder
Tens = rem/10; // Tens
Ones = rem%10; //Ones
disp_unit2=1; // off
disp_unit3=1; // off
disp_unit4=1; // off
PORTB=Thousands ; //Load Thousands Data
disp_unit1=0; // Thousands => on
delay_ms(3);
disp_unit1=1; // off
disp_unit3=1; // off
disp_unit4=1; // off
PORTB=Hundreds ; //Load Hundreds Data
disp_unit2=0; // Hundreds => on
delay_ms(3);
disp_unit1=1; // off
disp_unit2=1; // off
disp_unit4=1; // off
PORTB=Tens ; //Load Tens Data
disp_unit3=0; // Tens => on
delay_ms(3);
disp_unit1=1; // off
disp_unit2=1; // off
disp_unit3=1; // off
PORTB=Ones ; //Load Ones Data
disp_unit4=0; // Ones => on
delay_ms(3);
}
//*****************************************************************
void Setup()
{
CMCON=7; //All pind digital I/O
TRISA.f0=1; TRISA.f1=1; TRISA.f2=0; TRISA.f3=0;TRISA.f6=0;TRISA.f7=0; //PORTA setup
TRISB=0; PORTB=0; //PORTB setup
disp_unit1=1; disp_unit2=1;disp_unit3=1;disp_unit4=1;//Initial => off
}
//*****************************************************************
void main()
{
Setup();
while(1)
{
if(Up) // Press Up => PORTA.f0 high
{
Number++;
if(Number==10000)Number=0;
while(Up) // To avoid an increase in number wait until release => PORTA.f0 low.
{
Display();
}
}
if(Down) //Press Up => PORTA.f1 high
{
if(Number==0)Number=10000;
Number--;
while(Down) // To avoid an increase in number wait until release => PORTA.f1 low.
{
Display();
}
}
Display();
}
}
النتيجة :
|