一看就懂——DIY单片机开发板教程
字节情况就有变了。AT24C04 上的A0 这时就废弃不用了,只用A1 和A2,这样就只能接(00-11)四个AT24C04 了,同样AT24C08容量为1K 字节分为4 页了,于是页地址就是器件识别控制字节的1-2 位,器件上的A0,A1 废弃不用,只用A2,就只能接两个AT24C08 了。AT24C16 容量为2K字节,分为8 页。页地址是器件识别控制字节的1-3 位,全用了。器件上的A0,A1,A2,就无效了,只能接一只AT24C16。
我这么说能明白吗?
对于大容量AT24C32-1024 的存储器。器件的存储寻址地址为两个字节,所以它的一页为65536(64K)。AT24C32-64 的容量为4K 字节-8K 字节,在一页范围,可以接8 只器件。从AT24C128-1024 的器件代号也由1010 改为10100,多了一位,识别控制字节的器件物理地址就少了一位,变为1-2 位,相应的在器件管脚上A2 也废弃空着了,因此最多只能接四只器件。AT24C128-512 只有两位器件地址所以最多只能接四只器件。而AT24C1024 的容量为128K,分为两页,识别控制字节的的1 位为页地址,器件的A0 脚废弃不用,只用了A1。因此只能接2 只器件。
下面我们进行具体的制做先准备好器件如下图,我用的是AT24C16
原先的板子如下图
焊好后。
好!下面我们进行调试:插上主电源。但AT24C16 的电源短路帽不接,在短路帽两个针之间接上万用表的电流档检查是否有短路和静态电流的大小。实测静态电流几乎为零,改变两个数据线的电平时,电流会有所上升,说明电路基本正常。
现在我们接上电源短路帽把AT24C16 电源接好。将两个数据线用跳线接到P1.6和P1.7 口上(接到哪个口上可以自己选的)。注意分清哪个是SDA 哪个是SCL。别弄错了。
把LCD12864 装上,后面我们就要进行软件的调试了。
接下来,我们进行软件件部分的调试。
对代码进行编译成HEX 文件写入S51 后运行:
重新编译后写入S51 芯片运行:
第一幅:
第二幅:
OK,成功!这次"iic test"这行字符是从AT24C16 内读取的。你可以试着拔掉那两根SDA,SCL 的数据线,再按下复位键重新运行,你会发现那行"iic test"没有显示了。说明没有读取到数据。再装上数据线,重按复位键运行,又正常了。后面就可以将存储在S51 代码段的字模,图形数据等,都写到AT24C16 里了。
在网上找到一个写的不错的读写AT24CXXX 的通用程序函数,也很好用,程序见下面:
但实际使用中发现它有个严重的错误。就是没有考虑到不同的I2C 器件在写页操作时,是有一页数据限制的,AT24C01 是8 个字节,AT24C02-16 是16 个字节,AT24C33-64 是32 个字节。AT24C128-256 是64 个字节。AT24C512 是128 个字节。AT24C1024 是256 个字节。
这是器件说明书上的资料,我手上只有AT24C02、AT24C16 和AT24C256,实际使用了一下,AT24C02 的页限制是8 个字节。另两个是和说明书上一致的。当我写的数据量超出页限制时,地址指针就会回到起始点覆盖原来的数据。例如我以页方式写10 个字节的数据到AT24C02 时。前8 个字节的数据正常写入,第9、第10 个数据就回头覆盖掉了第一、第二个数据。
你如果把265 个字节的数据往AT24C02 进行写页操作,它也不报错,就一个劲地反复覆盖你8 个字节的空间,再比如你往AT24C256 里输入一个字节的地址,或往AT24C02 里输入两个字节的地址,它也不报错,就这么胡乱地把地址当数据或把数据当成地址往里一阵乱写。当你读取数据时才发现里面混乱不堪。这使得上面那个读写AT24CXXX 器件的程序怎么运行都不会出错。我觉得这是AT24CXX器件设计上比较弱智的地方。
所以上面的程序得修改
12.板子上的最后一个部件--RS232串口
在我的板子上其它的部分都已完成了,现在就剩下RS232 串口了。串口对于单片机很重要,有了它就可以和PC 通信了,可以用PC 来控制你的单片机,也可以将你单片机上采集的数据传到PC 上。
留的位置好像有点挤。得把上面的复位钮挪一挪
先得搭建个临时电路试一试,MAX232 结构图和电路图如下:
电路图:
搭建的实际元件图如下:
检查无短路现象后接上电源。
注意,我已将板子上的晶振用短路帽跳接至11.0592MHz,这样才能将波特率设置为19200。这是在12MHz 的状态:
下一篇:Optosafe将把Quanergy公司的LiDAR传感器集成进入产品——Opto-Q-Guard快速部署视频监视塔
- 单片机在电源设计中的应用(06-07)
- 基于单片机的锅炉液位控制装置设计(07-22)
- 基于SPWM的交流稳压电源设计方案(09-15)
- 基于单片机的电池保护电路系统设计(02-24)
- 晶闸管三相全控桥式整流电路的直流电源设计(02-08)
- 智能充电设备控制系统的硬件设计方案(02-14)