51单片机 C语言ADC程序怎么写

51单片机 C语言ADC程序怎么写,第1张

typedef unsigned char BYTE;

typedef unsigned int WORD;

#include "reg51h"

#include "intrinsh"

/Declare SFR associated with the ADC /

sfr ADC_CONTR = 0xBC;

sfr ADC_RES = 0xBD;

sfr ADC_LOW2 = 0xBE;

sfr P1ASF = 0x9D;

sfr P2M0 = 0x96;

sfr P2M1 = 0x95;

/Define ADC operation const for ADC_CONTR/

#define ADC_POWER 0x80

#define ADC_FLAG 0x10

#define ADC_START 0x08

#define ADC_SPEEDLL 0x00

#define ADC_SPEEDL 0x20

#define ADC_SPEEDH 0x40

#define ADC_SPEEDHH 0x60

//延时

void Delay(WORD n)

{

WORD x;

while (n--)

{

x = 5000;

while (x--);

}

}

//初始AD寄存器

void InitADC()

{

P1ASF = 0xff;

ADC_RES = 0;

ADC_CONTR = ADC_POWER | ADC_SPEEDLL;

Delay(2);

}

//AD转换

BYTE GetADCResult(BYTE ch)

{

ADC_CONTR = ADC_POWER | ADC_SPEEDLL | ch | ADC_START;

_nop_();

_nop_();

_nop_();

_nop_();

while (!(ADC_CONTR & ADC_FLAG));

ADC_CONTR &= ~ADC_FLAG;

return ADC_RES;

}

void main()

{ BYTE temp;

P2M1=0; P2M0=0x03; //P20和P21强推挽

InitADC();

while (1)

{

temp=GetADCResult(0);//转换P10

if(temp>1)

P2|=0x03; //P10有电压 P20和P21输出高

else

P2&=0xFC; //P10无电压 P20和P21输出低

}

}

这个不好一概而论。关键是要看你的这个格式文件是如何生成的?例如:如果是用户自己编写的 C 语言源程序,由用户自己使用特定的文件格式、且由 fwrite( ) 库函数创建的用户文件,那么就必须要由配对的 fread( ) 库函数按照特定的文件格式读取文件内容,只有这样,才能够正确读取出文件内容。如果不是按照特定的文件格式读取文件内容,那么是无法正确读取文件内容的。同理,如果你不知道文件的具体格式,那么是无法正确打开文件的。即使使用某一种编辑软件打开了该文件(例如:UltraEdit),那么肯定也是一堆毫无意义的乱码。

以上就是关于51单片机 C语言ADC程序怎么写全部的内容,包括:51单片机 C语言ADC程序怎么写、文件格式错误是什么原因、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10626389.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存