欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
STM32電子密碼鎖源程序 LCD彩屏顯示
[打印本頁]
作者:
jkla
時間:
2020-9-10 19:09
標題:
STM32電子密碼鎖源程序 LCD彩屏顯示
該電子密碼鎖是在普中STM32F103ZET6板子上寫的,所有操作顯示在了LCD屏幕上,解鎖是通過解碼紅外遙控的碼值進行的。
1. 是紅紅外遙控進行解鎖,需要自己先將紅外遙控器的0-9碼值破解出來,然后修改程序elecodelock.c中的枚舉中的值。
2. 可以自行修改本地密碼,本地密碼是保存在EEPROM中的,掉電不丟失。只需打開elecodelock.c中部分代碼注釋,再修改mima[6]數組中的值即可。該程序最大支持9位密碼。10位以上需要對紅外數據進行處理。
3. 所有的操作現象顯示在LCD屏幕上。有輸入密碼,及密碼錯誤提示,還有鎖的狀態提示,以及一些附加功能,如時間顯示,日期,星期和溫度。
4. 該程序適用于STM32F103ZET6型。
現象.JPG
(4.67 MB, 下載次數: 37)
下載附件
2020-9-10 19:08 上傳
單片機源程序如下:
#include "led.h"
#include "Systick.h"
#include "elecodelock.h"
#include "24cxx.h"
#include "usart.h"
#include "ds18b20.h"
#include "rtc.h"
void System_Init(void)
{
SysTick_Init(72); //72MHz,進行8分頻
USART1_Init(9600);
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //分兩組
LED_Init();
Hwjs_Init();
ECL_Init(); //密碼鎖初始化
AT24Cxx_Init(); //EEPROM初始化
TFTLCD_Init(); //顯示屏初始化
DS18B20_Init(); //溫度傳感器初始化
RTC_Init(); //RTC初始化
}
//處理溫度數據
void DataPro(void)
{
float value;
u8 num;
RTC_Get(); //獲取時間
value = DS18B20_GetTEMP(); //獲取溫度
num = (u8)value;
LCD_ShowNum(100, 180, num, 2, 24);
LCD_ShowString(130, 180, tftlcd_data.width, tftlcd_data.height, 24, "C");
LCD_ShowNum(100, 220, calendar.hour, 2, 24);
LCD_ShowString(130, 220, tftlcd_data.width, tftlcd_data.height, 24, "H");
LCD_ShowNum(160, 220, calendar.min, 2, 24);
LCD_ShowString(190, 220, tftlcd_data.width, tftlcd_data.height, 24, "M");
LCD_ShowNum(210, 220, calendar.sec, 2, 24);
LCD_ShowString(240, 220, tftlcd_data.width, tftlcd_data.height, 24, "S");
LCD_ShowString(20, 260, tftlcd_data.width, tftlcd_data.height, 24, "WEEK");
LCD_ShowNum(100, 260, calendar.week, 1, 24);
LCD_ShowString(20, 290, tftlcd_data.width, tftlcd_data.height, 24, "DATE");
LCD_ShowString(150, 290, tftlcd_data.width, tftlcd_data.height, 24, "y");
LCD_ShowString(190, 290, tftlcd_data.width, tftlcd_data.height, 24, "m");
LCD_ShowString(230, 290, tftlcd_data.width, tftlcd_data.height, 24, "d");
LCD_ShowNum(100, 290, calendar.w_year, 4, 24); //年
LCD_ShowNum(160, 290, calendar.w_month, 2, 24); //月
LCD_ShowNum(210, 290, calendar.w_date, 1, 24); //日
}
int main()
{
u8 i = 0;
u8 flag = 0; //記錄開鎖狀態
System_Init();
FRONT_COLOR=BLACK;
LCD_ShowFontHZ(80, 10,"電子密碼鎖");
LCD_ShowFontHZ(20,40, "請輸入密碼");
LCD_ShowFontHZ(20,140, "狀態");
LCD_ShowFontHZ(100, 140, "關");
LCD_ShowFontHZ(20,180, "溫度");
LCD_ShowFontHZ(20,220, "時間");
while(1)
{
DataPro();
if(flag)
{
So_Lock();
flag = 0; //鎖打開,狀態置0
LCD_Fill(20, 100,303, 130, WHITE); //清除錯誤提示
}
if(hw_jsm == 0x00FFA25D && !flag)
{
ECL = 0;
flag = 1; //鎖關閉,狀態置1
hw_jsm = 0;
LCD_ShowFontHZ(100, 140, "關");
}
i++;
if(i % 20 == 0)
{
LED0 = !LED0;
}
delay_ms(10);
}
}
復制代碼
所有資料51hei提供下載:
電子密碼鎖.zip
(386.3 KB, 下載次數: 117)
2020-9-10 19:09 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
計算機工程
時間:
2020-12-26 13:02
為什么運行時缺少iic.0文件
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1