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

QQ登錄

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

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

msp430g2553單片機(jī)開(kāi)發(fā)板例程 很多庫(kù)函數(shù)可以直接移植著用

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
例程里有很多庫(kù)函數(shù)可以直接移植著用


單片機(jī)源程序如下:
  1. /*
  2. * PWM_LED.c
  3. * 硬件描述:Launchpad G2553開(kāi)發(fā)板上P1.3接了一個(gè)按鍵,P1.6各接了1個(gè)綠光LED(用跳線帽連接)。
  4. * 功能描述:按鍵按下的瞬間,LED亮度變化。需調(diào)用TA_PWM庫(kù)函數(shù)。
  5. *  Author: Administrator
  6. */

  7. #include "MSP430G2553.h"
  8. #include "TA_PWM.h"

  9. void P1_IODect();
  10. void P13_Onclick();
  11. void GPIO_init();

  12. void main(void) {
  13.         WDTCTL = WDTPW + WDTHOLD;        //關(guān)狗
  14.         //-----初始化TA0為ACLK輸入,不分頻,通道1超前PWM,通道2關(guān)閉-----
  15.         TA0_PWM_Init('A',1,'F',0);
  16.         TA0_PWM_SetPeriod(500);                                //設(shè)定PWM周期
  17.         GPIO_init();                                                                                        //初始化GPIO
  18.         _enable_interrupts();                                                        //使能總中斷
  19.     _bis_SR_register(LPM3_bits);                                //LPM3方式休眠
  20. }

  21. /******************************************************************************************************
  22. * 名       稱:GPIO_Init()
  23. * 功       能:設(shè)定按鍵和LED控制IO的方向,啟用按鍵IO的上拉電阻
  24. * 入口參數(shù):無(wú)
  25. * 出口參數(shù):無(wú)
  26. * 說(shuō)       明:無(wú)
  27. * 范       例:無(wú)
  28. ******************************************************************************************************/
  29. void GPIO_init()
  30. {
  31.         //----- TA0_PWM_Init()自動(dòng)設(shè)置TA口(P1.6)-----

  32.         //-----配合機(jī)械按鍵,啟用內(nèi)部上拉電阻-----
  33.         P1REN |= BIT3;                                        //啟用P1.3內(nèi)部上下拉電阻
  34.         P1OUT |= BIT3;                                    //將電阻設(shè)置為上拉
  35.         //-----配置P1.3中斷參數(shù)-----
  36.         P1DIR &= ~BIT3;                    // P1.3設(shè)為輸入(可省略)
  37.         P1IES |= BIT3;                          // P1.3設(shè)為下降沿中斷
  38.         P1IE  |= BIT3 ;                          // 允許P1.3中斷
  39. }

  40. /******************************************************************************************************
  41. * 名       稱:PORT1_ISR()
  42. * 功       能:響應(yīng)P1口的外部中斷服務(wù)
  43. * 入口參數(shù):無(wú)
  44. * 出口參數(shù):無(wú)
  45. * 說(shuō)       明:P1.0~P1.8共用了PORT1中斷,所以在PORT1_ISR()中必須查詢標(biāo)志位P1IFG才能知道
  46. *                                          具體是哪個(gè)IO引發(fā)了外部中斷。P1IFG必須手動(dòng)清除,否則將持續(xù)引發(fā)PORT1中斷。
  47. * 范       例:無(wú)
  48. ******************************************************************************************************/
  49. #pragma vector = PORT1_VECTOR
  50. __interrupt void PORT1_ISR(void)
  51. {
  52.         //-----啟用Port1事件檢測(cè)函數(shù)-----
  53.         P1_IODect();                                                                //檢測(cè)通過(guò),則會(huì)調(diào)用事件處理函數(shù)
  54.            P1IFG=0;                                                    //退出中斷前必須手動(dòng)清除IO口中斷標(biāo)志
  55. }

  56. /******************************************************************************************************
  57. * 名       稱:P1_IODect()
  58. * 功       能:判斷具體引發(fā)中斷的IO,并調(diào)用相應(yīng)IO的中斷事件處理函數(shù)
  59. * 入口參數(shù):無(wú)
  60. * 出口參數(shù):無(wú)
  61. * 說(shuō)       明:該函數(shù)兼容所有8個(gè)IO的檢測(cè),請(qǐng)根據(jù)實(shí)際輸入IO激活“檢測(cè)代碼”。
  62. *                                          本例中,僅有P1.3被用作輸入IO,所以其他7個(gè)IO的“檢測(cè)代碼”沒(méi)有被“激活”。
  63. * 范       例:無(wú)
  64. ******************************************************************************************************/
  65. void P1_IODect()
  66. {
  67.         unsigned int Push_Key=0;
  68.         //-----排除輸出IO的干擾后,鎖定唯一被觸發(fā)的中斷標(biāo)志位-----
  69.         Push_Key=P1IFG&(~P1DIR);
  70.         //-----延時(shí)一段時(shí)間,避開(kāi)機(jī)械抖動(dòng)區(qū)域-----
  71.         __delay_cycles(10000);                                                        //消抖延時(shí)
  72.         //----判斷按鍵狀態(tài)是否與延時(shí)前一致-----
  73.         if((P1IN&Push_Key)==0)                                 //如果該次按鍵確實(shí)有效
  74.    {
  75.          //----判斷具體哪個(gè)IO被按下,調(diào)用該IO的事件處理函數(shù)-----
  76.           switch(Push_Key){
  77. //         case BIT0:        P10_Onclick();                break;
  78. //         case BIT1:         P11_Onclick();                break;
  79. //         case BIT2:         P12_Onclick();                break;
  80.          case BIT3:         P13_Onclick();                break;
  81. //         case BIT4:         P14_Onclick();                break;
  82. //         case BIT5:         P15_Onclick();                break;
  83. //         case BIT6:         P16_Onclick();                break;
  84. //         case BIT7:         P17_Onclick();                break;
  85.          default:                                                                        break;                //任何情況下均加上default
  86.          }
  87.    }
  88. }

  89. /******************************************************************************************************
  90. * 名       稱:P13_Onclick()
  91. * 功       能:P1.3的中斷事件處理函數(shù),即當(dāng)P1.3鍵被按下后,下一步干什么
  92. * 入口參數(shù):無(wú)
  93. * 出口參數(shù):無(wú)
  94. * 說(shuō)       明:使用事件處理函數(shù)的形式,可以增強(qiáng)代碼的移植性和可讀性
  95. * 范       例:無(wú)
  96. ******************************************************************************************************/
  97. void P13_Onclick()                                                                        //P1.3的事件處理函數(shù)
  98. {
  99.         //-----Bright在函數(shù)執(zhí)行完后不能被清空,所以得設(shè)為靜態(tài)局部變量-----
  100.         static unsigned int Bright=0;
  101.         //-----循環(huán)改變PWM占空比-----
  102.         Bright=Bright+40;
  103.         if(Bright>=400)                                                                        //占空比最大40%,更亮的區(qū)間視覺(jué)變化不明顯
  104.                 Bright=0;
  105.         TA0_PWM_SetPermill(1,Bright);                //調(diào)用庫(kù)函數(shù),更新PWM占空比
  106.         _nop();
  107.         }

復(fù)制代碼

所有資料51hei提供下載:
AY-G2 PL KIT_例程.7z (921.02 KB, 下載次數(shù): 193)
AY-G2PL KIT.pdf (3.31 MB, 下載次數(shù): 102)


評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:97588 發(fā)表于 2020-5-31 18:54 | 只看該作者
謝謝分享!剛好用到MSP430G2553做個(gè)產(chǎn)品,有這個(gè)方便多了
回復(fù)

使用道具 舉報(bào)

板凳
ID:584195 發(fā)表于 2021-8-15 15:00 | 只看該作者
非常感謝樓主提供,正好我用來(lái) 學(xué)習(xí),謝謝了!
回復(fù)

使用道具 舉報(bào)

地板
ID:1001515 發(fā)表于 2022-1-12 15:51 | 只看該作者
謝謝 ,樓主的分享 ,用處可大
回復(fù)

使用道具 舉報(bào)

5#
ID:71233 發(fā)表于 2022-4-2 13:29 | 只看該作者
這個(gè)是CCS的代碼吧
回復(fù)

使用道具 舉報(bào)

6#
ID:1039079 發(fā)表于 2022-7-10 21:32 | 只看該作者
感謝樓主,正好在做比賽,有這個(gè)很方便
回復(fù)

使用道具 舉報(bào)

7#
ID:1039079 發(fā)表于 2022-7-10 21:33 | 只看該作者
正好在用430做比賽,這個(gè)就是及時(shí)雨
回復(fù)

使用道具 舉報(bào)

8#
ID:1047908 發(fā)表于 2022-10-16 16:44 | 只看該作者
非常有用,幫了大忙了,感謝
回復(fù)

使用道具 舉報(bào)

9#
ID:754694 發(fā)表于 2023-3-7 12:53 來(lái)自手機(jī) | 只看該作者
好東西,謝謝分享。。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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