随笔分类 -  8051单片机

摘要:NEC协议载波:38khz其逻辑1与逻辑0的表示如图所示:逻辑1为2.25ms,脉冲时间560us;逻辑0为1.12ms,脉冲时间560us。所以我们根据脉冲时间长短来解码。推荐载波占空比为1/3至1/4。NEC协议格式:首次发送的是9ms的高电平脉冲,其后是4.5ms的低电平,接下来就是8bit的地址码(从低有效位开始发),而后是8bit的地址码的反码(主要是用于校验是否出错)。然后是8bit 的命令码(也是从低有效位开始发),而后也是8bit 的命令码的反码。 以上是一个正常的序列,但可能存在一种情况:你一直按着1个键,这样的话发送的是以110ms为周期的重复码,如下图:就是说,发了一次. 阅读全文
posted @ 2013-04-12 22:05 灰色的鱼 阅读(51196) 评论(3) 推荐(3)
摘要:今天,又花了差不多一天时间,从手册看起,到写完代码,最后仿真。期间出现了一个细小的差错,折腾了约1个钟头才解决掉(所以,最怕底层细小之处出现错误)。DS1302是达拉斯公司出品的一款实时时钟芯片。具体且详细的资料介绍在其芯片手册上面都有写着。说起来自己读DS1302芯片手册,也花了不少精力,主要是对一个问题一直没理解。下图是DS1302时钟寄存器的结构。(注意左边READ与WRITE两列) 下图是DS1302的命令字节(就是跟它通信的格式) 其中A4到A0可以代表寄存器的地址。我想,5bit表示的地址,翻遍了手册,在上面也没有说明5bit的地址是怎么表示的(手册上只有... 阅读全文
posted @ 2013-02-02 15:14 灰色的鱼 阅读(8357) 评论(0) 推荐(0)
摘要:在单片机与器件的有线通信中,并行最简单了,比方说1602液晶屏。但是代价就是连线多,占用单片机较多的IO口。一般的话,都是使用串行通信方式,其中有UART、SPI、IIC,还有一个我一直以来都比较头疼的达拉斯公司(现被美信收购)的单总线。单总线,故名思意,就是用1条连线进行通信,比起两条线的IIC(时钟线、数据线),单总线在操作上比较困难,对于时序要求比较高。没有了时钟线的帮助,它依靠电平持续时间判断信号,操作难度可想而知。 在这之前,个人曾经购买过两个价格不菲(主要是价格贵,传感器又是小得不起眼)的DS18B20。这两块都在我手上经过了相同的经历:起初用用还行,勉强能够用单片机驱动,可以.. 阅读全文
posted @ 2013-02-01 15:44 灰色的鱼 阅读(5054) 评论(0) 推荐(0)
摘要:从今天早上开始看AT24C02的手册,凭着有些撮的英语水平,24页的资料,愣是啃了半天,上午的时光就过去了。 AT24C02是一款EEPROM芯片,IIC接口,就是两条线:SDA与SCL;不过对于单单操纵这款芯片而言,没有设计到IIC总线协议之中所谓的仲裁。因而,大体看下了芯片手册,心中就知道大概怎么操作了。 另外,24C02的2K是指2Kbit。一般的话,存储器都用字节来衡量,所以其实24c02只有256byte。是不是比较小?这256byte又分成了32pages,每页有8byte。 现在来看看该如何编写代码,首先得知道起始与停止条件 所谓起始条件:在SCL高... 阅读全文
posted @ 2013-01-31 18:47 灰色的鱼 阅读(13793) 评论(1) 推荐(1)
摘要:一、存储器结构 51单片机存储器采用的是哈佛结构,即是程序存储器空间和数据存储器空间分开,程序存储器和数据存储器各自有自己的寻址方式、寻址空间和控制系统。51存储器可以分为程序存储器ROM:用于存放程序和表格之类的固定常识。C51编程中用code关键词声明。内部数据存储器RAM:51子系列有128字节RAM,52子系列有256字节RAM特殊功能寄存器SFR:80H-FFH字节地址的RAM位地址空间:片内RAM0x20-0x2f空间,本空间允许按位或者字节寻址。可用bdata进行声明。外部数据寄存器RAM:片外的RAM,最大寻址空间2^16即是64K大RAM。Pdata用于声明片外第一页R... 阅读全文
posted @ 2013-01-30 17:20 灰色的鱼 阅读(1179) 评论(0) 推荐(0)