找回密码
 立即注册

QQ登录

只需一步,快速开始

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

动态数码管

[复制链接]
跳转到指定楼层
楼主
ID:262845 发表于 2017-12-18 13:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这是我上个月做的动态数码管显示课程
里面包含51单片机源代码
请大家多多指导
  1. #include "reg52.h"
  2. #include "intrins.h"
  3. typedef unsigned int u16;         
  4. typedef unsigned char u8;
  5. sbit LSA=P2^2;
  6. sbit LSB=P2^3;
  7. sbit LSC=P2^4;

  8. u8 code smgduan[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
  9.                                         0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};  //共阴 code 代码 编码

  10. //void delay(u16 i)
  11. //{
  12. //        while(i--);       
  13. //}

  14.   void DigDisplay()
  15. {
  16.         static u8 j=0;

  17.             switch(j)         //位选,选择点亮的数码管,
  18.                 {
  19.                         case(0):
  20.                                 LSA=0;LSB=0;LSC=0;j++; break;//显示第0位
  21.                         case(1):
  22.                                 LSA=1;LSB=0;LSC=0;j++; break;//显示第1位
  23.                         case(2):
  24.                                 LSA=0;LSB=1;LSC=0;j++; break;//显示第2位
  25.                         case(3):
  26.                                 LSA=1;LSB=1;LSC=0;j++; break;//显示第3位
  27.                         case(4):
  28.                                 LSA=0;LSB=0;LSC=1;j++; break;//显示第4位
  29.                         case(5):
  30.                                 LSA=1;LSB=0;LSC=1;j++; break;//显示第5位
  31.                         case(6):
  32.                                 LSA=0;LSB=1;LSC=1;j++; break;//显示第6位
  33.                         case(7):
  34.                                 LSA=1;LSB=1;LSC=1;j=0; break;//显示第7位       
  35.                           
  36.             }
  37. }
  38. void main()
  39. {
  40.         u8  i;       
  41.         u16 m;
  42.         while (1)
  43.   {
  44.           
  45.                   for(i=0;i<16;i++)
  46.                 {
  47.                   P0=smgduan[i];
  48.                             
  49.                   for(m=0;m<30000;m++) //10000-50000
  50.                   {  
  51.                    DigDisplay(); //数码管显示函数       
  52.                   }
  53.                          
  54.             }
  55.                  // delay(500);//100-500       
  56.   }

  57. }
复制代码


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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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