#include<reg51.h>
//设CPU是时钟12MHz的8051系列
voidSetupTimer0()
{
TMOD&=0XF0;//仅保留T1信息
TMOD|=0X02;//设置T0:定时功能,方式2,自动重载8位定时器/计数器
TH0=256-50;//每个周期为1us,定时每50us中断一次,两次为100us,
TL0=256-50;//自动重装,TL0,TH0均置256-50
TR0=1;//开启定时器
ET0=1;//定时器0中断打开
}
voidTimer0_ISR()interrupt1//中断服务程序
{
staticdataunsignedcharp0;
p0^=1;P0=p0;//p1完成翻转后输出到P1,两次翻转完成一个周期输出
}
voidmain()
{
SetupTimer0();
EA=1;//全局中断打开
while(1);//死循环,中断程序完成波形输出
}
‘贰’ 设计通过单片机I/O口输出占空比为1:2的方波程序,画出单片机外围电路,并描述编程思路。急求
单片机外围电路就不要画了吧。现在的单片机很多已经简单得没几个元件了。
甚至就一个单片机芯片就能跑了。
有PWM的,可以使用PWM输出1.2的方波。
没有的,使用时间脊猜中断,甚至使用延时函数,樱型型都可以输出1:2的方波的。
你只租神要在适当的时间,把I/O口的电平取反就成。很简单。
‘叁’ 用AT89S51编程,输出一个方波信号,要求周期1秒,占空比60%,在开发板验证通过,并在示波器观察到正确波形
如果需要非常肢尺准确,必须使用定时器,S51有两个定时器,随便用一个,设置定时时大凯间50ms,循环20次,就是一秒,滚饥唤占空比就是输出高电平的时间,60%就是600ms为高,400ms为低,IO引脚就随便用一个,已经很清楚了。。。