问题是这样的,仿真开始后,仅有左侧的四个键能够正确触发中断,并且使右侧相应的发光二极管点亮,但是右侧的四个按键不能正确触发外部中。
keil编译过程无报错
由于键盘仅为此电路的一部分所以只截了相关的部分以及程序
这是这部分的电路图
下面是相关的部分单片机程序
- 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;//按键扫描初始化
- }
复制代码 希望各位老哥不吝赐教!!小弟先谢过了!!
|