我正在尝试使用开发板上的电位分压器创建一个数字电压表。它使用8051芯片。要将其转换为伏特,我们必须将电位器中的数字乘以 5000/196。我有以下可以编译的代码,但是当我将它发送到开发板时,我得到“摘要:
收到 517 行,收到
4694 字节,收到
291 字节写入
错误:4403 字节无法写入”我不知道为什么它不会发送,但我是确定我在下面的代码中的某个地方很傻。
#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--);
}
我完全迷路了,所以任何帮助都会很棒。提前谢谢了