- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验十四 LED显示和键盘实验
实验14 LED显示和键盘实验
1. 实验目的
加深用户对I2C总线的理解,熟悉I2C器件的使用,掌握ZLG7290芯片显示和键盘的简单程序设计。
2. 实验设备及器件
IBM PC机 一台
DP-51 PRO单片机综合仿真实验仪 一台
3. 实验内容
ZLG7290芯片LED显示、键盘控制器驱动实验。
4. 实验要求
熟练掌握I2C总线的控制,灵活运用I2C主控器软件包,深刻理解ZLG7290芯片LED显示、键盘控制的各种功能,编写驱动程序,读出用户按键值并依次显示在8个LED数码管上(保留显示最后8次按键值,显示内容从右向左移动,最后一次按键值显示在最右侧LED数码管上)。
5. 实验步骤
① 用导线连接D5区和A2区的P16→SCL,P17→SDA,P10→RST_L,INT_KEY→INT0,短接D5区的JP1跳线。
② 模拟I2C软件包VI2C_ASM.INC文件,使用 $INCLUDE (VI2C_ASM.INC) 命令加入到你的汇编源文件中。在你的汇编源文件中定义SCL、SDA、ACK等信号。
③ 先编写显示的子程序(DISPLAY)和获取用户按键子程序(GETKEY)。
④ 然后再进行整体编程。如果还有一难,可以先画流程一,再编写程序。
⑤ 显示结果为:上电运行时,8位数码管显用户按键时,键值在最右侧LED数码管显示,原显示内容左移一位,例如:显示由变为“1234567X”,(X:用户按键值,1~16,显示为1~F,G)。
6. 实验预习要求
认真阅读ZLG7290的数据手册(附件1)和模拟I2C软件包(附件2)使用手册,理解硬件结构;先把程序编好,然后在KEIL 51环境下进行软件仿真。
7. 实验参考程序
详见附近3:计算机硬件技术基础实验参考代码(DP-51PROC).DOC 文件。
SDA BIT P1.7 ;I2C总线定义 串行数据存取位 SCL BIT P1.6 ;I2C总线定义 串行时钟位 RST BIT P1.0 ;MCU复位输出信号,低电平复位ZLG7290 INT_KEY BIT P3.2 ;MCU中断信号输入,有效的按键动作使该引脚信号变为低电平 MTD EQU 40H ;I2C总线发送数据缓冲区(8字节) MRD EQU 48H ;I2C总线接收数据缓冲区(8字节) DISBUF EQU 38H ;显示缓冲区(8字节,可对应8位数码管显示) ;定义ZLG7290器件地址及子地址 ZLG7290 EQU 70H ;ZLG7290的器件地址 ACK BIT 10H ;应答标志位 SLA DATA 50H ;器件的从地址 SUBA DATA 51H ;器件的子地址 NUMBYTE DATA 52H ;读/写的字节数变量 KEY DATA 53H ;返回用户按键值 SYSTEMREG EQU 00H ;系统寄存器地址,保存 ZLG7290系统状态 KEYREG EQU 01H ;键值寄存器,表示被压按键的键值 CMDBUF0 EQU 07H ;命令缓冲区0 CMDBUF1 EQU 08H ;命令缓冲区1 DPRAM EQU 10H ;显示缓存寄存器
ORG 8000H LJMP MAIN ORG 8100H ;-------主程序如下: MAIN: MOV SP,#70H ;堆栈区从70H开始 CLR RST ;复位ZLG7290 LCALL DELAY ;等待复位完成,ZLG7290复位周期比较长,必须等待 SETB RST ;结束复位 LCALL DELAY LCALL CLSDISP ;清除显示 MAINLOOP: MOV DISBUF+0,#0 ;上电运行时,8位数码管显 MOV DISBUF+1,#1 ;给显示缓冲区赋值 MOV DISBUF+2,#2 MOV DISBUF+3,#3 MOV DISBUF+4,#4 MOV DISBUF+5,#5 MOV DISBUF+6,#6 MOV DISBUF+7,#7 LCALL DISPLAY ;调用显示子程序,显示内容 WAITKEY: JB INT_KEY,WAITKEY ;查询按键 LCALL GET
文档评论(0)