⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1543.c

📁 单片机AD转化 功能较简单实用 对初学者有一定帮助
💻 C
字号:
extern void inttilcs(void);
extern void WriteLcdData(unsigned char a);

#include<reg51.h>
#include<intrins.h>

sbit CLOCK=P1^0;
sbit AD_IN=P1^1;
sbit D_OUT=P1^2;
sbit CS   =P1^3;
//sbit EOC  =P3^2;

/*--------------------------------------------------------
调用方式:uint read1543(uchar port)  晶振是11.0592MHz
函数说明:read1543()返回10位AD芯片TLC1543的port通道采样值。
---------------------------------------------------------*/
unsigned int read1543(unsigned char port) //从TLC1543读取采样值,形参port是采样的通道号
{
	unsigned int   ad;
    unsigned char  i;
	unsigned char  al=0,ah=0;
	CLOCK=0;
	CS=0;
	port<<=4;          //先高位后低位
	for (i=0;i<4;i++)  //把通道号打入1543
	{
		AD_IN=(bit)(port&0x80);
        CLOCK=1;
        CLOCK=0;
		port<<=1;
	}
	
	for (i=0;i<6;i++)  //填充6个CLOCK
	{
		CLOCK=1;
	    CLOCK=0;
	}	
	CS=1;
    //等待AD转换,可加延时等待

    CS=0; 
	
	for (i=0;i<2;i++) //取D9,D8
	{
        D_OUT=1;
		CLOCK=1;
		ah<<=1;
		if (D_OUT) ah|=0x01;
		CLOCK=0;
	} 
	
	for (i=0;i<8;i++) //取D7--D0
	{
        D_OUT=1;
		CLOCK=1;
		al<<=1;
		if (D_OUT) al|=0x01;
		CLOCK=0;
	} 
	
	CS=1;
	ad=(unsigned int)ah;
    ad<<=8;
    ad|=(unsigned int)al; //得到AD值
	return (ad);
} 
 
//===========================
void main()
{   
    unsigned char DASC[10]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x339};
    unsigned char fenwei[3];
    unsigned char i,j;
    float daicedianyazhi;
    unsigned int ADzhi;
    inttilcs();
	for(j=0;j<2;j++)
	{	    
	    ADzhi=read1543(0);
	}
    daicedianyazhi=(ADzhi*2.5)/1024;
    ADzhi=daicedianyazhi*100;
    fenwei[2]=ADzhi/100;
    ADzhi=ADzhi%100;
    fenwei[1]=ADzhi/10;
    fenwei[0]=ADzhi%10;
    for(i=0;i<5;i++)
    {
     switch(i)
     {
		case 0:WriteLcdData(DASC[fenwei[2]]);break;
		case 1:WriteLcdData(0x2e);break;//.
		case 2:WriteLcdData(DASC[fenwei[1]]);break;
		case 3:WriteLcdData(DASC[fenwei[0]]);break;
        case 4:WriteLcdData(0x56);break;//v
	 }
    }
    while(1);
} 
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -