3K左右的程序,编辑时超过16K?

[复制链接]
3500|8
 楼主| action99 发表于 2008-11-3 14:59 | 显示全部楼层 |阅读模式
我加了LCD显示后发现整个程序大于16K了,编辑出错,但我的程序最多只有3K,为什么会超过16K的,我用的是18F4423,请大哥指教一下,&nbsp;部分程序如下:<br />#pragma&nbsp;code<br /><br />unsigned&nbsp;char&nbsp;StepCount;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><br /><br />unsigned&nbsp;char&nbsp;receive_buff;&nbsp;&nbsp;&nbsp;&nbsp;<br /><br />unsigned&nbsp;char&nbsp;ad_chanel;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br /><br />unsigned&nbsp;short&nbsp;long&nbsp;&nbsp;a164;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//0x98&nbsp;0x99&nbsp;0x9a<br /><br />unsigned&nbsp;int&nbsp;AD_total;<br />unsigned&nbsp;char&nbsp;rx_232_cnt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//@0xa0<br />char&nbsp;rx_232_buf;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//0x102<br />unsigned&nbsp;short&nbsp;long&nbsp;a164_buf;<br />signed&nbsp;&nbsp;&nbsp;long&nbsp;kb;<br />int&nbsp;MixPrecent;<br />int&nbsp;MaxPrecent;<br />int&nbsp;Res;<br />char&nbsp;Sign;<br />unsigned&nbsp;char&nbsp;Time0_cnt;<br /><br />char&nbsp;ResResult[6];<br /><br />unsigned&nbsp;char&nbsp;Disp_Data_Buff[16];<br />unsigned&nbsp;char&nbsp;ResultSign[13];<br />unsigned&nbsp;char&nbsp;ReadBCD[18];<br />unsigned&nbsp;int&nbsp;AD_Up_DATA[4];<br />unsigned&nbsp;int&nbsp;AD_DOWN_DATA[4];<br />unsigned&nbsp;int&nbsp;AD_LEFT_DATA[4];<br />unsigned&nbsp;int&nbsp;AD_RIGHT_DATA[4];<br /><br />unsigned&nbsp;&nbsp;char&nbsp;sin[6]=<br />{97,98,99,100,101,35};<br />#pragma&nbsp;code<br />/*--&nbsp;&nbsp;文字:&nbsp;&nbsp;上&nbsp;&nbsp;--*/<br />/*--&nbsp;&nbsp;宋体11;&nbsp;&nbsp;此字体下对应的点阵为:宽x高=14x14&nbsp;&nbsp;&nbsp;--*/<br />/*--&nbsp;&nbsp;高度不是8的倍数,现调整为:宽度x高度=14x16&nbsp;&nbsp;--*/<br /><br />unsigned&nbsp;rom&nbsp;far&nbsp;char&nbsp;up_array[28]={<br />0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x10,0x10,0x10,0x10,0x00,0x00,0x00,<br />0x10,0x10,0x10,0x10,0x10,0x10,0x1f,0x10,0x10,0x10,0x10,0x10,0x10,0x00<br />};<br />unsigned&nbsp;rom&nbsp;far&nbsp;char&nbsp;seun_array[28]={<br />0xFf,0x01,0x11,0x2d,0xc3,0x00,0xff,0x49,0x49,0x49,0xc9,0x7f,0x00,0x00,<br />0x1f,0x02,0x04,0x02,0x01,0x00,0x1f,0x09,0x02,0x05,0x08,0x18,0x08,0x00<br />};<br />unsigned&nbsp;rom&nbsp;far&nbsp;char&nbsp;down_array[28]={<br />0x01,0x01,0x01,0x01,0x01,0xff,0x01,0x11,0x21,0x41,0xc1,0x01,0x01,0x00,<br />0x00,0x00,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00<br />};<br /><br />unsigned&nbsp;rom&nbsp;far&nbsp;&nbsp;char&nbsp;dot_array[12]={<br />0x00,0x00,0x18,0x18,0x00,0x00,<br />0x00,0x00,0x03,0x03,0x00,0x00<br />};<br /><br />unsigned&nbsp;rom&nbsp;far&nbsp;char&nbsp;Big_0_array[14]={<br />0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,<br />0x03,0x04,0x08,0x08,0x04,0x03,0x00<br /><br />};<br /><br />unsigned&nbsp;rom&nbsp;far&nbsp;char&nbsp;Big_1_array[14]={<br />0x00,0x10,0x10,0xF8,0x00,0x00,0x00,<br />0x00,0x08,0x08,0x0F,0x08,0x08,0x00<br />};<br />unsigned&nbsp;rom&nbsp;far&nbsp;char&nbsp;Big_2_array[14]={<br />0x00,0x30,0x08,0x08,0x88,0x70,0x00,<br />0x00,0x0C,0x0A,0x09,0x08,0x0C,0x00<br />};<br />unsigned&nbsp;rom&nbsp;far&nbsp;char&nbsp;Big_3_array[14]={<br />0x00,0x30,0x08,0x48,0x48,0xB0,0x00,<br />0x00,0x06,0x08,0x08,0x08,0x07,0x00<br />};<br />unsigned&nbsp;rom&nbsp;far&nbsp;char&nbsp;Big_4_array[14]={<br />0x00,0xC0,0x20,0x10,0xFC,0x00,0x00,<br />0x01,0x02,0x02,0x0A,0x0F,0x0A,0x00<br />};<br />unsigned&nbsp;rom&nbsp;far&nbsp;char&nbsp;Big_5_array[14]={<br />0x00,0xF8,0x48,0x48,0x48,0x88,0x00,<br />0x00,0x06,0x08,0x08,0x08,0x07,0x00<br />};<br />unsigned&nbsp;rom&nbsp;far&nbsp;char&nbsp;Big_6_array[14]={<br />0xE0,0x90,0x48,0x48,0x48,0x98,0x00,<br />0x07,0x08,0x08,0x08,0x08,0x07,0x00<br />};<br />unsigned&nbsp;rom&nbsp;far&nbsp;char&nbsp;Big_7_array[14]={<br />0x00,0x38,0x08,0x88,0x68,0x18,0x00,<br />0x00,0x00,0x00,0x0F,0x00,0x00,0x00<br />};<br />unsigned&nbsp;rom&nbsp;far&nbsp;char&nbsp;Big_8_array[14]={<br />0x30,0xC8,0x88,0x88,0xC8,0x30,0x00,<br />0x07,0x08,0x08,0x08,0x08,0x07,0x00<br />};<br />unsigned&nbsp;rom&nbsp;far&nbsp;char&nbsp;Big_9_array[14]={<br />0xF0,0x08,0x08,0x08,0x88,0xF0,0x00,<br />0x0C,0x09,0x09,0x09,0x04,0x03,0x00<br />};<br />unsigned&nbsp;rom&nbsp;far&nbsp;char&nbsp;Big_dot_array[6]={<br />0x00,0x00,0x00,<br />0x00,0x0C,0x0C<br />};<br />unsigned&nbsp;rom&nbsp;far&nbsp;char&nbsp;Big_small_array[4]={<br />0x00,0x60,0x60,0x00<br />};<br />unsigned&nbsp;rom&nbsp;far&nbsp;char&nbsp;Small_N1_array[8]={<br />0x00,0x84,0xfe,0x80,0x00,0x00,0x00,0x7F};<br />unsigned&nbsp;rom&nbsp;far&nbsp;char&nbsp;Small_N2_array[8]={<br />0x00,0xC4,0xA2,0x92,0x8C,0x00,0x00,0x7F};<br />unsigned&nbsp;rom&nbsp;far&nbsp;char&nbsp;Small_N3_array[8]={<br />0x00,0x44,0x92,0x92,0x6c,0x00,0x00,0x7f};<br />unsigned&nbsp;rom&nbsp;far&nbsp;char&nbsp;Small_N4_array[8]={<br />0x30,0x28,0x24,0xfe,0x20,0x00,0x00,0x7f};<br />unsigned&nbsp;rom&nbsp;far&nbsp;char&nbsp;Small_0_array[6]={<br />0x00,0x7c,0x82,0x82,0x7c,0x00};<br />unsigned&nbsp;rom&nbsp;far&nbsp;char&nbsp;Small_1_array[6]={<br />0x00,0x84,0xfe,0x80,0x0,0x00};<br />unsigned&nbsp;rom&nbsp;far&nbsp;char&nbsp;Small_2_array[6]={<br />0x00,0xc4,0xa2,0x92,0x8c,0x00};<br />unsigned&nbsp;rom&nbsp;far&nbsp;char&nbsp;Small_3_array[6]={<br />0x00,0x44,0x92,0x92,0x6c,0x00};<br />unsigned&nbsp;rom&nbsp;far&nbsp;char&nbsp;Small_4_array[6]={<br />0x30,0x28,0x24,0xfe,0x20,0x00};<br />unsigned&nbsp;rom&nbsp;far&nbsp;char&nbsp;Small_5_array[6]={<br />0x00,0x4e,0x8a,0x8a,0x72,0x00};<br />unsigned&nbsp;rom&nbsp;far&nbsp;char&nbsp;Small_6_array[6]={<br />0x7c,0x92,0x92,0x92,0x60,0x00};<br />unsigned&nbsp;rom&nbsp;far&nbsp;char&nbsp;Small_7_array[6]={<br />0x00,0x02,0xf2,0x0a,0x06,0x00};<br />unsigned&nbsp;rom&nbsp;far&nbsp;char&nbsp;Small_8_array[6]={<br />0x00,0x6c,0x92,0x92,0x6c,0x00};<br />unsigned&nbsp;rom&nbsp;far&nbsp;char&nbsp;Small_9_array[6]={<br />0x00,0x0c,0x92,0x92,0x7c,0x00};<br /><br /><br /><br />#pragma&nbsp;code&nbsp;<br /><br />void&nbsp;main(void){<br />&nbsp;&nbsp;&nbsp;&nbsp;Delay1KTCYx(200);&nbsp;&nbsp;&nbsp;&nbsp;//40ms<br />&nbsp;&nbsp;&nbsp;&nbsp;Init();&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;GetBCD();<br />&nbsp;&nbsp;&nbsp;&nbsp;GetBCD();<br />&nbsp;&nbsp;&nbsp;&nbsp;GetBCD();&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;LCD_Init();<br />&nbsp;&nbsp;while(1){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;StartSing();<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;if(F0.Bit.START)ad_action();<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;if(F0.Bit.Send_PC)SendRS232();<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;if(F1.Bit.Send_PLC)SendPLC();<br /><br />&nbsp;&nbsp;&nbsp;//&nbsp;Disp_Result();<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /><br />。。。。。。。<br />。。。。。。。<br />下面一共有2000行的程序。。程序应该不可能会超过16K的,请高手指点。。。<br /><br />&nbsp;<br />
 楼主| action99 发表于 2008-11-4 08:15 | 显示全部楼层

是不是我的编译器的问题?

我用的是PIC18F4423,MCC18的编译器,他过期了吗,还是最多只能编译2K的程序?
兰天白云 发表于 2008-11-4 09:50 | 显示全部楼层

试用版吧

  
 楼主| action99 发表于 2008-11-4 11:02 | 显示全部楼层

大哥,请问那有免费版的。。小弟急需

大哥,请问那有免费版的。。小弟急需
 楼主| action99 发表于 2008-11-4 14:05 | 显示全部楼层

大家帮帮我呀,有什么办法

大家帮帮我呀,有什么办法?我用了“正版MCC18_V3.00安装”可以编辑其他型号的芯片,但如果我使用18F4423这个芯片的时候一定要用“MPLAB-C18-Upgrade-v3_16”编译器才可以使用的。但是这个编译器是有限制的,怎么样才可以**?急。。。。。
 楼主| action99 发表于 2008-11-4 14:55 | 显示全部楼层

用这个软件mplab_c18_v3_patch确解也不行

用这个软件mplab_c18_v3_patch确解也不行,在编译时也会出错的,<br />出错如下:<br />E:lcdmain.c:1406:Error&nbsp;[1033]&nbsp;preprocessor&nbsp;can&nbsp;only&nbsp;input&nbsp;one&nbsp;file&nbsp;at&nbsp;a&nbsp;time<br />Halting&nbsp;build&nbsp;on&nbsp;first&nbsp;failure&nbsp;as&nbsp;requested.<br />BUILD&nbsp;FAILED:&nbsp;Tue&nbsp;Nov&nbsp;04&nbsp;14:50:10&nbsp;2008<br />为什么会这样的?高手指教。。。
iceweb 发表于 2008-11-4 18:39 | 显示全部楼层

PIC 单片机

有什么办法?我用了“正版MCC18_V3.00安装”可以编辑其他型号的芯片,但如果我使用18F4423这个芯片的时候一定要用“MPLAB-C18-Upgrade-v3_16”编译器才可以使用的。但是这个编译器是有限制的,怎么样才可以**?急。。。。。<br /><br />
 楼主| action99 发表于 2008-11-5 09:43 | 显示全部楼层

自顶一个。。。希望有高手能帮助

自顶一个。。。希望有高手能帮助
 楼主| action99 发表于 2008-11-6 14:53 | 显示全部楼层

这样的程序编译后达到6.3K.请大家来看看,

这个程序是我驱动一个128*64的LCD的,编译通过了但程序量大了,达到6.3K,大家帮我看看那里能完善的地方?谢谢,,上面的问题已经找到就是我的ROM超出了,我的MCU最大是8K,<br /> 相关链接:<a href='https://bbs.21ic.com/upfiles/img/200712/2007122215624482.rar'>https://bbs.21ic.com/upfiles/img/200712/2007122215624482.rar</a>
您需要登录后才可以回帖 登录 | 注册

本版积分规则

87

主题

189

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部