久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

STM32電子密碼鎖源程序 LCD彩屏顯示

[復制鏈接]
跳轉到指定樓層
樓主
該電子密碼鎖是在普中STM32F103ZET6板子上寫的,所有操作顯示在了LCD屏幕上,解鎖是通過解碼紅外遙控的碼值進行的。

1.    是紅紅外遙控進行解鎖,需要自己先將紅外遙控器的0-9碼值破解出來,然后修改程序elecodelock.c中的枚舉中的值。
2.    可以自行修改本地密碼,本地密碼是保存在EEPROM中的,掉電不丟失。只需打開elecodelock.c中部分代碼注釋,再修改mima[6]數組中的值即可。該程序最大支持9位密碼。10位以上需要對紅外數據進行處理。
3.    所有的操作現象顯示在LCD屏幕上。有輸入密碼,及密碼錯誤提示,還有鎖的狀態提示,以及一些附加功能,如時間顯示,日期,星期和溫度。
4.    該程序適用于STM32F103ZET6型。



單片機源程序如下:
  1. #include "led.h"
  2. #include "Systick.h"
  3. #include "elecodelock.h"
  4. #include "24cxx.h"
  5. #include "usart.h"
  6. #include "ds18b20.h"
  7. #include "rtc.h"



  8. void System_Init(void)
  9. {
  10.         SysTick_Init(72);                 //72MHz,進行8分頻
  11.         USART1_Init(9600);
  12.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);      //分兩組
  13.         LED_Init();
  14.         Hwjs_Init();
  15.         ECL_Init();                          //密碼鎖初始化
  16.         AT24Cxx_Init();                      //EEPROM初始化
  17.         TFTLCD_Init();                       //顯示屏初始化
  18.         DS18B20_Init();                      //溫度傳感器初始化
  19.         RTC_Init();                          //RTC初始化
  20. }


  21. //處理溫度數據
  22. void DataPro(void)
  23. {
  24.         float value;
  25.         u8 num;
  26.         RTC_Get();                   //獲取時間
  27.         value = DS18B20_GetTEMP();   //獲取溫度
  28.         num = (u8)value;
  29.         LCD_ShowNum(100, 180, num, 2, 24);
  30.         LCD_ShowString(130, 180, tftlcd_data.width, tftlcd_data.height, 24, "C");
  31.         LCD_ShowNum(100, 220, calendar.hour, 2, 24);
  32.         LCD_ShowString(130, 220, tftlcd_data.width, tftlcd_data.height, 24, "H");
  33.         LCD_ShowNum(160, 220, calendar.min, 2, 24);
  34.         LCD_ShowString(190, 220, tftlcd_data.width, tftlcd_data.height, 24, "M");
  35.         LCD_ShowNum(210, 220, calendar.sec, 2, 24);
  36.         LCD_ShowString(240, 220, tftlcd_data.width, tftlcd_data.height, 24, "S");
  37.         LCD_ShowString(20, 260, tftlcd_data.width, tftlcd_data.height, 24, "WEEK");
  38.         LCD_ShowNum(100, 260, calendar.week, 1, 24);
  39.         LCD_ShowString(20, 290, tftlcd_data.width, tftlcd_data.height, 24, "DATE");
  40.         LCD_ShowString(150, 290, tftlcd_data.width, tftlcd_data.height, 24, "y");
  41.         LCD_ShowString(190, 290, tftlcd_data.width, tftlcd_data.height, 24, "m");
  42.         LCD_ShowString(230, 290, tftlcd_data.width, tftlcd_data.height, 24, "d");
  43.         LCD_ShowNum(100, 290, calendar.w_year, 4, 24);  //年
  44.         LCD_ShowNum(160, 290, calendar.w_month, 2, 24);    //月
  45.         LCD_ShowNum(210, 290, calendar.w_date, 1, 24);   //日
  46. }

  47. int main()
  48. {
  49.         u8 i = 0;
  50.         u8 flag = 0;      //記錄開鎖狀態
  51.        
  52.         System_Init();
  53.         FRONT_COLOR=BLACK;
  54.         LCD_ShowFontHZ(80, 10,"電子密碼鎖");
  55.         LCD_ShowFontHZ(20,40, "請輸入密碼");
  56.         LCD_ShowFontHZ(20,140, "狀態");
  57.         LCD_ShowFontHZ(100, 140, "關");
  58.         LCD_ShowFontHZ(20,180, "溫度");
  59.         LCD_ShowFontHZ(20,220, "時間");
  60.         while(1)
  61.         {
  62.                 DataPro();
  63.                 if(flag)
  64.                 {
  65.                         So_Lock();
  66.                         flag = 0;        //鎖打開,狀態置0
  67.                         LCD_Fill(20, 100,303, 130, WHITE); //清除錯誤提示
  68.                 }
  69.                 if(hw_jsm == 0x00FFA25D && !flag)
  70.                 {
  71.                         ECL = 0;
  72.                         flag = 1;        //鎖關閉,狀態置1
  73.                         hw_jsm = 0;
  74.                         LCD_ShowFontHZ(100, 140, "關");
  75.                 }
  76.                
  77.                 i++;
  78.                 if(i % 20 == 0)
  79.                 {
  80.                         LED0 = !LED0;
  81.                 }
  82.                 delay_ms(10);
  83.         }
  84. }
復制代碼

所有資料51hei提供下載:
電子密碼鎖.zip (386.3 KB, 下載次數: 117)

評分

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

查看全部評分

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

使用道具 舉報

沙發
ID:843617 發表于 2020-12-26 13:02 | 只看該作者
為什么運行時缺少iic.0文件
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产一区二区在线播放 | 精品一区二区三区在线观看国产 | 在线免费观看视频黄 | 午夜精品一区二区三区在线视频 | 视频第一区 | 先锋资源吧| 国产中文视频 | 免费黄篇 | 中文字幕视频在线观看 | 午夜在线小视频 | 国产一二区视频 | 福利一区在线观看 | 天天草天天| 久久这里只有精品首页 | 欧美色成人 | av中文字幕在线播放 | 日本天堂一区二区 | 亚洲精品欧美 | 欧美一区二区在线播放 | 午夜精品久久久久久久99黑人 | 日韩精品视频在线观看一区二区三区 | 97视频在线免费 | 免费在线看a | 精品欧美在线观看 | 欧美日韩精品中文字幕 | japan21xxxxhd美女| 综合一区 | 亚洲精品视频在线 | 日韩高清国产一区在线 | 国产一区二区三区在线免费观看 | 欧美人妇做爰xxxⅹ性高电影 | 综合激情久久 | 韩日一区二区 | 国产一区二区三区久久久久久久久 | www.97zyz.com| 99精品免费久久久久久久久日本 | 四虎永久免费影院 | 国产精品一区二区欧美 | 五月婷婷中文 | 中文字幕国产 | 国产精品精品视频一区二区三区 |