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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
这怎么改频率 谢谢大家! ?8 c1 t# o: ~5 y
: Z7 o* v5 a- s2 q, g) ^

& o4 m1 P3 H  i( e. V7 C  p& @1 D! A! h. v2 A. p1 d+ e+ u0 u
#include "STC8.H"

% _. R% }2 k& F% M#include <intrins.h>
% K# c3 r  O* F8 ~4 G' H7 _( h0 P+ H, @* A. a2 w' _
#define u8  unsigned char
7 V! C4 b. z* P4 D5 G/ \: A#define u16  unsigned int
6 e+ u1 Q+ u' a* i. m$ \#define u32  unsigned long; O6 o3 y! v& D1 `6 L

0 f4 t( y$ L* p! l  x
' ?0 t1 }" |2 L' n# lvoid PCA_PWM_Init()
! G6 S& v6 D% T' l{
: |, Q7 Q0 ]# l1 u+ H, o, h                CCON = 0x00;  # V' x3 [; M) F) I' w# o2 M
                CMOD = 0x08; //PCA时钟为系统时钟  
( g" _2 H' i3 G7 U" v* B                CL = 0x00;
" A+ J0 b% c. U# X          CH = 0x00;0 t* r) c% t0 A3 ?+ ^" z
                CCAPM0 = 0x42; //PCA模块0为PWM工作模式  1.7  0~63
5 [  c3 B/ R) t0 ^0 n7 `1 P                PCA_PWM0 = 0x80; //PCA模块0输出6位PWM  
. O5 n( r8 o# A- P7 J                CCAP0L = 0x20; //PWM占空比为50%[(40H-20H)/40H]  
  }! `( t. Y6 W# W! w                CCAP0H = 0x20;  
  `9 v( Q7 b5 h2 h% b          CCAPM1 = 0x42; //PCA模块1为PWM工作模式  & ^% ]0 l9 {2 v4 E. p0 G
                PCA_PWM1 = 0x40; //PCA模块1输出7位PWM  
. N) T6 x# q( c& c                CCAP1L = 0x20; //PWM占空比为75%[(80H-20H)/80H]  1.6        0~127
6 }3 n& U; [2 d& ^* U3 _; v                CCAP1H = 0x20;7 o, ?" f! A% P  @$ h+ D: o' H
          CCAPM2 = 0x42; //PCA模块2为PWM工作模式  
6 w+ R9 ^& q. A9 U                PCA_PWM2 = 0x00; //PCA模块2输出8位PWM  5 q9 a. R7 s, ~
                CCAP2L = 0x20; //PWM占空比为87.5%[(100H-20H)/100H]  1.5  0~255) J0 U: `* Q1 a5 @7 F' |7 U
                CCAP2H = 0x20;
5 m. m% {! r" s9 f2 ~          CCAPM3 = 0x42; //PCA模块3为PWM工作模式  
4 L" E& ]& L* s                PCA_PWM3 = 0xc0; //PCA模块3输出10位PWM$ k* |, H6 ?1 V) U# U  s+ i
          CCAP3L = 0x20; //PWM占空比为96.875%[(400H-20H)/400H]  
1 ~  ]3 ~0 D/ J% e1 A6 v4 x                CCAP3H = 0x20;
2 T3 A( P% ]- D' z# P           CR = 1; //启动PCA计时器   
& k& l% I: B! s) W6 e  D}
6 `$ h( z. ~% s
' v1 V4 ]3 q9 f* U# m$ f//end1 U6 w% U4 P/ c! E# S
/******************************************************************************" [& e1 c% @: P. o2 [
* @ 函数名  : main# u0 _. {% q- A2 C0 k5 _
* @ 功  能  : 主函数
( c5 E; k1 a) O( P/ `% R* @ 参  数  : 无
# q- h" n$ `1 p* @ 返回值  : 无" {8 O) D( t0 I$ ^
******************************************************************************/
, P) A1 b( x) f7 B; b1 l3 Z8 S7 n; B* \
int main()
% @# E8 n& X( u{) A8 @/ {' f+ ?+ p- ^
    P0M1 = 0x20;   P0M0 = 0x00;   //设置为准双向口                        P0.5为高阻$ i6 ~( A6 J- B. z4 a0 f( h9 b0 |; s
    P1M1 = 0x00;   P1M0 = 0x00;   //设置为准双向口% U1 {- F9 C" r
    P2M1 = 0x00;   P2M0 = 0x20;   //设置为准双向口设置P3.5为推挽输出
( a; S. t5 h# w7 {, t; X# z, D1 m" ]3 K    P3M1 = 0x40;   P3M0 = 0x00;   //设置为准双向口 P3.6为高阻1 v: u3 Q9 K" c- L. Q' ~- Z
    P4M1 = 0x00;   P4M0 = 0x00;   //设置为准双向口
9 f7 g0 E' p* |) p/ H" z% ~6 W    P5M1 = 0x30;   P5M0 = 0x00;   //设置为准双向口  P5.5 P5.4为高阻
# y, H5 m! E1 W5 F( H    P6M1 = 0x20;   P6M0 = 0x00;   //设置为准双向口  P6.5为高阻
- @8 R. A. w, I8 R1 x    P7M1 = 0x00;   P7M0 = 0x00;   //设置为准双向口5 n. S* H* G2 Y/ g/ ]# L7 u
        PCA_PWM_Init();                  6 w7 D  S8 I* O% `  w
        while(1)- L0 k! [. w5 B4 s( t2 A
        {& C; b% k# `! |
         9 n) n" b6 o) O
        }6 A4 g# s5 {: a8 }8 S4 ~: w
      6 B* l+ Z8 s6 R" O8 t1 B/ w  r
}" a. e- V# B# I2 _
  • 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; I) J5 N7 r" n, c* a( [3 y
    PCA_PWM0        选择10位PWM  O: f/ [, I7 I
    还不行就用6MHZ的时钟
    " ]9 i7 d2 G6 U# ]  L) p4 T$ B, I再不行就用32KHZ的时钟
  • TA的每日心情
    开心
    2022-1-24 15:10
  • 签到天数: 1 天

    [LV.1]初来乍到

    4#
    发表于 2022-7-13 13:22 | 只看该作者
    CMOD = 0x04;
    ' Z6 ]& c! X/ E! q4 L6 Y然后,用定时器来定频率吧,你爱多慢就多慢。
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-8-24 06:22 , Processed in 0.109375 second(s), 23 queries , Gzip On.

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

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

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