找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 10357|回复: 3
收起左侧

单片机数码管的动态显示仿真+代码

[复制链接]
ID:439737 发表于 2018-12-5 09:54 | 显示全部楼层 |阅读模式
所谓动态显示,表面看着是同时显示,其实是用数码管的动态显示方式,即每一时刻只有一位位选线有效,其他的都不显示。只要控制好每位数码管点亮显示的时间和间隔,就可造成同时显示的现象,因此用尽量最低的延时函数约1ms。此处我用6个数码管显示一段自定义字符。

仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
0.png

单片机源程序如下:
  1. #include <reg51.h>                                    
  2. #define uchar unsigned char                                         
  3. #define uint unsigned int                                         
  4. sbit DUAN=P2^6;
  5. sbit WEI=P2^7;
  6. uchar code led[6]=
  7. {0x05,0x06,0x07,0x08,0x09,0x0a};
  8. uchar code ledwei[6]=
  9. {0xfe,0xfd,0xfb,0xf7,0xef,0xdf};
  10. uchar code displaytab[16]=
  11. {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
  12. void  delay()                                                      
  13. {        uchar x,y;
  14.         for(x=2; x>0; x--)
  15.         for(y=250; y>0; y--);  }
  16. void  main()
  17. { uchar i;
  18. while(1)
  19. {
  20. for(i=0;i<6;i++)
  21. {
  22. P0=displaytab[led[i]];
  23. DUAN=1;
  24. DUAN=0;

  25. P0=ledwei[i];                                                        
  26. WEI=1;
  27. WEI=0;
  28.   
  29. delay();
  30. P0=0xff;
  31. WEI=1;
  32. WEI=0;
  33. }}        }
复制代码

所有资料51hei提供下载:
数码管动态显示.zip (28.96 KB, 下载次数: 71)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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