PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : شمارنده



kia749
08-04-2008, 13:18
سلام.من ميخوام يه برنامه بنويسم كه يك عدد4 رقمي پيش فرض رو در ابتدا بر روي 4 تا سون سگمنت نشون بده و هر 1 ثانيه يكي به عدد اضافه كنه.
ضمنا برنامه بايد بر روي اي سي 8951 ريخته بشه.
مثلا عدد 1300 باشه و بعد از 1 ثانيه 1301 1302ُِو...بشه.
ممنون ميشم كمكم كنيد.

Hesam_K
08-04-2008, 16:28
اينو من قبلاً براي PIC و دوشمارنده نوشته بودم. با تغييرات خيلي كمي ميتوني براي 8051 عوضش كني (قسمت Initش رو حذف كن و بجاش Init برنامه خودت رو بنويس).
براي 4 سگمنت هم طبق برنامه، ميتوني گسترش بدي.
[align=left:c519199c0b]
#define uchar unsigned char
#define uint unsigned int

void init(void);

void main()
{
uint loop;
uchar Yseg, Dseg, Yekan, Dahgan;

uchar num[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f };
Yekan=0;
Dahgan=0;

init();

for(;;){
Yekan++;
if(Yekan>9){
Dahgan++;
if(Dahgan>9) Dahgan=0;
Yekan=0;
Dseg=num[Dahgan];
}
Yseg=num[Yekan];

for(loop=0; loop<500; loop++){ // 500*(1000+1000)=1S delay
portb=0x40;
portd=Yseg;
Delay_us(1000);

portb=0x04;
portd=Dseg;
Delay_us(1000);

}
}
}

void init(){
portb=0x00;
trisb=0x01;

portd=0x00;
trisd=0x00;
}
[/align:c519199c0b]