fittao 发表于 2024-11-17 19:52:02

请教各位老师,为什么流水灯走一遍,就不走了,变成双灯?谢谢

如题,附代码:

#include <STC32G.H>
#define uchar         unsigned char
#define uint        unsigned int
#define ulong        unsigned long
#define MAIN_Fosc 35000000UL       
uchar LED_Code ={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};
uchar sum;
voiddelayms(uint ms)               
{
        uint i;
        do{
                        i = MAIN_Fosc / 6000;
                        while(--i);
                }while(--ms);
}
void port_mode()            // 端口模式
{
      P0M1=0x00; P0M0=0x00;
                P1M1=0x00; P1M0=0x00;
                P2M1=0x00; P2M0=0x00;
                P3M1=0x00; P3M0=0x00;
      P4M1=0x00; P4M0=0x00;
                P5M1=0x00; P5M0=0xFF;
}       
void LED()
{
        uchar i,j;
        P2=sum;
        for(i = 0;i < 8;i++)
        {
                        sum &= LED_Code;
                        P2 = sum;
                        delayms(300);
        }
        for(j=8;j>=0;j--)
        {
                sum^=(~LED_Code);
                P2 = sum;
                delayms(300);
        }
        sum=0xff;
}
void main()
{
        WTST = 0;       
        port_mode();
        while(1)
        {
                sum=0xff;
                LED();
        }
}


21cnsound 发表于 2024-11-17 21:59:17

      for(j=8;j>=0;j--)/////////////////////////改为j>0即可
      {
                sum^=(~LED_Code);
                P2 = sum;
                delayms(300);
      }
      sum=0xff;//////////////////////////////////这一行可以去掉,main中已经有了

fittao 发表于 2024-11-18 20:32:03

谢谢,老师。已解决
页: [1]
查看完整版本: 请教各位老师,为什么流水灯走一遍,就不走了,变成双灯?谢谢