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

  • 格式:doc
  • 大小:38.00 KB
  • 文档页数:3

下载文档原格式

  / 6
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

.

//使用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;

}

相关主题