久久久国产一区二区_国产精品av电影_日韩精品中文字幕一区二区三区_精品一区二区三区免费毛片爱

 找回密碼
 注冊(cè)會(huì)員

QQ登錄

只需一步,快速開始

搜索

用PIC單片機(jī)產(chǎn)生方波遇到這種波形

查看數(shù): 3313 | 評(píng)論數(shù): 3 | 收藏 0
關(guān)燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請(qǐng)稍候......
發(fā)布時(shí)間: 2018-11-5 20:08

正文摘要:

本帖最后由 馮喆喆 于 2018-11-5 20:11 編輯 ( T4 I+ B6 `/ d' t% n+ \! G, _* n3 u5 R' j- H, N 用PIC16F887單片機(jī)產(chǎn)生方波,當(dāng)我把方波頻率設(shè)為4KHz時(shí)波形是正常的,當(dāng)我改變TIMER2的分頻值,從4改為16 ,此時(shí)頻 ...

回復(fù)

馮喆喆 發(fā)表于 2018-11-6 14:45:37
遠(yuǎn)祥 發(fā)表于 2018-11-6 07:38
5 K: k7 U( n. ]) A# a5 M; f. T單片機(jī)常用問題嗎?

& {' Q: ]" _% N; ~; r3 B+ l這個(gè)是用PIC單片機(jī)產(chǎn)生PWM波,應(yīng)該比較常見吧
遠(yuǎn)祥 發(fā)表于 2018-11-6 07:38:09
單片機(jī)常用問題嗎?
馮喆喆 發(fā)表于 2018-11-5 20:14:34
主要的程序我也貼上來各位看一下
0 q0 s! }3 n% o* X. c( |  d
) k1 G2 S3 _& Y6 L9 \& E( u/********端口初始化函數(shù)********/
$ V  y& }! i2 o8 U7 C6 rvoid init(); z! Y+ W" C# g& d
{4 J, x( x$ ?. |, y' Z% d; Q: B! c6 K
        ANSELH=0x00;                     //設(shè)置B口為數(shù)字I/O口
3 @" c3 I# _  _        OPTION_REG=0x00;
7 Y# \2 f2 o4 D9 Z4 J3 Q% q        WPUB=0xFF;         //設(shè)置B口弱上拉
3 g( O1 ^6 |0 D( E" b1 Z! s' A+ F        INTCON=0x00;       //關(guān)總中斷
: A; x9 b( o! u        PIE1=0;            //PIE1的中斷禁止
6 _% N1 x, V6 y$ Y% d        PIE2=0;            //PIE2的中斷禁止, b* Z+ U) ?" J
        TRISB0=1;
: r! \! n. f, O5 \' J/ ]        TRISB1=1;          //將RB1設(shè)置為輸入口,按按鍵
+ {. w' p3 P, z$ d4 z" ]# Q4 _        TRISB2=1;          //將RB2設(shè)置為輸入口,按按鍵$ T6 c) ?: V6 Z( ^/ a# S" p
        TRISB3=1;
" D2 M" r; F. a" w) b        TRISB4=1;# L7 J! n# q! H- ^# A+ W( i
        RC1=0;
) m2 k4 g+ m" m( ^( l4 K) p2 f) S        TRISC1=0;          //脈寬調(diào)制輸出引腳,設(shè)置為輸出
6 ~/ n0 h8 Q' k$ N+ H! [" M5 A}/ K1 b1 z3 n( t* K$ j
/********PWM初始化函數(shù)********/, H3 @, d) p7 o; I8 `* c
void PWM_Init()- C) \. n6 W: Y0 _
{  U8 v9 B1 Z, B( i
        PR2=249;           //脈寬調(diào)制波形的周期為1000us        , O( @& P, y4 w- e
        CCP2CON=0x0C;      //CCP2模塊工作在PWM模式,占空因數(shù)的低兩位為000 M/ r, Q  e* q# w2 `) i
        T2CON=0x02;        //禁止TMR2,且前后分頻值為16,同時(shí)開始輸出PWM
! U$ e. m5 C7 i4 U% z: Q        CCPR2L=0xB8;       //脈寬調(diào)制波形的占空比初始值
8 k8 \+ h" p# e( w# K5 E( k9 ~, _}) e+ w. ]3 x5 }  H: y& w4 V- h
/********鍵盤掃描函數(shù)*******    */! a; L* P1 j" M" s7 Y) Q* _
void keyscan()7 I5 u7 u/ N: \8 c5 m9 D1 j
{
7 |; l, t0 D" W/ y& [$ H        if(RB1==0)                  //如果是RB1鍵按下! L  x& H7 u5 Y; y+ R+ w
        {1 x2 ~1 F7 h1 h& L  c3 |7 x2 |
                delay_ms(5);              //延時(shí)去抖" E" U: w2 k, p. q
                if(RB1==0)              //確認(rèn)是否有鍵按下  N* A: n- f; }4 W- A
                {
) L( y) i& ^6 V                        while(!RB1);        //等待按鍵釋放3 g  Q0 j8 u( b+ g$ M* C
                        CCP2CON=0x0C;
" V, |  `* ]# e; c8 M                        CCPR2L=0xB8;                   //80%占空比
; x- w# q4 {0 H' S. z! y5 t                        TMR2ON=1;9 i$ l: U: p! V+ Q% R! J( N3 v
                }
9 \2 g7 s" H2 ^! W$ Q        }, U" O6 z/ y; r% X# p( j
        if(RB2==0)                  //如果是RB2鍵按下
! _% ?0 u3 l7 U  b6 j        {9 [/ e8 I! J% V- r% L' }& w7 `6 d: |  k2 r
                delay_ms(5);              //延時(shí)去抖
2 F  J& h8 x4 g1 }                if(RB2==0)              //確認(rèn)是否有鍵按下
7 X" i/ O1 e4 ~& {                {2 H. v7 v# M& }6 @* U6 i6 C
                        while(!RB2);        //等待按鍵釋放# a8 C6 `( X- j: w* D/ |
                        CCP2CON=0x0C;
- s& a4 c' N2 Q2 @4 H: _5 a) P                        CCPR2L=0x96;                   //60%占空比
) |% c, |  q5 F5 I( U) L# S1 k                        TMR2ON=1;) {9 Y8 ^. \( A& l8 c( L& t
                }4 J( k( r) u  L2 |! ^4 y
        }* @0 x5 K" g0 i7 T. }
        if(RB0==0)                  //如果是RB0鍵按下. N2 r; L/ q" M4 v
        {
. e8 }) n2 _  V9 H- D( Q: b                delay_ms(5);              //延時(shí)去抖4 l5 ^& P* Z/ t( b
                if(RB0==0)              //確認(rèn)是否有鍵按下
3 |+ ~* W# V) L+ L  I9 {% X                {
2 K7 e* d! T& u1 I1 A' z7 i                        while(!RB0);        //等待按鍵釋放' y/ R5 U9 H. J9 K  V9 Q7 ~
                        CCP2CON=0x00;                   //關(guān)PWM
; i, e0 s, b; d7 l) k                        TMR2ON=0;                        //禁止TMR2% W& e. J" J: X- X$ I
                        //delay_ms(5);
% k" M5 J) w1 q0 t8 {& R" O                        RC1=0;
& p9 r- D0 b) g' Q. |/ J  s' Z$ D" t                }# x- E# j3 G" V; j
        }
5 Z4 m5 K% V8 C5 x" U- I  E}# |2 X! d" ^4 m+ {1 j1 Q4 P! \
/********主函數(shù)********/1 O0 a. }9 Z' A# L+ J$ @
void main()2 p$ w) f' D: F3 _  I7 a3 Q
{
/ c# S! ~" ]8 I        init();                     //系統(tǒng)初始化
" c9 b. ?! t) I9 J- \  }        PWM_Init();                 //脈沖寬度初始化
0 g7 X; q5 [- W7 p        while(1)
% X+ u- r6 N: @; b1 D" n  \0 G) R        {/ I  O- e2 o% W! |7 u
                keyscan();              //調(diào)用按鍵掃描處理脈寬因數(shù)$ Z5 O! B( v1 D5 @7 d; f) A3 ^4 m
        }
6 b, z0 I1 C0 D; u3 T}

Archiver|手機(jī)版|小黑屋|機(jī)械社區(qū) ( 京ICP備10217105號(hào)-1,京ICP證050210號(hào),浙公網(wǎng)安備33038202004372號(hào) )

GMT+8, 2025-7-25 21:37 , Processed in 0.083911 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回復(fù) 返回頂部 返回列表