Chào mọi người,
Mình làm cái mạch đếm từ 0-999 nhưng không biết cách bỏ số không ở hàng chục và trăm, mọi người giúp minh nhé.
Thanks,
đây
#include <REGX51.H>
#define led1 P2_0
#define led2 P2_1
#define led3 P2_2
#define led4 P2_3
#define chay P1_7
unsigned int nghin, tram, chuc, donvi;
char i,j,dem,k,n,m;
// ma hex cua led 7 doan
unsigned char ma[]={0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90};
/khoi tao timer 1 de quyet led
void delay_timer1(void)
{
TMOD=0x10; //chon che do dinh thoi 16bit
TH1=-9215/256; //nap gia tri cho bit cao (26ms)
TL1=-9215/256; //nap gia tri cho bit thap (26ms)
TF1=0; //xoa co tran
TR1=1; //khoi dong bo dinh thoi timer0 chay
while (!TF1); //cho co tran bat len 1
TR1=0; // ngung bo dinh thoi
}
//ham quet led de hien thi so
void quet_led(void)
{
led1=1;
P1=ma[nghin];
delay_timer1();
led1=0;
led2=1;
P1=ma[tram] ;
delay_timer1();
led2=0;
led3=1;
P1=ma[chuc];
delay_timer1();
led3=0;
led4=1;
P1=ma[donvi];
delay_timer1();
led4=0;
tram= i%10;
nghin=i/10;
donvi=j%10;
chuc= j/10;
}
void main()
{
dem=100;
while(1)
{
while (!chay) //khoi dong he thong
delay(10); //Chong soc dien
{
for (i=dem;i>=0;i--) //giam hang nghin, tram
{
for (j=59;j>=0;j--) //giam hang don vi, chuc
{
{
for (k=0;k<20;k++) //thoi gian chay 1s
{
quet_led();
}}}}
}
Mình làm cái mạch đếm từ 0-999 nhưng không biết cách bỏ số không ở hàng chục và trăm, mọi người giúp minh nhé.
Thanks,
đây
#include <REGX51.H>
#define led1 P2_0
#define led2 P2_1
#define led3 P2_2
#define led4 P2_3
#define chay P1_7
unsigned int nghin, tram, chuc, donvi;
char i,j,dem,k,n,m;
// ma hex cua led 7 doan
unsigned char ma[]={0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90};
/khoi tao timer 1 de quyet led
void delay_timer1(void)
{
TMOD=0x10; //chon che do dinh thoi 16bit
TH1=-9215/256; //nap gia tri cho bit cao (26ms)
TL1=-9215/256; //nap gia tri cho bit thap (26ms)
TF1=0; //xoa co tran
TR1=1; //khoi dong bo dinh thoi timer0 chay
while (!TF1); //cho co tran bat len 1
TR1=0; // ngung bo dinh thoi
}
//ham quet led de hien thi so
void quet_led(void)
{
led1=1;
P1=ma[nghin];
delay_timer1();
led1=0;
led2=1;
P1=ma[tram] ;
delay_timer1();
led2=0;
led3=1;
P1=ma[chuc];
delay_timer1();
led3=0;
led4=1;
P1=ma[donvi];
delay_timer1();
led4=0;
tram= i%10;
nghin=i/10;
donvi=j%10;
chuc= j/10;
}
void main()
{
dem=100;
while(1)
{
while (!chay) //khoi dong he thong
delay(10); //Chong soc dien
{
for (i=dem;i>=0;i--) //giam hang nghin, tram
{
for (j=59;j>=0;j--) //giam hang don vi, chuc
{
{
for (k=0;k<20;k++) //thoi gian chay 1s
{
quet_led();
}}}}
}
Comment