Chương trình quét LED 7 đoạn để hiển thị các số từ 00 đến 99.
Mã nguồn C:
#include<at89x51.h>
#define c P2_0
#define d P2_1
unsigned char so[10]={0xc0,0x79,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void delay(int ms)
{
while(ms--)
{}
}
void hienso(unsigned char x)
{
unsigned char chuc=x/10;
unsigned char donvi=x%10;
c=1;d=1;
if(x>=10)
{
c=0;
d=1;
P0=so[chuc];
delay(50);
c=1;
d=0;
P0=so[donvi];
delay(50);
}
if(x<10)
{
c=0;
d=1;
P0=so[x];
delay(100);
}
}
main()
{
P0=0xff;
while(1)
{
unsigned char i;
for(i=0;i<100;i++)
hienso(i);
}
}
Mã nguồn C:
#include<at89x51.h>
#define c P2_0
#define d P2_1
unsigned char so[10]={0xc0,0x79,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void delay(int ms)
{
while(ms--)
{}
}
void hienso(unsigned char x)
{
unsigned char chuc=x/10;
unsigned char donvi=x%10;
c=1;d=1;
if(x>=10)
{
c=0;
d=1;
P0=so[chuc];
delay(50);
c=1;
d=0;
P0=so[donvi];
delay(50);
}
if(x<10)
{
c=0;
d=1;
P0=so[x];
delay(100);
}
}
main()
{
P0=0xff;
while(1)
{
unsigned char i;
for(i=0;i<100;i++)
hienso(i);
}
}
0 nhận xét :
Đăng nhận xét