LPC2148的ADC多通道数据采集程序

发布者:BlissfulCharm最新更新时间:2019-11-30 来源: 51hei关键字:LPC2148  ADC  多通道  数据采集 手机看文章 扫描二维码
随时随地手机看文章

#include "config.h"

#include "stdio.h"

#define   GPIOSET(PIN)  IO0SET = PIN    // 方便修改置位端口

#define   GPIOCLR(PIN)        IO0CLR = PIN    // 方便修改清位端口

#define   LCD_CON           0x00000250           // 液晶显示控制字

#define  E_CLK  (1<<4)                    //clock input   同步时钟输入端         P0.4

const uint32  RW_SID=  (1<<6);         //data input/output 串行数据输入、输出端        P0.6      

const uint32  CS =     (1<<9);                  //P0.9

unsigned char IC_DAT1[] = "多通道数据采集系统";


/*************************************************************

*  名称:delay()

*  功能:延时程序

**************************************************************/

void delay(uint32 dly)

{

        uint32 i;

        

        for ( ; dly>0; dly--)

                for (i=0; i<10; i++);

}

  

/******************************************************************

*  名称:SeddByte()

*  功能:发送1字节数据

*******************************************************************/ 

void     SendByte(uint8    data)   

    {   

      uint8   i; 

      IO0SET=CS;  

      for(i=0;i<8;i++)   

       {  

                        IO0CLR=E_CLK ;delay(5);

                        if(data&0x80)

                        {

                                IO0SET=RW_SID;delay(5);

                        }

                        else IO0CLR=RW_SID;   

                        {

                                IO0SET=E_CLK;delay(5); 

                        }

                        data=data<<1;   

       }

       IO0CLR=CS;  

    } 

  

/******************************************************************

*  名称:ReceieveByte()

*  功能:接收1字节数据

*******************************************************************/   

unsigned char ReceieveByte(void)   

  {   

          uint8     i,d1,d2;   

    for(i=0;i<8;i++)   

        {   

                IO0CLR=E_CLK;delay(5);  

                IO0SET=E_CLK;delay(5); 

                if(RW_SID)d1++;   

                d1=d1<<1;   

        }   

    for(i=0;i<8;i++)   

        {   

                IO0CLR=E_CLK;delay(5);  

                IO0SET=E_CLK;delay(5);  

                if(RW_SID)d2++;   

                d2=d2<<1;   

        }   

     return     (d1&0xF0+d2&0x0F);   

    } 

  

/***************************************************************

*  名称:SendCMD()

*  功能:向LCD12864发送命令

****************************************************************/  

void     SendCMD(uint8     data)   

    {

        SendByte(0xF8);                                         

        SendByte(data&0xF0);                                        

                SendByte((data&0x0F)<<4);                    

        }

  

/*************************************************************

* 名称:SendData()

* 功能:向LCD12864发送数据

**************************************************************/  

void     SendData(uint8     data)   

    {

        SendByte(0xFA);                                         

        SendByte(data&0xF0);                                       

                 SendByte((data&0x0F)<<4);                    

        }

        

/****************************************************************

* 名称:lcd_mesg()

* 功能:在LCD12864上显示汉字

*****************************************************************/

    

void     lcd_mesg(uint8     x_add, unsigned char * word)   

    {   

         SendCMD(x_add);                                

              while(*word)

              {

                 SendData(*(word++));              

              }

    }

/*************************************************************

*  名称:initinal()

*  功能:LCD12864字库初始化

**************************************************************/

   

void     initlcm(void)   

    {   

         delay(200);     

         SendCMD(0x30);                //功能设置,一次送8位数据,基本指令集   

         SendCMD(0x0C);                //0000,1100     整体显示,游标off,游标位置off   

         SendCMD(0x01);                //0000,0001     清DDRAM   

         SendCMD(0x02);                //0000,0010     DDRAM地址归位   

         SendCMD(0x80);                //1000,0000     设定DDRAM 7位地址000,0000到地址计数器AC   

}


int main (void)

{

        PINSEL0=0x00000000;

PINSEL1=0X00000000;

PINSEL2&=~(0x00000006);    //设置所有I/O口为GPIO口

IO0DIR =LCD_CON;

initlcm();                             //12864初始化程序            

        lcd_mesg(0x80,IC_DAT1);

        delay(100);

        uint32 ADC_Data;

        char str[20];

        PINSEL0 = 0x00000005;        // 管脚连接串口

        PINSEL1 = 1 << 28;                // P0.30连接到AD0.3        

        /* 进行ADC模块设置 */

        AD0CR = (1 << 3)                                                |        // SEL=8,选择通道3

                        ((Fpclk / 1000000 - 1) << 8)        |        // CLKDIV=Fpclk/1000000-1,转换时钟为1MHz

                        (0 << 16)                                                |        // BURST=0,软件控制转换操作

                        (0 << 17)                                                |        // CLKS=0, 使用11clock转换

                        (1 << 21)                                                |          // PDN=1,正常工作模式

                        (0 << 22)                                                |          // TEST1:0=00,正常工作模式

[1] [2]
关键字:LPC2148  ADC  多通道  数据采集 引用地址:LPC2148的ADC多通道数据采集程序

上一篇:LPC1768 MP3录音和循环播放源码
下一篇:LPC1768 GPIO中断实验 八个LED轮流点亮100毫秒

推荐阅读最新更新时间:2024-11-03 14:55

将PLC自动控制原理应用在组态软件控制系统中
1 前言   众所周知,PLC自从问世以来就在自动控制各个行业发挥着难以取代的核心控制作用。PLC运行可靠,适用于各种恶劣的工业环境,PLC和工控机(IPC)相比,其运行可靠、可扩展性好、便于电气连接、控制更专业,但是工控机良好的人机界面,方便高级语言都是PLC所不能比拟的。   组态软件在很多场合应用于控制,可整个控制的中心往往还是PLC,组态软件(上位机)所起的控制作用很小。人机界面一般用于简单的动作控制,工艺参数的编制,配方的设定等等,虽然在概念上属于控制范畴,但它并未真正起到核心控制作用,因为真正长期的自动运行控制是由PLC完成。我们不经常使用工控机作为核心控制部分的原因有两点:第一,工控机不适于在很恶略的环境下运行
[工业控制]
研华推出全新系列的高密度PCI Express数据采集
研华科技,2013年4月 ——全球领先的创新嵌入式产业电脑&自动化解决方案提供厂商研华科技推出使用 PCI Express 接口的全新系列高密度隔离式数字量输入/输出高速数据采集卡。此系列数据采集卡包括PCIE-1752(64 个数字量输出通道)、PCIE-1754(64 个数字量输入通道)和 PCIE-1756(32 个数字量输入/32 个数字量输出通道),均拥有更快速的数据传输速率,超越标准的 PCI 卡,提供高达 64 个通道,无需特殊的开发软件,最高输出电流可达每通道 500mA。 研华高密度PCI Express数据采集卡PCIE-1752 采用拥有 64 个高密度隔离式数字量输入/输出通道的数据采集卡,用户可
[嵌入式]
研华推出全新系列的高密度PCI Express<font color='red'>数据采集</font>卡
基于ARM处理器LPC2142的高速数据采集卡设计方案
在瞬态信号测量和图像处理等一些高速、高精度的测量中,往往都需要进行高速数据采集。现在通用的高速数据采集卡(一般多是PCI卡或ISA卡)存在有安装麻烦、价格昂贵、受计算机插槽数量/地址/中断资源的限制、可扩展性差,而且在一些电磁干扰性强的测试现场无法专门对其进行电磁屏蔽,因而会导致采集的数据失真等缺点。 为此,本文给出了采用PHILIPS公司的一款LPC2142芯片(基于ARM7内核,内置了宽范围的USB2.0 Device全速串行通信接口)设计的数据采集卡的设计方案,从而有效解决了传统高速数据采集卡的上述缺陷。 1 基于ARM的数据采集卡系统结构 该系统主要由双通道模/数转换器AD9238、ARM微控制器LPC2142
[单片机]
基于ARM处理器LPC2142的高速<font color='red'>数据采集</font>卡设计方案
微型机数据采集系统电路(AD7501、AD582、AD1408)
由AD570和AD1408与微处理器CPU8155等构成的微型机数据采集系统电路如图所示。该电路被测量回路有8个通道,顺序测量每一个通道,对每一通道的扫描不超过50 s,系统逻辑电平是TTL、二进制码,数据传输是并行方式。
[测试测量]
微型机<font color='red'>数据采集</font>系统电路(AD7501、AD582、AD1408)
基于嵌入式USB接口的数据采集系统的设计
  数据采集任务多在户外进行,所以数据采集系统通常要满足实时性、专用性、可靠性和低功耗等性能,这些特性在嵌入式系统中都能得到很好的体现,因此本文将以WindowsCE的嵌入式平台来开发效据采集系统。但是由于嵌入式系统的硬件结构不易改变,所以在进行数据采集设备扩展时应该选择接口简单灵活、数据传输率高和支持热拔插的传输总线,而USB接口则能很好地满足这些要求,同时USB还有总线供电和不受插槽、中断等硬件资源限制的特性,因此USB接口是数据采集设备与嵌入式系统进行数据传输的理想选择。综上所述,本文将设计一款基于嵌入式USB接口的数据采集系统以满足实际的需要,下面将从硬件设计,程序实现和实际测试3方面具体描述。   1 硬件设计
[嵌入式]
基于DSP与FPGA的蓝牙数据采集系统设计
数据采集系统广泛地应用于工业、国防、图像处理、信号检测等领域。DSP处理器是一种高速的数字信号处理器,蓝牙技术作为一种低成本、低功耗、近距离的无线通信技术,已广泛应用于许多行业和领域 。本设计采用了DSP与FPGA协同控制处理,并用蓝牙传输代替有线电缆传输,有效地解决了DSP和FPGA单独处理的不足与有线电缆传输的弊端,大大提高了数据采集处理能力,拓宽了系统在环境较为恶劣或特殊场所的应用。 1 系统硬件设计 1.1系统总体设计  基于DSP与FPGA的蓝牙数据采集系统由下位机和上位机两部分组成。其中下位机主要由前端传感器、信号调理电路、ADC模数转换电路、DSP与FPGA协同处理模块以及蓝牙模块组成,主要完成前端数据的
[嵌入式]
多通道数字模拟混合音响仿真系统的设计与实现
    摘要: 采用数字与模拟混合控制技术,利用多种声源的组合,实现了飞机发动机音响及环境音响的仿真。     关键词: 音响  噪声  频率  幅值     单片机综合服务网ISDN拨入电话(010)62770940     单片机综合服务网ISDN拨入电话(010)62770940     飞行模拟器在整个飞行过程中不仅给飞行员提供逼真的视觉、力感和动感而且还要有逼真的音响效果使飞行员感到身临其境,帮助飞行员从听觉上能正确判断出飞机的飞行状态。音响效果的仿真主要有模拟式和数字式两种,模拟式仿真音响适合于实时控制,数字式仿真音响逼真度高。本文依据飞机发动机的频谱特性,设计了能够
[手机便携]
ADI公司新型Easy Drive™ SAR ADC可简化设计并提供领先的性能
中国,北京 – 2022年5月5日 – Analog Devices, Inc . 推出新一代16至24位超高精度逐次逼近寄存器(SAR)模数转换器(ADC)系列产品,可简化仪器仪表、工业和医疗健康应用中复杂的ADC设计。新的高性能SAR ADC系列采用ADI公司专利的Easy Drive™技术和通用Flexi-SPI串行外设接口(SPI),解决了系统设计挑战并扩大了直接兼容配套产品的选择范围。 ADI的Easy Drive技术在保持器件性能的同时,消除了许多传统的系统级设计挑战,例如严格的布局指南和数字接口时序要求,以及复杂的配套产品选择。通用的Flexi-SPI数字接口提供易于满足的时序要求,从而简化了主机处理器和A
[模拟电子]
ADI公司新型Easy Drive™ SAR <font color='red'>ADC</font>可简化设计并提供领先的性能
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved