proteus进行单片机仿真时,P3口之间是线或还是线与的问题?
发布网友
发布时间:2022-05-12 21:36
我来回答
共3个回答
热心网友
时间:2023-07-31 03:59
是线与,普通8051多少个I/O都是线与,仿真模型是人设计的,错误难免(不像物理定律永远正确),等待_不需言语 误导,没有上拉的是P0,但也是线与。
当你真正做实验时就知道了,我做过,软件方面chinaku2005说得对,直接设计4位高、4位低,检测更方便。
热心网友
时间:2023-07-31 03:59
同学,你好
你的4*4键盘接法没有错,你处理程序处理的不很好,由于你是初学者,给你一种老土但是很实用的设计思路,你可以参考一下:
很显然你P3的低4位是给定的,高4位是扫描的。
你令P3=0XFE;也就是让p3.0=0;
现在来扫描P3的高4位,你可以这样处理,屏蔽低4位,只比较高四位。
简易程序如下:
P3=0xFE;
if(P3 && 0xf0 ==0xE0){执行p3.0和p3.4交叉处对应的键值}
if(P3 && 0xf0 ==0xD0){执行p3.0和p3.5交叉处对应的键值}
.....
P3=0xFD;
if(P3 && 0xf0 ==0xE0){执行p3.1和p1.4交叉处对应的键值}
if(P3 && 0xf0 ==0xD0){执行p3.1和p1.5交叉处对应的键值}
.....
以此类推
等你技术成熟后,可以用switch()等语句
OK
希望对你能有帮助
热心网友
时间:2023-07-31 04:00
89C51的P3.0~P3.7是线或的关系
89c51的P3口内部没有上拉电阻(P0,p1,p2内部有上拉电阻,线与关系)
需要线与关系可通过外部10K电阻接电源就可以了