在起始信号后必须传送一个从机的地址(7位),第8位是数据传送的方向位,AT24C02的地址为1010000X,当X为1时为读,0时为写。 主机得到从机应答信号后开始传送数据。每接受一个字数据从机应产生一个应答信号[7]。
发送数据采用32位二进制码组。其中前16位为从机的地址识别码,用于区别不同的设备。后16位为所要发送的数据码和其反码。
图11 I²C编程原则
3.3 键盘扫描编程设计
图12 按键扫描程序流程图
键盘识别采用逐行扫描法,将某一行置于低电平,其他各行和列都置于高电平,再读取行线与列线的数值[8]。若某列电平被拉低,由此可判断有按键按下与具体哪个按键按下,由此可见控制器要对矩阵键盘进行不间断的扫描以确定是否有键盘按下。
3.4 液晶显示编程原则
1602液晶模块内部的控制器共有11条控制指令[9],如表1:
表1 LCD1602控制命令表
序号 指令 RS R/W D7 D6 D5 D4 D3 D2 D1 D0
1 清显示 0 0 0 0 0 0 0 0 0 1
2 光标返回 0 0 0 0 0 0 0 0 1 *
3 输入模式 0 0 0 0 0 0 0 1 I/D S
4 显示开/关控制 0 0 0 0 0 0 1 D C B
5 光标或字符移位 0 0 0 0 0 1 S/C R/L * *
6 置功能 0 0 0 0 1 DL N F * *
7 置字符发生存贮器地址 0 0 0 1 字符发生存贮器地址
8 置数据存贮器地址 0 0 1 显示数据存贮器地址
9 读忙标志或地址 0 1 BF 计数器地址
10 写数到CGRAM/DDRAM 1 0 要写的数据内容
11 从CGRAM/DDRAM读数 1 1 读出的数据内容
1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。
指令1:清除显示的数据,并将光标进行复位,返回到地址00H。
指令2:光标复位,将光标进行复位,返回到地址00H。
指令3:光标和显示模式设置。I/D:高电平时光标向右移动,低电平时光标向左移动。S:决定屏幕上显示的文字是否产生移动。高电平时有效,低电平时无效。 AT89C51单片机的电子密码锁及报警系统设计+电路图+源码(5):http://www.youerw.com/tongxin/lunwen_1035.html