- 1、本文档共38页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验名称:基于 51 单片机的音乐盒和电子琴的设计
实验目的:
通过设计一个以 51 单片机为核心的音乐盒和电子琴实现对前面几次实验的综合,并且
可以更加深入的掌握单总线器件和 I2C 总线器件的应用, 掌握 ZLG7290器件中 LED和键控的
原理,掌握蜂鸣器的使用,掌握 16X16 LED点阵的使用,熟悉串行总线的操作技巧。
实验原理:
1、 I2C总线的原理
2
I C 典型的传输格式:
根据上图我们可以看到:每一次传输由 START开始,数据位是从高位( MSB)传起,每
个 Byte 接收方有 ACK (在第 9 个 Clock 拉低 SDA),结束传输有 STOP标记。
将开始信号与结束信号放大展开:
START: SCL维持高, SDA从高到低
STOP:SCL维持高, SDA从低到高
24WC02 的写操作
单字节:
页操作:
24WC02 的读操作
指定地址读时序:
首先要对所选从器件地址和字节地址进行伪写操作 (从器件地址 R/-W=0) ;然后,重新
发 START和从器件地址;得到 ACK 后,可以读取数据。
连续读时序:
可由指定地址读和立即读方式启动连续读模式; 在从器件发送完一个 8 位字节数据后,
主器件产生一个 ACK 来告知 从器件提供更多的数据。对应每个主器件的 ACK,从器件将发
送一个 8 位数据字节;当主器件不发送应答信号而发送停止位时结束此操作。
2、 ZLG7290LED显示和键盘的检测
ZLG7290是一种 I2C接口键盘及 LED驱动管理器件,提供数据译码和循环、移位、段寻
址等控制。它可采样 64 个键盘或传感器,单片即可完成 LED显示、键盘接口的全部功能。
ZLG7290 的从地址为 70H ,器件内部通过 I2C 总线访问的寄存器地址范围为 00H~17H ,任一
寄存器都可按字节直接读写,并支持自动增址功能和地址翻转功能。
LED显示部分:
在每个显示刷新周期, ZLG7290 按照扫描位数寄存器制定的显示数 N ,把显示缓存
DpRam0~DpramN 的内容按先后循环送入 LED驱动器实现动态显示, 减少 N 值可提高每位显
示扫描时间的占空比, 提高 LED亮度, 显示缓存中的内容不收影响。 修改闪烁控制寄存器可
以改变闪烁频率和占空比。
ZLG7290提供两种控制方式,寄存器映像控制个命令解释控制,如上述对显示部分的控
制,寄存器映像控制是指直接访问底层寄存器, 实现基本控制功能, 这些寄存器须字节操作。
ZLG7290 可采样 64 个按键或传感器可检测每个按键的连击次数其基本功能如下
1
○ 键盘去抖动处理
当键被按下和放开时可能会出现电平状态反复变化称作键盘抖动若不作处理会引起按
键盘命令
错误所以要进行去抖动处理以读取稳定的键盘状态为准
2
○双键互锁处理
当 有 两 个 以上 按 键 被 同 时 按 下 时 ZLG7290 只 采 样 优 先 级 高 的 按 键 优 先 顺 序 为
S1S2…S64
如同时按下 S2 和 S18 时采样到 S2
3
○连击键处理
当某个按键按下时 输出一次键值后如果该按键还未释放该键值连续有效就像连续压按
该键
一样 这种功能称为连击连击次数计数器 RepeatCnt 可区别出单击某些功能不允许连击
如开
关或连击判断连击次数可以检测被按时间以防止某些功能误操作如连续按
文档评论(0)