我想用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。它的频率要怎么设置???的主要内容,如果未能解决你的问题,请参考以下文章