关于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
}
按键显示板还是老样直接抄袭清风电源第一版,连键盘驱动程序都不需要修改。 PWM输出后面接了个低通滤波吗?不错~~
不知输出波形光不光滑~~ mark 似乎不能改变周期。 没有源文件? 回复【5楼】deadfish
-----------------------------------------------------------------------
麻烦楼主给个详细的代码好不好? 回复【楼主位】bg8wj
-----------------------------------------------------------------------
请问启用PCA/PWM输出两路PMM后还影不影响两个定时器 0 1呢 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。 回复【楼主位】bg8wj
-----------------------------------------------------------------------
很有用 ,顶下,必须的 记号 要想频率可调就得占用timer1 mark DINGding顶 很好不错的pwm 万用表量的电压是 是不是将采集信号用PWM+滤波之后的模拟量? 不错!!!!!!!!!!!!!! CCAP1L=0x00;CCAP1H=0x00;是表示输出的PWM为100%,如果我们要是随意设为百分之几的话要怎么设 调频要用Timer1做溢出 谢谢了
mark~
CCAP1L=0x00;CCAP1H=0x00;为什么是表示输出的PWM为100%
页:
[1]