烽火社区

标题: keil简单编程问题 [打印本页]

作者: 1236857377733    时间: 2015-1-4 10:31 AM
首先,你这是个2K限制版本

其次,要使用scanf和printf要想应用到单片机,必须对其进行改造,这不是PC机,哪里有操作系统,哪里有显示器!

再次,你的代码超过2k的原因应该是你使用了scanf和printf,这样编译器就必须加载标准C库文件中的一些代码。

最后还要强调一点,单片机的程序是没有出口的,即主程序中一定要有死循环,使程序不推出

强烈建议楼主仔细阅读一本C51的书籍,不要单纯的把它理解为标准C(尤其是课本上学到的标准C)。
作者: sdjntl    时间: 2015-1-7 01:42 AM
用了scanf和printf会引入错误                                                                                                                                                                       
作者: sdjntl    时间: 2015-1-7 03:53 AM
同意二楼观点。                                                                                                                                                                       
作者: roumao    时间: 2015-1-7 05:13 AM
二楼是高手。                                                                                                                                                                       
作者: dagaoying    时间: 2015-12-31 02:46 AM
标题: keil简单编程问题
下面是一个非常简单的两个数比较大小的C51程序:
#include
#include
main()
{char a,A,m;
SCON=0x52;
TMOD=0x20;
TCON=0x69;
TH1=0x0F3;
scanf("%c %c",&a,&A);
if(a>A) m="a";
else m="A";
printf("\n max=%c \n",m);
}
程序的编译已经通过, 但是当执行debug/start debug session的时候,出现下面错误:
Running with Code Size Limit: 2K
Load "C:\\Keil\\practice3\\shiyan"
*** Restricted Version with 2048 Byte Code Size Limit
*** Currently used: 2119 Bytes (103%)
*** error 120: code size limit exceeded
我选的是AT89C51的内核, 而且就上面的几条程序, 怎么会超过代码限度呢?
我目前还是新手,还请网上的各位大虾帮我解决一下!万分感谢!




欢迎光临 烽火社区 (https://bbs.cnecport.com/) Powered by Discuz! X3.2