0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STC89C52通过配置相关寄存器即可实现Timer的功能控制

h1654155971.7688 来源:未知 作者:李倩 2018-04-20 08:38 次阅读

一、PWM

Pulse Width Modulation脉冲宽度调制,简称PWM。

PWM(脉冲宽度调制)对模拟信号电平进行数字编码的方法,计算机只能输出0或5V的数字电压值而不能输出模拟电压,而我们如果想获得一个模拟电压值,则需通过使用高分辨率计数器,改变方波的占空比来对一个模拟信号的电平进行编码。

仍输出数字信号,因为满幅值的直流供电只有5V(1)和0V(0)两种。电压是以一种连接(1)或断开(0)的重复脉冲序列被夹到模拟负载上去的,连接即是直流供电输出,断开即是直流供电断开。通过对连接和断开时间的控制,只要带宽足够,可以输出任意不大于最大电压值的模拟电压。

输出电压=(接通时间/脉冲时间)*最大电压值

12

二、51单片机Timer

作者用的单片机是STC89C52,其内部有3个16位Timer,分别为T/C0,T/C1,T/C2,通过配置相关寄存器即可实现Timer的功能控制。

控制PWM需要用到定时器来生成不同占空比的波形,采用定时器中断的方式。

相关寄存器:

1.IE寄存器

2. TCON寄存器

3. TMOD寄存器

控制Timer0/1的工作方式

4. Timer0/1计数寄存器

TL0

TL1

TH0

TH1

当定时开启后,TL0(TL1)自动跟随机器周期加一。当TL0(TL1)满了后,自动清零同时向TH0(TH1)进一位,不需要手动操作.

而当TL0(TL1)和TH0(TH1)都满了以后,此时如果定时中断和总中断都已经打开,那么就会发生溢出中断,同时这两个寄存器清零

三、运用PWM完成呼吸灯

1. 硬件电路

2. 软件驱动

unsigned char PWM_COUNT; //计数

unsigned int HUXI_COUNT; //占空比更新时间

unsigned char PWM_VLAUE; //占空比比对值

bit direc_flag; //占空比更新方向

void timer0_init()

{

TMOD=0x02; //模式设置,00010000,定时器0,工作于模式2(M1=1,M0=0)

TH0=0x47; //定时器溢出值设置,每隔200us发起一次中断。

TL0=0X47;

TR0=1; //定时器0开始计时

ET0=1; //开定时器0中断

EA=1; //开总中断

PWM_COUNT =0;

}

void time0() interrupt 1

{

PWM_COUNT++;

HUXI_COUNT++;

if(PWM_COUNT == PWM_VLAUE) //判断是否到了点亮LED的时候

LED = 1; //点亮LED

if(PWM_COUNT == 10) //当前周期结束

{

LED = 0; //熄灭LED

PWM_COUNT = 0; //重新计时

}

if((HUXI_COUNT == 600) && (direc_flag == 0))

{ //占空比增加10%

HUXI_COUNT = 0;

PWM_VLAUE++;

if(PWM_VLAUE == 9) //占空比更改方向

direc_flag = 1;

}

if((HUXI_COUNT == 600) && (direc_flag == 1))

{ //占空比减少10%

HUXI_COUNT = 0;

PWM_VLAUE--;

if(PWM_VLAUE == 1) //占空比更改方向

direc_flag = 0;

}

}

void main()

{

HUXI_COUNT = 0;

PWM_COUNT = 0;

PWM_VLAUE = 5;

direc_flag = 0;

LED = 1; //默认LED熄灭

timer0_init(); //定时器0初始化

while(1);

}

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6042

    文章

    44616

    浏览量

    637444
  • PWM
    PWM
    +关注

    关注

    114

    文章

    5196

    浏览量

    214525

原文标题:51单片机PWM的控制(呼吸灯)

文章出处:【微信号:weixin21ic,微信公众号:21ic电子网】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    关于STC89C52与AT89S52的问题

    了 现在手上只有STC89C52芯片,不知道是否可以把原来设计使用的AT89S52STC89C52芯片来使用,(直接把原来的程序烧进去)就是只换芯片 板子没有任何改变 求助大家帮忙解答谢谢了!!
    发表于 12-23 22:27

    采用STC89C52单片机实现智能电子密码锁的控制功能

    ,写人数据有效保存时间可达100年。片内DataFlash(E2PROM)地址如表1所示。 2.2 相关特殊功能寄存器 与使用STC89C52RC单片机内部E2PROM有关的特
    发表于 07-19 02:04

    基于STC89C52单片机的点阵屏设计

    STC89C52STC89C52STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash存储STC89C5
    发表于 07-19 08:34

    STC89C52定时的介绍

    目录定时的介绍STC89C52定时资源定时框图定时工作模式中断系统单片机引脚图中断服务流程中断资源定时
    发表于 01-13 08:05

    STC89C52芯片的编程

    编程STC89C51或52芯片,如下图放置STC89C52芯片,插好串口线和USB线,这里我们用了USB取电,先不要按下右下角的电源开关。
    发表于 08-05 14:08 371次下载

    基于STC89C52单片机控制的温度控制系统课程设计

    基于STC89C52单片机控制的温度控制系统
    发表于 01-06 17:00 152次下载

    单片机STC89C52程序

    单片机STC89C52源程序。
    发表于 01-11 18:16 112次下载

    STC89C52单片机介绍

    STC89C52单片机介绍。
    发表于 05-20 13:55 257次下载

    stc89c52引脚图及引脚功能说明

    本文为您带来单片机STC89C52引脚图,及STC89C52各个具体的引脚功能说明,详情请看如下全文内容。
    发表于 09-21 11:35 38.7w次阅读
    <b class='flag-5'>stc89c52</b>引脚图及引脚<b class='flag-5'>功能</b>说明

    基于STC89C52的红外遥控智能太阳能热水控制系统

    基于STC89C52的红外遥控智能太阳能热水控制系统基于STC89C52的红外遥控智能太阳能热水控制
    发表于 03-02 11:05 10次下载
    基于<b class='flag-5'>STC89C52</b>的红外遥控智能太阳能热水<b class='flag-5'>器</b><b class='flag-5'>控制</b>系统

    51单片机(STC89C52)的中断和定时

    STC89C51/STC89C52 Timer内部不带振荡源, 必须外接晶振采用11.0592MHz,或22.1184MHz,可方便得到串口通讯的标准时钟.STC89
    发表于 11-18 11:21 63次下载
    51单片机(<b class='flag-5'>STC89C52</b>)的中断和定时<b class='flag-5'>器</b>

    STC89C52单片机

    STC89C52单片机,STC89C52STC89C52看到涛哥这篇文章了,纪念一下还在搞嵌入式的我们!硬件实物图实物抽象化的图为:这个STC89C52名字是什么意思呢?STC89C52
    发表于 11-23 17:06 111次下载
    <b class='flag-5'>STC89C52</b>单片机

    STC89C52

    STC89C52
    发表于 11-25 15:51 162次下载
    <b class='flag-5'>STC89C52</b>

    STC89C52芯片手册

    STC89C52芯片手册_.pdf
    发表于 02-10 14:30 575次下载

    STC89C52单片机器件手册

    STC89C52系列单片机的内部结构框图如下图所示。STC89C52单片机中包含中央处理(CPU)、程序存储(Flash)、数据存储(
    发表于 09-05 10:41 8次下载