📄 波形产生.c
字号:
//*******************************************************************//
//用定时计数器0 工作在方式1 在P1.0引脚上输出一个高电平为200us低电平为//
//1000Us的脉冲波形(即周期为1200Us%),单片机采用12M晶体 //
//*******************************************************************//
#include <at89x52.h>
unsigned char bdata i=0;
void Timer0Interrupt( void ) interrupt 1
{
i=~i;
if(i==0)
{TL0=-1000;
TH0 = -1000>>8;} //重新定时1ms
else
{TL0=-200;
TH0 = (-200)>>8;} //重新定时200us
P1_0=i^0;
}
void Timer0Init( void )
{ TMOD=(TMOD & 0xf0) | 0x01; //初始化,定时器T0,工作方式1 与INT0无关 定时器模式
P1_0=0;
TL0 = -1000; //定时1ms 单片机采用12M晶体
TH0=(-1000)>>8;
TR0 = 1; //允许T0开始计数
ET0=1;
EA=1;
}
void main( void )
{
Timer0Init(); //time0初始化
while(1);
} ////等待硬件定时 到 并输出波形
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -