微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 程序可以编译但不能成功下载

程序可以编译但不能成功下载

时间:10-02 整理:3721RD 点击:
程序成功编译但不能下载,将void ad_convert()删除以后能成功下载,这是为什么?应该怎么改
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit AD_eoc=P1^0;
sbit AD_clk=P1^1;
sbit AD_add=P1^2;
sbit AD_datout=P1^3;
sbit AD_cs=P1^4;
uchar  Send[5];
uchar table[]={'0','1','2','3','4','5','6','7','8','9','.'};
uint ad_now;
void init()
{
    TMOD=0x20;//设置定时器1为工作方式2
TH1=0xfd;//设置波特率
TL1=0xfd;//设置波特率
TR1=1;//打开定时器1
REN=1;//允许串口接收数据
SM0=0;//工作方式
SM1=1;//工作方式
EA=1;//打开总中断
ES=1;//打开串口中毒
}
uint ADC(uchar chn1)
{
uchar i;
uchar m;
uchar addr8;    //通道地址
uint ADresult;
AD_eoc=1;
AD_cs=0;
_nop_();
addr8=chn1;
addr8<<=4;
for(i=0;i<4;i++)//通道地址输入至DATAINPUT
{
  AD_add=(bit)(addr8&0x80);
  AD_clk=1;
  AD_clk=0;
  addr8<<=1;
}
for(i=0;i<6;i++)
{
  AD_clk=1;
  AD_clk=0;
}
AD_cs=1;
while(!AD_eoc);  //查询到转换结束
_nop_();
ADresult=0;
AD_cs=0;   //cs下降沿开始传数据
for(i=0;i<10;i++)
{
  AD_clk=1;
  ADresult<<=1;
  m=AD_datout;
  ADresult+=m;
  AD_clk=0;
}
AD_cs=1;
return ADresult;
}
void ad_convert()
{
   ad_now=((ADC(0x00)));
   Send[0]=table[ad_now/1000];
   Send[1]=table[ad_now%1000/100];
   Send[2]=table[ad_now%100/10];
   Send[3]=table[ad_now%10];
   Send[4]=table[10];
   
  }
void main()
{
    uchar i;
    init();
while(1)
  {
           ad_convert();
                    for(i=0;i<5;i++)
       {
        TI=0;
      SBUF=Send[i];
      while(!TI);
      TI=0;
        }
  }
}

程序不会影响下载的吧。我试了,可以下载。例外ad_now=((ADC(0x00)));这多了一个括号。

但是我不知道为什么下载不了下载不了,每次下到图所示就停了


你波特率设置错了吧,怎么设置德这么低。设置为9600看看。有可能是波特率设置太低了。不行再换一个程序看看能不能下载。

已经解决了,换了个电脑,谢啦

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top