找回密码
 立即注册

QQ登录

只需一步,快速开始

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

通过38译码器来控制数码管的显示

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


  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=200;j>0;j--);
  12. }
  13. void main()
  14. {
  15.   uint 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(250);
  23.       }
  24.       for(i=0;i<500;i++) //动态扫描显示0-7
  25.      {
  26.          P1=0xf8;    P2=table[j++];    delay(1);//延时值得大小要适中

  27.          P1=0xf9;    P2=table[j++];    delay(1);

  28.          P1=0xfa;    P2=table[j++]; delay(1);

  29.          P1=0xfb;    P2=table[j++];    delay(1);

  30.         P1=0xfc;    P2=table[j++];     delay(1);
  31.          P1=0xfd;    P2=table[j++];    delay(1);

  32.          P1=0xfe;    P2=table[j++];    delay(1);

  33.          P1=0xff;     P2=table[j++];     delay(1);
  34.          if(j==8)
  35.             j=0;
  36.       }
  37.    }
  38. }
  39. /* 数码管接P2口,低电平有效,
  40.    通过3-8译码器来控制那个数码管亮
  41. */
复制代码


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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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