51单片机控制4个数码管显示
//使用AT89c51单片机控制四个数码管动态显示0-9999 ,12MHz
#include<>
void jiayi();//加1函数
void chufa();//除法函数
void xianshi();//显示函数
void delay();//延时函数
sbit P2_0=P2^0;//个位位码
sbit P2_1=P2^1;//十位位码
sbit P2_2=P2^2;//百位位码
sbit P2_3=P2^3;//千位位码
unsigned char qianwei,baiwei,shiwei,gewei;
unsigned int count=0;
unsigned char dis[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //共阳极0-9
code
void main()
{
while(1)
{
jiayi();
chufa();
xianshi();
}
}
void chufa()//将数字的各个位拆开
{
qianwei=count/1000;//千位数
baiwei=count%1000/100; //百位数
shiwei=count%100/10; //十位数
gewei=count%10; //个位数
}
void jiayi()
{
count=count+1;
if(count==10000)
count=0;
}
void delay()//延时
{
unsigned int i,j;
for(i=0;i<10;i++)
{
for(j=0;j<200;j++);
}
}
void xianshi()//显示当前数值
{
P2_0=1; //显示个位
P1=dis[gewei];
delay();
P2_0=0;
P2_1=1;//显示十位
P1=dis[shiwei];
delay();
P2_1=0;
P2_2=1; //显示百位
P1=dis[baiwei];
delay();
P2_2=0;
P2_3=1; //显示千位
P1=dis[qianwei];
delay();
P2_3=0;
}
因篇幅问题不能全部显示,请点此查看更多更全内容