📄 epm240.c
字号:
//万能板模块子函数
//使用时确保万能板模块上的EPM240T100已经通过JTAG口下入POF格式的文件
//否则可能导致其他模块不能工作,原因为单片机的数据总线不能为高阻
//QQ:19089667 胡玉贵
#include "epm240.h"
#include "LCD.h"
unsigned char tmp=0;
unsigned char bdata adc1; //定义adc变量在位寻址数据区域
sbit adclow1=adc1^0;
/*************************************************
Function: void TLC549_CS(unsigned char d);
Description: 设置CS管脚电平
Calls: // 被本函数调用的函数清单
Called By: // 调用本函数的函数清单
Table Accessed: // 被访问的表(此项仅对于牵扯到数据库操作的程序)
Table Updated: // 被修改的表(此项仅对于牵扯到数据库操作的程序)
Input: d=1时,CS输出为1
// 用、取值说明及参数间关系。
Output: // 对输出参数的说明。
Return: //无
Others: // 其它说明
*************************************************/
void TLC549_CS(unsigned char d)
{
if(d==0)
AD_OUT=tmp&( ~(1<<0) );
else
AD_OUT=tmp|(1<<0);
}
void TLC549_SCLK(unsigned char d)
{
if(d==0)
AD_OUT=tmp&(~(1<<1));
else
AD_OUT=tmp|(1<<1);
}
unsigned char TLC549_DOUT(void)
{
if(AD_IN&8)
return 1;
else
return 0;
}
void DA_SDATA(unsigned char d)
{
if(d==0)
AD_OUT=tmp&(~(1<<4));
else
AD_OUT=tmp|(1<<4);
//Delay(10);
}
void DA_CLK(unsigned char d)
{
if(d==0)
AD_OUT=tmp&(~(1<<5));
else
AD_OUT=tmp|(1<<5);
//Delay(10);
}
void DA_LOAD(unsigned char d)
{
if(d==0)
AD_OUT=tmp&(~(1<<6));
else
AD_OUT=tmp|(1<<6);
//Delay(10);
}
void DA_LDAC(unsigned char d)
{
if(d==0)
AD_OUT=tmp&(~(1<<7));
else
AD_OUT=tmp|(1<<7);
}
/*************************************************
Function: unsigned char adconvert(void);
Description: TCL549的采样函数,程序返回采样到的电压值范围是:(0~255)
Calls: // 被本函数调用的函数清单
Called By: // 调用本函数的函数清单
Table Accessed: // 被访问的表(此项仅对于牵扯到数据库操作的程序)
Table Updated: // 被修改的表(此项仅对于牵扯到数据库操作的程序)
Input: 无// 输入参数说明,包括每个参数的作
// 用、取值说明及参数间关系。
Output: // 对输出参数的说明。
Return: 返回电压值,范围是:(0~255)
Others: // 其它说明
*************************************************/
unsigned char EPM240_AdConvert(void)
{ unsigned char i;
TLC549_CS(1);
TLC549_CS(0);
//adcs=1;
//adcs=0;
TLC549_SCLK(0);
//adclk=0;
for(i=0;i<8;i++)
{
TLC549_SCLK(1);
//adclk=1;
adclow1=TLC549_DOUT();
//adclk=0;
TLC549_SCLK(0);
if(i<7) adc1=adc1<<1;
}
TLC549_SCLK(0);
//adclk=0;
TLC549_CS(1);
//adcs=1;
return(adc1);
}
void dac_tlc5620(unsigned char send_char)
{
unsigned char i;
DA_LDAC(0);
DA_LOAD(1);//load=1;
DA_CLK(1);DA_SDATA(1);DA_CLK(0);//sclk=1;sdata=1;sclk=0;
DA_CLK(1);DA_SDATA(1);DA_CLK(0);//sclk=1;sdata=1;sclk=0;
DA_CLK(1);DA_SDATA(1);DA_CLK(0);//sclk=1;sdata=1;sclk=0;
for(i=0;i<8;i++)
{
DA_CLK(1);//sclk=1;
if(send_char&0x80)
DA_SDATA(1);//sdata=1;
else
DA_SDATA(0);//sdata=0;
DA_CLK(0);//sclk=0;
send_char=send_char<<1;
}
DA_LOAD(0);//load=0;
DA_LOAD(1);//load=1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -