找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2790|回復(fù): 0
收起左側(cè)

基于HC32F460開發(fā)板的秘密鎖功能實現(xiàn)

[復(fù)制鏈接]
ID:776997 發(fā)表于 2020-10-2 13:39 | 顯示全部樓層 |閱讀模式
本帖最后由 jinglixixi 于 2020-10-2 13:41 編輯

HC32F460的開發(fā)板上,提供了一個I2C接口的AT24C02存儲芯片,通過它可進行關(guān)鍵參數(shù)的讀寫。
由于其存儲容量相對較小,故不適宜做字庫或圖庫來使用。
AT24C02的接口原理圖如圖1所示,其占用的MCU引腳如下:
SCL---PC4
SDA--- PC4

1.jpg    
1 AT24C02接口


在結(jié)合OLED 屏及陣列按鍵的情況下,我們可以將其設(shè)計為一個秘密鎖。
OLED 屏的接口原理圖如圖2所示,其占用的MCU引腳如下:
SCL---PD0
SDA--- PD1

2.jpg                   
2  OLED 屏接口


陣列按鍵的接口原理圖如圖3所示,其占用的MCU引腳如下:
KEYOUT0---PD12
KEYOUT1---PD13
KEYOUT2---PD14
KEYIN0---PA4
KEYIN1---PA5
KEYIN2---PA6

3.jpg
3  陣列按鍵接口


實現(xiàn)秘密門鎖的主要程序如下:
  1. OLED_ShowString(0,0,"AT24C02  OK !",16);
  2. OLED_ShowString(88,2,"CLOSE",16);      
  3. i=0;
  4. n=0;
  5. m=0;
  6. OLED_ShowString(0,2,"KEY=",16);
  7. while(1)
  8. {
  9. if(n==0)
  10. {
  11. PORT_ResetBits(PortD, Pin12);
  12. PORT_SetBits(PortD, Pin14);
  13. PORT_SetBits(PortD, Pin13);
  14. m=0;
  15. }
  16. keycan();
  17. if(n==0)
  18. {
  19. PORT_SetBits(PortD, Pin12);
  20. PORT_ResetBits(PortD, Pin13);
  21. PORT_SetBits(PortD, Pin14);
  22. m=3;
  23. }
  24. keycan();
  25. if(n==0)
  26. {
  27. PORT_SetBits(PortD, Pin12);
  28. PORT_SetBits(PortD, Pin13);
  29. PORT_ResetBits(PortD, Pin14);
  30. m=6;
  31. }
  32. keycan();
  33. if(n>0)
  34. {
  35. OLED_ShowNum(40+8*i,2,n+m,1,16);      
  36. key[i]=n+m;
  37. i++;
  38. n=0;
  39. }

  40. if(i==5)
  41. {
  42. for(i=0ul; i<5; i++)
  43. {
  44. if(key[i] != u8RxBuf[i]) // 13528-741
  45. {
  46. OLED_ShowString(0,2,"KEY=    ",16);
  47. i=0;
  48. n=0;
  49. }
  50. else
  51. {
  52. OLED_ShowString(88,2,"OPEN ",16);
  53. while(1);
  54. }
  55. }
  56. }
  57. Ddl_Delay1ms(200ul);
  58. }
復(fù)制代碼

編譯下載程序后,相關(guān)的運行效果如圖4~6所示。
4.jpg
4 初始界面


5.jpg
5 提示界面


6.jpg
6 解鎖界面


感興趣的話還可以在此基礎(chǔ)上添加密碼的修改功能,其處理方式為按功能鍵激活密碼修改功能,然后先輸入原密碼并與AT24C02中的鑰匙比較,若正確再輸入新密碼并存入AT24C02中作為鑰匙保存。由于密碼的存放位置不變,故程序無需進行變更。若是密碼存放在程序中,則要想修改密碼,就只能修改程序并重新下載了!


評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復(fù)

使用道具 舉報

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

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表