在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
芯片精品文章合集(500篇!) 创芯人才网--重磅上线啦!
查看: 10111|回复: 6

请问,如何将汇编嵌入到C语言中,具体问题在正文中

[复制链接]
发表于 2006-8-16 11:17:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
while(i>=0)
  {
    if(p0.0==0) break;
    else i--;
   }
这里i之前定义过了i=50
这是一条C语言的语句,而我的目的其实只是想确定在10ms之内,单片机P0.0脚是否变为了低电平,一旦发现它变为了低电平就退出循环,如果没有就一直循环至50次结束。这里,我定的50次就是认为,50次循环大概就是10ms,可是我不知怎么验证这个时间是不是就是10ms
后来我想起来,在学习汇编时,当我们知道机器周期时,由于每条语句执行要占用的几个机器周期是可查的,这样就能准确地定时10ms
我知道一般的话,用C编,它会对你的指令进行优化,所以要进行准确的定时,先用汇编写,然后嵌入到C里
可是我不知如何将汇编语句嵌入到c中

请教各位:)
发表于 2006-9-2 01:27:57 | 显示全部楼层

有没有stc12c2051系列单片机的指令码译码表?

请问各位先生:
   有没有stc12c2051(8051也可)系列单片机的指令码译码表?如果有请给发在邮箱里.
  谢谢你!   以后互相帮助.

[ 本帖最后由 pophyh 于 2006-9-2 01:28 编辑 ]
发表于 2006-9-4 09:11:58 | 显示全部楼层
用个定时器就不用这么麻烦了
发表于 2006-9-5 14:42:46 | 显示全部楼层
可以用定时器,计时到产生中断。
发表于 2006-9-9 15:00:05 | 显示全部楼层
那么小的事情用定时器不时浪费资源嘛
把asm作关键字,其后的汇编用大括号阔起

如:
void set_time(void)
{
   asm
     {
        del1:
        mov   r4,#0fh
        del2:
        mov   r5,#0fh
        djnz   r5,del2
        djnz   r4,del1
      }
}

void set_time(void)
{  asm  del1:
    asm  mov  r4,#0fh
    asm  del2:
    asm  mov  r5,#0fh
    asm  djnz  r5,del2
    asm  djnz  r4,del1
}
还有编译器的设置问题

[ 本帖最后由 b8859 于 2006-9-9 15:50 编辑 ]
发表于 2006-9-28 15:51:22 | 显示全部楼层
b8859
才是点到点子上了!
发表于 2006-9-28 15:58:19 | 显示全部楼层
本来就很简单的事~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-16 17:03 , Processed in 0.020098 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表