- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
怎样在点阵屏上绘图——基于LCD12864【二】
专业 ??2008-09-27 16:38 ??阅读422???评论0 ?
字号: 大大? 中中? 小小
?
Chapter Three
— 从“壁画”记事到“甲骨文” —
?不得不承认,到目前为止,似乎如果我们要想做一个电话号码记事本之类的电子助手已经万事俱备了,但真正开始做的时候才发现,我们还没有教会AVR如何去写字。如果说,我们前面已经能在LCD上画出“壁画”的话,那么要想让别人看懂你记录的到底是什么鬼画符还需要一点点关于“甲骨文”的扫盲。事实上,大家约定俗成的固定大小的图片集或其子集就是一个被尊称为字库的神圣典籍。在这个圣经里面记录的是一种被称之为“字模码”的东西,对于我们,这种信息可能相当抽象,但是借助LCD,那么字模码就是一个我们能看懂的字符在显存中存在的模式。
?关于这些字模码是如何排列的,自古以来就有数不清的模式。终于有一天,一群中国人伴随着新中国站了起来,制定了一个叫做国标的标准(GB),根据这个标准,祖国大地的字模码才有了统一的目录,而查询这个目录的方法已经逐渐被人们所淡忘,吹落那源自电报码的书籍红色封皮上的沧桑,用手轻轻抚摸封皮上的的文字:“区位码”,我们发现,其实他包含了6000个汉字的一级字库其他一些由非常用字组成的多级字库。
?在西方,埃尼阿克的故乡,一群依靠技术侵略世界的疯子根据自己半通不同的习惯制定了一个由128个字符组成的交换标准称之为ASCII码,由于技术大潮的冲击,世界妥协了。
?……
?这一切的一切都无法改变字库只不过是图片集和的本质。所以,敢于抵抗强权的人们在自己的领土上坚持着自己的信念——我们称之为“小字库技术”。甚至有些人坚持使用图片记事,那么自然的被视作是“无字库技术”。
世界在前进,即便后来世界技术的格局发生了怎样的变化,即便一些曾经约定的不合理的东西也会作为最底层的协议支持者新世界,就像是乌龟驼着的世界。任何触动这些底层的行为都会受到世界的背叛,所以,抛弃情感上的东西,我们来研究一下ACSII的构成原理和实现方法。
?
对不起大家,我写这些东西的目的就是面向初学者。事实上,如各位所说,我并非高手,所以很多地方漏出了类似“内存映射”之类的马脚。这里我只想做一点解释,只有我弄懂了的东西,我才能用通俗的方法和大家解释,我一窍不通的东西就只好原样照搬打肿脸充胖子了。呵呵。还请原谅。事实上,就拿“内存映射”这个问题来说,我使用的大段大段的文字来解释这个概念,因为即便是罗嗦,我也最多只能用“屏幕的一块区域对应内存的一块区域”这样仍然抽象的话语来解释,反而显得我骗稿费一般,所以不如先提出一个名词,把解释溶化在后面的文字中。
?本来,开篇就说得很清楚,我写这些东西的目的不是等大家来喊牛,姑妄言之,姑妄听之,水平有限,没有刻意去追求什么文本格式上的东西,自然可能不对大家胃口,我以后注意就是了。但是,说回来,写这些东西的心情和大家写伯克的时候差不多,多半是吐吐心中不吐不快的东西罢了,所以,由着性子,演绎也罢,说明书也罢,文档整理稿也罢,那要看那一阵子我正在看什么书了,如果哪天我不幸开始看小说,来一个欲知后事请听下回分解也说不定。
?我的专业本来就是软件工程,所以写出这些文字,非常自然。
?
?3.1 ASCII字符集
?? ASCII(American Standard Code for Information InterChange)——美国通用信息交换编码。他是现在流行的众多编码的榜样,虽然使用仅仅7位二进制表示(通常用一个字节表示),但是却是众多编码系统的基础,比方说16位二进制为组成的Unicode编码,证据就是,只要在ASCII码前面加9个零就成完成了转换。当然,仍然有不听话的,比方说IBM老大的EBCDIC码(大型计算机系统上用的)。
?? 大家都注意到了7位二进制表示的编码显然只能有128个字符的容量,那么,用一个字节256个字符的容量岂不是造成了浪费?于是,现在PC机上普遍通用的IBM扩展ASCII码从128~255开始扩展了128个字符——注意,这128个字符并不是通用的,即便在我们能接触的大部分场合他们都有效,但是记住他们的“非常任理事国”的身份是拥有重大意义的。
? 比方说,我们的显示系统只需要显示E文字母和数字还有一些标点符号,那么,干什么要这些无用的字符充数呢?要知道,一个字母存储起来需要至少8*7的点阵(7个字节)啊!事实上,由于几乎所有通用单片机内部都不带有ASCII字库(字模码),所以,我们必须把他们存储起来,并且还不能打破原有的存储模式,不然通过ASCII码作为索引我们就找不到他们了。为了完成对字模库的简化,我们需要知道他们的构成方式,然后再考虑如何去获取一个已知的标准字模库,并按照我们设计的方法去简化他…
文档评论(0)