ZLG7290 pdf, ZLG7290程序
ZLG7290 的I2C 接口传输速率可达32kbit/s 容易与处理器接口并提供键盘中断信号提高主处理器时间效率ZLG7290 的从地址 slave address 为70H(01110000B)有效的按键动作普通键的单击连击和功能键状态变化都会令系统寄存器SystemReg 的KeyAvi 位置1 /INT 引脚信号有效变为低电平用户的键盘处理程序可由/INT 引脚低电平中断触发,以提高程序效率也可以不采样/INT 引脚信号节省系统的I/O 数而轮询系统寄存器的KeyAvi 位要注
意读键值寄存器会令KeyAvi 位清0 并会令/INT 引脚信号无效为确保某个有效的按键动作所有参数寄存器的同步性建议利用I2C 通信的自动增址功能连续读RepeatCnt FuncTIonKey 和Key 寄存器,但用户无需太担心寄存器的同步性问题应为键参数寄存器变化速度较缓慢典型250ms 最快9ms,ZLG7290 内可通过I2C 总线访问的寄存器地址范围为00H 17H 任一寄存器都可按字节直接读写也可以通过命令接口间接读写或按位读写请参考指令详解部分支持自动增址功能访问一寄存器后寄存器子地址sub address 自动加一和地址翻转功能访问最后一寄存器子地址17H 后
寄存器子地址翻转为00H ZLG7290 的控制和状态查询全部都是通过读/写寄存器实现的用户只需象读写24C02 内的单元一样即可实现对ZLG7290 的控制关于I2C 总线访问的细节请参考I2C总线规范
ZLG7290程序
#include
#define uchar unsigned char
#define uint unsigned int
//hardware 与硬件有关的定义
//按键定义
#define K0 10 //S10
#define K1 1 //S1
#define K2 2 //S2
#define KRight 11 //S11
#define KLeft 12 //S12
#define KMode 13 //S13
#define SlvZlg7290 0x70 //ZLG7290 从地址
#define SubKey 0x1 //键码值子地址
#define SubCmdBuf 0x7 //命令缓冲区子地址
#define SubDpRam 0x10 //显存子地址
//根据硬件配置IicSM.inc
//根据硬件配置ZLG7290 的中断信号引脚INT
sbit KeyInt=P3^3; //中断信号
//hardware
//80c51 系列模拟 I2C 总线主控器驱动程序接口说明
/*****
;Name: _IicTxdRxd(TxdByte,RxdByte,&IicDataBuf)
;Describe: 发送数据给被控器/接收来自被控器的数据
;Input: TxdByte(R7)=要发送数据的字节数
; RxdByte(R5)=要接收数据的字节数
; IicDataBuf(R1)=发送/接收缓冲区首字节的地址
; (SlvAddr(被控器地址),SubAddr(单元地址))