如何用c语言让at89s51单片机产生一个时钟脉冲

在下刚接触单片机 很很菜。
能不能 给编一个c程序 给一个实例

#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;
}
说明:改变定时初值就可以改变时钟脉冲的频率.

参考资料:3+1

温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-11-07
用定时中断,设置定时器,定时时间就是脉冲周期的1/4,然后中断程序里面置某个端口取反就可以了
第2个回答  2008-11-06
先让某一个I/O口输出高(低)电平,然后用延时子程序延时一下,再让它输出低电平即可了,
也可以用定时器,定时输出一段时输出高电平,然后取返也可以。