STM32密碼器程式碼
STM32密碼器程式碼(校級微控制器大賽當場從0到1原創)
2020.12.5,題目是通過oled模組做一個簡易的遊戲機。
##功能實現要求如下:
- 初始介面顯示微控制器大賽D01組,然後要寫一個按鍵6位密碼鎖;
要求密碼鎖每輸入一個按鍵值則螢幕顯示一個 “*”,按A鍵位為確定,按B鍵為退格 - 介面轉換,解鎖之後可以按鍵4選擇音樂播放介面,然後選擇音樂,要求有三種音樂,按相應的鍵位值可以用蜂鳴器播放,按B可以退回上層選單;
- 解鎖之後按6則為選擇遊戲介面,按A開始貪吃蛇小遊戲,B鍵位返回上一選單
密碼鎖部分
由於小組有四位同學,我負責的任務是oled的顯示部分。所以這部分函式的程式碼是我來寫的,其餘部分其他同學寫,所以就先只更新這麼多。
邏輯構思
程式碼的思路大概是執行一個while死迴圈,不斷檢測鍵位值,然後把鍵位的值儲存到一個密碼陣列keymima【】裡,而正確密碼儲存在mima【】陣列裡,賦好值最後進行對比。而至於在螢幕上顯示字元*,是用另一個陣列X【m】,通過OLED_ShowString函式進行列印 *。
具體判斷條件?
*按鍵有1-9九個鍵位用於輸入密碼,A作為確定按鈕,B作為退格按鈕。
當螢幕上的小於6個的時候,按下1-9的時候,將鍵位賦給陣列keymima【】;
當的數量等於6的時候,再輸入密碼直接顯示密碼錯誤回到密碼輸入階段,即螢幕上什麼都沒有的狀態,等待輸入,所以這裡要清空所有陣列並且重新初始化。
OLED_ShowPicture(0,0,128,8,wrong_key);
delay_ms(800);
//清屏
OLED_Clear();
OLED_Refresh();
x[0]=5;
m=0;
for(j=0;j<20;j++)
keymima[j]=0;
j=1;
//將密碼陣列和畫*位置陣列都初始化
continue;
當*不超過6個的時候,按下B鍵位會退格,即刪去前一個星號,並且將畫“雪花號陣列的位置前置,把密碼陣列keymima中的最後一個值置0。
這裡我們最開始用的是keymima陣列j不斷+1,當B按下那麼就會將當前值變為0,而j++,繼續下面的儲存,然後在密碼比對的時候,將keymima陣列不為0的值全部提取放到另一個陣列裡,然後進行和正確密碼陣列的必對。
後來發現沒有必要,直接將j–,這樣下次的keymima陣列儲存資料的時候就會進行對最後一位的覆蓋,直接將keymima陣列和正確密碼陣列比對就行了。
if(scan1==12)//B
{int extern j;
m=m-1 ;
OLED_Clearzf(x[m],25,13,13);
OLED_Refresh();
keymima[j]=0;
j--;
}
3.至於x【m】可以自己做初始化,自己選擇間隔就可以了。這樣就能畫出間隔平均美觀的雪花號了。
4.最後,
遍歷大法好。
如有會員,完整版可燒錄檔案詳見下面連結:
https://editor.csdn.net/md/?articleId=110730022
相關文章
- 程式碼伺服器防洩密伺服器
- 路由器改密碼路由器密碼
- 程式碼伺服器(SVN/GIT)防洩密(一)伺服器Git
- SVN/Git程式碼伺服器防洩密(二)Git伺服器
- 密碼失而復得 RAR檔案密碼破解器密碼
- SVG九宮格密碼效果程式碼SVG密碼
- 密碼框提示文字程式碼例項密碼
- 希爾密碼(hill密碼)密碼
- 密碼安全:密碼設定要求,密碼爆破辦法,密碼歸類使用,密碼處置方案密碼
- 用 Tk 寫個密碼器密碼
- 禁止密碼框賦值黏貼程式碼密碼賦值
- 原始碼防洩密場景中程式碼伺服器安全價值分析原始碼伺服器
- STM32開原始碼——OLED漢字顯示程式原始碼
- 密碼指令碼密碼指令碼
- 動網論壇密碼暴力破解程式程式碼 (轉)密碼
- mysql學習之-密碼管理(預設密碼,修改密碼,解決忘記密碼)MySql密碼
- 序列密碼與分組密碼密碼
- U盾密碼密碼重置方法密碼
- 隱藏密碼?顯示密碼?密碼
- 應用密碼學——古典密碼密碼學
- 密碼輸入強度提示例項程式碼密碼
- js實現的密碼強度提示程式碼JS密碼
- 密碼框提示文字效果程式碼例項密碼
- 密碼框輸入提示效果程式碼例項密碼
- input密碼輸入提示效果程式碼例項密碼
- 密碼管理器進化史密碼
- 前端使用bcrypt對密碼加密,伺服器對密碼進行校驗前端密碼加密伺服器
- 360瀏覽器密碼管理在哪裡 360管理密碼怎麼設定瀏覽器密碼
- PKCS#11:密碼裝置與應用程式的密碼學介面密碼學
- 密碼密碼
- Chrome瀏覽器擴充套件程式可竊取明文密碼Chrome瀏覽器套件密碼
- 【密碼】Oracle使用者密碼系列密碼Oracle
- mysql 忘記密碼,mysql修改密碼MySql密碼
- ubuntu root預設密碼(初始密碼)Ubuntu密碼
- 關於密碼檔案,SYS密碼密碼
- 應用密碼學 - 公鑰密碼密碼學
- 應用密碼學——分組密碼密碼學
- 《密碼學系列》|| 密碼學中的流密碼是怎麼回事?密碼學