AM29F040字库如何编程

qinxuewei101   2009-7-30 11:47 楼主
大家好,
      请教一下各位,我现在51单片机(winbond W78IE054)通过并口接收PC机数据,然后调用AM29F040字库点阵 ,发到打印头进行打印,现在这个AM29F040,我已经把字库放到里面去了,我只需要对此芯片进行读操作就可以了,硬件连接为
/WE直接接高电平VCC 5V, 51单片机(winbond W78IE054) /PSEN接到AM29F040的/OE端, 单片机的P2.7口经过一个非门接到AM29F040的片选端/CE. 那么对该芯片操作地址应该是0x8000。如果是汇编,对其进行读应该是用MOVC 指令吧??我不知道怎么样才能把接收到的PC数据跟字库联系起来啊,哪位能提供一个编程例子啊?也可以加我的Q 573529259教我一下。非常感谢!

回复评论 (5)

存储器分bank,内码->地址 ——> 读取
点赞  2009-7-30 12:27
AM29F040 是4M的容量,有20根地址线,但我其实只用了15根,低8位接单片机P0口,高七位接P2口,也就是32K而已,也用分bank 吗?我是个新手,没用过AM29F040,能否写几句出来看看啊?非常感谢。
你所说的内码是什么,是不是由PC机接收过来的数据啊?
点赞  2009-7-30 12:34
打错了,AM29F040 是512KB的容量,有19根地址线,但我其实只用了15根,低8位接单片机P0口,高七位接P2口,也就是32K而已,也用分bank 吗?我是个新手,没用过AM29F040,能否写几句出来看看啊?非常感谢。 你所说的内码是什么,是不是由PC机接收过来的数据啊? 各位帮帮忙。非常感谢。

点赞  2009-7-30 12:45
51机最多支持16条地址线,要读AM29F040只能分bank,且汉字库用这个ROM也只是够用。

计算机显示文字,用的是机器内码,例如,显示“啊”这个字,数据交换时的编码是“A1B0”,GB2312的编码是1601。用这些码与你字库里的点阵相对照,取出点阵,然后显示在屏幕上。

分bank,实际上也是“扩展”地址线。
点赞  2009-7-30 22:48
在采用BL5l对目标程式进行分组连接定位时,需求系统具有相应的硬件分组扩展逻辑。BL5l默认的分组方式是采用MCU的P1端口作硬件扩展地址线.采用l条Pl引脚时,分组数为2,采用6条P1引脚时,最多可分为64个代码组,剩余的Pl口线也可做其他用途。
    硬件分组还可采用外部数据存储器XDATA空间地址单元来进行,和采用805l的Pl端口作为分组地址线不同的是,对于一个指定用于分组地址的XDATA端口字节中的剩余位,不能再用于其他目的。
    在系统中,以Pl端口作硬件扩展地址线,使用了4条Pl引脚(P1.4~P1.7)。主控部分硬件基本原理图如图1所示。在这里,去除了外围控制接口(如串口)和其他CPU的互联等电路,主要突出怎么实现使用Pl端口作硬件扩展来增加程式空间和数据空间.笔者使用Flash29C040作为程式存储器,通过Pl扩展引脚和该芯片的高4位地址线相连,使用32 KB空间的62256作为外部数据存储器。由于程控交换机中有非常多参数和设置数据需要断电保存,所以使用了另一Flash29CO4O作为扩展的外部数据存储器。
参考: BL51: WRITING YOUR OWN CODE BANKING SYSTEM
http://www.keil.com/support/docs/1083.htm
点赞  2009-7-31 08:02
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复