AT89c51定时器在P1.0端子输出频率为25HZ占空比为75%方波信号的单片机程序怎么写哇

如题所述

25Hz,周期是40ms。
30ms高电平,10ms低电平,就行了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-05-01
我这是周期50HZ的,不同的单片机时钟不同,可以自己算。
#include<reg51.h>
typedef unsigned char unchar;
typedef unsigned char unint;

#define V_TH0 0XFF //调节 V_TH0 和V_TL0的值即调节周期
#define V_TL0 0X81
#define V_TMOD 0X01
sbit P1_0 = P1^0;

/************************主函数********************/
unchar ZKB1; //调节

main()
{
//ZKB1=11; /*占空比初始值设定8 18 1ms 32*/
//ZKB2=18; /*占空比初始值设1.5y定*/
init_sys();
while(1)
{ }
}
/******************************************************
*函数功能:对系统进行初始化,包括定时器初始化和变量初始化*/
void init_sys(void) /*系统初始化函数*/
{
/*定时器初始化*/
TMOD=V_TMOD;
TH0=V_TH0;
TL0=V_TL0;
ZKB1=20;
// TR0=0;
// ET0=0;
// EA=0;
TR0=1;
ET0=1;
EA=1;
}
/*中断函数*/
void timer0(void) interrupt 1 using 2
{
static unchar click=0; /*中断次数计数器变量*/
TH0=V_TH0; /*恢复定时器初始值*/
TL0=V_TL0;
++click;
if (click>=1000) click=0;

if (click<=ZKB1) /*当小于占空比值时输出低电平,高于时是高电平,从而实现占空比的调整*/
P1_0=1;
else
P1_0=0;
}本回答被提问者采纳
相似回答