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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
这怎么改频率 谢谢大家
% Z- ~" U! T. }0 {( V+ e# s/ U- n, m

2 J+ c: D, N6 ]/ X# E" w& f) B; q- k3 V! @# \; T% ?& d! c
#include "STC8.H"

( e$ X! P/ X! G4 A/ Y#include <intrins.h>8 V9 m/ }& v1 x, M
: h! u  m9 q9 _  }
#define u8  unsigned char
& B- T1 r) P  f/ a: A" W#define u16  unsigned int
( l9 A  F* U2 X$ F0 u) E7 b#define u32  unsigned long) g. m$ n! D& K5 I

; ~! R6 p/ m% J- X% ^9 M/ u( g5 ^
void PCA_PWM_Init()
1 p7 z( K# r' j9 v% v2 ?7 {1 [{
5 H1 x- j2 O- d! f% L                CCON = 0x00;  ( y) h$ l: i" V1 f- b
                CMOD = 0x08; //PCA时钟为系统时钟  5 `% @; E. e& f9 O. ^. M
                CL = 0x00;4 ^% L: u2 t# l$ g5 g4 V' l1 Z
          CH = 0x00;
) L) X2 S9 f1 t( x, U- z  L! J                CCAPM0 = 0x42; //PCA模块0为PWM工作模式  1.7  0~63) d7 z' g" O% W$ @; U! c
                PCA_PWM0 = 0x80; //PCA模块0输出6位PWM  
! n) M! w7 b3 `. ?9 B* w. Z" P                CCAP0L = 0x20; //PWM占空比为50%[(40H-20H)/40H]  
, n4 m8 `0 a1 u                CCAP0H = 0x20;  % ^7 {4 L4 Y% ~6 f- p
          CCAPM1 = 0x42; //PCA模块1为PWM工作模式  % L- B' n- g4 p3 v8 ?! T* ]4 v
                PCA_PWM1 = 0x40; //PCA模块1输出7位PWM  
% B; p% _8 `4 @& B* S, r3 @# ?% W3 Q                CCAP1L = 0x20; //PWM占空比为75%[(80H-20H)/80H]  1.6        0~127; q, v0 C4 O; l; u
                CCAP1H = 0x20;! N- h( M3 S5 q* R6 w- j
          CCAPM2 = 0x42; //PCA模块2为PWM工作模式  
2 m2 e3 ^. y5 N+ s# e. m8 C0 z                PCA_PWM2 = 0x00; //PCA模块2输出8位PWM  , U9 F' C$ M/ c3 p  w7 }
                CCAP2L = 0x20; //PWM占空比为87.5%[(100H-20H)/100H]  1.5  0~255
: W# l9 Z1 b* ^' u                CCAP2H = 0x20;' H$ I! n1 l8 m( Y- i8 q+ @2 }) L0 g
          CCAPM3 = 0x42; //PCA模块3为PWM工作模式  6 r$ a7 ?, [8 C! E4 p
                PCA_PWM3 = 0xc0; //PCA模块3输出10位PWM
9 q( F% V6 u6 z! \          CCAP3L = 0x20; //PWM占空比为96.875%[(400H-20H)/400H]  9 b9 d& ~9 \4 F% N# z8 m! y
                CCAP3H = 0x20;
# s( V- {3 P9 }4 Z/ Y           CR = 1; //启动PCA计时器   
7 _- h3 X2 Y6 @" ]}0 C+ P9 Y% z1 D4 u; W- W

! W: g7 }; c- h% C5 P3 t//end
* v" J" J6 B" ^- `& h/ c/******************************************************************************
* t! s: I& e$ M3 D$ D/ x* @ 函数名  : main
* A: x/ s7 k8 K8 p% s* @ 功  能  : 主函数0 p2 a" O, k$ z3 ~' m" U6 x# I! I
* @ 参  数  : 无- C+ d  @/ f  ~& P  a
* @ 返回值  : 无+ h4 N0 \. u/ y* L
******************************************************************************/" u8 \4 C3 W/ b. E6 {/ Z. `

5 k2 Z/ l$ y" Tint main()
2 ?6 x& a( T" u) U% V! v{
2 o0 S) b! J7 Z, k$ L    P0M1 = 0x20;   P0M0 = 0x00;   //设置为准双向口                        P0.5为高阻
4 e0 x# `! M) ]4 n$ {8 e2 ]    P1M1 = 0x00;   P1M0 = 0x00;   //设置为准双向口, F! L/ Y- }5 z7 G& ^: s% [
    P2M1 = 0x00;   P2M0 = 0x20;   //设置为准双向口设置P3.5为推挽输出
( n! c+ Q. R( I0 Y) r% E3 |- H, z$ F    P3M1 = 0x40;   P3M0 = 0x00;   //设置为准双向口 P3.6为高阻
1 k7 H+ K4 u3 B: X0 w    P4M1 = 0x00;   P4M0 = 0x00;   //设置为准双向口
. A' Z7 V5 y7 Z7 e  S    P5M1 = 0x30;   P5M0 = 0x00;   //设置为准双向口  P5.5 P5.4为高阻! h  \9 g7 g9 s5 e( z
    P6M1 = 0x20;   P6M0 = 0x00;   //设置为准双向口  P6.5为高阻/ k* ~+ s! e$ M& ~: z& u: c
    P7M1 = 0x00;   P7M0 = 0x00;   //设置为准双向口
) Z2 b( w" B  h* ?7 [* t        PCA_PWM_Init();                  6 Y9 p, W7 F& E- J& w
        while(1)
2 `3 v4 b( ?  @3 e" P7 W        {9 D' h/ N; h5 d" X& s
         
2 D. h, A1 b6 t* z        }
2 ]( E5 ?+ V( a1 {      ! M! a) x( I8 r, O& H
}
6 f& K/ V* I( T% X. r
  • 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( ~( O+ X( _/ ^. ?% q
    PCA_PWM0        选择10位PWM
    ( p7 x4 |7 E% @4 M" V  h$ @! M$ `2 q: v5 S还不行就用6MHZ的时钟( x" f1 e- a, z% p- Y
    再不行就用32KHZ的时钟
  • TA的每日心情
    开心
    2022-1-24 15:10
  • 签到天数: 1 天

    [LV.1]初来乍到

    4#
    发表于 2022-7-13 13:22 | 只看该作者
    CMOD = 0x04;  v$ Q- ^* |# r3 X9 o
    然后,用定时器来定频率吧,你爱多慢就多慢。
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-10-8 18:28 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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