第34节:在数码管中实现iphone4S开机密码锁的程序
时间:11-22
来源:互联网
点击:
- ey_input(0);//由于数字按键的代码相似度高,因此把具体代码封装在这个函数里
- uiVoiceCnt=const_voice_short; //按键声音触发,滴一声就停。
- ucKeySec=0;//响应按键服务处理程序后,按键编号清零,避免一致触发
- break;
- case 11:// 11号键 对应朱兆祺学习板的S11键
- uiVoiceCnt=const_voice_short; //按键声音触发,滴一声就停。
- ucKeySec=0;//响应按键服务处理程序后,按键编号清零,避免一致触发
- break;
- case 12:// 12号键 对应朱兆祺学习板的S12键
- uiVoiceCnt=const_voice_short; //按键声音触发,滴一声就停。
- ucKeySec=0;//响应按键服务处理程序后,按键编号清零,避免一致触发
- break;
- case 13:// 13号键 对应朱兆祺学习板的S13键
- uiVoiceCnt=const_voice_short; //按键声音触发,滴一声就停。
- ucKeySec=0;//响应按键服务处理程序后,按键编号清零,避免一致触发
- break;
- case 14:// 14号键 对应朱兆祺学习板的S14键
- uiVoiceCnt=const_voice_short; //按键声音触发,滴一声就停。
- ucKeySec=0;//响应按键服务处理程序后,按键编号清零,避免一致触发
- break;
- case 15:// 15号键 对应朱兆祺学习板的S15键
- uiVoiceCnt=const_voice_short; //按键声音触发,滴一声就停。
- ucKeySec=0;//响应按键服务处理程序后,按键编号清零,避免一致触发
- break;
- case 16:// 16号键 对应朱兆祺学习板的S16键
- uiVoiceCnt=const_voice_short; //按键声音触发,滴一声就停。
- ucKeySec=0;//响应按键服务处理程序后,按键编号清零,避免一致触发
- break;
- }
- }
- void number_key_input(unsigned char ucWhichKey)//由于数字按键的代码相似度高,因此封装在这个函数里
- {
- switch(ucWd)
- {
- case 1: //在显示密码登录框的窗口下
- ucInputPassword[ucPasswordCnt]=ucWhichKey; //输入的密码值显示
- ucPasswordCnt++;
- if(ucPasswordCnt>=4)
- {
- ucPasswordCnt=0;
- ucWd=3;//切换到第3个的窗口,停留显示1秒钟全部密码
- ucWd3Update=1;//更新显示窗口3
- uiPasswordTimer=const_0_1s;//显示0.5秒钟全部密码的计时器,让窗口3停留显示0.5秒钟之后自动消失
- }
- ucWd1Update=1; //更新显示窗口1
- uiNoKeyPushTimer=const_no_key_push;//10秒内无按键按下的计时器赋新值
- break;
- case 2: //在显示按键值的窗口下
- ucKeyNumber=ucWhichKey; //输入的按键数值显示
- ucWd2Update=1;//更新显示窗口2
- uiNoKeyPushTimer=const_no_key_push;//10秒内无按键按下的计时器赋新值
- break;
- }
- }
- void display_drive()
- {
- //以下程序,如果加一些数组和移位的元素,还可以压缩容量。但是鸿哥追求的不是容量,而是清晰的讲解思路
- switch(ucDisplayDriveStep)
- {
- case 1://显示第1位
- ucDigShowTemp=dig_table[ucDigShow1];
- if(ucDigDot1==1)
- {
- ucDigShowTemp=ucDigShowTemp|0x80;//显示小数点
- }
- dig_hc595_drive(ucDigShowTemp,0xfe);
- break;
- case 2://显示第2位
- ucDigShowTemp=dig_table[ucDigShow2];
- if(ucDigDot2==1)
- {
- ucDigShowTemp=ucDigShowTemp|0x80;//显示小数点
- }
- dig_hc595_drive(ucDigShowTemp,0xfd);
- break;
- case 3://显示第3位
- ucDigShowTemp=dig_table[ucDigShow3];
- if(ucDigDot3==1)
- {
- ucDigShowTemp=ucDigShowTemp|0x80;//显示小数点
- }
- dig_hc595_drive(ucDigShowTemp,0xfb);
- break;
- case 4://显示第4位
- ucDigShowTemp=dig_table[ucDigShow4];
- if(ucDigDot4==1)
- {
- ucDigShowTemp=ucDigShowTemp|0x80;//显示小数点
- }
- dig_hc595_drive(ucDigShowTemp,0xf7);
- break;
- case 5://显示第5位
- ucDigShowTemp=dig_table[ucDigShow5];
- if(ucDigDot5==1)
- {
- ucDigShowTemp=ucDigShowTemp|0x80;//显示小数点
- }
- dig_hc595_drive(ucDigShowTemp,0xef);
- break;
- case 6://显示第6位
- ucDigShowTemp=dig_table[ucDigShow6];
- if(ucDigDot6==1)
- {
- ucDigShowTemp=ucDigShowTemp|0x80;//显示小数点
- }
- dig_hc595_drive(ucDigShowTemp,0xdf);
- break;
- case 7://显示第7位
- ucDigShowTem
数码管开机密码 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)