找回密码
 注册
关于网站域名变更的通知
查看: 160|回复: 3
打印 上一主题 下一主题

这怎么改频率?单片机PCA模块输出PWM程序

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-7-13 11:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
这怎么改频率 谢谢大家; m, w, N. V" f) k

. v: s* B8 b) T' `' \2 T4 r$ _2 p! d& I) M
( R- y# A' h' D
#include "STC8.H"

; k  `/ n9 {* R#include <intrins.h># [# z. E9 X. u: ^6 K/ ?. o
# j5 L- ~* I* \! J% G7 V4 f
#define u8  unsigned char6 _% s# ]; }, C; w
#define u16  unsigned int
( _$ n# Y) A, {3 M# R#define u32  unsigned long* t9 f( R7 n3 D# q9 `5 X

' Z# Y. A6 }: L" A( G1 g& m! Y; ^# Z1 O* u
void PCA_PWM_Init()8 P+ m' L) e; V8 l- M( W3 Q0 C
{' b+ f$ v. N) s+ t- W( _# n. C
                CCON = 0x00;  
& ^. Q/ B  ]4 g3 {2 G' [                CMOD = 0x08; //PCA时钟为系统时钟  
* O; k$ W; R5 x* m; a  d7 V                CL = 0x00;
$ K9 ~5 M6 H) t1 \. c9 P; z          CH = 0x00;! S3 ]9 g/ }1 B
                CCAPM0 = 0x42; //PCA模块0为PWM工作模式  1.7  0~639 i2 @/ I; x. i, m  v; }
                PCA_PWM0 = 0x80; //PCA模块0输出6位PWM  : [2 \! w* n, K7 l2 @
                CCAP0L = 0x20; //PWM占空比为50%[(40H-20H)/40H]  
2 r- d" w) [) Y8 y  u# _& A0 |+ ]                CCAP0H = 0x20;  5 {7 s" g6 C7 V' @8 `
          CCAPM1 = 0x42; //PCA模块1为PWM工作模式  : v; q- d3 S" H
                PCA_PWM1 = 0x40; //PCA模块1输出7位PWM  7 K$ f: o, {5 X& {' z( d  Y
                CCAP1L = 0x20; //PWM占空比为75%[(80H-20H)/80H]  1.6        0~127
" b  w0 x  K( g5 h+ t                CCAP1H = 0x20;% b: {; b, \5 k) u6 I+ u5 [, V, \$ ]" T5 L
          CCAPM2 = 0x42; //PCA模块2为PWM工作模式  * o' m7 T5 r3 [9 J% v% T
                PCA_PWM2 = 0x00; //PCA模块2输出8位PWM  * i- l  ~8 U/ f: H) D5 z* T
                CCAP2L = 0x20; //PWM占空比为87.5%[(100H-20H)/100H]  1.5  0~255
4 Y3 `- Z% c0 R, [: n1 r) x) r% Z                CCAP2H = 0x20;
( O3 l6 R/ \% Q0 T9 }$ P( R          CCAPM3 = 0x42; //PCA模块3为PWM工作模式  ( J# f- A, [3 F' i7 n+ `
                PCA_PWM3 = 0xc0; //PCA模块3输出10位PWM
$ c/ i! {" v7 p3 J0 Y          CCAP3L = 0x20; //PWM占空比为96.875%[(400H-20H)/400H]  
" z. w5 I6 ]5 J4 }                CCAP3H = 0x20;0 z+ y  O$ {0 {9 Y7 z4 U
           CR = 1; //启动PCA计时器   6 ?# Q. x) O6 h/ r
}$ n; z" V# u- j+ k; @
9 R4 Y' n  f7 I( _" a8 E+ b
//end
. c7 F2 ~& u2 ~, k' E9 A/******************************************************************************3 H  k- m, N! C
* @ 函数名  : main( `- [( C' \  t" X3 @
* @ 功  能  : 主函数
5 G0 t% Y, q+ r* {, d) \4 \* @ 参  数  : 无0 R5 w+ ?& D, j$ J5 L/ a
* @ 返回值  : 无
  A& y4 Y+ _* E$ X) ~; k8 ]9 U* c******************************************************************************/& K" P6 N/ t  ]0 i% ?1 _8 H
% t. x3 V5 S; ~9 s: T0 N1 a& \
int main()
* Z9 G" ~0 ]/ n) D7 h{/ c  o' f" L. L" K4 Q
    P0M1 = 0x20;   P0M0 = 0x00;   //设置为准双向口                        P0.5为高阻* g; z4 @. j( A0 l9 M
    P1M1 = 0x00;   P1M0 = 0x00;   //设置为准双向口: \) \2 c" O% R  d* ^5 L) d
    P2M1 = 0x00;   P2M0 = 0x20;   //设置为准双向口设置P3.5为推挽输出
' @! H$ m. H8 O% K2 |4 X    P3M1 = 0x40;   P3M0 = 0x00;   //设置为准双向口 P3.6为高阻
) ^% Q: M# o3 D* [    P4M1 = 0x00;   P4M0 = 0x00;   //设置为准双向口7 D4 g+ K$ {$ i; m- i
    P5M1 = 0x30;   P5M0 = 0x00;   //设置为准双向口  P5.5 P5.4为高阻
0 V2 ^! l  I" m    P6M1 = 0x20;   P6M0 = 0x00;   //设置为准双向口  P6.5为高阻
, H! c0 w- g) h# [    P7M1 = 0x00;   P7M0 = 0x00;   //设置为准双向口
/ U( J% @- y, o        PCA_PWM_Init();                  
" U- n3 C  O- L6 |5 e" c        while(1)
) O! d" m$ I* N0 U+ |' V        {
' Y& z6 e% f1 u/ X         9 H  l' r9 n! l5 n8 o' B3 C8 V- J
        }, @# ?! z/ O& a6 g$ m8 t. s$ V
      
. V4 k( c. d/ ~}
. x% R; F  A6 g% I( B- q
  • TA的每日心情
    开心
    2022-1-21 15:08
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2022-7-13 13:07 | 只看该作者
    改变PCA时钟输入源的频率就可以改变PWM的频率

    该用户从未签到

    3#
    发表于 2022-7-13 13:13 | 只看该作者
    CMOD   选择时钟为系统时钟/12; \, _/ ^! v" ?1 B. a1 l
    PCA_PWM0        选择10位PWM
    ( H7 ^) a6 C( a; F+ f, o# H还不行就用6MHZ的时钟
    ) V# i* R0 K& @* D再不行就用32KHZ的时钟
  • TA的每日心情
    开心
    2022-1-24 15:10
  • 签到天数: 1 天

    [LV.1]初来乍到

    4#
    发表于 2022-7-13 13:22 | 只看该作者
    CMOD = 0x04;
    $ d- R$ _- b% r! t0 i9 A8 ]然后,用定时器来定频率吧,你爱多慢就多慢。
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-7-14 03:13 , Processed in 0.109375 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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