1、基于51单片机的红外密码锁(设计及测试报告)目录:第一章 绪论31.1课题背景及目的31.2 国内外研究现状41.3 课题研究方法4第二章 红外遥控系统介绍52.1 红外通讯原理52.2.2发射系统72.3红外编码格式10第3章 硬件电路设计123.1整系统框图123.2红外发送/接收123.2.1红外遥控器123.2.2红外接收头143.3单片机AT89C51简介163.3.1主要特性163.3.2 管脚说明173.3.3 震荡特性183.3.4 芯片擦除183.4 44矩阵键盘193.5复位电路193.6 振荡电路193.7 1602液晶显示203.8 发光二极管LED243.9 继电器2
2、43.10 24C02253.11元器件列表32第四章系统的软件设计335.1 红外发射编码部分345.2 红外接收解码部分341 单片机解码过程342.红外解码程序代码345.3 单片机接收终端部分391. 密码的输入与确认392. 密码的修改393.矩阵键盘的扫描394.IIC395.1602液晶显示406.终端程序部分40第五章 设计调试与方案选择545.1编码的方案选择545.2解码的方案选择555.3红外接收部分调试5554总结56参考文献57第一章 绪论 1.1 课题背景及目的在日常的生活和工作中, 住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法
3、来解决。若使用传统的机械式钥匙开锁,人们常需携带多把钥匙, 使用极不方便, 且钥匙丢失后安全性即大打折扣。随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。密码锁具有安全性高、成本低、功耗低、易操作等优点。在安全技术防范领域,具有防盗报警功能的电子密码锁逐渐代替传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在技术上还是在性能上都大大提高一步。随着大规模集成电路技术的发展,特别是单片机的问世,出现了带微处理器的智能密码锁,它除具有电子密码锁的功能外,还引入了智能化管理、专家
4、分析系统等功能,从而使密码锁具有很高的安全性、可靠性,应用日益广泛。随着人们对安全的重视和科技的发展,许多电子智能锁(指纹识别、IC卡辨认)已在国内外相继面世。但是这些产品的特点是针对特定的指纹和有效卡,只能适用于保密要求的箱、柜、门等。而且指纹识识别器若在公共场所使用存在容易机械损坏,IC卡还存在容易丢失、损坏等特点。加上其成本较高,一定程度上限制了这类产品的普及和推广。鉴于目前的技术水平与市场的接收程度,电子密码锁是这类电子防盗产品的主流。但是接触式密码锁系统都相应的存在着不同的缺点。例如:接触式密码锁系统成本较低,体积小,卡片本身无须电源,但使用不太方便,而且有接触磨损。相比之下,红外遥
5、控密码锁系统的成本与接触式密码锁系统相当,而且可以进行近距离遥控,使用十分方便。而且它已经与 PC 机的数据库相结合,可以组成一套酒店房间的门禁管理系统。 由于红外遥控具有许多优点, 例如红外线发射装置采用红外发光二极管遥控发射器易于小型化且价格低廉; 采用数字信号编码和二次调制方式,不仅可以实现多路信息的控制,增加遥控功能,提高信号传输的抗干扰性,减少误动作,而且功率消耗低;红外线不会向室外泄露,不会产生信号串扰;反应速度快、传输效率高、工作稳定可靠等。工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅完全可靠而且能有效地隔离电气干扰。所以红外线遥控是目前使用最广泛的一种通
6、信和遥控手段。 在本设计中,红外遥控密码锁和 PC 机、数据库相结合,能够实现适时的、强大的管理,使得整个红外遥控系统得到更好的完善。 1.2 国内外研究现状目前大部分的锁采用的都是机械式的,其最大的缺点是利用简单工具就能很容易地把锁打开。针对这种情况,我们设计了一种红外遥控密码锁,而一般设备都采用专用的遥控编码及解码集成电路,其制作简单、容易,但由于特定功能的限制,只适用于专用的电器产品,其应用范围受到限制。而设计的红外遥控密码锁系统能提高门禁系统的可靠性和安全性,适应市场需要。该系统具有普通电子密码锁功能的同时,还增加了遥控功能。该系统具有较强的实际应用价值,所涉及的技术包括:红外载波数据
7、传输技术、单片机控制技术、红外遥控系统编码及译码技术、电路设计与演示板制作技术等。1.3 课题研究方法主要的设计实施过程:首先,选用ATMEL公司的单片机AT89C51,以及选购其他电子元器件。第二步,使用PROTEL99完成原理图,并设计PCB图完成人工布线(后因PCB板损坏决定采用万能板焊接的方法)。第三步,使用Keil uVision3软件编写单片机的C语言程序、仿真、软件调试。第四部,使用PROTEUS软件进行模拟软、硬件调试。最后,联合软、硬件调试电路板,完成本次设计。第二章 红外遥控系统介绍2.1 红外通讯原理红外遥控是单工的红外通信方式,本设计的红外遥控采用以通信方式为基础的红外
8、遥控,而且本设计也使用了红外通信技术,故着重分析红外通信的基本原理。红外通信是利用红外技术实现两点间的近距离保密通信和信息转发。它一般由红外发射和接收系统两部分组成。发射系统对一个红外辐射源进行调制后发射红外信号,而接收系统用光学装置和红外探测器进行接收,就构成红外通信系统。红外线是波长在 750nm至1mm之间的电磁波,它的频率高于微波而低于可见光,是一种人的眼睛看不到的光线。红外通信一般采用红外波段内的近红外线,波长在 0.75um至 25um之间。红外数据协会(IrDA)成立后,为了保证不同厂商的红外产品能够获得最佳的通信效果,红外通信协议将红外数据通信所采用的光波波长的范围限定在 85
9、0 至 900nm之内。红外通信的基本原理是发送端将基带二进制信号调制为一系列的脉冲串信号(载波信号) ,通过红外发射管发射红外信号。常用的有通过脉冲宽度来实现信号调制的脉宽调制(PWM)和通过脉冲串之间的时间间隔来实现信号调制的脉时调制(PPM)两种方法。脉时调制(PPM)是红外数据协会(IrDA)和国际电子电工委员会(IEEE)都推荐的调制方式,本设计采用PPM调制方法,即用两个脉冲串之间的时间间隔来表示二进制信息,数据比特的传送仿照不带奇偶校验的RS232 通信,首先产生一个同步头,然后接着 8 位数据比特。如图 2.1所示。图 2.1 PPM 调制波形图普通的红外遥控采用面向指令的帧结
10、构,数据帧由同步码,地址码和指令码组成,指令码长度多为 816 个比特,传送多字节遥控协议时效率偏低,而增加指令码的长度不利于接收器同步,为此本设计选用一种面向字节的帧结构,采用类似于异步串行通信的帧结构,每帧由一个起始位(二进制数 0) 、8 个数据位和 2 个停止位(二进制数 1)构成,如图 2.2 所示。每帧传送 1 个字节的数据,帧与帧间隔大于 2ms,帧结构不含地址信息,寻址问题由高层协议解决8。图 2.2 数据帧结构示意图由于红外光存在反射,在全双工的方式下发送的信号也可能会被本身接收,因此,红外通信应采用异步半双工方式,即通信的某一方发送和接收是交替进行的。2.2红外遥控系统结构
11、红外遥控系统主要分为调制、发射和接收三部分,如图2.3 所示:图2.32.2.1调制红外遥控发射数据时采用调制的方式,即把数据和一定频率的载波进行“与”操作,这样可以提高发射效率和降低电源功耗。调制载波频率一般在30khz到60khz之间,大多数使用的是38kHz,占空比1/3的方波,如图2.4所示,这是由发射端所使用的455kHz晶振决定的。在发射端要对晶振进行整数分频,分频系数一般取12,所以455kHz1237.9 kHz38kHz。图2.4 载波波形2.2.2发射系统目前有很多种芯片可以实现红外发射,可以根据选择发出不同种类的编码。由于发射系统一般用电池供电,这就要求芯片的功耗要很低,
12、芯片大多都设计成可以处于休眠状态,当有按键按下时才工作,这样可以降低功耗芯片所用的晶振应该有足够的耐物理撞击能力,不能选用普通的石英晶体,一般是选用陶瓷共鸣器,陶瓷共鸣器准确性没有石英晶体高,但通常一点误差可以忽略不计。红外线通过红外发光二极管(LED)发射出去,红外发光二极管内部材料和普通发光二极管不同,在其两端施加一定电压时,它发出的是红外线而不是可见光。图2.5A 简单驱动电路图2.5B 射击输出驱动电路如图2.5A和图2.5B是LED的驱动电路,图3a是最简单电路, 选用元件时要注意三极管的开关速度要快,还要考虑到LED的正向电流和反向漏电流,一般流过LED的最大正向电流为100mA,
13、电流越大,其发射的波形强度越大。图2.5A电路有一点缺陷,当电池电压下降时,流过LED的电流会降低,发射波形强度降低,遥控距离就会变小。图2.5B所示的射极输出电路可以解决这个问题,两个二极管把三级管基极电压钳位在1.2V左右,因此三级管发射极电压固定在0.6V左右,发射极电流IE基本不变,根据IEIC,所以流过LED的电流也基本不变,这样保证了当电池电压降低时还可以保证一定的遥控距离。2.2.3一体化红外接收头红外接收电路通常被厂家集成在一个元件中,成为一体化红外接收头。内部电路包括红外监测二极管,放大器,限副器,带通滤波器,积分电路,比较器等。红外监测二极管监测到红外信号,然后把信号送到放
14、大器和限幅器,限幅器把脉冲幅度控制在一定的水平,而不论红外发射器和接收器的距离远近。交流信号进入带通滤波器,带通滤波器可以通过30khz到60khz的负载波,通过解调电路和积分电路进入比较器,比较器输出高低电平,还原出发射端的信号波形。注意输出的高低电平和发射端是反相的,这样的目的是为了提高接收的灵敏度。一体化红外接收头,如图2.6所示:图2.6 红外接收头 红外接收头的种类很多,引脚定义也不相同,一般都有三个引脚,包括供电脚,接地和信号输出脚。根据发射端调制载波的不同应选用相应解调频率的接收头。本设计选择HX1383,因为其性价比较高,且易于购得,如图2.7:图2.7 红外接收头内部放大器的
15、增益很大,很容易引起干扰,因此在接收头的供电脚上须加上滤波电容,一般在22uf以上。有的厂家建议在供电脚和电源之间接入330欧电阻,进一步降低电源干扰。2.3红外编码格式遥控发射器专用芯片很多,红外遥控的编码目前广泛使用的是:NEC Protocol 的 PWM(脉冲宽度调制)和 Philips RC-5 Protocol 的 PPM,本设计基于NEC协议。其编码特征如下:1、8 位地址和 8 位指令长度; 2、地址和命令 2 次传输(确保可靠性) 3、PWM 脉冲位置调制,以发射红外载波的占空比代表“0”和“1”; 4、载波频率为 38Khz; 5、位时间为1.125ms 或 2.25ms;
16、 NEC 码的位定义:一个脉冲对应 560us 的连续载波,一个逻辑 1 传输需要 2.25ms(560us脉冲+1680us低电平),占空比1/4;一个逻辑 0的传输需要 1.125ms(560us 脉冲+560us 低电平),占空比1/2。而遥控接收头在收到脉冲的时候为低电平,在没有脉冲的时候为高电平,这样,我们在接收头端收到的信号为:逻辑 1 应该是 560us 低+1680us 高,逻辑 0 应该是 560us 低+560us 高。 如图2.8 图2.8NEC 遥控指令的数据格式为:同步码头、地址码、地址反码、控制码、控制反码。同步码由一个 9ms 的低电平和一个 4.5ms 的高电平
17、组成,地址码、地址反码、控制码、控制反码均是8 位数据格式。按照低位在前,高位在后的顺序发送。采用反码是为了增加传输的可靠性(可用于校验)。如图2.9 图2.9重复码:一个命令只发送一次,即使遥控器上的按键一直按着。但是会每110mS发送一次代码,直到遥控器按键释放。如图 2.10 图2.10重复码比较简单:一个9mS的AGC脉冲、2.25mS间隔、560uS脉冲。如图2.11图2.11本设计采用网上购买的LC7641芯片为内核的小型遥控器作为发送端,其编码基于NEC协议。接收端为HX1383,数据流入51单片机解码。第3章 硬件电路设计3.1整系统框图 AT89C51LCD继电器LED44键
18、盘复位电路接收部分系统主要由AT89C51(51系列)、lcd、继电器、LED、44矩阵键盘、复位电路等组成。由红外接收头HX1383接收信号,数据流入51单片机解码。发送部分本设计采用网上购买的LC7641芯片为内核的小型遥控器作为发送端,其编码基于NEC协议。3.2红外发送/接收3.2.1红外遥控器发送部分本设计采用网上购买的LC7641芯片为内核的小型遥控器作为发送端,其编码基于NEC协议。图3-11.外型尺寸:1.1键数: 1-18键1.2主尺寸:86mm长38mm宽6mm厚2.材质:2.1 面贴:0.125mmPET光面面料2.2 外壳:ABS料黑色2.3 电池:CR20253V2.
19、4 按键弹力:180-230克力 3.控制角度:3.1 有效发射角度:30度4.控制距离:4.1 有效距离8m5.按键寿命测试:5.1 3万次以上遥控器技术参数及标准 项目 单位 测试条件 最小值 标准值 最大值 静态电流 UA 无键按下 5 10 动态电流 MA 键按下时 6 12 发射距离 M 沿光轴方向 8 30度自选范围 6 工作电压 V 2.2 3 3.5 振荡频率 KHZ 可定制 455 栽波频率 KHZ 可定制 38KHZ 红外波长 Nm 940 功能键数 18 适用环境温度 -10 25 40 相对温度 Rh 40 903.2.2红外接收头图32规格:HX1838(铁壳)宽电压
20、适应、低功耗、高灵敏度、优良的抗干扰特性;应用广泛:家用电器、空调、玩具等红外遥控接收;极限参数: 电源电压VCC (V) 6.0工作温度TOPR () -25 +85功 耗PD(mw)35储存温度TSTG () -40 +125光电参数: (T=25 VCC=5V f0=38KHZ) 参 数符号测试条件MinTypeMax单 位 工作电压 Vcc 2.7 5.5 V 接收距离 LL5IR5 IF =300mA(测试信号) 10 17 M 载波频率 f0 38k HZ 接收角度 1/2 距离衰减1/2 +/-45 Deg BMP 宽度 fBW -3Db Bandwidth 2 3.3 5kHz
21、 静态电流 ICC 无信号输入时 - 0.8 1.5 mA 低电平输出 VOL Vin=0V Vcc=5V 0.2 0.4 V高电平输出 VOHVcc=5V 4.5 Vcc V输出脉冲 宽 度 TPWL Vin=500Vp-p 500 600 700 S TPWH Vin=50mVp-p 500 600 700 S:光轴上测试,以宽度为600/900S为发射脉冲,在5CM之接收范围内,取50次接收脉冲之平均值(参见测试波形)。测试波形:图33电原理框图: 图3-53.3单片机AT89C51简介AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含4K bytes的可反
22、复擦写的只读程序存储器(EPROM)和128bytes的随机存取数据序存器(RAM),器件采用ATMEL公司的高密度/非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和FLASH存储单元,AT89C51单片机为许多嵌入式控制系统提供了一种灵活行高且价廉的方案。3.3.1主要特性8031 CPU与MCS-51 兼容 4K字节可编程FLASH存储器(寿命:1000写/擦循环) 全静态工作:0Hz-24KHz 三级程序存储器保密锁定 128*8位内部RAM 32条可编程I/O线 两个16位定时器/计数器6个中断源 图36 可编程串行通道 低功耗的闲置和掉电模式
23、片内振荡器和时钟电路 3.3.2 管脚说明VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1
24、口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P
25、3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口,如下表所示:管脚 备选功能:P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的
26、高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PS
27、EN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。3.3.3 震荡特性XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XT
28、AL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。3.3.4 芯片擦除整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。 此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到
29、下一个硬件复位为止。3.4 44矩阵键盘如图所示,本系统采用44矩阵键盘,16个按键分为输入数字键: 0、 1、2、3、4、5、6、7、8、9;功能键lock、modify、cel、Enter。矩阵键盘。图373.5复位电路图38时钟电路工作后,在REST管脚上加两个机器周期的高电平,芯片内部开始进行初始复位(如图38)。3.6 振荡电路图39本设计晶振选择频率为12MHZ,电容选择30pF如图(39)。经计算得单片机工作胡机器周期为:12(112M)=1us。3.7 1602液晶显示图3-10LCD1602 可显示两行英文字符,并且内带 ASCII 字符库。LCD1602 模块内部可以完成显
30、示扫描,单片机只要向 LCD1602 发送命令和显示内容的 ASCII 码。表3-1 引脚功能说明引脚符号功能说明1VSS一般接地2VDD接电源(+5V)3V0液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,可以通过一个10K的电位器调整对比度)。4RSRS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。5R/WR/W为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。6EE(或EN)端为使能(enable)端,下降沿使能。7DB0底4位三态、 双向数据总线 0位(最低位)8DB1底4位三态、 双向数据总线 1位9DB
31、2底4位三态、 双向数据总线 2位10DB3底4位三态、 双向数据总线 3位11DB4高4位三态、 双向数据总线 4位12DB5高4位三态、 双向数据总线 5位13DB6高4位三态、 双向数据总线 6位14DB7高4位三态、 双向数据总线 7位(最高位)(也是busy flag)15BLA背光电源正极16BLK背光 电源负极图3.11 LCD1602引脚图表3-2寄存器选择控制表RSR/W操作说明00写入指令寄存器(清除屏等)01读busy flag(DB7),以及读取位址计数器(DB0DB6)值10写入数据寄存器(显示各字型等)11从数据寄存器读取数据1602液晶模块内部的字符发生存储器(C
32、GROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。因为1602识别的是ASCII码,试验可以用ASCII码直接赋值,在单片机编程中还可以用字符型常量或变量赋值,如A。图3.9是1602的16进制ASCII码值:读的时候,先读上面那列,再读左边那行,如:感叹号!的ASCII为0x21,字母B的ASCII为0x42(前面加0x表示十六进制)。图3.12 1602的16进制
33、ASCII码值表3-3 显示地址1234567891011121314151600H01H02H03H04H05H06H07H08H09H0AH0BH0CH0DH0EH0FH40H41H42H43H44H45H46H47H48H49H4AH4BH4CH4DH4EH4FH指令集1602通过D0D7的8位数据端传输数据和指令。显示模式设置:(初始化)0011 00000x38设置162显示,57点阵,8位数据接口;显示开关及光标设置:(初始化)0000 1DCB D显示(1有效)、C光标显示(1有效)、B光标闪烁(1有效)0000 01NS N=1(读或写一个字符后地址指针加1 &光标加1),N=
34、0(读或写一个字符后地址指针减1 &光标减1),S=1 且 N=1 (当写一个字符后,整屏显示左移)s=0 当写一个字符后,整屏显示不移动数据指针设置:数据首地址为80H,所以数据地址为80H+地址码(0-27H,40-67H)其他设置:01H(显示清屏,数据指针=0,所有显示=0);02H(显示回车,数据指针=0)。通常推荐的初始化过程:延时15ms写指令38H延时5ms写指令38H延时5ms写指令38H延时5ms(以上都不检测忙信号)(以下都要检测忙信号)写指令38H写指令08H 关闭显示写指令01H 显示清屏写指令06H 光标移动设置写指令0cH 显示开及光标设置3.8 发光二极管LED
35、图313由于LED使用的是高亮的led所以加了一个三极管驱动如图313。3.9 继电器 图314在继电器的使用中要注意的就是电流的驱动还有由于继电器内部是电感所以应加一个二极管泄流如图314。3.10 24C02图315 由于只有一个24C02所以只需把A0,A1,A2接地,按照I2C协议,SCL,SDA需接10K上拉电阻 AT24C02AT24C02是美国ATMEL公司的低功耗CMOS串行EEPROM,它是内含2568位存储空间,具有工作电压宽(2.55.5V)、擦写次数多(大于10000次)、写入速度快(小于10ms)等特点。1、特性l 与400KHz I2C 总线兼容l 2.5 到5.5
36、 伏工作电压范围l 低功耗CMOS 技术l 写保护功能当WP 为高电平时进入写保护状态l 页写缓冲器l 自定时擦写周期l 1,000 编程/擦除周期l 可保存数据100 年l 8 脚DIP SOIC 或TSSOP 封装l 温度范围商业级工业级和汽车级2、概述AT24C02 是一个2K 位串行CMOS E2PROM ,部含有256 个8 位字节,ATALYST 公司的先进CMOS 技术实质上减少了器件的功耗,CAT24WC01 有一个8 字节页写缓冲器CAT24WC02/04/08/16 有一个16 字节页写缓冲器,器件通过I2C 总线接口进行操作,一个专门的写保护功能。3、管脚配置图3-16
37、AT24C02管脚配置4、管脚描述5、极限参数l 工作温度:工业级:-55C- +125C 商业级:0C- +75Cl 储存温度:-65C- +150Cl 各管脚承受电压:-2.0V- +2.0Vl Vcc管脚承受电压:-2.0V- +7.0Vl 封装功率损耗:(Ta=25C):1.0Wl 焊接温度(10秒):300Cl 输出短路电流:100mA6、可靠性参数7、功能描述AT24C01/02/04/08/16 支持I2C 总线数据传送协议,I2C 总线协议规定,任何将数据传送到总线的器件作为发送器。任何从总线接收数据的器件为接收器。数据传送是由产生串行时钟和所有起始停止信号的主器件控制的。主器
38、件和从器件都可以作为发送器或接收器,但由主器件控制传送数据发送或接收的模式,通过器件地址输入端A0 A1 和A2 可以实现将最多8 个24WC01 和24WC02 器件4 个242C04 器件,2 个24WC08 器件和1 个24WC16 器件连接到总线上。8、管脚描述l SCL:串行时钟CAT24WC01/02/04/08/16 串行时钟输入管脚用于产生器件所有数据发送或接收的时钟,是一个输入管脚。l SDA:串行数据/地址CAT24WC01/02/04/08/16 双向串行数据/地址管脚用于器件所有数据的发送或接收,SDA 是一个开漏输出管脚。l A0 A1 A2:器件地址输入端这些输入脚
39、用于多个器件级联时设置器件地址,当这些脚悬空时默认值为0 24WC01 除外。当使用24WC01 或24WC02 时最大可级联8 个器件,如果只有一个24WC02 被总线寻址,这三个地址输入脚A0 A1 A2 可悬空或连接到Vss, 如果只有一个24WC01 被总线寻址,这三个地址输入脚A0 A1 A2 必须连接到Vss。当使用24WC04 时,最多可连接4 个器件该器件,仅使用A1 A2 地址管脚,A0 管脚未用可以连接到Vss 或悬空,如果只有一个24WC04 被总线寻址,A1 和A2 地址管脚可悬空或连接到Vss。l WP:写保护如果WP 管脚连接到Vcc, 所有的内容都被写保护只能读,
40、当WP 管脚连接到Vss 或悬空,允许器件进行正常的读/写操作。9、I2C 总线协议I2C 总线协议定义如下l 只有在总线空闲时才允许启动数据传送。l 在数据传送过程中,当时钟线为高电平时,数据线必须保持稳定状态不允许有跳变,时钟线为高电平时,数据线的任何电平变化将被看作总线的起始或停止信号。 起始信号:时钟线保持高电平期间数据线电平从高到低的跳变作为I2C 总线的起始信号。 停止信号:时钟线保持高电平期间数据线电平从低到高的跳变作为I2C 总线的停止信号。图3-17 总线时序图3-18 写周期时序图3-19 起始/停止时序10、器件寻址 主器件通过发送一个起始信号启动发送过程,然后发送它所要
41、寻址的从器件的地址,8 位从器件地址的高4 位固定为1010,接下来的3 位A2 A1 A0 为器件的地址位用来定义哪个器件以及器件的哪个部分被主器件访问。上述8个CAT24WC01/02,4 个CAT24WC04,2个CAT24WC08,1个CAT24WC16可单独被系统寻址。从器件8位地址的最低位作为读写控制位,1表示对从器件进行读操作,0 表示对从器件进行写操作,在主器件发送起始信号和从器件地址字节后,CAT24WC01/02/04/08/16 监视总线并当其地址与发送的从地址相符时,响应一个应答信号通过SDA ,CAT24WC01/02/04/08/16 再根据读写控制位R/W 的状态
42、进行读或写操作,应答信号I2C 总线数据传送时每成功地传送一个字节数据后,接收器都必须产生一个应答信号应答的器件,在第9 个时钟周期时将SDA 线拉低,表示其已收到一个8 位数据。CAT24WC01/02/04/08/16 在接收到起始信号和从器件地址之后响应一个应答信号,如果器件已选择了写操作,则在每接收一个8 位字节之后响应一个应答信号。当CAT24WC01/02/04/08/16 工作于读模式时,在发送一个8 位数据后释放SDA 线并监视一个应答信号,一旦接收到应答信号CAT24WC01/02/04/08/16 ,继续发送数据,如主器件没有发送应答信号,器件停止传送数据且等待一个停止信号。图3-20 应答时序图3-21从器件地址位l A0 A1 和A2 对应器件的管脚1 、2 和3l a8 a9 和a10 对应存储阵列地址字地址11、写操作字节写:在字节写模式下,主器件发送起始命令和从器件地址信息R/W 位置零给从器件,在从器件产生应答信号后,主器件发送CAT24WC01/02/04/08/16 的字节地址,主器件在收到从器件的另一个应答信号后再发送数据到被寻址的存储单,AT24WC01/