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

📄 tlc0831_一路模数转换一号.c

📁 TLC0831_一路模数转换一号.rar
💻 C
字号:
//TLC0831_一路模数转换一号
//2006年8月__STC89C54__Ver1.00
//2006年6月单片机中档炉B板适用
//恒科_CD4094串口数显驱动程序
//该芯片采用传统的SPI口的规约形式,是一个非标准的SPI封装.

//P3_0 TI DATA 串行数据输入
//P3_1 RI CLK  时钟信号输入
//P1_0    STB  并行数据输出 高电平有效

#include <AT892051.H>
#include <89BIN.H>
#include <stdio.h> 
#include <intrins.h>
#include <absacc.h>
#include <math.h>

sbit T0831_CS=P1^7;								//片选I/O端口
sbit T0831_SK=P1^4;								//时钟I/O端口
sbit T0831_DO=P1^5;								//数据I/O端口

void TIME(int nt)								//延时函数
	{long int it=0;
	for(it=0;it<nt*1000;it++);
	return;
	}
unsigned char T0831Read()
	{unsigned char i,DataSoute;
	T0831_CS=1;
	TIME(1);
	T0831_SK=1;
	T0831_CS=0;
	T0831_SK=0;
	_nop_();
	for(i=0;i<8;i++)
		{T0831_SK=1;
		T0831_SK=0;
		if(T0831_DO) DataSoute++;
		DataSoute<<=1;
		}
	T0831_CS=1;T0831_SK=1;
	TIME(2);
	return(DataSoute);
	}

void SN(unsigned int nt)
	{ unsigned int Data[12]={0x81,0xED,0x43,0x49,0x2D,0x19,0x11,0xCD,0x01,0x09,0xFE,0xFD};
	SCON=0x00;
	P1_0=0;										//关闭并行输出
	TI=0;
	SBUF=Data[nt];								//串口传数据到CD4094
	while(!TI);									//数据传输完成了吗
	TI=0;										//清除TI标志
	P1_0=1;										//打开并行输出
	}

void main(void)
{	unsigned char AD_data;						//AD转换数据结果
	unsigned char num,i;
	
	SCON=0x00;
 
	for(i=0;i<10;i++)
		{SN(i);
		TIME(20);
		}

START:
    AD_data=T0831Read(); 						//读取CH进行A/D转换
	num=AD_data*5*10/256;						//转换为电压实际值的十倍,5V工作电压
	SN(11);TIME(20);
	SN(num/10);TIME(20);						//先显示小数点前一位
	SN(num%10);TIME(20);						//再显示小数点后一位
												//前一位.后一位:为电压实际值

	TIME(10);

	goto START;

}

⌨️ 快捷键说明

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