导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→C51编程:硬件字库问题?[whp_j]

 *第8340篇: C51编程:硬件字库问题?

  
楼 主:whp_j 2003年2月20日20:13
 C51编程:硬件字库问题?
最近,我在开发硬件字库,使用的是74LS373和W29C040.我已经把字库HZK16烧入W29C040,
但是我用以下程序从串口读出的数据为32个0XFF;而不是“海”的字模:
unsigned char code Bmp037[]=
{
/*-----------------------------------------------------------------------------
-
  源文件 / 文字 : 海
  宽×高(像素): 16×16
  字模格式/大小 : 单色点阵液晶字模,横向取模,字节正序/32字节
  数据转换日期  : 2003-2-20 16:17:16
------------------------------------------------------------------------------
*/
0x21,0x00,0x11,0x00,0x11,0xFE,0x02,0x00,0x97,0xF8,0x52,0x88,0x52,0x48,0x12,0x08
,
0x2F,0xFE,0x22,0x88,0xE2,0x48,0x22,0x08,0x23,0xFE,0x20,0x08,0x20,0x28,0x20,0x10
};
所以我想请教你们,不知道你们有不有C语言的参考程序。我这里有一份“青岛海洋大学
PHLIPS单片机实验室的资料《硬件汉字库设计原理与应用》。恳请你们帮帮忙,谢谢!

/************************************************
描述硬件电路:
1,地址连接
P00----A00;(A00-A14:大小为32K)
----------
P07----A07;
P20----A08;
----------
P26----A14;
P10----A15;(A15-A18:为页选择)
----------
P13----A18;
2,控制线连接(EEPROM)
/CE:片选端---接地
/OE:读出信号--接RD(P3.7)
/WE:写入信号--接WR(P3.6)

3.控制线连接(74LS373)
/OE:输出使能端-接地
 LE:锁存使能端-接ALE(脚33)
************************************************/
#include <REG668.H>
#include <absacc.h>

#define uchar unsigned char
#define uint  unsigned int
#define ulong unsigned long


uchar port_1;
uint  port2_port0;

union
{
ulong address_last;
uint  address;
uchar c[4];
}a;

uchar table[]={"海"};

uchar data zimo[32];

void delay(count)       //crystal=20mz,10MS
{
 uchar i,j,k;
 for(i=0;i<count;i++)
    for(j=0;j<10;j++)
       for(k=0;k<200;k++)
          ;
}

ulong jinei_to_quwei(void)
{
ulong mul_result;
uint dph,dpl;

    dph=0;
    dpl=0;
    mul_result=0;
    dph=table[0];
    dpl=table[1];
    dph=dph-0xa1;
    dpl=dpl-0xa1;
    mul_result=dph*94+dpl;
 
return mul_result;   
}

void read_eeprom(uchar port1,uint port2_port0)
{
uchar i;
P1=port1;
for(i=0;i<32;i++)
{
zimo[i]=XBYTE[port2_port0+i];//这里是否有错
误??????????????????
}
}

/*****************************************/
void Init_Serial(void)
{

//设置波特率
TMOD=0x20;
TH1=0xf5; //9600HZ
TCON=0x40;
//设置串口
S0CON=0x72;
PCON=0x00;
EA=0;
//启动定时器
TR1=1;
}

void Tran_Data_Pc(char shuju)
{
if(TI==1)
     { 
     TI=0;
     S0BUF=shuju;
     }
}
/*************************************************/

void main(void)
{
uchar j;
ulong  address;
Init_Serial();
address=jinei_to_quwei();
a.address_last=32*address;
port_1=a.c[1];
port2_port0=a.address_last&0x0000FFFF;
read_eeprom(port_1,port2_port0);
while(1)
{
for(j=0;j<32;j++)
   {
    Tran_Data_Pc(zimo[j]);
    delay(10);
   }
}
}


>>>>>>对该主题发表你的看法

本主题贴数1,分页: [第1页]


[上一篇主题]:AVR单片机:AVR指令的ORI与SBR有何区别

[下一篇主题]:硬件:如何检测直流电流,大约20mA