📄 tlc2453.c
字号:
#include <AT89X52.H>
#include<ABSACC.H>
#include<STDIO.H>
#include<INTRINS.H>
#pragma small
#define uchar unsigned char
#define uint unsigned int
/* A/D端口定义 */
sbit AD_CLK =P2^3;
sbit AD_DATAIN =P2^2;
sbit AD_OUT =P2^1;
sbit AD_CS =P2^0;
uint Read2543(uchar);
void ADdelay(uchar);
void main() /*主程序*/
{
uint AD_DATA; /*AD结果*/
uchar ad_port; /*模拟量输入端口号*/
ad_port=0xd0;
a: AD_DATA=Read2543(0xb0);
//AD_DATA=Read2543(0xc0);
goto a;
}
///////////////////////////////////////////////////////////////////////////
//////////////////// Read2543子程序 //////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
uint Read2543(uchar port) /*A/D转换子程序*/
{
uchar i;
uint ad_dat; /*A/D子程序返回AD结果变量*/
ad_dat=0;
AD_CLK=0;
AD_CS=1;
AD_DATAIN=0;
//AD_OUT=0;
AD_CS=0;
ADdelay(19);
for(i=1;i<=12;i++) /*12位DATA INPUT*/
{
AD_DATAIN=(bit)(port&0x80);
ADdelay(19);
AD_CLK=1; //上升沿送入
port<<=1;
ADdelay(19);
AD_CLK=0;
}
AD_CS=1;
ADdelay(19);
AD_CS=0;
ADdelay(19);
for(i=1;i<=12;i++) /*12位AD_DATAIN OUTPUT*/
{
if (AD_OUT) {ad_dat|=0x01;}
ADdelay(19);
AD_CLK=1;
ADdelay(19);
AD_CLK=0;
ADdelay(19);
if(i<12)
ad_dat=ad_dat<<1;
}
AD_CS=1;
return(ad_dat);
}
////////////////////////////////////////////////////////////////////
//////////////////// AD延时程序///////////////////////////////////////
/////////////////////////////////////////////////////////////////////
void ADdelay(uchar i1) /*延时程序,延时i1个机器周期*/
{
uchar ii;
for(ii=0;ii<=i1;ii++)
{
_nop_();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -