_整套24c16单片机读写驱动程序.pdf
《_整套24c16单片机读写驱动程序.pdf》由会员分享,可在线阅读,更多相关《_整套24c16单片机读写驱动程序.pdf(8页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、先天下之忧而忧,后天下之乐而乐。范仲淹以铜为镜,可以正衣冠;以古为镜,可以知兴替;以人为镜,可以明得失。旧唐书魏征列传用单片机实现通用存贮器 IC 卡的读写 自动化仪表 2002 本文对AT24系列存贮器和AT89系列单片机的特征及总线状态作为介绍,并以AT24C01与AT89C2051为例详细描述了通用存贮器 IC 卡的工作原理及用单片机对其进行读写操作的基本电路连接和软件编程方法。用存贮器 IC 卡是由通用存贮器芯片封装而成的,由于它的结构和功能简单,生产成本低,使用方便,因此在各领域都得到了广泛的应用。目前用于 IC 卡的通用存贮器芯片多为 E2PROM,其常用的协议主要有两线串行连接协
2、议(I2C)和三线串行链接协议,其中比较常用的是 ATMEL 公司生产的 AT24 系列芯片。以该系列中的 AT24C01 为例,它具有 1k 的存贮容量,适用于 2V5V 的低电压/标准电压的操作,具有低功耗和高可靠性等优点。而 AT89C2051 虽是 ATMEL 公司 89 系列单片机的低档型,但它具有2k 的 FLASH ROM(可重编闪速存贮器)、1288 位内部 RAM 及全静态操作方式,同样也具有低功耗和较强的功能。下面以 AT24C2051 为例,对通用存贮器 IC 卡的工作原理及基本电路连线作一介绍,该线路简单,使用灵活,能可靠地对通用存贮器 IC 卡进行读写。2 硬件特性
3、AT24 系列存贮器的特性 AT24 系列存贮器芯片采用 CMOS 工艺制造,内置有高压泵,可在单电压供电条件下工作。其标准封装为8 脚 DIP 封装形式,各引脚的功能说明如下:SCL:串行时钟。在该脚的上升沿时,系统将数据输入到每个 EEPROM 器件,在下降沿时输出。SDA:串行数据。该引脚为开漏极驱动,可双向传送数据。A0、A1、A2:器件/页面寻址。为器件地址输入端。在 AT24C01/02 中,该引脚被硬连接。Vcc:一般输入+5V 的工作电压。图 1 是符合 ISO7816-2 标准的 IC 卡的触点图(见 IC 卡书 P186)。对于 AT24 系列通用存贮器 IC 卡来说,通常
4、只需使用四个触点。AT24C01 的内部组态为 128 个 8 位字节,而对随机字寻址则需要一个 7 位地址。总线状态及时序 AT24C01 的 SCL 及 SDA 两总线可通过一个电阻上拉为高电平,SDA 上的数据仅在 SCL 为低电平时才能改变。当 SCL 为高电平时,SDA 的改变表示“开始”和“停止”状态。此时,所有地址和数据字都以 8 位串行码方式输入输出 EEPROM。开始状态:SCL 为高电平时,SDA 由高电平转入低电平。该命令必须在其它命令前执行。SCL SDA 停止状态:SCL 为高电平时,SDA 由低电平转入高电平。该命令可终止所有通讯。SCL SDA 确认:相同总线上的
5、设备在收到数据后,以置 SDA 为低电平的方式对其进行确认。SCL SDA 器件寻址 AT24 系列 EEPROM 在开始状态后需紧接一个 8 位器件地址,以进行应读写操作。设备寻址码的高 4 位为1、0、1、0,对于 AT24C01/02,寻址码高 4 位后面的三位是器件寻址码,与它们的硬连线管脚相对应。其身正,不令而行;其身不正,虽令不从。论语万两黄金容易得,知心一个也难求。曹雪芹最低应是读写选择位,置 0 时可激发读操作。AT24 设备寻址码具体的格式如下:1 0 1 0 A2 A1 A0 R/W AT89C2051 芯片 AT89C2051 是 MCS-51 产品的兼容型,它具有 2k
6、 的 FLASH ROM、128 字节 ROM,15 根 I/O 引线、两个 16位定时/计数器、一个五向量两级中断结构、一个全双工串行口、一个精密模拟比较器以及片内振荡电路和时钟电路。它的 P1 口和 P3 口是双向 I/O 口,其中、和带有内部上拉电阻。在 AT89C2051 用作输入端时,将首先向引脚写“1”而使内部 MOS 管截止以便引脚处于悬浮状态,从而可获得高阻抗输入。图 2 为通用存贮器 IC 卡的基本电路连接图。(略)3 读写操作软件 当系统采用6MHz 晶体振荡器时所定义的 I/O 口线及器件地址如下:SCL BIT SDA BIT DEVICEAD_W DATA B;写卡器
7、件地址 DEVICEAD_R DATA B;读卡器件地址 开始条件(START_IC)当 SCL 为高电平时,SDA 由高转为低。程序如下:SCL 0 SDA 在 SCL、SDA 全 1 前提下进入开始,开始完成后,SCL、SDA 全 0 0 START_IC:CLR SCL ;SCL 由高变低,因为 SCL 低电平时才允许 SDA 更改 NOP ;加入空指令延时以确保信号可靠 NOP SETB SDA ;SDA 先高 NOP NOP SETB SCL ;SCL 高,起始条件建立时间大于 NOP NOP CLR SDA ;SDA 低,起始条件锁定时大于 4us NOP NOP CLR SCL
8、;SCL 低,钳住总线,准备发数据 NOP RET 停止条件(STOP_IC)当 SCL 为高电平时,SDA 由低转为高。程序如下:SCL SDA ;在 SCL、SDA 高或低的前提下均可进入停止过程 ;停止过程完成后,SCL、SDA 全 1 STOP_IC:勿以恶小而为之,勿以善小而不为。刘备天行健,君子以自强不息。地势坤,君子以厚德载物。易经CLR SCL ;SCL 低 NOP CLR SDA NOP NOP SETB SCL ;发送结束条件的时钟信号 NOP ;结束总线时间大于 4us(取)NOP SETB SDA ;结束总线 NOP ;保证一个终止信号和起始信号的空闲时间大于 NOP;
9、在 SCL、SDA 高或低的前提下均可进入停止,停止完成后,SCL、SDA 全 1 RET 应答确认信号(MACK_IC)与非应答信号 MNACK_IC 在接收方,每收到一字节后便将 SDA 电平拉低,程序如下:SCL 0 SDA 1 ;应答完成后,SCL=0,SDA=1 应答确认信号(MACK_IC)MACK_IC:CLR SCL NOP CLR SDA ;在第 9 个 SLC 脉冲,将 SDA 置 0 NOP NOP SEIB SCL NOP ;保持数据时间,即 SCL 为高时间大于 NOP CLR SCL NOP SETB SDA ;在 SDA 高或低的任何前提下,应答完成后,SCL=0
10、,SDA=1 NOP RET 发送非应答信号 MNACK_IC MNACK_IC:CLR SCL NOP NOP SETB SDA ;将 SDA 置 1 NOP NOP SETB SCL NOP NOP ;保持数据时间,即 SCL 为高时间大于 NOP NOP NOP 百学须先立志。朱熹万两黄金容易得,知心一个也难求。曹雪芹 CLR SCL NOP SETB SDA NOP RET 24C16 程序资源安排是:R0=字节的循环指针,R2=位数的计数器,R3=卡器件地址,R4=字节地址,R5=字节数或页面长度。R1 可以留作其他循环指针,R6、R7 可以留作 uS 级延时。写一字节数据到 IC
11、卡(WR_BYTE)SCL SDA D7 D6 D0 等待 IC 确认 在下列程序中,参数 A 表示源数据,R2 表示字节位数。WR_BYTE:MOV R2,#08;一字节 8 位数据 CLR SCL NOP NOP WR_BYTE1:RLC A;带进位位左移,C MOV SDA,C;SCL 低电平时改变 SDA 上的数据 NOP SETB SCL;拉高 SCL =把数据发送出去 NOP NOP CLR SCL NOP NOP DJNZ R2,WR_BYTE1;依次发送 A 中的 8 位数据 SETB SDA NOP NOP SETB SCL CLR F0 NOP NOP MOV C,SDA
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 整套 24 c16 单片机 读写 驱动程序
限制150内