📄 do_1543.c
字号:
#include "reg51.h"
#include "string.h"
#include "intrins.h"
#include "stdlib.h"
sbit EOC=P1^0;
sbit CLOCK=P1^1;
sbit ADDR=P1^2;
sbit DATAOUT=P1^3;
sbit _CS=P1^4;
#define uint unsigned int
#define uchar unsigned char
uint read1543(uchar port) //从TLC1543读取采样值,形参port是采样的通道号
{
uint data ad;uint data i;
uchar data al=0,ah=0;
_CS=1;
_nop_();_nop_();_nop_();
CLOCK=0;
_CS=0;
port<<=4;
for (i=0;i<4;i++) //把通道号打入1543
{
ADDR=(bit)(port&0x80);CLOCK=1;CLOCK=0;
port<<=1;
}
for (i=0;i<6;i++) //填充6个CLOCK
{
CLOCK=1;CLOCK=0;
}
_CS=1;
_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();
while(!EOC); //等待AD转换
_CS=0;
for (i=0;i<2;i++) //取D9,D8
{
DATAOUT=1;
CLOCK=1;
ah<<=1;
if(DATAOUT) ah|=0x01;
CLOCK=0;
}
for (i=0;i<8;i++) //取D7--D0
{
DATAOUT=1;
CLOCK=1;
al<<=1;
if(DATAOUT) al|=0x01;
CLOCK=0;
}
_CS=1;
ad=(uint)ah;ad<<=8;ad|=(uint)al; //得到AD值
return (ad);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -