什么是中断
简单的来说就是停止现在的事情来做另一件事情,做完在返回继续一开始的任务
3中断的定义
中断是为使单片机具有对外部或内部随机发生的事件实时处理而设置的,中断功能的存在,很大程度上提高了单片机处理外部或内部事件的能力。
中断系统特点:
①分时 *** 作。CPU 可以分时为多个 I/O 设备服务,提高了计算机的利用率;
②实时响应。CPU 能够及时处理应用系统的随机事件,系统的实时性大大增强;
③可靠性高。CPU 具有处理设备故障及掉电等突发性事件能力,从而使系统可靠性提高
中断过程
对于单片机来讲,中断是指CPU在处理某一时间A时,发生了另一事件B请求CPU立刻去处理(中断发生或中断请求);CPU暂时停止当前的工作(中断响应),转而去处理事件B(中断服务),待CPU处理事件B完成后,再回到原来事件A被中断的地方继续处理事件A(中断返回)。这一过程称为中断,注意是整个过程,而不是单一的停止一件事的意思。
举例:你打开火,烧上一壶水。然后去洗衣服,在洗衣服的过程中,突然听到水壶发出水开的报警声,这时,你停止洗衣服动作,立即去关掉火,然后将开水灌入暖水瓶中,灌完开水后,你又回去继续洗衣服。这个过程中实际上就发生了一次中断
4中断程序的结束与退出
volatile boolean 状态;
void attachInterrupt_fun_FALLING_2() {
状态 = !状态;
digitalWrite(4,状态);
}
void setup(){
状态 = false;
pinMode(2, INPUT_PULLUP);
pinMode(4, OUTPUT);
attachInterrupt(digitalPinToInterrupt(2),attachInterrupt_fun_FALLING_2,FALLING);
}
void loop(){
}
复制
按键第一次按进入中断程序,第二次按退出中断
布尔型变量 只有两种结果 例如非真即假 0和1 这种
注释 :第一次状态为真时,第二次按下就为假,这样便可以达到一开一关的效果
不采用变量实现一开一关
注释 第一次按下状态假设为1,松开后变0,则第二次的初始状态为0,按下时与前一次状态不同,执行关闭
5程序的优先级
单片机的运行是一个代码运行的,中断程序就相当于一个优先级,可以打断单片机的运行,从而先运行其他程序
6空程序的运行
满足条件则运行空格里的程序,可当空语令运行,卡死在这一步,按键按下,数字输入变0,按住不放时,程序不变卡在空语句。状态不变,松开时,数字信号变为高电平1,则跳出中断语句
执行空语句时,空语句需要放入中断程序中,否则不运行
7数字信号的打印
void setup(){
Serialbegin(9600);
pinMode(4, INPUT);
}
void loop(){
pinMode(4, INPUT);
Serialprintln(digitalRead(4));
}
复制
注释:管脚模式一定要选好是输入还是输出
一开始想打印出按钮按下的数字信号,因为没有设定好管脚模式,导致检测不出来数字信号
上图所用的按扭为共阴按钮,因此数字信号管脚检测模式要设置为上拉输入,上拉输入可检测出 ##低电平
上拉输入的检测原理
8…程序错误的检测
先检测主程序是否错误
若串口数据不显示,则为设置程序模块有问题
跟检测主程序一样,加入打印串口数据,便可检测出是哪一步出现了问题
所有模块
所有模块代码
#include <PinChangeInth>
void attachPinInterrupt_fun_FALLING_2() {
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
digitalWrite(7,HIGH);
while (digitalRead(2) == 0) {
Serialprintln("卡死了");
}
}
void setup(){
Serialbegin(9600);
pinMode(2, INPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(2, INPUT_PULLUP);
PCintPort::attachInterrupt(2,attachPinInterrupt_fun_FALLING_2,FALLING);
}
void loop(){
digitalWrite(5,HIGH);
delay(1000);
digitalWrite(5,LOW);
digitalWrite(6,HIGH);
delay(1000);
digitalWrite(6,LOW);
digitalWrite(7,HIGH);
delay(1000);
digitalWrite(7,LOW);
}
复制
arduino
家用水泵多少钱一台
精选推荐
广告
51单片机,按键控制流水灯,流水灯控制
216下载·3评论
2012年6月26日
STM32复习之路——按键控制流水灯中断
4896阅读·2评论·4点赞
2019年12月19日
Arduino笔记-MsTimer2库通过中断实现两种流水灯样式
55阅读·1评论·0点赞
2022年10月21日
zigbee按键中断点亮流水灯
1435阅读·0评论·2点赞
2019年10月28日
Stm32的按键控制流水灯
2737阅读·1评论·3点赞
2022年4月18日
51基础——外部中断:手动按键实现流水灯
1354阅读·0评论·1点赞
2022年5月7日
一字粗跟凉鞋
精选推荐
广告
51按键外部中断控制流水灯
15W阅读·3评论·24点赞
2021年1月1日
51单片机外中断流水灯
4097阅读·1评论·7点赞
2021年12月3日
单片机组合实验一——中断控制流水灯
4300阅读·0评论·5点赞
2020年2月22日
STM32学习(5)按键控制流水灯(中断实现)
17W阅读·1评论·8点赞
2019年10月19日
STM32cubeIDE之外部中断控制LED流水灯(按键控制流水灯方向)
9059阅读·0评论·10点赞
2022年4月4日
51单片机 按键控制LED流水灯模式
3154阅读·0评论·4点赞
2022年7月30日
按键控制流水灯的运行与暂停
14W阅读·4评论·10点赞
2019年1月21日
利用中断控制流水灯的启停
4213阅读·2评论·8点赞
2020年4月14日
蓝桥杯51单片机之数码管从点亮到动态时钟的实现单片机开发初学者必掌握
1503阅读·0评论·4点赞
2020年12月25日
中断响应流水灯控制程序
10W阅读·0评论·7点赞
2017年12月11日
51单片机(中断系统)按键控制LED流水灯模式(2)
5953阅读·4评论·4点赞
2022年3月4日
STM32cubeIDE学习汇总(二)----外部中断控制LED和流水灯
7148阅读·2评论·4点赞
2022年3月12日
中断控制流水灯c语言程序,51单片机按键中断控制流水灯
3281阅读·0评论·0点赞
2021年6月6日
去首页
看看更多热门内容
1,下面以流水灯为例说明STM32CubeMX软件的使用。
2,
第一步,建立并保存工程。
3,启动STM32CubeMX软件,界面如图2所示。
4,点击New
Project,在New
Project对话框中选择Board
Selector标签页,在这里有各种ST评估板可以选择,我们选择STM32F429I-DISCO,最后点击OK,如图3所示。这样就建立起了STM32F429I-DISCO评估板的工程,这个工程已经根据评估板设置好了,然后可以生成相应的代码。
5,为了演示如何使用STM32CubeMX软件,关闭刚刚建立的工程,从头建立一个新的工程。点击New
Project,在New
Project对话框中选择Mcu
Selector标签页,然后在MCU
Filter中依次选择STM32F4,STM32F429/439,在下面列表中选择STM32F429ZITx,最后点击OK,如图4所示。
6,新建立的工程界面如图5所示。
以上就是关于中断方式的键控流水灯需要什么元件全部的内容,包括:中断方式的键控流水灯需要什么元件、如何生成stm32单片机程序、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)