STC89C52最小系統
此模塊是為了控制相關門禁,或是一些特定情況下要用到比較高級的鎖。DS1302時鐘顯示不用手動寫時鐘代碼就很方便,這一次用的是stc89c52,就很熟悉。
總結一下:LCD1602是GND和5V接一起。
DS1302時鐘模塊確保3.3V就可以
AS608指紋模塊調試他的波特率,單片機最小系統的晶振要是11.05926mH
要原理圖,截屏的圖片不知道咋樣拉進來。就先這樣吧
制作出來的實物圖如下:
image0.jpeg (2.72 MB, 下載次數: 65)
下載附件
2021-1-27 12:39 上傳
代碼和文件都可以下載- #include <reg52.h>
- #include <intrins.h>
- #include "buzz.h"
- #include "key.h"
- #include "uart.h"
- #include "delay.h"
- #include "FPM10A.h"
- #include "lcd_1602.h"
- #include "ds1302.h"
- typedef unsigned int u16; //對數據類型進行聲明定義
- typedef unsigned char u8;
- u8 DisplayData[16]=" - : : ";
- void datapros()
- {
- Ds1302ReadTime(); //反饋時間TIME
- DisplayData[1] = TIME[4]/16+0x30;
- DisplayData[2] = (int)(TIME[4]&0x0f)+0x30; //月
- DisplayData[4] = TIME[3]/16+0x30;
- DisplayData[5] = (int)(TIME[3]&0x0f)+0x30; //日
-
- DisplayData[7] = TIME[2]/16+0x30; //時
- DisplayData[8] = (int)(TIME[2]&0x0f)+0x30;
-
- // DisplayData[10] = ":";
- DisplayData[10] = TIME[1]/16+0x30; //分
- DisplayData[11] = (int)(TIME[1]&0x0f)+0x30;
- // DisplayData[13] = ":";
- // DisplayData[5] = ;
- DisplayData[13] = TIME[0]/16+0x30; //秒
- DisplayData[14] = (int)(TIME[0]&0x0f)+0x30;
- }
- void main()
- {
- u8 i;
- LCD1602_Init(); //初始化液晶
- LCD1602_Display(0x80,"Fingerprint Test",0,16); //液晶開機顯示界面
- Uart_Init(); //初始化串口
- Key_Init(); //初始化按鍵
- while(1)
- {
- datapros(); //數據處理函數
- LCD1602_WriteCMD(0x80+0x40);
- for(i=0;i<16;i++)
- {
- LCD1602_WriteDAT(DisplayData[i]);
- }
- if(KEY_ENTER==0) //檢測按鍵K1是否按下
- {
- Delay_Ms(10); //消除抖動 一般大約10ms
- if(KEY_ENTER==0) //再次判斷按鍵是否按下
- {
- Delay_Ms(200); //延時500MS,等待指紋模塊復位
- Device_Check(); //校對指紋模塊是否接入正確,液晶做出相應的提示
- Delay_Ms(1000); //對接成功界面停留一定時間
- while(1)
- {
- /**************進入主功能界面****************/
- LCD1602_Display(0x80," search finger ",0,16); //第一排顯示搜索指紋
- LCD1602_Display(0xc0," Add delete",0,16); //添加和刪除指紋
- if(local_date==0)
- {
- LCD1602_Display(0x80, " *",0,2);
- LCD1602_Display(0xc0, " ",0,2);
- LCD1602_Display(0xc0+8," ",0,2);
- }
- else if(local_date==1)
- {
- LCD1602_Display(0x80, " ",0,2);
- LCD1602_Display(0xc0, " *",0,2);
- LCD1602_Display(0xc0+8," ",0,2);
- }
- else if(local_date==2)
- {
- LCD1602_Display(0x80, " ",0,2);
- LCD1602_Display(0xc0, " ",0,2);
- LCD1602_Display(0xc0+8," *",0,2);
- }
- //確認鍵
- if(KEY_OK == 0)
- {
- while(KEY_OK == 0);//等待松開按鍵
- switch(local_date)
- {
- case 0: //搜索指紋
- FPM10A_Find_Fingerprint();
- break;
-
- case 1: //添加指紋
- FPM10A_Add_Fingerprint();
- break;
-
- case 2: //清空指紋
- FPM10A_Delete_All_Fingerprint();
- break;
- }
- }
- //切換鍵
- if(KEY_DOWN == 0)
- {
- while(KEY_DOWN == 0); //等待松開按鍵
- if(local_date<=2)
- {
- local_date++;
- if(local_date==3)
- local_date=0;
- }
- }
- Delay_Ms(100); //延時判斷100MS檢測一次
- }
- }
- while(!KEY_ENTER); //檢測按鍵是否松開
- }
- }
- }
復制代碼
全部程序:
開發板:LCD1602 AS608 DS1302.rar
(131.93 KB, 下載次數: 89)
2021-1-27 13:13 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|