在
proteus中
仿真郭天祥书中的LCD时钟时,设置了三个键,一个功能选择键,一个增大键,一个减小见,用于调节时分秒,但是除了功能键可以用以外,增大减小键都不能用,这是怎么回事呢?按键扫描函数如下,求大神解答
- void keyscan()
- {
- if(s1==0)//功能键
- {
- delay(5);
- if(s1==0)
- {
- s1num++;
- while(!s1);
- di();
- switch(s1num)
- {
- case 1:TR0=0;
- write_com(0x80+0x40+11);
- write_com(0x0f);
- break;
- case 2:write_com(0x80+0x40+8);break;
- case 3:write_com(0x80+0x40+5);break;
- case 4:s1num=0;
- write_com(0x0c);
- TR0=1;
- break;
- }
- }
- if(s1num!=0)
- {
- if(s2==0)//增大键
- {
- delay(5);
- if(s2==0)
- {
- while(!s2);
- di();
- switch(s1num)
- {
- case 1:miao++;
- if(miao==60)
- {
- miao=0;
- }
- write_sfm(10,miao);
- write_com(0x80+0x40+10);
- write_add(1,miao);
- break;
- case 2:fen++;
- if(fen==60)
- {
- fen=0;
- }
- write_sfm(7,fen);
- write_com(0x80+0x40+7);
- write_add(2,fen);
- break;
- case 3:shi++;
- if(shi==24)
- {
- shi=0;
- }
- write_sfm(4,shi);
- write_com(0x80+0x40+4);
- write_add(3,shi);
- break;
- }
- }
- }
- if(s3==0)//减小键
- {
- delay(5);
- if(s3==0)
- {
- while(!s3);
- di();
- switch(s1num)
- {
- case 1:miao--;
- if(miao==-1)
- {
- miao=59;
- }
- write_sfm(10,miao);
- write_com(0x80+0x40+10);
- write_add(1,miao);
- break;
- case 2:fen--;
- if(fen==-1)
- {
- fen=59;
- }
- write_sfm(7,fen);
- write_com(0x80+0x40+7);
- write_add(2,fen);
- break;
- case 3:shi++;
- if(shi==-1)
- {
- shi=23;
- }
- write_sfm(4,shi);
- write_com(0x80+0x40+4);
- write_add(3,shi);
- break;
- }
- }
- }
- }
- }
- }
复制代码
-
仿真图片
一周热门 更多>