السلام عليكم
نعم أخوي المشكلة بقراءة المدخل والحمد لله حلت وأخيرا لسبب تافه جدا
والخطأمني
أشكر كاتب البرنامج الاصلي وصراحا لا أتذكر
والكود الصحيح هو:
#define seg_data portb
#define seg_data_dir trisb
#define seg1_en portc.f0
#define seg1_en_dir trisc.f0
#define seg2_en portc.f1
#define seg2_en_dir trisc.f1
#define input 1
#define output 0
#define pressed 1
#define on 1
#define off 0
#define active 0
#define not_active 1
///////////////////////////////////////////////////
char segment[]={63,6,91,79,102,109,125,7,127,111};
signed char number=0, temp,x,tem1[10];
void init() { seg1_en_dir=output;
seg2_en_dir=output;
seg_data=off;
seg_data_dir=output; }
//////////////////////////////////////////////////
show_number() { seg1_en=active;seg2_en=not_active;
seg_data=segment[temp/10]; delay_ms(2); seg_data=off;
seg2_en=active;seg1_en=not_active;
seg_data=segment[temp%10]; delay_ms(2); seg_data=off; }
//////////////////////////////////////////////////
void main(){
PORTA=1;TRISA=0xff;
init(); while(1){
show_number();
temp=ADC_Read(0)/10;
}}
قارىء مدخل تماثلي يصلح لامور كثيره أنا أريده لقياس حرارة خزان ماء
أشكر أخوي الطيب الاستاذ أحمد سمير فايد
ورحمة الله على الاستاذ إبراهيم الفقي