📄 ad16744.c
字号:
#include <at89x55.h>
#include<absacc.h>
#include <intrins.h>
#define ADCOM XBYTE[0x9fff] /* 使A0=0, R/C=0, CS=0 */
#define ADLO XBYTE[0xbfff] /* 使R/C=1, A0=1, CS=0 */
#define ADHI XBYTE[0x9fff] /* 使R/C=1, A0=0, CS=0 */
#define uint unsigned int
sbit adbusy=P1^5; /* STS */
sbit LF398=P1^4;
uint AD574(void)
{ /* AD574转换函数 */
uint hi,low,ad57;
uint temp1,temp2;
// rd=1;
ADCOM=0; /* 启动A/D转换 */
while(adbusy==1); /* 等待转换结束 */
// rd=0;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
temp1= ADHI ;
temp2 = ADLO;
hi= ADHI<<4;
low=ADLO>>4;
ad57=low+hi;
return (ad57);
}
void main(void)
{
float result[20];
unsigned char i;
LF398=1;
for(i=0;i<=20;i++)
{result[i]=AD574();
result[i]=(((float)result[i]-0x800)*10)/0x7ff;
} /* 启动AD574进行一次转换, 获得12位转换结果 */
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -