综合技术交流
直播中

ss

6年用户 8762经验值
擅长:电源/新能源 制造/封装 RF/无线
私信 关注
[经验]

如何实现每秒间隔显示数字

`  利用单片机延时函数空耗时间,延时1s来实现,等学完单片机定时器中断,就可以设计精确计时程序。
   1.png
  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)运算符
  常见运算符如表
   3.png
  运算符
  上面的程序只是让“num”自加到9,如何显示大于“9”的数字呢?
  当显示大于9的数值就需要用到数字的分解。
  3)数字分解
  以两位数字为例,一位数码管是无法显示两个数字,数字分解是必需的,分解后分别送到两个数码管显示。比如一个两位数字是num,分解十位(a表示),a=num/10(称之为求模);分解个位(b表示),b=num%10(称之为求余)。

` 2.png

更多回帖

发帖
×
20
完善资料,
赚取积分