問題是這樣的,仿真開始后,僅有左側的四個鍵能夠正確觸發中斷,并且使右側相應的發光二極管點亮,但是右側的四個按鍵不能正確觸發外部中。
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;//按鍵掃描初始化
- }
復制代碼 希望各位老哥不吝賜教!!小弟先謝過了!!
|