首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
STC单片机AD转换程序设计
来源:本站整理  作者:佚名  2011-12-16 06:31:59



#include <reg52.H>
#include <intrins.H>
sfr P1_ADC_EN = 0x97; //A/D转换功能允许寄存器
sfr ADC_CONTR = 0xC5; //A/D转换控制寄存器
sfr ADC_DATA = 0xC6; //A/D转换结果寄存器
sfr P1M0=0x91;
sfr P1M1=0x92;      
#define uchar unsigned char ;
#define uint unsigned int ;
void delay(uchar delay_time) // 延时函数
{
         uchar n;
         uint m;
         for (n=0;n<delay_time;n++)
                  {
                            for(m=0;m<10000;m++);
                  }
}

uchar get_AD_result(uchar channel)
{
         uchar AD_finished = 0; // 存储 A/D 转换标志
         ADC_DATA = 0;
         ADC_CONTR = channel; // 选择 A/D 当前通道
         delay(1);                      //使输入电压达到稳定
         ADC_CONTR |= 0x08; //0000,1000 令 ADC_START = 1, 启动A/D 转换
         AD_finished = 0;
         while ( AD_finished == 0 ) // 等待A/D 转换结束
         {
                  AD_finished = (ADC_CONTR & 0x10); //0001,0000, ADC_FLAG ==1测试A/D转换结束否
         }
         ADC_CONTR &= 0xF7; //1111,0111 令 ADC_START = 0, 关闭A/D 转换,
         return (ADC_DATA); // 返回 A/D 转换结果
}

  void main()
{  
         P1 = P1 | 0x03;   // 0000,0011,P1.0,P1.1为 A/D 转换,即通道0与1
         P1_ADC_EN = 0x03; //0000,0011, P1 的P1.0,P1.1设置为 A/D 转换输入脚
                           // 断开P1.0,P1.1 内部上拉电阻
         while(1)
         {
                 get_AD_result(0);
                 delay(200);
                 get_AD_result(1);
                 delay(200);
         }
}

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)
Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:36,625.00000 毫秒