proteus仿真矩阵按键异常!
遇到的问题描述在图片上,麻烦大家帮我看看,想不明白。同时我把程序和工程文件附在附件上。 本帖最后由 召唤师 于 2020-4-5 09:59 编辑不好意思,附件发不上来,我把代码贴上。
#include<reg52.h>
sbit ADDR0=P1^0;
sbit ADDR1=P1^1;
sbit ADDR2=P1^2;
sbit ADDR3=P1^3;
sbit ENLED=P1^4;
sbit key1=P2^4;
sbit key2=P2^5;
sbit key3=P2^6;
sbit key4=P2^7;
sbit LED1=P0^0;
sbit LED2=P0^1;
sbit LED3=P0^2;
sbit LED4=P0^3;
int main()
{
ENLED=0;
ADDR3=1;
ADDR0=0;
ADDR1=0;
ADDR2=0;
P2=0xFE;
while(1){
LED1=key1;
LED2=key2;
LED3=key3;
LED4=key4;
}
return 0;
} 这个好像跟程序没有关系,按K1 - K4的每个按钮keyout1应该都会变成高电平,你再仔细看看电路图 cyrus白 发表于 2020-4-5 11:14
这个好像跟程序没有关系,按K1 - K4的每个按钮keyout1应该都会变成高电平,你再仔细看看电路图
看了半天不知道问题在哪,我也觉得很奇怪。 召唤师 发表于 2020-4-5 11:15
看了半天不知道问题在哪,我也觉得很奇怪。
你按下按钮的时候 不就相当于形成了一个回路了吗 cyrus白 发表于 2020-4-5 11:21
你按下按钮的时候 不就相当于形成了一个回路了吗
回路是没错,但是keyout1是用p2.0置0,也就是通过P2.0给keyout1低电平,行程回路之后不是应该强制拉倒低电平吗? 召唤师 发表于 2020-4-5 12:05
回路是没错,但是keyout1是用p2.0置0,也就是通过P2.0给keyout1低电平,行程回路之后不是应该强制拉倒低 ...
P2.0口 和 keyout1之间不是还有个电阻吗,你P2.0口低电平,keyout1直接得到电源电压,就在电阻两端形成5V的电压咯 再不行的话就看看P2 的内部电路的构造吧 ,我也就只选修过一门单片机{:10_245:},不是特别了解 把那电阻去掉,按下按钮之后 keyout应该就是低电平 cyrus白 发表于 2020-4-5 12:33
把那电阻去掉,按下按钮之后 keyout应该就是低电平
没用。
页:
[1]