upD79F8513A(NEC)或upD78F0511A(NEC)之AD采样

来源:互联网 发布:淘宝衣服质检报告 编辑:程序博客网 时间:2024/06/10 21:28



本篇博文最后修改时间:2017年10月20日 17:30。




一、简介

本文以upD79F8513A(NEC)或upD78F0511A(NEC)编程为例,介绍upD79F8513A(NEC)或upD78F0511A(NEC)之AD采样。


二、实验平台

电脑平台:Windows7 64位旗舰

编译软件:IAR

硬件平台:upD79F8513A(NEC)或upD78F0511A(NEC)



三、版权声明

博主:_懵懂

声明:此博客仅供参考不做任何商业用途,最终解释权归原博主所有。

原文地址:http://blog.csdn.NET/qq_18842031

QQ:951795235

E-mail :951795235@qq.com

懵懂之MCU交流群:136384801




四、实验前提

1、在进行本文步骤前,请先安装IAR4.70.1.50025版本;准备好upD79F8513A(NEC)或upD78F0511A(NEC)硬件平台。

         

五、基础知识

暂无


六、源码地址

暂无


七、关联文章

系统时钟链接:http://blog.csdn.net/qq_18842031/article/details/77984026

电源检测链接:http://blog.csdn.net/qq_18842031/article/details/78185589

串口0链接:http://blog.csdn.net/qq_18842031/article/details/78196010

串口6链接:http://blog.csdn.net/qq_18842031/article/details/78185517


八、实验内容

1.初始化AD

/********************************************************************** @fn      Init_ADC()** @brief   初始化ADC  初始化P2口 5脚 6脚 7脚为AD输入 ** @param   None.** @return  None.********************************************************************/void Init_ADC(void){  ADPC |= 0x05;/*初始化I/O口为模拟口*/  PM2 |= 0xE0; /*设置为输入*/  ADCE = 1;    //使能比较器  ADS  = 7;    //  ADIF = 0;    //  ADCS = 1;    //使能AD转换器  NOP();  ADMK = 1;}


2.编写主函数

#include <io78f0511_44.h>#include <intrinsics.h> #define DI() __disable_interrupt()  /*关中断*/#define EI() __enable_interrupt()   /*开中断*/#define NOP() __no_operation()        /*空指令*/#define W5NOP() NOP();NOP();NOP();NOP();NOP()      /*5个空指令*/void main(void){   Init_OST(); /*初始化系统时钟*/   Init_LVI(); /*低电压检测*/   Init_Uart0(); /*初始化串口0*/  Init_ADC();   /*初始化ADC*/    Send_UartByte0(5);/*查询发送*/  while(1)   {     WDTE = 0xAC; /*clear and start watchdog timer */     Send_UartByte0(Get_ADCValue());    W5NOP();W5NOP();W5NOP();W5NOP();W5NOP();W5NOP();    W5NOP();W5NOP();W5NOP();W5NOP();W5NOP();W5NOP();    W5NOP();W5NOP();W5NOP();W5NOP();W5NOP();W5NOP();  }}


3.采集AD

/********************************************************************** @fn      Get_ADCValue()** @brief   ADC采集函数  ** @param   None.** @return  value 每次输出的7脚-5脚轮流输出.********************************************************************/uint8 Get_ADCValue(){      uint8 value;         /*记录当次值*/    if(ADIF != 1)    return;  ADIF = 0;  value = ADCRH;    if(ADS == 7)    {      ADS = 6;    }      else if(ADS == 6)    {      ADS = 5;    }    else if(ADS == 5)    {      ADS = 7;    }  }  return value;}



原创粉丝点击