一:NOTE
今天分享一个题目,有关51单片机输出方波的问题,好了,进入正题
二:题目
已知8051单片机的时钟频率为6MHZ,通过定时器1的工作方式1在P1^1引脚输出一个1KHZ占空比为60%的矩形波。
三:分析题目
1、首先第一个条件,时钟频率6MHZ,从这里我们可以得出它的时钟周期为1/f=2us
2、第二个条件,定时器1,工作方式1,那么对应TMOD寄存器也就是0x10。
3、第三个条件,输出一个1KHZ占空比60%,这里其实有两个条件,第一个输出1KHZ,他告诉我们输出的波形周期是1/f=1ms,然后是占空比,推出高电平为1ms*60%=600us,那么低电平就是400us,到这里,题目所有条件都分析完毕
四:理论储备
1、机器周期=时钟周期*12;
2、定时器工作方式1:定时时间=(65536-初值)*机器周期(知道为什么要算机器周期了吧)这里带入值可以算出初值是50
3、拓展:定时器方式0:定时时间=(8192-初值)*机器周期
定时器方式2:定时时间=(256-初值)*机器周期
五:编程思路
我的思路是定时器初值设100us,然后开始的时候开启定时器并且给高电平,然后给一个标志tt,当tt加到6的时候,给低电平,这样就实现方波的形成,下面给出程序。
六:程序演示
#include<reg51.h>
sbit wave=P1