打印
[MINI51]

ddllxxrrMiNi51学习第六贴:带LED指示的ADC

[复制链接]
1958|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ddllxxrr|  楼主 | 2012-1-17 21:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 hotpower 于 2012-9-22 12:41 编辑

本人所有学习笔记都是在菜地的MINI51开发板上跑起来的,不是软件模拟地。

我这个ADC是可以指示的,就是说0-1.5亮一个灯,1.5-2伏亮两个灯,2-2.5亮三个灯,大于2.5亮四个灯。

至于到何时亮取值计算很简单:就是 电压/3.3=X/1024
 
/*---------------------------------------------------------------------------------------------------------*/
/*                                                                                                         */
/* Copyright(c) 2009 Nuvoton Technology Corp. All rights reserved.                                         */
/*                                                                                                         */
/*---------------------------------------------------------------------------------------------------------*/
#include "includes.h"  //包含所需的头文件
extern void Write_24LC64(uint32_t address, uint8_t data);
extern uint8_t Read_24LC64(uint32_t address);
uint32_t ADCdata = 0;

/*************************************************************************************
** Function name:       main
** Descriptions:        GPIOINT            
** input parameters:    无
** output parameters:   无
** Returned value:      无
*************************************************************************************/
int main (void)
{
Set_System();      //调用系统初始化函数
   
    /* 初始化类比数位转换器    */
DrvGPIO_InitFunction(FUNC_ADC0);
DrvADC_Open(0, EXTERNAL_CLOCK, 3); // 设置类比数位转换器时钟为12/(3+1) = 3兆赫兹  
  
  while(1)
{
  /* 类比数位转换器测试    */
  DrvADC_StartConvert();
  /*判断转换完没有*/
  while(DrvADC_IsConversionDone()==FALSE);
  ADCdata=DrvADC_GetConversionData();
  
        if(ADCdata==0)
  {
    DrvGPIO_ClrBit(E_PORT3, 1);  //LED0-OFF
       DrvGPIO_ClrBit(E_PORT3, 6);  //LED1-OFF
       DrvGPIO_ClrBit(E_PORT5, 2);  //LED2-OFF
       DrvGPIO_ClrBit(E_PORT2, 6);  //LED3-OFF
  }
  
  else if(ADCdata<155)
  {
    DrvGPIO_SetBit(E_PORT3, 1);  //LED0-ON
       DrvGPIO_ClrBit(E_PORT3, 6);  //LED1-OFF
       DrvGPIO_ClrBit(E_PORT5, 2);  //LED2-OFF
       DrvGPIO_ClrBit(E_PORT2, 6);  //LED3-OFF
  }
  else if((ADCdata>155)&&(ADCdata<310))
  {
    DrvGPIO_SetBit(E_PORT3, 1);  //LED0-ON
       DrvGPIO_SetBit(E_PORT3, 6);  //LED1-ON
       DrvGPIO_ClrBit(E_PORT5, 2);  //LED2-OFF
       DrvGPIO_ClrBit(E_PORT2, 6);  //LED3-OFF
  }
  else if((ADCdata>310)&&(ADCdata<465))
  {
    DrvGPIO_SetBit(E_PORT3, 1);  //LED0-ON
       DrvGPIO_SetBit(E_PORT3, 6);  //LED1-ON
       DrvGPIO_SetBit(E_PORT5, 2);  //LED2-ON
       DrvGPIO_ClrBit(E_PORT2, 6);  //LED3-OFF
  }
  else if((ADCdata>465)&&(ADCdata<930))
  {
    DrvGPIO_SetBit(E_PORT3, 1);  //LED0-ON
       DrvGPIO_SetBit(E_PORT3, 6);  //LED1-ON
       DrvGPIO_SetBit(E_PORT5, 2);  //LED2-ON
       DrvGPIO_SetBit(E_PORT2, 6);  //LED3-ON
  }

ADC.rar (600.6 KB)

}
   
   
}


相关帖子

沙发
ddllxxrr|  楼主 | 2012-1-17 21:53 | 只看该作者
本人之所以发表心得,一方面为了别人少走弯路,再有给自己留下个笔记到用时好用,没有别的意思,呵呵

使用特权

评论回复
板凳
plc_avr| | 2012-1-18 09:21 | 只看该作者
本人之所以发表心得,一方面为了别人少走弯路,再有给自己留下个笔记到用时好用,没有别的意思,呵呵
ddllxxrr 发表于 2012-1-17 21:53

顶你,多谢共享。。。。

使用特权

评论回复
地板
Cortex-M0| | 2012-1-18 10:55 | 只看该作者
顶。。。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:http://shop34182318.taobao.com/ http://shop562064536.taobao.com

2398

主题

6954

帖子

67

粉丝