锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

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

时间:2024-05-22 22:37:10

//##################################################################

//******程序作用: 驱动8位****************************************

//******单片机型号: C90C16RD+****************************************

//******编写日期: 2013年6月8日晚****************************************

//******编写人: Elitah***************************************

//##################################################################

//↓↓↓↓↓预定义开始#######################################################

#include <reg52.h>

#define uchar unsigned char

#define ulong unsigned long

//以下定义断选

#define DuanXuan P0

//以下定义位选接口

#define WeiXuan P2

//↑↑↑↑↑预定义结束#######################################################

//↓↓↓↓↓全局变量开始#####################################################

uchar HexCode [] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F} ;

uchar DispBit [] = {0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F} ;

//↑↑↑↑↑全局变量结束#####################################################

//↓↓↓↓↓函数声明开始#####################################################

void openDigitalTube(ulong) ;

void dispDigitalTube(int,int) ;

void delay(int) ;

//↑↑↑↑↑函数声明结束#####################################################

//↓↓↓↓↓主函数开始#######################################################

void main()

{

while(1)
{
openDigitalTube(99999999) ;
}

}

//↑↑↑↑↑主函数结束#######################################################

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

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) ;
锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章