資源簡介
基于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
- 上一篇:KEIL5注冊機
- 下一篇:網絡課程設計,校園網設計方案
評論
共有 條評論