立即注册 登录
返回首页

uid:140652的个人空间

日志

涡轮流量计流量监测数码管显示

已有 508 次阅读2016-9-27 16:59 | 流量计, 数码管

#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit dula=P2^6;
sbit wela=P2^7;
sbit d1=P2^3;
uint aa=0;
uchar code num[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void delay(uint z);
void display(uint);

void main()
{
 EA=1;
 EX0=1;
 IT0=1;
 aa=0;
 while(1)
 {
  display(aa);
  if(aa>65535) aa=0;
 }
}

void delay(uint z)
{
 uint x,y;
 for(x=z;x>0;x--)
  for(y=110;y>0;y--); 
}

void exter0() interrupt 0
{
 aa++;
 d1=0;
 delay(5);
 d1=1;
}


void display(uint aa) //数码管动态扫描程序
{
 uchar b,c,d,e,f;

 b=aa/10000;
 c=aa%10000/1000;
 d=aa%1000/100;
 e=aa%100/10;
 f=aa%10;

 wela=1;
 P0=0xfe;
 wela=0;
 dula=1;
 P0=num[0];
 dula=0;
 delay(2); //第一个数码管

 wela=1;
 P0=0xfd;
 wela=0;
 dula=1;
 P0=num[b];
 dula=0;
 delay(2); //第二个数码管

 wela=1;
 P0=0xfb;
 wela=0;
 dula=1;
 P0=num[c];
 dula=0;
 delay(2); //第三个数码管

 wela=1;
 P0=0xf7;
 wela=0;
 dula=1;
 P0=num[d];
 dula=0;
 delay(2); //第四个数码管

 wela=1;
 P0=0xef;
 wela=0;
 dula=1;
 P0=num[e];
 dula=0;
 delay(2); //第五个数码管

 wela=1;
 P0=0xdf;
 wela=0;
 dula=1;
 P0=num[f];
 dula=0;
 delay(2); //第六个数码管
}


路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

返回顶部