ADC0832采集数据1602液晶显示

发布者:camuspyc最新更新时间:2015-01-15 来源: 51hei关键字:液晶显示  ADC0832  采集数据 手机看文章 扫描二维码
随时随地手机看文章

#include

#include
#define uchar unsigned char
#define uint unsigned int
sbit cs=P3^0;//对ADC0832进行位定义
sbit DI=P3^2;
sbit DO=P3^2;
sbit clk=P3^1;
uchar readad[2];
void adc0832(unsigned char channel);
void adc0832(uchar channel)//对0832的操作:首先进行传输数据前的定义,严格按照时序,
{                              // 其次开始传数据,如果达到了8位,从新开始传
  uchar i=0;                   //最后开始收数据  ,不管是传数据还是收数据,都要有一个完整的时钟脉冲
  uchar j;//对数据值的定义     //数据每次只能传输一位
  uint dat=0;                 //传数据是从最高位开始将寄存器的数据发送完,接着从低位开始发,比较2次发送的数据是否一样
  uchar ndat=0;                 //如果一样则接收如果不一样则淘汰
  if(channel==0)channel=2;
  if(channel==1)channel=3;
     DI=1;
    _nop_();
      _nop_();
     cs=0;   //拉低cs端
     _nop_();
     _nop_();
     clk=1;  //拉高clk
      _nop_();
      _nop_();
      clk=0;   //拉低clk形成下降沿1
      _nop_();
      _nop_();
      clk=1;
      DI=channel&0x1;
      _nop_();
      _nop_();
      clk=0; //形成下降沿2
      _nop_();
      _nop_();
      clk=1;
      DI=(channel>>1)&0x1;
      _nop_();
      _nop_();
      clk=0;  //形成下降沿3
      DI=1;  //控制指令结束
      _nop_();
      _nop_();
      dat=0;  //将dat初始化
      for(i=0;i<8;i++)            //从高位开始发数据
      {
        dat|=DO;//接收数据
        clk=1;
          _nop_();
           _nop_();
        clk=0;
            _nop_();
            _nop_();//形成一次时钟脉冲,数据传一位
        dat<<=1;//将所收到的数据进行左移一位
        if(dat==7) //如果所收到的数据达到了8位。
          dat|=DO;//接着收数据
      }
     for(i=0;i<8;i++)            //从低位开始发数据
       {
         j=0;
         j=j|DO;//或者是j|=DO....开始收数据
         clk=1;
         _nop_();
         _nop_();
         clk=0;  //形成一次时钟脉冲
         _nop_();
         _nop_();
         j=j<<7;
         ndat=ndat|j;
         if(j<7)
          ndat>>=1;//得到的这位数据向左移7位
        }
      cs=1;
      clk=0;
      DO=1;     //回到初始状态
      readad[0]=dat;
      readad[1]=ndat;  
       
}
 
 
#include
#define REG0 XBYTE[0x0000]//通过宏定义将液晶的初始化设置,写指令,写数据
#define REG1 XBYTE[0x0001]//读指令,读数据代替,可以直接调用
#define REG2 XBYTE[0x0002]
#define REG3 XBYTE[0x0003]
uchar bdata busyflag;
uchar dat,datn,count;
uchar word1[16]={"CH="};
code uchar  word2[16]={"liushuai"};
code uchar word3[16]={"19901001"};
sbit busyflag_7=busyflag^7;
 
//液晶的初始化//
void busy()
{
  do
   {
     busyflag=REG1;
   }while(busyflag_7);
}
 
void wrc( uchar wcon)
{
  busy();//检测液晶是否处于工作状态
  REG0=wcon; //写指令
 
}  
void wrd(uchar wdat)
{
  busy();
  REG2=wdat;//写数据
}
void rdd()//读数据
{
  busy();
  dat=REG3;
}
void lcdint() //液晶的初始化指令
{
 wrc(0x38);
 wrc(0x01);
 wrc(0x06);
 wrc(0x0c);
}
void wrn(uchar word[])
{
 
  uchar i;
  for(i=0;i<16;i++)
  {
    wrd (word[i]);
  }
 
void temp()  //数字的转换
{
  float tt;
  tt=readad[0]/255.0*5.0;
  word1[4]=(unsigned char)(tt);
  word1[5]='.';
  word1[6]=(unsigned char)(tt*10-word1[4]*10);
  word1[7]=(unsigned char)(tt*100-word1[4]*100-word1[6]*10);
  word1[8]=(unsigned char)(tt*1000-word1[4]*1000-word1[6]*100-word1[7]*10);
  word1[9]=(unsigned char)(tt*10000-word1[4]*10000-word1[6]*1000-word1[7]*100-word1[8]*10);
  word1[4]+=48;
  word1[6]+=48;
  word1[7]+=48;
  word1[8]+=48;
  word1[9]+=48;
  word1[10]='V';
}
void main()
{
  lcdint();//初始化液晶
  wrc(0x80);
  wrn(word2);
  wrc(0xc0);
  wrn(word3);
  while(1)
  {
    adc0832(0);//选择通道0
    temp() ;
    wrc(0x80);
    word1[2]='0';
    temp() ;
    adc0832(0);//选择通道1
    temp() ;
    wrc(0xc0);
    word1[2]='1';
    wrn(word1);
  }
 
 
}
关键字:液晶显示  ADC0832  采集数据 引用地址:ADC0832采集数据1602液晶显示

上一篇:利用MSP430在SD卡上实现FAT32文件系统
下一篇:单片机的延时闪烁

推荐阅读最新更新时间:2024-03-16 13:51

一种用单片机控制的光谱数据采集系统的设计
   概述   在光谱测量中,常用光电倍增管(PMT)和电荷耦合器件(CCD)作为光电转换器。在慢变化、高精度光谱测量中使用PMT;对于闪光灯、荧光和磷光等强度随时间变化时的光谱信号则采用CCD。PMT和CCD输出的信号形式是不同的:光电倍增管输出的是连续的模拟信号;CCD输出的是视频脉冲信号。由于输出信号的不同,相应的信号采集电路也不尽相同。本文所述的系统通过设定控制开关的不同状态,由单片机检测、判断和执行相应的操作,完成对不同形式输入信号的采集。采集到的光谱强度通过并口送入计算机进行处理、计算,并显示和打印出光谱曲线。 由于CCD像元几何尺寸小、精度高,有光积分时间和信号存储功能,因此,可以用来进行光谱测量。被测光源发
[单片机]
一种用单片机控制的光谱<font color='red'>数据</font><font color='red'>采集</font>系统的设计
汽车二自由度数据采集系统设计
引言     汽车的二自由度横摆角速度与侧向加速度这两个参数对汽车的稳定性分析具有重要作用,是汽车主动安全的重要组成部分,可以通过预测与实测两种方式获得。为了得到更真实的数据,本文设计了基于ARM微控制器和ADIS16355传感器的数据采集系统,通过实车测试得到了汽车的横摆角速度与侧向加速度的数据,分析了干扰源,并且对数据采用卡尔曼滤波方法进行处理。 1 系统工作原理     ADIS16355传感器装在接近汽车的中心位置上(接近汽车的质心位置),建立汽车的三维坐标系如图1所示。     汽车X、Y、Z三个方向的旋 图1 汽车三维坐标系转角速度与加速度可通过ADIS16355传感器测得,测得的数据通过ADC转换成数字信
[嵌入式]
基于FPGA的数据采集控制模块的研究与设计
   0 引 言   数据采集和控制系统是对生产过程或科学实验中各种物理量进行实时采集、测试和反馈控制的闭环控制,它在工业控制、军事电子设备、医学监护等许多领域发挥着重要作用。其中,数据采集部分尤为重要,而传统的数据采集系统,通常采用单片机或DSP作为控制器,用以控制ADC、存储器和其他外围电路的工作,使得采集速度和效率降低。近年来,微电子技术,如:大规模集成电路和超大规模集成电路技术的发展,为数据采集系统的发展提供了良好的物质基础。从而使器件向模块化和单片化发展,使所用软件均向实时高级语言和软件模块化发展,接口向标准化发展。由于FPGA时钟频率高,内部延时小,全部控制逻辑均由硬件完成,速度快,效率高,同时它有非常强大的硬件描述
[嵌入式]
基于FPGA的<font color='red'>数据</font><font color='red'>采集</font>控制模块的研究与设计
单片机驱动19264a液晶显示英文程序
19264液晶是一种比12864大一点点的单色液晶,这里我给大家介绍一下用单片机驱动他的原理 电路图 仿真图 实际效果图 #include stc89.h #include intrins.h #define uchar unsigned char #define uint unsigned int uint ee; sbit lcd_cs3=P1^0;//片选信号右 低有效 sbit lcd_cs2=P1^1;//片选信号中 低有效 sbit lcd_cs1=P1^2;//片选信号左 低有效 sbit lcd_e =P1^3;//使能信号 sbit lcd_rw =P1^4;//读写选择 sbit lcd_rs =P
[单片机]
单片机驱动19264a<font color='red'>液晶显示</font>英文程序
基于FPGA的LSA系列激光粒度测试仪的数据采集系统设计
引言 随着现代科学技术的日益发展,颗粒尺寸及其分布在诸如石油、冶金、制药、建材等领域占据着越来越重要的地位。激光粒度仪就是用来测量微小颗粒尺寸及其分布的仪器,其基本原理是光的衍射理论。数据采集系统对激光粒度仪的光电探测器上光能信号的采集速度是激光粒度仪的性能指标之一,一般来说采集速度越快测量结果的准确性、重复性和稳定性越好 。随着各种新型光电探测器的不断出现,原有的数据采集系统需要重新设计升级。在新的设计方案中,数据采集系统的模拟通道容量增加到了 112路,并且系统的采集速度也有了大幅度的提高。 FPGA具有硬件资源丰富、设计灵活等特点,适用于数据通讯、数据采集和系统控制中,特别是它的并行结构和算术运算的特点,已越来越受到科技
[测试测量]
基于FPGA的LSA系列激光粒度测试仪的<font color='red'>数据</font><font color='red'>采集</font>系统设计
恩智浦COG解决方案:用于液晶显示屏的经济可靠技术
如今,很多液晶显示器都通过连接一个带封装的液晶驱动器IC实现显示功能,其通过印刷电路板(PCB)进行物理显示。这个概念(后文称为“表面贴装器件”或SMD概念)提供了一个坚固的机械解决方案,但要求更复杂及更区域聚集的PCB设计COG (Chip On Glass)技术是另一种设计方法,其液晶驱动器直接安装于显示屏上。这个概念(后文称为COG概念)减少了PCB上的走线和层数,削减了电路板的尺寸和复杂性,并减少了SMD概念中使用的IC封装。进而从硬件结构和加工流程上降低了整机成本。 与SMD概念不同,COG要求IC和液晶模块制造商之间有严格的生产和设计协调。恩智浦有实力支持COG应用,因其与世界各地的主要液晶模块制造商关系紧密,且在为
[嵌入式]
恩智浦COG解决方案:用于<font color='red'>液晶显示</font>屏的经济可靠技术
基于USB-6281的高速数据采集系统的设计
数据采集在现代工业生产及科学研究中的重要地位日益突出,在信号测量、图像处理、音频信号处理等测量中,都要求进行高速、高精度的数据采集。这就对数据采集系统的设计提出了2方面的要求:1)要求接口简单灵活且有较高的数据传输率;2)由于数据量通常较大,要求主机能够对数据做出快速反应,并及时进行分析和处理。常用的数据采集卡一般是PCI卡或是ISA卡,这些采集卡存在诸多缺点,比如安装不方便,传输速度慢,受计算机插槽数量、地址、中断等资源的限制,可扩展性差等。而通用串行总线(Universal Serial Bus,简称USB)具有高传输速度、易扩展、热插拔和即插即用等特点,很好地克服了数据采集卡的缺点,容易实现低成本、高可靠性、多点的数据采集。
[嵌入式]
一种经济高效的低功耗液位测量数据采集系统(DAS)案例
液位测量在工业和商业过程中都有许多应用。从在家中储罐中的水位检测到监视工业上明渠的燃料流,其使用一直在提供安全可靠的系统。也许,液位测量最简单但最重要的应用是在洪水检测系统中,在天气不好的情况下,可以使社区免受洪水的危害。 该参考设计描述了一种非接触式测量方法,用于测量和分配大多数工业液体,它利用数据采集系统(DAS)以及补偿的硅压力传感器和高精度的delta-sigma模数转换器(ADC) 。本文档对于设计各种必须测量和分配工业液体的精密传感和便携式应用的人员很有用。 该参考设计是补偿硅压力传感器应用系列中的第二篇。第一个参考设计5319“液位控制和输送系统使用补偿式硅压力传感器和精密Delta-Sigma ADC,第1
[测试测量]
一种经济高效的低功耗液位测量<font color='red'>数据</font><font color='red'>采集</font>系统(DAS)案例
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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