基于单片机的数字电压表设计毕设论文

目 录

设计总说明 ............................................................... 1

Design General Information ............................................... 2

1 绪论 ................................................................... 4

1.1 课题的背景及意义 .................................................. 4

1.2 数字电压表的简介 .................................................. 4

2 系统的方案设计与论证 ................................................... 5

2.1 数字电压表原理 .................................................... 5

2.2 数字电压表设计要求 ................................................ 5

3 系统硬件结构设计 ....................................................... 5

3.1 电源电路 .......................................................... 6

3.2 单片机芯片选择 .................................................... 7

3.2.1 AT89C51主要特性 ............................................. 8

3.2.2 管脚说明 .................................................... 9

3.2.3内部单元 .................................................... 10

3.2.4 中断 ....................................................... 13

3.2.5 芯片擦除 ................................................... 15

3.2.6 结构特点 ................................................... 15

3.3 A/D转换电路 ..................................................... 16

3.3.1 TLC2543的特点 .............................................. 16

3.3.2 TLC2543的引脚说明 .......................................... 17

3.3.3 TLC2543控制字 .............................................. 18

3.3.4 TLC2543接口时序 ............................................ 20

3.4 显示电路 ......................................................... 22

3.5 复位电路 ......................................................... 24

3.6 晶振电路 ......................................................... 24

4 系统软件设计 .......................................................... 26

4.1 主程序流程图 ..................................................... 26

第I 页 共41 页

4.2 中断程序流程图 ................................................... 27

4.3 源程序 ........................................................... 28

总 结 .................................................................. 35

参考文献 ................................................................ 36

致 谢 .................................................................. 37

附录A ................................................................... 38

数字电压表电路原理图 ................................................. 38

附录B ................................................................... 39

元件清单列表 ......................................................... 39 第II 页 共41页

基于单片机的数字电压表的设计

设计总说明

在当今的数字时代,大到空间雷达,地球卫星定位系统,移动通信,计算机,医用断层扫描设备,小到家用计算机,数码影像设备,数字录音笔,数码微波炉等设备中,数字技术与数字电路组成的数字系统已经成为这些现代电子系统的重要组成部分。数字电压表正进入一个蓬勃发展的新时期,一方面它开拓了电子测量领域的先河,另一方面它本身正朝着高准确度、智能化、低成本的方向发展。此外,数字电压表在安装工艺、外观设计、安全性、可靠性等方面也在不断改进,日臻完善。

数字电压表(Digital Voltmeter )简称DVM ,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。现代数字电压表按测量功能可分为直流数字电压表和交流数字电压表。数字电压表一般由模拟部分和数字部分组成,模拟部分主要功能是获取电压并将其转换为相应的数字量,数字部分完成逻辑控制、译码和显示等功能。数字电压表的核心是A/D转换器,由A/D转换器工作原理的不同,数字电压表又可分为逐次比较型和双积分型。传统的指针式电压表功能单一、精度低,不能满足数字化时代的需求。采用单片机的数字电压表,由精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC 进行实时通信。目前,由各种单片A/D 转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出强大的生命力。与此同时,由DVM 扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭新水平。

数字电压表作为数字技术的成功应用,发展相当快。数字电压表以其功能齐全、精度高、灵敏度高、显示直观等突出优点深受用户欢迎。特别是以A /D 转换器为代表的集成电路为支柱,使DVM 向着多功能化、小型化、智能化方向发展。DVM 应用单片机控制,组成智能仪表;与计算机接口,组成自动测试系统。本设计主要是以AT89C51单片机为核心,包含数据采集模块、数据处理模块和输入/输出模块,能实现0-5V 直流电压测量、数字显示、小数点显示等。能对电压值较小的线路进行电压值的测量, 具有较高的测量精度, 能满足一般电子系统电压测量要求, 留有可扩展的接口, 便于依据实际情况增加其他功能。

关键词:数字电压表;A/D 转换器;电压测量

第1页 共41 页

Microcontroller-based digital voltmeter Design General Information

In today's digital age, space radar, global satellite positioning systems, mobile communications, computer, medical tomography device as small as home computers, digital imaging equipment, digital voice recorder, digital microwave ovens and other equipment, digital technology and digital circuit consisting of digital systems has become an important part of modern electronic systems. The digital voltmeter is entering a vibrant new period of development, on the one hand, it opened up the first of its kind in the field of electronic measuring the other hand, it in itself is moving in the direction of high accuracy, intelligent, low-cost development. In addition, the digital voltmeter in the installation process, design, safety, reliability is also continuous improvement, and improving.

Digital voltage meter (Digital V oltmeter) referred to as DVM, it is the use of digital measuring technology, the continuous analog (DC input voltage) into a non-continuous, discrete digital form and to display the instrument. Modern digital voltmeter measurement functions can be divided into a DC digital voltmeter and AC digital voltmeter. The digital voltmeter is generally by the analog part and digital part and analog part of the main function is to obtain the voltage and converts it to digital and digital part of the complete logic control, decode and display. The digital voltmeter is the core of the A / D converter, the device works is different from the digital voltmeter can be divided into successive comparison type and a double integral A / D converter. Analog voltage meter features a traditional single, low accuracy, can not meet the digital age, using the single chip digital voltage meter, from the high precision, anti-interference ability, scalability, Integrated convenience, and PC can communicate in real time. At present, by a variety of single A / D converter consisting of digital voltage meter, has been widely used in electronic and electrical measurement, industrial automation, instrumentation, automated test systems, intelligent measurement, showing strong vitality. At the same time, the DVM extension to the various general and specific digital instruments, but also the power and non-power measurement up to a new level. This chapter focuses on single-chip A / D converter, and they form by the microcontroller-based digital voltmeter works.

第2页 共41页

Digital voltmeter as the successful application of digital technology, the development is quite fast. Digital voltmeter with a full-featured, high precision, high sensitivity, and intuitive display outstanding advantages welcomed by users. In particular, the A / D converter is represented by IC pillar, DVM toward multifunction, miniaturization, intelligent direction. DVM application MCU control, composed of intelligent instrument; computer interface, composed of the automatic test system. This design is mainly based on 51 series microcontroller core contains the data acquisition module, data processing module and input / output modules, digital display, measuring DC voltage, decimal point display and over-range display. Measurement of the voltage value of the smaller line voltage, higher measurement accuracy can meet the general electronic system voltage measurement requirements, leaving the scalable interface, easy to add other functions based on the actual situation.

Keywords : digital voltmeter; A / D converter; voltage measurement

第3页 共41 页

1 绪论

1.1 课题的背景及意义

数字电压表是在上世纪50年代初,60年代末发展起来的电压测量仪表,简称DVM ,它采用的是数字化测量技术,把连续的模拟量,也就是连续的电压值转变为不连续的数字量,加以数字处理然后通过显示器件显示。这种电子仪表之所以出现,一方面是由于电子计算机的应用推广到系统的自动控制信号领域,提出了各种被观测量或被控制量转换成数字量的要求, 即为了实时控制和数据处理的要求, 另一方面,也是电子计算机的发展,带动了脉冲数字电路技术的发展,为数字化仪表的出现提供了条件。所以, 数字化测量仪表的产生与发展与电子计算机的发展是密切相关的;同时,为革新电子测量中的烦琐与陈旧方式也促进了它的飞速发展,它又成为向智能化仪表发展的必要桥梁。如今,数字电压表已经绝大部分取代了传统的模拟指针式电压表,因为传统的模拟指针式电压表功能单一,精度低,读数的时候非常不方便还经常出错,而采用单片机的数字电压表由于测量精度高,速度快,读数时也非常方便,抗干扰能力强,可扩展性强等优点已被广泛应用与电子和电工测量,工业自动化仪表,自动测量系统等领域。显示出强大的生命力。

众所周知,在当今的社会中电已成为人们日常生活、生产中必不可缺的因素。电的发现和应用极大的节省了人类的体力劳动和脑力劳动,使人类的力量长上了翅膀,使人类的信息触角不断延伸。而在这其中,电压、电流已成为描述电的一些重要参数。在电气测量中,电压是一个很重要的参数。如何准确地测量模拟信号的电压值,一直是电测仪器研究的内容之一。数字电压表是通用仪器中使用较广泛的一种测量仪器,很多电量或非电量经变换后都可用数字电压表完成测试。

1.2 数字电压表的简介

在由单片机构成的数字电压表中包含三个模块:数据采集模块、数据处理模块和输入/输出模块。

在数据采集保持模块中,基本结构大部分都一样,主要是对电压信号采样前,用放大器进行预处理,然后通过保持器保持采样。

在数据处理模块中其中A/D转换器的性能成为评定数字电压表好坏的一个重要标准。本次设计中采用12位A/D转换器TLC2543,TLC2543是TI 公司的12位串行模数 第4页 共41页

转换器,使用开关电容逐次逼近级数完成A/D转换过程。由于是串行输入结构,能够节省51系列单片机I/O资源;且价格适中,分辨率较高,因此在仪器仪表中有较为广泛的应用。

在输入/输出模块中,显示部分可用三个8段数码管构成,其中分别显示个位、十分位、百分位的大小。

2 系统的方案设计与论证

2.1 数字电压表原理

现代数字电压表按测量功能可分为直流数字电压表和交流数字电压表。数字电压表一般由模拟部分和数字部分组成,模拟部分主要功能是获取电压并将其转换为相应的数字量,数字部分完成逻辑控制、译码和显示等功能。数字电压表的核心是A/D转换器,由A/D转换器工作原理的不同,数字电压表又可分为逐次比较型和双积分型。

传统模拟式电压表具有电路简单、成本低、测量方便等特点,但测量精度较差,特别是受表头精度的限制,即使采用0.5级的高灵敏度表头,读测时的分辨力也只能达到半格。再者,模拟式电压表的输入阻抗不高,测高内阻源时精度明显下降。

2.2 数字电压表设计要求

(1)以单片机为核心器件,组成一个数字式电压表。

(2)测量电压范围分为两档:DC 0~5V 和DC 0~50V ,最小测量电压误差50mV 。

(3)采用3位LED 数码管进行电压显示,2位整数,1位小数。

(4)给出全部电路和源程序。

(5)扩展功能自行发挥。

3 系统硬件结构设计

本次设计选用89C51单片机作为核心,TLC2543作为A/D转换芯片,数码管作为显示器,7805稳压器为主的直流稳压电路做为电源,配合采集,转换,显示程序共同实现可测量0-5V 直流电压的数字式电压表。系统总设计框图见图3-1。

第5页 共41 页

图3-1 系统框图

3.1 电源电路

本设计选择三端集成稳压器7805及变压器,整流桥, 滤波电容构成直流稳压电路。C1,C2,C3用来实现频率补偿,防止稳压器产生高频自激振荡和意志电路引入高频干扰,C4是电解电容,以减小稳压电源输出端由输入电源引入的低频干扰。D 是保护二极管,当输入端短路时,给输出电容器C4一个放电通路,防止C4两端电压作用于稳压器,造成击穿而损坏。变压器采用220V-9V 变压器,整流桥和保护二极管采用IN4001。电源电路见下图3-2。

图3-2 直流稳压电源电路

第6页 共41页

3.2 单片机芯片选择

在这一设计中,我们涉及到了一个关键系统模块——单片机系统模块,而目前单片机的种类是很繁多的,主要有主流的8位单片机和高性能的32位单片机,结合本设计各方面因素,8位单片机对于本设计已经是绰绰有余了,但选用哪一种类8位的单片机呢。在这里,不得不先简单的介绍一下几种常用的8位单片机。

单片机是指一个集成在一块芯片上的完整计算机系统,具有一个完整计算机系统的有51 系列单片机,AVR 单片机,PIC 单片机。

应用最广的8位单片机还是intel 的51系列单片机。51系列单片机的特点是:硬件结构合理,指令系统规范,加之生产历史悠久,世界有许多芯片公司都买了51的芯片核心专利技术,并在其基础上扩充其性能,使得芯片的运行速度变得更快,性价比更高。 AVR 单片机是atmel 公司推出较新的单片机,它的显著特点是:高性能,低功耗,高速度,指令单周期为主,但价格方面比51单片机要高。有专门的I/O方向寄存器。虽然有较强的驱动电压,但I/O口使用不比51单片机方便。PIC 单片机系列是美国微芯公司的产品,也是市面上增长最快的单片机之一,属精简指令集单片机,其特点是:高速度,高性能,但在价格方面比51单片机要高,也有专门的,I/O方向寄存器,I/O 口使用不比 51单片机方便。综合以上各种单片机的基本性能及本设计的满足需要, 我们将选择 51 系列单片机. 本设计中选用是51系列的AT89C51,它是低电压,低功耗,高性能的CMOS 8位单片机,片内含8KB 的可反复擦写的只读程序存储器和256B 的随机存取数据存储器,2个I/O口线, 3个16位定时/计数器,片内振荡器及时钟电路,并与 MCS-51系列单片机兼容。在设计中,单片机起着连接硬件电路、程序运行及存储数据的任务,一方面,它将A/D转换器、显示器和语音芯片等通过I/O口地址线和数据线连接起来;另一方面,它将用户下载的程序通过控制总线控制数据的输入输出,从而实现测电压的功能。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

本系统采用P0与P2口与显示器连接,P1口与A/D的数据及控制端连接。EA /VP端接5V 电源,X1,X2接晶振电路,RESET 端接复位电路,其余INT1,INT0,T1,T0,RD ,WR ,RXD ,TXD ,ALE ,PSEN 端悬空。由于P0口的驱动能力较弱,故每个引脚接

4.7K 的上拉电阻,以增强驱动显示器的能力。单片机引脚见下图3-3。

第7页 共41 页

图3-3 AT89C51单片机引脚图

3.2.1 AT89C51主要特性

(1)与MCS-51 兼容

(2)4K 字节可编程闪烁存储器

(3)1000写/擦循环

(4)数据保留时间:10年

(5)全静态工作:0Hz-24Hz

(6)三级程序存储器锁定

(7)128*8位内部RAM

(8)32可编程I/O线

(9)两个16位定时器/计数器

(10)5个中断源

(11)可编程串行通道

(12)低功耗的闲置和掉电模式

(13)片内振荡器和时钟电路 。

第8页 共41页

3.2.2 管脚说明

VCC :供电电压。

GND :接地。

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL 门电流。当P0口的管脚第一次写“1”时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FLASH 编程时,P0 口作为原码输入口,当FLASH 进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收, 输出4个TTL 门电流。P1口管脚写入“1”后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH 编程和校验时,P1口作为第八位地址接收。

P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL 门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH 编程和校验时接收高八位地址信号和控制信号。

P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL 门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出TTL 电流这是由于上拉的缘故。

P3口也可作为AT89C51的一些特殊功能口,如下所示:

管脚 备选功能

P3.0 RXD(串行输入口)

P3.1 TXD(串行输出口)

P3.2 INT 0(外部中断0)

P3.3 INT 1(外部中断1)

P3.4 T0(记时器0外部输入)

P3.5 T1(记时器1外部输入)

第9页 共41 页

P3.7 RD (外部数据存储器读选通)

P3口同时为闪烁编程和编程校验接收一些控制信号。

RST :复位输入。当振荡器复位时,要保持RST 脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在FLASH 编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE 脉冲。如想禁止ALE 的输出可在SFR8EH 地址上置0。此时, ALE只有在执行MOVX ,MOVC 指令时ALE 才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE 禁止,置位无效。

P S E :外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周N

期两次PSEN 有效。但在访问外部数据存储器时,这两次有效的PSEN 信号将不出现。 EA /Vpp:当EA 保持低电平时,则在此期间外部程序存储器为(0000H-FFFFH ),不管是否有内部程序存储器。注意加密方式1时,EA 将内部锁定为RESET ;当EA 端保持高电平时,此间内部程序存储器(0000H-FFFFH )。在FLASH 编程期间,此引脚也用于施加12V 编程电源(VPP )。

XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2:来自反向振荡器的输出。

振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。

3.2.3内部单元

(1)运算器:

① 算术/逻辑部件ALU :用以完成+、-、*、/ 的算术运算及布尔代数的逻辑运算,并通过运算结果影响程序状态寄存器PSW 的某些位,从而为判断、转移、十进制修正和出错等提供依据。

第10页 共41页

② 累加器A :在算术/逻辑运算中存放一个操作数或结果,在与外部存储器和I/O接口打交道时,进行数据传送都要经过A 来完成。

③ 寄存器B :在 *、/ 运算中要使用寄存器B 。乘法时,B 用来存放乘数以及积的高字节;除法时,B 用来存放除数及余数。不作乘除时,B 可作通用寄存器使用。

④ 程序状态标志寄存器PSW :用来存放当前指令执行后操作结果的某些特征,以便为下一条指令的执行提供依据。

【PSW 】 (D0H) D7 D6 D5 D4 D3 D2 D1 D0

Cy AC F0 RS1 RS0 OV — P

Cy :进位标志。有进位或借位,则Cy =1, 否则Cy =0 ;在布尔运算时,Cy (简称C )作为布尔处理器。

AC :辅助进位标志位。

F0:用户标志位:用户可用软件对F0置位“1”或清“0”,以决定程序的流向。 OV :溢出标志位:当运算结果溢出时,OV 为“1”,否则为“0”。

D.1:未定义。

P :奇偶校验位:当累加器A 中的“1”的个数为奇数时,P 置“1”,否则P 置“0”。 RS1、RS0:工作寄存区选择位。

片内工作寄存器组:

RS1、RS0与片内工作寄存器组的对应关系

RS1 RS0 寄存器区 片内RAM 地址 通用寄存器名称

0 0 0 00H~07H R0~R7

0 1 1 08H~0FH R0~R7

1 0 2 10H~17H R0~R7

1 1 3 18H~1FH R0~R7

(2)控制器:

① 指令寄存器IR 和指令译码器。

② 程序计数器:存放CPU 执行下一条指令的地址。是一个16位寄存器,可寻址64KB 。 ③ 堆栈指针SP :用于子程序调用和中断处理。(机器复位后,SP←#07H ,因此压栈的第一个数据在08H 单元中)。

④数据指针寄存器DPTR :16位的寄存器,也可以作为两个8位寄存器DPH 和DPL 。DPTR 主要作外部数据指针,可对64KB 外部RAM 进行间接寻址。

第11页 共41 页

MCS-51由包括PC 在内的22个特殊功能寄存器,它们除有各自的名称外,还有唯一的地址,离散的分布在片内RAM 中的80H ~FFH 共128个存储单元中。在这128个储存单元构成的SFR 块中,未被占用的单元不可使用!

(3)21个特殊功能寄存器SFR :

特殊功能寄存器 功能名称 地址 复位后状态

B * 寄存器 F0H 00H

A * 累加器 E0H 00H

PSW * 程序状态标志寄存器 D0H 00H

IP * 中断优先级控制器 B8H XXX00000B

P3 * P3口数据寄存器 B0H FFH

IE * 中断允许控制寄存器 A8H 0XX00000B

P2 * P2口数据寄存器 A0H FFH

SBUF 串行口发送/接收缓冲器 99H 不定

SCON * 串行口控制寄存器 98H 00H

P1 * P1口数据寄存器 90H FFH

TL1 T1计数器低8位 8BH 00H

TL0 T0计数器低8位 8AH 00H

TH1 T1计数器高8位 8DH 00H

TH0 T0计数器高8位 8CH 00H

TMOD 定时器/计数器方式控制寄存器 89H 00H

TCON * 定时器控制寄存器 88H 00H

PCON 电源控制寄存器 87H 00H

DPL 地址寄存器低8位 82H 00H

DPH 地址寄存器高8位 83H 00H

SP 堆栈指针寄存器 81H 07H

P0 * P0口数据寄存器 80H FFH

PC 程序计数器 无地址 0000H

注:“*”表示可位寻址。

SP 赋值方法:(其中#50H为寄存器50H ,不可直接写为50H ,否则SP 指向寄存器00H )MOV SP,#50H

第12页 共41页

(4)SER 块中具有位寻址功能寄存器的位地址:

地址 [HSB] 位地址名称:即可用地址,也可用()内的名称 [LSB] 寄存器

F0H F7 F6 F5 F4 F3 F2 F1 F0 B

E0H E7 E6 E5 E4 E3 E2 E1 E0 A

D0H D7 D6 D5 D4 D3 D2 D1 D0 PSW

B8H — — — BC(PS) BB(PT1) BA(PX1) B9(PT0) B8(PX0) IP

B0H B7 B6 B5 B4 B3 B2 B1 B0 P3

A8H AF(EA) — — AC(ES) AB(ET1) AA(EX1) A9(ET0) A8(EX0) IE

A0H A7 A6 A5 A4 A3 A2 A1 A0 P2

98H 9F(SM0) 9E(SM1) 9D(SM2) 9C(REN) 9B(TB8) 9A(RB8) 99(TI) 98(RI) SCON 90H 97 96 95 94 93 92 91 90 P1

88H 8F(TF1) 8E(TR1) 8D(TF0) 8C(TR0) 8B(IE1) 8A(IT1) 89(IE0) 88(IT0) TCON 80H 87 86 85 84 83 82 81 80 P0

3.2.4 中断

外部中断INT0和 INT1可根据寄存器TCON 中的IT0和IT1位状态分别设置为电平或者边沿触发,实际产生的中断标志是TCON 中的位IE0 和IE1,当产生外部中断时如果是边沿触发进入中断服务程序后由硬件清除中断标志位。如果中断是电平触发由外部请求源而不是由片内硬件控制请求标志,定时器0和定时器1中断由TF0和TF1产生 ,当产生定时器中断时,进入中断服务程序后由片内硬件清除标志位。

串口中断由RI 和TI 产生,进入中断服务程序后这些标志均不能被硬件清除,实际上中断服务程序通常需要确定是由RI 还是TI 产生的中断,然后由软件清除中断标志。

所以这些产生中断的位都可通过软件置位或清零,与通过硬件置位或清零的效果相同。简而言之中断可由软件产生推迟或取消,每个中断源可通过置位或清零寄存器 IE 中的相应位分别使能或禁止IE 中还包含一个全局禁止位。EA 可以立即禁止所有的中断。

(1)中断优先级结构

每个中断源都可通过编程中断优先级寄存器IP 和IPH 单独设置优先级,一个中断服务程序可响应更高级的中断,但不能响应同优先级或低级中断,最高级中断服务程序不响应其它任何中断。如果两个不同中断优先级的中断源同时申请中断时,响应较高优先级的中断申请,如果2个同优先级的中断源同时申请中断,内部查询顺序将确定首先响应哪一个中断请求。

第13页 共41 页

查询顺序如下所示:

中断源 同级优先级

① IE0 外部中断 0 最高

② TF0 定时器 0

③ IE1 外部中断 1

④ TF1 定时器 1

⑤ RI+TI UART

⑥ TF2,EXF2 定时器 2

注:同级优先级只用来处理相同优先级别中断源同时申请中断的情况。

IP 和IPH 寄存器中包含了一些无效位,由于这些位可能用于其它 80C51 系列产品中,用户软件不应将这些位写入 1。

(2)中断的处理

中断标志在每个机器周期的S5P2时采样,在下一个机器周期查询该采样。如果在 S5P2 周期时有一个标志置位,查询周期将发现它,然后中断系统产生一个LCALL 调用对应的服务程序,由硬件产生的 LCALL在下面任意一种情况下都会推迟执行。 ① 同级或更高级的中断已在处理中

② 当前的周期不是正在执行指令的最后一个周期

③ 正在处理的指令是 RETI 或任何写 IE 或 IP 寄存器的指令 。

条件2确保正在处理的指令在进入任何中断服务程序前可以执行完毕,条件3确保了如果正在处理的指令是 RETI 或任何访问IE 或IP 寄存器的指令,那么在进入任何中断服务程序之前至少再执行一条指令 。

查询周期在每个机器周期都会重复,所查询的值是在前一个机器周期的S5P2出现的值。需要注意的是如果一个中断标志位有效但仍然没有被响应,是因为出现上面所述的情况,如果当阻碍的条件撤除时中断标志不再有效,中断将不再响应。换句话说,实际上如果中断标志有效时没有响应中断,之后将不再被记忆,每次查询周期都会更新中断标志。

(3)外部中断

外部中断源可配置为电平触发或边沿触发,通过将寄存器TCON 中的位IT1或IT0置位或清零实现。如果ITx=0,外部中断x 通过INTx 脚的低电平触发;如果ITx=1,外 第14页 共41页

部中断x 为边沿触发,该模式下对INTx 脚连续采样。如果在一个周期为高电平而下一个周期为低电平,中断请求标志 IEx将置位,然后通过IEx 请求中断。

由于外部中断脚每个机器周期采样一次,输入高或低应当保持至少12个振荡周期,以确保能够采样到。如果外部中断为边沿触发,外部中断源应当将中断脚至少保持1个机器周期高电平,然后至少保持 1个机器周期低电平,这样就确保了边沿能够被检测到,以使 IEx 置位。当调用中断服务程序后,CPU 自动将IEx 清零。如果外部中断为电平触发,外部中断源必须一直保持请求有效,直到产生所请求的中断,然后在中断程序结束之前撤除请求,否则将产生另一次中断。

(4)响应时间

INT0和INT1电平在每个机器周期的 S5P2 取反并锁存到IE0和IE1,在下个周期之前该值不会被电路查询。如果请求有效且应答的条件正确,下个执行的指令就是硬件子程序调用请求中断。CALL 指令本身占用两个周期,因此从中断请求有效到开始执行中断服务程序的第一条指令需要至少3个完整的机器周期。

3.2.5 芯片擦除 整个PEROM 阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE 管脚处于低电平10ms 来完成。此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU 停止工作。但RAM ,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM 的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。

3.2.6 结构特点

(1)8位CPU

(2)片内振荡器和时钟电路

(3)32根I/O线

(4)外部存贮器寻址范围ROM 、RAM64K

(5)2个16位的定时器/计数器

(6)5个中断源,两个中断优先级

(7)全双工串行口

(8)布尔处理器。

第15页 共41 页

3.3 A/D转换电路

电压是模拟量,而数码管显示需要的是数字量,故需要采用A/D转换模拟信号为数字信号供数码管显示出来, 可供选择的芯片有ADC0809,ADC574和TLC2543等等。

由于要求测量精度在1%,因此须选用12位精度的A/D转换器,且可直接驱动LED 显示器工作,0809为8位精度, 故不能采用, 而综合性价比,TLC2543就成为了本次设计的首选。

被测量模拟量变为数字量之后,并不能通过数码管直接显示出来,而需要单片机加以处理形成段码才能显示出来。而且,A/D电路的时钟与输入输出都需要单片机与其对接予以控制。故选择含有内部闪存的89C51完成此工作。该芯片无论从性能还是价格上都是非常合适的。数字信号转换为段码并显示出来需要有程序和其它接口电路配合。在程序上,A/D采集程序采用多次取值并求和求平均的方法得出双字节数据,然后通过双字节转换BCD 码子程序得出BCD 码。硬件显示上选用动态扫描法,即数码管位选端连入单片机的某一组I/O口,片选端连入另一组I/O口,配合显示子程序实现显示。此外,主程序和其它程序用中断方式进行组合。 由于单片机各个I/O口的驱动能力有限,故应设计驱动电路。本设计中的驱动电路主要与显示部分有关。数码管的片选端需要连接上拉电阻和三极管以增强驱动能力,位选端也选择连接上拉电阻以增强驱动能力。

TLC2543是TI 公司的12位串行模数转换器,使用开关电容逐次逼近级数完成A/D转换过程。由于是串行输入结构,能够节省51系列单片机I/O资源;且价格适中,分辨率较高,因此在仪器仪表中有较为广泛的应用。

3.3.1 TLC2543的特点

(1)12位分辩率A/D转换器

(2)在工作温度范围内10μs 转换时间

(3)11个模拟输入通道

(4)3路内置自测试方式

(5)采样率为66kbps

(6)线性误差±1LSBmax

(7)有转换结束输出EOC

(8)具有单、双极性输出

第16页 共41页

(9)可编程的MSB 或LSB 前导

(10)可编程的输出数据长度

3.3.2 TLC2543的引脚说明

TLC2543的引脚见下图3-4

图3-4 TLC2543 A/D转换芯片引脚图

TLC2543引脚功能见下表3-1

表3-1 TLC2543引脚功能表

第17页 共41 页

本设计中,TLC2543的AIN0引脚接测量降压电路,AIN1-AIN10置空,GND 接地,REF+接+5V电压,REF-接地,端接P1.4口,TDO 端接P1.2口,TDI 端接P1.3口,TCK 端接P1.1口,EOC 端接P1.0口。

3.3.3 TLC2543控制字

TLC2543的工作过程如下:首先在8、12或16时钟周期里向片内控制寄存器写入8位的控制字,控制字中的2位决定时钟长度,在最后一个时钟周期的下降沿启动AD 转换过程,经过一段转换时间,在随后的8、12或16个时钟周期里,从DATA OUT 脚读出数据。

第18页 共41页

控制字的定义见下表3-2

表3-2 TLC2543控制字的定义表

第19页 共41 页

控制字的前4位(D7-D4)代表11个模拟通道的地址;当其为1100-1110时,选择片内检测电压;当其为1111时,为软件选择的断电模式,此时,AD 转换器的工作电流只有25uA.

控制字的第3位和第4位(D3一D2) 决定输出数据的长度,01表示输出数据长度为8位;11表示输出数据长度为16位;X1表示输出数据长度为12位,X 可以为1或0。

控制字的第2位(D1)决定输出数据的格式,0表示高位在前,1表示低位在前。 控制字的第1位(D0)决定转换结果输出的格式。当其为0时,为无极性输出(无符号二进制数) ,即模拟电压为Vnef+,时,转换的结果为0FFFH ;模拟电压为Vnef-时,转换的结果为0000H 。

当其为1时,为有极性输出(有符号二进制数) ,即模拟电压高于(Vnef+-Vnef-)/2时符号位为0;模拟电压低于(Vnef+-Vnef-)/2时符号位为1;模拟电压为Vnef+时,转换的结果为03FFH ;模拟电压为Vnef-时,转换的结果为0800H 。模拟电压为(Vnef+-Vnef-)/2时,转换的结果为0000H 。 3.3.4 TLC2543接口时序

可以用四种方式使TLC2543实现全12位分辨率,每次转换和数据传递可以使用12或16个时钟周期。一个片选(始处变化一次后保持

)脉冲要插到每次转换的开始处,或是在转换时序的开

为低,直到时序结束。开始时,片选为高,I/O CLOCK 、DATA INPUT

被禁止,DATA OUT呈高阻状态,EOC 为高。片选变低,I/O CLOCK、DATA INPUT能用,DATA OUT脱离高阻状态。12个时钟信号从I/O CLOCK端依次加入,随着时钟信号的加入,控制字从DATA INPUT一位一位地在时钟信号的上升沿时被送入TLC2543(高位先送入) ,同时上一周期转换的A/D数据。TLC2543收到第4个时钟信号后,通道号也已收到,因此,此时TLC2543开始对选定通道的模拟量进行采样,并保持到第12个时钟的下降沿。在第12个时钟下降沿,EOC 变低,开始对本次采样的模拟量进行A/D转换,转换时间约需10μs ,转转完成EOC 变高,转换的数据在输出数据寄存器中,待下一个工作周期输出。此后,可以进行新的工作周期。

以MSB 为前导, 用CS 进行12个时钟传送的工作时序如下图3-5。

第20页 共41页

图3-5 TLC2543工作时序图

(1)上电时,EOC=“1”,CS=“1”

(2)使CS 下降,前次转换结果的MSB 即A11位数据输出到DATA OUT供读数。 (3)将输入控制字的MSB 位即C7送到Din ,在CS 之后t SU>=1.425us后,使CLK 上升,将Din 上的数据移入输入寄存器。

(4)CLK 下降,转换结果的A10位输出到DATA OUT供读数。

(5)在第4个CLK 下降时,由前4个CLK 上升沿移入寄存器的四位通道地址被译码,相应模入通道接通,其模入电压开始时对内部开关电容充电。

(6)第8个CLK 上升时,将Din 脚的输入控制字C0位移入输入寄存器后,Din 脚即无效。

(7)第11个CLK 下降,上次AD 结果的最低位A0输出到DATA OUT 供读数。至此,I/O数据已全部完成,但为实现12位同步,仍用第12个CLK 脉冲,且在其第12个CLK 下降时,模入通道断开,EOC 下降,本周期设置的AD 转换开始,此时使CS 上升。

(8)经过时间t CONV

(9)使CS 下降,转换结果的MSB 位B11输出到DATA OUT供读数。

(10)将新周期的输入控制字的MSB 位D7送到Din ,在CS 下降之处,t SU 时间处由CLK 上升将Din 数据移入输入寄存器。

(11)CLK 下降,将AD 结果的B10位输出到DATA OUT。

第21页 共41 页

3.4 显示电路

数码管是一种半导体发光器件,其基本单元是发光二极管。数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM 接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM 接到地线GND 上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。 静态显示驱动:静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD 码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5×8=40根I/O端口来驱动,要知道一个89S51单片机可用的I/O端口才32个呢),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。 动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a, b, c, d, e, f, g, dp"的同名端连在一起,另外为每个数码管的公共极COM 增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM 端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。。在轮流显示过程中,每位数码管的点亮时间为1~2ms ,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。

参数:8字高度:8字上沿与下沿的距离。比外型高度小。通常用英寸来表示。范围一般为0.25-20英寸。

第22页 共41页

长*宽*高:长——数码管正放时,水平方向的长度;宽——数码管正放时,垂直方向上的长度;高——数码管的厚度。

时钟点:四位数码管中,第二位8与第三位8字中间的二个点。一般用于显示时钟中的秒。

电流:静态时,推荐使用10-15mA ;动态时,16/1动态扫描时,平均电流为4-5mA ,峰值电流50-60mA 。

本设计显示部分由3个8段数码管组成,分别显示个位,十分位,百分位。数码管接口电路见下图3-6。

D3

图3-6 共阴极数码管及其接口电路

第23页 共41 页

3.5 复位电路

89C51单片机的复位是由外部的复位电路来实现的。最简单的上电自动复位电路,是通过外部复位电路的电容充电来实现的。只要VCC 的上升时间不超过1ms ,就可以实现自动上电复位。当时钟频率选用6MHz 时,C 取22uF ,R 取1K 欧。

除上电复位外,有时还需要按键手动复位。按键手动复位有电平方式和脉冲方式两种。其中电平复位是通过RST 端经电阻和电源VCC 接通而实现的,按键手动电平复位电路如图3.1。当时钟频率选用12MHz 时,C 选取22uF ,R 选择1K 欧。复位电路见下图3-7。

图3-7 单片机复位电路

3.6 晶振电路

晶振是晶体振荡器的简称,在电气上它可以等效成一个电容和一个电阻并联再串联一个电容的二端网络,电工学上这个网络有两个谐振点,以频率的高低分其中较低的频率是串联谐振,较高的频率是并联谐振。由于晶体自身的特性致使这两个频率的距离相当的接近,在这个极窄的频率范围内,晶振等效为一个电感,所以只要晶振的两端并联上合适的电容它就会组成并联谐振电路。这个并联谐振电路加到一个负反馈电路中就可以构成正弦波振荡电路,由于晶振等效为电感的频率范围很窄,所以即使其他元件的参数变化很大,这个振荡器的频率也不会有很大的变化。晶振有一个重要的参数,那就是负载电容值,选择与负载电容值相等的并联电容,就可以得到晶振标称的谐振频率。一般的晶振振荡电路都是在一个反相放大器(注意是放大器不是反相器)的两端接入晶振,再有两个电容分别接到晶振的两端,每个电容的另一端再接到地,这两个电容串联的容

第24页 共41页

量值就应该等于负载电容,请注意一般IC 的引脚都有等效输入电容,这个不能忽略。 一般的晶振的负载电容为15p 或12.5p ,如果再考虑元件引脚的等效输入电容,则两个22p 的电容构成晶振的振荡电路就是比较好的选择。 晶体振荡器也分为无源晶振和有源晶振两种类型。无源晶振与有源晶振(谐振)的英文名称不同,无源晶振为crystal (晶体),而有源晶振则叫做oscillator (振荡器)。无源晶振需要借助于时钟电路才能产生振荡信号,自身无法振荡起来,所以“无源晶振”这个说法并不准确;有源晶振是一个完整的谐振振荡器。谐振振荡器包括石英(或其晶体材料)晶体谐振器,陶瓷谐振器,LC 谐振器等。晶振与谐振振荡器有其共同的交集有源晶体谐振振荡器。 石英晶片所以能做振荡电路(谐振)是基于它的压电效应,从物理学中知道,若在晶片的两个极板间加一电场,会使晶体产生机械变形;反之,若在极板间施加机械力,又会在相应的方向上产生电场,这种现象称为压电效应。如在极板间所加的是交变电压,就会产生机械变形振动,同时机械变形振动又会产生交变电场。一般来说,这种机械振动的振幅是比较小的,其振动频率则是很稳定的。但当外加交变电压的频率与晶片的固有频率(决定于晶片的尺寸)相等时,机械振动的幅度将急剧增加,这种现象称为压电谐振,因此石英晶体又称为石英晶体谐振器。 其特点是频率稳定度很高。

石英晶体振荡器与石英晶体谐振器都是提供稳定电路频率的一种电子器件。石英晶体振荡器是利用石英晶体的压电效应来起振,而石英晶体谐振器是利用石英晶体和内置IC 来共同作用来工作的。振荡器直接应用于电路中,谐振器工作时一般需要提供3.3V 电压来维持工作。振荡器比谐振器多了一个重要技术参数为:

谐振电阻(RR ),谐振器没有电阻要求。RR 的大小直接影响电路的性能,也是各商家竞争的一个重要参数。本设计采用12MHz 晶振,并联两个30pF 电容构成晶振电路。晶振电路见下图3-8 。

图3-8 单片机晶振电路

第25页 共41 页

4 系统软件设计

4.1 主程序流程图

主程序流程图见下图4-1

图4-1 主程序流程框图

第26页 共41页

4.2 中断程序流程图

中断程序流程图见下图4-2

图4-2 中断程序流程框图

第27页 共41 页

4.3 源程序

本程序是用来显示0-5V 的测量电压的,使用的单片机是:89C51,晶振12MHz AD_EOC BIT P1.0 ;ad 的接口 AD_TCK BIT P1.1 AD_OUT BIT P1.2 AD_IN BIT P1.3 AD_CS BIT P1.4

LED EQU P0 ;LED 接的P0口 L1 L2 L3 L4

BIT P2.0 BIT P2.1 BIT P2.2 BIT P2.3

;LED0缓存

LED1 EQU 30H

LED2 EQU 31H ;LED1缓存 LED3 EQU 32H LED4 EQU 33H L_NUM EQU 34H ;led 计数器

ORG 0000H LJMP

MAIN

;LED2缓存 ;LED3缓存

ORG 000BH LJMP

ORG

TT0 0080H

; 设置堆栈

MAIN: MOV SP, #70H

MOV TH0, MOV TL0,

#60 ;设置定时器定时时间 #176

MOV TMOD, #11H ;设置定时器工作状态

; 开总中断 ; 开定时器中断0

; 采集数据

SETB EA

SETB TR0

M1: LCALL ADCJ

第28页 共41页

LCALL AD_NUM LCALL PINGJUN LCALL BIN_BCD JMP

; 将采集的数据求和

; 将采集的数据求平均

; 将采集的数据求平均后转成bcd

M1 ;AD采集程序;48H-4FH

ADCJ: MOV R0, #48H MOV R1, #49H MOV DPTR, #DZSJ25 MOV R4,

DTDZ25: MOV R3,

#01H ;一个通道

#04H ;多通道采值起始,每个4次

DCCZ25: MOV A, #01H ;采集第一个通道 LCALL RD_AD INC R0 INC R1 DJNZ R3, RET

RD_AD: MOV @R0, MOV @R1, CLR CLK SETB CLR

CS25 CS25

#08H

#00H ;2543串行数据输出高位 #00H DCCZ25

MOV R2,

LOP1: MOV C, DO RLC A MOV DI, SETB

C

CLK

CLR CLK DJNZ SWAP XCHD SWAP

R2, A

A, @R0 ;交换 LOW 4 BITS A

第29页 共41 页

LOP1

MOV R2,

LOP2: MOV C, DO RLC SETB

A

#04H

CLK

CLR CLK DJNZ

R2, LOP2

A

MOV @R1, SETB RET

CS25

DZSJ25: DB 00H,10H,20H,30H,40H ;两字节相加; 结果在41H 和42H

中,41H 低字节,42h 高字节

AD_NUM: MOV 41H,

#00H

#00H 48H 49H

; 低字节

MOV 42H, MOV 41H, MOV 42H, CLR C

MOV A, 4AH ADDC

A, 41H

JC AD_NUM1 ADD 42H, AD_NUM1:CLR C

#01

MOV A, 4CH ADDC

A, 41H

JC AD_NUM2 ADD 42H, AD_NUM2:CLR C

#01

MOV A, 4EH ADDC A, 41H JC AD_NUM3 ADD 42H,

#01

第30页 共41页

AD_NUM3:CLR C

MOV A, 4BH ADD A, 42H MOV A, 4DH ADD A, 42H MOV A, 4FH ADDC A, 42H

RET ;求平均数 PINGJUN:CLR C

MOV A, 42H RRC A MOV 42H,

A

MOV A, 41H MOV 41H, CLR C MOV A, 42H RRC A MOV 42H,

A A

MOV A, 41H RRC A MOV 41H,

A

RET ;BIN转成BCD; 程序入口:42H 是高字节,41H 是低字节; 程序

出口:个位数放在44h; 十分位数放在45h; 百分位数放在46h

BIN_BCD:CHANGE16_10:CLR A ;BCD码初始化 MOV R3, A MOV R4, A MOV R5, A

MOV R2, #10H ;转换双字节十六进制整数 CHANG_1:MOV A, R7 ;从高端移出待转换数的一位到CY 中 RLC A

第31页 共41 页

MOV R7, A MOV A, R6 RLC A MOV R6, A

MOV A, R5 ;BCD码带进位自身相加,相当于乘2 ADDC A, R5

DA A ; MOV R5, A MOV A, R4 ADDC A, R4 DA A MOV R4, A MOV A, R3 ADDC A, R3

MOV R3, A ; DJNZ R2, CHANG_1 ; RET

BIN_BCD: MOV MOVC A, MOV MOV MOV MOVC A, MOV LED2,

MOV A, MOV MOVC

MOV LED3,

MOV A, 十进制调整 双字节十六进制数的万位数不超过6,不用调整处理完16bit A, 43H ; 将43h 中的0-9转成数码管对应的0-9字符

MOV DPTR, TAB_LED

@A+DPTR LED1, A A, 44H DPTR, TAB_LED @A+DPTR A 45H

DPTR, TAB_LED A,@A+DPTR

A 46H

第32页 共41页

MOV DPTR, TAB_LED MOVC A, @A+DPTR MOV LED4, A

RET ;定时中断0

TT0:

MOV TH0,

#60 MOV TL0, #176

PUSH

ACC

MOV A, L_NUM CJNE

A, #00H, TT01

; 显示第1位数字 MOV LED, LED1;

CLR L1 SETB L2

SETB L3

SETB L4

INC L_NUM JMP TT0_END

TT01:

CJNE

A, #01H, TT02 ; 显示第二位数字 MOV

LED,

LED2;

CLR L2 SETB L1 SETB L3 SETB

L4

INC L_NUM

JMP TT0_END TT02:

CJNE

A, #02H, TT03 ; 显示第三位数字 MOV LED, LED3;

CLR

L3

SETB L2 SETB L1

SETB L4

第33页 共41 页

十位

个位

十分位

INC L_NUM

JMP TT0_END

TT04:

MOV L_NUM, #00H

TT0_END ACC

; 退出中断

; 将计数器清0

JMP

TT0_END: POP RETI

TAB_LED: DB

DB END

0C0H,0F9H,0A4H,0B0H,99H ;LED 查表程序92H,82H,0F8H,80H,90H

第34页 共41页

总 结

由于本设计使用的是高效的51系列单片机作为核心的测量系统,以及高精度,高速度,高抗干扰的A/D转换器。使得本直流电压表具体精度高,灵敏度强,性能可靠,电路简单,成本低的特点。

此设计是单片机应用系统的开发性实验。通过此设计可知在单片机系统开发过程应注意以下事项。

1. 硬件的选择,选择适合设计目地的元器件是一个重要的方设计环节。不能以元器件是否是最高性能作为选择元器件的标准,往往高性能器件的价格也是较高的。应根据项目设计的需要选择元器件,能够满足设计需要作为标准选择元器件。

2. 因为单片机系统设计是硬件和软件相结合的设计,所以系统和硬件和软件必须紧密配合,协调一致。应不断调整硬软件设计,以提高系统工作效率。

单片机的应用如今已经是在工业,电子等方面展示出了它的优越性,利用单片机在设计电路逐渐成了趋势,它与外围电路再加上软件程序就可以构建任意的产品,使得本设计成为现实。随着单片机的日益发展,它必将在未来显示出更大的活力,为电子设计更多精彩。对于数字电压表而言,功能将会越来越强大。

第35页 共41 页

参考文献

[1] 沙占友. 新型数字电压表原理与应用. 机械工业出版社.2006 [2] 朱彩莲.Multisim 电子电路仿真教程. 西安电子科技大学.2007

[3] 路而红. 虚拟电子实验室-Electronics Workbench.人民邮电出版社.2001 [4] 李东生,张 勇.Protel 99SE 电路设计教程. 电子工业出版社.2007 [5] 何立民. 单片机应用技术选编. 北京航空航天大学出版社.1993 [6] 谭浩强.C 程序设计. 清华大学出版社. 1999.12

[7] 张义,王敏男. 例说51单片机. 人民邮电出版社.2008.4 [8] 蔡美琴.MCS-51系列单片机系统及其应用. 高等教育出版社.1992 [9] 高峰. 单片微机应用系统设计及实用技术. 机械工程出版社.2004 [10] 杨全胜. 现代微机原理与接口技术. 电子工业出版社.2004

[11] 徐爱钧. 智能化测量控制仪表原理与设计. 北京航空航天大学出版社.2004 [12] 吴金戌. 沈庆阳. 郭庭吉. 8051单片机实践与应用. 清华大学出版社.2002 [13] 高峰. 单片微型计算机与接口技术. 科学出版社.2003

[14] 谢维成,杨加国. 单片机原理与应用及51程序设计. 清华大学学出版社.2007 [15] 周良权,李世馨. 模拟电子技术基础. 高等教育出版社.2004 [16] 王卫平,陈粟宋. 电子产品制造工艺. 高等教育出版社.2007 [17] 谢自美. 电子线路设计•实验•测试. 华中科技大学出版社. 2006 [18] 沙占友. 数字万用表应用技巧. 国防工业出版社.1997

第36页 共41页

致 谢

首先,我要感谢我的导师林亭生老师在毕业设计中对我给予的悉心指导和严格要求,同时也感谢本校的一些老师在毕业设计期间所给予我得帮助。在我毕业论文写作期间,各位老师给我提供了种种专业知识上的指导和日常生活上的关怀,没有您们这样的帮助和关怀,我不会这么顺利的完成毕业设计,借此机会,向您们表示由衷的感激。同时还要感谢系实验室在毕业设计期间提供给我们优越的实验条件。

接着,我要感谢和我一起做毕业设计的同学。在毕业设计的短短3个月里,你们给我提出很多宝贵的意见,给了我不少帮助还有工作上的支持,在此也真诚的谢谢你们。同时,我还要感谢我的寝室同学和身边的朋友,正是在这样一个团结友爱,相互促进的环境中,在和他们的相互帮助和启发中,才有我今天的小小收获。

最后我要深深地感谢我的家人,正是他们含辛茹苦地把我养育成人,在生活和学习上给予我无尽的爱、理解和支持,才使我时刻充满信心和勇气,克服成长路上的种种困难,顺利的完成大学学习。

还有许许多多给予我学业上鼓励和帮助的朋友,在此无法一一列举,在此也一并表示忠心地感谢!

第37页 共41 页

附录A

数字电压表电路原理图

uF

数字电压表电路原理图

第38页 共41页

华北科技学院毕业设计(论文)

附录B

元件清单列表

第39页 共41 页

目 录

设计总说明 ............................................................... 1

Design General Information ............................................... 2

1 绪论 ................................................................... 4

1.1 课题的背景及意义 .................................................. 4

1.2 数字电压表的简介 .................................................. 4

2 系统的方案设计与论证 ................................................... 5

2.1 数字电压表原理 .................................................... 5

2.2 数字电压表设计要求 ................................................ 5

3 系统硬件结构设计 ....................................................... 5

3.1 电源电路 .......................................................... 6

3.2 单片机芯片选择 .................................................... 7

3.2.1 AT89C51主要特性 ............................................. 8

3.2.2 管脚说明 .................................................... 9

3.2.3内部单元 .................................................... 10

3.2.4 中断 ....................................................... 13

3.2.5 芯片擦除 ................................................... 15

3.2.6 结构特点 ................................................... 15

3.3 A/D转换电路 ..................................................... 16

3.3.1 TLC2543的特点 .............................................. 16

3.3.2 TLC2543的引脚说明 .......................................... 17

3.3.3 TLC2543控制字 .............................................. 18

3.3.4 TLC2543接口时序 ............................................ 20

3.4 显示电路 ......................................................... 22

3.5 复位电路 ......................................................... 24

3.6 晶振电路 ......................................................... 24

4 系统软件设计 .......................................................... 26

4.1 主程序流程图 ..................................................... 26

第I 页 共41 页

4.2 中断程序流程图 ................................................... 27

4.3 源程序 ........................................................... 28

总 结 .................................................................. 35

参考文献 ................................................................ 36

致 谢 .................................................................. 37

附录A ................................................................... 38

数字电压表电路原理图 ................................................. 38

附录B ................................................................... 39

元件清单列表 ......................................................... 39 第II 页 共41页

基于单片机的数字电压表的设计

设计总说明

在当今的数字时代,大到空间雷达,地球卫星定位系统,移动通信,计算机,医用断层扫描设备,小到家用计算机,数码影像设备,数字录音笔,数码微波炉等设备中,数字技术与数字电路组成的数字系统已经成为这些现代电子系统的重要组成部分。数字电压表正进入一个蓬勃发展的新时期,一方面它开拓了电子测量领域的先河,另一方面它本身正朝着高准确度、智能化、低成本的方向发展。此外,数字电压表在安装工艺、外观设计、安全性、可靠性等方面也在不断改进,日臻完善。

数字电压表(Digital Voltmeter )简称DVM ,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。现代数字电压表按测量功能可分为直流数字电压表和交流数字电压表。数字电压表一般由模拟部分和数字部分组成,模拟部分主要功能是获取电压并将其转换为相应的数字量,数字部分完成逻辑控制、译码和显示等功能。数字电压表的核心是A/D转换器,由A/D转换器工作原理的不同,数字电压表又可分为逐次比较型和双积分型。传统的指针式电压表功能单一、精度低,不能满足数字化时代的需求。采用单片机的数字电压表,由精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC 进行实时通信。目前,由各种单片A/D 转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出强大的生命力。与此同时,由DVM 扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭新水平。

数字电压表作为数字技术的成功应用,发展相当快。数字电压表以其功能齐全、精度高、灵敏度高、显示直观等突出优点深受用户欢迎。特别是以A /D 转换器为代表的集成电路为支柱,使DVM 向着多功能化、小型化、智能化方向发展。DVM 应用单片机控制,组成智能仪表;与计算机接口,组成自动测试系统。本设计主要是以AT89C51单片机为核心,包含数据采集模块、数据处理模块和输入/输出模块,能实现0-5V 直流电压测量、数字显示、小数点显示等。能对电压值较小的线路进行电压值的测量, 具有较高的测量精度, 能满足一般电子系统电压测量要求, 留有可扩展的接口, 便于依据实际情况增加其他功能。

关键词:数字电压表;A/D 转换器;电压测量

第1页 共41 页

Microcontroller-based digital voltmeter Design General Information

In today's digital age, space radar, global satellite positioning systems, mobile communications, computer, medical tomography device as small as home computers, digital imaging equipment, digital voice recorder, digital microwave ovens and other equipment, digital technology and digital circuit consisting of digital systems has become an important part of modern electronic systems. The digital voltmeter is entering a vibrant new period of development, on the one hand, it opened up the first of its kind in the field of electronic measuring the other hand, it in itself is moving in the direction of high accuracy, intelligent, low-cost development. In addition, the digital voltmeter in the installation process, design, safety, reliability is also continuous improvement, and improving.

Digital voltage meter (Digital V oltmeter) referred to as DVM, it is the use of digital measuring technology, the continuous analog (DC input voltage) into a non-continuous, discrete digital form and to display the instrument. Modern digital voltmeter measurement functions can be divided into a DC digital voltmeter and AC digital voltmeter. The digital voltmeter is generally by the analog part and digital part and analog part of the main function is to obtain the voltage and converts it to digital and digital part of the complete logic control, decode and display. The digital voltmeter is the core of the A / D converter, the device works is different from the digital voltmeter can be divided into successive comparison type and a double integral A / D converter. Analog voltage meter features a traditional single, low accuracy, can not meet the digital age, using the single chip digital voltage meter, from the high precision, anti-interference ability, scalability, Integrated convenience, and PC can communicate in real time. At present, by a variety of single A / D converter consisting of digital voltage meter, has been widely used in electronic and electrical measurement, industrial automation, instrumentation, automated test systems, intelligent measurement, showing strong vitality. At the same time, the DVM extension to the various general and specific digital instruments, but also the power and non-power measurement up to a new level. This chapter focuses on single-chip A / D converter, and they form by the microcontroller-based digital voltmeter works.

第2页 共41页

Digital voltmeter as the successful application of digital technology, the development is quite fast. Digital voltmeter with a full-featured, high precision, high sensitivity, and intuitive display outstanding advantages welcomed by users. In particular, the A / D converter is represented by IC pillar, DVM toward multifunction, miniaturization, intelligent direction. DVM application MCU control, composed of intelligent instrument; computer interface, composed of the automatic test system. This design is mainly based on 51 series microcontroller core contains the data acquisition module, data processing module and input / output modules, digital display, measuring DC voltage, decimal point display and over-range display. Measurement of the voltage value of the smaller line voltage, higher measurement accuracy can meet the general electronic system voltage measurement requirements, leaving the scalable interface, easy to add other functions based on the actual situation.

Keywords : digital voltmeter; A / D converter; voltage measurement

第3页 共41 页

1 绪论

1.1 课题的背景及意义

数字电压表是在上世纪50年代初,60年代末发展起来的电压测量仪表,简称DVM ,它采用的是数字化测量技术,把连续的模拟量,也就是连续的电压值转变为不连续的数字量,加以数字处理然后通过显示器件显示。这种电子仪表之所以出现,一方面是由于电子计算机的应用推广到系统的自动控制信号领域,提出了各种被观测量或被控制量转换成数字量的要求, 即为了实时控制和数据处理的要求, 另一方面,也是电子计算机的发展,带动了脉冲数字电路技术的发展,为数字化仪表的出现提供了条件。所以, 数字化测量仪表的产生与发展与电子计算机的发展是密切相关的;同时,为革新电子测量中的烦琐与陈旧方式也促进了它的飞速发展,它又成为向智能化仪表发展的必要桥梁。如今,数字电压表已经绝大部分取代了传统的模拟指针式电压表,因为传统的模拟指针式电压表功能单一,精度低,读数的时候非常不方便还经常出错,而采用单片机的数字电压表由于测量精度高,速度快,读数时也非常方便,抗干扰能力强,可扩展性强等优点已被广泛应用与电子和电工测量,工业自动化仪表,自动测量系统等领域。显示出强大的生命力。

众所周知,在当今的社会中电已成为人们日常生活、生产中必不可缺的因素。电的发现和应用极大的节省了人类的体力劳动和脑力劳动,使人类的力量长上了翅膀,使人类的信息触角不断延伸。而在这其中,电压、电流已成为描述电的一些重要参数。在电气测量中,电压是一个很重要的参数。如何准确地测量模拟信号的电压值,一直是电测仪器研究的内容之一。数字电压表是通用仪器中使用较广泛的一种测量仪器,很多电量或非电量经变换后都可用数字电压表完成测试。

1.2 数字电压表的简介

在由单片机构成的数字电压表中包含三个模块:数据采集模块、数据处理模块和输入/输出模块。

在数据采集保持模块中,基本结构大部分都一样,主要是对电压信号采样前,用放大器进行预处理,然后通过保持器保持采样。

在数据处理模块中其中A/D转换器的性能成为评定数字电压表好坏的一个重要标准。本次设计中采用12位A/D转换器TLC2543,TLC2543是TI 公司的12位串行模数 第4页 共41页

转换器,使用开关电容逐次逼近级数完成A/D转换过程。由于是串行输入结构,能够节省51系列单片机I/O资源;且价格适中,分辨率较高,因此在仪器仪表中有较为广泛的应用。

在输入/输出模块中,显示部分可用三个8段数码管构成,其中分别显示个位、十分位、百分位的大小。

2 系统的方案设计与论证

2.1 数字电压表原理

现代数字电压表按测量功能可分为直流数字电压表和交流数字电压表。数字电压表一般由模拟部分和数字部分组成,模拟部分主要功能是获取电压并将其转换为相应的数字量,数字部分完成逻辑控制、译码和显示等功能。数字电压表的核心是A/D转换器,由A/D转换器工作原理的不同,数字电压表又可分为逐次比较型和双积分型。

传统模拟式电压表具有电路简单、成本低、测量方便等特点,但测量精度较差,特别是受表头精度的限制,即使采用0.5级的高灵敏度表头,读测时的分辨力也只能达到半格。再者,模拟式电压表的输入阻抗不高,测高内阻源时精度明显下降。

2.2 数字电压表设计要求

(1)以单片机为核心器件,组成一个数字式电压表。

(2)测量电压范围分为两档:DC 0~5V 和DC 0~50V ,最小测量电压误差50mV 。

(3)采用3位LED 数码管进行电压显示,2位整数,1位小数。

(4)给出全部电路和源程序。

(5)扩展功能自行发挥。

3 系统硬件结构设计

本次设计选用89C51单片机作为核心,TLC2543作为A/D转换芯片,数码管作为显示器,7805稳压器为主的直流稳压电路做为电源,配合采集,转换,显示程序共同实现可测量0-5V 直流电压的数字式电压表。系统总设计框图见图3-1。

第5页 共41 页

图3-1 系统框图

3.1 电源电路

本设计选择三端集成稳压器7805及变压器,整流桥, 滤波电容构成直流稳压电路。C1,C2,C3用来实现频率补偿,防止稳压器产生高频自激振荡和意志电路引入高频干扰,C4是电解电容,以减小稳压电源输出端由输入电源引入的低频干扰。D 是保护二极管,当输入端短路时,给输出电容器C4一个放电通路,防止C4两端电压作用于稳压器,造成击穿而损坏。变压器采用220V-9V 变压器,整流桥和保护二极管采用IN4001。电源电路见下图3-2。

图3-2 直流稳压电源电路

第6页 共41页

3.2 单片机芯片选择

在这一设计中,我们涉及到了一个关键系统模块——单片机系统模块,而目前单片机的种类是很繁多的,主要有主流的8位单片机和高性能的32位单片机,结合本设计各方面因素,8位单片机对于本设计已经是绰绰有余了,但选用哪一种类8位的单片机呢。在这里,不得不先简单的介绍一下几种常用的8位单片机。

单片机是指一个集成在一块芯片上的完整计算机系统,具有一个完整计算机系统的有51 系列单片机,AVR 单片机,PIC 单片机。

应用最广的8位单片机还是intel 的51系列单片机。51系列单片机的特点是:硬件结构合理,指令系统规范,加之生产历史悠久,世界有许多芯片公司都买了51的芯片核心专利技术,并在其基础上扩充其性能,使得芯片的运行速度变得更快,性价比更高。 AVR 单片机是atmel 公司推出较新的单片机,它的显著特点是:高性能,低功耗,高速度,指令单周期为主,但价格方面比51单片机要高。有专门的I/O方向寄存器。虽然有较强的驱动电压,但I/O口使用不比51单片机方便。PIC 单片机系列是美国微芯公司的产品,也是市面上增长最快的单片机之一,属精简指令集单片机,其特点是:高速度,高性能,但在价格方面比51单片机要高,也有专门的,I/O方向寄存器,I/O 口使用不比 51单片机方便。综合以上各种单片机的基本性能及本设计的满足需要, 我们将选择 51 系列单片机. 本设计中选用是51系列的AT89C51,它是低电压,低功耗,高性能的CMOS 8位单片机,片内含8KB 的可反复擦写的只读程序存储器和256B 的随机存取数据存储器,2个I/O口线, 3个16位定时/计数器,片内振荡器及时钟电路,并与 MCS-51系列单片机兼容。在设计中,单片机起着连接硬件电路、程序运行及存储数据的任务,一方面,它将A/D转换器、显示器和语音芯片等通过I/O口地址线和数据线连接起来;另一方面,它将用户下载的程序通过控制总线控制数据的输入输出,从而实现测电压的功能。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

本系统采用P0与P2口与显示器连接,P1口与A/D的数据及控制端连接。EA /VP端接5V 电源,X1,X2接晶振电路,RESET 端接复位电路,其余INT1,INT0,T1,T0,RD ,WR ,RXD ,TXD ,ALE ,PSEN 端悬空。由于P0口的驱动能力较弱,故每个引脚接

4.7K 的上拉电阻,以增强驱动显示器的能力。单片机引脚见下图3-3。

第7页 共41 页

图3-3 AT89C51单片机引脚图

3.2.1 AT89C51主要特性

(1)与MCS-51 兼容

(2)4K 字节可编程闪烁存储器

(3)1000写/擦循环

(4)数据保留时间:10年

(5)全静态工作:0Hz-24Hz

(6)三级程序存储器锁定

(7)128*8位内部RAM

(8)32可编程I/O线

(9)两个16位定时器/计数器

(10)5个中断源

(11)可编程串行通道

(12)低功耗的闲置和掉电模式

(13)片内振荡器和时钟电路 。

第8页 共41页

3.2.2 管脚说明

VCC :供电电压。

GND :接地。

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL 门电流。当P0口的管脚第一次写“1”时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FLASH 编程时,P0 口作为原码输入口,当FLASH 进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收, 输出4个TTL 门电流。P1口管脚写入“1”后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH 编程和校验时,P1口作为第八位地址接收。

P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL 门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH 编程和校验时接收高八位地址信号和控制信号。

P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL 门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出TTL 电流这是由于上拉的缘故。

P3口也可作为AT89C51的一些特殊功能口,如下所示:

管脚 备选功能

P3.0 RXD(串行输入口)

P3.1 TXD(串行输出口)

P3.2 INT 0(外部中断0)

P3.3 INT 1(外部中断1)

P3.4 T0(记时器0外部输入)

P3.5 T1(记时器1外部输入)

第9页 共41 页

P3.7 RD (外部数据存储器读选通)

P3口同时为闪烁编程和编程校验接收一些控制信号。

RST :复位输入。当振荡器复位时,要保持RST 脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在FLASH 编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE 脉冲。如想禁止ALE 的输出可在SFR8EH 地址上置0。此时, ALE只有在执行MOVX ,MOVC 指令时ALE 才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE 禁止,置位无效。

P S E :外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周N

期两次PSEN 有效。但在访问外部数据存储器时,这两次有效的PSEN 信号将不出现。 EA /Vpp:当EA 保持低电平时,则在此期间外部程序存储器为(0000H-FFFFH ),不管是否有内部程序存储器。注意加密方式1时,EA 将内部锁定为RESET ;当EA 端保持高电平时,此间内部程序存储器(0000H-FFFFH )。在FLASH 编程期间,此引脚也用于施加12V 编程电源(VPP )。

XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2:来自反向振荡器的输出。

振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。

3.2.3内部单元

(1)运算器:

① 算术/逻辑部件ALU :用以完成+、-、*、/ 的算术运算及布尔代数的逻辑运算,并通过运算结果影响程序状态寄存器PSW 的某些位,从而为判断、转移、十进制修正和出错等提供依据。

第10页 共41页

② 累加器A :在算术/逻辑运算中存放一个操作数或结果,在与外部存储器和I/O接口打交道时,进行数据传送都要经过A 来完成。

③ 寄存器B :在 *、/ 运算中要使用寄存器B 。乘法时,B 用来存放乘数以及积的高字节;除法时,B 用来存放除数及余数。不作乘除时,B 可作通用寄存器使用。

④ 程序状态标志寄存器PSW :用来存放当前指令执行后操作结果的某些特征,以便为下一条指令的执行提供依据。

【PSW 】 (D0H) D7 D6 D5 D4 D3 D2 D1 D0

Cy AC F0 RS1 RS0 OV — P

Cy :进位标志。有进位或借位,则Cy =1, 否则Cy =0 ;在布尔运算时,Cy (简称C )作为布尔处理器。

AC :辅助进位标志位。

F0:用户标志位:用户可用软件对F0置位“1”或清“0”,以决定程序的流向。 OV :溢出标志位:当运算结果溢出时,OV 为“1”,否则为“0”。

D.1:未定义。

P :奇偶校验位:当累加器A 中的“1”的个数为奇数时,P 置“1”,否则P 置“0”。 RS1、RS0:工作寄存区选择位。

片内工作寄存器组:

RS1、RS0与片内工作寄存器组的对应关系

RS1 RS0 寄存器区 片内RAM 地址 通用寄存器名称

0 0 0 00H~07H R0~R7

0 1 1 08H~0FH R0~R7

1 0 2 10H~17H R0~R7

1 1 3 18H~1FH R0~R7

(2)控制器:

① 指令寄存器IR 和指令译码器。

② 程序计数器:存放CPU 执行下一条指令的地址。是一个16位寄存器,可寻址64KB 。 ③ 堆栈指针SP :用于子程序调用和中断处理。(机器复位后,SP←#07H ,因此压栈的第一个数据在08H 单元中)。

④数据指针寄存器DPTR :16位的寄存器,也可以作为两个8位寄存器DPH 和DPL 。DPTR 主要作外部数据指针,可对64KB 外部RAM 进行间接寻址。

第11页 共41 页

MCS-51由包括PC 在内的22个特殊功能寄存器,它们除有各自的名称外,还有唯一的地址,离散的分布在片内RAM 中的80H ~FFH 共128个存储单元中。在这128个储存单元构成的SFR 块中,未被占用的单元不可使用!

(3)21个特殊功能寄存器SFR :

特殊功能寄存器 功能名称 地址 复位后状态

B * 寄存器 F0H 00H

A * 累加器 E0H 00H

PSW * 程序状态标志寄存器 D0H 00H

IP * 中断优先级控制器 B8H XXX00000B

P3 * P3口数据寄存器 B0H FFH

IE * 中断允许控制寄存器 A8H 0XX00000B

P2 * P2口数据寄存器 A0H FFH

SBUF 串行口发送/接收缓冲器 99H 不定

SCON * 串行口控制寄存器 98H 00H

P1 * P1口数据寄存器 90H FFH

TL1 T1计数器低8位 8BH 00H

TL0 T0计数器低8位 8AH 00H

TH1 T1计数器高8位 8DH 00H

TH0 T0计数器高8位 8CH 00H

TMOD 定时器/计数器方式控制寄存器 89H 00H

TCON * 定时器控制寄存器 88H 00H

PCON 电源控制寄存器 87H 00H

DPL 地址寄存器低8位 82H 00H

DPH 地址寄存器高8位 83H 00H

SP 堆栈指针寄存器 81H 07H

P0 * P0口数据寄存器 80H FFH

PC 程序计数器 无地址 0000H

注:“*”表示可位寻址。

SP 赋值方法:(其中#50H为寄存器50H ,不可直接写为50H ,否则SP 指向寄存器00H )MOV SP,#50H

第12页 共41页

(4)SER 块中具有位寻址功能寄存器的位地址:

地址 [HSB] 位地址名称:即可用地址,也可用()内的名称 [LSB] 寄存器

F0H F7 F6 F5 F4 F3 F2 F1 F0 B

E0H E7 E6 E5 E4 E3 E2 E1 E0 A

D0H D7 D6 D5 D4 D3 D2 D1 D0 PSW

B8H — — — BC(PS) BB(PT1) BA(PX1) B9(PT0) B8(PX0) IP

B0H B7 B6 B5 B4 B3 B2 B1 B0 P3

A8H AF(EA) — — AC(ES) AB(ET1) AA(EX1) A9(ET0) A8(EX0) IE

A0H A7 A6 A5 A4 A3 A2 A1 A0 P2

98H 9F(SM0) 9E(SM1) 9D(SM2) 9C(REN) 9B(TB8) 9A(RB8) 99(TI) 98(RI) SCON 90H 97 96 95 94 93 92 91 90 P1

88H 8F(TF1) 8E(TR1) 8D(TF0) 8C(TR0) 8B(IE1) 8A(IT1) 89(IE0) 88(IT0) TCON 80H 87 86 85 84 83 82 81 80 P0

3.2.4 中断

外部中断INT0和 INT1可根据寄存器TCON 中的IT0和IT1位状态分别设置为电平或者边沿触发,实际产生的中断标志是TCON 中的位IE0 和IE1,当产生外部中断时如果是边沿触发进入中断服务程序后由硬件清除中断标志位。如果中断是电平触发由外部请求源而不是由片内硬件控制请求标志,定时器0和定时器1中断由TF0和TF1产生 ,当产生定时器中断时,进入中断服务程序后由片内硬件清除标志位。

串口中断由RI 和TI 产生,进入中断服务程序后这些标志均不能被硬件清除,实际上中断服务程序通常需要确定是由RI 还是TI 产生的中断,然后由软件清除中断标志。

所以这些产生中断的位都可通过软件置位或清零,与通过硬件置位或清零的效果相同。简而言之中断可由软件产生推迟或取消,每个中断源可通过置位或清零寄存器 IE 中的相应位分别使能或禁止IE 中还包含一个全局禁止位。EA 可以立即禁止所有的中断。

(1)中断优先级结构

每个中断源都可通过编程中断优先级寄存器IP 和IPH 单独设置优先级,一个中断服务程序可响应更高级的中断,但不能响应同优先级或低级中断,最高级中断服务程序不响应其它任何中断。如果两个不同中断优先级的中断源同时申请中断时,响应较高优先级的中断申请,如果2个同优先级的中断源同时申请中断,内部查询顺序将确定首先响应哪一个中断请求。

第13页 共41 页

查询顺序如下所示:

中断源 同级优先级

① IE0 外部中断 0 最高

② TF0 定时器 0

③ IE1 外部中断 1

④ TF1 定时器 1

⑤ RI+TI UART

⑥ TF2,EXF2 定时器 2

注:同级优先级只用来处理相同优先级别中断源同时申请中断的情况。

IP 和IPH 寄存器中包含了一些无效位,由于这些位可能用于其它 80C51 系列产品中,用户软件不应将这些位写入 1。

(2)中断的处理

中断标志在每个机器周期的S5P2时采样,在下一个机器周期查询该采样。如果在 S5P2 周期时有一个标志置位,查询周期将发现它,然后中断系统产生一个LCALL 调用对应的服务程序,由硬件产生的 LCALL在下面任意一种情况下都会推迟执行。 ① 同级或更高级的中断已在处理中

② 当前的周期不是正在执行指令的最后一个周期

③ 正在处理的指令是 RETI 或任何写 IE 或 IP 寄存器的指令 。

条件2确保正在处理的指令在进入任何中断服务程序前可以执行完毕,条件3确保了如果正在处理的指令是 RETI 或任何访问IE 或IP 寄存器的指令,那么在进入任何中断服务程序之前至少再执行一条指令 。

查询周期在每个机器周期都会重复,所查询的值是在前一个机器周期的S5P2出现的值。需要注意的是如果一个中断标志位有效但仍然没有被响应,是因为出现上面所述的情况,如果当阻碍的条件撤除时中断标志不再有效,中断将不再响应。换句话说,实际上如果中断标志有效时没有响应中断,之后将不再被记忆,每次查询周期都会更新中断标志。

(3)外部中断

外部中断源可配置为电平触发或边沿触发,通过将寄存器TCON 中的位IT1或IT0置位或清零实现。如果ITx=0,外部中断x 通过INTx 脚的低电平触发;如果ITx=1,外 第14页 共41页

部中断x 为边沿触发,该模式下对INTx 脚连续采样。如果在一个周期为高电平而下一个周期为低电平,中断请求标志 IEx将置位,然后通过IEx 请求中断。

由于外部中断脚每个机器周期采样一次,输入高或低应当保持至少12个振荡周期,以确保能够采样到。如果外部中断为边沿触发,外部中断源应当将中断脚至少保持1个机器周期高电平,然后至少保持 1个机器周期低电平,这样就确保了边沿能够被检测到,以使 IEx 置位。当调用中断服务程序后,CPU 自动将IEx 清零。如果外部中断为电平触发,外部中断源必须一直保持请求有效,直到产生所请求的中断,然后在中断程序结束之前撤除请求,否则将产生另一次中断。

(4)响应时间

INT0和INT1电平在每个机器周期的 S5P2 取反并锁存到IE0和IE1,在下个周期之前该值不会被电路查询。如果请求有效且应答的条件正确,下个执行的指令就是硬件子程序调用请求中断。CALL 指令本身占用两个周期,因此从中断请求有效到开始执行中断服务程序的第一条指令需要至少3个完整的机器周期。

3.2.5 芯片擦除 整个PEROM 阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE 管脚处于低电平10ms 来完成。此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU 停止工作。但RAM ,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM 的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。

3.2.6 结构特点

(1)8位CPU

(2)片内振荡器和时钟电路

(3)32根I/O线

(4)外部存贮器寻址范围ROM 、RAM64K

(5)2个16位的定时器/计数器

(6)5个中断源,两个中断优先级

(7)全双工串行口

(8)布尔处理器。

第15页 共41 页

3.3 A/D转换电路

电压是模拟量,而数码管显示需要的是数字量,故需要采用A/D转换模拟信号为数字信号供数码管显示出来, 可供选择的芯片有ADC0809,ADC574和TLC2543等等。

由于要求测量精度在1%,因此须选用12位精度的A/D转换器,且可直接驱动LED 显示器工作,0809为8位精度, 故不能采用, 而综合性价比,TLC2543就成为了本次设计的首选。

被测量模拟量变为数字量之后,并不能通过数码管直接显示出来,而需要单片机加以处理形成段码才能显示出来。而且,A/D电路的时钟与输入输出都需要单片机与其对接予以控制。故选择含有内部闪存的89C51完成此工作。该芯片无论从性能还是价格上都是非常合适的。数字信号转换为段码并显示出来需要有程序和其它接口电路配合。在程序上,A/D采集程序采用多次取值并求和求平均的方法得出双字节数据,然后通过双字节转换BCD 码子程序得出BCD 码。硬件显示上选用动态扫描法,即数码管位选端连入单片机的某一组I/O口,片选端连入另一组I/O口,配合显示子程序实现显示。此外,主程序和其它程序用中断方式进行组合。 由于单片机各个I/O口的驱动能力有限,故应设计驱动电路。本设计中的驱动电路主要与显示部分有关。数码管的片选端需要连接上拉电阻和三极管以增强驱动能力,位选端也选择连接上拉电阻以增强驱动能力。

TLC2543是TI 公司的12位串行模数转换器,使用开关电容逐次逼近级数完成A/D转换过程。由于是串行输入结构,能够节省51系列单片机I/O资源;且价格适中,分辨率较高,因此在仪器仪表中有较为广泛的应用。

3.3.1 TLC2543的特点

(1)12位分辩率A/D转换器

(2)在工作温度范围内10μs 转换时间

(3)11个模拟输入通道

(4)3路内置自测试方式

(5)采样率为66kbps

(6)线性误差±1LSBmax

(7)有转换结束输出EOC

(8)具有单、双极性输出

第16页 共41页

(9)可编程的MSB 或LSB 前导

(10)可编程的输出数据长度

3.3.2 TLC2543的引脚说明

TLC2543的引脚见下图3-4

图3-4 TLC2543 A/D转换芯片引脚图

TLC2543引脚功能见下表3-1

表3-1 TLC2543引脚功能表

第17页 共41 页

本设计中,TLC2543的AIN0引脚接测量降压电路,AIN1-AIN10置空,GND 接地,REF+接+5V电压,REF-接地,端接P1.4口,TDO 端接P1.2口,TDI 端接P1.3口,TCK 端接P1.1口,EOC 端接P1.0口。

3.3.3 TLC2543控制字

TLC2543的工作过程如下:首先在8、12或16时钟周期里向片内控制寄存器写入8位的控制字,控制字中的2位决定时钟长度,在最后一个时钟周期的下降沿启动AD 转换过程,经过一段转换时间,在随后的8、12或16个时钟周期里,从DATA OUT 脚读出数据。

第18页 共41页

控制字的定义见下表3-2

表3-2 TLC2543控制字的定义表

第19页 共41 页

控制字的前4位(D7-D4)代表11个模拟通道的地址;当其为1100-1110时,选择片内检测电压;当其为1111时,为软件选择的断电模式,此时,AD 转换器的工作电流只有25uA.

控制字的第3位和第4位(D3一D2) 决定输出数据的长度,01表示输出数据长度为8位;11表示输出数据长度为16位;X1表示输出数据长度为12位,X 可以为1或0。

控制字的第2位(D1)决定输出数据的格式,0表示高位在前,1表示低位在前。 控制字的第1位(D0)决定转换结果输出的格式。当其为0时,为无极性输出(无符号二进制数) ,即模拟电压为Vnef+,时,转换的结果为0FFFH ;模拟电压为Vnef-时,转换的结果为0000H 。

当其为1时,为有极性输出(有符号二进制数) ,即模拟电压高于(Vnef+-Vnef-)/2时符号位为0;模拟电压低于(Vnef+-Vnef-)/2时符号位为1;模拟电压为Vnef+时,转换的结果为03FFH ;模拟电压为Vnef-时,转换的结果为0800H 。模拟电压为(Vnef+-Vnef-)/2时,转换的结果为0000H 。 3.3.4 TLC2543接口时序

可以用四种方式使TLC2543实现全12位分辨率,每次转换和数据传递可以使用12或16个时钟周期。一个片选(始处变化一次后保持

)脉冲要插到每次转换的开始处,或是在转换时序的开

为低,直到时序结束。开始时,片选为高,I/O CLOCK 、DATA INPUT

被禁止,DATA OUT呈高阻状态,EOC 为高。片选变低,I/O CLOCK、DATA INPUT能用,DATA OUT脱离高阻状态。12个时钟信号从I/O CLOCK端依次加入,随着时钟信号的加入,控制字从DATA INPUT一位一位地在时钟信号的上升沿时被送入TLC2543(高位先送入) ,同时上一周期转换的A/D数据。TLC2543收到第4个时钟信号后,通道号也已收到,因此,此时TLC2543开始对选定通道的模拟量进行采样,并保持到第12个时钟的下降沿。在第12个时钟下降沿,EOC 变低,开始对本次采样的模拟量进行A/D转换,转换时间约需10μs ,转转完成EOC 变高,转换的数据在输出数据寄存器中,待下一个工作周期输出。此后,可以进行新的工作周期。

以MSB 为前导, 用CS 进行12个时钟传送的工作时序如下图3-5。

第20页 共41页

图3-5 TLC2543工作时序图

(1)上电时,EOC=“1”,CS=“1”

(2)使CS 下降,前次转换结果的MSB 即A11位数据输出到DATA OUT供读数。 (3)将输入控制字的MSB 位即C7送到Din ,在CS 之后t SU>=1.425us后,使CLK 上升,将Din 上的数据移入输入寄存器。

(4)CLK 下降,转换结果的A10位输出到DATA OUT供读数。

(5)在第4个CLK 下降时,由前4个CLK 上升沿移入寄存器的四位通道地址被译码,相应模入通道接通,其模入电压开始时对内部开关电容充电。

(6)第8个CLK 上升时,将Din 脚的输入控制字C0位移入输入寄存器后,Din 脚即无效。

(7)第11个CLK 下降,上次AD 结果的最低位A0输出到DATA OUT 供读数。至此,I/O数据已全部完成,但为实现12位同步,仍用第12个CLK 脉冲,且在其第12个CLK 下降时,模入通道断开,EOC 下降,本周期设置的AD 转换开始,此时使CS 上升。

(8)经过时间t CONV

(9)使CS 下降,转换结果的MSB 位B11输出到DATA OUT供读数。

(10)将新周期的输入控制字的MSB 位D7送到Din ,在CS 下降之处,t SU 时间处由CLK 上升将Din 数据移入输入寄存器。

(11)CLK 下降,将AD 结果的B10位输出到DATA OUT。

第21页 共41 页

3.4 显示电路

数码管是一种半导体发光器件,其基本单元是发光二极管。数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM 接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM 接到地线GND 上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。 静态显示驱动:静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD 码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5×8=40根I/O端口来驱动,要知道一个89S51单片机可用的I/O端口才32个呢),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。 动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a, b, c, d, e, f, g, dp"的同名端连在一起,另外为每个数码管的公共极COM 增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM 端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。。在轮流显示过程中,每位数码管的点亮时间为1~2ms ,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。

参数:8字高度:8字上沿与下沿的距离。比外型高度小。通常用英寸来表示。范围一般为0.25-20英寸。

第22页 共41页

长*宽*高:长——数码管正放时,水平方向的长度;宽——数码管正放时,垂直方向上的长度;高——数码管的厚度。

时钟点:四位数码管中,第二位8与第三位8字中间的二个点。一般用于显示时钟中的秒。

电流:静态时,推荐使用10-15mA ;动态时,16/1动态扫描时,平均电流为4-5mA ,峰值电流50-60mA 。

本设计显示部分由3个8段数码管组成,分别显示个位,十分位,百分位。数码管接口电路见下图3-6。

D3

图3-6 共阴极数码管及其接口电路

第23页 共41 页

3.5 复位电路

89C51单片机的复位是由外部的复位电路来实现的。最简单的上电自动复位电路,是通过外部复位电路的电容充电来实现的。只要VCC 的上升时间不超过1ms ,就可以实现自动上电复位。当时钟频率选用6MHz 时,C 取22uF ,R 取1K 欧。

除上电复位外,有时还需要按键手动复位。按键手动复位有电平方式和脉冲方式两种。其中电平复位是通过RST 端经电阻和电源VCC 接通而实现的,按键手动电平复位电路如图3.1。当时钟频率选用12MHz 时,C 选取22uF ,R 选择1K 欧。复位电路见下图3-7。

图3-7 单片机复位电路

3.6 晶振电路

晶振是晶体振荡器的简称,在电气上它可以等效成一个电容和一个电阻并联再串联一个电容的二端网络,电工学上这个网络有两个谐振点,以频率的高低分其中较低的频率是串联谐振,较高的频率是并联谐振。由于晶体自身的特性致使这两个频率的距离相当的接近,在这个极窄的频率范围内,晶振等效为一个电感,所以只要晶振的两端并联上合适的电容它就会组成并联谐振电路。这个并联谐振电路加到一个负反馈电路中就可以构成正弦波振荡电路,由于晶振等效为电感的频率范围很窄,所以即使其他元件的参数变化很大,这个振荡器的频率也不会有很大的变化。晶振有一个重要的参数,那就是负载电容值,选择与负载电容值相等的并联电容,就可以得到晶振标称的谐振频率。一般的晶振振荡电路都是在一个反相放大器(注意是放大器不是反相器)的两端接入晶振,再有两个电容分别接到晶振的两端,每个电容的另一端再接到地,这两个电容串联的容

第24页 共41页

量值就应该等于负载电容,请注意一般IC 的引脚都有等效输入电容,这个不能忽略。 一般的晶振的负载电容为15p 或12.5p ,如果再考虑元件引脚的等效输入电容,则两个22p 的电容构成晶振的振荡电路就是比较好的选择。 晶体振荡器也分为无源晶振和有源晶振两种类型。无源晶振与有源晶振(谐振)的英文名称不同,无源晶振为crystal (晶体),而有源晶振则叫做oscillator (振荡器)。无源晶振需要借助于时钟电路才能产生振荡信号,自身无法振荡起来,所以“无源晶振”这个说法并不准确;有源晶振是一个完整的谐振振荡器。谐振振荡器包括石英(或其晶体材料)晶体谐振器,陶瓷谐振器,LC 谐振器等。晶振与谐振振荡器有其共同的交集有源晶体谐振振荡器。 石英晶片所以能做振荡电路(谐振)是基于它的压电效应,从物理学中知道,若在晶片的两个极板间加一电场,会使晶体产生机械变形;反之,若在极板间施加机械力,又会在相应的方向上产生电场,这种现象称为压电效应。如在极板间所加的是交变电压,就会产生机械变形振动,同时机械变形振动又会产生交变电场。一般来说,这种机械振动的振幅是比较小的,其振动频率则是很稳定的。但当外加交变电压的频率与晶片的固有频率(决定于晶片的尺寸)相等时,机械振动的幅度将急剧增加,这种现象称为压电谐振,因此石英晶体又称为石英晶体谐振器。 其特点是频率稳定度很高。

石英晶体振荡器与石英晶体谐振器都是提供稳定电路频率的一种电子器件。石英晶体振荡器是利用石英晶体的压电效应来起振,而石英晶体谐振器是利用石英晶体和内置IC 来共同作用来工作的。振荡器直接应用于电路中,谐振器工作时一般需要提供3.3V 电压来维持工作。振荡器比谐振器多了一个重要技术参数为:

谐振电阻(RR ),谐振器没有电阻要求。RR 的大小直接影响电路的性能,也是各商家竞争的一个重要参数。本设计采用12MHz 晶振,并联两个30pF 电容构成晶振电路。晶振电路见下图3-8 。

图3-8 单片机晶振电路

第25页 共41 页

4 系统软件设计

4.1 主程序流程图

主程序流程图见下图4-1

图4-1 主程序流程框图

第26页 共41页

4.2 中断程序流程图

中断程序流程图见下图4-2

图4-2 中断程序流程框图

第27页 共41 页

4.3 源程序

本程序是用来显示0-5V 的测量电压的,使用的单片机是:89C51,晶振12MHz AD_EOC BIT P1.0 ;ad 的接口 AD_TCK BIT P1.1 AD_OUT BIT P1.2 AD_IN BIT P1.3 AD_CS BIT P1.4

LED EQU P0 ;LED 接的P0口 L1 L2 L3 L4

BIT P2.0 BIT P2.1 BIT P2.2 BIT P2.3

;LED0缓存

LED1 EQU 30H

LED2 EQU 31H ;LED1缓存 LED3 EQU 32H LED4 EQU 33H L_NUM EQU 34H ;led 计数器

ORG 0000H LJMP

MAIN

;LED2缓存 ;LED3缓存

ORG 000BH LJMP

ORG

TT0 0080H

; 设置堆栈

MAIN: MOV SP, #70H

MOV TH0, MOV TL0,

#60 ;设置定时器定时时间 #176

MOV TMOD, #11H ;设置定时器工作状态

; 开总中断 ; 开定时器中断0

; 采集数据

SETB EA

SETB TR0

M1: LCALL ADCJ

第28页 共41页

LCALL AD_NUM LCALL PINGJUN LCALL BIN_BCD JMP

; 将采集的数据求和

; 将采集的数据求平均

; 将采集的数据求平均后转成bcd

M1 ;AD采集程序;48H-4FH

ADCJ: MOV R0, #48H MOV R1, #49H MOV DPTR, #DZSJ25 MOV R4,

DTDZ25: MOV R3,

#01H ;一个通道

#04H ;多通道采值起始,每个4次

DCCZ25: MOV A, #01H ;采集第一个通道 LCALL RD_AD INC R0 INC R1 DJNZ R3, RET

RD_AD: MOV @R0, MOV @R1, CLR CLK SETB CLR

CS25 CS25

#08H

#00H ;2543串行数据输出高位 #00H DCCZ25

MOV R2,

LOP1: MOV C, DO RLC A MOV DI, SETB

C

CLK

CLR CLK DJNZ SWAP XCHD SWAP

R2, A

A, @R0 ;交换 LOW 4 BITS A

第29页 共41 页

LOP1

MOV R2,

LOP2: MOV C, DO RLC SETB

A

#04H

CLK

CLR CLK DJNZ

R2, LOP2

A

MOV @R1, SETB RET

CS25

DZSJ25: DB 00H,10H,20H,30H,40H ;两字节相加; 结果在41H 和42H

中,41H 低字节,42h 高字节

AD_NUM: MOV 41H,

#00H

#00H 48H 49H

; 低字节

MOV 42H, MOV 41H, MOV 42H, CLR C

MOV A, 4AH ADDC

A, 41H

JC AD_NUM1 ADD 42H, AD_NUM1:CLR C

#01

MOV A, 4CH ADDC

A, 41H

JC AD_NUM2 ADD 42H, AD_NUM2:CLR C

#01

MOV A, 4EH ADDC A, 41H JC AD_NUM3 ADD 42H,

#01

第30页 共41页

AD_NUM3:CLR C

MOV A, 4BH ADD A, 42H MOV A, 4DH ADD A, 42H MOV A, 4FH ADDC A, 42H

RET ;求平均数 PINGJUN:CLR C

MOV A, 42H RRC A MOV 42H,

A

MOV A, 41H MOV 41H, CLR C MOV A, 42H RRC A MOV 42H,

A A

MOV A, 41H RRC A MOV 41H,

A

RET ;BIN转成BCD; 程序入口:42H 是高字节,41H 是低字节; 程序

出口:个位数放在44h; 十分位数放在45h; 百分位数放在46h

BIN_BCD:CHANGE16_10:CLR A ;BCD码初始化 MOV R3, A MOV R4, A MOV R5, A

MOV R2, #10H ;转换双字节十六进制整数 CHANG_1:MOV A, R7 ;从高端移出待转换数的一位到CY 中 RLC A

第31页 共41 页

MOV R7, A MOV A, R6 RLC A MOV R6, A

MOV A, R5 ;BCD码带进位自身相加,相当于乘2 ADDC A, R5

DA A ; MOV R5, A MOV A, R4 ADDC A, R4 DA A MOV R4, A MOV A, R3 ADDC A, R3

MOV R3, A ; DJNZ R2, CHANG_1 ; RET

BIN_BCD: MOV MOVC A, MOV MOV MOV MOVC A, MOV LED2,

MOV A, MOV MOVC

MOV LED3,

MOV A, 十进制调整 双字节十六进制数的万位数不超过6,不用调整处理完16bit A, 43H ; 将43h 中的0-9转成数码管对应的0-9字符

MOV DPTR, TAB_LED

@A+DPTR LED1, A A, 44H DPTR, TAB_LED @A+DPTR A 45H

DPTR, TAB_LED A,@A+DPTR

A 46H

第32页 共41页

MOV DPTR, TAB_LED MOVC A, @A+DPTR MOV LED4, A

RET ;定时中断0

TT0:

MOV TH0,

#60 MOV TL0, #176

PUSH

ACC

MOV A, L_NUM CJNE

A, #00H, TT01

; 显示第1位数字 MOV LED, LED1;

CLR L1 SETB L2

SETB L3

SETB L4

INC L_NUM JMP TT0_END

TT01:

CJNE

A, #01H, TT02 ; 显示第二位数字 MOV

LED,

LED2;

CLR L2 SETB L1 SETB L3 SETB

L4

INC L_NUM

JMP TT0_END TT02:

CJNE

A, #02H, TT03 ; 显示第三位数字 MOV LED, LED3;

CLR

L3

SETB L2 SETB L1

SETB L4

第33页 共41 页

十位

个位

十分位

INC L_NUM

JMP TT0_END

TT04:

MOV L_NUM, #00H

TT0_END ACC

; 退出中断

; 将计数器清0

JMP

TT0_END: POP RETI

TAB_LED: DB

DB END

0C0H,0F9H,0A4H,0B0H,99H ;LED 查表程序92H,82H,0F8H,80H,90H

第34页 共41页

总 结

由于本设计使用的是高效的51系列单片机作为核心的测量系统,以及高精度,高速度,高抗干扰的A/D转换器。使得本直流电压表具体精度高,灵敏度强,性能可靠,电路简单,成本低的特点。

此设计是单片机应用系统的开发性实验。通过此设计可知在单片机系统开发过程应注意以下事项。

1. 硬件的选择,选择适合设计目地的元器件是一个重要的方设计环节。不能以元器件是否是最高性能作为选择元器件的标准,往往高性能器件的价格也是较高的。应根据项目设计的需要选择元器件,能够满足设计需要作为标准选择元器件。

2. 因为单片机系统设计是硬件和软件相结合的设计,所以系统和硬件和软件必须紧密配合,协调一致。应不断调整硬软件设计,以提高系统工作效率。

单片机的应用如今已经是在工业,电子等方面展示出了它的优越性,利用单片机在设计电路逐渐成了趋势,它与外围电路再加上软件程序就可以构建任意的产品,使得本设计成为现实。随着单片机的日益发展,它必将在未来显示出更大的活力,为电子设计更多精彩。对于数字电压表而言,功能将会越来越强大。

第35页 共41 页

参考文献

[1] 沙占友. 新型数字电压表原理与应用. 机械工业出版社.2006 [2] 朱彩莲.Multisim 电子电路仿真教程. 西安电子科技大学.2007

[3] 路而红. 虚拟电子实验室-Electronics Workbench.人民邮电出版社.2001 [4] 李东生,张 勇.Protel 99SE 电路设计教程. 电子工业出版社.2007 [5] 何立民. 单片机应用技术选编. 北京航空航天大学出版社.1993 [6] 谭浩强.C 程序设计. 清华大学出版社. 1999.12

[7] 张义,王敏男. 例说51单片机. 人民邮电出版社.2008.4 [8] 蔡美琴.MCS-51系列单片机系统及其应用. 高等教育出版社.1992 [9] 高峰. 单片微机应用系统设计及实用技术. 机械工程出版社.2004 [10] 杨全胜. 现代微机原理与接口技术. 电子工业出版社.2004

[11] 徐爱钧. 智能化测量控制仪表原理与设计. 北京航空航天大学出版社.2004 [12] 吴金戌. 沈庆阳. 郭庭吉. 8051单片机实践与应用. 清华大学出版社.2002 [13] 高峰. 单片微型计算机与接口技术. 科学出版社.2003

[14] 谢维成,杨加国. 单片机原理与应用及51程序设计. 清华大学学出版社.2007 [15] 周良权,李世馨. 模拟电子技术基础. 高等教育出版社.2004 [16] 王卫平,陈粟宋. 电子产品制造工艺. 高等教育出版社.2007 [17] 谢自美. 电子线路设计•实验•测试. 华中科技大学出版社. 2006 [18] 沙占友. 数字万用表应用技巧. 国防工业出版社.1997

第36页 共41页

致 谢

首先,我要感谢我的导师林亭生老师在毕业设计中对我给予的悉心指导和严格要求,同时也感谢本校的一些老师在毕业设计期间所给予我得帮助。在我毕业论文写作期间,各位老师给我提供了种种专业知识上的指导和日常生活上的关怀,没有您们这样的帮助和关怀,我不会这么顺利的完成毕业设计,借此机会,向您们表示由衷的感激。同时还要感谢系实验室在毕业设计期间提供给我们优越的实验条件。

接着,我要感谢和我一起做毕业设计的同学。在毕业设计的短短3个月里,你们给我提出很多宝贵的意见,给了我不少帮助还有工作上的支持,在此也真诚的谢谢你们。同时,我还要感谢我的寝室同学和身边的朋友,正是在这样一个团结友爱,相互促进的环境中,在和他们的相互帮助和启发中,才有我今天的小小收获。

最后我要深深地感谢我的家人,正是他们含辛茹苦地把我养育成人,在生活和学习上给予我无尽的爱、理解和支持,才使我时刻充满信心和勇气,克服成长路上的种种困难,顺利的完成大学学习。

还有许许多多给予我学业上鼓励和帮助的朋友,在此无法一一列举,在此也一并表示忠心地感谢!

第37页 共41 页

附录A

数字电压表电路原理图

uF

数字电压表电路原理图

第38页 共41页

华北科技学院毕业设计(论文)

附录B

元件清单列表

第39页 共41 页


相关内容

  • 电气自动化设计论文题目大全
  • 机电一体化 毕 业 设 计 论 文 题 目 第1-100个电气自动化毕业设计论文题目 1. 智能压力传感器系统设计 2. 智能定时器 3. 液位控制系统设计 4. 液晶控制模块的制作 5. 嵌入式激光打标机运动控制卡软件系统设计 6. 嵌入式激光打标机运动控制卡硬件系统设计 7. 基于单片机控制的数 ...

  • 电气自动化毕业设计论文题目
  • 电 气 自 动 化 毕 业 设 计 论 文 题 目 第1-100个电气自动化毕业设计论文题目 1. 智能压力传感器系统设计 2. 智能定时器 3. 液位控制系统设计 4. 液晶控制模块的制作 5. 嵌入式激光打标机运动控制卡软件系统设计 6. 嵌入式激光打标机运动控制卡硬件系统设计 7. 基于单片机 ...

  • PLC毕业设计论文题目
  • P L C 第1-100个PLC毕业设计论文题目 1. 智能压力传感器系统设计 2. 智能定时器 3. 液位控制系统设计 4. 液晶控制模块的制作 5. 嵌入式激光打标机运动控制卡软件系统设计 6. 嵌入式激光打标机运动控制卡硬件系统设计 7. 基于单片机控制的数字气压计的设计与实现 8. 基于MS ...

  • 自动化毕业设计论文题目
  • 自 动 化 毕 业 设 计 论 文 题 目 1. 智能压力传感器系统设计 2. 智能定时器 3. 液位控制系统设计 4. 液晶控制模块的制作 5. 嵌入式激光打标机运动控制卡软件系统设计 6. 嵌入式激光打标机运动控制卡硬件系统设计 7. 基于单片机控制的数字气压计的设计与实现 8. 基于MSC12 ...

  • 单片机毕业设计题目
  • 1. 智能压力传感器系统设计 2. 智能定时器 3. 液位控制系统设计 4. 液晶控制模块的制作 5. 嵌入式激光打标机运动控制卡软件系统设计 6. 嵌入式激光打标机运动控制卡硬件系统设计 7. 基于单片机控制的数字气压计的设计与实现 8. 基于MSC1211的温度智能温度传感器 9. 机器视觉系统 ...

  • 通信工程毕业设计题目精选
  • 不管怎样,生活还是要继续向前走去.有的时候伤害和失败不见得是一件坏事,它会让你变得更好,孤单和失落亦是如此.每件事到最后一定会变成一件好事,只要你能够走到最后. 通信工程毕业设计题目精选 1. 智能压力传感器系统设计 2. 智能定时器 3. 液位控制系统设计 4. 液晶控制模块的制作 5. 嵌入式激 ...

  • 100个自动化概论课结课论文题目
  • 1. 智能压力传感器系统设计 2. 智能定时器 3. 液位控制系统设计 4. 液晶控制模块的制作 5. 嵌入式激光打标机运动控制卡软件系统设计 6. 嵌入式激光打标机运动控制卡硬件系统设计 7. 基于单片机控制的数字气压计的设计与实现 8. 基于MSC1211的温度智能温度传感器 9. 机器视觉系统 ...

  • 电气专业的一些毕业设计题目
  • 电气专业的一些毕业设计题目 电子类: 1.红外遥控照明灯(电路+程序+论文) 2.基于单片机的多功能智能小车设计论文(电路+程序+论文) 3.基于数字信号处理器(DSP)的异步电机直接转矩控制研究(硕士)(论文+上位机下位机软件+程序) 4.简单温度控制系统(仅论文) 5.漏电保护器(电路+程序+论 ...

  • 简易函数信号发生器设计
  • 单片机原理及接口技术课程设计(论文) 题目: 简易函数信号发生器设计 院(系): 专业班级: 学 号: 学生姓名: 指导教师: (签字) 起止时间: 2015.6.22-2015.7.3 课程设计(论文)任务及评语 院(系):电气工程学院 教研室:自动化 注:成绩:平时20% 论文质量60% 答辩2 ...

  • 基于单片机的智能温度检测器设计
  • 目录 第1章 绪论 .......................................................................................................................................... - ...