久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標(biāo)題:
基于stm32f407的門禁系統(tǒng)的源碼下載
[打印本頁(yè)]
作者:
ViciQ_Q
時(shí)間:
2018-1-23 17:04
標(biāo)題:
基于stm32f407的門禁系統(tǒng)的源碼下載
采用RFID卡模塊RC522和正點(diǎn)原子探索者開發(fā)板
附件包含工程源碼
可以實(shí)現(xiàn)
1.通過(guò)觸摸屏添加、刪除人員,允許記錄10個(gè)人
2.記錄100條開門記錄
3.能通過(guò)串口讀到人員記錄和開門記錄
單片機(jī)源程序如下:
/************************************************************/
/* 基于stm32的門禁系統(tǒng) */
/* 作者:劉昊鑫 */
/************************************************************/
// PB3: SCK
// PB4: MISO
// PB5: MOSI
// PA1: RST
// PA4: NSS
#include "key.h"
#include "sys.h"
#include "usart.h"
#include "delay.h"
#include "led.h"
#include "lcd.h"
#include "key.h"
#include "RC522.h"
#include "task.h"
#include "string.h"
#include "malloc.h"
#include "touch.h"
#include "atk_ncr.h"
#include "rtc.h"
u8 CardType[2]; // 存儲(chǔ)卡片類型(0x0400表示卡類型為S50)
u8 UID[4]; // 存儲(chǔ)卡片序列號(hào)
u8 ReadBuf[16]; // 讀一個(gè)block數(shù)據(jù)緩沖
u8 WriteBuf[16]="I Love You! "; // 寫一個(gè)block數(shù)據(jù)緩沖
u8 DefaultKey[6]={0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}; // 存儲(chǔ)卡扇區(qū)密碼
u8 BlockNum=0;
/**********************************************************/
/* 尋卡 */
/**********************************************************/
u8 SearchCard()
{
// 尋卡,返回卡類型(2字節(jié))
if( PcdRequest(PICC_REQALL, CardType) != MI_OK ) // 尋天線區(qū)內(nèi)所有卡
{
if( PcdRequest(PICC_REQALL, CardType) != MI_OK ) // 尋卡失敗,再次尋卡
{
PcdHalt(); // 命令I(lǐng)C卡進(jìn)入休眠
return SEARCH_ERR; // 再次尋卡失敗,返回尋卡錯(cuò)誤
}
}
// 防沖撞,讀卡的序列號(hào)(4字節(jié))
if( PcdAnticoll(UID) != MI_OK )
{
PcdHalt(); // 命令I(lǐng)C卡進(jìn)入休眠
return CRASH_ERR; // 防沖撞失敗,返回防沖撞錯(cuò)誤
}
// 命令I(lǐng)C卡進(jìn)入休眠
PcdHalt();
return MI_OK;
}
/**********************************************************/
/* 讀卡/寫卡 */
/**********************************************************/
u8 ReadWriteCard(u8 RW, u8 BlockNum, u8* buf)
{
// 尋卡,返回卡類型(2字節(jié))
if( PcdRequest(PICC_REQALL, CardType) != MI_OK ) // 尋天線區(qū)內(nèi)所有卡
{
if( PcdRequest(PICC_REQALL, CardType) != MI_OK ) // 尋卡失敗,再次尋卡
{
PcdHalt(); // 命令I(lǐng)C卡進(jìn)入休眠
return SEARCH_ERR; // 再次尋卡失敗,返回尋卡錯(cuò)誤
}
}
// 防沖撞,讀卡的序列號(hào)(4字節(jié))
if( PcdAnticoll(UID) != MI_OK )
{
PcdHalt(); // 命令I(lǐng)C卡進(jìn)入休眠
return CRASH_ERR; // 防沖撞失敗,返回防沖撞錯(cuò)誤
}
// 選卡
if( PcdSelect(UID) != MI_OK )
{
PcdHalt(); // 命令I(lǐng)C卡進(jìn)入休眠
return SELECT_ERR; // 選卡失敗,返回選卡錯(cuò)誤
}
// 校驗(yàn)卡密碼
if(PcdAuthState(PICC_AUTHENT1A, BlockNum, DefaultKey, UID) != MI_OK)
{
PcdHalt(); // 命令I(lǐng)C卡進(jìn)入休眠
return AUTHEN_ERR; // 校驗(yàn)卡密碼失敗,返回密碼錯(cuò)誤
}
if(RW==WRITE_CARD)
{
// 寫卡
if(PcdWrite(BlockNum, buf) != MI_OK)
{
PcdHalt(); // 命令I(lǐng)C卡進(jìn)入休眠
return WRITE_ERR; // 寫失敗,返回寫錯(cuò)誤
}
}
else if(RW==READ_CARD)
{
// 讀卡
if(PcdRead(BlockNum, buf) != MI_OK)
{
PcdHalt(); // 命令I(lǐng)C卡進(jìn)入休眠
return READ_ERR; // 讀失敗,返回寫錯(cuò)誤
}
}
// 命令I(lǐng)C卡進(jìn)入休眠
PcdHalt();
return MI_OK;
}
/**********************************************************/
/* 字符轉(zhuǎn)16進(jìn)制 */
/**********************************************************/
void CharToHex(char* dest, u8* src, u8 n)
{
u8 i;
u8 temp;
for(i=0; i<n; i++)
{
temp=(*src)>>4; // 換算高4位
if(temp<10)
*dest = 0x30 + temp; // 0~9
else if(temp<16)
*dest = 0x41 + temp - 10; // A~F
else
*dest = '&'; // 無(wú)效
dest++;
temp=(*src)&0x0F; // 換算低4位
if(temp<10)
*dest = 0x30 + temp; // 0~9
else if(temp<16)
*dest = 0x41 + temp - 10; // A~F
else
*dest = '&'; // 無(wú)效
dest++;
src++;
}
*dest='\0';
}
/**********************************************************/
/* USMART組件測(cè)試函數(shù) */
/**********************************************************/
// 設(shè)置待讀寫扇區(qū)號(hào)
void SetBlockNum(u8 NewVal)
{
BlockNum=NewVal;
}
// 設(shè)置待寫入內(nèi)容
void SetString(u8* str)
{
u8 i;
for(i=0; i<16; i++)
*(WriteBuf+i)=*(str+i);
}
int main(void)
{
u8 KeyMapValue;
int i;
char ptr[9];
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設(shè)置系統(tǒng)中斷優(yōu)先級(jí)分組2
delay_init(168); // 初始化延時(shí)函數(shù)
uart_init(115200); // 串口初始化
LED_Init(); // 初始化與LED連接的硬件接口
LCD_Init(); // 初始化LCD
KEY_Init(); // 按鍵初始化
Init_RC522(); // RC522初始化
tp_dev.init(); // 初始化觸摸屏
my_mem_init(SRAMIN); //初始化內(nèi)部?jī)?nèi)存池
my_mem_init(SRAMCCM); //初始化CCM內(nèi)存池
alientek_ncr_init(); //初始化NCR識(shí)別函數(shù)
Init_ID(); //初始化用戶表
My_RTC_Init(); //初始化RTC時(shí)鐘
POINT_COLOR=RED; //設(shè)置字體為紅色
LCD_ShowString(20,40,200,16,16, "welcome to use the system");
LCD_ShowString(20,70,200,16,16, "please put your card");
POINT_COLOR=MAGENTA;
LCD_ShowString(40,230,200,16,16, "Card S/N: 0x00000000");
……………………
…………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
門禁系統(tǒng).rar
(750.55 KB, 下載次數(shù): 132)
2018-1-24 02:02 上傳
點(diǎn)擊文件名下載附件
源碼
下載積分: 黑幣 -5
作者:
時(shí)光遺失
時(shí)間:
2018-4-25 19:02
樓主,你有原理圖可以提供嗎?
作者:
zxc108846549
時(shí)間:
2018-6-19 12:24
難受啊,關(guān)鍵代碼沒了
作者:
12345545
時(shí)間:
2019-1-16 15:52
測(cè)試成功,謝謝樓主
作者:
Arvin0011
時(shí)間:
2019-2-11 12:17
資料很詳細(xì),感謝分享
作者:
形象代言人o
時(shí)間:
2019-4-17 22:38
可以把原理圖和接線圖發(fā)一下嗎?
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
91麻豆精品国产
|
午夜性福利
|
久久久一区二区
|
a级片免费在线观看
|
av不卡在线播放
|
日本不卡一区
|
九九九色
|
午夜免费观看视频
|
成人黄色一级片
|
久草黄色
|
手机在线看片1024
|
99精品网
|
日韩城人免费
|
国产日本在线观看
|
亚洲欧美日韩国产
|
天天操天天操天天
|
99视频在线精品免费观看2
|
国产成人亚洲精品自产在线
|
欧美在线视频播放
|
国产黄在线
|
免费黄色av网站
|
中文字幕免费看
|
日日干av
|
免费的黄网站
|
久久久精品一区
|
老司机免费福利视频
|
91福利网站
|
免费日韩
|
国产激情久久久
|
黄色国产
|
日韩久久一区
|
欧美日韩一二区
|
99精品热
|
日本www视频
|
亚洲精品影院
|
狠狠五月
|
欧美综合一区二区
|
欧美一级黄色录像
|
国精产品99永久一区一区
|
欧美精品在线观看视频
|
国产h在线观看
|