标题: 单片机将卡号存在AT24C02中,通过读取,再进行对比,求程序思路 [打印本页]

作者: 739004020    时间: 2020-4-25 21:41
标题: 单片机将卡号存在AT24C02中,通过读取,再进行对比,求程序思路
最近在做门禁程序,这个问题一直解决不了,无奈……只有上论坛求助:1.通过RFID读取将卡号存在AT24C02中,存的过程中有什么办法不覆盖之前存的卡号,存到上一个卡号的后一个地址?
2.通过RFID读取号卡,在读取AT24C02中的卡号进行对比,如果存在卡号则开门成功,不存在则失败?                                    
         不知道程序要怎么写,请路过的大神给点思路,谢谢了!!!




作者: hantu    时间: 2020-4-26 01:28
最开始的8个字节可以用来保存标记,比如读取头两个字节如果是0x86、0x68(什么值由你自己定)的话说明曾将数据保存过,否则就是从未保存过,接下来第3个字节就可以保存你已经写的卡号的数量,就可以根据它来索引各个卡号了,没叫你全部卡号保存在同一个位置相互覆盖呀。
作者: sldx    时间: 2020-4-26 07:54
定义一个全局变量记录地址,写数据先加1在写;从24c读取一个卡号,与当前卡号按位依次核对,一个变量记录核对一致的个数,如果是卡号位数,就是一致了
作者: 西点钟灵毓秀    时间: 2020-4-26 08:49
可以参考书本的制定方法。 有目录,有页码。
作者: f556    时间: 2020-4-26 10:07
24C02已是很灵活方便的了,楼上说的方法都可行。
方法1、24C02首地址记录一个最后写卡号的地址,往前一个地址就是上次的,每次写都往后添加卡号。
方法2、每次写完卡号写一串间隔标记,自己定义,但要保证不会与卡号重号,取2、4...字节。寻址从最后一个非空开始。我写flash用过这招。
作者: 739004020    时间: 2020-4-26 10:25
sldx 发表于 2020-4-26 07:54
定义一个全局变量记录地址,写数据先加1在写;从24c读取一个卡号,与当前卡号按位依次核对,一个变量记录核 ...

大神,你好,你说的方法好像有点理解,但是程序不知道怎么写,可以给个例程参考一下吗,谢谢了!
作者: 739004020    时间: 2020-4-26 10:29
hantu 发表于 2020-4-26 01:28
最开始的8个字节可以用来保存标记,比如读取头两个字节如果是0x86、0x68(什么值由你自己定)的话说明曾将数 ...

大神,你好,你说的标记法寻址好像有点理解,但是程序不知道怎么写,可以给个程序案例参考一下吗,谢谢了!
作者: 739004020    时间: 2020-4-26 10:48
f556 发表于 2020-4-26 10:07
24C02已是很灵活方便的了,楼上说的方法都可行。
方法1、24C02首地址记录一个最后写卡号的地址,往前一个 ...

我是读出卡4位序列号SN保存的,你说的具体程序不会写呢,可以发个案例给我吗?
作者: 739004020    时间: 2020-4-26 11:59
f556 发表于 2020-4-26 10:07
24C02已是很灵活方便的了,楼上说的方法都可行。
方法1、24C02首地址记录一个最后写卡号的地址,往前一个 ...

大神你好,你说的这2种标记法有点理解,能否给个例程参考一下思路,谢谢了
作者: 739004020    时间: 2020-4-26 11:59
f556 发表于 2020-4-26 10:07
24C02已是很灵活方便的了,楼上说的方法都可行。
方法1、24C02首地址记录一个最后写卡号的地址,往前一个 ...

大神你好,你说的这2种标记法有点理解,能否给个例程参考一下思路,谢谢了
作者: csmyldl    时间: 2020-4-26 12:05
24C02的第1个字节(地址00H)记录存放卡号的条数,如一张卡号需存6个字节,第1个字节值依次为1至N,
存放卡号的首地址依次为6*N+1
作者: 739004020    时间: 2020-4-26 12:53
西点钟灵毓秀 发表于 2020-4-26 08:49
可以参考书本的制定方法。 有目录,有页码。

是什么书名呀?学习一下
作者: f556    时间: 2020-4-26 20:50
739004020 发表于 2020-4-26 11:59
大神你好,你说的这2种标记法有点理解,能否给个例程参考一下思路,谢谢了

这没有什么难度,首先要能写入、读出,这个你会了,而且这是调试的先决条件,也是最麻烦的,这个搞定,写什么,写在哪自己自由发挥了。
24C02 的我写过基本的写、读,没你需的程序,真正用和复杂的程序是STC片内Flash,也是多年前的事。现在基本不玩51,是MSP430
作者: 739004020    时间: 2020-4-27 01:18
f556 发表于 2020-4-26 10:07
24C02已是很灵活方便的了,楼上说的方法都可行。
方法1、24C02首地址记录一个最后写卡号的地址,往前一个 ...

谢谢你的指点,我根据你的方法二已经写出程序调试OK了,现在还差删除当卡号的程序没写了
作者: 西点钟灵毓秀    时间: 2020-4-27 08:44
739004020 发表于 2020-4-26 12:53
是什么书名呀?学习一下

是书本的方法。有目录,有页码。依据目录查找内容。
24C02页可以这样做搞得。
作者: 739004020    时间: 2020-4-27 10:29
f556 发表于 2020-4-26 20:50
这没有什么难度,首先要能写入、读出,这个你会了,而且这是调试的先决条件,也是最麻烦的,这个搞定,写 ...

大神,要删除当前卡号用什么方法呀,试了一个大半个上午没调试出来
作者: 739004020    时间: 2020-4-27 10:50
f556 发表于 2020-4-26 10:07
24C02已是很灵活方便的了,楼上说的方法都可行。
方法1、24C02首地址记录一个最后写卡号的地址,往前一个 ...

删除卡号的时候存放在at24c02的地址找不到,不知道删除到哪里去了,删除了还是能读卡
作者: =SuperPeNG    时间: 2022-9-21 16:44
哥,可以给个参考吗,最近也开始做这个了




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1