已知8051单片机的时钟频率为6MHZ,通过定时器1的工作方式1在P1^1引脚输出一个1KHZ占空比为60%的矩形波。

题目:

已知8051单片机的时钟频率为6MHZ,通过定时器1的工作方式1在P1^1引脚输出一个1KHZ占空比为60%的矩形波。

已知条件分析:
1、时钟频率6MHZ,从这里我们可以得出它的机器周期为1/f=1/6us;
2、定时器1,工作方式1,那么对应TMOD寄存器也就是0x10;
3、输出一个1KHZ占空比60%,这里其实有两个条件,第一个输出1KHZ,他告诉我们输出的波形周期是1/f=1ms,然后是占空比,推出高电平为1ms*60%=600us,那么低电平就是400us;
4、机器周期=时钟周期*12=2us;
5、定时器工作方式1:定时时间=(65536-初值x)*机器周期,可算出初值为65486,即计数个数N为50;
 

编程:

//已知8051单片机的时钟频率为6MHZ
//通过定时器1的工作方式1在P1^1引脚输出一个1KHZ占空比为60%的矩形波。
#include <reg52.h>
#define uint unsigned int  
#define uchar unsigned char
sbit wave=P1^1;

static uint count=0;

void Timer1Init()
{
	TMOD |= 0x10;
	TMOD &= 0xf0;
	TH1 = (65536-65486)/256;//定时100us
	TL1 = (65536-65486)%256;
	EA = 1;
	ET1 = 1;
	TR1 = 1;
}

void main()
{
	Timer1Init();
	while(1);
}

void Timer1() interrupt 3
{
	TH1 = (65536-65486)/256;
	TL1 = (65536-65486)%256;
	count++;
	if(count==6)
		wave=0;
	if(count==10)
	{
		wave=1;
		count=0;
	}
}

 

  • 10
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值