单片机基础编程

2019-07-15 11:36发布

#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit SQU_K  =P3^4;
sbit SQU_L  =P1^0;
//延时函数
//方波发生函数
void square()
{
   uchar a,b;
   for(a=0;a<255;a++)
   {
    P0=0xff;
    P2=0xff;
    b=P2;
    b=~b;
    while(b--);    //调节相位,b的变化越大,相位变化越小
}
for(a=255;a>0;a--)
{
    P0=0x00;
    P2=0xff;
    b=P2;
    b=~b;
    while(b--);
}
}
//主函数
void main()
{
P1=0xff;
P2=0xff;
P3=0xff;
while(1)
{
  P0 = 0;
  if(SQU_K==0)
  {
   SQU_L=0;
   square();
  }
  SQU_L=1;
}
}
这个是我测试的程序,想做一个波形发生器。产生方波时,相位调到最大,会出现图片的情况,调小一点就不会,请问:我的这个问题是放大电路没有设计好,还是程序没有编辑正确?应该如何修改?
30[C%4(W~_]Z)ULVYE242HD.png
495}MK~T~B[8MSK%HEJNIQW.png
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。