89c5x & 12C5A60S2
文章平均质量分 73
with_LD
这个作者很懒,什么都没留下…
展开
-
51单片机的中断 笔记
code 如果不适用code 则定义的数据保存在RAM中资源较少的单片机会空间不足。 使用code关键字,则数据放在ROM中 ??定义方式 unsigned char code table[] = { , , , }; 中断程序: 寄存器 IE(中断允许寄存器) IP(中断优先寄存器) TCON SCON 具体的配置什么书上都有定时器中断; 工作方式寄存器(TM原创 2013-09-06 15:21:21 · 558 阅读 · 0 评论 -
长字节数据传给BIT型数据
最近学习SPI协议,会遇到将1byte的数据分成8个bit在8个时钟周期依次发送出去的情况,对长数据放入短变量的存储方式进行了记录。使用的MCU为STC12C5A60S2。因为显示条件有限,使用了P0口控制LED灯的方式。当控制引脚输出0时,发光二极管导通,反之,截止。位变量用P0 ^ 2(P0口的第3个引脚)作为接受端,定义为:sbit REC_BIT = P0 ^2;测试:原创 2013-09-24 18:24:49 · 968 阅读 · 0 评论 -
SDHC卡写单块和读单块
初始化完成以后,SD卡进入读写就绪状态,可以通过cmd17,cmd24进行单块的读写操作,块的默认大小为512字节标准SD卡我们可以认为设置块的字节大小,但是最大不能超过512byte。但是高容量的SD卡(SDHC)块的大小只能为512字节,这个设置本身是不用调整的,如过有兴趣可以参考一下CMD16这个命令。写数据:CMD24:0x58,0xHH,0xHH,0xHH,0xHH,0x原创 2013-10-28 14:01:11 · 2440 阅读 · 1 评论 -
SD卡的命令和返回值
SD卡有很多种类型的命令,有初始化的,特殊功能开启关闭的,寄存器查看的,读和写的,官方给出的分类更清楚一些,不过在一般使用中,我们并不需要了解的多么复杂,只要掌握了最基本的初始化命令,和读写命令,SD卡的操作就能够实现了。每一个命令的长度都是固定的6个字节,前1个字节的值=命令号+0x40;中间4个字节为参数,不同的命令参数格式都不相同,但参数最多为4个字节;最后1个字节是CRC校验码和1位固原创 2013-10-27 21:36:23 · 8779 阅读 · 2 评论 -
基于STC12C5A60S2的SDHC卡的初始化和读写过程
最近学习一下SD卡的驱动,网上程序的版本很多,使用的MCU和SD卡的型号千奇百怪,学起来反而没有方向,感觉上乱七八糟的,直到现在,才直到我们平常说的SD卡实际上有很多中类别。0到2G的SD卡,最普通的卡;2G到32G的SDHC卡,也就是现在最常用的大容量SD卡;还有我没有见过的SDXC卡,容量好像在32G以上。同时还有手机上的TF卡,实际上也是SD卡 只不过做工不同而已,MMC卡。学习的时候走了很原创 2013-10-27 20:16:43 · 3522 阅读 · 0 评论 -
1602液晶显示屏
C51复位后P0~P3口的电平为高,为输入,也就是读的状态,拉高电平同时能够保护管脚。判忙检测的函数sbit BF = P0 ^7; //硬件电路中 P0口的第7位是忙标志位bitbusy_check() //函数功能:设定读状态功能,然后从芯片读取一个数据判断芯片是否工作忙{ bitbusy_flag =0; //定义一个标志位原创 2013-09-06 15:21:28 · 1304 阅读 · 0 评论 -
C51中的扩展定义类型
sbit与bdata sbit 是定义一个位变量,用来定义可位寻址的寄存器。bdata 是布尔变量的存储方式,表示位变量存储在位于单片机内部RAM字节地址0x20~0x2F的16个字节中,每个字节8位,共计16x8=128个可寻址位,位地址从0x00~0x7F。bdata所指只包含这个区域。如:char bdata x 那么x这个变量是储存在可位寻址区域,可以进行字节或位访问sbit 与原创 2013-09-06 15:21:26 · 1310 阅读 · 0 评论 -
中断寄存器
外部引脚P32 = INT0P33 = INT1P34 = T0 P35 = T1TMOD 中GATE 门空位 GATE = 0 时 计时器中断(TF0/TF1)不需要P34/35 引脚的同时作用;GATE = 1时 TFx 和P3x 同时有效 才能触发中断程序原创 2013-09-06 15:21:24 · 749 阅读 · 1 评论 -
I2C总线;at24c02
I2C是串行总线的一种只用两根双向信号线就可以进行数据传送,在任何器件上只要支持I2C协议,就可以按照相同的方法进行编程。以AT24C02为学习芯片进行编程。AT24CO2芯片的引脚说明:SERIAL CLOCK (SCL): The SCL input is used to positive edgeclock data into each EEPROM device and neg原创 2013-09-06 15:21:32 · 1367 阅读 · 1 评论 -
AT24C256
at24c256与at24c02的区别在于以2个字节来控制地址 其中首字节最高位忽略,其余7位和下一字节的高2位 构成9位的页地址,共512页,低字节的剩余6位为页内地址,共64BYTE。 另外要注意的是整片写数据时在翻页时需要给一定的延时,不然会造成翻页失败,导致下一页写操作失败。读取数据时可不用延时。最后一点,读取数据的时候如果对速度要求比较高,可以省略掉延时的部分,可能不太妥当,但是IIC的原创 2013-12-20 21:23:12 · 5520 阅读 · 1 评论