請教一下我這個按鍵掃描函數為什么反應很慢,必須得多按一會才有反應,修改減小延時也不管用
單片機C語言源程序如下:
- void keyscan(void)
- {
- if((A6==0)&&(A7==0))
- {
- delay_ms(10);
- if((A6==0)&&(A7==0))
- {
-
- while((!A6)&&(!A7));flag=!flag;beep=!beep;
- }
- }
- while((flag==1)&&(flag1==1))
- {
- EA=0;
- OLED_ShowChinese(20,0,2);//發
- OLED_ShowChinese(44,0,3);//送
- OLED_ShowChinese(68,0,4);//消
- OLED_ShowChinese(93,0,5);//息
- OLED_CurrsorBlink(x,y,table);
-
- if(A4==0)
- {
- delay_ms(10);
- if(A4==0)
- {
- while(!A4);
- y-=2;
- }
-
- }
- if(A5==0)
- {
- delay_ms(10);
- if(A5==0)
- {
- while(!A5);
- y+=2;
- }
-
- }
- if(A6==0)
- {
- delay_ms(10);
- if(A6==0)
- {
- while(!A6);
- if(x==0)x=120;
- else if(x>0)x-=8;
- }
- }
- if(A7==0)
- {
- delay_ms(10);
- if(A7==0)
- {
- while(!A7);
- x+=8;if(x>120)x=0;
- }
- }
- if(confirm==0)
- {
- delay_ms(10);
- if(confirm==0)
- {
- while(!confirm);SendByte(table[8*y+x/8-16]);beep=!beep;
- }
- }
- }
- }
復制代碼
|