السلام عليكم ورحمه الله وبركاتة .
الحمد لله تم والإنتهاء من كتابة الكود والبرنامج ..
ولأن نتطرق ونبدأ فى تنفيذ مراحل الهارد وير ..
من أختيار العناصر الإلكترونيه المناسبه لكى يتم بناء بوردة جيدة .. مكونة من عناصر .. الكترونية .. وراليهات تتحمل التيارات المطلوبة ..
وأيضااااا الباب مفتوح للجميع فى ابداء الإراء والملاحظات حول الكود .. من ناحيه التعديل علية أو اضافة مميزات او امكانيات أخرى ..
اليكم الأن الكود .. للإطلاع عليه ..
كود:
// ENG / ABDALLA HEYGAZY //
// DATA / 2016 / 3 / 17 //
#define enable_1 portb.f0
#define enable_2 portb.f1
#define enable_3 portb.f2
#define enable_4 portb.f3
#define enable_5 portb.f4
#define enable_6 portb.f5
#define DP portc.f7
////////////////////////////////
#define enable_1_dir trise.f0
#define enable_2_dir trise.f1
#define enable_3_dir trise.f2
#define enable_4_dir trise.f3
#define enable_5_dir trise.f4
#define enable_6_dir trise.f5
#define DP_dir trisc.f7
////////////////////////////////
#define seg_data portc
#define seg_data_dir trisc
#define seg_data1 portd
#define seg_data_dir1 trisd
#define output 0
#define input 1
#define off 0
#define on 1
///////////////////////////////
////////////////////////////////////////////////////////////////////////////////
char segment[]={63,6,91,79,102,109,125,7,127,111};
char segment1[]={63,6,91,79,102,109,125,7,127,111};
unsigned char ch,x;
unsigned int adc_rd;
unsigned int adc_rd1;
char *text;
long tlong;
long tlong1;
///////////////////
void init(){
INTCON = 0;
ADCON1 = 0x02;
seg_data_dir=enable_1_dir=enable_2_dir=enable_3_dir=DP_dir=enable_4_dir=enable_5_dir=enable_6_dir=output;
seg_data_dir=enable_4_dir=enable_5_dir=enable_6_dir=DP_dir=output;
seg_data=0;
seg_data1=0;
enable_1=1;
enable_2=1;
enable_3=1;
enable_4=1;
enable_5=1;
enable_6=1;
TRISB=output;
TRISD=output;
PORTB=off;
PORTD=off;
TRISE=output;
PORTE=off;
TRISA=3;
PORTE=off;
}
////////////////////////////////////////////////////////////////////////////////
void show_adc() {
adc_rd = ADC_Read(0);
tlong = (long)adc_rd * 5000;
tlong = tlong / 1023;
//***********************//
adc_rd1 = ADC_Read(1);
tlong1 = (long)adc_rd1 * 5000;
tlong1 = tlong1 / 1023;
}
void show_number() {
////////////////////////////////////////////////////////////////////////////////
enable_1=0;enable_2=1;
enable_3=1;DP=1;
seg_data=seg_data&0x80|segment[tlong/1000];
delay_ms(1);
seg_data=0;
////////////////////////////////////////////////////////////////////////////////
enable_1=1;enable_2=0;
enable_3=1;
seg_data=seg_data&0x80|segment[tlong%1000/100];
delay_ms(1);
seg_data=0;
////////////////////////////////////////////////////////////////////////////////
enable_1=1;enable_2=1;
enable_3=0;
seg_data=seg_data&0x80|segment[tlong%1000%100/10];
delay_ms(1);
seg_data=0;
////////////////////////////////////////////////////////////////////////////////
enable_1=1;enable_2=1;
enable_3=1;
seg_data=seg_data&0x80|segment[tlong%1000%100%10];
delay_ms(1);
seg_data=0;
}
void show_number2() {
////////////////////////////////////////////////////////////////////////////////
enable_4=0;enable_5=1;
enable_6=1;DP=0;
seg_data1=seg_data1&0x80|segment1[tlong1/1000];
delay_ms(1);
seg_data1=0;
////////////////////////////////////////////////////////////////////////////////
enable_4=1;enable_5=0;
enable_6=1;
seg_data1=seg_data1&0x80|segment1[tlong1%1000/100];
delay_ms(1);
seg_data1=0;
////////////////////////////////////////////////////////////////////////////////
enable_4=1;enable_5=1;
enable_6=0;
seg_data1=seg_data1&0x80|segment1[tlong1%1000%100/10];
delay_ms(1);
seg_data1=0;
////////////////////////////////////////////////////////////////////////////////
enable_4=1;enable_5=1;
enable_6=1;
seg_data1=seg_data1&0x80|segment1[tlong1%1000%100%10];
delay_ms(1);
seg_data1=0;
}
void InitTimer0(){
OPTION_REG = 0x88;
TMR0 = 56;
INTCON = 0xA0;
}
void Interrupt(){
if (TMR0IF_bit){
TMR0IF_bit = 0;
TMR0 = 56;
//Enter your code here
}
}
void main(){
init();
InitTimer0();
loop4:
while (1)
{
show_adc();
show_number();
show_number2();
if( tlong>=1500 ) { porta.f3=1; porte.f2=0; porte.f1=0; goto loop }
show_adc();
show_number();
show_number2();
}
loop:
while (1)
{
if( tlong>1700 ) { porte.f2=1; porta.f3=0; goto loop1 }
if( tlong<1500 ) { porta.f3=1; porte.f2=0; goto loop4 }
show_adc();
show_number();
show_number2();
}
loop1:
while (1)
{
if( tlong>1800 ) { porte.f1=1; porte.f0=0; porte.f2=0;goto loop2 }
if( tlong<1700 ) { porte.f2=1; porte.f1=0; porte.f0=0; porta.f3=0; goto loop }
show_adc();
show_number();
show_number2();
}
loop2:
while (1)
{
if( tlong>1900 ) { porte.f0=1; porte.f1=0; porte.f2=0; goto loop3 }
if( tlong<1800 ) { porte.f1=1; porte.f0=0; porte.f2=0; goto loop1 }
show_adc();
show_number();
show_number2();
}
loop3:
while (1)
{
if( tlong>=2010 ) { porta.f5=1; porte.f0=0; porte.f1=0; porte.f2=0; }
if( tlong<=1900 ) { porte.f0=1; porte.f1=0; porta.f5=0; porte.f2=0; goto loop2 }
if( tlong>=2450 ) { porta.f2=1;goto loop5 }
show_adc();
show_number();
show_number2();
}
loop5:
while (1)
{
if( tlong<2350 ) { porta.f5=1; porta.f2=0; porte.f0=0; porte.f1=0; porte.f2=0; porta.f3=0;goto loop3 }
show_adc();
show_number();
show_number2();
}
}
صورة عامة للنظام
وايضااا لكم المشروع كامل للتحميل والتجربة
..
https://drive.google.com/file/d/0Bxg...ew?usp=sharing
منتظر الإقتراحات والملاحظات
تحياتى للجميع
...