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

[复制链接]
2688|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

  1. /*---------------------------------------------------------------------------------------------------------*/
  2. /*                                                                                                         */
  3. /* Copyright(c) 2009 Nuvoton Technology Corp. All rights reserved.                                         */
  4. /*                                                                                                         */
  5. /*---------------------------------------------------------------------------------------------------------*/
  6. #include "includes.h"  //包含所需的头文件
  7. extern void Write_24LC64(uint32_t address, uint8_t data);
  8. extern uint8_t Read_24LC64(uint32_t address);
  9. uint32_t ADCdata = 0;

  10. /*************************************************************************************
  11. ** Function name:       main
  12. ** Descriptions:        GPIOINT            
  13. ** input parameters:    无
  14. ** output parameters:   无
  15. ** Returned value:      无
  16. *************************************************************************************/
  17. int main (void)
  18. {
  19. Set_System();      //调用系统初始化函数
  20.    
  21.     /* 初始化类比数位转换器    */
  22. DrvGPIO_InitFunction(FUNC_ADC0);
  23. DrvADC_Open(0, EXTERNAL_CLOCK, 3); // 设置类比数位转换器时钟为12/(3+1) = 3兆赫兹  
  24.   
  25.   while(1)
  26. {
  27.   /* 类比数位转换器测试    */
  28.   DrvADC_StartConvert();
  29.   /*判断转换完没有*/
  30.   while(DrvADC_IsConversionDone()==FALSE);
  31.   ADCdata=DrvADC_GetConversionData();
  32.   
  33.         if(ADCdata==0)
  34.   {
  35.     DrvGPIO_ClrBit(E_PORT3, 1);  //LED0-OFF
  36.        DrvGPIO_ClrBit(E_PORT3, 6);  //LED1-OFF
  37.        DrvGPIO_ClrBit(E_PORT5, 2);  //LED2-OFF
  38.        DrvGPIO_ClrBit(E_PORT2, 6);  //LED3-OFF
  39.   }
  40.   
  41.   else if(ADCdata<155)
  42.   {
  43.     DrvGPIO_SetBit(E_PORT3, 1);  //LED0-ON
  44.        DrvGPIO_ClrBit(E_PORT3, 6);  //LED1-OFF
  45.        DrvGPIO_ClrBit(E_PORT5, 2);  //LED2-OFF
  46.        DrvGPIO_ClrBit(E_PORT2, 6);  //LED3-OFF
  47.   }
  48.   else if((ADCdata>155)&&(ADCdata<310))
  49.   {
  50.     DrvGPIO_SetBit(E_PORT3, 1);  //LED0-ON
  51.        DrvGPIO_SetBit(E_PORT3, 6);  //LED1-ON
  52.        DrvGPIO_ClrBit(E_PORT5, 2);  //LED2-OFF
  53.        DrvGPIO_ClrBit(E_PORT2, 6);  //LED3-OFF
  54.   }
  55.   else if((ADCdata>310)&&(ADCdata<465))
  56.   {
  57.     DrvGPIO_SetBit(E_PORT3, 1);  //LED0-ON
  58.        DrvGPIO_SetBit(E_PORT3, 6);  //LED1-ON
  59.        DrvGPIO_SetBit(E_PORT5, 2);  //LED2-ON
  60.        DrvGPIO_ClrBit(E_PORT2, 6);  //LED3-OFF
  61.   }
  62.   else if((ADCdata>465)&&(ADCdata<930))
  63.   {
  64.     DrvGPIO_SetBit(E_PORT3, 1);  //LED0-ON
  65.        DrvGPIO_SetBit(E_PORT3, 6);  //LED1-ON
  66.        DrvGPIO_SetBit(E_PORT5, 2);  //LED2-ON
  67.        DrvGPIO_SetBit(E_PORT2, 6);  //LED3-ON
  68.   }



  69. }
  70.    
  71.    
  72. }


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 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

2404

主题

7001

帖子

68

粉丝
快速回复 在线客服 返回列表 返回顶部