找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4005|回复: 1
打印 上一主题 下一主题
收起左侧

基于51单片机密码锁设计LCD1602显示(原理图+程序)

[复制链接]
跳转到指定楼层
楼主
兄弟们加油!
电路原理图如下:


单片机源程序如下:
  1. #include <reg52.h>
  2. #include <stdio.h>
  3. #include <intrins.h>
  4. #include "uart.h"
  5. #include "fpmxx.h"
  6. #include "lcd.h"
  7. #include "keyboard.h"
  8. #include "main.h"
  9. #include "eeprom.h"
  10. #include "12864.h"
  11. #include "led.h"
  12. #include "font.h"
  13. #include "password.h"


  14. sbit UART_RXD = P3^0;
  15. sbit UART_TXD = P3^1;
  16. sbit JIDIANQI = P3^7;


  17. volatile unsigned char Menu_Max_Item = 4;
  18. volatile unsigned char Menu_Select = 1;



  19. //测试继电器开工并关闭一次
  20. void Jidianqi_Test()
  21. {
  22.     JIDIANQI = 0;

  23.     Delay_Ms(100);

  24.     JIDIANQI = 1;
  25. }


  26. void main()
  27. {
  28.     unsigned char first = 1;
  29.     unsigned char ucKey = 0xFF;

  30.     Buzzer_On();
  31.     LED_Blink();
  32.     Jidianqi_Test();
  33.     LCD_Init();
  34.     UART_Init_57600();
  35.     Password_Init();
  36.        
  37.        
  38.     while(1)
  39.     {
  40.         if(first == 1)
  41.         {
  42.             FPMXX_Find_Fingerprint();
  43.             LCD_Main_Menu(1);
  44.             Menu_Select = 1;
  45.             first =2;
  46.         }

  47.         ucKey = getKeyPressed(); //扫描键盘输入

  48.         if(ucKey == 11) //#
  49.         {
  50.             do
  51.             {
  52.                 ucKey = getKeyPressed();
  53.             }
  54.             while(ucKey != 11); //等待松开按键


  55.             switch(Menu_Select)
  56.             {

  57.             //查找指纹
  58.             case 1:


  59.                 FPMXX_Find_Fingerprint();
  60.                 LCD_Main_Menu(1);
  61.                 Menu_Select = 1;
  62.                 first =2;
  63.                 break;


  64.             //添加指纹
  65.             case 2:
  66.                 FPMXX_Add_Fingerprint();
  67.                 break;


  68.             //清空指纹
  69.             case 3:
  70.                 FPMXX_Delete_All_Fingerprint();
  71.                 break;


  72.             case 4:
  73.                 Change_Password();
  74.                 break;




  75.             }




  76.         }




  77.         if(ucKey == 8) //下
  78.         {
  79.             //  Delay_Ms(100);

  80.             do
  81.             {
  82.                 ucKey = getKeyPressed();
  83.             }
  84.             while(ucKey != 8); //等待松开按键


  85.             //当前箭头+1
  86.             if(Menu_Select!=Menu_Max_Item)
  87.             {
  88.                 Menu_Select++;

  89.             }

  90.             LCD_Main_Menu(Menu_Select);

  91.         }


  92.         if(ucKey == 2)   //上
  93.         {

  94.             do
  95.             {
  96.                 ucKey = getKeyPressed();
  97.             }
  98.             while(ucKey != 2); //等待松开按键


  99.             //当前箭头+1
  100.             if(Menu_Select!=1)
  101.             {
  102.                 Menu_Select--;

  103.             }

  104.             LCD_Main_Menu(Menu_Select);


  105.         }

  106.         Delay_Ms(100); //延时判断100MS检测一次




  107.     }
  108. }
复制代码

所有资料51hei提供下载:
FPMXX_89C52RC_演示版资料.zip (197.02 KB, 下载次数: 48)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:552896 发表于 2019-6-2 18:04 | 只看该作者
谢谢大佬
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表