找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5154|回复: 8
收起左侧

msp430g2553单片机开发板例程 很多库函数可以直接移植着用

  [复制链接]
ID:725376 发表于 2020-4-9 10:55 | 显示全部楼层 |阅读模式
例程里有很多库函数可以直接移植着用
51hei.png

单片机源程序如下:
  1. /*
  2. * PWM_LED.c
  3. * 硬件描述:Launchpad G2553开发板上P1.3接了一个按键,P1.6各接了1个绿光LED(用跳线帽连接)。
  4. * 功能描述:按键按下的瞬间,LED亮度变化。需调用TA_PWM库函数。
  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;        //关狗
  14.         //-----初始化TA0为ACLK输入,不分频,通道1超前PWM,通道2关闭-----
  15.         TA0_PWM_Init('A',1,'F',0);
  16.         TA0_PWM_SetPeriod(500);                                //设定PWM周期
  17.         GPIO_init();                                                                                        //初始化GPIO
  18.         _enable_interrupts();                                                        //使能总中断
  19.     _bis_SR_register(LPM3_bits);                                //LPM3方式休眠
  20. }

  21. /******************************************************************************************************
  22. * 名       称:GPIO_Init()
  23. * 功       能:设定按键和LED控制IO的方向,启用按键IO的上拉电阻
  24. * 入口参数:无
  25. * 出口参数:无
  26. * 说       明:无
  27. * 范       例:无
  28. ******************************************************************************************************/
  29. void GPIO_init()
  30. {
  31.         //----- TA0_PWM_Init()自动设置TA口(P1.6)-----

  32.         //-----配合机械按键,启用内部上拉电阻-----
  33.         P1REN |= BIT3;                                        //启用P1.3内部上下拉电阻
  34.         P1OUT |= BIT3;                                    //将电阻设置为上拉
  35.         //-----配置P1.3中断参数-----
  36.         P1DIR &= ~BIT3;                    // P1.3设为输入(可省略)
  37.         P1IES |= BIT3;                          // P1.3设为下降沿中断
  38.         P1IE  |= BIT3 ;                          // 允许P1.3中断
  39. }

  40. /******************************************************************************************************
  41. * 名       称:PORT1_ISR()
  42. * 功       能:响应P1口的外部中断服务
  43. * 入口参数:无
  44. * 出口参数:无
  45. * 说       明:P1.0~P1.8共用了PORT1中断,所以在PORT1_ISR()中必须查询标志位P1IFG才能知道
  46. *                                          具体是哪个IO引发了外部中断。P1IFG必须手动清除,否则将持续引发PORT1中断。
  47. * 范       例:无
  48. ******************************************************************************************************/
  49. #pragma vector = PORT1_VECTOR
  50. __interrupt void PORT1_ISR(void)
  51. {
  52.         //-----启用Port1事件检测函数-----
  53.         P1_IODect();                                                                //检测通过,则会调用事件处理函数
  54.            P1IFG=0;                                                    //退出中断前必须手动清除IO口中断标志
  55. }

  56. /******************************************************************************************************
  57. * 名       称:P1_IODect()
  58. * 功       能:判断具体引发中断的IO,并调用相应IO的中断事件处理函数
  59. * 入口参数:无
  60. * 出口参数:无
  61. * 说       明:该函数兼容所有8个IO的检测,请根据实际输入IO激活“检测代码”。
  62. *                                          本例中,仅有P1.3被用作输入IO,所以其他7个IO的“检测代码”没有被“激活”。
  63. * 范       例:无
  64. ******************************************************************************************************/
  65. void P1_IODect()
  66. {
  67.         unsigned int Push_Key=0;
  68.         //-----排除输出IO的干扰后,锁定唯一被触发的中断标志位-----
  69.         Push_Key=P1IFG&(~P1DIR);
  70.         //-----延时一段时间,避开机械抖动区域-----
  71.         __delay_cycles(10000);                                                        //消抖延时
  72.         //----判断按键状态是否与延时前一致-----
  73.         if((P1IN&Push_Key)==0)                                 //如果该次按键确实有效
  74.    {
  75.          //----判断具体哪个IO被按下,调用该IO的事件处理函数-----
  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的中断事件处理函数,即当P1.3键被按下后,下一步干什么
  92. * 入口参数:无
  93. * 出口参数:无
  94. * 说       明:使用事件处理函数的形式,可以增强代码的移植性和可读性
  95. * 范       例:无
  96. ******************************************************************************************************/
  97. void P13_Onclick()                                                                        //P1.3的事件处理函数
  98. {
  99.         //-----Bright在函数执行完后不能被清空,所以得设为静态局部变量-----
  100.         static unsigned int Bright=0;
  101.         //-----循环改变PWM占空比-----
  102.         Bright=Bright+40;
  103.         if(Bright>=400)                                                                        //占空比最大40%,更亮的区间视觉变化不明显
  104.                 Bright=0;
  105.         TA0_PWM_SetPermill(1,Bright);                //调用库函数,更新PWM占空比
  106.         _nop();
  107.         }

复制代码

所有资料51hei提供下载:
AY-G2 PL KIT_例程.7z (921.02 KB, 下载次数: 191)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:97588 发表于 2020-5-31 18:54 | 显示全部楼层
谢谢分享!刚好用到MSP430G2553做个产品,有这个方便多了
回复

使用道具 举报

ID:584195 发表于 2021-8-15 15:00 | 显示全部楼层
非常感谢楼主提供,正好我用来 学习,谢谢了!
回复

使用道具 举报

ID:1001515 发表于 2022-1-12 15:51 | 显示全部楼层
谢谢 ,楼主的分享 ,用处可大
回复

使用道具 举报

ID:71233 发表于 2022-4-2 13:29 | 显示全部楼层
这个是CCS的代码吧
回复

使用道具 举报

ID:1039079 发表于 2022-7-10 21:32 | 显示全部楼层
感谢楼主,正好在做比赛,有这个很方便
回复

使用道具 举报

ID:1039079 发表于 2022-7-10 21:33 | 显示全部楼层
正好在用430做比赛,这个就是及时雨
回复

使用道具 举报

ID:1047908 发表于 2022-10-16 16:44 | 显示全部楼层
非常有用,帮了大忙了,感谢
回复

使用道具 举报

ID:754694 发表于 2023-3-7 12:53 来自手机 | 显示全部楼层
好东西,谢谢分享!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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