3、KEY点灯
KEY引脚的寄存器定义与LED相同,还是3个寄存器:DDRx、PORTx、PINx(具体介绍可参见LED点灯部分)。
DDRx:1-输出,0-输入。当配置为输入时,PORTx=1,上拉使能,PORTx=0,高组态,但要注意SDIOR的第三位引脚,用于禁止上拉,所以配置上拉时要注意,否则就是高组态。
图2- 2 SFIOR寄存器图
代码说明:
Ø定义3个按键引脚寄存器的对应比特位,再次提示,通过下划线来取该寄存器的bit位。
Ø按键初始化,同时允许上拉
Ø通过按键扫描程序来检测3个按键是否触发,若有返回对应的键值,否则返回0,这里面通过key变量来判断按键是否触发,检测效果更好
其它说明见原工程,同样采用面向对象的结构体函数思维进行编程,提高C语言水平,与时代接轨
/**
******************************************************************************
* @file main.c
* @author Alex——小白
* @version V1.0
* @date 2021.1.20
* @brief LED 点灯
* @store Proteus仿真店子
* @Link https://shop484534014.taobao.com/
* @Email 844545015@qq.com
******************************************************************************
* @attention All Rights Reserved
**/
#include
void main(void)
{
LED.LED_Init(0xFF); //LED ALL OUTPUT
KEY.KEY_Init(); //KEY 0/1/2 INPUT
while(1)
{
switch(KEY.KEY_Scan())
{
case 1:
LED.LED_Reverse(0); //LED0 翻转
break;
case 2:
LED.LED_Reverse(1); //LED1 翻转
break;
case 3:
LED.LED_Reverse(2); //LED2 翻转
break;
default:
break;
}
}
}
/********************************************************
End Of File
********************************************************/
3、KEY点灯
KEY引脚的寄存器定义与LED相同,还是3个寄存器:DDRx、PORTx、PINx(具体介绍可参见LED点灯部分)。
DDRx:1-输出,0-输入。当配置为输入时,PORTx=1,上拉使能,PORTx=0,高组态,但要注意SDIOR的第三位引脚,用于禁止上拉,所以配置上拉时要注意,否则就是高组态。
图2- 2 SFIOR寄存器图
代码说明:
Ø定义3个按键引脚寄存器的对应比特位,再次提示,通过下划线来取该寄存器的bit位。
Ø按键初始化,同时允许上拉
Ø通过按键扫描程序来检测3个按键是否触发,若有返回对应的键值,否则返回0,这里面通过key变量来判断按键是否触发,检测效果更好
其它说明见原工程,同样采用面向对象的结构体函数思维进行编程,提高C语言水平,与时代接轨
/**
******************************************************************************
* @file main.c
* @author Alex——小白
* @version V1.0
* @date 2021.1.20
* @brief LED 点灯
* @store Proteus仿真店子
* @Link https://shop484534014.taobao.com/
* @Email 844545015@qq.com
******************************************************************************
* @attention All Rights Reserved
**/
#include
void main(void)
{
LED.LED_Init(0xFF); //LED ALL OUTPUT
KEY.KEY_Init(); //KEY 0/1/2 INPUT
while(1)
{
switch(KEY.KEY_Scan())
{
case 1:
LED.LED_Reverse(0); //LED0 翻转
break;
case 2:
LED.LED_Reverse(1); //LED1 翻转
break;
case 3:
LED.LED_Reverse(2); //LED2 翻转
break;
default:
break;
}
}
}
/********************************************************
End Of File
********************************************************/
举报