当前位置:文档之家› 51单片机控制4个数码管显示

51单片机控制4个数码管显示

51单片机控制4个数码管显示
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 code dis[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //共阳极0-9

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;

}

相关主题
文本预览
相关文档 最新文档