之前看到一个帖子:新型的按键扫描程序(http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=3941614&bbs_page_no=1&search_mode=1&search_text=%B0%B4%BC%FC%C9%A8%C3%E8&bbs_id=9999),于是想写一个长按键的程序:长按key0键切换LCD1602的屏幕显示,不知道为什么切换不了,程序如下:
unsigned char Trg;
unsigned char Cont;
unsigned int i=0;
unsigned char longpress=0;
#define KEY_0 0x01
void KeyRead( void )
{
unsigned char ReadData = P1^0xff;
Trg = ReadData & (ReadData ^ Cont);
Cont = ReadData;
}
void main(void)
{
sys_init();
lcd_bus=0xff;
lcd_delay(10);
lcd_init();
lcd_clear();
while(1){
KeyRead();
if(Cont&key0){
i++;
if(i>500){
longpress=(~longpress);
}
}
if(longpress==0){
display1(); //屏幕1
}
if(longpress!=0){
display2(); //屏幕2
}
}
}
开机时显示屏幕1,长按key0键切换不到屏幕2,这是什么原因?求解
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
-----------------------------------------------------------------------
还是不行?
一周热门 更多>