/*
//查询方式,输出方波
#include <reg51.h>
sbit p1_0=P1^0;
void main()
{
p1_0=1;
TMOD=0x01;//选择定时器0,工作方式为1
TH0=(65535-1000)/256;
TL0=(65536-1000)%256;
TR0=1;//启动定时器0
p1_0=0;
while(1)
{
if(TF0==1)
{
p1_0=~p1_0;
TF0=0;//清空中断标志位
TH0=(65535-1000)/256;
TL0=(65536-1000)%256;
TR0=1;//启动定时器0
}
}
}
*/
//中断方式,输出方波
#include <reg51.h>
sbit p1_0=P1^0;
void main()
{
ET0=1;//开启定时器0中断
EA=1;//开启总中断
p1_0=1;//起始为高电压,正波
TMOD=0x01;//选择定时器0,工作方式为1
TH0=(65535-1000)/256;
TL0=(65536-1000)%256;
TR0=1;//启动定时器0
while(1);
}
//中断函数
void time0_ISR(void) interrupt 1 using 3
{
TH0=(65535-1000)/256;
TL0=(65536-1000)%256;
p1_0=~p1_0;//取反
}