标题:
想让各位帮忙看看关于51单片机外部中断行列式键盘的问题
[打印本页]
作者:
W1lson
时间:
2020-5-28 23:27
标题:
想让各位帮忙看看关于51单片机外部中断行列式键盘的问题
问题是这样的,仿真开始后,仅有左侧的四个键能够正确触发中断,并且使右侧相应的发光二极管点亮,但是右侧的四个按键不能正确触发外部中。
keil编译过程无报错
由于键盘仅为此电路的一部分所以只截了相关的部分以及程序
51hei.png
(89.48 KB, 下载次数: 38)
下载附件
2020-5-29 00:53 上传
这是这部分的电路图
下面是相关的部分单片机程序
sbit A15=P2^7;
sbit A14=P2^6;
sbit A13=P2^5;
sbit A12=P2^4;
uchar key_buf[]={0xf5,0xed,0xdd,0xbd,0xf3,0xeb,0xdb,0xbb};//键值
void main()
{
P1=0x87
IT0=1
EX0=1
EA=1
void get_key()interrupt 0//按键检测以及上下限调整
{
char key_scan[]={0xf7,0xef,0xdf,0xbf};//列线扫描
char i=0,j=0;
for(i=0;i<2;i++)
{
P1=key_scan[i];
for(j=0;j<8;j++)
{
if(key_buf[j]==P1)
{
switch(j)
{
case 0:flag=1;Hmax();A12=0;break;//Hmax+
case 1:flag=0;Hmax();A12=0;break;//Hmax-
case 2:flag=1;Hmin();A13=0;break;//Hmin+
case 3:flag=0;Hmin();A13=0;break;//Hmin-
case 4:flag=1;Tmax();A14=0;break;//Tmax+
case 5:flag=0;Tmax();A14=0;break;//Tmax-
case 6:flag=1;Tmin();A15=0;break;//Tmin+
case 7:flag=0;Tmin();A15=0;break;//Tmin-
}
delay_ms(225);
delay_ms(225);
delay_ms(225);
delay_ms(225);
A12=1;A13=1;A14=1;A15=1; }
}
}
P1=0x87;//按键扫描初始化
}
复制代码
希望各位老哥不吝赐教!!小弟先谢过了!!
作者:
along123321
时间:
2020-5-29 09:21
信息太少,图看不清
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1