📄 max188.c
字号:
//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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -