实验软件设计
1、外部中断检测急停按键:流程图和程序(包括主函数中主要程序片段和中断服务函数源文件)。
2、定时驱动 LED 提示报警闪烁:流程图和程序(包括主函数中主要程序片段和中断服务函数源文件)。
3、利用串口传输信息到 PC 机:流程图和程序(包括主函数中主要程序片段和中断服务函数源文件)。
4、综合各模块功能,通过外部中断检测急停按钮状态,利用串口传输信息到 PC 机,同时实现警示 LED 闪烁和继电器输出控制;即实现工业急停模拟系统功能:
(1 )未按下紧急按键时,将正常运行信息通过串口发生至上位机;警示 LED常亮;
(2 )当按下紧急按键时,警示 LED 定时闪烁;将急停信息通过串口发生至上位机;并将输出控制的继电器切断(可用 LED 代替)。设计流程图和程序(包括主函数中主要程序片段和中断服务函数源文件)
单片机源程序如下:
- /*
- STM32 开发板 库函数部分 */
- // 中断实验 通过外部中断线 到 按键 PA.0 PD.2上 并配置为下降沿触发 具体设置在exti.c中
- //按键按下则产生中断 PA.0(S4)产生中断 控制板载LED亮 PD.2(S3)产生中断 控制板载LED灭
- //并且串口 也将不停的打印数据 以表示程序正在运行
- #include "delay.h"
- #include "led.h"
- #include "key.h"
- #include "usart.h"
- #include "exti.h"
- int main(void)
- {
- delay_init(); //延时函数初始化
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组为组2 2:2位抢占优先级,2位响应优先级
- //一旦定义 即不要轻易改变
- uart_init(9600); //串口初始化为9600
- LED_Init(); //初始化与LED连接的硬件接口
- KEY_Init(); // 按键端口初始化
- EXTIX_Init(); //外部中断初始化
-
- while(1)
- {
- printf("ELH 启光电子\r\n");
- delay_ms(1000);
- }
- }
复制代码
原理图: 无
仿真: 无
代码:
STM32F103C8T6 外部中断程序.7z
(182.34 KB, 下载次数: 16)
|