找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2225|回复: 8
收起左侧

有段单片机代码不明白,请指教

[复制链接]
ID:370231 发表于 2018-10-10 14:11 | 显示全部楼层 |阅读模式
#ifndef _KEY_H_
#define _KEY_H_
#include "Global.h"
/*----------------------------------------------------------------------------------*/
//KEY/IN/OUT
//#define ENABLE_SCAN_OUTL        ~0x04
//#define ENABLE_SCAN_OUTH         0x04
/*----------------------------------------------------------------------------------*/
//只有PA7,PA6,---,PA4, ---,PA2,PA1,PA0有用
//     1   1   0   1    0   1   1   1
//#define DISABLE_PULL_UP                0x97        //禁止所有PA口上拉(PA6按键唤醒端口除外)                //by Grady.Du
#define KEY_AIN                                0xD7                                //by Grady.Du
//#define KEY_AINC                        (~KEY_AIN)
#define KEY_CIN                                0x01        //PA0
#define KEY_CINC                        (~KEY_CIN)
#define KEY_A_IN                        (PORTA & KEY_AIN)
#define KEY_C_IN                        (PORTA & KEY_CIN)

请问大神们这红色代码(PORTA & KEY_AIN)这相与代表什么意思,有什么作用???
这两个是寄存器PORTA  PORTA

回复

使用道具 举报

ID:407538 发表于 2018-10-10 15:02 | 显示全部楼层
0X97变成2进制就是10010111,跟PORTA按位相与,表示把PORTA的pin6、pin5和pin3清0
回复

使用道具 举报

ID:23606 发表于 2018-10-10 15:17 | 显示全部楼层
即PORTA & 0xD7,对A口进行设置
回复

使用道具 举报

ID:264302 发表于 2018-10-10 15:27 | 显示全部楼层
PORTA是PIC单片机里A口输入输出寄存器。A口的状态控制寄存器是TRISA
回复

使用道具 举报

ID:407563 发表于 2018-10-10 15:30 | 显示全部楼层
这是声明吧
回复

使用道具 举报

ID:65015 发表于 2018-10-10 15:55 | 显示全部楼层
(PORTA & KEY_AIN)表示只读取除去bit3和bit5以外的bit值,忽略bit3和bit5,上面也写了bit3和bit5不使用(//只有PA7,PA6,---,PA4, ---,PA2,PA1,PA0有用)。 (PORTA & KEY_CIN)表示只读取bit0的值,其他忽略。
回复

使用道具 举报

ID:290122 发表于 2018-10-10 16:43 | 显示全部楼层
应该是打开PA7,PA6,---,PA4, ---,PA2,PA1,PA0这几位
回复

使用道具 举报

ID:319344 发表于 2018-10-10 19:10 | 显示全部楼层
这是一个个人喜好上的定义,就是为了看有用的IO引脚的状态,相与之后PA5和PA3被清0,如果再检测到高电平的话,只可能是有用的IO口,可能就是为检测有用引脚是否会变为高电平,比如所接按键对应高电平,检测到KEY_A_IN不为0,说明有按键按下
回复

使用道具 举报

ID:231131 发表于 2018-10-10 22:23 | 显示全部楼层
硬件工程师,系统设计制造,设备维护,课程内容面很宽
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表