标题: 帮我看看程序哪里有问题,怎么单片机数码管不计数 [打印本页]

作者: 菜菜.z    时间: 2020-5-6 22:01
标题: 帮我看看程序哪里有问题,怎么单片机数码管不计数
  1. #include<reg52.h>
  2. #define uint unsigned int
  3. sbit dula=P2^0;                  
  4. sbit wela=P2^1;               
  5.      uint i;
  6. unsigned code table[ ]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
  7.                         0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};  
  8. void delay(uint ms)
  9. {
  10.      uint ti;
  11.    while(ms--)
  12.     {
  13.     for(ti=0;ti<82;ti++){}
  14.     }
  15. }     
  16. void main()
  17. {
  18. while(1)
  19. {     
  20.          P1=0xff;  //1111 1111
  21.   for(i=0;i<=8;i++)
  22.    {
  23.    P0=table[i];
  24.    dula=1;
  25.    dula=0;
  26.             P0=0xfe;    //1111 1110   
  27.    wela=1;
  28.    wela=0;
  29.    delay(1000);
  30.    P1=P1<<1;
  31.    }
  32.   
  33. }
  34. }
复制代码

180110gexv9zqxqyf27fqx.jpg (37.35 KB, 下载次数: 87)

180110gexv9zqxqyf27fqx.jpg

作者: man1234567    时间: 2020-5-7 00:53
一个数码管搞什么段拉位拉
作者: xianfajushi    时间: 2020-5-7 08:56
建议先打开位送位码关闭位,再打开段送段码延时关闭段。
作者: 51学习ing    时间: 2020-5-7 10:23
第26行 P0=0xfe;     改成P1=0xfe;(P0是你用来控制数码管的吧,给P0赋值当然不计数了)
作者: wulin    时间: 2020-5-7 17:37
程序没有明显错误,但有数据类型使用不当。如数码管显示不正常要查程序与硬件是否配套。
  1. #include<reg52.h>
  2. #define uint unsigned int
  3. sbit dula=P2^0;                  
  4. sbit wela=P2^1;               
  5. unsigned char i;
  6. unsigned char code table[ ]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
  7.                         0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};  
  8. void delay(uint ms)
  9. {
  10.         uint ti;
  11.         while(ms--)
  12.         {
  13.                 for(ti=0;ti<82;ti++);
  14.         }
  15. }     
  16. void main()
  17. {
  18.         P0=0xfe;    //1111 1110   
  19.         wela=1;
  20.         wela=0;
  21.         while(1)
  22.         {     
  23.                 P1=0xff;  //1111 1111
  24.                 for(i=0;i<=8;i++)
  25.                 {
  26.                         P0=table[i];
  27.                         dula=1;
  28.                         dula=0;
  29.                         delay(1000);
  30.                         P1=P1<<1;
  31.                 }  
  32.         }
  33. }
复制代码



作者: 菜菜.z    时间: 2020-5-9 13:59
wulin 发表于 2020-5-7 17:37
程序没有明显错误,但有数据类型使用不当。如数码管显示不正常要查程序与硬件是否配套。

好的谢谢,我改了




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