c语言显示数码管函数 c语言数码管显示6位学号( 二 )


0X40,0X79,0X24,0X30,0X19,0X12,0X02,0X58,0X00,0X10};
//定义0~9以其带小数点的显示码
unsigned char led_reg[8]={1,9,10,11,12,13,14,15};//定义显示数码缓存器
/************************************************************************************************
**function:delay(unsigned char i)
**功能:延时程序
************************************************************************************************/
void delay(unsigned char i)
{ unsigned char j,k;
for(k=0;ki;k++)
{ for(j=0;j255;j++);
}
}
/************************************************************************************************
**function:led_show()
**功能:显示函数
************************************************************************************************/
void led_show( )
{ static unsigned char led_shift=0x00; //定义静态变量
P2=0xFF;//关闭数码管控制端口
P0=led_code[led_reg[led_shift]];//把字符代码送到P0端口
switch(led_shift)//选择数码管控制位
{ case 0: P2_0=0;break;//控制左1数码管
case 1: P2_1=0;break;//控制左2数码管
case 2: P2_2=0;break;//控制左3数码管
case 3: P2_3=0;break;//控制左4数码管
case 4: P2_4=0;break;//控制左5数码管
case 5: P2_5=0;break;//控制左6数码管
case 6: P2_6=0;break;//控制左7数码管
case 7: P2_7=0;break;//控制左8数码管
default:break;
}
led_shift++;//数码管控制变量自加
if(led_shift==0x08)//判断是否扫描一轮
led_shift=0x00;//归零进行下一轮扫描
}
/************************************************************************************************
mian()
************************************************************************************************/
void main()
{ P0=0X00;//P0端口输出低电平
P2=0XFF;//P2端口输出高电平
while(1)
{ led_show();//调用显示函数
delay(10);//调用延时函数
}
}
求2位数码管显示C程序首先,你没有给出数码管的相应电路,这里就用Display()函数来代替你的显示程序 。按键也没有给出电路,这里以普通IO按键来编写程序 。
unsigned
char
disp_data;
//定义一个用于存储需要显示数值的全局变量
void
Display(unsigned
char
disp)
//数码管显示函数,输入参数为要显示的值 。
void
Delay_ms(unsigned
char
disp)
//毫秒级延时函数,用于按键去抖动 。
void
main()
{
disp_data=https://www.04ip.com/post/50;
Display(disp_data);
//初始显示"50"
while(1);
//循环查询+-按键的状态
{
if(K+
==
0)
//判断K+是否被按下(假如按键按下时为低电平)
{
Delay_ms(20);
//延时,去抖动
if(k+
==
0)
//再次判断
{
disp_data++;
//数值+1
if(disp_data80)
//判断数据是否超出范围
{
//已经超出
disp_data=https://www.04ip.com/post/80;
//使数据保持在80;
Display(disp_data);
//显示数据
}
else
//没有超出
{Display(disp_data);}
//显示数据
}
}
if(K-
==
0)
//判断K-是否被按下(假如按键按下时为低电平)
{
Delay_ms(20);
//延时 , 去抖动
if(k-
==
0)
//再次判断
{
disp_data--;
//数值-1
if(disp_data50)
//判断数据是否超出范围
{
//已经超出
disp_data=https://www.04ip.com/post/50;
//使数据保持在50;
Display(disp_data);
//显示数据
}
else
//没有超出

推荐阅读