微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 第34节:在数码管中实现iphone4S开机密码锁的程序

第34节:在数码管中实现iphone4S开机密码锁的程序

时间:11-22 来源:互联网 点击:

  1. ey_input(0);//由于数字按键的代码相似度高,因此把具体代码封装在这个函数里
  2. uiVoiceCnt=const_voice_short; //按键声音触发,滴一声就停。
  3. ucKeySec=0;//响应按键服务处理程序后,按键编号清零,避免一致触发
  4. break;
  5. case 11:// 11号键 对应朱兆祺学习板的S11键
  6. uiVoiceCnt=const_voice_short; //按键声音触发,滴一声就停。
  7. ucKeySec=0;//响应按键服务处理程序后,按键编号清零,避免一致触发
  8. break;
  9. case 12:// 12号键 对应朱兆祺学习板的S12键
  10. uiVoiceCnt=const_voice_short; //按键声音触发,滴一声就停。
  11. ucKeySec=0;//响应按键服务处理程序后,按键编号清零,避免一致触发
  12. break;
  13. case 13:// 13号键 对应朱兆祺学习板的S13键
  14. uiVoiceCnt=const_voice_short; //按键声音触发,滴一声就停。
  15. ucKeySec=0;//响应按键服务处理程序后,按键编号清零,避免一致触发
  16. break;
  17. case 14:// 14号键 对应朱兆祺学习板的S14键
  18. uiVoiceCnt=const_voice_short; //按键声音触发,滴一声就停。
  19. ucKeySec=0;//响应按键服务处理程序后,按键编号清零,避免一致触发
  20. break;
  21. case 15:// 15号键 对应朱兆祺学习板的S15键
  22. uiVoiceCnt=const_voice_short; //按键声音触发,滴一声就停。
  23. ucKeySec=0;//响应按键服务处理程序后,按键编号清零,避免一致触发
  24. break;
  25. case 16:// 16号键 对应朱兆祺学习板的S16键
  26. uiVoiceCnt=const_voice_short; //按键声音触发,滴一声就停。
  27. ucKeySec=0;//响应按键服务处理程序后,按键编号清零,避免一致触发
  28. break;
  29. }
  30. }
  31. void number_key_input(unsigned char ucWhichKey)//由于数字按键的代码相似度高,因此封装在这个函数里
  32. {
  33. switch(ucWd)
  34. {
  35. case 1: //在显示密码登录框的窗口下
  36. ucInputPassword[ucPasswordCnt]=ucWhichKey; //输入的密码值显示
  37. ucPasswordCnt++;
  38. if(ucPasswordCnt>=4)
  39. {
  40. ucPasswordCnt=0;
  41. ucWd=3;//切换到第3个的窗口,停留显示1秒钟全部密码
  42. ucWd3Update=1;//更新显示窗口3
  43. uiPasswordTimer=const_0_1s;//显示0.5秒钟全部密码的计时器,让窗口3停留显示0.5秒钟之后自动消失
  44. }
  45. ucWd1Update=1; //更新显示窗口1
  46. uiNoKeyPushTimer=const_no_key_push;//10秒内无按键按下的计时器赋新值
  47. break;
  48. case 2: //在显示按键值的窗口下
  49. ucKeyNumber=ucWhichKey; //输入的按键数值显示
  50. ucWd2Update=1;//更新显示窗口2
  51. uiNoKeyPushTimer=const_no_key_push;//10秒内无按键按下的计时器赋新值
  52. break;
  53. }
  54. }
  55. void display_drive()
  56. {
  57. //以下程序,如果加一些数组和移位的元素,还可以压缩容量。但是鸿哥追求的不是容量,而是清晰的讲解思路
  58. switch(ucDisplayDriveStep)
  59. {
  60. case 1://显示第1位
  61. ucDigShowTemp=dig_table[ucDigShow1];
  62. if(ucDigDot1==1)
  63. {
  64. ucDigShowTemp=ucDigShowTemp|0x80;//显示小数点
  65. }
  66. dig_hc595_drive(ucDigShowTemp,0xfe);
  67. break;
  68. case 2://显示第2位
  69. ucDigShowTemp=dig_table[ucDigShow2];
  70. if(ucDigDot2==1)
  71. {
  72. ucDigShowTemp=ucDigShowTemp|0x80;//显示小数点
  73. }
  74. dig_hc595_drive(ucDigShowTemp,0xfd);
  75. break;
  76. case 3://显示第3位
  77. ucDigShowTemp=dig_table[ucDigShow3];
  78. if(ucDigDot3==1)
  79. {
  80. ucDigShowTemp=ucDigShowTemp|0x80;//显示小数点
  81. }
  82. dig_hc595_drive(ucDigShowTemp,0xfb);
  83. break;
  84. case 4://显示第4位
  85. ucDigShowTemp=dig_table[ucDigShow4];
  86. if(ucDigDot4==1)
  87. {
  88. ucDigShowTemp=ucDigShowTemp|0x80;//显示小数点
  89. }
  90. dig_hc595_drive(ucDigShowTemp,0xf7);
  91. break;
  92. case 5://显示第5位
  93. ucDigShowTemp=dig_table[ucDigShow5];
  94. if(ucDigDot5==1)
  95. {
  96. ucDigShowTemp=ucDigShowTemp|0x80;//显示小数点
  97. }
  98. dig_hc595_drive(ucDigShowTemp,0xef);
  99. break;
  100. case 6://显示第6位
  101. ucDigShowTemp=dig_table[ucDigShow6];
  102. if(ucDigDot6==1)
  103. {
  104. ucDigShowTemp=ucDigShowTemp|0x80;//显示小数点
  105. }
  106. dig_hc595_drive(ucDigShowTemp,0xdf);
  107. break;
  108. case 7://显示第7位
  109. ucDigShowTem

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top