标题: 怎么在单片机光立方程序的基础程序上加上PWM控制的灯光渐变? [打印本页]

作者: 619247581    时间: 2019-9-28 17:03
标题: 怎么在单片机光立方程序的基础程序上加上PWM控制的灯光渐变?

这是仿真图程序如下:
#include<reg51.h>
#define uint unsigned int
uint count,i,j;


#define DataPort P1//定义数据端口 程序中遇到DataPort 则用P1 替换
sbit LE1=P2^0;//定义锁存使能端口 第一列的字节锁存,共阴
sbit LE2=P2^1;//定义锁存使能端口 第二列的字节锁存,共阴
sbit CHENG1=P0^0;//定义锁存使能端口 第一层的字节锁存,共阳
sbit CHENG2=P0^1;//定义锁存使能端口 第二层的字节锁存,共阳
sbit CHENG3=P0^2;//定义锁存使能端口 第三层的字节锁存,共阳
sbit CHENG4=P0^3;//定义锁存使能端口 第四层的字节锁存,共阳

void delay_ms(unsigned int z)//延时函数,单位毫秒
{
  unsigned int j,k;
  for(j=z;j>0;j--)
     for(k=110;k>0;k--);
}

//点亮所有灯
void light()               
{               

        CHENG1=1;
        CHENG2=1;
                CHENG3=1;
                CHENG4=1;
                DataPort=0x00;           //把0xff送进锁存器1~8中,使它们的输出引脚都输出高电平,与行锁存器的0x00相对,点亮所有的灯
                LE1=1;
                LE1=0;
                LE2=1;
                LE2=0;
                     
}

//熄灭所有灯
void dark()                        
{               
                CHENG1=1;
        CHENG2=1;
                CHENG3=1;
                CHENG4=1;         
                DataPort=0xff;
                LE1=1;
                LE1=0;
                LE2=1;
                LE2=0;
               
}


void main()
{
        
        while(1)
        {

          light();
          delay_ms(100);
          dark();
      delay_ms(100);

        }
}









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