3个回答
展开全部
#include<reg51.h>
sbit out = P1^0;
void Init(void)
{
TMOD = 0x01; //十六位定时器
TH0 = 60000/256; //定时器计数器赋值,12MHz晶振5.5ms一次中断
TL0 = 60000%256;
ET0 = 1; //开定时器0中断允许
PT0 = 0; //中断优先级为0
return;
}
void main(void)
{
Init(); //系统初始化函数
TR0 = 1; //开始计数
EA = 1; //开中断允许
while(1) //休眠模式
{
PCON = 0x01;
}
}
void Timer0(void) interrupt 1
{
TL0 = TL0|(60000%256);
TH0 = 60000/256; //定时器计数器赋值,12MHz晶振50ms一次中断
out = ~out;
return;
}
说明:改变定时初值就可以改变时钟脉冲的频率.
sbit out = P1^0;
void Init(void)
{
TMOD = 0x01; //十六位定时器
TH0 = 60000/256; //定时器计数器赋值,12MHz晶振5.5ms一次中断
TL0 = 60000%256;
ET0 = 1; //开定时器0中断允许
PT0 = 0; //中断优先级为0
return;
}
void main(void)
{
Init(); //系统初始化函数
TR0 = 1; //开始计数
EA = 1; //开中断允许
while(1) //休眠模式
{
PCON = 0x01;
}
}
void Timer0(void) interrupt 1
{
TL0 = TL0|(60000%256);
TH0 = 60000/256; //定时器计数器赋值,12MHz晶振50ms一次中断
out = ~out;
return;
}
说明:改变定时初值就可以改变时钟脉冲的频率.
参考资料: 3+1
展开全部
用定时中断,设置定时器,定时时间就是脉冲周期的1/4,然后中断程序里面置某个端口取反就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先让某一个I/O口输出高(低)电平,然后用延时子程序延时一下,再让它输出低电平即可了,
也可以用定时器,定时输出一段时输出高电平,然后取返也可以。
也可以用定时器,定时输出一段时输出高电平,然后取返也可以。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询