找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2408|回复: 0
打印 上一主题 下一主题
收起左侧

数码管显示浅显易懂

[复制链接]
跳转到指定楼层
楼主
ID:71259 发表于 2014-12-29 19:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式


  1. #include<reg52.h>//头文件
  2. #define uchar unsigned char //宏定义
  3. #define uint  unsigned int
  4. uchar code table[]={0x3f,0x06,0x5b,//数码管显示的数值

  5. 0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,
  6. 0x77,0x7c,0x39,0x5e,0x79,0x71};
  7. void delay(uint x) //延时子函数
  8. {
  9.   uint i,j;
  10.    for(i=x;i>0;i--)
  11.       for(j=500;j>0;j--);
  12. }
  13. void main()   //主函数
  14. {
  15.   uchar i,j; //定义局部变量
  16.    while(1) //无限循环
  17.   {
  18.      for(i=0;i<16;i++) //从0-f显示
  19.       {
  20.          P1=0xf8; //点亮第一个数码管
  21.         P2=table[i];
  22.          delay(200);  //延时0.5s
  23.      }
  24.      for(i=0;i<16;i++)//点亮两位数码管从0-f
  25.      {
  26.          for(j=100;j>0;j--)
  27.          {
  28.             P1=0xf8; //点亮第一个数码管
  29.              P2=table[i];
  30.             delay(1);  //延时0.5s
  31.             P1=0xf9;
  32.             P2=table[i];
  33.            delay(1);
  34.         }

  35.     }
  36.     for(i=0;i<16;i++) //间隔数码管显示从0-f
  37.        for(j=100;j>0;j--)
  38.        {
  39.           P1=0xf8;
  40.           P2=table[i];
  41.          delay(1);
  42.           P1=0xfa;
  43.           P2=table[i];
  44.           delay(1);
  45.           P1=0xfc;
  46.           P2=table[i];
  47.           delay(1);
  48.           P1=0xfe;
  49.           P2=table[i];
  50.           delay(1);
  51.       }
  52.   }
  53. }
  54. /*
  55. 注:先一个数码管显示0-f,再两个数码管显示0-f,
  56. 然后一个数码管同时显示0-f,
  57. */
复制代码


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表