欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3084|回復: 3
打印 上一主題 下一主題
收起左側

關于51單片機的密碼鎖程序問題

[復制鏈接]
跳轉到指定樓層
樓主
ID:1091578 發表于 2023-8-19 14:57 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
代碼及問題:
// main.c //
#include <regx52.h>
#include "LCD1602.h"
#include "MatrixKey.h"
#include "delay.h"
#include "key.h"
#define LED P2

unsigned char input[16]= {
        'q', 'q', 'q', 'q', 'q', 'q', 'q', 'q',
        'q', 'q', 'q', 'q', 'q', 'q', 'q', 'q'}; // 輸入初始化
unsigned char password[16] = {
        '0', '1', '2', '3', '4', '5', '6', '7',
        '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}; // 儲存的正確密碼
unsigned char i, j, key;

void main()
{
        L1:
        // 正常來說應該把這句話加上,但是我加上以后編譯就錯了,不知道為什么
        // input[16]= {
        // 'q', 'q', 'q', 'q', 'q', 'q', 'q', 'q',
        // 'q', 'q', 'q', 'q', 'q', 'q', 'q', 'q'};
        i=0; j=0; key=0;
        LCD_Init();
        LCD_ShowString(1, 1, "Password:");
        LCD_ShowString(2, 1, "                ");
        while(1)
        {
                key = KeyScan(0); // 獨立按鍵,確認鍵控制輸入是否結束
               
                if(MatrixKeyScan(0)) // 4*4矩陣鍵盤輸入密碼
                {
                        input[ i] = MatrixKeyScan(0);
                        i++;
                        for(j=0; j<i; j++)
                        {
                                LCD_ShowChar(2, 1+j, input[j]); // 輸入一位就顯示一位數字
                        }
                }
               
                if(key==1 || i>16)
                {
                        key = 0;
                        for(j=0; j<16; j++)
                        {
                                if(password[j]!=input[j])
                                {
                                        LCD_ShowString(2, 1, "Wrong!          ");
                                        while(key==1)
                                        {
                                                i = 0;
                                                goto L1; // 如果密碼錯了再按一次確認鍵然后就可以重新輸入
                                        }
                                }
                        }
                        LCD_ShowString(2, 1, "Access!         "); // 如果密碼正確就會一直顯示這個
                }
        }
}
// 問題應該全在main.c里,其他的鍵盤和屏幕我都測試過了,那些模塊都沒問題,F象和全部代碼在附件里,主要的問題就是顯示亂碼,非常感謝。

project1.zip

58.26 KB, 下載次數: 3

全代碼

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:332444 發表于 2023-8-19 17:23 | 只看該作者
不用看就知道輸入轉換錯誤了,看我帖子里面有荔枝,這是寫秒鐘更新,存到數組需要轉換。


回復

使用道具 舉報

板凳
ID:332444 發表于 2023-8-19 17:25 | 只看該作者
另外可以這樣寫:unsigned char password[16] = {”0123456789abcdef“};
回復

使用道具 舉報

地板
ID:1091578 發表于 2023-8-20 10:47 | 只看該作者
xianfajushi 發表于 2023-8-19 17:23
不用看就知道輸入轉換錯誤了,看我帖子里面有荔枝,這是寫秒鐘更新,存到數組需要轉換。

好像就是數據類型的問題,我沒有用字符用數字顯示沒有亂碼,非常感謝
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表