标题: 单片机数码管的动态显示仿真+代码 [打印本页]

作者: 杨西旺    时间: 2018-12-5 09:54
标题: 单片机数码管的动态显示仿真+代码
所谓动态显示,表面看着是同时显示,其实是用数码管的动态显示方式,即每一时刻只有一位位选线有效,其他的都不显示。只要控制好每位数码管点亮显示的时间和间隔,就可造成同时显示的现象,因此用尽量最低的延时函数约1ms。此处我用6个数码管显示一段自定义字符。

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


单片机源程序如下:
  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)




作者: niufhhiw    时间: 2020-6-22 16:36
怎么让数码管显示六个数字
作者: niufhhiw    时间: 2020-6-22 16:40
请问六位数码管怎么修改程序让它显示六个数字
作者: niufhhiw    时间: 2020-6-22 19:10
AD中好难找




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1