普中开源电子分享网

 找回密码
 立即注册
搜索
查看: 2377|回复: 5

找一下程序问题,静态好的,动态为什么不行

[复制链接]

4

主题

9

帖子

70

积分

注册会员

Rank: 2

积分
70
发表于 2021-10-6 22:23:26 | 显示全部楼层 |阅读模式
动态数码管程序:
#include "reg51.h"
#include "intrins.h"
   typedef unsigned char u8;
  typedef unsigned int u16;

       sbit  A2=P2^2;
           sbit  A3=P2^3;
           sbit  A4=P2^4;
          

        u8 code  Srt[16]={0x3f,0x06,0x5b,0x4f,  
                        0x66,0x6d,0x7d,0x07,          
                                        0x7f,0x6f,0x77,0x7c,          
                                0x39,0x5e,0x79,0x71} ;          


  void tye(u16  j)
   {
   while(j--);               
   }
  void  Dtys()
  {
     int i;
         i=0;
          for (i;i<8;i++)
          {
               P0=0x00;
                   switch(i)
                   {
                        case 0:
                                     A2=0;A3=0;A4=0;break;
                                case 1:
                                     A2=1;A3=0;A4=0;break;
                                case 2:
                                     A2=0;A3=1;A4=0;break;
                                case 3:
                                     A2=1;A3=1;A4=0;break;
                                case 4:
                                     A2=0;A3=0;A4=1;break;
                                case 5:
                                     A2=1;A3=0;A4=1;break;
                                case 6:
                                     A2=0;A3=1;A4=1;break;
                                case 7:
                                     A2=1;A3=1;A4=1;break;                                           }
                }
                        P0=Srt[i+1];
                         tye(100);
               
                       
               

  
  }

void  main()
{                  
          while (1)
          {
                  Dtys();
                        }
        
         
}

静态数码管程序:
#include "reg52.h"

   typedef unsigned char u8;
  typedef unsigned int u16;

       sbit  A2=P2^2;
           sbit  A3=P2^3;
           sbit  A4=P2^4;
          

        u8 code  Srt[16]={0x3f,0x06,0x5b,0x4f,  
                        0x66,0x6d,0x7d,0x07,          
                                        0x7f,0x6f,0x77,0x7c,          
                                0x39,0x5e,0x79,0x71} ;          


  void tye(u16  i)
   {
   while(i--);               
   }
void  main()
{
          
       
         
          while (1)
          {
          A2=0;
         A3=0;
         A4=0;
         P0=Srt[0];
         tye(100);
         A2=1;
         A3=0;
         A4=0;
          P0=Srt[1];
         tye(100);
        A2=0;
         A3=1;
         A4=0;
         P0=Srt[2];
         tye(100);
         A2=1;
         A3=1;
         A4=0;
          P0=Srt[3];
         tye(100);
         A2=0;
         A3=0;
         A4=1;
         P0=Srt[4];
         tye(100);
         A2=1;
         A3=0;
         A4=1;
          P0=Srt[5];
         tye(100);
        A2=0;
         A3=1;
         A4=1;
         P0=Srt[6];
         tye(100);
         A2=1;
         A3=1;
         A4=1;
          P0=Srt[7];
         tye(100);
                                                       
                                        }
        
         
}
回复

使用道具 举报

0

主题

7

帖子

36

积分

新手上路

Rank: 1

积分
36
发表于 2021-10-7 22:06:33 | 显示全部楼层
P0=Srt[i+1];
tye(100);
这两句要放在for循环里面。
回复 支持 反对

使用道具 举报

4

主题

9

帖子

70

积分

注册会员

Rank: 2

积分
70
 楼主| 发表于 2021-10-8 19:33:54 | 显示全部楼层
非常感谢!我试过了,确实放在循环体里边就好了!我找了几天毛病,总是以为硬件问题。非常感谢你!
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|普中开源电子分享网 粤ICP备16123577号-2

GMT+8, 2024-4-19 21:16 , Processed in 0.269949 second(s), 33 queries .

Powered by 论坛搭建 X3.4

Copyright © 2001-2021, Tencent Cloud.

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