找回密码
 立即注册

QQ登录

只需一步,快速开始

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

STM32密码锁代码

[复制链接]
跳转到指定楼层
楼主
ID:261207 发表于 2017-12-13 19:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
STM32密码锁代码

STM32单片机源程序:
  1. #include "led.h"
  2. #include "delay.h"
  3. #include "key.h"
  4. #include "sys.h"
  5. #include "usart.h"
  6. #include "lcd.h"
  7. #include "myiic.h"
  8. #include "24cxx.h"
  9. #include "password.h"
  10. #include "string.h"
  11. #include "OLED12864.h"
  12. unsigned char PSW_MAX_LEN =13 ;   //密码最大长度
  13. unsigned char PSW_SAVE_ADDR = 96;  //EEPROM(即24C02器件)中的保存地址
  14. unsigned char  PswCnt = 0;///    //该变量用来记输入密码的个数;
  15. unsigned char  PswSet[13];   //已设定的密码数据
  16. unsigned char  PswBuf1[13];  //密码输入缓冲区1
  17. unsigned char  PswBuf2[13];  //密码输入缓冲区2

  18. u8 status;//状态字
  19. u8 Password_Buff[10];
  20. extern void KeyDriver(void);
  21. int ad0 = 65530,ad1 = 65532;

  22. int main(void)
  23. {
  24.         u8 t;
  25.         unsigned char buf[13];
  26.         Key_Init();//按键初始化必须放在定时器使能函数的前面;因为如果定时器使能之后,2ms就进入中断进行按键刷新;在此之前,必须先进行按键初始化,
  27.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
  28.         TIM3_Int_Init(19,7199);
  29.         TIM_Cmd(TIM3 ,ENABLE);
  30.         delay_init();
  31.         LED_Init();
  32.     uart_init(115200);       
  33.         LCD_Init();
  34.        
  35.         AT24CXX_Init();       
  36.        
  37.     OLED_Init();
  38.        
  39.         OLED_Fill(0XFF);
  40.         delay_ms(500);
  41.         OLED_Fill(0X00);
  42.         POINT_COLOR=RED;
  43.         AT24CXX_Read(PSW_SAVE_ADDR,buf,PSW_MAX_LEN +1);
  44.         CopyMemory(PswSet, buf, PSW_MAX_LEN);
  45.     LCD_ShowString(30,140,200,16,16,"please input password:         ");
  46.         status = 0;
  47.         FillMemory(PswBuf1, '\0', PSW_MAX_LEN);///
  48.     FillMemory(PswBuf2, '\0', PSW_MAX_LEN);///       

  49.         while(1)
  50.         {
  51.                 KeyDriver();
  52.                 if(USART_RX_STA&0x8000)
  53.            {       
  54.                 if(strcmp((char * )USART_RX_BUF,"lookpassword") == 0)
  55.                 {   
  56.                              // USART_RX_BUF[0] = 0;
  57.                           
  58.                AT24CXX_Read(PSW_SAVE_ADDR,Password_Buff,8);
  59.                             delay_ms(5);
  60.                                 printf("下位机密码是\r\n");
  61.                                 for(t = 0; t<6;t++)
  62.                         {
  63.                                   USART_SendData(USART1,Password_Buff[t]);
  64.                               while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送结束
  65.                                
  66.                         }
  67.                     printf("\r\n");//插入换行
  68.                 }
  69.                                 USART_RX_STA=0;
  70.                  
  71.                 }
  72.                
  73.            // OLED_Display_Number_8X16(0,0,ad0/10000);
  74.                 //OLED_Display_Number_8X16(0,8,ad0/1000%10);
  75.                 //OLED_Display_Number_8X16(0,16,ad0/100%10);
  76.                 //OLED_Display_Number_8X16(0,24,ad0/10%10);
  77.                 //OLED_Display_Number_8X16(0,32,ad0%10);
  78.                 // OLED_Display(0,8,16,16,);
  79.                 //OLED_Display(0,0,124,32,TXT);
  80.                 OLED_Display(0,0,112,16,TXT2);
  81.                 OLED_Display(16,0,112,16,TXT3);
  82.                 OLED_Display(32,0,112,16,TXT6);
  83.                 //OLED_Display(32,0,32,32,TXT7);                     
  84.                
  85.                 // OLED_Display(0,64,16,16,TXT2);
  86.                 //OLED_Display_Number_8X16(16,0,ad1/10000);
  87.                 //OLED_Display_Number_8X16(16,8,ad1/1000%10);
  88.                 //OLED_Display_Number_8X16(16,16,ad1/100%10);
  89.                 //OLED_Display_Number_8X16(16,24,ad1/10%10);
  90.                 //OLED_Display_Number_8X16(16,32,ad1%10);
  91.           
  92.         }
  93.         }

  94. /**/
复制代码

所有资料51hei提供下载:
STM32矩阵按键代码更新.rar (364.01 KB, 下载次数: 79)


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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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