刘彦文等《Linux环境嵌入式系统开发基础》第12章.ppt

刘彦文等《Linux环境嵌入式系统开发基础》第12章.ppt

  1. 1、本文档共100页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
⒉ 结构 结构中s3c2410_led_ioctl对应的函数,将应用程序传送过来的2位七段LED的段码数值,经过变换,存储到CPLD指定的单元;s3c2410_led_write对应的函数,将应用程序传送过来的8×8点阵LED数据,存储到CPLD指定的单元。 以下是结构代码: (代码见p440) ⒊ 存储2位七段LED段码数值到CPLD的函数 应用程序传送过来的段码数值,使用的是LEDWORD变量,低8位表示个位(低位)、高8位表示十位(高位)。 CPLD物理地址0元,保存的是十位(高位)的段码;0元,保存的是个位(低位)的段码。 另外,00元没使用。 因此在本函数中,将应用程序传送过来的数据,高8位移到低8位,低8位移到高16位,存储到CPLD对应的单元中, 以下是该函数的代码: (代码见p441) ⒋ 存储8×8点阵LED数据到CPLD的函数 以下函数将应用程序传送过来的数据,先拷贝到内核空间mdata[]变量中,再从mdata[]变量读出、写入CPLD对应的单元,CPLD物理地址起址为0存放点阵左边一列LED对应的数据;然后地址每次加2,存放下一列LED对应的数据。 以下是该函数的代码: (代码见p441) 当8字节数据写入CPLD后,CPLD会自动输出行扫描信号和列扫描信号,行、列扫描信号依据保存的8×8点阵数据,点亮对应的LED。直到下一次该函数写入新的8字节数据,依新的数据点亮另外的LED。 END 图12.11 8×8点阵LED显示器外观示意图 8×8点阵LED显示器内部连接,如图12.12所示。 图12.12 8×8点阵LED显示器内部连接 图12.11和图12.12表示单色8×8点阵LED显示器,其中每个发光二极管作为1个像素。在一个封装模块中有8行、8列共64个发光二极管。当行线、列线与驱动电路连接时,每个发光二极管可以单独点亮或熄灭。 在图12.12(b),每一行8个发光二极管的阳极连接在一起,每一列的8个发光二极管的阴极也连接在一起。 ⒉ 8×8点阵LED显示方法 假定从图12.12(b)左边第1列开始显示,依次显示第2列、第3列…第8列,动态显示的方法如下(L表示低电平,H表示高电平): ① 显示第1列时,各条列线上的驱动电平从左到右依次为L、H、H、H、H、H、H、H。换句话说,当不同的行线上驱动电平为H或L时,由于只有列线1是低电平,因此允许行线为H电平连接的LED流过电流(点亮),而行线为L电平连接的LED无电流流过(熄灭)。其他列线由于都是H电平,这些列线上的LED均无电流流过。 ② 显示第2列时,各条列线上的驱动电平从左到右依次为H、L、H、H、H、H、H、H,这时8条行线送出的高、低电平,应该与第2列8个LED的亮、灭对应。这时只有第2列上行线连接高电平的LED点亮。 ③ 显示第3列时,各条列线上的驱动电平从左到右依次为H、H、L、H、H、H、H、H,行线送出的高、低电平,应该与第3列8个LED的亮、灭对应。然后以同样的方法,依次驱动第4列、第5列、第6列、第7列、第8列上的LED亮或灭。 ④ 驱动显示第8列以后,再重新驱动显示第1列,依次循环。 上述驱动显示方法称为动态显示。动态显示要求行线、列线驱动电平有效地配合,即某一条列线为低电平时,行线送出的是这一列8个LED对应亮、灭的高、低电平。 ⒊ 显示数据及字模 图12.13给出的是,例12.3中目标板8×8点阵LED显示器与显示数据的一种对应关系。 图12.13 8×8点阵LED显示器与显示数据的对应关系 在图12.13中,8字节数据分别存放在CPLD低位地址A4:A1为0000~0111的单元中,并且最低位地址A0一直为0。 这8个单元中保存的8字节数据,对应8列LED中每个LED的亮、灭。 二进制数1对应亮,0对应灭。 左起0000地址中第1字节数据b7~b0,与第1列8个LED对应,地址0111中的1字节数据,与第8列8个LED对应。 1字节数据中的b7表示数据的最高位,对应最下面一个LED;b0表示数据的最低位,对应最上面一个LED。 例如:8字节数据(从地址0000开始存放)分别是: {1,1,1,1,1,1,1,1},表示8×8点阵LED最上面一行8个LED点亮; {1,2,4,8,16,32,64,128},表示8×8点阵LED的左上、右下对角线上8个LED点亮; {1,3,7,15,31,63,127,255},表示8×8点阵LED的左上、右下对角

文档评论(0)

bbnnmm885599 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档