uchar a1,b1。dflag是总数不能大于四,当a1为0后,用dflag-(b1%0x10);当a1不为0,则判断b1+dflag是否大于4,如果大于四,则不动作,小于四则dflag=dflag+(b%0x10)并将a1左移4位。(因为a1为2个单数的组合)
if(a1/0x10==bflag)
{
if(((a1<<4)/0x10)==0)
{
dflag=dflag-(b1%0x10);
b1=0;
a1=0;
}
else
{
if((dflag+(b1%0x10))<=0x04)
{
a1=a1<<4;
dflag=dflag+(b1%0x10);
yiweiflag=1;
}
}
}
a1的范围是1至5整数,由其他单片机发送
b1的范围是0至4整数,由其他单片机发送
经不断复查。最后发现if((dflag+(b1%0x10))<=0x04)
有问题,把0x04改到大于0x10就能运行了。
但是问题在于我在keil里0x04是完美运行的啊。。。好奇怪啊(我保证其他单片机发送的数据也正确,求证过了)
不是啊。if((dflag+(b1%0x10))<=0x04)
这句我在keil里运行很好啊,但是单片机就不行,烧进去就错误
你说的错误是指结果 不对呢?还是压根不能运行啊?
跟编译器没关系吧。。
追答我做的程序在uv3编译的就不能正常工作,改为uv4后就没问题了。
dsdfsa妹啊
追答型号选错了吧
keil编译没有错误为什么烧进单片机不运行
Keil没有报错只能说明逻辑没有错误,但是不能运行有两方面原因:第一是你的程序设计有问题。第二是单片机硬件电路的问题。请在单片机可以正常工作的情况下,检查程序中各个子程序,引脚定义等等。
KEIL编译时没问题 运行时出现*** error 65: access violation at C:0x...
这种多半是因为程序写的不够严谨,没有形成闭环,所以在运行时,程序跑飞了。从信息看,你的程序试图将0000地址的code作为变量访问,但一般单片机都会出于防止代码剽窃的目的而设计硬件电路,防止这种情况的发生。
keil3 编译问题 编译通过,能下载到单片机里。 但却不能用?
软件已经破解成功,警告是指:存在 调用 却未 声明 的 外部函数。不过却是 main 函数,需要更详细的信息进行分析。如 工程中的 所有 文件名称,主文件中的 main函数,被调用的其他函数 的声明 等。
求大佬解疑:为什么用keil在仿真上可以用,在单片机上就啥反应也没呢...
您好:①首先麻烦您先确认自己有没有把程序烧录到单片机里面去;②如果您确认程序编译通过,且烧录到单片机中去了,那么后面需要确认的是,端口的定义以及原理图是不是有问题?
单片机C8051F410显示编译成功,但是程序不能运行。 Program Size: data...
keil软件没有注册只能运行code小于2KB的程序,或者target options>target>code rom size 选项选择错误 要选择large: 64K program
KEIL 单片机编程问题,好多错误。求大神帮改一下。万分感激
write_string(2,0," 平顶山市卫校 "); write_string(3,0," "); Send_threelines(0x10,0); \/\/语音播报 } } }}现在,已经可以编译了。原文中,就缺少很多变量和函数。题主应该给出全面的程序。
keil软件生成的的hex文件烧制到单片机里打开单片机没反应是怎么...
编写的程序错误,或者硬件有问题,估计是你程序有问题多,很多时候即使编译没有错误和警告,也经常会达不到想要的效果,程序都是要耐心调试后才能达到想要的效果的
单片机C语言keil编译出现错误,寄存器容量不足,怎么改正,急!!!_百度...
我用keil2,keil4编译都没有问题的。重新建一个工程,再试下。下图就是用keil4编译的结果。估计是没有破解。或者破解的不对。
单片机 keil软件编程提示错误,求解决…… 想知道这些都是什么个意思...
如果你在下图所示中的 Memory Model 里设置成 Small:variables in DATA,则DATA空间很快便用完,导致data空间不够用。解决的办法有两种,一是通过更改Memory Model设置,可以设置成pdata或xdata,以便有足够大的空间,但这又带来新的问题,程序运行速度减慢,而且code代码也会加大,因为如果一个局部变量被...
单片机汇编程序在keil中编译成功,但是Proteus中却仿真不了
编译成功 只能证明语法正确 可能你的硬件有问题,也可能程序就不对,单步执行一下吧。。看看 ,也可能protus的问题 以前我做数码管的动态显示。。就不行。。。放在开发板上就行。