微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 我的STC12C5410AD的AD转换程序

我的STC12C5410AD的AD转换程序

时间:10-20 来源:互联网 点击:
#include"STC12C5410AD.h"#define uchar unsigned charunsigned char  aa,bb;void delay(uchar dd){int x,y;for(x=dd;x>0;x--)for(y=100;y>0;y--);}unsigned char Read_ADC(unsigned char adcvcc){//将P1.0--P1.1设置成适合AD转换的模式ADC_CONTR = ADC_CONTR|0x80; //1000,0000打开A/D转换电源delay(20); //20msADC_CONTR = ADC_CONTR0xE0; //1110,0000 清ADC_FLAG,ADC_START位和低3位ADC_CONTR = ADC_CONTR0xf8|adcvcc; //设置当前通道号delay(10); //延时使输入电压达到稳定ADC_DATA = 0; //清A/D转换结果寄存器ADC_CONTR = ADC_CONTR|0x08; //0000,1000ADCS = 1,启动转换do { ; } while((ADC_CONTR  0x10)==0); //0001,0000等待A/D转换结束ADC_CONTR = ADC_CONTR0xE7; //1110,0111清ADC_FLAG和ADC_START位,停止A/D转换return ADC_DATA;}void main(){//里要加上设置ADC的端口,如)1.0,P1.1设为ADC口的话:P1M0 = 0x03; //0000,0011用于A/D转换的P1.x口,先设为开漏P1M1 = 0xC3; //0000,0011P1.0--P1.1先设为开漏。断开内部上拉电阻bb=0x01;while(1){aa=Read_ADC(1); //第一路A/D转换;如要改别的路,只要把代入通道改一下.P3=aa;  //这是让A/D的数据显示在P3口的LED上.}} 

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top