单片机程序设计实践教程七段数码管和×键盘控制课件.ppt

单片机程序设计实践教程七段数码管和×键盘控制课件.ppt

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

单片机程序设计实践教程;9.0项目演示效果;图XP_9_02步骤2-测试下载数据功能启动;图XP_9_03步骤3-测试不同扫描位数功能启动;图XP_9_04步骤4-测试键盘功能;9.1项目目标设计;9.2项目任务;本项目的任务是在开发板上完成ZLG7290芯片各个功能的演示,该芯片的功能包括测试直接写显存、下载数据、不同扫描位数、闪烁功能、段寻址功能及键盘功能。图9-1所示为基于ZLG7290键盘与显示控制芯片的电路原理图,这部分电路的设计参照了教材中的参考文献【13】、【14】和【15】,例程的设计基本上源自参考文献【16】,只是为了适用于PMY单片机开发板,对一些端口进行了重新定义。

由于后续项目中的按键和七段LED显示控制都是以本次项目为基础的,因此希望读者提前阅读上文提及的4个参考文献,理解文献【16】中各个函数的使用方法,为顺利完成后续项目做好前期准备。;9.3系统板上硬件连线;9.4程序流程图;9.5C语言源程序(略);9.6.2对ZLG7290头文件的修改;以测试直接写显存Test_DispBuf()函数为例,概略介绍一下源程序中的函数分析方法,更多的解释请参阅本章提及的参考文献。

ZLG7290Demo.c文件中,函数Test_DispBuf()的定义中包括codecharDispDat[26]数组的定义,该数组定义了向ZLG7290显示缓存寄存器写入字符的显示译码,下面举例来说明如何确定这些译码。

以字符0的显示译码为例,如图9-4所示,字符0的段码g和dp不显示,因此为0;其余段码显示为1,编码按照a至g,dp由高到低的顺序进行排列(与ZLG7290内部架构有关),因此译码为0xFC,其余的字符译码方法依此类推。

在Test_DispBuf()函数中进行显示的函数是ZLG7290_WriteReg(reg,dat),其中reg为要显示字符在ZLG7290内部寄存器的地址,dat为要显示字符的译码。;图9-4字符0的七段LED数码管显示译码过程;9.6.3ZLG7290软件包的函数使用说明;voidI2C_Init();//I2C总线初始化,使总线处于空闲状态

voidI2C_Start();//产生I2C总线的起始状态

voidI2C_Write(chardat);//向I2C总线写1个字节的数据

charI2C_Read();//从从机读取1个字节的数据

bitI2C_GetAck();//读取从机应答位

voidI2C_PutAck(bitack);//主机产生应答位或非应答位

voidI2C_Stop();//产生IIC总???的停止状态

bitI2C_Puts

(unsignedcharSlaveAddr,unsignedintSubAddr,unsignedcharSubMod,

char*dat,unsignedintSize);//I2C总线综合发送函数,向从机发送多个字节的数据

bitI2C_Gets

(unsignedcharSlaveAddr,unsignedintSubAddr,unsignedcharSubMod,

char*dat,unsignedintSize);//I2C总线综合接收函数,从从机接收多个字节的数据;本章提及的参考文献中有对I2C通信协议的详细讲解,对照I2C.h和I2C.c文件,就能够帮助读者理解以上列出的各个函数的含义。后面关于数字钟的项目中,有详细的关于I2C总线知识的介绍,读者也可参阅该部分的内容以加深对I2C总线知识的理解。

第二个头文件ZLG7290.h是数码管显示与键盘管理芯片ZLG7290的标准8051驱动程序头文件,这是读者应重点掌握的内容,如果不能理解其中的含义,最少应学会使用这些函数,随着对后续项目的不断深入实践,单片机理论和实践知识也会不断积累和丰富,反过来再分析这些函数就会更容易理解了。第二个头文件包括以下函数。;bitZLG7290_WriteReg(unsignedcharRegAddr,chardat);

//功能:向ZLG7290的某个内部寄存器写入数据;

//参数:RegAddr为ZLG7290内部寄存器的地址;dat为要写入的数据

bitZLG7290_ReadReg(unsignedcharRegAddr,char*dat)

//功能:从ZLG7290的某个内部寄存器读出数据

//参数:RegAddr为ZL

文档评论(0)

176****0418 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档