mình mới học vi diều khiển . Mình muốn làm mạch đến số từ 1 đến 99 . nhưng mình ko biết muốn cho hiển thị trễ một giây,ví dụ hiển thị số 0 đến số 1 trễ với nhau là một giây thì ko biết phải dùng lệnh nào!!!hix Mong các bạn giúp mình với!!!
dưới đây là code của mình
#include <REGX52.H>
#include<stdio.h>
#include<math.h>
unsigned char M[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x90};
unsigned char donvi,chuc,so;
int j; int i;
void tre(void)
{
TMOD=0x02;
TH0=TL0-50;
TR0=1;
while(!TF0);
TF0=0;
TL0= 0;
}
void wait(void)
{
for(i=1;i<=10000;++i)
tre();
}
void main(void)
{
chuc=so/10;
donvi=so%10;
while(1)
{
for(so=0;so<=99;++so)
wait_a_second();
{
P1= 0xfd;
P2=M[donvi];
tre();
P1=0xfe;
P2=M[chuc];
tre();
}
}
}
nếu dùng code này thì mạch hiển thị sẽ chạy nhanh kinh khủng chả dõ gì luôn!!!!!!!!!! hix. các bạn giúp mình với!!!!! xin đa ta!!![20](http://dientuvietnam.net/forums/images/smilies/20.gif)
![20](http://dientuvietnam.net/forums/images/smilies/20.gif)
![20](http://dientuvietnam.net/forums/images/smilies/20.gif)
![20](http://dientuvietnam.net/forums/images/smilies/20.gif)
dưới đây là code của mình
#include <REGX52.H>
#include<stdio.h>
#include<math.h>
unsigned char M[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x90};
unsigned char donvi,chuc,so;
int j; int i;
void tre(void)
{
TMOD=0x02;
TH0=TL0-50;
TR0=1;
while(!TF0);
TF0=0;
TL0= 0;
}
void wait(void)
{
for(i=1;i<=10000;++i)
tre();
}
void main(void)
{
chuc=so/10;
donvi=so%10;
while(1)
{
for(so=0;so<=99;++so)
wait_a_second();
{
P1= 0xfd;
P2=M[donvi];
tre();
P1=0xfe;
P2=M[chuc];
tre();
}
}
}
nếu dùng code này thì mạch hiển thị sẽ chạy nhanh kinh khủng chả dõ gì luôn!!!!!!!!!! hix. các bạn giúp mình với!!!!! xin đa ta!!
![20](http://dientuvietnam.net/forums/images/smilies/20.gif)
![20](http://dientuvietnam.net/forums/images/smilies/20.gif)
![20](http://dientuvietnam.net/forums/images/smilies/20.gif)
![20](http://dientuvietnam.net/forums/images/smilies/20.gif)
![20](http://dientuvietnam.net/forums/images/smilies/20.gif)
Comment