找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2798|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

用keil仿真MCU程序直接跑到最后一行,請(qǐng)教各位大俠哪里錯(cuò)了?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:349144 發(fā)表于 2019-3-1 13:14 來(lái)自手機(jī) | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
我的這個(gè)程序無(wú)法運(yùn)行
// STC 官網(wǎng) 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};
//共陽(yáng)數(shù)字編碼  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)         //延時(shí)函數(shù)
{
  uchar j,k;
  for(j=i;j>0;j--)
    for(k=125;k>0;k--);
}

void display() //顯示函數(shù)
{
   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口設(shè)置成開(kāi)漏模式
ADC_CONTR=0xe0;                //開(kāi)A/D控制寄存器  ADC_POWER(AD電源控制位) SPEED1、SPEED0(為轉(zhuǎn)換速率選擇位(都為1時(shí))速度最快為210個(gè)時(shí)鐘/次) ADC_FLAG 轉(zhuǎn)換結(jié)束標(biāo)志位 ADC_START:ADC轉(zhuǎn)換器的啟動(dòng)控制位 CHS2、CHS1
delay(200);
}

int getad(UINT8 tongdao)                  //轉(zhuǎn)換函數(shù)
{
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單片機(jī)用數(shù)據(jù)調(diào)取
         jieguo=ADC_RES;                                  //60s2單片機(jī)用數(shù)據(jù)調(diào)取
ADC_CONTR&=0xef;
return (jieguo);
}

float qiuzhi(UINT8 tongdao)                           //濾波求值函數(shù)
{
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();
     }
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:213173 發(fā)表于 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. }
復(fù)制代碼
回復(fù)

使用道具 舉報(bào)

板凳
ID:482783 發(fā)表于 2019-3-1 16:23 | 只看該作者
你沒(méi)有描述清楚你的仿真環(huán)境,具體問(wèn)題描述也不清楚,你可以看一下這個(gè)帖子,希望對(duì)你有幫助。
https://blog.csdn.net/qlexcel/article/details/54949093
回復(fù)

使用道具 舉報(bào)

地板
ID:94031 發(fā)表于 2019-3-1 16:26 | 只看該作者
main()里,ad_init()前不該有void。
回復(fù)

使用道具 舉報(bào)

5#
ID:349144 發(fā)表于 2019-3-3 11:50 來(lái)自手機(jī) | 只看該作者
謝謝各位老師的指點(diǎn),我試一下
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表