我的单片机矩阵键盘扫描程序,在Proteus里仿真的时候都是正常的,怎么上到真正的电路板上就不行了呢

2024-12-25 16:36:43
推荐回答(6个)
回答1:

用示波器大约看看有没有起振嘛,注意晶振的引脚不可过长!

回答2:

我也碰到过这种情况,有可能是晶振起振不了,那个电容要用30p-10pF

回答3:

注意电路的布线,特别是晶振电路的周边!!晶振到芯片的引线要尽快能短!!

回答4:

你好!

我这上面有相关的按键程序,你可以参考!祝你成功!

回答5:

看看你的行列是不是和仿真时接的,晶振你用的多少,还有你的两个电容是多大

回答6:

这个是我写的4X4矩阵键盘函数(STC单片机测试可用)

sfr keyIO=0x90;//定义键盘IO口为P1

unsigned char keyboad(){
unsigned char a,key,x,y;
unsigned int i;
keyIO=0xf0;
a=keyIO;
if(a==0xf0){
return 0xff;}
a=keyIO;
i=0;
for(y=~(a|0x0f);y!=0x10;y=y>>1){
i++;}
y=i;
keyIO=0x0f;
a=keyIO;
i=0;
for(x=~(a|0xf0);x!=0x01;x=x>>1){
i++;}
x=i;
key=4*x+y;
for(i=0;i<2000;i++){ //按键灵敏度调节
if(keyIO==0x0f)break;
}
return key;
}//矩阵键盘扫描函数