电子说
如何实现每秒间隔显示数字呢?利用单片机延时函数空耗时间,延时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
全部0条评论
快来发表一下你的评论吧 !