本小实验基于MSP430f5529,不同的型号可能管脚和中断配置有所不同。

实现的功能为:

第一次按下按键后,系统以每 2 秒钟,指示灯暗 1 秒,亮 1 秒的方式闪烁。程序采用默认时钟配置;

第二次按下按键后,系统以每 4 秒钟,指示灯亮 2 秒,暗 2 秒钟方式闪烁。

第三次按下按键后,系统以每 4 秒钟,指示灯亮 1 秒,暗 3 秒方式闪烁。程序基于定时器配置。

/*
* main.c
* 第一次按下按键后,系统以每 2 秒钟,指示灯暗 1 秒,亮 1 秒的方式闪
烁,程序采用默认时钟配置;
第二次按下按键后,系统以每 4 秒钟,指示灯亮 2 秒,暗 2 秒钟方式闪
烁。
第三次按下按键后,系统以每 4 秒钟,指示灯亮 1 秒,暗 3 秒方式闪
烁,程序基于定时器配置。
*/ #include <msp430f5529.h> int count = 0; //计数
int t1_50ms = 20; //一个单位对应50ms(亮)
int t2_50ms = 20; //一个单位对应50ms(灭)
int flag = 0; //闪烁频率标志
int flag_t = 1; //亮灭标志 int main(void) {
WDTCTL = WDTPW+WDTHOLD; //时钟中断配置
P1DIR |= BIT0;
TA0CCTL0 = CCIE;//使能定时器中断
TA0CCR0 = 50000;
TA0CTL = TASSEL_2 + MC_1 + TACLR;//配置为SMCLK,升计数模式,初始化时钟 //S1配置
P1IE |= BIT7; //允许P1.7中断
P1IES |= BIT7; //设置为下降沿中断
P1IFG &= ~BIT7; //设置为输入
P1REN |= BIT7; //启用上下拉电阻
P1OUT |= BIT7; //将电阻设置为上拉 __bis_SR_register(LPM0_bits+GIE); //打开中断
return 0;
} #pragma vector=TIMER0_A0_VECTOR
__interrupt void TIMER0_A0_ISR(void)
{ if(count==t1_50ms&&flag_t==1) //灯亮
{
P1OUT |= BIT0;
count=0;
flag_t=0;
}
else if(count==t2_50ms&&flag_t==0) //灯灭
{
P1OUT &=~BIT0;
count = 0;
flag_t=1;
}
else count++;
} #pragma vector=PORT1_VECTOR;
__interrupt void botton (void)
{
__delay_cycles(75);//延时消抖
switch(flag)//flag决定闪烁频率
{
case 0:
t1_50ms = 20;t2_50ms = 20;break;//1秒亮 1秒暗
case 1:
t1_50ms = 40;t2_50ms = 40;break;//2秒亮 2秒暗
case 2:
t1_50ms = 60;t2_50ms = 20;break;//3秒亮 3秒暗
}
flag++;//状态变化
if(flag>2) flag = 0;//flag归位
P1IFG &=~ BIT7; //清除中断标志位
__bis_SR_register(LPM0_bits+GIE);//打开中断
}

MSP430中断小实验——通过按键改变小灯闪烁频率的更多相关文章

  1. 30个Python物联网小实验5:光线感应灯

    30个Python物联网小实验5:光线感应灯 光线传感器 光线变化执行函数 光线状态执行函数 30个Python物联网小实验5:光线感应灯 光线传感器 可以检测周围环境的亮度: 方向性较好,感知特定方 ...

  2. CC2530学习路线-基础实验-GPIO 按键控制LED灯亮灭(2)

    目录 1.前期预备知识 1.1 新大陆Zigbee模块按键电路图 1.2 CC2530相关寄存器 1.3 CC2530中断走向图 1.4 使用C语言为51单片机编写中断程序 1.5 *函数指针 2. ...

  3. 1.4 Crack小实验

    0_day 第一章 基础知识 1.4 Crack小实验 <0day_2th>王清 著 电子书 下载链接:https://pan.baidu.com/s/11TgibQSC3-kYwCInm ...

  4. PBR综合小实验视频-狮子XL

    这个是上学时候录的一个策略路由小实验

  5. ubuntu下格式化内存当硬盘使的小实验

    内存虚拟硬盘(ramdisk)是指通过软件技术,将物理内存进行分割,将一部分内存通过虚拟技术转变为硬盘以较大幅度提升计算机数据读取速度和保护硬盘. 在ubuntu下的dev下有ram相关的文件,这些文 ...

  6. MongoDB 主从复制小实验

    MongoDB 主从复制小实验 操作环境描述:WIN8  64位操作系统,内装虚拟机为CentOS 5.5 32位系统. 操作描述:跟其他关系型数据库类似,在主库进行数据操作,将数据同步到从节点,从节 ...

  7. PS小实验-去除水印

    PS小实验-去除水印 水印是一些品牌商覆盖在图片或视频上的一个商标logo或小文本,比如大家最讨厌的百度logo,作者本人也是比较讨厌水印的,让好端端的一张图片变得美中不足. 个人觉得用photosh ...

  8. arduino新入手体验:三个小实验

    新入手体验:三个小实验 一:一个LED闪烁 控制要求:1个LED灯,每隔50ms闪烁一次 实物连接图: 控制代码: //2018.6/11 ;//定义数字接口10,对应 void setup() { ...

  9. [na]出口选路pbr小实验视频

    什么是策略路由? 一般都是部署在出口路由器,用于路径强制分发的, 优先级高于路由表. 策略路由小实验视频 这个是读书时候录的一个策略路由小实验

  10. Hadoop之词频统计小实验

    声明:    1)本文由我原创撰写,转载时请注明出处,侵权必究. 2)本小实验工作环境为Ubuntu操作系统,hadoop1-2-1,jdk1.8.0. 3)统计词频工作在单节点的伪分布上,至于真正实 ...

随机推荐

  1. 性能调优——小小的log大大的坑

    引言 "只有被线上服务问题毒打过的人才明白日志有多重要!" 我先说结论,谁赞成,谁反对?如果你深有同感,那恭喜你是个社会人了:) 日志对程序的重要性不言而喻,轻巧.简单.无需费脑, ...

  2. 【读书笔记】C#高级编程 第九章 字符串和正则表达式

    (一)System.String类 System.String是一个类,专门用于存储字符串,允许对字符串进行许多操作.C#提供了关键字string和相关的语法,以便使用这个类更轻松. 例子: 使用运算 ...

  3. vue方法同步(顺序)执行:async/await使用

    https://blog.csdn.net/qq_38591756/article/details/90173323 项目中有一个地方需要获取到接口返回值之后根据返回值确定之后执行的步骤,使用asyn ...

  4. 静态文件:Static Files

    官方文档地址:https://fastapi.tiangolo.com/zh/tutorial/static-files/ from fastapi import FastAPI from fasta ...

  5. 天翼云上新增IP备案具体操作步骤

    0.点击右上角的备案,进入到备案中心 1.已备案信息管理 点击左侧的已备案信息管理,右侧出现的页面中找到已备案网站信息,网站负责人后面的操作里有5个图标,点击第三个(变更接入),提交订单,进入到下一步 ...

  6. Springboot配置文件参数使用docker-compose实现动态配置

    文章总结; Springboot配置文件中的一些参数可以写成变量的形式,具体变量的值可以从docker-compose.yml文件中设置来获取 在yml文件中,通过${Envirment_variab ...

  7. 不能获取到镜像,ImagePullBackoff或者Pending

    Pending 应用长时间处于 Pending 状态时,也可以按照这个办法查看镜像的下载进度. 安装 Kubernetes 过程中,或者向 Kubernetes 部署应用的过程中,有可能会碰到 Ima ...

  8. Readsh中文版初始设置

    B站视频教程网址:https://space.bilibili.com/630285695/video 安装成功后,打开浏览器输入http://ip:5000如果出现如下画面,即告安装成功. 初始设置 ...

  9. SQLyog企业版

    一.下载与安装 1.SQLyog的下载 链接:https://www.aliyundrive.com/s/11ZuFqB1z4E提取码:63fu 2.SQLyog的安装 双击下载程序,可以选择默认安装 ...

  10. .NET 反向代理 YARP 跨域请求 CORS

    使用过 nginx 的小伙伴应该都知道,这个中间件是可以设置跨域的,作为今天的主角,同样的 反向代理中间件的 YARP 毫无意外也支持了跨域请求设置. 有些小伙伴可能会问了,怎样才算是跨域呢? 在 H ...