基于ad0832的液晶显示数字电压表.docx

上传人:b****5 文档编号:2912701 上传时间:2022-11-16 格式:DOCX 页数:29 大小:131.21KB
下载 相关 举报
基于ad0832的液晶显示数字电压表.docx_第1页
第1页 / 共29页
基于ad0832的液晶显示数字电压表.docx_第2页
第2页 / 共29页
基于ad0832的液晶显示数字电压表.docx_第3页
第3页 / 共29页
基于ad0832的液晶显示数字电压表.docx_第4页
第4页 / 共29页
基于ad0832的液晶显示数字电压表.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

基于ad0832的液晶显示数字电压表.docx

《基于ad0832的液晶显示数字电压表.docx》由会员分享,可在线阅读,更多相关《基于ad0832的液晶显示数字电压表.docx(29页珍藏版)》请在冰豆网上搜索。

基于ad0832的液晶显示数字电压表.docx

基于ad0832的液晶显示数字电压表

第三章硬件设计及电路图

3.1芯片资料介绍

3.1.1AT89C51

 AT89C51是一种带4K字节FLASH存储器的低电压、高性能CMOS8位微处理器,俗称单片机。

AT89C51是一种带2K字节闪存可编程可擦除只读存储器的单片机。

单片机的可擦除只读存储器可以反复擦除1000次。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,外形及引脚排列如图所示。

图3-1AT89C51外形及引脚排列

3.1.2AD0832

美国国家半导体公司生产的一种8位分辨率、双通道A/D转换芯片。

由于它体积小,兼容性强,性价比高而深受单片机爱好者及企业欢迎,其目前已经有很高的普及率。

学习并使用ADC0832可是使我们了解A/D转换器的原理,有助于我们单片机技术水平的提高。

ADC0832具有以下特点:

•8位分辨率;

•双通道A/D转换;

•输入输出电平与TTL/CMOS相兼容;

•5V电源供电时输入电压在0~5V之间;

•工作频率为250KHZ,转换时间为32μS;

•一般功耗仅为15mW;

•8P、14P—DIP(双列直插)、PICC多种封装;

•商用级芯片温宽为0℃to+70℃,工业级芯片温宽为−40℃to+85℃;

ADC0832有DIP和SOIC;两种封装,DIP封装的ADC0832引脚排列如下图所示:

图3-2ADC0832的引脚封装图

芯片接口说明:

•CS_片选使能,低电平芯片使能。

•CH0模拟输入通道0,或作为IN+/-使用。

•CH1模拟输入通道1,或作为IN+/-使用。

•GND芯片参考0电位(地)。

•DI数据信号输入,选择通道控制。

•DO数据信号输出,转换数据输出。

•CLK芯片时钟输入。

•Vcc/REF电源输入及参考电压输入(复用)。

3.2单片机对ADC0832的控制原理

正常情况下ADC0832与单片机的接口应为4条数据线,分别是CS、CLK、DO、DI。

但由于DO端与DI端在通信时并未同时有效并与单片机的接口是双向的,所以电路设计时可以将DO和DI并联在一根数据线上使用。

当ADC0832未工作时其CS输入端应为高电平,此时芯片禁用,CLK和DO/DI的电平可任意。

当要进行A/D转换时,须先将CS使能端置于低电平并且保持低电平直到转换完全结束。

此时芯片开始转换工作,同时由处理器向芯片时钟输入端CLK输入时钟脉冲,DO/DI端则使用DI端输入通道功能选择的数据信号。

在第1个时钟脉冲的下沉之前DI端必须是高电平,表示启始信号。

在第2、3个脉冲下沉之前DI端应输入2位数据用于选择通道功能。

3.3LCD显示模块

LCD显示器分为字段显示和字符显示两种。

其中字段显示与LED显示相似,只要送对应的信号到相应的管脚就能显示。

字符显示是根据需要显示基本字符。

本设计采用的是字符型显示。

系统中采用LCD1602作为显示器件输出信息。

与传统的LCD数码管显示器件相比,液晶显示模块具有体积小、功耗低、显示内容丰富等优点,而且不需要外加驱动电路,现在液晶显示模块已经是单片机应用设计中最常用的显示器件了。

LCD1602可以显示2行16个汉字。

如图:

图3-3LCD1602引脚图

3.4时钟电路

时钟电路是外部时钟和内部时钟组成。

内部是由单片机本身及外部12MHZ的晶振和两个电容构成工作主频时钟电路,这样外电源断开时钟也不会停止。

如图:

图3-4时钟电路

3.5电压调节部分

本部分采用两个滑动变阻器和两个电压表来调节输入同道CHO和CH1的电压,如图:

图3-5电压调节部分电路

3.6复位电路

单片机的复位方式主要有上电自动复位和按钮手动复位。

为了保证单片机系统有效复位,要求RST端脚维持高电平大于10MS以上。

电阻和电容的值随时钟频率的不同而变化。

本部分采用的是电动复位,如图:

图3-6复位电路

3.7系统原理图

单片机AT89S51是本系统的核心部分,根据以上各功能模块得到应用电路总原理图。

原理图如3-7所示:

图3-7系统原理图

第四章系统程序设计

4.1软件总体框架设计

系统软件的总体框架,主程序采用死循环结构,在其中调用了三个子程序,为初始化程序,AD转换子程序,动态显示子程序,首先,单片机片选A/D转换器,然后发出信号启动A/D转换。

若有,即启动信号采集,对A/D转换器的数据输出口送来的数值进行存储,数据处理完之后,将电压数值送显示器显示出来。

程序总体流程图如图4-1所示:

 

 

图4-1总体流程图

4.2系统子程序设计

4.2.1初始化程序

所谓初始化,是对将要用到的MCS_51系列单片机内部部件或扩展芯片进行初始工作状态设定,初始化子程序的主要工作是设置定时器的工作模式,初值预置,开中断和打开定时器等。

4.2.2A/D转换子程序

A/D转换子程序用来控制对输入的模块电压信号的采集测量,并将对应的数值存入相应的内存单元,其转换流程图如图4.2所示。

 

图4-2A/D转换子程序图

ADC0832.C模数转换源程序:

#include

#include

#defineuintunsignedint

#defineucharunsignedchar

sbitCS=P1^3;

sbitCLK=P1^0;

sbitDI=P1^1;

sbitDO=P1^1;

//函数声明

ucharGet_Value_ADC0832(ucharCH);//获取指定通道的A/D转换结果

//获取指定通道的A/D转换结果

ucharGet_Value_ADC0832(ucharCH)

{

uchari,dat1=0,dat2=0;//起始控制位

CLK=0;_nop_();_nop_();

DI=1;_nop_();_nop_();

CS=0;_nop_();_nop_();

CLK=1;_nop_();_nop_();

//第一个下降沿之前,设置DI=1/0;

//选择单端/差分(SGL/DIF)模式中的单端输入模式

CLK=0;DI=1;_nop_();_nop_();

CLK=1;_nop_();_nop_();

//第二个下降沿之前,设置DI=0/1;选择CH0/CH1

CLK=0;DI=CH;_nop_();_nop_();

CLK=1;DI=1;_nop_();_nop_();

//第三个下降沿之前,设置DI=1;

CLK=0;DI=1;_nop_();_nop_();

//第4-11个脉冲期间读数据(MSB->LSB)

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

{

CLK=1;_nop_();_nop_();

CLK=0;_nop_();_nop_();

dat1=dat1<<1|DO;

}

//第11-18个脉冲期间读数据(LSB->MSB)

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

{

dat2=dat2|((uchar)(DO)<

CLK=1;_nop_();_nop_();

CLK=0;_nop_();_nop_();

}

CS=1;

return(dat1==dat2)?

dat1:

0;

}

4.2.3LCD显示子程序

LCD显示程序的设计一般先要确定LCD的初始化、光标定位、确定显示字符后,显示流程如图4-3显示:

;

 

图4-3LCD显示子程序

 

收获和体会

在本次数字电压表的设计过程中,我们做得出来的数字电压表能够实现测电压并显示的功能,但是测量电压范围只有0-5V,测量电压范围太小,这是我们设计的电压表的缺陷。

由于我们能力和时间精力有限,没能设计出更大范围的数字电压表。

该数字电压表的扩展方向有:

1、改用ADC0809芯片扩大量程、可调节量程或自动转换换量程。

2、输出量可用平均值算法来改善,使测量准确度更高。

3、若能将测量的电压值实时保存,使用时将更方便等。

 

致谢

在两周的课程设计过程中,不断的阅读资料,以及在老师的指导下与同学的讨论,拓宽了我的思路,并帮助我解决了许多难题,才让我取得本次课程设计的成功。

在此谨向他们表示衷心的感谢!

感谢学校对我们课程设计工作的关心与支持,为我们提供了良好的课程设计场所和完备的实验器材,使课程设计能够顺利进行。

 

参考文献

[1]李朝青.单片机原理及接口技术(简明修订版).杭州:

北京航空航天大学出版社,1998

[2]李广弟.单片机基础[M].北京:

北京航空航天大学出版社,1994

[3]阎石.数字电子技术基础(第三版).北京:

高等教育出版社,1989

[4]石东海等.单片机数据通信技术从入门到精通.西安:

西安电子科技大学出版社,2002.148~150.[5]王忠飞,胥芳.MCS一51单片机原理及嵌入式系统应用[M].西安:

西安电子科技大学出版社,2007.P268-273

[6]蔡朝洋,单片机控制实习与专题制作[M].北京:

北京航空航天大学出版社,2006

[7]张毅刚,彭喜源,谭晓昀等.MSC-51单片机应用设计[M].哈尔滨:

哈尔滨工业大学出版社,1999

[8]周坚.单片机C语言轻松入门[M].北京:

北京航空航天大学出版社,2006

[9]李全利,迟荣强.单片机原理及接口技术[M].北京:

高等教育出版社,2004

[10]梅丽凤,王艳秋.单片机原理及接口技术(修订本)[M].北京:

清华大学出版社;北京交通大学出版社,2006

 

附录1

 

附录2完整程序代码

1.头文件

#ifndef__LCD_160128_H__

#define__LCD_160128_H__

#include

#include

#include

#include

#include

#include

#include

#defineuintunsignedint

#defineucharunsignedchar

#defineSTX0x02//

#defineETX0x03//

#defineEOT0x04//

#defineENQ0x05//

#defineBS0x08//

#defineCR0x0d//

#defineLF0x0a//

#defineDLE0x10//

#defineETB0x17//

#defineSPACE0x20//

#defineCOMMA0x2c//

#defineTRUE1//

#defineFALSE0//

#defineHIGH1//

#defineLOW0//

//T6963C端口定义

#defineLCMDWXBYTE[0x8000]//数据口

#defineLCMCWXBYTE[0x8100]//命令口

#defineDISRAM_SIZE0x7fff//设

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 笔试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1