单片机输出PWM脉冲的两种方法
21ic 2024-12-12

51单片机没有PWM输出功能,可以采用定时器配合软件的方法实现,对精度要求不高的场合是非常实用的。采用高速光隔6N137输出,并将PWM的信号倒相。

一、 工作原理

二、PWM输出

1. 固定脉宽PWM输出

用T0定时器完成PWM输出,脉宽固定为65536μs。T0定时器设置成16位定时器,PWM波形如图2所示。

程序清单:(12MHz)

PwmData0 ;T0定时t1的初值(字)

PwmData1 ;T0定时t2的初值(字)

PwmF     ;PWM输出标志

??;***************************

setb tro ;启动T0

……

T0Int:;T0中断服务程序

JB PwmF ,PwmOutH

;PWM输出未完成返回

Mov TH0,High(PwmData0)

Mov TL0,Low(PwmData0)

Setb tr0

Setb PwmF

Clr p1.0 ;PWM输出脚

reti

PwmOutH:Setb p1.0

Clr tr0

Mov TH0,High(PwmData1)

Mov TL0,Low(PwmData1)

Setb tr0

Clr PwmF

reti

说明:在主程序中计算PwmData0、PwmData1的值。

2. 可变脉宽PWM输出

用T0定时器控制PWM的占空比,T1定时器控制脉宽(最大65536μs。)

T0、T1定时器设置成16位定时器。

程序清单:(12MHz)

PwmData0 ;T0定时t1的初值(字)

PwmData1 ;T1定时T的初值(字)

??;***************************????????????

setb tro ;启动T0

setb tr1

……

T0Int:Clr tr0   ;T0中断服务程序

setb p1.0 ;PWM输出脚

reti

T1Int:Clr p1.0 ;T1中断服务程序

Clr tr0

Clr tr1

Mov TH0,High(PwmData0)

Mov TL0,Low(PwmData0)

Mov TH1,High(PwmData1)

Mov TL1,Low(PwmData1)

Setb tr1

Setb tr0

reti

说明:在主程序中计算PwmData0、PwmData1的值。


声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
  • 相关技术文库
  • 单片机
  • 嵌入式
  • MCU
  • STM
  • AT89C51单片机控制LED实例电路图解析

    AT89C51是40针微控制器,属于8051系列微控制器。它有四个端口,每个端口有8位P0,P1,P2和P3。AT89C51具有4K字节的可编程闪存。端口P0覆盖引脚32至引脚39,端口P1覆盖引脚1至引脚8,端口P2覆盖引脚21至引脚28,端口P...

    12-12
  • 搞定pic单片机IO口操作

    对于pic单片机的学习,很多朋友总是能充满激情,不断利用闲余时间研究pic单片机的各类技术。而谈及pic单片机,必须牵扯至51、AVR单片机。因此本文中,将探讨pic单片机以及51、AVR单片机对于IO口的操作。对于本文,希...

    12-12
  • pic单片机分类大讲解

    对于pic单片机,大家或多或少均有所耳闻。但是,大家对pic单片机有多少了解呢?是否熟知不同类型的pic单片机呢?本文中,将探讨pic单片机的类型分类以及特征。此外,本文的探讨基于pic 8位单片机而进行。 由美国Micro...

    12-12
  • 单片机编程软件基础篇,IAR单片机编程软件菜单栏讲解

    单片机编程软件是单片机编程不可或缺的利器,一款好的单片机编程软件更能极大程度提高开发效率。在本文中,主要为大家介绍IAR单片机编程软件的菜单栏,以帮助大家更好了解这款单片机编程软件。 Ⅰ、写在前面 IAR软件...

    12-12
  • IAR单片机编程软件之新建软件工程

    单片机编程软件数量不多,Keil和IAR为当前主流的单片机编程软件。对于每门单片机编程软件的学习,总需耗费一定必要的时间。为最大化减少大家对单片机编程软件学习时间的投入,本文特地带来IAR单片机编程软件相关教程...

    12-12
  • 单片机编程软件,IAR单片机编程软件之基础教程

    好的单片机编程软件受到众多开发人员青睐,而对单片机编程软件了解较多的朋友都知道,目前市场上主要流通的单片机编程软件为Keil和IAR。本文中,主要为大家讲解IAR单片机编程软件的基础教程。如果你对IAR存在一定兴...

    12-12
  • 51单片机的P1、P2、P3口的工作原理

    1、P1口某一位的内部电路结构如下图所示,在51单片机的P0,P1,P2,P3口中,P1口的结构最简单,用途也最单一。仅仅只作为普通的数据输入/输出(I/O)端口使用。从图中可以看出,P0口与P1口的主要差别在于:P1端口用内...

    12-12
  • AT89S51最小系统制做

    C51最小系统电路在网上一搜一大把,大同小异。我略做改动后如图:   加一个11.0592MHZ的晶振是为了以后做串口通信时和PC有相同的波特率。可用短路帽切换。 说说板子的布局:网上卖的最小系统都是把板子做的非常小,...

    12-12
下载排行榜
更多
评测报告
更多
广告