钻石会员
  
主题
帖子
积分11063
阅读权限50
注册时间2009-12-25
最后登录1970-1-1
在线时间 小时
|
编译遇到的问题
Program Size: data=22.1 xdata=0 code=7374 lcd19264_DS1302_ok_00
void Show88(uchar lin,uchar column,uint address)
{ for(i=0;i<8;i++) Write_data( CBYTE[address+i] );
}
Show88(lin,column, (uchar)(ASCII816[(character)]));
Program Size: data=27.1 xdata=0 code=7411 lcd19264_DS1302_ok_01
void Show88(uchar lin,uchar column,unsigned char * address)
{ for(i=0;i<8;i++) Write_data( CBYTE[(unsigned char )( address+i)] );
}
Show88(lin,column, ASCII816[character]);
Program Size: data=26.1 xdata=0 code=7482 lcd19264_DS1302_ok_02
void Show88(uchar lin,uchar column,unsigned char address[])
{
for(i=0;i<8;i++) Write_data( address);
}
Show88(lin,column, (HZTable[hzcode]));
c51特有的变量 CBYTE
编译参数都必须用Small: variables in DATA
不能使用XDATA,原因不明
Program Size: data=9.1 xdata=11 code=11806 lcd19264_DS1302_ok_03
只有lcd19264_DS1302_ok_03可以使用Large: variables in XDATA参数。但生成的代码多。原因不明
我用Keil 编译c51习惯用Large: variables in XDATA参数编译代码。
楼主原来的代码用了一个c51特有的变量CBYTE,而且只能使用Small: variables in DATA参数编译,不易于移植其它单片机。我修改了一下,但是生成的代码有11806(原来的是7374),仿真文件我稍微排版了一下。换成AT89C51RD2仿真器件,不然11k的代码无法正常运行。
在仿真文件目录添加了Proteus Pro 7.7 SP2的DS12887.DLL,让低版本的Proteus可以仿真
lcd19264_DS1302_DS12CR887_Proteus.rar
(1.23 MB, 下载次数: 616)
|
|