1、/*标题: 数码管的显示效果: 显示00-99,动态显示+变化显示工作于:51开发板说明: 此例程将数码管显示内容用一个函数打包,要显示直接调用即可。*/头文件:#include “reg51.h“/变量定义:unsigned char table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;/表:共阳数码管 0-9 /引脚定义:sbit SMG_q = P10; /定义数码管阳级控制脚(千位)sbit SMG_b = P11; /定义数码管阳级控制脚(百位)sbit SMG_s = P12; /定义数码管阳级控制脚(十位)sbit SM
2、G_g = P13; /定义数码管阳级控制脚(个位)/函数声明:void display(unsigned char da);/定义显示函数,参数为显示内容,只显示两位数void delay(void); /主函数,C语言的入口函数:void main(void) unsigned char i=0; /作为查表的索引号unsigned char ldata; /变量用作099计数unsigned int j; /此变量作为计数跳变刷新时间while(1)j=5000;while(j-)display(ldata);/刷新5000次,约1秒,注:在C语言里是没有周期可计算的哦if(ldata9
3、9)ldata+; /刷新完成约1秒,变量做加计数elseldata=0;/显示函数,参数为显示内容,只显示两位数void display(unsigned char da)SMG_s=0; /选择十位数码管P0=tableda/10; /获取十位值,查表输出定义好的数码管段值与P0口,显示相应的0-9delay(); /延时P0=0XFF; /清除数码管显示,因是共阳型,所以不是0SMG_s=1; /关闭十位数码管SMG_g=0; /选择个位数码管P0=tableda%10; /获取个位值,查表输出定义好的数码管段值与P0口,显示相应的0-9delay(); /延时P0=0XFF; /清除数码管显示,因是共阳型,所以不是0SMG_g=1; /关闭个位数码管/延时子函数,短暂延时void delay(void)unsigned char i=10;while(i-);