STC12C5A60S2-AD电压高级采集.docx

STC12C5A60S2-AD电压高级采集.docx

ID:58910028

大小:11.07 KB

页数:6页

时间:2020-10-26

STC12C5A60S2-AD电压高级采集.docx_第1页
STC12C5A60S2-AD电压高级采集.docx_第2页
STC12C5A60S2-AD电压高级采集.docx_第3页
STC12C5A60S2-AD电压高级采集.docx_第4页
STC12C5A60S2-AD电压高级采集.docx_第5页
资源描述:

《STC12C5A60S2-AD电压高级采集.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、/*使用STC单片机内置10AD(仅用高八位,分辨率为5mV)做的简易电压表*//*本程序AD部分使用了深圳宏晶公司官方AD转换示范程序修改,特此鸣谢*//*使用STC12C5A60S21T单片机,12M外部晶振,KeilV3编译通过,AD转换脚定义为P1.1,*//*使用芯片本身5V电源为基准,在深圳精创电子的51/AVR开发板实现。8位共阳LED字符码*//*接P0口,位线接在P2口,均为低电平显示,使用右4位。本显示程序摘自网上,一并感谢。*//*----2010.07.04writtenbyautopccopy

2、(moon1.cn)*/#include#include//STC的新头文件sbitP20=P2^0;//个位sbitP21=P2^1;//十位sbitP22=P2^2;//百位sbitP23=P2^3;//千位sbitP07=P0^7;//小数点typedefunsignedcharINT8U;typedefunsignedintINT16U;#defineAD_SPEED0x40//0100,000010140个时钟周期转换一次//---------------

3、------------------------------------------------------INT8Uget_AD_result(INT8Uchannel);voiddelay(INT8Udelay_time);//延时函数intDATA_LED[11]={0X3F,/*0*/0X06,/*1*/0X5B,/*2*/0X4F,/*3*/0X66,/*4*/0X6D,/*5*/0X7D,/*6*/0X07,/*7*/0X7F,/*8*/0X6F,/*9*/0xFF};voidled(intn)//数码管显

4、示及数据处理程序{P0=0xFF;P0=DATA_LED[n%10];//个位P20=0;delay(1);P20=1;P0=0xFF;P0=DATA_LED[n/10%10];//十位P21=0;delay(1);P21=1;P0=0xFF;P0=DATA_LED[n/100%10];//百位P22=0;delay(1);P22=1;P0=0xFF;P0=DATA_LED[n/1000%10];//千位P23=0;P07=0;//千位显示小数点delay(1);P23=1;}//-------------------

5、--------------------------------------------------INT8Uget_AD_result(INT8Uchannel)//AD转换部分{INT8UAD_finished=0;//存储A/D转换标志ADC_RES=0;//高八位ADC_RESL=0;//低二位(本例未使用)channel&=0x07;//0000,0111清0高5位ADC_CONTR=AD_SPEED;_nop_();ADC_CONTR

6、=channel;//选择A/D当前通道_nop_();ADC_CONT

7、R

8、=0x80;//启动A/D电源delay(1);//使输入电压达到稳定ADC_CONTR

9、=0x08;//0000,1000令ADCS=1,启动A/D转换,AD_finished=0;while(AD_finished==0)//等待A/D转换结束{AD_finished=(ADC_CONTR&0x10);//0001,0000测试A/D转换结束否}ADC_CONTR&=0xE7;//1111,0111清ADC_FLAG位,关闭A/D转换,return(ADC_RES);//返回A/D高8位转换结果}voiddel

10、ay(INT8Udelay_time)//延时函数{INT16Un;while(delay_time--){n=100;while(--n);}}//---------------------------同道选择------------------------------------------voidADzhuanhuan1(INT8Uzh){INT16UADC_result;P1ASF=0x02;//0000,0010,将P1.1置成模拟口AUXR1&=~0x04;//0000,0100,令ADRJ=0:10位A/

11、D转换结果的高8位放在ADC_RES寄存器,低2位放在ADC_RESL寄存器ADC_CONTR

12、=0x80;//1000,0000打开A/D转换电源while(1){ADC_result=get_AD_result(zh);//P1.1为A/D当前通道,测量并发送结果led(ADC_result*19.53);//显示数值。19.

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。