如何实现每秒间隔显示数字呢?利用单片机延时函数空耗时间,延时1s来实现,等学完单片机定时器中断,就可以设计精确计时程序。
![50e191510c737f910e662cc64f6f66bd.png](https://i-blog.csdnimg.cn/blog_migrate/688469b48ab36411da784fd7b383f337.jpeg)
1.程序设计
#include//头文件
#defi ne uchar unsigned char //宏定义
#defi ne uint unsigned int
uchar code table []={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};//共阴数码管编码
void delay(uint a)//延时函数
{
uint j,i;
for(j=a;j>0;j--)
for(i=110;i>0;i--);
}
void main()//主函数
{
uint num;//定义变量
while(1)
{
delay(1000); //延时时间大约1s
P1=0xfe;
P0=table[num];
num++;
if(num>9)
num=0;
}
}
2.程序解释
①num++;即num=num+1。
②P1=0xfe;选通第一个数码管。
③if(num>9)
num=0;
以上是简写,写全如下:
if(num>9)
{
num=0;
}
如果num变量数字大于9,num重新赋值为“0”。
3.面包板制作展示
![a6f6740a0625bd2686fdfedf40fbf7b0.png](https://i-blog.csdnimg.cn/blog_migrate/95151e769bce09158e01d22dcce6f2b9.jpeg)
“显示数字”面包板制作展示
4.C语言基础知识
(1)if语句
格式一:
if(表达式){语句1;语句2;}
步骤:如果表达式为“真”,则执行语句1和语句2,如果为“假”,则跳过语句1与语句2,执行其他的程序。
格式二:
if(表达式){语句1;语句2;}
else{语句3;语句4;}
步骤:如果表达式为“真”,则执行语句1和语句2,如果为“假”,则执行语句3与语句4。
(2)运算符
常见运算符如表
![7411be8b7870d4d622aa57955414461f.png](https://i-blog.csdnimg.cn/blog_migrate/e37ad911a77304f1b6e24ca407a26477.jpeg)
运算符

上面的程序只是让“num”自加到9,如何显示大于“9”的数字呢?
当显示大于9的数值就需要用到数字的分解。
3)数字分解
以两位数字为例,一位数码管是无法显示两个数字,数字分解是必需的,分解后分别送到两个数码管显示。比如一个两位数字是num,分解十位(a表示),a=num/10(称之为求模);分解个位(b表示),b=num%10(称之为求余)。