单片机程序设计实践教程七段数码管和44键盘控制9PPT精选文档

上传人:夏** 文档编号:569379080 上传时间:2024-07-29 格式:PPT 页数:23 大小:2.27MB
返回 下载 相关 举报
单片机程序设计实践教程七段数码管和44键盘控制9PPT精选文档_第1页
第1页 / 共23页
单片机程序设计实践教程七段数码管和44键盘控制9PPT精选文档_第2页
第2页 / 共23页
单片机程序设计实践教程七段数码管和44键盘控制9PPT精选文档_第3页
第3页 / 共23页
单片机程序设计实践教程七段数码管和44键盘控制9PPT精选文档_第4页
第4页 / 共23页
单片机程序设计实践教程七段数码管和44键盘控制9PPT精选文档_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《单片机程序设计实践教程七段数码管和44键盘控制9PPT精选文档》由会员分享,可在线阅读,更多相关《单片机程序设计实践教程七段数码管和44键盘控制9PPT精选文档(23页珍藏版)》请在金锄头文库上搜索。

1、第九讲第九讲 七段数码管和七段数码管和4444键盘控制键盘控制 19.0 9.0 项目演示效果项目演示效果图图XP_9_01 XP_9_01 步骤步骤1-1-打开电源后直接写显存功能启动打开电源后直接写显存功能启动2图图XP_9_02 XP_9_02 步骤步骤2-2-测试下载数据功能启动测试下载数据功能启动3图图XP_9_03 XP_9_03 步骤步骤3-3-测试不同扫描位数功能启动测试不同扫描位数功能启动4图图XP_9_04 XP_9_04 步骤步骤4-4-测试键盘功能测试键盘功能 59.1 9.1 项目目标设计项目目标设计1.掌握ZLG7290键盘与显示控制芯片的控制和使用方法;2.结合硬

2、件原理图理解例程中各个函数的使用方法;3.初步掌握I2C总线的原理和软件实现方法;4.初步了解外部中断1的使用方法;5.在达到以上四点目标之后,根据本章“项目扩展任务”中提出的问题,以组或个人为单位,在规定时间里完成项目任务。69.2 9.2 项目任务项目任务 图图9-1 ZLG72909-1 ZLG7290键盘与显示控制实验的电路原理图键盘与显示控制实验的电路原理图7 本项目的任务是在开发板上完成ZLG7290芯片各个功能的演示,该芯片的功能包括测试直接写显存、下载数据、不同扫描位数、闪烁功能、段寻址功能及键盘功能。图9-1所示为基于ZLG7290键盘与显示控制芯片的电路原理图,这部分电路的

3、设计 参照了教材中的参考文献【13】、【14】和【15】,例程的设计基本上源自参考文献【16】,只是为了适用于PMY单片机开发板,对一些端口进行了重新定义。 由于后续项目中的按键和七段LED显示控制都是以本次项目为基础的,因此希望读者提前阅读上文提及的4个参考文献,理解文献【16】中各个函数的使用方法,为顺利完成后续项目做好前期准备。89.3 9.3 系统板上硬件连线系统板上硬件连线 ZLG7290键盘与显示控制系统板硬件连线图如图9-2所示。图图9-2 ZLG72909-2 ZLG7290键盘与显示控制系统板硬件连线图键盘与显示控制系统板硬件连线图99.4 9.4 程序流程图程序流程图 ZL

4、G7290键盘与显示控制C语言程序流程图如图9-3所示。图图9-3 ZLG72909-3 ZLG7290键盘与显示控制键盘与显示控制C C语言程序流程图语言程序流程图109.5 C9.5 C语言源程序(略)语言源程序(略)9.6 9.6 系统构成和程序分析9.6.1 9.6.1 ZLG7290接口键盘及LED驱动管理芯片 简介 PMY单片机开发板的8位七段LED数码管显示和44键盘的控制由ZLG7290芯片完成,ZLG7290是一种I2C接口键盘及LED驱动管理器件,提供数据译码和循环、移位、段寻址等控制。它可采样64个按键或传感器,单片即可完成LED显示、键盘接口的全部功能。ZLG7290的

5、从地址为70H,器件内部通过IIC总线访问的寄存器地址范围为00H17H,任一寄存器都可按字节直接读写,并支持自动增址功能和地址翻转功能。因此,具有功能强、使用方便、厂家技术支持完善及与微处理器之间的连接线少(只有3根)等优点,适合在工业测控中进行应用。119.6.2 9.6.2 对对ZLG7290ZLG7290头文件的修改头文件的修改 对于PMY单片机开发板,在其上引入参考文献【16】中介绍的软件包时,只需对端口的定义进行重新的设置即可正常使用。参照图9-1,具体修改的地方是软件包中的I2C.h文件对模拟I2C总线的引脚定义,只要将原来的定义:sbit I2C_SCL = P16;sbit

6、I2C_SDA = P17;改为sbit I2C_SCL = P11;sbit I2C_SDA = P10; 就可在PMY单片机开发板正常运行ZLG7290Demo项目文件,为了在使用中不与参考文献【16】介绍的软件包相混淆,CHP09_ZLG7290Demo即为随书光盘中修改后的项目名,请读者在使用时注意区别对待。12 以测试直接写显存Test_DispBuf()函数为例,概略介绍一下源程序中的函数分析方法,更多的解释请参阅本章提及的参考文献。ZLG7290Demo.c文件中,函数Test_DispBuf()的定义中包括code char DispDat26数组的定义,该数组定义了向ZLG7

7、290显示缓存寄存器写入字符的显示译码,下面举例来说明如何确定这些译码。 以字符0的显示译码为例,如图9-4所示,字符0的段码g和dp不显示,因此为0;其余段码显示为1,编码按照a至g,dp由高到低的顺序进行排列(与ZLG7290内部架构有关),因此译码为0xFC,其余的字符译码方法依此类推。 在Test_DispBuf()函数中进行显示的函数是ZLG7290_WriteReg(reg,dat),其中reg为要显示字符在ZLG7290内部寄存器的地址,dat为要显示字符的译码。13图图9-4 9-4 字符字符0 0的七段的七段LEDLED数码管显示译码过程数码管显示译码过程149.6.3ZLG

8、72909.6.3ZLG7290软件包的函数使用说明软件包的函数使用说明 在本书后面的章节里,只要涉及到8位七段LED数码管显示和44键盘的项目,都会通过ZLG7290来进行控制,因此项目中的C源程序中必须包含以下两个头文件:#include I2C.h#include ZLG7290.h 第一个头文件是标准8051单片机模拟I2C总线的主机程序头文件,reg52.h已包含在其中,主要包括以下对I2C总线的控制函数:15void I2C_Init(); /I2C总线初始化,使总线处于空闲状态void I2C_Start(); /产生I2C总线的起始状态void I2C_Write(char d

9、at) ; / 向I2C总线写1个字节的数据char I2C_Read(); /从从机读取1个字节的数据bit I2C_GetAck(); /读取从机应答位void I2C_PutAck(bit ack); /主机产生应答位或非应答位void I2C_Stop(); /产生IIC总线的停止状态bit I2C_Puts (unsigned char SlaveAddr, unsigned int SubAddr, unsigned char SubMod,char *dat, unsigned int Size); /I2C总线综合发送函数,向从机发送多个字节的数据bit I2C_Gets (u

10、nsigned char SlaveAddr,unsigned int SubAddr,unsigned char SubMod,char *dat,unsigned int Size); /I2C总线综合接收函数,从从机接收多个字节的数据16 本章提及的参考文献中有对I2C通信协议的详细讲解,对照I2C.h和I2C.c文件,就能够帮助读者理解以上列出的各个函数的含义。后面关于数字钟的项目中,有详细的关于I2C总线知识的介绍,读者也可参阅该部分的内容以加深对I2C总线知识的理解。 第二个头文件ZLG7290.h是数码管显示与键盘管理芯片ZLG7290的标准8051驱动程序头文件,这是读者应重点

11、掌握的内容,如果不能理解其中的含义,最少应学会使用这些函数,随着对后续项目的不断深入实践,单片机理论和实践知识也会不断积累和丰富,反过来再分析这些函数就会更容易理解了。第二个头文件包括以下函数。17bit ZLG7290_WriteReg(unsigned char RegAddr, char dat);/功能:向ZLG7290的某个内部寄存器写入数据;/参数:RegAddr为ZLG7290内部寄存器的地址;dat为要写入的数据bit ZLG7290_ReadReg(unsigned char RegAddr, char *dat)/功能:从ZLG7290的某个内部寄存器读出数据/参数:Reg

12、Addr为ZLG7290的内部寄存器地址; *dat为保存读出的数据bit ZLG7290_cmd(char cmd0, char cmd1)/功能:向ZLG7290发送控制命令/参数:cmd0为写入CmdBuf0寄存器的命令字(第1字节);cmd1为写入CmdBuf1寄存器的命令字(第2字节)18bit ZLG7290_SegOnOff(char seg, bit b)/功能:段寻址,单独点亮或熄灭数码管(或LED)中的某一段/参数:seg取值063,表示数码管(或LED)的段号;对于b,0表示熄灭,1表示点亮bit ZLG7290_Download(char addr, bit dp, b

13、it flash, char dat)/功能:下载数据并译码/参数:addr取值07,显示缓存DpRam0DpRam7的编号;dp表示是否点亮该位的小数点,0熄灭,1点亮; flash表示控制该位是否闪烁,0不闪烁,1闪烁; dat取值031,表示要显示的数据19另外两个有用的函数在ZLG7290Demo.c中,分别是:void DispValue(char x, unsigned char dat)功能:显示100以内的数值参数:x表示显示位置,取值06; dat表示要显示的数据,取值099void DispHexValue(char x, unsigned char dat)功能:以十六进

14、制数显示数值参数:x表示显示位置,取值06; dat表示要显示的数据,取值025520 ZLG7290Demo.c文件中的void Test_Key()和void Delay(unsigned int t) 函数中分别使用外部中断1和定时器T0进行中断控制,关于这部分内容将在后续的项目中加以介绍,读者可以忽略这部分的内容,重点掌握上面提及的7个函数的使用方法,这7个函数重新列写如下:bit ZLG7290_WriteReg(unsigned char RegAddr, char dat) bit ZLG7290_ReadReg(unsigned char RegAddr, char *dat)

15、bit ZLG7290_cmd(char cmd0, char cmd1)bit ZLG7290_SegOnOff(char seg, bit b)bit ZLG7290_Download(char addr, bit dp, bit flash, char dat)void DispValue(char x, unsigned char dat)void DispHexValue(char x, unsigned char dat)219.7 9.7 项目扩展任务项目扩展任务 理解基于ZLG7290的七段数码管和44键盘控制项目的软硬件原理,以组或个人为单位,设计以下程序:在8个LED数码管上同时显示“HELLOC51”,相隔1s,同时显示“StC89C52”,相隔1s显示“HELLOC51”,的次序点亮七段LED数码管。2223

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号