数码管每秒间隔显示数字的实现方法

电子说

1.3w人已加入

描述

如何实现每秒间隔显示数字呢?利用单片机延时函数空耗时间,延时1s来实现,等学完单片机定时器中断,就可以设计精确计时程序。

数码管

1.程序设计

#include《reg52.h》//头文件

#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.面包板制作展示

“显示数字”面包板制作展示

4.C语言基础知识

(1)if语句

格式一:

if(表达式){语句1;语句2;}

步骤:如果表达式为“真”,则执行语句1和语句2,如果为“假”,则跳过语句1与语句2,执行其他的程序。

格式二:

if(表达式){语句1;语句2;}

else{语句3;语句4;}

步骤:如果表达式为“真”,则执行语句1和语句2,如果为“假”,则执行语句3与语句4。

(2)运算符

常见运算符如表

数码管

运算符

上面的程序只是让“num”自加到9,如何显示大于“9”的数字呢?

当显示大于9的数值就需要用到数字的分解。

3)数字分解

以两位数字为例,一位数码管是无法显示两个数字,数字分解是必需的,分解后分别送到两个数码管显示。比如一个两位数字是num,分解十位(a表示),a=num/10(称之为求模);分解个位(b表示),b=num%10(称之为求余)。
责任编辑人:CC

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分