標(biāo)題: 單片機(jī)將卡號(hào)存在AT24C02中,通過(guò)讀取,再進(jìn)行對(duì)比,求程序思路 [打印本頁(yè)]

作者: 739004020    時(shí)間: 2020-4-25 21:41
標(biāo)題: 單片機(jī)將卡號(hào)存在AT24C02中,通過(guò)讀取,再進(jìn)行對(duì)比,求程序思路
最近在做門禁程序,這個(gè)問(wèn)題一直解決不了,無(wú)奈……只有上論壇求助:1.通過(guò)RFID讀取將卡號(hào)存在AT24C02中,存的過(guò)程中有什么辦法不覆蓋之前存的卡號(hào),存到上一個(gè)卡號(hào)的后一個(gè)地址?
2.通過(guò)RFID讀取號(hào)卡,在讀取AT24C02中的卡號(hào)進(jìn)行對(duì)比,如果存在卡號(hào)則開(kāi)門成功,不存在則失?                                    
         不知道程序要怎么寫,請(qǐng)路過(guò)的大神給點(diǎn)思路,謝謝了。!




作者: hantu    時(shí)間: 2020-4-26 01:28
最開(kāi)始的8個(gè)字節(jié)可以用來(lái)保存標(biāo)記,比如讀取頭兩個(gè)字節(jié)如果是0x86、0x68(什么值由你自己定)的話說(shuō)明曾將數(shù)據(jù)保存過(guò),否則就是從未保存過(guò),接下來(lái)第3個(gè)字節(jié)就可以保存你已經(jīng)寫的卡號(hào)的數(shù)量,就可以根據(jù)它來(lái)索引各個(gè)卡號(hào)了,沒(méi)叫你全部卡號(hào)保存在同一個(gè)位置相互覆蓋呀。
作者: sldx    時(shí)間: 2020-4-26 07:54
定義一個(gè)全局變量記錄地址,寫數(shù)據(jù)先加1在寫;從24c讀取一個(gè)卡號(hào),與當(dāng)前卡號(hào)按位依次核對(duì),一個(gè)變量記錄核對(duì)一致的個(gè)數(shù),如果是卡號(hào)位數(shù),就是一致了
作者: 西點(diǎn)鐘靈毓秀    時(shí)間: 2020-4-26 08:49
可以參考書本的制定方法。 有目錄,有頁(yè)碼。
作者: f556    時(shí)間: 2020-4-26 10:07
24C02已是很靈活方便的了,樓上說(shuō)的方法都可行。
方法1、24C02首地址記錄一個(gè)最后寫卡號(hào)的地址,往前一個(gè)地址就是上次的,每次寫都往后添加卡號(hào)。
方法2、每次寫完卡號(hào)寫一串間隔標(biāo)記,自己定義,但要保證不會(huì)與卡號(hào)重號(hào),取2、4...字節(jié)。尋址從最后一個(gè)非空開(kāi)始。我寫flash用過(guò)這招。
作者: 739004020    時(shí)間: 2020-4-26 10:25
sldx 發(fā)表于 2020-4-26 07:54
定義一個(gè)全局變量記錄地址,寫數(shù)據(jù)先加1在寫;從24c讀取一個(gè)卡號(hào),與當(dāng)前卡號(hào)按位依次核對(duì),一個(gè)變量記錄核 ...

大神,你好,你說(shuō)的方法好像有點(diǎn)理解,但是程序不知道怎么寫,可以給個(gè)例程參考一下嗎,謝謝了!
作者: 739004020    時(shí)間: 2020-4-26 10:29
hantu 發(fā)表于 2020-4-26 01:28
最開(kāi)始的8個(gè)字節(jié)可以用來(lái)保存標(biāo)記,比如讀取頭兩個(gè)字節(jié)如果是0x86、0x68(什么值由你自己定)的話說(shuō)明曾將數(shù) ...

大神,你好,你說(shuō)的標(biāo)記法尋址好像有點(diǎn)理解,但是程序不知道怎么寫,可以給個(gè)程序案例參考一下嗎,謝謝了!
作者: 739004020    時(shí)間: 2020-4-26 10:48
f556 發(fā)表于 2020-4-26 10:07
24C02已是很靈活方便的了,樓上說(shuō)的方法都可行。
方法1、24C02首地址記錄一個(gè)最后寫卡號(hào)的地址,往前一個(gè) ...

我是讀出卡4位序列號(hào)SN保存的,你說(shuō)的具體程序不會(huì)寫呢,可以發(fā)個(gè)案例給我嗎?
作者: 739004020    時(shí)間: 2020-4-26 11:59
f556 發(fā)表于 2020-4-26 10:07
24C02已是很靈活方便的了,樓上說(shuō)的方法都可行。
方法1、24C02首地址記錄一個(gè)最后寫卡號(hào)的地址,往前一個(gè) ...

大神你好,你說(shuō)的這2種標(biāo)記法有點(diǎn)理解,能否給個(gè)例程參考一下思路,謝謝了
作者: 739004020    時(shí)間: 2020-4-26 11:59
f556 發(fā)表于 2020-4-26 10:07
24C02已是很靈活方便的了,樓上說(shuō)的方法都可行。
方法1、24C02首地址記錄一個(gè)最后寫卡號(hào)的地址,往前一個(gè) ...

大神你好,你說(shuō)的這2種標(biāo)記法有點(diǎn)理解,能否給個(gè)例程參考一下思路,謝謝了
作者: csmyldl    時(shí)間: 2020-4-26 12:05
24C02的第1個(gè)字節(jié)(地址00H)記錄存放卡號(hào)的條數(shù),如一張卡號(hào)需存6個(gè)字節(jié),第1個(gè)字節(jié)值依次為1至N,
存放卡號(hào)的首地址依次為6*N+1
作者: 739004020    時(shí)間: 2020-4-26 12:53
西點(diǎn)鐘靈毓秀 發(fā)表于 2020-4-26 08:49
可以參考書本的制定方法。 有目錄,有頁(yè)碼。

是什么書名呀?學(xué)習(xí)一下
作者: f556    時(shí)間: 2020-4-26 20:50
739004020 發(fā)表于 2020-4-26 11:59
大神你好,你說(shuō)的這2種標(biāo)記法有點(diǎn)理解,能否給個(gè)例程參考一下思路,謝謝了

這沒(méi)有什么難度,首先要能寫入、讀出,這個(gè)你會(huì)了,而且這是調(diào)試的先決條件,也是最麻煩的,這個(gè)搞定,寫什么,寫在哪自己自由發(fā)揮了。
24C02 的我寫過(guò)基本的寫、讀,沒(méi)你需的程序,真正用和復(fù)雜的程序是STC片內(nèi)Flash,也是多年前的事,F(xiàn)在基本不玩51,是MSP430
作者: 739004020    時(shí)間: 2020-4-27 01:18
f556 發(fā)表于 2020-4-26 10:07
24C02已是很靈活方便的了,樓上說(shuō)的方法都可行。
方法1、24C02首地址記錄一個(gè)最后寫卡號(hào)的地址,往前一個(gè) ...

謝謝你的指點(diǎn),我根據(jù)你的方法二已經(jīng)寫出程序調(diào)試OK了,現(xiàn)在還差刪除當(dāng)卡號(hào)的程序沒(méi)寫了
作者: 西點(diǎn)鐘靈毓秀    時(shí)間: 2020-4-27 08:44
739004020 發(fā)表于 2020-4-26 12:53
是什么書名呀?學(xué)習(xí)一下

是書本的方法。有目錄,有頁(yè)碼。依據(jù)目錄查找內(nèi)容。
24C02頁(yè)可以這樣做搞得。
作者: 739004020    時(shí)間: 2020-4-27 10:29
f556 發(fā)表于 2020-4-26 20:50
這沒(méi)有什么難度,首先要能寫入、讀出,這個(gè)你會(huì)了,而且這是調(diào)試的先決條件,也是最麻煩的,這個(gè)搞定,寫 ...

大神,要?jiǎng)h除當(dāng)前卡號(hào)用什么方法呀,試了一個(gè)大半個(gè)上午沒(méi)調(diào)試出來(lái)
作者: 739004020    時(shí)間: 2020-4-27 10:50
f556 發(fā)表于 2020-4-26 10:07
24C02已是很靈活方便的了,樓上說(shuō)的方法都可行。
方法1、24C02首地址記錄一個(gè)最后寫卡號(hào)的地址,往前一個(gè) ...

刪除卡號(hào)的時(shí)候存放在at24c02的地址找不到,不知道刪除到哪里去了,刪除了還是能讀卡
作者: =SuperPeNG    時(shí)間: 2022-9-21 16:44
哥,可以給個(gè)參考嗎,最近也開(kāi)始做這個(gè)了




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1