单片机交流
直播中

戚歆敦

7年用户 963经验值
私信 关注
[问答]

KEY点灯引脚有哪几个寄存器?分别有什么功能?

KEY点灯引脚的寄存器定义是什么?
KEY点灯引脚有哪几个寄存器?其代码是什么?分别有什么功能?

回帖(1)

陈梅

2021-7-7 10:43:18
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 《main.h》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********************************************************/ 如需Proteus和IAR安装包以及AVR编程参考手册。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分