|
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 _
|
|