一.项目准备工作
1.硬件:准备一个数码管和一个一位数数码管(不同的型号的数码管与单片机连接的方式不同)下面是小编用的两位数数码管连接图,杜邦线若干。51单片机一个。
2.软件部分:
一位数码管代码如下:
#include<reg51.h>
unsigned char code s[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; //共阳极数码管
void delay(unsigned int n)
{
unsigned int i=0,j=0;
for(i=0;i<n;i++)
{
for(j=0;j<120;j++);
}
}
void main()
{
int i;
for(i=9;i>=0;i--)
{
P2=s[i];
delay(400);
}
}
两位数码管 :/10为计算十位显示
%10为计算个位显示
代码如下:
#include<reg51.h>
sbit LED_A=P3^0;
sbit LED_B=P3^1;
unsigned char code ledchar[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
//共阳极数码管
void delay(int time) //延迟
{
int temp = 0;
int i = 0;
for(temp=time;temp>=0;temp--)
{
for(i=1000;i>=0;i--){}
}
}
void main()
{
int i,j,x,y;
LED_A=0;
LED_B=0;
for(i=30;i>=0;i--)
{
x=i/10; //十位显示
y=i%10; //个位显示
for(j=0;j<20;j++)
{
LED_B=0;
LED_A=1;
P2=ledchar[x];
delay(2);
LED_A=0;
LED_B=1;
P2=ledchar[y];
delay(2);
}
}
}
仿真如下: