pic单片机按键控制灯的亮灭
时间: 2023-08-31 10:08:31 浏览: 125
这里提供一种基于PIC单片机(采用PIC16F877A)按键控制灯的亮灭的程序。
程序思路:
1. 配置IO口,将LED灯接到PORTB口的第0位,将按键接到PORTD口的第0位;
2. 初始化,将PORTB的第0位输出为0,将PORTD的第0位的输入口上拉,以确保初始状态下LED灯关闭且按键未按下;
3. 在主循环中,不断检测按键状态,若按键按下,则将LED灯亮起;若按键松开,则将LED灯关闭。
程序代码:
```
#include <xc.h>
#pragma config FOSC = HS // 配置晶振频率为HS
#pragma config WDTE = OFF // 关闭看门狗
#pragma config PWRTE = ON // 开启上电延迟
#pragma config BOREN = OFF // 关闭掉电检测
#pragma config LVP = OFF // 禁止低电压编程
#pragma config CPD = OFF // 关闭数据代码保护
#pragma config WRT = OFF // 关闭写保护
#pragma config CP = OFF // 关闭代码保护
void main()
{
TRISB = 0xFE; // 配置PORTB的第0位为输出口,其余位为输入口
TRISD = 0xFF; // 配置PORTD的所有位为输入口
PORTB = 0x00; // 将PORTB的所有位输出为0
PORTD = 0x01; // 将PORTD的第0位的输入口上拉
while(1)
{
if(PORTDbits.RD0 == 0) // 检测按键状态,若按键按下,则执行后续代码
{
PORTBbits.RB0 = 1; // 将PORTB的第0位输出为1,LED灯亮起
}
else // 若按键松开,则执行后续代码
{
PORTBbits.RB0 = 0; // 将PORTB的第0位输出为0,LED灯关闭
}
}
}
```
注意事项:
1. 确保按键接在了输入口,且有上拉电阻;
2. 确保LED灯接在了输出口,并且有合适的限流电阻。
阅读全文