数字式电压表-AT89C51单片机-AD转换-数据处理-毕业设计.doc

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

摘要
传统的模拟式(即指针式)电压表已有100多年的历史,虽然不断的改进与完善,仍无法满足现代电子测量的需求。

数字式电压表作为数字化仪表的基础和核心,已成为在电子和电工测量、工业自动化仪表、自动测试系统等领域中应用最广泛的一种仪表,并显示出其强大的生命力。

本设计在利用AT89C51单片机的基础上,结合TLC2543转换芯片及LCD显示器构建了测量范围在0~300V的数字式电压表。

电压表分为三个档位:6V、30V、300V。

该数字式电压表的设计主要由三个模块组成:模拟数据采集处理模块、A/D转换模块及LCD显示模块。

模拟数据的采集处理模块由输入电路部分完成。

A/D转换模块主要由芯片TLC2543来完成,它负责把采集到的模拟量数据转换成相应的数字量再传送到AT89C51单片机进行数据处理。

显示模块是将单片机处理好的数据传送到LCD显示器进行显示。

关键词:数字式电压表,AT89C51单片机,A/D转换,数据处理
ABSTRACT
Traditionally, the analog (i.e. pointer type) voltmeter has a history over 100 years. Although it has a continuous improvement and perfection, it still can not meet the demand for modern electronic measurement. As the basis and core of digital instrumentation, digital voltmeter has become an instrument that widely used in the area of electronic and electrical measurement, industrial automation instrument, automatic test system, etc. And show its strong vitality.
The design is based on the use of AT89C51 single-chip microcomputer and combines with TLC2543 converter and LCD. All of these constructions formed a digital voltmeter which can measure voltage from 0 to 300V. The voltmeter is divided into three stages: 6V, 30V, 300V. The design of this digital voltmeter mainly consists of three modules: analog data acquisition and processing module, the A/D converter module and the LCD module. Analog data acquisition and processing module is composed of an input circuit part. A/D converter module is mainly composed of TLC2543 chip to complete, and it is responsible for the conversion of analog data into corresponding digital quantity and then it delivers data to the AT89C51 single-chip microcomputer for data processing. The display module transfers data that processed by single-chip microcomputer to a LCD for displaying.
Key words: digital voltmeter, AT89C51 single-chip microcomputer, A/D converter, data processing
目录
1 绪论 (1)
1.1 课题研究的相关背景 (1)
1.2 设计的基本技术要求 (1)
1.3 主要设计内容及设计思路 (2)
1.4 预期成果及其意义 (2)
2 数字式电压表设计的两种可行性方案研究 (3)
2.1 由数字电路及芯片构建 (3)
2.2 由单片机系统及A/D转换芯片构建 (3)
3 系统设计中相关硬件简介 (4)
3.1 AT89C51单片机简介 (4)
3.2 模数(A/D)芯片TLC2543简介 (4)
3.3 常用显示器简介及本设计显示器的选择 (6)
3.4 1602液晶显示器介绍 (7)
4 硬件系统设计 (9)
4.1 设计要求 (10)
4.2 设计方案 (10)
4.3 硬件电路系统模块的设计 (10)
5 软件系统设计 (15)
5.1 主程序流程图 (15)
5.2 TLC2543采集数据流程图 (16)
5.3 LCD初始化流程图 (17)
5.4 LCD显示流程图 (18)
6 电路调试及实验结果 (19)
6.1 Proteus仿真结果及其分析 (19)
6.2 搭建实验电路及调试分析 (20)
6.3 实验结果分析 (20)
7 总结 (21)
参考文献 (22)
附录 (23)
附录一:程序源代码 (23)
附录二:原理图及实物图 (29)
1 绪论
数字式电压表(Digital V oltmeter)简称DVM,作为智能仪表的一种,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转化成不连续,离散的数字形式并加以显示的仪表。

传统的指针式电压表功能单一,精度低,不能满足数字化时代的需求。

采用单片机设计的数字式电压表,精度高,抗干扰能力强,可扩展性强,集成方便。

目前,由各种单片机,A/D转换器构成的数字式电压表,已经被广泛用于电子及电工测量,工业自动化仪表,自动测量系统等智能化测量领域,显示出强大的生命力。

本文就数字式电压表加以叙述。

1.1 课题研究的相关背景
数字式电压表之所以出现,一方面是由于电子计算机的应用逐渐推广到系统的自动控制实验研究的领域,提出了将各种被观察量或被控制量转换成数码的要求,即为了实时控制及数据处理的要求;另一方面,也就是电子计算机的发展,带动了脉冲数字电路技术的进步,为数字化仪表的出现提供了条件。

所以,数字化测量仪表的产生于发展与电子计算机的发展是密切相关的;同时为了革新电子测量中的繁琐与陈旧方面也催促了它的飞速发展。

如今,它又成为向智能化仪表发展的必要桥梁。

数字式电压表最初是伺服步进电子管比较式,其优点是准确度比较高,但是采用速度慢,重量达几十公斤,体积大。

后来出现了斜波式电压表,它的速度方面稍有提高,但是准确度低,稳定性差。

再后来出现了比较式仪表改进逐次渐近式结构,它不仅保持了比较式准确度高的优点,而且速度也有了很大的提高。

但它有一缺点是抗干扰能力差,很容易受到外界各种因素的影响。

随后,在斜波式的基础上引伸出阶梯波式。

而现在,数字式电压表的发展已经是非常的成熟,就原理来讲,它从原来的一、两种已发展到了多种。

在功能上讲,则从测单一参数发展到能测多种参数;从制作的元件来看,发展到了集成电路,准确度已经了有了很大的提高,准确度高达1NV;读数每秒几万次,而相对以前,它的价格也降低了很多。

在电量的测量中,电压、电流和频率是最基本的三个被测量。

其中,电压量的测量最为经常。

而且随着电子技术的发展,更是经常需要测量高精度的电压,所以数字式电压表就成为一种必不可少的测量仪器。

1.2 设计的基本技术要求
本设计利用Keil与Proteus软件搭建仿真开发平台作为前期的仿真调试,通过仿真后确定使用的原理电路及元器件,在这一基础上着手绘制PCB图,最后设计出一个实物装置。

设计中使用51系列单片机配以A/D转换芯片TLC2543来实现电压的测量。


统能实现6V、30V、300V三个量程档位的电压测量。

1.3 主要设计内容及设计思路
1.3.1主要设计内容
(1)输入电路中反相放大器的工作原理及衰减电压信号时电阻的选择;
(2)输入电路与单片机和数模转换器的连接;
(3)单片机与数模转换器的连接;
(4)单片机和LCD的连接。

1.3.2 设计思路
三量程的数字式电压表的核心部分就是在输入电压时各档位对电压的衰减,然后将衰减后的电压值通过A/D转换器将模拟电压信号转换为对应的数字量,再经过单片机处理后显示在LCD显示器上。

1.4 预期成果及其意义
1.4.1 预期成果
使用51系列单片机配以TLC2543实现对电压的测量。

最高量程为300V,分三个档位量程,即6V、30V、300V,可以通过调档开关来实现各个档位,最高精度为0.01MV,误差控制在0.02V。

当测得电压的数值小于1V时,系统会自动的将电压数值转换为以MV为电压单位的电压值显示。

1.4.2 本设计的意义
本设计先简要介绍设计电压表的主要方式以及单片机系统的优势;然后详细介绍数字式电压表的设计流程,以及硬件系统和软件系统的设计,并给出硬件电路的设计细节,包括各部分电路的方向、芯片的选择以及方案的可行性分析等。

在参阅了大量前人设计的数字式电压表的基础上,利用单片机技术结合A/D转换芯片的设计,并在此基础上应用了C语言编程来完成数字式电压表的设计,其测量范围是0~300V。

本次设计的意义在于能够熟练使用C语言进行编程,学会使用Protel99SE绘制原理图及PCB图,通过软件与硬件的结合完成实物制作。

在设计过程中通过分析、调试能将所学的电子及单片机知识进行归纳和总结,凭所学的知识和当前的硬件条件来完成本次设计。

通过这次设计不仅可以掌握单片机的工作原理, A/D转换器的性能,单片机与LCD 显示的接口技术,而且在运用编程语言对数字式电压表设计的基础上,融会贯通大学期间所学的专业知识。

在完成毕业设计的前提下,掌握工程设计流程及其开发技术。

本设计的数字式电压表可直接读取数值且比较精确,适合在多种场合下使用。

具有传统数字式电压表无法比拟的特点,这使得它的开发和应用具有良好的前景。

2 数字式电压表设计的两种可行性方案研究
数字式电压表有多种设计方法,方案是多种多样的,由于大规模集成电路数字芯片的高速发展,各种数字芯片品种多样,导致对模拟数据的采集部分的不一致性,进而又使对数据的处理及显示的方式的多样性。

又由于在现实的工作生活中,电压表的测量测程范围是比较大的,所以必须要对输入电压作分压处理,而各个数据处理芯片的处理电压范围不同,则各种方案的分段也不同。

下面介绍两种数字式电压表的设计方案。

2.1 由数字电路及芯片构建
这种设计方案是由模拟电路与数字电路两大部分组成,模拟部分包括输入放大器。

A/D 转换器和基准电压源;数字部分包括计数器,译码器,逻辑控制器,振荡器和显示器。

其中A/D转换器是它的核心器件,它将输入的模拟量转换成数字量。

模拟电路和数字电路是相互联系的,由逻辑控制电路产生控制信号,按规定的时序将A/D转换器中各组模拟开关接通或断开,保证A/D转换正常进行。

A/D转换结果通过计数译码电路变换成段码,最后驱动显示器显示出相应的数值。

此方案设计的优点是设计成本低,能够满足一般的电压测量。

但设计不灵活,都是采用纯硬件电路,很难将其在原有的基础上进行扩展。

2.2 由单片机系统及A/D转换芯片构建
这种方案是利用单片机系统与模数转换芯片,显示模块等组合构建成数字式电压表。

由于单片机的发展已经成熟,利用单片机系统的软硬件结合,可以组装出来。

此方案的原理是A/D转换芯片将被测量电压输入端所采集到的模拟电压信号转换成相应的数字信号,然后通过对单片机系统进行软件编程,使单片机系统能按规定的时序来采集这些数字信号,通过一定的算法计算出被测量电压的值。

最后单片机系统将计算好了的被测电压值按一定的时序送入显示电路模块加以显示。

此方案不仅能够继承上一种方案的各种优点,还能改进上一种设计方案设计不灵活,难与在原基础上进行功能扩展等不足。

故本课题采用此方案进行设计。

3 系统设计中相关硬件简介
3.1 AT89C51单片机简介
AT89C51单片机是Atmel公司89系列单片机的一种8位Flash单片机。

它最大特点是片内含有Flash存储器,用途十分广泛,特点是在生产便捷式商品,手提式仪器等方面,有着十分广泛的应用。

AT89C51的主要性能包括:AT89C51与MCS-51控制器系列产品兼容,片内有4K 可在线重复编程闪速电擦除存储器(Flash Memory),存储器可循环写入或擦除1000次;存储器数据保存时间可达10年;工作电压范围宽:VCC可由2.7V到6V;全静态工作可由0Hz到16MHz;程序存储器具有3级锁存保护;128*8位内部RAM;32条可编程I/O线;两个16位定时器/计数器;中断结构具有5个中断源和2个中断优先级;可编程全双工串行通信;空闲状态维持低功耗和掉电状态保存存储内容。

本设计中,单片机起着连接硬件电路与程序运行及存储数据的任务。

一方面,它将A/D 转换器、显示器和开关选择档位等通过I/O口地址线和数据线连接起来;另一方面,它将用户下载的程序通过控制总线控制数据的输入输出,从而实现测量电压和显示测量电压值的功能。

3.2 模数(A/D)芯片TLC2543简介
TLC2543是TI公司的12位串行模数转换器,使用开关电容逐次逼近技术完成A/D 转换过程。

每个器件有三个控制输入端,片选,输入/输出时钟以及地址输入端。

它可以从主机高速传输转换数据。

它有高速的转换、简化比率转换、刻度以及模拟电路与逻辑电路和电源噪声隔离、耐高温等特点。

由于是串行输入结构,能够节省51系列单片机I/O资源;且价格适中,分辨率较高,因此在仪器仪表中有较为广泛的应用。

在本设计中,目的是制作一个较高精度的电压表。

因此本设计选择精度为12位的TLC2543芯片。

下面就具体介绍一下这个芯片的各方面资料。

3.2.1 TLC2543的特点
(1)12位分辩率A/D转换器;
(2)在工作温度范围内10μs转换时间;
(3)11个模拟输入通道;
(4)3路内置自测试方式;
(5)采样率为66kbps;
(6)线性误差±1LSBmax;
(7)有转换结束输出EOC;
(8)具有单、双极性输出;
(9)可编程的MSB或LSB前导;
(10)可编程输出数据长度。

3.2.2 TLC2543封装引脚图及引脚说明
TLC2543芯片的封装引脚如下图所示,为20引脚双列直插式。

图3-1 TLC2543芯片封装
TLC2543各引脚说明如下表,使用详细介绍如下所列。

表3-1 引脚说明
引脚号名称I/O 说明
1-9,11,12 AIN0-AIN10 I 模拟输入端
15 CS I 片选端
17 Data Input I 串行数据输入端
16 Data Output O A/D转换结果的三态串行输出端
19 EOC O 转换结束端
10 GND 接地端
18 I/O CLOCK I 输入/输出时钟端
14 REF+ I 正基准电压端
13 REF- I 负基准电压端
20 VCC 电源
(1)AIN0-AIN10这11个模拟信号输入由内部多路选器选择。

对4.1MHZ的I/O CLOCK驱动源阻抗必须小于或等于50Ω并且能够将模拟电压由60PF的电容来限制其斜率。

(2)在CS端一个由高到低的变化将复位内部计数器并控制使能端Data Output、Data Input和I/O CLOCK。

一个由低到高的变化将在一个设置时间内禁止Data Input和I/O CLOCK。

(3)串行数据输入端Data Input是一个4位的串行地址选择下一个即将被转换的所需的模拟输入或测试电压。

串行数据以MSB为前导并在I/O CLOCK的前4个上升沿被移入。

在4个地址位被读入地址寄存器后,I/O CLOCK将剩下的几位依次输入。

(4)Data Output在CS位高电平时处于高阻抗状态,而当CS为低电平时处于激活状态。

CS一旦有效,按照前一次转换的结果的MSB/LSB值将Data Output从高阻抗状态转变成相应的逻辑电平,I/O CLOCK的下一个下降沿将根据下一个MSB/LSB将Data Output驱动成相应的逻辑电平,剩下的各位依次移出。

(5)EOC在最后的I/O CLOCK下降沿之后,从高电平变为低电平并保持低电平直到转换完成及数据准备传输。

(6)GND端是内部电路的接地端,除加有说明外,所有电压测量都相对于GND。

(7)I/O CLOCK端串行输入并完成以下四个功能:第一,在I/O CLOCK的前8个上升沿,它将8个输入数据信号输入数据寄存器。

在第4个上升沿之后为多路器的地址。

第二,在I/O CLOCK的第4个下降沿,在选定的多路器的输入端上的模拟输入电压开始和电容器充电并继续到I/O CLOCK的最后一个下降沿。

第三,它将前一次转换的数据的其余11位移出Data Output端。

在I/O CLOCK的下降沿时数据变化。

第四,在I/O CLOCK的最后一个下降沿它将变换的控制信号传送到内部的状态控制位。

(8)REF+端通常接VCC,最大输入电压范围取决于加于本端与加于REF-端的电压差。

(9)REF-端通常接地。

3.3 常用显示器简介及本设计显示器的选择
本次设计中有显示模块,而常用的显示器件也比较多,有数码管,LED点阵,1602液晶,12864液晶等。

数码管是最常用的一种显示器件,它是由几个发光二极管组成的8字段显示器件,其特点是价格便宜,使用也非常的方便,显示的效果很清楚。

小电流下可以驱动发光,发光响应时间极短,体积小,重量轻,抗冲击性能好,寿命长。

但数码管只能显示0~9的数据。

不能够显示字符。

这也是数码管的不足之处。

LED点阵显示器件是利用发光二极管点阵模块或像素单元组成的平面式显示屏幕。

它具有发光效率高、使用寿命长、组态灵活、色彩丰富以及对室内环境适应能力强等优
点。

LED点阵显示器件可以显示数字,英文字符,中文字符等。

但用LED点阵显示的软件程序设计比较麻烦。

1602液晶是工业字符型液晶显示器,能够同时显示16*2即32个字符。

1602液晶模块内部的字符发生存储器已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码。

使用时直接编写软件程序按一定的时序驱动即可。

它的特点是显示字迹清楚,价格相对便宜。

12864液晶也是一种工业字符型液晶,它不仅能够显示1602液晶所可以显示的字符,数字等信息,而且还可以显示8*4个中文汉字和一些简单的图片,显示信息也非常的清楚。

使用时也直接编写软件程序按一定的时序驱动即可。

不过它的价格比1602液晶昂贵的很多。

本设计只需要显示最后电压的数字值和电压的单位,综合上面各种显示器件的特点:数码管只能显示数字,不能显示单位字符,不符合本设计的要求。

而点阵显示器件驱动显示软件程序编写麻烦,占用的引脚相对也较多。

也不是理想的显示器件。

因此在本设计中考虑用液晶作为显示器件,虽然12864液晶比1602液晶的功能强,不过在价格方面却贵了很多。

而1602液晶也足以满足本设计的要求。

所以,本设计选择了1602液晶显示器。

3.4 1602液晶显示器介绍
本设计选择1602液晶作为显示器件。

下面是1602液晶显示的各方面参数。

3.4.1 基本操作时序
(1)读状态:输入:RS=0, RW=1, E=1 。

输出:D0-D7为状态字。

(2)写状态:输入:RS=0, RW=0, D0-D7为指令码,E位高脉冲。

输出:无。

(3)读数据:输入:RS=1, RW=1, E=1。

输出:D0-D7为数据。

(4)写数据:输入:RS=1, RW=0, D0-D7为数据,E为高脉冲。

输出:无。

3.4.2 接口信号说明
表3-2 接口信号说明
编号符号引脚说明
1 VSS 电源地
2 VDD 电源正极
3 V0 液晶显示偏压信号
4 RS 数据/命令选择短
5 R/W 读/写选择端
6 E 使能信号
续表3-2 编号符号引脚说明
7-14 D0-D7 Data I/O
15 BLA 背光源正极
16 BLK 背光源负极
3.4.3 状态字说明
表3-3 状态字说明
STA7 STA6 STA5 STA4 STA3 STA2 STA1 STA0 STA0-6 当前数据地址指针的数值
STA7 读写操作使能1:禁止0:允许
3.4.4 指令的说明
表3-4 数据控制
指令码功能
80H+地址码(0-27H,40H-67H)设置数据地址指针
01H 显示清屏:1.数据指针清0
2.所有显示清0
02H 显示回车:数据指针清0
表3-5 显示模式控制
指令码功能
0 0 1 1 1 0 0 0 设置16*2显示,5*7点阵,8位数据口
表3-6 显示开/关及光标设置
指令码功能
0 0 0 0 1 D C B D=1开显示;D=0 关显示。

C=1显示光标;C=0不显示光标。

B=1光标闪烁;B=0 光标不闪烁。

续表3-6 指令码功能
0 0 0 0 0 1 N S
N=1当读写一个字条款后地址指针加一,且光标加一。

N=0当读或写一个字符后地址指针减一,且光标减一。

S=1当写一个字条款,整屏显示左移(N=1)或右移(N=0),以得到光标不移动而屏幕移动的效果。

S=0 当写一个字符,整屏显示不移动。

4 硬件系统设计
4.1 设计要求
(1)最高量程为:300V。

(2)分为三档量程:6V、30V、300V。

可以通过调档开关实现各档位选择。

(3)最高精度为0.01MV,误差控制在0.02V。

(4)当被测电压的电压值小于1V时,可自动换以MV为单位显示。

4.2 设计方案
根据上述,选择了单片机与A/D转换芯片结合的方法来实现本设计。

使用的基本元器件是:AT89C51单片机、TLC2543模数转换芯片、1602液晶显示器、LM324运放芯片、7660极性反转电源转换器、换挡开关、电容、电阻、电位器、晶振、标准电源等等。

图4-1 设计的基本框图
4.3 硬件电路系统模块的设计
根据上述选择的各元器件,各电路模块的电路图如下描述。

4.3.1 单片机最小系统设计
单片机最小系统包括时钟振荡电路和复位电路。

单片机必须在时钟的驱动下才能工作。

在单片机内部有一个时钟振荡电路,只需要外接一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元,决定单片机的工作速度。

单片机的第9号脚RESET为硬件复位端,只要将该端持续4个周期的高电平即可
关是手动的双掷开关,其中有三个接线端子分别与单片机的P2.1,P2.2和P2.3相连接,目的是为了能够让单片机CPU自动识别档位,即可用相应的档位的数据转换的算法计
的存在是反相放大电路在闭环工作状态下的重要特征。

反相端为虚地端,即Vn=0,由虚断的概念(i p =i n =0)可知,i 1=i 2,故有
2
1R V V R V V o
i n i -=- 或
2
1R V
R V o i -=
由此可得 1
2R R
V V A i o v -==
(4-1) 上式(4-1)表明,该电路的电压增益是电阻R 2与R 1的比值。

负号表明输出电压V 0与输入电压V i 相位相反。

本设计输入电压分为三个档,分别是6V 、30V 、300V 。

而需要的基准电压要小于运放饱和输出的最大电压值。

经查阅资料可得,当运放在双电源下工作时的最大饱和输出电压为Vcc-1.5V 。

为考虑有冗余的情况,本设计中选择的基准电压为3V 。

所以需要对输入电压进行衰减,衰减率分别为1/2、1/10、1/100。

在设计中,R1为定值100K ,
要想衰减率为1/2、1/10、1/100,由上述表达式(4-1)可以得到反馈电阻分别为50K、10K、1K。

由于输出的电压为负值,所以我们在此基础上再连接一个反相电路,从而达到输出的电压为正。

在反馈电阻后连接双掷开关,起到换挡的效果。

图4-4 反相放大电路
4.3.4 A/D转换芯片接口电路
本设计选择的是A/D转换芯片的通道0口,A/D芯片的数据输入口连接单片机的P1.3口,数据输出口连接单片机的P1.4口,芯片使能端连接单片机的P1.5口,脉冲端连接单片机的P1.6口。

目前使用的51系列单片机没有SPI接口,为了与TLC2543接口,可以用软件功能实现SPI的功能。

本设计采用延时进行采集,故省去了EOC引脚的接口。

上电后,片选CS必须从高到低,才能开始一次工作周期,此时EOC为高,输入数据寄存器被置为0,输出数据寄存器的内容是随机的。

开始时,CS片选为高电平,I/O CLOCK、Data Input、Data Output脱离高阻状态。

12个时钟信号从I/O CLOCK端依次加入,控制字从Data Input一位一位的在时钟信号的上升沿时送入TLC2543(高位先送入),同时上一周期转换的A/D数据,即输出数据寄存器中的数据从Data Output一位一位的移出。

TLC2543收到第4个时钟信号后,通道号也已收到,此时TLC2543开始对选定通道的模拟量进行采样,并保持到第12个时钟的下降沿。

在第12个时钟下降沿,EOC变低电平,开始对本次采样的模拟量进行A/D转换,转换时间约需10µs,转换完成后EOC变高电平,转换的数据在输出数据寄存器中,等待下一个工作周期输出。

此后,可以进行新的工作周期。

具体接线设计图如下图4-5所示。

C 60.1u f A IN 01
A IN 12A IN 23A IN 34A IN 45A IN 56
A IN 67A IN 78A IN 89G ND 10
A IN 9
11
A IN 1012R EF-13R EF+14C S 15D O 16D I 17C LK 18EO C 19V cc 20T L C 2543
J3
TL C2543
V cc
V cc C 50.1u f
P1.6P1.4P1.3P1.5
据被送到相应的数组中,完成后再统一显示。

图4-6 1602液晶与单片机的连接
5 软件系统设计
5.1 主程序流程图
图5-1 系统主程序流程图
主程序主要完成系统初始化的设定,这其中包括对液晶显示的清屏、定时器的初始化、中断系统的开发以及采集子程序等。

初始化中主要对AT89C51,TLC2543的管脚和LCD 的位选及所用到的内存单元进行设置。

准备好工作后便启动TLC2543对AIN0脚输入0~5V 电压模拟信号进行数据采集并转换成相对应的十进制数字量。

在数据处理子程序中,编写算法将十进制数字量转换成原始的数据,输出到显示子程序进行显示。

整个程序就是在A/D 转换,数据处理及显示程序中循环执行。

5.2 TLC2543采集数据流程图
图4-2 TLC2543数据采集流程图
TLC2543是12位串行模数转换器,使用开关电容逐次逼近技术完成A/D 转换过程。

开始时,CS 片选为高,I/O CLOCK ,Data Input 被禁止,Data Output 呈高阻状态,EOC 为高。

使CS 变低,I/O CLOCK ,Data Input ,Data Output 脱离高阻状态。

12个时钟信号从I/O CLOCK 端依次加入,随着时钟信号的加入,控制字从Data Output 一位一位地在时钟信号的上升沿时被送入TLC2543(高位先送入),同时上一周期转换的A/D 数据,即输出数据寄存器中的数据从Data Output 一位一位地移出。

TLC2543收到第4个时钟信号后,通道也已收到,此时TLC2543开始对选定0通道的模拟量进行采样,并保持
第12个时钟的下降沿。

在第12个时钟下降沿时,EOC变低,开始对本次采样的模拟量进行A/D转换,转换时间约为10μs,转换完成后EOC变高,转换的数据在输出数据寄存器中,待下一个工作周期输出。

5.3 LCD初始化流程图
图4-3 LCD初始化流程图
从通电开始延时,先经过判别后再进行功能设置,过一段时间后可以设置显示状态,再经过延时清屏后才可以设置输入方式。

具体的就是在程序中先编写(0*38)指令可以使在液晶显示显示器为16*2、8位数据、5*7点阵显示。

然后编写(0x0c)指令可以打开液晶显示,并且没有光标。

再编写(0x06)指令,可以使光标进行移动。

最后编写(0x01)指令,达到清屏显示器的效果。

相关文档
最新文档