P1^6=1+延遲時間+P1^6=0+延遲時間———循環運行,即實現了 高低電平變化的連續方波,改變延遲時間就可以改變方波周期。
電路: 采用51最小系統, P1^7接壹個 輕觸開關到地。12M晶振
功能:P1^6口輸出 100~1KHz方波,需要其他頻率,請自己改變延遲時間。 程序如下
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit a=P1^7;
sbit b=P1^6;
void delay_1ms()//1ms
{
uint j;
uint i;
for(j=1;j>0;j--)
for(i=122;i>0;i--);
}
delay(uchar x)
{
while(x--)
delay_1ms();
}
void main()
{
uchar n=1;
while(1)
{
if(a==0)
{
n++;
if(n==10)n=1;
}
b=1;
delay(n);
b=0;
delay(n);
}
}