max188.c
来自「MAX188 低功耗、8通道、串行12位ADC」· C语言 代码 · 共 80 行
C
80 行
//MAX188 低功耗、8通道、串行12位ADC
#include "reg51.H"
#include "cabe.h"
#define DIN T0
#define DOUT T1
#define SCLK INT1
#define CS P14
#define SSTRB INT0
/*
#define DIN P17
#define DOUT P15
#define SCLK P16
#define CS INT0
#define SSTRB P14
*/
#define SOME_NOP _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
#define READ_CMD 0X87
//#define READ_CMD 0X86
Byte idata SelTab[] = {0,4,1,5,2,6,3,7};
Word ReadMAX188(Byte value)
{
Byte i;
Word wData = 0;
value = READ_CMD | (SelTab[value] << 4); //选择AD通道
CS = 0;
DelayMs(1);
DOUT = 1;
for(i = 0; i < 8; i++) //"发数据
{
SCLK = 0;
if( value & 0x80 )
{
DIN = 1;
}
else
{
DIN = 0;
}
value = (value << 1);
SOME_NOP; //"适当增加或减少NOP指令
SCLK = 1;
}
//DelayMs(1);
while(SSTRB) //等待数据完成
{
SOME_NOP;
}
SCLK = 0;
for(i = 0; i < 16; i++)
{
SCLK = 1;
if(DOUT)
{
wData += 1;
}
wData <<= 1;
SOME_NOP;
SCLK = 0;
}
CS = 1;
return (wData >> 4);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?