找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3379|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

基于msp430f5529的PWM波控制程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:734275 發(fā)表于 2020-12-28 17:44 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
  1. ///*
  2. // *
  3. // * 按鈕調(diào)節(jié)PWM占空比
  4. // *
  5. // /*


  6. #include <msp430f5529.h>

  7. int pwm = 32;                                  //給pwm附一個(gè)初始值
  8. volatile unsigned int flag =0;                 //優(yōu)化賦值初始值flag=0
  9. void Keyscan();                                //鍵盤掃描
  10. int main(void)
  11. {
  12.         WDTCTL = WDTPW + WDTHOLD;              // 關(guān)閉看門狗
  13.         P1DIR |= BIT2;                         //設(shè)置1.2輸出波
  14.         P1SEL |= BIT2;

  15.         P4DIR |= BIT7;                         //燈LED2
  16.         P4OUT &=~BIT7;

  17.         P2OUT |= BIT1;                         //按鈕S1
  18.         P2REN |= BIT1;

  19.         TA0CCR0 = 64;                       //PWM周期定義

  20.         TA0CTL = TASSEL_1 + MC_1 + TACLR;      //參考時(shí)鐘選擇ACLK,增計(jì)數(shù)模式,清除TAR計(jì)數(shù)器

  21.         while(1)
  22.         {
  23.             Keyscan();

  24.             if(flag!=0)                        //當(dāng)flag不等于0時(shí)
  25.             {
  26.                 P4OUT |= BIT7;                 //4.7LED燈亮,高電平
  27.             }
  28.             else
  29.             {
  30.                 P4OUT &=~ BIT7;
  31.             }
  32.             TA0CCTL1 = OUTMOD_7;               //CCR1比較輸出模式7:復(fù)位,定位。
  33.             TA0CCR1 =pwm;                      //pwm占空比的定義,隨pwm的變化,占空比不同
  34.         }
  35. }
  36. void Keyscan()
  37. {
  38.     if((P2IN&BIT1) ==0)
  39.     {
  40.         __delay_cycles(10000);
  41.         if((P2IN& BIT1)==0)
  42.         {
  43.             while((P2IN& BIT1)==0)
  44.             {
  45.                 flag = ~flag;                  //取反
  46.             }
  47.             pwm = pwm-2;                 //先接示波器上看,占空比上升沿所占時(shí)間,啟動(dòng)的時(shí)候要低于1ms,然后按按鈕,讓占空比上升沿時(shí)間在1~2ms內(nèi)
  48.                                                //超過(guò)2ms,不轉(zhuǎn),低于1ms也停轉(zhuǎn)。
  49.         }
  50.     }
  51. }
復(fù)制代碼


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

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