PIC单片机实现按键按下灯闪烁5s自动熄灭
时间: 2024-05-01 22:16:26 浏览: 110
PIC单片机控制的智能应急灯
以下是用PIC单片机实现按键按下灯闪烁5秒自动熄灭的示例代码:
```
#include <xc.h>
// 配置单片机
#pragma config FOSC = INTRCIO, WDTE = OFF, PWRTE = OFF, MCLRE = OFF, CP = OFF, CPD = OFF, BOREN = OFF, IESO = OFF, FCMEN = OFF
// 定义常量
#define LED RC0
#define BUTTON RB0
// 声明函数
void delay_ms(unsigned int time_ms);
void main() {
// 初始化
TRISC0 = 0; // RC0 输出
TRISB0 = 1; // RB0 输入
LED = 0; // 灯初始为熄灭状态
while (1) {
// 检测按键是否按下
if (BUTTON == 0) {
// 点亮灯并延时5秒
LED = 1;
delay_ms(5000);
// 熄灭灯
LED = 0;
}
}
}
// 延时函数
void delay_ms(unsigned int time_ms) {
unsigned int i, j;
for (i = 0; i < time_ms; i++) {
for (j = 0; j < 13; j++) {
__delay_ms(1);
}
}
}
```
该代码中,首先配置了单片机的一些参数,然后定义了常量LED和BUTTON分别表示LED灯和按键的引脚号。在主函数中,先将LED灯和按键的引脚方向设置好,然后进入一个循环中,不断检测按键是否按下。如果按键按下,就点亮LED灯并延时5秒,然后熄灭LED灯。延时函数使用了一个内置的__delay_ms函数,每次调用可以延时1毫秒,所以在循环中调用13次,就可以延时1秒。最终实现了按键按下LED灯闪烁5秒自动熄灭的功能。
阅读全文