欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 用keil仿真MCU程序直接跑到最后一行,請教各位大俠哪里錯了? [打印本頁]

作者: qisheng108    時間: 2019-3-1 13:14
標題: 用keil仿真MCU程序直接跑到最后一行,請教各位大俠哪里錯了?
我的這個程序無法運行
// STC 官網 STC12C5Axx Series MCU A/D 例程
#include "STC12C5A60S2.H"
#include "stdio.h"
#include "intrins.h"
#define uchar unsigned char
#define UINT8  unsigned int
sbit P2_0 = P2^0;
sbit P2_1 = P2^1;
sbit P2_2 = P2^2;
sbit P2_3 = P2^3;

uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
//共陽數字編碼  0.1.2.3.4....9

UINT8 code tongdao[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07};                 //通道選擇0-7
int getad(UINT8 tongdao);
UINT8 junzhi=0;
void delay(uchar i)         //延時函數
{
  uchar j,k;
  for(j=i;j>0;j--)
    for(k=125;k>0;k--);
}

void display() //顯示函數
{
   P0=table[junzhi/1000];
   P2_0 = 0;
   delay(5);
   P2_0 = 1;

   P0=table[junzhi%1000/100];
   P2_1 = 0;
   delay(5);
   P2_1 = 1;

   P0=table[junzhi%100/10];
   P2_2 = 0;
   delay(5);
   P2_2 = 1;

    P0=table[junzhi%10];
   P2_3 = 0;
   delay(5);
   P2_3 = 1;
   
}
void ad_init()
{
P1M0=0xff;
P1M1=0xff;                        //P1口設置成開漏模式
ADC_CONTR=0xe0;                //開A/D控制寄存器  ADC_POWER(AD電源控制位) SPEED1、SPEED0(為轉換速率選擇位(都為1時)速度最快為210個時鐘/次) ADC_FLAG 轉換結束標志位 ADC_START:ADC轉換器的啟動控制位 CHS2、CHS1
delay(200);
}

int getad(UINT8 tongdao)                  //轉換函數
{
UINT8 jieshu=0;
int jieguo;
ADC_CONTR|=tongdao;
ADC_CONTR|=0x08;
while(jieshu==0)
{
jieshu=(ADC_CONTR&0x10);
}
//jieguo=(ADC_DATA<<2)+ADC_LOW2;   //5410ad單片機用數據調取
         jieguo=ADC_RES;                                  //60s2單片機用數據調取
ADC_CONTR&=0xef;
return (jieguo);
}

float qiuzhi(UINT8 tongdao)                           //濾波求值函數
{
UINT8 junzhi=0;
UINT8 i;
for(i=15;i>0;i--)
{
junzhi+=getad(tongdao);
}
junzhi/=15.0;
junzhi=((junzhi*5.0)/0.256)+5;
//junzhi=junzhi*0.13-30.0;
//junzhi=junzhi/6.5536;
junzhi=(2507-junzhi)/0.86;

return (junzhi);

}
void main()
{
     void ad_init();
  while(1)  
    {
         int getad(UINT8 tongdao);
     float qiuzhi(UINT8 tongdao);
     void display();
     }
}
作者: wulin    時間: 2019-3-1 16:18
  1. void main()
  2. {
  3.         ad_init();
  4.         while(1)  
  5.         {
  6.                 getad(tongdao);
  7.                 qiuzhi(tongdao);
  8.                 display();
  9.         }
  10. }
復制代碼

作者: mwj1983    時間: 2019-3-1 16:23
你沒有描述清楚你的仿真環境,具體問題描述也不清楚,你可以看一下這個帖子,希望對你有幫助。
https://blog.csdn.net/qlexcel/article/details/54949093
作者: xuyaqi    時間: 2019-3-1 16:26
main()里,ad_init()前不該有void。
作者: qisheng108    時間: 2019-3-3 11:50
謝謝各位老師的指點,我試一下




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1