• 大小: 22KB
    文件类型: .rar
    金币: 1
    下载: 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


评论

共有 条评论