我想用C51单片机的定时器0工作方式2输出一个PWM。它的频率要怎么设置???

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我想用C51单片机的定时器0工作方式2输出一个PWM。它的频率要怎么设置???相关的知识,希望对你有一定的参考价值。

如果要500HZ,那中断时间就是1

500

2
等于
1MS
,这时如果你的单片机是6M的(12分频),这时一个命令周期是2US,那定时器0设为0X05,这时中断周期为512US,那出来的PWM信号就是500HZ.
当你要用PWM调节出10个档位,那PWM的中断周期也要除10(因为要中断20次).这时PWM周期就是200US,
定时器的中断时间就是100US,
那定时器初始化就要是0X9B(155).
回答也没有分得!!!!!!
参考技术A #include
sbit
output=p1^0;//定义输出端
unsigned
char
num;
void
main()

init();
while(1)

if(num<=7)
output=1;//输出高电平,改变数值大小调整占空比,数值不能大于10
else
output=0;//输出低电平


void
init()

num=1;//给num赋初值
tmod=0x01;
th0=(65536-t)/256;//调整t的值改变频率
tl0=(65536-t)%256;
ea=1;
et0=1;
er0=1;

void
time0
interrupt
1//中断函数

th0=(65536-t)/256;
tl0=(65536-t)%256;
num++;
if(num>10)
num=1;

51的单片机学习——定时器

1、关于定时器

  • 定时器由高8位和低8位两个寄存器组成。
  • TMOD是定时器的工作方式寄存器,由它确定定时器的工作方式;
  • TCON是定时器的控制寄存器,用于控制定时器的启动和停止以及设置溢出标志。

2、对定时器的控制

  • 工作方式寄存器TMOD的设置:对TMOD的访问是按字节访问,所以对TMOD进行设置时需要8位;其工作方式有方式0~方式3四种工作方式,一般选用方式1,即设置TMOD=0x01;
  • 控制寄存器TCON的设置:若选用定时器T0,使用时,设置TR0=1;若选用定时器T1,使用时,设置TR1=1;

3、使用定时器的方法

  • 第一:设置TMOD,配置好工作模式;
  • 第二:设置TH0和TL0的初值;
  • 第三:设置TCON,通过TR0=1来让定时器T0开始计数;
  • 第四:判断TCON寄存器的TF0位,监测定时器溢出情况;

4、定时器在数码管静态显示中的应用

上次在做数码管静态显示时,是使用延时函数使数码管的显示更清晰。这次可以用定时器控制数码管显示两个不同数值之间的时间间隔。

程序:

#include <reg52.h>

sbit ADDR0=P1^0;  
sbit ADDR1=P1^1;
sbit ADDR2=P1^2;
sbit ADDR3=P1^3;
sbit ENLED=P1^4;

unsigned char code duan[]=//共阳极显示
0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;  

void main()

	unsigned char i,n;
	
	ADDR0=0;  //按原理图对端口初始化
	ADDR1=0;
	ADDR2=0;
	ADDR3=1;
	ENLED=0;
	
	TMOD = 0x01;
	TH0 = 0xb8;
	TL0 = 0x00;
	TR0 = 1;
	
	
	while(1)
		
		if(TF0 == 1)
		
			TF0 = 0;
			TH0 = 0xb8;
			TL0 = 0x00;
			n++;
			if(n>=50)    // 1s
			
				n = 0;
				P0 = duan[i];
				i++;
				if(i>9) i=0;
			
		
	

 

以上是关于我想用C51单片机的定时器0工作方式2输出一个PWM。它的频率要怎么设置???的主要内容,如果未能解决你的问题,请参考以下文章

c51单片机中断程序中的interrupt1,2,3是由啥决定的?

C51 定时器

用C51单片机的外部中断设计1s定时器

用C51单片机的外部中断设计1s定时器

请教高人C51单片机C语言中的中断优先级怎么设置?

stc12c5a60s2的单片机与at89c51单片机有啥区别论文上面要用