新闻  |   论坛  |   博客  |   在线研讨会
C51中的C与asm混编问题
updatemyself | 2013-04-28 10:42:05    阅读:1358   发布文章

其中我写的实验程序:

#include "reg51.h"


sbit p13 = P1^3;

void delay(void)
{
  #pragma asm
        MOV R0,#250
  DL:  MOV R1,#250
  DE: NOP
  NOP
  DJNZ R1,DE
  DJNZ R0,DL
  #pragma endasm
}

void main()
{
  while(1)
  {
   p13 = 1;
   delay();
   p13 = 0;
   delay();
  }

      在编译的过程中,您可能遇见编译的结果是没有错误的,但是有两个警告,可是实验板子上却没有结果。

找不出程序的错误,所以会很纠结,这就验证了我喜欢说的一句话:电子中的问题,能找出的问题就不是问题。且听我慢慢道来:


您的错误不是出现在程序中,您的程序可能是完全正确的。问题就出现在编译器设置上(使用的编译器为keil4)。那编译器该如何设置呢?那就请看下面的截图:

第一步:打开主文件夹main并右击,选择options for File"  "


第二步:如图勾选三个选项


第三步:选择Manage Components并打开, 在其打开窗口中点击Add fiiles添加文件C51s.LIB(路径为keil4安装路径)



这样就完成了设置过程,就可以编译文件并烧写,板子上会出现实验结果了。

我这是在QQ群里问了,未果。自己然后摸索出来,在这与大家共享。

本人水平有限,不对之处请批评指正。


****************************撰写人:筱辰

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
心有猛虎,细嗅蔷薇。
推荐文章
最近访客