打印

关于C51仿真遇到的运行问题,在编译时不能逐句运行

[复制链接]
1437|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
redliu|  楼主 | 2010-10-26 10:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <reg52.h>
#include <intrins.h>
#include <stdio.h>
#include <math.h>
#include <absacc.h>
#include <string.h>
sbit OUT=P0^4;                                  //输出口p0.4
#define uchar unsigned char
#define uint unsigned int
unsigned int bili;
//void Delay1Ms(uint n);    //延时t*1毫秒
void Hdelay1ms(void)
{
TMOD &= 0xF0;
TMOD |=0x01;
    TH0 = 0xFC;
    TL0 = 0x18;
TF0=0;//清除定时器溢出标志
    TR0 = 1;//启动定时器
while(TF0==0);//等待计数完成
TR0=0;//停止定时器
}
void Delay1Ms(uint n)
{
  unsigned int j;
for(j=n;j>0;j--)
Hdelay1ms();
}
void morse(unsigned char str,unsigned int speed)
{
        bili=3;
        if(str==0x00)
  {
            OUT=1;
            Delay1Ms(speed);
            OUT=0;
            Delay1Ms(speed*bili);
        }
  if(str==0x01)
  {
   OUT=1;
            Delay1Ms(speed);
            OUT=0;
            Delay1Ms(speed);
            OUT=1;
            Delay1Ms(speed);
            OUT=0;
            Delay1Ms(speed);
   }
  if(str==0x02)
   {
            OUT=1;
            Delay1Ms(speed);
            OUT=0;
            Delay1Ms(speed);
            OUT=1;
            Delay1Ms(speed);
            OUT=0;
            Delay1Ms(speed);
            OUT=1;
            Delay1Ms(speed*bili);
            OUT=0;
            Delay1Ms(speed*bili);
  }
      
}
void main(void)
{
bili=3;
morse(0x01,200);
OUT=1;
    Delay1Ms(100);
    OUT=0;
    Delay1Ms(100);
}

相关帖子

沙发
ayb_ice| | 2010-10-26 11:07 | 只看该作者
"编译时运行程序"
雷人的语句啊

使用特权

评论回复
板凳
redliu|  楼主 | 2010-10-26 11:15 | 只看该作者
呵呵!写得比较急,没有仔细看标题,在编译的时候,有些语句编译器认为是注释。

使用特权

评论回复
地板
ayb_ice| | 2010-10-26 11:39 | 只看该作者
LS
那是编译器自动优化了

使用特权

评论回复
5
redliu|  楼主 | 2010-10-26 11:40 | 只看该作者
4楼有解决的办法吗?

使用特权

评论回复
6
ayb_ice| | 2010-10-26 11:45 | 只看该作者
这根本就不是问题,
解决什么
换句说,编译器比我们聪明

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

3

帖子

0

粉丝