按键

[复制链接]
2511|8
 楼主| wicw 发表于 2010-1-7 22:20 | 显示全部楼层 |阅读模式
本帖最后由 wicw 于 2010-1-7 22:21 编辑

sfr KeyPort=0xa0;         //行在P2口,我们只取低四位

sbit KeyRow1=P2^4;         //列1在P24
sbit KeyRow2=P2^5;         //列2在P25

sfr LedPort=0x80;         //P0口LED

uchar KeyValue;                 //存放键值

void KeyRead()                 //按键读取
{
    ………………

上面 “sfr KeyPort=0xa0;         //行在P2口,我们只取低四位”这句不太明白??
请指点一下,谢谢

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| wicw 发表于 2010-1-8 08:30 | 显示全部楼层
那位大哥帮我看看呀??不明白它怎么定义是什么意思!!
HWM 发表于 2010-1-8 08:44 | 显示全部楼层
定义 KeyRow1 为特殊寄存器(SFR)地址 0xA0,那就是P2。
 楼主| wicw 发表于 2010-1-8 09:38 | 显示全部楼层
那这句 sfr KeyPort=0xa0;  可以用 #define KeyRow1=P2 ;  来代替吗????
这两句是等价的吗?
HWM 发表于 2010-1-8 09:42 | 显示全部楼层
 楼主| wicw 发表于 2010-1-8 09:46 | 显示全部楼层
谢谢,我明白了,刚看了下PDF的SFR
可我不明白下面两句有啥区别??那句更规范呢??
sfr KeyPort=0xa0;  可以用 #define KeyRow1=P2 ;

我们这些新手怎么取舍呢??
 楼主| wicw 发表于 2010-1-8 09:59 | 显示全部楼层
????那位大侠来解释下啦
谢谢
HWM 发表于 2010-1-8 10:09 | 显示全部楼层
原则上没有差别

sfr KeyPort=0xa0;

是重新定义一次。

#define KeyRow1=P2

是利用现成的。
 楼主| wicw 发表于 2010-1-8 10:16 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

42

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部