大家好,今天给大家介绍Linux下编写zlg7290驱动(1),文章末尾附有分享大家一个资料包,差不多150多G。里面学习内容、面经、项目都比较新也比较全!可进群免费领取。
ZLG7290可完全克服上述弊端。它采用I2C总线接口,与微控制器的连接仅需两根信号线,硬件电路比较简单。而且可以驱动8位共阴数码管或64只独立LED、64只独立按键,并可提供自动消除抖动、连击键计数等功能。这对于传统的键盘与数码管解决方案,无疑是不可想象的。强大的功能,丰富的资源,良好的接口,使得ZLG7290比传统的键盘与数码管解决方案且有更大的优越性。因此,在现代智能仪表的设计中,通过ZLG7290可为系统设计工程师设计出良好的人机对话通道,从而提供了一种理想的解决方案。
本文介绍linux下zlg7290驱动的编写。
1.Zlg7290介绍
zlg7290可以驱动64个独立按键和8个共阴极数码管,64只按键中,前56个按键是普通按键K1~K56,后8个为功能键F0~F7,当然这8个按键也可以当普通按键使用。
本文分两部分介绍这两部分驱动的说明。
1.1.芯片引脚图
图芯片引脚图
1.2.参考原理图
图参考原理图
1.3.按键相关寄存器:
芯片I2C从机地址
1.4.按键相关寄存器:
键值寄存器Key(地址:01H)
如果某个普通键(图3.1中的K1~K56)被按下,则微控制器可以从键值寄存器Key中读取相应的键值1~56。如果微控制器发现ZLG7290B的INT引脚产生了中断请求,而从Key中读到的键值是0,则表示按下的可能是功能键。键值寄存器Key的值在被读走后自动变成0。
功能键寄存器FunctionKey(地址:03H)
ZLG7290B还提供有8个功能键(图3.1中的F0~F7)服务器托管网。功能键常常是配合普通键一起使用的,就像电脑键盘上的Shift、Ctrl和Alt键。当然功能键也可以单独去使用,就像电脑键盘上的F1~F12。当按下某个功能键时,在INT引脚也会像按普通键那样产生中断信号。功能键的键值是被保存在FunctionKey寄存器中的。功能键寄存器FunctionKey的初始值是FFH,每一个位对应一个功能键,第0位(LSB)对应F0,第1位对应F1,依次类推,第7位(MSB)对应F7。某一功能键被按下时,相应的FunctionKey位就清零。功能键还有一个特性就是“二次中断”,按下时产生一次中断信号,抬起时又会产生一次中断信号;而普通键只会在被按下时产生一次中断。
1.5.数码管相关寄存器:
显示缓冲区DpRam0~DpRam7(地址:10H~17H)
DpRam0~DpRam7这8个寄存器的取值直接决定了数码管的显示内容。每个寄存器的8个位分别对应数码管的a,b,c,d,e,f,dp段,MSB对应a,LSB对应dp。例如大写字母H的字型数据为6EH(不带小数点)或6FH(带小数点)。
图一数码管段位定义
显示编码表
嵌入式物联网需要学的东西真的非常多,千万不要学错了路线和内容,导致工资要不上去!
无偿分享大家一个资料包,
差不多150多G。里面学习内容、面经、项目都比较新也比较全!某鱼上买估计至少要好几十。(点击找小助理免费领取)服务器托管网
扫码进群领资料https://s.pdb2.com/pages/20230519/16QijNiGb32IFIn.html
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
最近学习Golang,先把开发环境配置好。 一、安装Go语言开发包 https://golang.google.cn/dl/ 按步骤安装即可,安装完成后需要设置Windows环境变量 配置好,做个测试 二、VSCode Golang开发环境配置 vscode安…