51单片机驱动ADC0832模数转换程序-lcd1602显示

发布者:钱老李最新更新时间:2015-04-27 来源: 51hei关键字:51单片机驱  ADC0832  模数转换  lcd1602 手机看文章 扫描二维码
随时随地手机看文章
/*这个芯应用不多*/

#include
#define uchar unsigned char
#define uint unsigned int
uchar Chan0Value,Chan1Value;
sbit RS=P1^0; //1602各控制脚
sbit RW=P1^1;
sbit EN=P1^2;
sbit Cs0832=  P2^0;    //0832各控制脚
sbit Clk0832= P3^6;
sbit Di0832=  P3^7;
sbit Do0832=  P3^7;

void delay1ms(unsigned int ms)//延时1毫秒(不够精确的)
{
    int i,j;
   for(i=0;i     for(j=0;j<100;j++);
}

/**********************************ADC0832********************************/
uchar GetValue0832(uchar Channel) //获取数值返回。入口:通道(0或1)。出口:数值。
{
 uchar i,Dat1=0,Dat2=0;
 Clk0832=0;
 Di0832=1;
 Cs0832=0;
 Clk0832=1;
 Clk0832=0; //第一脉冲,开始位
 Di0832=1;
 Clk0832=1;
 Clk0832=0; //第二脉冲,模式选择 
 Di0832=Channel;//通道选择,0或1
 Clk0832=1;
 Clk0832=0; //第三脉冲,通道选择
 Di0832=1; //释放输入线
 for(i=0;i<8;i++)   //从高到低取一次数
  {
   Clk0832=1; //下降沿有效
   Clk0832=0;
   if(Do0832) Dat1|=0x80>>i;
   }
 for(i=0;i<8;i++)   //从低到高取一次数
  {
  if(Do0832) Dat2|=0x01<   Clk0832=1; //下降沿有效
  Clk0832=0;
  }
 Cs0832=1;
 Di0832=1;
 Clk0832=1;  //数据读取完成,释放所有数据线
 if(Dat1==Dat2)
 return Dat1; //校验两次数相等,输出
}
/*本程序与其他一般程序最大的不同就是要读两次
一次从最高位到最低位,一次从最低位到最高位,
两次所读值相等即为正常,可以输出*/
/******************************LCD1602**************************************/
/*************************lcd1602程序**************************/

void wr_com(unsigned char com)//写指令//
{ delay1ms(1);
   RS=0;
   RW=0;
   EN=0;  
   P0=com; 
   delay1ms(1);  
   EN=1;  
   delay1ms(1);  
   EN=0;
}
void wr_dat(unsigned char dat)//写数据//
{ delay1ms(1);
   RS=1;
   RW=0;
   EN=0;
   P0=dat;
   delay1ms(1);
   EN=1;
   delay1ms(1);
   EN=0;
}
void lcd_init()//初始化设置//
{
delay1ms(15);
wr_com(0x38);delay1ms(5);
wr_com(0x80);delay1ms(5);
wr_com(0x01);delay1ms(5);
wr_com(0x06);delay1ms(5);
wr_com(0x0c);delay1ms(5);
}
void writevalue(uchar add,uchar dat)
{
 wr_com(0x80+add);
 wr_dat(dat);
}
 void zifuchuan(uchar *ch)
{
  while(*ch!=0)
  wr_dat(*ch++);
  delay1ms(20); 
}
void main(void)
{
     lcd_init();
 while(1)
 {
  Chan0Value=GetValue0832(0);
  delay1ms(100);
     Chan1Value=GetValue0832(1);
  
        wr_com(0x80);
  zifuchuan("Chanal 0:");
  writevalue(10,Chan0Value/100+0x30);
  writevalue(11,Chan0Value%100/10+0x30);
  writevalue(12,Chan0Value%100%10+0x30);
  
  wr_com(0x80+0x40);
  zifuchuan("Chanal 1:");
  writevalue(0x40+10,Chan1Value/100+0x30);
  writevalue(0x40+11,Chan1Value%100/10+0x30);
  writevalue(0x40+12,Chan1Value%100%10+0x30); 
  delay1ms(1000);
 }
}
/*此程序只为调 通ADC0832,没有对电压值进行转换
要想得到准确电压值,请把Chan0Value和Chan1Value
的值乘以5再除以255即可。当某一通道没有输入而
悬空时,有可能会显示256的中间值128,这是干扰,可
以不理会*/

关键字:51单片机驱  ADC0832  模数转换  lcd1602 引用地址:51单片机驱动ADC0832模数转换程序-lcd1602显示

上一篇:51单片机带闰年补偿的一个时钟程序
下一篇:基于51单片机的简易计算器1602显示

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

基于51单片机的酒精浓度监测仪
一.系统概述 系统使用的模块有AT89C51单片机+LCD1602显示屏+MQ-3酒精检测模块+小灯+ADC0832。 本设计采用51单片机为核心控制,通过调节电位器可以模拟MQ-3酒精浓度的变化,MQ-3采集到的模拟电压信号会通过ADC0832转换为数字电压信号,单片机会将电压信号进行处理和分析并得到我们想要的酒精浓度信号,通过LCD1602显示屏显示酒精浓度,当检测到的酒精浓度高于设置的阈值,小灯就会直接进行报警。 二.仿真概述 1.通过LCD1602显示实时检测到的酒精浓度和设置的酒精浓度阈值。 2.通过MQ-3乙醇模块进行酒精浓度的检测。 3.当检测到的酒精浓度值超过设定阈值后就会通过小灯进行报警。 三
[单片机]
基于<font color='red'>51单片机</font>的酒精浓度监测仪
LCD1602液晶显示模块深入详解之软件篇(AVR)
LCD1602液晶显示模块的驱动虽然比七段数码管之类的显示要复杂一些,但实际上也并不是很难,最主要的还是初始化,为什么这么说呢?我们在调试一块新液晶屏的时候,都会先初始化看看有没有光标在闪,没有光标前是一番努力(PROTEUS上也是这么做的),光标出来之后就相对很容易了。 那初始化的流程是怎么样的呢?我们还是看看HD44780的数据手册吧,如下图所示: 可以看到,初始化的主要步骤如下: (1)上电:这特么也算是一个步骤么?是的!如果你用的是其它液晶模块,比如LCD12864,会发现有一个复位引脚,LCD1602是没有复位引脚的,HD44780本身已经有内部复位逻辑。上电后复位其实会做很多事情的,主要如下: a. 清除屏
[单片机]
<font color='red'>LCD1602</font>液晶显示模块深入详解之软件篇(AVR)
模数转换器JESD204标准概述
随着转换器分辨率和速度的提高,对于效率更高的数字端接口的需求也随之增长。目前,模数转换器( ADC )正经历从并行LVDS(低压差分信号)和CMOS数字接口到串行接口( JESD204 )的转变。JESD204由JEDEC开发。 JESD204接口可提供这种高效率,较之其前代产品在速度、尺寸和成本上更有优势。采用JESD204的设计拥有更快的接口带来的好处,能与转换器更快的采样速率同步。此外,引脚数量的减少使得封装尺寸更小且布线数量更少,这些都让电路板更容易设计并且封装和电路板设计的成本更低。 该标准可以方便地调整,以满足未来的需求,正如它已经历了两个版本的变化。自从2006年发布以来,JESD204标准经过两次更新,目前
[模拟电子]
<font color='red'>模数转换</font>器JESD204标准概述
基于单片机的LCD1602控制总线程序
    第一行显示"Welcome";第二行显示="Happy day";若要显示其他字符,请直接往数组 LCMLineOne 和LCMLineTwo 填充相应的代码。直接上图,仿真图如下:     源程序如下,可以对比时序方式,理解总线的操作方法。     #include reg51.h //#include absaCC.h #define uchar  unsigned char #define uint  unsigned int #define busy  0x80 uchar  xdata  LCMWriteCOM  _at_ 0x80ff;  //写指令寄存器 uchar  xdata  LCMRea
[单片机]
基于单片机的<font color='red'>LCD1602</font>控制总线程序
流水线型模数转换器MAX1200及其与DSP的接口
1 MAX1200的特点功能 新型ADC正在朝着低功耗、高速、高分辨率的方向发展,新型流水线结构正是实现高速低功耗ADC的有效方法。而MAX1200则是采用这一新技术的高速、高精度、低功耗ADC的代表。 MAX1200是一种16位、采样率可达1Msps的单片集成模数转换器,其内部的CMOS积分电路采用全差分多级流水线结构,它具有快速的数字误差校正和自校准功能,能保证在全采样率时具有16位的线性度和91dB的非杂散动态范围(SFDR),以及良好的信噪比(SNR)和谐波失真(THD)特性。MAX1200主要应用于高分辨率图象系统、扫描仪、数字通讯、检测仪表和数据接收等领域;其主要技术特点如下: ●采用单电源+5V供电; ●采用±
[单片机]
流水线型<font color='red'>模数转换</font>器MAX1200及其与DSP的接口
AVR单片机控制LCD1602液晶显示
一、字符型LCD1602介绍 详情请进: http://q.163.com/longfei-mcu/ 以上是LCD1602的图片,这是市面上大多数使用的。LCD1602已很普遍了,市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。字符型LCD通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样 字符型LCD的引脚定义如下: 图1 HD44780内置了DDRAM、CGROM和CGRAM。 DDRAM就是显示数据RAM,用
[单片机]
AVR单片机控制<font color='red'>LCD1602</font>液晶显示
PCM186x:110dB立体声音频模数转换方案
该PCM186x系列音频前端设备,采用一种新的方法,进行音频功能的集成,以符合欧洲Ecodesign标准,同时实现了高性能高端产品和更低的成本。它无需使用5V电源或外部可编程增益放大器,体积更小,更智能化,并降低了成本。 PCM186x是高度灵活的音频前端,它支持广泛的输入电平,从小型毫伏麦克风输入,到无需外部电阻分压器的2.1VRMS线路输入。该PCM186x系列集成了许多系统级的功能,可以帮助甚至代替某些DSP功能实现。 所有这些功能都可以通过一个单一的3.3V电源来实现。其集成的带隙电压基准,提供了出色的PSRR,可以省去专用的模拟3.3V电压轨。     图1 PCM186x系列内部框图 PCM186x系列主要特性 通用
[电源管理]
PCM186x:110dB立体声音频<font color='red'>模数转换</font>方案
24位高性能模数转换器ADS1274/ADS1278及其应用
   1 概述   ADS1274/ADS1278是德州仪器(TI)推出的多通道24位工业模数转换器(ADC),内部集成有多个独立的高阶斩波稳定调制器和FIR数字滤波器,可实现4/8通道同步采样,支持高速、高精度、低功耗、低速4种工作模式;ADS1274/ADS1278具有优良的AC和DC特性,采样率最高可以达128 Ks/s,62 kHz带宽时信噪比(SNR)可达111 dB,失调漂移为0.8μV/℃。   ADS1274/ADS1278可通过设置相应的输入/输出引脚选择工作模式,无需寄存器编程,其数据输出可选帧同步或SPI串行接口,便于连接至DSP、FPGA及微控制器。每个接口均支持菊花链,简化多通道计数系统中的多个ADS
[模拟电子]
24位高性能<font color='red'>模数转换</font>器ADS1274/ADS1278及其应用
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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