找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3057|回复: 4
打印 上一主题 下一主题
收起左侧

STC8系列单片机官网PWM程序为何测出的转换电压 不对啊

[复制链接]
跳转到指定楼层
楼主
官网的这个程序是PWM输出DAC电压的么?我直接下载来测试怎么电压不对的,外部电路我用了2级RC电路(按以前stc官网给的参考电路)。以下就是官网的程序,求个帮忙,谢谢
#include "reg51.h"
#include "intrins.h"

//测试工作频率为11.0592MHz

sfr     CCON        =   0xd8;
sbit    CF          =   CCON^7;
sbit    CR          =   CCON^6;
sbit    CCF3        =   CCON^3;
sbit    CCF2        =   CCON^2;
sbit    CCF1        =   CCON^1;
sbit    CCF0        =   CCON^0;
sfr     CMOD        =   0xd9;
sfr     CL          =   0xe9;
sfr     CH          =   0xf9;
sfr     CCAPM0      =   0xda;
sfr     CCAP0L      =   0xea;
sfr     CCAP0H      =   0xfa;
sfr     PCA_PWM0    =   0xf2;
sfr     CCAPM1      =   0xdb;
sfr     CCAP1L      =   0xeb;
sfr     CCAP1H      =   0xfb;
sfr     PCA_PWM1    =   0xf3;
sfr     CCAPM2      =   0xdc;
sfr     CCAP2L      =   0xec;
sfr     CCAP2H      =   0xfc;
sfr     PCA_PWM2    =   0xf4;
sfr     CCAPM3      =   0xdd;
sfr     CCAP3L      =   0xed;
sfr     CCAP3H      =   0xfd;
sfr     PCA_PWM3    =   0xf5;

void main()
{
    CCON = 0x00;
    CMOD = 0x08;                                //PCA时钟为系统时钟
    CL = 0x00;
    CH = 0x00;
    CCAPM0 = 0x42;                              //PCA模块0为PWM工作模式
    PCA_PWM0 = 0x80;                            //PCA模块0输出6位PWM
    CCAP0L = 0x20;                              //PWM占空比为50%[(40H-20H)/40H]
    CCAP0H = 0x20;
    CCAPM1 = 0x42;                              //PCA模块1为PWM工作模式
    PCA_PWM1 = 0x40;                            //PCA模块1输出7位PWM
    CCAP1L = 0x20;                              //PWM占空比为75%[(80H-20H)/80H]
    CCAP1H = 0x20;
    CCAPM2 = 0x42;                              //PCA模块2为PWM工作模式
    PCA_PWM2 = 0x00;                            //PCA模块2输出8位PWM
    CCAP2L = 0x20;                              //PWM占空比为87.5%[(100H-20H)/100H]
    CCAP2H = 0x20;
    CCAPM3 = 0x42;                              //PCA模块3为PWM工作模式
    PCA_PWM3 = 0xc0;                            //PCA模块3输出10位PWM
    CCAP3L = 0x20;                              //PWM占空比为96.875%[(400H-20H)/400H]
    CCAP3H = 0x20;
    CR = 1;                                     //启动PCA计时器

    while (1);
}


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:213173 发表于 2019-4-22 21:47 | 只看该作者
DAC的负载电阻值要大些,DAC只能输出电压,输出电流非常小,否则输出电压会下降。需要大电流需加功率放大器。
回复

使用道具 举报

板凳
ID:123289 发表于 2019-4-22 22:22 | 只看该作者
与硬件的滤波方式相关,上图。
回复

使用道具 举报

地板
ID:394367 发表于 2019-4-23 08:21 | 只看该作者
yzwzfyz 发表于 2019-4-22 22:22
与硬件的滤波方式相关,上图。

就是下面这个PWM外接电路,按我发出的程序,测出的电压都是5V左右。官网的程序没问题啊,是不是外接电路呢

微信图片_20190423081814.jpg (117.43 KB, 下载次数: 40)

微信图片_20190423081814.jpg
回复

使用道具 举报

5#
ID:394367 发表于 2019-4-23 08:23 | 只看该作者
wulin 发表于 2019-4-22 21:47
DAC的负载电阻值要大些,DAC只能输出电压,输出电流非常小,否则输出电压会下降。需要大电流需加功率放大器 ...

测出的电压都是5V,RC电路是105P和10K电阻,PWM程序不起作用
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表