毕业论文.docx
《毕业论文.docx》由会员分享,可在线阅读,更多相关《毕业论文.docx(10页珍藏版)》请在冰豆网上搜索。
![毕业论文.docx](https://file1.bdocx.com/fileroot1/2023-1/10/c4690c45-4733-4326-88d9-891b68d5b5ca/c4690c45-4733-4326-88d9-891b68d5b5ca1.gif)
毕业论文
160128液晶曲线显示ADC0832两路模数转换设计
摘要:
本文介绍了以单片机最小系统、电压调节模块、ADC0832模数转换模块和LCD显示模块组成的模数转换显示系统,该系统以AT89C51为核心控制元件,其它外围电路辅助。
通过采集电压调节电路中电压输入,将输入信号转变为数字信号,再由单片机分析处理信号,最终输出信号,由160128液晶曲线显示。
同时介绍了该系统的硬件设计方法、系统的构成以及软件的设计,并详细的说明了系统的构成以及工作原理。
关键词:
ADC0832;LCD显示;模数转换
1引言
模-数(AD)和数-模(DA)转换是模拟电路和数字电路进行沟通的渠道,在数字电路里,电平只有高和低两种状态,比如5V和0V,对应着1和0;模拟电路中,电平理论上有无数个状态,比如0V、0.1V、0.2V…等等。
如何将模拟电平值在数字电路里表达出来呢?
这就需要AD转换过程。
ADC0832是美国国家半导体公司生产的一种8位分辨率、双通道A/D转换芯片。
由于它体积小,兼容性强,性价比高而深受单片机爱好者及企业欢迎,并且目前已经有很高的普及率。
学习并使用ADC0832可以使我们了解A/D转换器的原理,有助于我们单片机技术水平的提高。
2总体设计及工作原理
2.1设计原理及方案
A/D转换器能把输入的模拟电压或直流电流转变为与它成正比的数字量,既能把被控对象的各种模拟信息变成计算机可以识别的数字信息。
而本次设计即基于A/D转换器的原理,通过一个A/D(ADC0832模拟数字转换)芯片采集外界信息后,将外测电压信号转换成数字信号,再由AT89C51单片机分析并处理信号,最终输出信号,由160128液晶曲线显示两路电压。
2.2总体设计
本设计从各个角度分析了由单片机组成的数字电压表的设计过程及各部分电路的组成及其原理,并且分析了如何驱动单片机进而使系统运行起来的原理和方法。
框图如图1:
图1总体设计框图
3芯片介绍
3.1AT89C51单片机
AT89C51是一种低功耗、高性能CMOS8位微控制器,具有4K在系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使AT89C51为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
AT89C51具有以下标准功能:
4k字节Flash,128字节RAM,32位I/O口线,看门狗定时器,2个数据指针,2个16位定时器/计数器,有一个管理5个中断源,2个优先级的中断控制器,全双工串行口,片内晶振及时钟电路。
另外,AT89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
引脚结构如图2所示。
图2引脚结构
P0口:
P0口是一个8位漏极开路的双向I/O口。
作为输出口,每位能驱动8个TTL逻辑电平。
对P0端口写“1”时,引脚用作高阻抗输入。
当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。
在这种模式下,P0具有内部上拉电阻。
在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。
程序校验时,需要外部上拉电阻。
P1口:
P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。
对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下表所示。
在flash编程和校验时,P1口接收低8位地址字节。
引脚号第二功能
P1.0T2(定时器/计数器T2的外部计数输入),时钟输出
P1.1T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)
P1.5MOSI(在系统编程用)
P1.6MISO(在系统编程用)
P1.7SCK(在系统编程用)
P2口:
P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。
对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。
在这种应用中,P2口使用很强的内部上拉发送1。
在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。
在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。
P3口:
P3口是一个具有内部上拉电阻的8位双向I/O口,p2输出缓冲器能驱动4个TTL逻辑电平。
对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
P3口亦作为AT89S51特殊功能(第二功能)使用,如下表所示。
在flash编程和校验时,P3口也接收一些控制信号。
引脚号第二功能
P3.0RXD(串行输入)
P3.1TXD(串行输出)
P3.2INT0(外部中断0)
P3.3INT0(外部中断0)
P3.4T0(定时器0外部输入)
P3.5T1(定时器1外部输入)
P3.6WR(外部数据存储器写选通)
P3.7RD(外部数据存储器写选通)
RST:
复位输入。
晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。
看门狗计时完成后,RST脚输出96个晶振周期的高电平。
特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。
DISRTO默认状态下,复位高电平有效。
ALE/PROG:
地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。
在flash编程时,此引脚(PROG)也用作编程输入脉冲。
在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。
然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。
如果需要,通过将地址为8EH的SFR的第0位置“1”,ALE操作将无效。
这一位置“1”,ALE仅在执行MOVX或MOVC指令时有效。
否则,ALE将被微弱拉高。
这个ALE使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。
PSEN:
外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。
当AT89c51从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。
EA/VPP:
访问外部程序存储器控制信号。
为使能从0000H到FFFFH的外部程序存储器读取指令,EA必须接GND。
为了执行内部程序指令,EA应该接VCC。
在flash编程期间,EA也接收12伏VPP电压。
XTAL1:
振荡器反相放大器和内部时钟发生电路的输入端。
XTAL2:
振荡器反相放大器的输出端。
3.2ADC0832
美国国家半导体公司生产的一种8位分辨率、双通道A/D转换芯片。
由于它体积小,兼容性强,性价比高而深受单片机爱好者及企业欢迎,其目前已经有很高的普及率。
学习并使用ADC00832可使我们了解A/D转换器的原理,有助于我们单片机水平的提高。
ADC0832具有以下特点:
8位分辨率;
双通道A/D转换;
输入输出电平与TTL/CMOS相兼容;
5V电源供电时输入电压在0~5V之间;
工作频率为250Khz,转换时间为32us;
一般功率仅为15mw;
8P、14P—DIP(双列直插)、PICC多种封装;
商用级芯片温度为0到+70摄氏度,工业级芯片温宽为-40到+85摄氏度;
ADC0832有DIP和SOIC;两种封装DIP封装的ADC0832引脚排列如图3所示:
图3ADC0832的引脚封装图
芯片接口说明:
CS片选使能,低电平芯片使能。
CH0模拟输入通道0,或作为IN+/-使用。
CH1模拟输入通道1,或作为IN+/-使用。
GND芯片参考0电位(地)。
DI数据信号输入,选择通道控制。
DO数据信号输入,转换数据输出。
CLK芯片时钟输入。
Vcc/REF电源输入及参考电压输入。
4硬件设计及电路图
4.1单片机对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位数据用于选择通道功能。
4.2LCD显示模块
LCD显示器分为字段显示和字符显示两种。
其中字段显示与LED显示相似,只要送对应的信号到相应的管脚就能显示。
字符显示是根据需要显示基本字符。
本设计采用的是字符型显示。
系统中采用的是LCD160128作为显示器件输出信息。
与传统的LCD数码管显示器件相比,液晶显示模块具有体积小、功耗低、显示内容丰富等优点,而且不需要外加驱动电路,现在液晶显示模块已经是单片机应用设计中最常用的显示器件了。
LCD160128可以显示两行16个汉字。
如图4:
图4LCD160128引脚图
4.3时钟电路
时钟电路是外部时钟和内部时钟组成。
内部是由单片机本身及外部12MHZ的晶振和两个电容构成工作主频时钟电路,这样外电源断开时钟也不会停止。
如图5:
图5时钟电路
4.4电压调节部分
本部分采用两个滑动变阻器和两个电压表来调节输入同道CH0和CH1的电压,如图6:
图6电压调节部分电路
4.5复位电路
单片机的复位方式主要有上电自动复位和按钮手动复位。
为了保证单片机系统有效复位,要求RST端脚维持高电平大于10MS以上。
电阻和电容的值随时钟频率的不同而变化。
本部分采用的是手动复位,如图7:
图7复位电路
4.6系统原理图
单片机AT89S51是本系统的核心部分,根据以上各功能模块得到应用电路总电路图。
原理图如图8所示:
图8系统原理图
5系统程序设计
5.1软件总体框架设计
系统软件的总体框架,主程序采用死循环结构,在其中调节了三个子程序,为初始化程序,AD转换子程序,动态显示子程序,首先,单片机片选A/D转换器,然后发出信号启动A/D转换。
若有,即启动信号采集,对A/D转换器的数据输出口送来的数值进行存储,数据处理完之后,将电压数值送显示器显示出来。
程序总流程图如图9所示。
5.2A/D转换子程序
A/D转换子程序用来控制对输入的模块电压信号的采集测量,并将对应的数值存入相应的内存单元,其转换流程图如图10所示。
图9总体流程图
图10A/D转换子程序图
5.3LCD显示子程序
LCD显示程序的设计一般先要确定LCD的初始化、光标定位、确定显示字符后,显示流程如图11:
图11LCD显示子程序