标题: 动态数码管 [打印本页]

作者: yun251314    时间: 2017-2-16 10:13
标题: 动态数码管
  1. #include<reg51.h>

  2. //--定义使用的IO口--//
  3. #define GPIO_DIG   P0        //段选
  4. #define GPIO_PLACE P1        //位选

  5. //--定义全局变量--//
  6. unsigned char code DIG_PLACE[8] = {
  7. 0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//位选控制   查表的方法控制
  8. unsigned char code DIG_CODE[17] = {
  9. 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
  10. 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
  11. //0、1、2、3、4、5、6、7、8、9、A、b、C、d、E、F的显示码
  12. unsigned char DisplayData[8];
  13. //用来存放要显示的8位数的值

  14. //--声明全局函数--//
  15. void DigDisplay(); //动态显示函数

  16. /*******************************************************************************
  17. * 函 数 名         : main
  18. * 函数功能                   : 主函数
  19. * 输    入         : 无
  20. * 输    出         : 无
  21. *******************************************************************************/

  22. void main(void)
  23. {
  24.         unsigned char i;

  25.         for(i=0; i<8; i++)
  26.         {
  27.                 DisplayData[i] = DIG_CODE[i];       
  28.         }
  29.         while(1)
  30.         {
  31.                 DigDisplay();
  32.         }                               
  33. }

  34. /*******************************************************************************
  35. * 函 数 名         : DigDisplay
  36. * 函数功能                   : 使用数码管显示
  37. * 输    入         : 无
  38. * 输    出         : 无
  39. *******************************************************************************/

  40. void DigDisplay()
  41. {
  42.         unsigned char i;
  43.         unsigned int j;

  44.         for(i=0; i<8; i++)
  45.         {
  46.                 GPIO_PLACE = DIG_PLACE[i];         //发送位选
  47.                 GPIO_DIG = DisplayData[i];     //发送段码
  48.                 j = 10;                                                 //扫描间隔时间设定
  49.                 while(j--);       
  50.                 GPIO_DIG = 0x00;//消隐
  51.         }
  52. }
复制代码



作者: 新手,请赐教    时间: 2017-7-8 09:27
请问下我时候为什么数码管显示一直在闪,并且数字不规则变化有部分乱码?难道他这个动态数码管就是指数码管闪动?




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