单片机交流
登录
直播中
戚歆敦
7年用户
963经验值
私信
关注
[问答]
KEY点灯引脚有哪几个寄存器?分别有什么功能?
开启该帖子的消息推送
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编程参考手册。
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编程参考手册。
举报
更多回帖
rotate(-90deg);
回复
相关问答
key
引脚
寄存器
求教串口中断
寄存器
需要控制
哪几个
寄存器
的
哪几
位?
2017-03-20
4222
ADE7753功率因数是由
哪几个
寄存器
运算得到的?
2023-12-27
6181
12864LCD模块
有
哪些
引脚
?其
引脚
分别有
哪些
功能
?
2021-07-19
4131
EXTI外部中断/事件控制
器
有
哪几个
功能
2021-11-16
1430
sd卡的四个
引脚
分别
对应板子的
哪几个
io口?
2023-08-16
175
STM32f4嘀嗒定时
器
包含
哪几个
寄存器
呢
2021-11-24
1166
求助,在51单片机
哪几个
特殊
功能
寄存器
是16位的?
2023-11-01
158
ad7177-2读到的32位数据
哪几个
位时状态
寄存器
的4个通道?
2023-12-12
242
STM32高级控制定时
器
时基单元
功能
包括
哪几个
寄存器
呢
2021-11-23
1279
TwinCAT
有
哪几个
安装级别
2021-10-08
2327
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分