搜索
bottom↓
回复: 2

请问傻孩子,将HZK16标准字库放到有19根地址线的外部flash,如何根据字的偏移量来计算各

[复制链接]

出0入0汤圆

发表于 2010-11-15 18:03:29 | 显示全部楼层 |阅读模式
放在外部flash里面,flash的大小肯定得大于262k,那就需要用19跟地址线来进行寻址,那么如何根据偏移地址来计算这个字模在flash中的实际地址呢,我手上有一个程序,但是我看不懂是如何进行寻址的,
硬件电路时这样连接的
点击此处下载 ourdev_598133FJ74RS.pdf(文件大小:43K) (原文件名:Protel Schematic.pdf)
字库文件是放在u25芯片的flash中,u25一共有19跟地址线,需要分开寻址,a0-a12,q0-q5,一共19跟地址线寻址
显示汉字程序时这样的:
#define B377        XBYTE[0xd800]   //原理图中的u4芯片
/*-----------------------------------------------------------------------------------------
**函数名:hzdisplay()
**功能:显示一个汉字
**参数:x-列,y-行,party-汉字内码区号,addr-汉字内码位码,style-反显正常显示
**返回:void
------------------------------------------------------------------------------------------*/
void hzdisplay(uchar x, uchar y, uchar party, uchar addr,uchar style)    //显示一个汉字
{
        uchar i;
        uint realaddr,ttp,temp;
        uchar xdata *hz;

        ttp=party*94+addr-95;   //计算汉字在GB 2312-80区中的位置 index = (94*(region-1)+location-1)*32;//数组内地址
        temp=ttp<<5;                    //每个字模有32个字节,所以计算得到的地址需要乘以32
        temp&=0x1fff;
        temp|=0xa000;                        //取低13位,此时temp为此字字模的首地址
        B377=ttp>>8;                        //取高6位,并用74hc377锁存送出,共19位地址,采用040做字库

        ttp=x+y*30;           //计算液晶控制器ram的地址
        for(i=0;i<16;i++)
        {
                   realaddr=ttp+i*30;
                   addrset(realaddr);//写地址
                   hz=temp;
                hz+=i<<1;
            data1w((style)?~(*hz):*hz);//写数据显示
                   addrset(realaddr+1);
                   hz++;
                   data1w((style)?~(*hz):*hz);
        }
}

这几句不明白:
temp&=0x1fff;
temp|=0xa000;                        //取低13位,此时temp为此字字模的首地址
B377=ttp>>8;                        //取高6位,并用74hc377锁存送出,共19位地址,采用040做字库

我想问一下,确定字在字库中的位置后,如何去rom寻址,a0-a12这个显而易见,那q0-q5如何取值呢?即如何高6位地址,为什么是右移8位呢?

出0入296汤圆

发表于 2010-11-17 22:11:08 | 显示全部楼层
这个不太懂啊……没有弄过……

出0入4汤圆

发表于 2010-11-17 23:02:05 | 显示全部楼层
俺也不懂..不过建议你不如尝试一下成品的字库芯片
我见过so-8封装的spi接口字库,价格3块钱上下,也有其他接口的
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-4 19:25

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表