bg8wj 发表于 2010-11-8 15:42:06

关于stc12c5a60s2 pwm方式测试 有图有真相

刚刚,完成60s2的pwm测试程序,这个程序榨干stc的所有资源。uart1、2 timer0、1、 pwm、 adc、液晶、键盘。嘿嘿没想到还不错。用pwm方式输出DAC 电压测试基本就是能保证精确到小数点后一位,只用了8位adc。
http://cache.amobbs.com/bbs_upload782111/files_34/ourdev_596160GFFT58.jpg
1.227V显示1.30V (原文件名:1.jpg)

http://cache.amobbs.com/bbs_upload782111/files_34/ourdev_596161ORULP1.jpg
3.108V显示3.08V (原文件名:2.jpg)

http://cache.amobbs.com/bbs_upload782111/files_34/ourdev_596162HQ6B65.jpg
3.108V显示3.08V长时间 (原文件名:3.jpg)

http://cache.amobbs.com/bbs_upload782111/files_34/ourdev_596163MSCEQM.jpg
硬件全家福 (原文件名:4.jpg)
关于电源我用了一个1u的电源改造成多路输出稳压电源。不错,5v与地短路后,电源会自动保护。pwm-dac用的是上次I/O引脚烧坏后留下的avr的学习板。直接从stc的p1.3飞线到lm358上。还好能用。
stc的pwm函数及其简单,
void PWM_init(void)
{
    CMOD=0x02;   //设置PCA定时器
    CL=0x00;
    CH=0x00;
       

        CCAPM1=0x42;   //PWM1设置PCA工作方式为PWM方式(使用时删除//)
        CCAP1L=0x00;   //设置PWM1初始值与CCAP0H相同
        CCAP1H=0x00;   // PWM1初始时为0

        CR=1;          //启动PCA定时器
}
void PWM1_set (unsigned char a)
{
        CCAP1L= a;   //设置值直接写入CCAP0L
        CCAP1H= a;   //设置值直接写入CCAP0H
}
按键显示板还是老样直接抄袭清风电源第一版,连键盘驱动程序都不需要修改。

Ian11122840 发表于 2010-11-8 17:14:28

PWM输出后面接了个低通滤波吗?不错~~

不知输出波形光不光滑~~

cuikai12345 发表于 2010-11-8 18:33:45

mark

banyai 发表于 2010-11-8 18:39:04

似乎不能改变周期。

deadfish 发表于 2010-11-10 12:49:08

没有源文件?

tcwdbtx1989 发表于 2010-11-26 19:29:13

回复【5楼】deadfish
-----------------------------------------------------------------------

麻烦楼主给个详细的代码好不好?

chushu 发表于 2011-11-19 13:26:16

回复【楼主位】bg8wj
-----------------------------------------------------------------------

请问启用PCA/PWM输出两路PMM后还影不影响两个定时器 0 1呢

bg8wj 发表于 2012-1-2 22:55:21

pwm部分完整源码可以看看这里http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=5301775&bbs_page_no=1&search_mode=3&search_text=bg8wj&bbs_id=1006
我用的stc12c5a60s2中,pwm是独立的模块。只需要设置好相应的参数,既可以使用。使用中不影响t0 t1。

kkk_aaa 发表于 2012-1-11 00:56:29

回复【楼主位】bg8wj
-----------------------------------------------------------------------
很有用 ,顶下,必须的

mcuz195 发表于 2012-2-17 17:02:38

记号

longwu911 发表于 2012-2-17 23:15:02

要想频率可调就得占用timer1

onlylgb0 发表于 2012-2-18 21:13:18

mark

ym7205 发表于 2012-5-15 14:01:47

DINGding顶

cong2010 发表于 2012-5-21 14:59:57

很好不错的pwm

JAY 发表于 2012-7-26 22:47:26

万用表量的电压是 是不是将采集信号用PWM+滤波之后的模拟量?

xtxtt 发表于 2012-7-26 23:25:38

不错!!!!!!!!!!!!!!

rainforestma 发表于 2012-8-2 22:48:54

CCAP1L=0x00;CCAP1H=0x00;是表示输出的PWM为100%,如果我们要是随意设为百分之几的话要怎么设

gaoyichuan000 发表于 2012-8-3 08:52:15

调频要用Timer1做溢出

rainforestma 发表于 2012-8-3 10:57:57

谢谢了

ZMCU 发表于 2012-8-15 16:28:11

   mark~

zhenglang 发表于 2014-5-19 21:47:06


CCAP1L=0x00;CCAP1H=0x00;为什么是表示输出的PWM为100%
页: [1]
查看完整版本: 关于stc12c5a60s2 pwm方式测试 有图有真相