我正在嘗試使用開發板上的電位分壓器創建一個數字電壓表。它使用一個8051芯片。爲了將其轉換爲伏特,我們必須將該罐中的數字乘以5000/196。我有以下的代碼編譯,但是當我把它發送給董事會,我得到 「摘要:收到
517線
4694字節收到書面
291字節
錯誤: 4403字節無法寫入」 我有不知道爲什麼它不會發送,但我確信我在我的代碼下面的某個地方很愚蠢。用C語言與8051芯片一起使用float問題
#include<8051.h> //header file, containing information on 8051
#include<stdio.h> //standard input/output file
#include<math.h>
#define DAC 0x0600 //DAC address
float conv=5000/196;
unsigned char xdata * idata DPTR; //pointer declaration, made as external to main
unsigned int volt_in;
void delay();
void main()
{
unsigned char a; //variable to store signal value
DPTR=DAC; //pointer as a variable takes address of // DAC
while(1)
{
a=0;
*DPTR=a; //assign a to address in DPTR
while(P3_5!=0){
a++;
*DPTR=a;
}
a=(int) a*conv;
volt_in=a;
printf ("The voltage is %d Mv. \r" , volt_in);
a=~a;
P1=a;
//delay();
}
}
void putchar(char c)
{
while(!TI);
TI=0;
SBUF=c;
}
void delay()
{
unsigned int k;
for (k=0xFFFF;k>0;k--);
}
我完全失去了,所以任何幫助將是偉大的。非常感謝提前
這聽起來像錯誤只是試圖「安裝」應用程序,而不是與應用程序的*執行*(或代碼發佈) - 對嗎? – 2013-03-18 18:35:48
也許是太大的可執行文件?就像,你有4k程序存儲器? (實際上猜測是盲目的)。 – Aneri 2013-03-18 18:39:13
我想你使用at89c51。如果是這樣的話,那麼在微控制器燒錄時就會出現閃存溢出的情況。只要在at89S52或更多閃存的一些變體上。 – rajesh6115 2013-04-15 11:50:16