stc12c5a60s2 pwm206AD有2路PWM输出,是哪两个脚呢?

求助,stc12c5a60s2产生pwm用示波器没有波形输出 - 单片机论坛 -
中国电子技术论坛 -
最好最受欢迎电子论坛!
后使用快捷导航没有帐号?
求助,stc12c5a60s2产生pwm用示波器没有波形输出
16:03:44  
/*********************************************************************************************
& & 两路PWM输出控制设置
/*********************************************************************************************/
#ifndef __SET_PWM_H__
#define __SET_PWM_H__
//***********************************************************************************/
//PWM模式设置
void Init_PWM()
& &// set PWM mode
&&CCON = 0;& && && && && && &//Initial PCA control register(PCA timer stop,Clear CF flag,Clear all module interrupt flag)
&&CL = 0;& && && && && && &&&//Reset PCA base timer
&&CMOD = 0x04;& && && && && &//Set PCA timer clock source as timer0 overflow,Disable PCA timer overflow interrupt
&&CCAP0H = CCAP0L =0x80;& &&&//PWM0 port output X% duty cycle square wave
&&CCAPM0 = 0x42;& && && && & //PCA module-0 work in 8-bit PWM mode and no PCA interrupt
&&CCAP1H = CCAP1L = 0x80;& &&&//PWM1 port output X% duty cycle square wave
&&CCAPM1 = 0x42;& && && && & //PCA module-1 work in 8-bit PWM mode and no PCA interrupt
&&CR = 1;& && && && && && &&&//PCA timer start run
//***********************************************************************************/
//设置Timer0为8位自动重载模式,作为PWM时钟源
void Init_Timer0()
&&AUXR = 0x00;& && && && && &//timer0 work in 12T mode
&&TMOD|= 0x02;& && & //set timer0 counter mode2 (8-bit auto-reload)
&&TH0=TL0=130;& &&&//PWM 50Hz
&&TR0 = 1;& && &//timer0 start running(as PWM clk)
#endif&&头文件是直接用的stc12c5a60s2.h文件,就是没有波形输出,检查过很多次 寄存器配置也没发现问题,求大神帮忙看下
这个是我自己用的,你可以参考一下。你直接对CCAPXH和CCAPXL赋值,就可以直接在P12,P13,P14,P15产生PWM波了。
#include&STC12C5A60S2.H&
#include &pca.h&
void PWM_init (void)
& & & & CCON=0;
& & & & CMOD=0x02; //设置PCA定时器
& & & & CL=0x00;
& & & & CH=0x00;
& & & & CCAPM0=0x42; //PWM0设置PCA工作方式为PWM方式()
& & & & CCAP0L=0x00; //设置PWM0初始值与CCAP0H相同
& & & & CCAP0H=0x00; // PWM0初始时为0
& & & & CCAPM1=0x42; //PWM1设置PCA工作方式为PWM方式(使用时删除//)
& & & & CCAP1L=0x00; //设置PWM1初始值与CCAP0H相同
& & & & CCAP1H=0x00; // PWM1初始时为0
& & & & CR=1; //启动PCA定时器
void PWM0_set (unsigned char a)& & & & & & & & //左轮
& & & & CCAP0L= //设置值直接写入CCAP0L
& & & & CCAP0H= //设置值直接写入CCAP0H
void PWM1_set (unsigned char a)& & & & & & & & //右轮
& & & & CCAP1L= //设置值直接写入CCAP1L
& & & & CCAP1H= //设置值直接写入CCAP1H
16:03:45  
这个是我自己用的,你可以参考一下。你直接对CCAPXH和CCAPXL赋值,就可以直接在P12,P13,P14,P15产生PWM波了。
#include&STC12C5A60S2.H&
#include &pca.h&
void PWM_init (void)
& & & & CCON=0;
& & & & CMOD=0x02; //设置PCA定时器
& & & & CL=0x00;
& & & & CH=0x00;
& & & & CCAPM0=0x42; //PWM0设置PCA工作方式为PWM方式()
& & & & CCAP0L=0x00; //设置PWM0初始值与CCAP0H相同
& & & & CCAP0H=0x00; // PWM0初始时为0
& & & & CCAPM1=0x42; //PWM1设置PCA工作方式为PWM方式(使用时删除//)
& & & & CCAP1L=0x00; //设置PWM1初始值与CCAP0H相同
& & & & CCAP1H=0x00; // PWM1初始时为0
& & & & CR=1; //启动PCA定时器
void PWM0_set (unsigned char a)& & & & & & & & //左轮
& & & & CCAP0L= //设置值直接写入CCAP0L
& & & & CCAP0H= //设置值直接写入CCAP0H
void PWM1_set (unsigned char a)& & & & & & & & //右轮
& & & & CCAP1L= //设置值直接写入CCAP1L
& & & & CCAP1H= //设置值直接写入CCAP1H
19:55:48  
程序没问题的话,确定芯片在工作?
芯片是正常供电的啊,也换过一个一样的芯片去试,但也一样,示波器没有波形
助理工程师
21:45:40  
检查下单片机是否正常工作?
12:48:43  
这个是我自己用的,你可以参考一下。你直接对CCAPXH和CCAPXL赋值,就可以直接在P12,P13,P14,P15产生PWM波了 ...
嗯嗯,谢啦,参考下
09:19:02  
#include&stc12c5a60s2.h&
void main()
CCAPM0=0x42;//8位PWM模式
CCON=0x40;& & & &&&//启动PWM计数
CMOD=0x04;//设置PWM时钟使用定时器0
TMOD=0x02;//定时器0工作方式2
TL0 =178;//定时78us * 256=20ms
TR0 =1;//启动定时器
CCAP0H=CCAP0L=230;//占空比调整至10%
我昨天实验的,有波形50hz。工作方式也和你的类似,据说TH0只能为0,TL0自己工作,我试了下,TH0赋值后,波形频率不对。而且我给TLO赋其他值,波形都不产生了,我现在还不知道怎么回事呢,你知道为啥不,讨论讨论。
10:13:00  
#include&stc12c5a60s2.h&
void main()
CCAPM0=0x42;//8位PWM模式
CCON=0x40;& & & &&&//启动PWM计数
CMOD=0x04;//设置PWM时钟使用定时器0
TMOD=0x02;//定时器0工作方式2
TL0 =178;//定时78us * 256=20ms
TR0 =1;//启动定时器
CCAP0H=CCAP0L=230;//占空比调整至10%
我的问题解决了,这个频率可调,TH0,TL0都需要赋值。之前那个程序不成,可能是没加while (1),自身循环运行了,导致定时不准。
16:09:00  
#include&stc12c5a60s2.h&
void main()
定时器的话TH0和TL0肯定都要重装初值啊。
06:51:26  
恩恩,我发的第二个调整了,你产生的波形怎么样,我的波形显示单位为0.5mv的时候,上升沿有些抖动,是程序问题么,你的波形整齐么。
21:36:50  
恩恩,我发的第二个调整了,你产生的波形怎么样,我的波形显示单位为0.5mv的时候,上升沿有些抖动,是程序 ...
嗯嗯,还可以。要记得在主程序加while(1);
21:44:03  
输出PWM后怎么在程序中调节占空比?????例如中断中怎么赋值能改变输出PWM的占空比????
21:42:49  
感谢啊!我也是这样写程序的,想用来驱动蜂鸣器
............................
Powered bystc的 IAP15F2K61S2单片机有PWM输出吗?能驱动小车吗?PWM输出口是哪几个I/O口?程序有吗?_百度知道
stc的 IAP15F2K61S2单片机有PWM输出吗?能驱动小车吗?PWM输出口是哪几个I/O口?程序有吗?
提问者采纳
com" target="_blank">www://www有 PWM 输出,名称以 CCP 开头的就是 PWM
输出口,灌电流 20mA。请登录 <a href=" 下载相关手册.stcmcu.stcmcu,手册中包含示例代码
一共有几路啊?我有电机驱动电路你能给我一个简单的,输出多路PWM的程序吗??
一共有 3 路。我没有编过 PWM 程序。你可以自己参考手册上的样例程序啊,代码都有注释的。
提问者评价
其他类似问题
为您推荐:
其他2条回答
有pwm输出的
是有的,驱动小车干嘛不加的驱动电路呢.
您可能关注的推广
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁君,已阅读到文档的结尾了呢~~
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
STC12C5A60S2
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口【求教】arduino pro mini (atmega328)的pwm输出是哪几个脚?_arduino吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:39,296贴子:
【求教】arduino pro mini (atmega328)的pwm输出是哪几个脚?收藏
我买的板子上面有2~13数字标记的引脚,应该就是普通的i/o口吧?还有A0~A7,应该是adc引脚吧?但是没找到#开头的引脚,不晓得pwm信号应该选用那些脚(不想用模拟pwm)求大神指点,谢谢了
无聊的时候就要多动动脑子!
pro mini 的pwm和 Uno是相同的,都是这几个引脚:PWM: 3, 5, 6, 9, 10, 11
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或

我要回帖

更多关于 ad输出 的文章

 

随机推荐