-
大小: 22KB文件類型: .rar金幣: 2下載: 0 次發布日期: 2021-06-01
- 語言: 其他
- 標簽: A/D轉換??STC12C5A60S2??
資源簡介
很簡單的A/D轉換程序,轉化結果精確到小數點后兩位,包含1602驅動程序。

代碼片段和文件信息
#include?“1602.h“
#?include?
typedef?unsigned?int?WORD;
#?define?Vo?5.05
/*Declare?SFR?associated?with?the?ADC?定義寄存器的地址*/
sfr?ADC_CONTR?=?0xBC;//ADC?control?register
sfr?ADC_RES?=?0xBD;//?ADC?result?register
sfr?ADC_RESL?=?0xBE;//ADC?result?register
sfr?P1ASF?=?0x9D;//P1?secondary?function?control?register
/*Define?ADC?operation?const(常量)?for?for?ADC_CONTR*/
#?define?ADC_POWER?0x80//ADC?power?control?bit
#?define?ADC_FLAG?0x10//ADC?complete?flag?bit
#?define?ADC_START?0x08//ADC?start?control?bit
#?define?ADC_SPEEDHH?0x60//90?clocks
#?define?ADC_SPEEDH?0x40//180?clocks
#?define?ADC_SPEEDL?0x20//360?clocks
#?define?ADC_SPEEDLL?0x00//540?clocks
void?Delay(WORD?n);
void?InitADC();
WORD?AtoD5v(uchar?resresl);
uchar?ch?=?7;//ADC?channel?NO
void?Main()
{
lcd1602_Init();
lcd1602_string(11“A/D?result:“);
while(1){
WORD?b;
b?=?AtoD5v(ADC_RESADC_RESL)*(Vo*100)/1023;
lcd1602_char(25b/100+0x30);
lcd1602_char(26‘.‘);
lcd1602_char(27b/10%10+0x30);
lcd1602_char(28b%10+0x30);
InitADC();
}
}
/**********************************
Init_ADC?sfr
***********************************/
void?InitADC()
{
P1ASF?=??0x00;//set?all?P1?as?analog?input?port
ADC_RES?=?0;//clear?previous?result
ADC_RESL?=?0;
ADC_CONTR?=?ADC_POWER|ADC_SPEEDLL|ADC_START|ch;
Delay(2);//ADC?power-on?delay?and?startA/D?conversion?
}
/**************************
software?delay?function
**************************/
void?Delay(WORD?n)
{
WORD?x;
while(n--)
{
x=?5000;
while(x--);
}
}
/********************************************
將結果寄存器中的值轉化成十進制數
********************************************/
WORD?AtoD5v(uchar?resresl){
WORD?R=res;
R<<=2;
R?+=resl;
return?R;
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1504??2012-11-30?19:03??1602_AD\1602.h
?????文件??????10742??2012-11-30?19:03??1602_AD\1602_AD
?????文件???????1791??2012-11-30?19:03??1602_AD\1602_AD.c
?????文件???????3894??2012-11-30?19:03??1602_AD\1602_AD.hex
?????文件?????????62??2012-11-30?19:03??1602_AD\1602_AD.lnp
?????文件???????3951??2012-11-30?19:03??1602_AD\1602_AD.LST
?????文件??????14955??2012-11-30?19:03??1602_AD\1602_AD.M51
?????文件??????10318??2012-11-30?19:03??1602_AD\1602_AD.OBJ
?????文件???????1044??2012-12-01?19:50??1602_AD\1602_AD.Opt
?????文件????????191??2012-12-01?19:09??1602_AD\1602_AD.plg
?????文件???????2053??2012-11-25?21:25??1602_AD\1602_AD.Uv2
????.......??????1056??2012-11-30?19:03??1602_AD\1602_AD_Opt.Bak
????.......?????????0??2012-11-25?19:56??1602_AD\1602_AD_Uv2.Bak
?????文件???????5115??2002-04-16?14:32??1602_AD\STARTUP.A51
?????文件??????11665??2012-11-30?19:03??1602_AD\STARTUP.LST
?????文件????????749??2012-11-30?19:03??1602_AD\STARTUP.OBJ
?????目錄??????????0??2012-12-01?19:50??1602_AD
-----------?---------??----------?-----??----
????????????????69090????????????????????17
- 上一篇:獲取mp3文件的播放時間
- 下一篇:數據結構地圖著色問題
評論
共有 條評論