首页 资讯 应用 高压 设计 行业 低压 电路图 关于

单片机

旗下栏目: PLC 嵌入式 单片机 DCS

使用STC12C系列单片机产生PWM波形

单片机 | 发布时间:2017-11-06 | 人气: | #评论# |本文关键字:单片机,PWM,STC12C2052AD
摘要:实际的测试或应用中,我们需要产生一些数字的时序信号,一般我们可以使用测试机的数字通道。如果需要的时序信号比较简单,我们也可以使用单片机来产生一些信号。在这里,简单

实际的测试或应用中,我们需要产生一些数字的时序信号,一般我们可以使用测试机的数字通道。如果需要的时序信号比较简单,我们也可以使用单片机来产生一些信号。在这里,简单介绍一下STC12C2052AD系列单片机,可以方便、简洁地满足我们的需求。

STC12C2052AD系列单片机是STC生产的单时钟/机器周期(1T)的单片机,内部集成15个通用I/O口、2路PWM/PCA、4个定时器、8路高速8位A/D转换等。ISP(在系统可编程),无需专用编程器,无需仿真器,可通过串口(P3.0/P3.1)直接下载程序。可以使用内部R/C振荡时钟,或者外部高精度晶振。内部结构图如下:

L0F`Y0JLAOVR81WBER899RT

在这里介绍的内容,是利用单片机的定时器和PCA功能产生两路PWM波形,且能根据需要在一定范围内调整输出频率。可以直接使用电脑的串口,或者USB口对单片机进行编程操作。在这里,采用的是USB口。

准备工作

* 软件部分:

– 安装Keil C51作为编程环境

– 安装STC ISP 15xx编程器软件

– 安装USB转串口驱动

* 硬件部分:

– 准备好USB转串口线(可在淘宝购买,最多几十块钱)

_BOW`K[E84XVSV5H0JLB0BQ

 

– ISP下载编程板,这个需要自己建立,或者网上购买。参考电路如下:

Y2TIUZV0XY8NUD0@L7$CVMW

– RS232转换器,电路如下:

3JB6D$[A]LN7H@PHJCWV}ZB

定时器功能说明
    STC12C2052AD系列有6个定时器,其中T0和T1是两个16位定时器,都具有计数方式及定时方式两种工作方式。对每个定时器/计数器,在特殊功能寄存器TMOD中都有一控制位来选择T0或T1为定时器还是计数器。其核心部件是一个加法的计数器,其本质是对脉冲进行计数。计数脉冲如果来自系统时钟就为定时器;计时脉冲来自单片机外部引脚(T0为P3.4,T1为P3.5)则为计数器。
特殊功能寄存器AUXR中的T0x12和T1x12,当工作在定时器模式时,分别用来决定系统时钟分频大小;当工作在计数器模式时,对外部脉冲不分频。

PCA功能说明
  STC12C2052AD系列单片机集成了2路可编程计数器阵列(PCA)模块,可用于软件定时、外部脉冲的捕捉、高速输出以及脉宽调制(PWM)的输出。

在此次的应用实现中,T0被用来控制PWM频率,设置及说明如下:2SMP2))WL$(4L(ZLD5E_R50

PCA则用来控制占空比,设置及说明如下:
5%[2(0T~WV_BS6$G(EL()T6

另外,还使用了外置中断来控制占空比,其中外部中断0用来增加PWM输出占空比,外部中断1用来减少占空比。代码如下:

_3D@H8ZE7$F4`85H$8P~0@S

通过上面的实例,我们就可以通过T0设置频率,PCA来设置占空比,中断0/1则用来调整占空比。

如果测试机需要使用及控制单片机,就可以使用外部中断,或者其它IO口,来控制单片机的输出。当然,也可以直接用串口进行控制。


责任编辑:电气自动化网

上一篇:STM32 usb_core.c分析

下一篇:没有了

热门文章

首页 | 资讯 | 应用 | 高压 | 设计 | 行业 | 低压 | 电路图 | 关于

Copyright 2017-2018 电气自动化网 版权所有 辽ICP备17010593号-1

电脑版 | 移动版

Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。