#include
void delay1ms(unsigned int i)
{
unsigned char j;
while(i--)
{
for(j=0;j<115;j++) //1ms基准延时程序
{
;
}
}
}
void main()
{
while(1){
P0=0xfe; //就是P0.0=0
delay1ms(1000);
P0=0xff;//就是P0.0=1
delay1ms(1000);//这里就是P0.0输出周期为2S的方波。
P0=0xfd;//就是P0.1=0
delay1ms(250);
P0=0xff;//就是P0.1=1
delay1ms(250);//P0.1输出周期为500MS的方波。
}
}
可能程序写的不规范,但原理就是这样,当然你熟练的话是可以用定时器来设计的,那样会更准确,我这里是用程序延时,基本上也没有差别。只是定时器会更准确些。但这个是可以满足你的要求的
#include
#define uchar unsigned char
#define uint unsigned int
sbit pause1= P0^0;
sbit pause_2s= P0^1;
uint t_500ms;
uint t_2s;
void delay1ms(uint i)
{
uchar i;
for(i=0;i<125;i++)//时间可调整
{
;
}
}
void main(void)
{
t_500ms=0;
t_2s=0;
while(1)
{
t_500ms++;
t_2s++;
if(t_500ms>=500)
{
pause1 =~pause1; //500毫秒方波输出
t_500ms=0;
}
if(t_2s>=2000)
{
t_2s=0;
pause_2s=~pause_2s; //2秒的方波输出
}
delay1ms();
}
}