新闻中心

EEPW首页>嵌入式系统>设计应用> 8位共阴极数码管动态驱动程序

8位共阴极数码管动态驱动程序

作者: 时间:2016-11-30 来源:网络 收藏

//↓↓↓↓↓函数定义开始#####################################################

void openDigitalTube(ulong x)

{

if (x >= 0 && x < 10)
{
dispDigitalTube(x,7) ;
}
else if(x >= 10 && x < 100)
{
dispDigitalTube(x / 10,6) ;
dispDigitalTube(x % 10,7) ;
}
else if(x >= 100 && x < 1000)
{
dispDigitalTube(x / 100,5) ;
dispDigitalTube((x / 10) % 10,6) ;
dispDigitalTube((x % 100) % 10,7) ;
}
else if(x >= 1000 && x < 10000)
{
dispDigitalTube(x / 1000,4) ;
dispDigitalTube((x / 100) % 10,5) ;
dispDigitalTube((x / 10) % 10,6) ;
dispDigitalTube(x % 10,7) ;
}
else if(x >= 10000 && x < 100000)
{
dispDigitalTube(x / 10000,3) ;
dispDigitalTube((x / 1000) % 10,4) ;
dispDigitalTube((x / 100) % 10,5) ;
dispDigitalTube((x / 10) % 10,6) ;
dispDigitalTube(x % 10,7) ;
}
else if(x >= 100000 && x < 1000000)
{
dispDigitalTube(x / 100000,2) ;
dispDigitalTube((x / 10000) % 10,3) ;
dispDigitalTube((x / 1000) % 10,4) ;
dispDigitalTube((x / 100) % 10,5) ;
dispDigitalTube((x / 10) % 10,6) ;
dispDigitalTube(x % 10,7) ;
}
else if(x >= 1000000 && x < 10000000)
{
dispDigitalTube(x / 1000000,1) ;
dispDigitalTube((x / 100000) % 10,2) ;
dispDigitalTube((x / 10000) % 10,3) ;
dispDigitalTube((x / 1000) % 10,4) ;
dispDigitalTube((x / 100) % 10,5) ;
dispDigitalTube((x / 10) % 10,6) ;
dispDigitalTube(x % 10,7) ;
}
else if(x >= 10000000 && x < 100000000)
{
dispDigitalTube(x / 10000000,0) ;
dispDigitalTube((x / 1000000) % 10,1) ;
dispDigitalTube((x / 100000) % 10,2) ;
dispDigitalTube((x / 10000) % 10,3) ;
dispDigitalTube((x / 1000) % 10,4) ;
dispDigitalTube((x / 100) % 10,5) ;
dispDigitalTube((x / 10) % 10,6) ;
dispDigitalTube(x % 10,7) ;
}

}

void dispDigitalTube(int x,int y)

{

DuanXuan = HexCode[x] ;
WeiXuan = DispBit [y] ;
delay(10) ;
DuanXuan = 0xFF ;
WeiXuan = 0xFF ;

}

void delay(int x)

{

int i = 0,j = 0 ;
for(i = x;i > 0;i--)
for(j = 10;j > 0;j--) ;

}

//↑↑↑↑↑函数定义结束#####################################################


上一页 1 2 下一页

评论


技术专区

关闭