• 大小: 42KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-01
  • 语言: 其他
  • 标签: KEIL程序  

资源简介

基于STC12C5A60S2自带AD转换和TL5615芯片完成AD/DA 转换程序

资源截图

代码片段和文件信息


/******************************************/


/************* 用户系统配置 **************/

#define MAIN_Fosc 22118400L //定义主时钟 模拟串口和和延时会自动适应。5~35MHZ

/************* 以下宏定义用户请勿修改 **************/
#include “reg51.H“
#define uchar unsigned char
#define uint unsigned int
/******************************************/

sfr P1ASF     = 0x9D; //12C5204AD/S2系列模拟输入(AD或LVD)选择
sfr ADC_CONTR = 0xBC; //带AD系列
sfr ADC_RES   = 0xBD; //带AD系列
sfr ADC_RESL  = 0xBE; //带AD系列

// 7       6      5       4         3      2    1    0   Reset Value
//sfr ADC_CONTR = 0xBC; ADC_POWER SPEED1 SPEED0 ADC_FLAG ADC_START CHS2 CHS1 CHS0 00000000 //AD 转换控制寄存器 
#define ADC_OFF() ADC_CONTR = 0
#define ADC_ON (1 << 7)
#define ADC_90T (3 << 5)
#define ADC_180T (2 << 5)
#define ADC_360T (1 << 5)
#define ADC_540T 0
#define ADC_FLAG (1 << 4) //软件清0
#define ADC_START (1 << 3) //自动清0
#define ADC_CH0 0
#define ADC_CH1 1
#define ADC_CH2 2
#define ADC_CH3 3
#define ADC_CH4 4
#define ADC_CH5 5
#define ADC_CH6 6
#define ADC_CH7 7


/************* 本地变量声明 **************/
sbit P_TXD1 = P3^1;


/************* 本地函数声明 **************/
void Tx1Send(uchar dat);
void PrintString(unsigned char code *puts);
void   delay_ms(unsigned char ms);
uchar GetAdc8(uchar channel); //channel = 0~7


void TX_ADC(uchar chn uchar adc)
{
Tx1Send(‘A‘);
Tx1Send(‘D‘);
Tx1Send(chn+‘0‘);
Tx1Send(‘=‘);
Tx1Send(adc / 100 + ‘0‘);
Tx1Send(adc % 100 / 10 + ‘0‘);
Tx1Send(adc % 10 + ‘0‘);
Tx1Send(0x0d);
Tx1Send(0x0a);
}

/********************* 主函数 *************************/


/********************* 做一次ADC转换 *******************/
uchar GetAdc8(uchar channel) //channel = 0~7
{
uchar i;

ADC_RES = 0;

ADC_CONTR = (ADC_CONTR & 0xe0) | ADC_START | channel; 

for(i=0; i<250; i++) //13T/loop 40*13=520T=23.5us @ 22.1184M
{
if(ADC_CONTR & ADC_FLAG)
{
ADC_CONTR &= ~ADC_FLAG;
return ADC_RES;
}
}while(--i);
return 0; //错误
}

//========================================================================
// 函数: void  delay_ms(unsigned char ms)
// 描述: 延时函数。
// 参数: ms要延时的ms数.
// 返回: none.
// 版本: VER1.0
// 日期: 2010-12-15
// 备注: 
//========================================================================
void  delay_ms(unsigned char ms)
{
     unsigned int i;
 do{
      i = MAIN_Fosc / 14000;
  while(--i) ;   //14T per loop
     }while(--ms);
}


/********************** 模拟串口相关函数************************/

void BitTime(void) //位时间函数
{
uint i;
i = ((MAIN_Fosc / 100) * 104) / 140000L - 1; //根据主时钟来计算位时间
while(--i);
}

//模拟串口发送
void Tx1Send(uchar dat) //9600,N,8,1 发送一个字节
{
uchar i;
EA = 0;
P_TXD1 = 0;
BitTime();
for(i=0; i<8; i++)
{
if(dat & 1) P_TXD1 = 1;
else P_TXD1 = 0;
dat >>= 1;
BitTime();
}
P_TXD1 = 1;
EA = 1;
BitTime();
BitTime();
}

void PrintString(unsigned char code *puts) //发送一串字符串
{
    for (; *puts != 0; puts++)  Tx1Send(*puts);  //遇到停止符0结

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-01-11 16:51  AD与DA直接转\
     文件         911  2019-01-11 10:09  AD与DA直接转\AD.H
     文件        6811  2019-01-11 16:51  AD与DA直接转\AD.LST
     文件        5745  2019-01-11 16:51  AD与DA直接转\AD.OBJ
     文件          32  2019-01-11 16:51  AD与DA直接转\AD.__i
     文件        3172  2019-01-11 10:57  AD与DA直接转\AD.c
     文件       12798  2019-01-11 16:51  AD与DA直接转\AD_project
     文件       13002  2019-01-11 16:51  AD与DA直接转\AD_project.M51
     文件        3315  2019-01-11 16:51  AD与DA直接转\AD_project.hex
     文件          84  2019-01-11 16:51  AD与DA直接转\AD_project.lnp
     文件         514  2019-01-11 18:10  AD与DA直接转\AD_project.plg
     文件       58109  2019-01-11 14:40  AD与DA直接转\AD_project.uvopt
     文件       13740  2019-01-11 10:49  AD与DA直接转\AD_project.uvproj
     文件       58101  2019-01-11 10:49  AD与DA直接转\AD_project_uvopt.bak
     文件       13424  2019-01-11 10:27  AD与DA直接转\AD_project_uvproj.bak
     文件          88  2018-12-12 17:49  AD与DA直接转\DA.H
     文件        3091  2019-01-11 16:51  AD与DA直接转\Da.LST
     文件        3165  2019-01-11 16:51  AD与DA直接转\Da.OBJ
     文件          32  2019-01-11 16:51  AD与DA直接转\Da.__i
     文件         957  2019-01-11 16:51  AD与DA直接转\Da.c
     文件        6376  2009-05-07 14:37  AD与DA直接转\STARTUP.A51
     文件       14048  2019-01-11 16:51  AD与DA直接转\STARTUP.LST
     文件         749  2019-01-11 16:51  AD与DA直接转\STARTUP.OBJ
     文件          34  2019-01-11 16:51  AD与DA直接转\STARTUP._ia
     文件        3229  2019-01-11 16:51  AD与DA直接转\main.LST
     文件        3780  2019-01-11 16:51  AD与DA直接转\main.OBJ
     文件          34  2019-01-11 16:51  AD与DA直接转\main.__i
     文件        1124  2019-01-11 14:40  AD与DA直接转\main.c
     文件         409  2019-01-11 16:51  AD与DA直接转\目标 1.BAT

评论

共有 条评论