أساتذتى عمالقة هذا المنتدى المحترم
السلام عليكم
أنا مبتدأ فى موضوع الميكرو كنترولر و لغة الميكر سى
أريد برنامج بالميكرو سى لعدد 2 سفن سيجمنت (common anode مثلا )يعد من 0 إلى 99 باستمرار (أنا حاولت بس مشكلتى فى ظهور الرقمين للعين فى نفس اللحظة تقريبا)(بمعنى أن مشكلتى مع حكاية الخداع البصرى حيث انه لا يظهر على البروتيس ان الرقمين كإنهم مكتوبين فى نفس الوقت ولكن يظهر الرقمين بفلاشات)
وهذا هو ما توصلت إليه ياريت المساعدة بتوضيح الخطأ أو إعطائى برنامج ينفذ ذلك
مع جزيل الشكر
كود:
#define unit1 PORTa.F0
#define unit2 PORTa.F1
char Display(char x)
{char y;
char segment[] = {192,249,164,176,153,146,130,216,128,144};
y = segment[x]; // Pattern to return
return (y);
}
void main()
{char i;char ones;char tens;char number;
number=0;trisa=0;trisb=0;
unit1=0;unit2=0;portb=0xff;
while(1)
{ones=number%10;
tens=number/10;
portb=Display(ones);unit1=1;delay_ms(4);unit1=0;
portb=Display(tens);unit2=1;delay_ms(5);unit2=0;
number++;
if(number==100){delay_ms(1000);number=0;}
}
}