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伺服器
- SVG九宮格密碼效果程式碼SVG密碼
- 密碼安全:密碼設定要求,密碼爆破辦法,密碼歸類使用,密碼處置方案密碼
- 原始碼防洩密場景中程式碼伺服器安全價值分析原始碼伺服器
- 希爾密碼(hill密碼)密碼
- 用 Tk 寫個密碼器密碼
- PKCS#11:密碼裝置與應用程式的密碼學介面密碼學
- 應用密碼學——古典密碼密碼學
- 序列密碼與分組密碼密碼
- 密碼密碼
- Spring Security 5中的預設密碼編碼器Spring密碼
- 360瀏覽器密碼管理在哪裡 360管理密碼怎麼設定瀏覽器密碼
- 前端使用bcrypt對密碼加密,伺服器對密碼進行校驗前端密碼加密伺服器
- Android之WiFi密碼檢視器AndroidWiFi密碼
- 密碼管理器進化史密碼
- oneSafe for Mac(日常密碼管理器)Mac密碼
- STM32開原始碼——OLED漢字顯示程式原始碼
- Chrome瀏覽器擴充套件程式可竊取明文密碼Chrome瀏覽器套件密碼
- 應用密碼學 - 公鑰密碼密碼學
- 應用密碼學——分組密碼密碼學
- 現代密碼-公鑰密碼RSA密碼
- 《密碼學系列》|| 密碼學中的流密碼是怎麼回事?密碼學
- tplink路由器預設密碼6位 tplink管理員初始密碼是多少路由器密碼
- 密碼學系列——訊息摘要(c#程式碼實操)密碼學C#
- Linux伺服器—mysql忘記密碼Linux伺服器MySql密碼
- vmware虛擬機器linux重置密碼虛擬機Linux密碼
- 不安全的瀏覽器密碼瀏覽器密碼
- 拆分密碼密碼
- 移位密碼密碼
- 替代密碼密碼
- 密碼抓取密碼
- 密碼學密碼學
- PbootCMS忘記密碼後的重置密碼流程boot密碼
- 分組密碼(一) — 密碼學複習(四)密碼學
- 群暉NAS忘記密碼如何重置密碼密碼
- PDF密碼忘記了,如何找回口令密碼密碼