stm32使用I2C读取zlg7290芯片键值连击次数实验,建议周立功芯片晶振选用4M。附件中存有程序添加入正点原子实验源码用keill5跑程序。
单片机源程序如下:
- #include "ZLG7290.h"
- #include "sys.h"
- #include "myiic.h"
- #include "delay.h"
- #include "led.h"
- void delayMS(unsigned char i)
- {
- unsigned char j,k;
- for(k=0;k<i;k++)
- for(j=0;j<60;j++);
- }
- //初始化
- void ZLG7290_Init(void)
- {
- IIC_Init();
- }
- /*********************************************************************************************************
- ** 函数名称 : ZLG7290_GetKey
- ** 功能描述 : 读取键值
- ** 调用模块: IRcvStr、delayMS
- ********************************************************************************************************/
- u8 ZLG7290_GetKey(u8 recv)
- {
- u8 data;
- // recv=0;
- data=IRcvStr(zlg7290,1,&recv,1);
- delayMS(10);
- return data;
- }
- //读取连击数
- u8 read_key(u8 lj)
- {
- u8 dataa;
- dataa=IRcvStr(zlg7290,2,&lj,1);
- delayMS(10);
- return dataa;
-
-
- }
- /*********************************************************************************************************
- ** 函数名称 : ZLG7290_SendData
- ** 功能描述 : 发送数据
- ** 输 入 : SubAdd : 输入子地址
- ** Data : 输入数据
- ** 输 出 : 0 : Fail
- ** 1 : OK
- ** 调用模块 : ISendStr、delayMS
- ********************************************************************************************************/
- //u8 ZLG7290_SendData(u8 SubAdd,u8 Data)
- //{
- // if(SubAdd>0x17)
- // return 0;
- // ISendStr(zlg7290,SubAdd,&Data,1);
- // delayMS(10);
- // return 1;
- //}
- /*********************************************************************************************************
- ** 函数名称 : ZLG7290_SendBuf
- ** 功能描述 : 向显示缓冲区发送数据
- ** 输 入 : SubAdd : 输入子地址
- ** *buf : 输入数据的首地址
- ** num : 发送个数
- ** 调用模块 : ISendStr、delayMS
- ********************************************************************************************************/
- //void ZLG7290_SendBuf( u8 SubAdr, u8 *buf, u8 num)
- //{
- // ISendStr(zlg7290, SubAdr, buf, num);
- // delayMS(10);
- //}
- /*********************************************************************************************************
- ** 函数名称 : ZLG7290_SendCmd
- ** 功能描述 : 发送命令(对子地址7、8)
- ** 输 入 : Data1 : 命令1
- ** Data2 : 命令2
- ** 调用模块 : ISendStr、delayMS
- ********************************************************************************************************/
- //void ZLG7290_SendCmd(u8 Data1,u8 Data2)
- //{
- // u8 Data[2];
- // Data[0]=Data1;
- // Data[1]=Data2;
- // ISendStr(zlg7290,0x07,Data,2);
- // delayMS(10);
- //}
- /*********************************************************************************************************
- ** 函数名称 : ZLG7290_Disp
- ** 功能描述 : 向显示缓冲区发送数据
- ** 输 入 : * disp_buf : 要发送数据的起始地址
- ** num : 发送个数
- ** 调用模块 : ZLG7290_SendCmd
- ********************************************************************************************************/
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
周立功按键读取实验.zip
(6.51 KB, 下载次数: 73)
|