基于单片机智能交流电压表的设计

基于单片机智能交流电压表的设计
基于单片机智能交流电压表的设计

基于单片机智能交流电压表的设计

摘要

电工参数一般包括电压、电流、功率、频率、功率因数等。在电网调度自动化的设备中需要配置多只测量显示上述电工参数的镶嵌式面板表,如电压表、电流表、功率表等等,其一般均为指针式面板表,精度低,可视距离近,数据需要人工抄录,浪费人力资源,数据管理不便,容易出错。近年来,随着微电子技术的迅速发展和超大规模集成电路的出现,特别是单片机的出现,正在引起测量控制仪表领域的新的技术革命。

本文在研究国内外有关智能仪器仪表最新科研成果的基础上,采用单片机为测量仪器的主控制器,设计出可与上位计算机进行通信的新型智能交流电压表。

这种以单片机为主体的新型智能仪表将计算机技术与测量控制技术结合在一起,在测量过程自动化,测量结果数据处理以及功能的多样化方面都取得了巨大的进步。

关键词:单片机,智能仪表,数据处理,通信

如需此论文Word版本,单片机程序/单片机技术支持,请访问: 嵌入式应用软件园。

Intelligence alternating voltage meter

on Single-chip Microcomputer

Abstract

Electrical parameter includes voltage, current, power, frequency power factor ,and soon .The adjustment system of electrical network needs many panel instruments that can show the electrical parameter, such as voltage, current, power, cycle etc. Usually these instrument is not accurate, wastes manpower resource, and the management of the data is inconvenient and easy to mistake. Recently the development of micro-electronics technology and the advent of SLSI, especially the advent. Of single chip, lead to a new revolution in the field of instrument.

In this paper,on the basis of studying the up to date fruit of instrument ,a new intellective instrument which adopts single chip as control core and which can communicate with the PC is designed.

This appliance which bases on the single chip compounds the technology of computer and measure. It is improved very much on processing result and the diversification of function.

Key words: single chip, intellective instrument, data process, communication.

目录

引言 (6)

第一章方案选择 (7)

1.1设计结构图 (7)

1.2芯片的选择 (7)

第二章硬件电路设计 (9)

2.1总硬件电路设计 (9)

2.2A T89S51单片机简介 (9)

2.2.1 芯片特点 (9)

2.2.2 芯片管脚介绍 (10)

2.3电压信号采样 (12)

2.3.1 设计原理简介 (12)

2.3.2 精密电压互感器SPT205B (12)

2.4A/D转换电路 (14)

2.4.1 A/D转换芯片介绍 (14)

2.4.2 TLC1549与单片机的连接 (15)

2.5显示单元 (16)

2.5.1 MAX7219芯片的介绍 (16)

2.5.2 引脚说明 (16)

2.5.3 工作原理 (17)

2.5.4 显示单元与单片机连接电路 (18)

2.6通信接口硬件设计 (18)

2.6.1 数据通信基础 (19)

2.6.2 RS-232标准接口总线 (19)

2.6.3 芯片MAX485介绍 (20)

第三章软件部分 (23)

3.1软件整体结构 (23)

3.2电压采集模块 (24)

3.2.1 数字滤波 (24)

3.2.2 A/D转换 (25)

3.3显示模块 (26)

3.4通讯模块 (27)

结论和展望 (29)

参考文献 (30)

致谢 (31)

附录A 电压表电路图 (32)

附录B 源程序 (33)

附录C 外文文献及其译文 (34)

附录D 参考文献摘要 (36)

插图清单

图1-1 整体结构图 (7)

图2-1 单片机引脚图 (10)

图2-2 采样部分的原理图 (12)

图2-3 尺寸结构图 (13)

图2-4 交流互感器部分电路图 (14)

图2-5 TLC1549引脚排列 (15)

图2-6 TLC1549方式1的时序图 (15)

图2-7 TLC1549与单片机A T89S51的连接图 (16)

图2-8 MAX7219芯片实物封装图 (17)

图2-9 MAX7219芯片工作时序图 (18)

图2-10 MAX7219与51单片机的接线电路 (18)

图2-11 MAX485芯片引脚介绍 (21)

图2-12 PC与单片机串行通讯 (22)

图3-1 总体软件流程 (23)

图3-2 数字滤波的流程图 (25)

图3-3 A/D转换流程图 (26)

图3-4 显示模块流程图 (27)

图3-5A 单片机与微机信的软件框图 (28)

图3-5B 初始化框图 (28)

表格清单

表2-1精密电压互感器SPT205B性能指标表 (12)

引言

电力系统参数一般包括电压、电流、功率、频率、功率因数等。在电网调度自动化的设备中需要配置多只测量显示上述电工参数的镶嵌式面板表,如电压表、电流表、功率表等等,其一般均为指针式面板表,精度低,可视距离近,数据需要人工抄录,浪费人力资源,数据管理不便,容易出错。近年来,随着微电子技术的迅速发展和超大规模集成电路的出现,特别是单片机的出现,正在引起测量控制仪表领域的新的技术革命。

本文在研究国内外有关智能仪器仪表最新科研成果的基础上,采用单片机作为测量仪器的主控制器,设计出可与上位计算机进行通信的新型智能交流电压表。这种以单片机为主体的新型智能仪表将计算机技术与测量控制技术结合在一起,在测量过程自动化,测量结果数据处理以及功能的多样化方面都取得了巨大的进步。

第一章方案选择

1.1 设计结构图

本设计是基于单片机智能交流电压表的设计,设计中使用了精密交流互感器,桥式整流器,∏式滤波单元,串行A/D转换器,MCS-51系列单片机,显示驱动器,LED数码管,上位通信单元几部分组成。

整体结构图如下1-1

图1-1 整体结构图

被测交流电压由精密交流互感器降压得到与输入被测电压成比例的交流电压值:经整流滤波得到与输入电压成比例的直流电压值。由AD转换芯片TLC1549转换成相应的数值量;再由单片机存储在内存单元,做相应的数字信号处理(算法);然后通过显示驱动器MAX 7219驱动四个LED数码管显示结果,并通过MAX485收发器芯片与上位机相连。

智能电压表有简单的监控功能,能实时显示并记录当前电压情况。通过智能交流电压表,达到了监控交流电压有效值变化的目的。

1.2芯片的选择

电力系统参数一般包括电压、电流、功率、频率、功率因数等等。在电网调度自动化的设备中需要配置多只测量显示上述电_工参数的镶嵌式面板表,如电压表、电流表、功率表等等,其一般均为指针式面板表,精度低,可视距离近,数据需要人工抄录,浪费人力资源,数据管理不便,容易出错。

本设计采用A TMEL生产的MCS-51系列的A T80S51单片机芯片作为主芯片。没有采用其他公司芯片的理由是我们单片机课程详细修过MCS-51系列单片机,且MCS-51单片机所占的市场分额很大,在单片机领域影响力很大,几十年居于单片机领域领头羊地位,其产品大量作为单片机教材范例使用。本想用最常见并主修过的A T89C51,但现在,89S51目前已经成为了实际应用市场上新的宠儿,89S51在工艺上进行了改进,89S51采用0.35新工艺,成本降低,而且将功能提升,增加了竞争力,并增加了很多新功能,内置看门狗记时器,所以我选择它。

整流电路方面本来使用双二极管进行整流,但考虑到更高的精确性,使用了简单实用的桥式整流电路,并采用成本低廉,电路简单的∏型滤波电路进行滤波。使用精密电压互感器SPT205B进行电压信号的降压处理,是为了更高的信号采样精密度,SPT205B实际上是一款毫安级精密电流互感器,精密度很高。本想使用电阻级联进行分压,但其精确度和抗干扰性就大大差远了,极大的影响了测量的精确性,所以采用了电压互感器降压。

A/D转换部分采用的TLC1549芯片是TI工公司生产的10位逐次逼近模数转换器,该器件具有两个数字输入端和一个3态输出端。没有采用同系列的8位A/D转换芯片TLC549,是因为本芯片精度更高,可以达到令人满意的效果。

显示方面采用了美国MAXIM公司生产的串行输入/输出共阴极显示驱动器系列芯片MAX7219,以其功能强大,编程简单,控显可靠,可泛用于工业控制器等力一面的数码显示驱动,比较成熟的应用即为与单片机的结合。选用LED数码管显示电压值,精度高,可视距离远。并利用上位PC机对电压值进行监控,完成了机械式面板表和一般数字式电压表不能完成的工作。LED数码管简单经济,使我放弃了本想使用的液晶显示单元,虽然先进有挑战性,但却极大的增加了成本,对产品的功能设计而言毫无意义,所以最后选择了LED数码管作为显示单元。在于上位机相连模块,采用了MAX485收发器芯片,可实现多片并联并通过MAX232与上位机通讯,节省了通讯资源和上位机的利用率,故我选择它。

第二章硬件电路设计

2.1总硬件电路设计

在智能电压表的设计中主要包括硬件、软件、及仪表工艺三方面的问题。硬件方面采用了桥式整流及N式滤波环节,A/D转换芯片TLC1549与单片机配合完成A/D转换的工作。选用MCS-51系列A T80S51芯片进行数据处理。四块八段LED进行显示。MAX485作为电平转换芯片,用于通信部分的设计。

2.2 A T89S51单片机简介

2.2.1 芯片特点

说到A T89S51单片机就不得不说他的原形A T89C51单片机。A T89C51是一种带4K 字节闪烁可编程可擦除只读存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用A TMEL 高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,A TMEL的A T89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

其特点如下:

· 8031CPU与MCS-51 兼容

· 4K字节可编程FLASH存储器(寿命:1000写/擦循环)

·全静态工作:0Hz-24KHz

·三级程序存储器保密锁定

· 128*8位内部RAM

· 32条可编程I/O线

·两个16位定时器/计数器

· 6个中断源

·可编程串行通道

·低功耗的闲置和掉电模式

·片内振荡器和时钟电路

不过在市场化方面,89C51受到了PIC单片机阵营的挑战,89C51最致命的缺陷在于不支持ISP(在线更新程序)功能,必须加上ISP功能等新功能才能更好延续MCS-51的传奇。89S51就是在这样的背景下取代89C51的,现在,89S51目前已经成为了实际应用市场上新的宠儿,89S51在工艺上进行了改进,89S51采用0.35新工艺,成本降低,而且将功能提升,增加了竞争力。89SXX可以像下兼容89CXX等51系列芯片。同时A TMEL不再接受89CXX的定单,大家在市场上见到的89C51实际都是A TMEL前期生产的巨量库存而以。

89S51相对于89C51增加的新功能包括:

-- 新增加很多功能,性能有了较大提升;

-- ISP在线编程功能,这个功能的优势在于改写单片机存储器内的程序不需要把芯片从工作环境中剥离。是一个强大易用的功能。

-- 工作频率为33MHz,大家都知道89C51的极限工作频率只有24M,就是说S51具有更高工作频率,从而具有了更快的计算速度。

-- 具有双工UART串行通道。

-- 内部集成看门狗计时器,不再需要像89C51那样外接看门狗计时器单元电路。

-- 双数据指示器。

-- 电源关闭标识。

-- 全新的加密算法,这使得对于89S51的解密变为不可能,程序的保密性大大加强,这样就可以有效的保护知识产权不被侵犯。

-- 兼容性方面:向下完全兼容51全部字系列产品。比如8051、89C51等等早期MCS-51兼容产品。在89c51上一样可以照常运行,这就是所谓的向下兼容。

2.2.2 芯片管脚介绍

我所采用的MCS-51是标准的40引脚双列直插式集成电路芯片,引脚分布请参照单片机引脚图2-2-1。

图2-1 单片机引脚图

引脚功能:

MCS-51是标准的40引脚双列直插式集成电路芯片,引脚分布请参照以上单片机引脚图:

VCC:供电电压。

GND:接地。

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

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL 门电流。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口将输出电流(ILL)这是由于上拉的缘故。

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

口管脚备选功能

P3.0 RXD(串行输入口)

P3.1 TXD(串行输出口)

P3.2 /INT0(外部中断0)

P3.3 /INT1(外部中断1)

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

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

P3.6 /WR(外部数据存储器写选通)

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

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

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

/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两

次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

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

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

2.3电压信号采样

2.3.1 设计原理简介

我所设计的电压信号采样模块中,被测电压信号经过电压互感器,幅值降低1000倍,再由桥式线性整流,整流后的脉动直流经∏型滤波电路滤波得到平直的直流信号,送到TLC1549的电压输入端。图2-2为采样部分的原理图。

图2-2 采样部分的原理图

2.3.2 精密电压互感器SPT205B

本设计电压采集部分采用电压互感器进行降压处理,采用精密电压互感器SPT205B,它使用了精密小巧的PCB板焊接安装,高隔离度耐冲击的全树脂密封。性能指标如下表2-1

性能指标:

表2-1精密电压互感器SPT205B性能指标表

10mA任选,输入/输出电流为3:1,一般额定输入电流为3mA,额定输出则为1mA。用户使用时需要将电压信号变为电流信号,初级直接串联一个电阻使输入电压信号被限流变换成电流信号。次级并联一个电阻使输出电流信号变换成电压信号,这样能得到线性度优于0.1%的输出电压信号。输出电压最大8伏。例如,输入120V,串联30K的电阻,输出3.5V,并联2.625K的电阻。

设原边电压为U1,副边为U2,公式如下

U2×3R1=U1×R2 (3-1)SPT205B的相移和次级回路电阻大小成正比,负载电阻为1K时,补偿后可使相移小于10′。要求得到相同输出电压,增大输入额定电流,可减小负载电阻,从而减小相移。线性范围为、0~10MA,额定输入(不考虑相移)最大负载为8000Ω。额定输入/输出为3mA/1mA,非线性度<1%。尺寸结构图如下2-3

图2-3 尺寸结构图

交流互感器部分电路图如下2-4

图2-4 交流互感器部分电路图

2.4 A/D转换电路

本电路设计A/D转换部分主要核心部分就是我精选的高性价比的A/D转换芯片TLC 1549 ,以下会详细介绍

2.4.1 A/D转换芯片介绍

TLC1549是TI工公司生产的10位逐次逼近模数转换器,该器件具有两个数字输入端和一个3态输出端,它们提供与微处理器串行端口的3线接口。具备自动采样保持功能,采取差分基准电压高阻输入,可按比例量程校准转换范围,实现低误差的转换。

TLC1549的性能特点如下:

10位分辨率A/D转换器;

内在的采样和保持;

总不可调整误差±1LSB MAX.

片内系统时钟;

CMOS工艺。

TLC 1549的极限参数如下:

电源电压范围:-0.5V至6.5V;

输入电压范围:-0.3V至Vcc+0.3V;

输出电压范围:-0.3V至Vcc+0.3V;

正基准电压:Vcc+0.lV;

负基准电压:-0.1V;

峰值输入电流:±20mA;

峰值总输入电流:±30mA。

TLC1549的引脚功能如下:

TLC1549有D,JG,P,FK等封装形式,其P封装的引脚排列如图2-5所示。其中CS位芯片选择端,低电平有效;ANALOG IN为模拟信号输入端,DA TA OUT为转换结果输出端,在时钟信号的作用下,前次转换结果以串行方式依次由该引脚送出;I/O CLOCK为输入/输出时钟;REF+为基准电压的高端值(通常为Vcc)加至该引脚,最大输入电压范围加至REF+和REF-的电压差决定;REF-为基准电压的低端值(通常为地)加至该引脚;Vcc为正电源电压。

图2-5 TLC1549引脚排列

TLC1549的工作原理如下:

在芯片选择CS 无效情况下,I/0 CLOCK 被禁止且DATA OUT 处于高阻状态。当串行接口把CS 拉至有效时,转换时序开始,允许I/0 CLOCK 工作并使DATAOUT 脱离高阻状态。串行接口把输入/输出时钟序列提供给1/0 CLOCK ,并从DATA OUT 接收前次转换结果。I/0 CLOCK 从主机串行接口接收长度在10和16个时钟之间的输人序列。开始10个1/0时钟提供采样模拟输入的控制时序。

在CS 的下降沿,前次转换的MSB 出现在DATA OUT 端。10位数据通过DATA OUT 被发送到主机串行接口。为了开始转换,最少需要10个时钟脉冲。如果I/0 CLOCK 传送大于10个时钟长度,那么在第

10个时钟的下降沿,内部逻辑把DATA OUT 拉至低电平以确保其余位的值为零。根据I/0 CLOCK 的速度和CS 的操作,TLC1549有6种基本的串行接口定时方式,图2-6所示为方式1的时序图。

图2-6 TLC1549方式1的时序图

TLC1549具有转换误差小,与单片机接口简单的特点,可方便应用于测控仪表、工业现场检测等场合。目前,利用TLC1549构成的温度检测控制器已经应用到某宾馆的供热系统中,长期运行结果表明,该系统控制精度高、可靠性好、极大节约了人力资源。 2.4.2 TLC1549与单片机的连接

本设计采用TLC1549与单片机AT89S51相连实现电信号的转换与采集,连接图如下图2-7

模拟信号输入

图2-7 TLC1549与单片机A T89S51的连接图

2.5 显示单元

本设计显示单元由显示驱动器驱动四个LED数码管组成,具有简单实惠,性价比高的特点。现在随着芯片集成技术的发展,使得许多仪器越来越微型化,功能也更强大,对人机交互的要求也越来越高。其中应用非常广泛的一种方法就是LED的对外显示。美国MAXIM公司生产的串行输入/输出共阴极显示驱动器系列芯片,以其功能强大,编程简单,控制可靠,可广泛用于工业控制器等力一面的数码显示驱动,比较成熟的应用即为与单片机的结合。但是,在实际使用的过程中,单片机的串行发送/接收常常被占用掉,去实现其他的数据交换。如MCS一51系列的8031单片机,其内部有一个可编程全双工串行通信接口,他有4种工作方式,主要用于外接移位寄存器,以扩展I/0电路,或者用于双机通信以及构成分布多计算机系统;而与此同时,部分接口却并没有完全加以利用。由此就必然存在着井u与M AX7219的通信及综合有效利用硬件资源的问题。

2.5.1 MAX7219芯片的介绍

主要特性如下:

MAX7219芯片可直接驱动最多8b7段数字LED显示器,或64个LED和条形图显示器。该芯片的位选力方式独具特色,他允许用户选择多种译码力一式译码选位,而且每个显示位都能个别寻址和刷新而小需要重写其他的显示位。这使得软件编程十分简单且灵活。另外,他具有数字和模拟亮度控制以及与MOTOROLA SPI, QSPI 及MA TIONAL MICROWIRE串行口相兼容等特点,在实际仪表仪器设计中具有较强的实用性。

2.5.2 引脚说明

该芯片采用24脚DIP和SO封装,工作电压4. 0~5.5 V .最大功耗1.1W

实物封装如图2-8所示。

图2-8 MAX7219芯片实物封装图

引脚说明如下所示:

名称功能说明:

DIN 串行数抓输入端。在CLK的上升沿数据被锁入内部16 b移位寄存器

DIG0~DIG7 8 b Led位选线从共阴极Led中吸入电流

GND 地线(两个GND必须接在一起)

LOAD锁入输入的数据。在LoaD的上升沿最后的16 b串行数据被锁入

CLK 时钟输入,最高时钟频率为10 M HZ在CLK的上升

降沿数据被锁入。在CLK的下降延数据从D-OUT脚被输出

SEGA

SEGG 7段驱动和小数点驱动

ISET通过电阻与V+相连设置峰值段电流

V+电源电压+5V

D-OUT 串行数据输出,输入到DIN的数据在1. 5个时钟周期后在D -OUT脚发出该脚用于级联扩展。

2.5.3 工作原理

串行数据是以16b。数据包的形式从DIN脚串行输入,在CLK的每一个上升沿一位一位地诸位送入芯片内部16b移位寄存器,而小管LOAD脚的状态如何。但LOAD 脚必须在第16个CLK上升沿出现的同时或之后但在下一个CLK上升沿之前变为高电平,否则移入的数据将丢失。同时,在新数据被接收以前,由片内结构电路进行刷新,完成数据的保存和显示。工作时序图如图2-9所示

图2-9 MAX7219芯片工作时序图

2.5.4 显示单元与单片机连接电路

MAX7219与51单片机的连接形式有2种,一种是将MAX7219的3个输入端DIN, CLK和L OAD与51单片机的任意3个端口连接;一种则是直接与51单片机的串行接口相连。本设计采用第一种方法。与单片机任意3个端口连接的方式的

接线电路图如下2-10。

图2-10 MAX7219与51单片机的接线电路

2.6 通信接口硬件设计

在工业自动控制、智能仪器仪表中,单片机的应用越来越广泛,随着应用范围的扩大以及根据解决问题的需要,对某些数据要做较复杂的处理,或是需要对前沿单片机、现场电器进行远程控制,单片机与上位机之间实现通信就显得尤为重要。

2.6.1 数据通信基础

数据通信方式有两种,即并行数据通信和串行数据通信。并行数据通信是指数据的各位同时进行发送或接收传送的通信方式,其优点是传递速度快;缺点是数据有多少位,就需要多少根传送线。串行数据通信是指通信的发送方和接收方之间数据信息的传输是在单根数据线上,以每次一个二进制位一位一位顺序传送,它的突出优点是只需一对传送线进行传送信息,其成本低,适用于远距离通信。串行通信方式和通信制式的不同,其通信的硬件设计也存在较大的区别,下面我们着重介绍一下串行通信的分类和通信制式。

1.串行通信的分类

按照串行数据的同步方式,串行通信可以分为同步通信和异步通信两类。

(1)异步通信

异步通信是一种利用字符的再同步技术的通信方式。在异步通信中,数据通常是以字符(或字节)为单位组成字符帧传送的。字符帧由发送端一帧一帧的发送,通过传输线为接收设备一帧一帧地接收。发送端可以有各自的时钟来控制数据的发送和接收,这两个时钟彼此独立,互不同步。

(2)同步通信

同步通信是一种连纯串行传输数据的通信方式,一次通信只能传送一帧信息,并按照软件设别同步字符来实现数据的发送和接收。

在同步通信中,同步字符可以采用统一标准格式,也可由用户约定。数据的传输速率较高,但同步通信要求发送时钟和接收时钟保持严格同步,在硬件的实现上比较复杂,系统成本高。

因此在本设计中选择串行异步通信方式。

2.串行通信的制式

在串行通信中,数据是在两个站之间发送的。按照数据传送方向,串行通信可分为半双工和全双工两种制式。

(1)半双工(Half Duplex )

在半双工方式下,A站和B站之间只有一个通信回路,故数据要么由A站发送而为B站接收,

要么由B站发送为A站接收。因此,A, B两站之间只要一条信号线和一条接地线,如图所示。

(2)全双工(Full Duplex)

在全双「方式下,A站和B站之间有两个独立的通信回路,两站都可以同时发送和接收数据。因此,在全双工方式下的A, B两站之间至少需要三条传输线,分别用于发送、接收、信号地。

半双工配置是一对单向配置,它要求两端的通信设备都具有完整和独立的发送和接收能力。但在同一时刻一方只能发或收。本设计采用半双工方式来实现下位机(MCU)和上位机(PC)间的通信。

2.6.2 RS-232标准接口总线

在实现计算机与计算机、计算机与外设间的串行通信时,通常采用标准的通信接口,只有选择好标准总线接口,才能很方便地把各种计算机、外部设备、测量仪器等有机地

连接起来,进行串行通信。

所谓标准通信接口,就是明确定义若干信号线,使接口电路标准化、通用化,借助串行通信标准接口,不同类型的数据通信设备可以很容易实现它们之间的串行通信连接,常用的标准异步串行通信接口有以下几类:

1. 20mA电流环;

https://www.360docs.net/doc/2219242396.html,B通用接口:

3. RS-232C;

4. RS-422,RS-423和RS-485。

20mA电流环是一种美国电子工业协会(EIA)未经正式颁布的非标准串行接口电路,它具有简单、对电器噪声不敏感的优点,但由于PC机中的多功能卡上没有预留20mA 电流环的器件,所以为了避免另作硬件的麻烦,节约系统成本,不采用此接口电路:USB 通用接口是最近提出的外部输入/输出接口的新规格,这种接口支持热插拔,是今后发展的总趋势,但对于本应用系统来说,它的价格不菲,而且实现起来将提高系统硬件的复杂性,甚至需要开发USB器件的驱动程序,提高了系统成本,加大了开发难度。RS-232C 接口电路是最常用的接口之一,它已经被内置于每一台PC机中,而且也被内置于多种类型的电脑和与它们相连的设备中,它是实现通信的最简便易行的方法,虽然为了提高数据传输速率和通信距离,又公布了RS-422, RS-423和RS-485接口,它们都是与RS-232兼容而制定的,由于一般PC机内部只有RS-232C接口,如果选用RS-422, RS-423或RS-485接口实现与PC机通信,就需增加一个RS-232-485转换器,鉴于本应用系统为试验阶段,选用实现通信最方便的RS-232串行通行接口,不仅能够达到预先通信的日的,而且线路简单易行。RS-232C标准接口总线是由美国电子工业协会(EIA)正式公布的,在异步串行通信中应用最广的标准总线,它的全称是“使用二进制进行交换的数据终端设备(DTE)和数据通信设备(DEC)之间的接口”。计算机、外设、显示终端等都属于数据终端设备,而调制解调器则是数据通信设备。它包括了按位串行传输的电气和机械方面的规定,适用于短距离或带调制解调器的通信场合,这种标准接口总线最高的数据速率为19. 2kb/s "RS-232C”中的RS是Recommended Standard的缩写,232是标识符,C表示此标准修改了三次。为了保证二进制数据能够正确传送,设备控制准确完成,有必要使所用的信号电平保持一致,为了满足此要求,RS-232C标准规定了数据和控制信号的电压范围,由于RS-232C是在TTL集成电路之前研制的,所以它的电平不是+5V 和地,RS-232标准中规定:信号源点的逻辑“0"(空号)电平范围为+5V~+15V,逻辑1 (传号)电平范围为-5V~15V;目的点的逻辑“0”为+3V~+15V,逻辑“1”为-3V~-15V。通常,RS-232总线逻辑电平采用+12V表示“0",-12V表示“1", RS-232标准定义了25根引线,但在实际应用中,使用其中多少信号并无拘束非常灵活,在本设计中,只需使用串行输入RXD,串行输出TXD和地线GND来实现通信功能。

2.6.3 芯片MAX485介绍

引脚图如下2-12

单片机课程设计-数字电压表

目录 1 引言 (1) 2设计原理及要求 (2) 2.1数字电压表的实现原理 (2) 2.2数字电压表的设计要求 (2) 3软件仿真电路设计 (3) 3.1设计思路 (3) 3.2仿真电路图 (3) 3.3设计过程 (3) 3.4 AT89C51的功能介绍 (4) 3.4.1简单概述 (4) 3.4.2主要功能特性 (5) 3.4.3 AT89C51的引脚介绍 (5) 3.5 ADC0808的引脚及功能介绍 (7) 3.5.1芯片概述 (7) 3.5.2 引脚简介 (7) 3.5.3 ADC0808的转换原理 (7) 3.6 74LS373芯片的引脚及功能 (8) 3.6.1芯片概述 (8) 3.6.2引脚介绍 (8) 3.7 LED数码管的控制显示 (8) 3.7.1 LED数码管的模型 (8) 3.7.2 LED数码管的接口简介 (9) 4系统软件程序的设计 (10) 4.1 主程序 (10) 4.2 A/D转换子程序 (10) 4.3 中断显示程序 (12) 5电压表的调试及性能分析 (13) 5.1 调试与测试 (13) 5.2 性能分析 (13) 6电路仿真图 (14) 7总结 (15) 参考文献 (16)

附录1 源程序 (17) 附录2 仿真原理电路 (23)

1 引言 随着微电子技术的不断发展,微处理器芯片的集成程度越来越高,单片机已可以在一块芯片上同时集成CPU、存储器、定时器/计数电路,这就很容易将计算机技术与测量控制技术结合,组成智能化测量控制系统。 数字电压表(DigitalVoltmeter)简称DVM,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。与此同时,由DVM扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭新水平。本章重点介绍单片机A/D 转换器以及由它们构成的基于单片机的数字电压表的工作原目前,由各种单片A/D 转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出强大的生命力理。 本设计AT89C51单片机的一种电压测量电路,该电路采用ADC0808一种基于A/D转换电路,测量围直流0~5V 的4路输入电压值,并在四位LED数码管上显示或单路选择显示。测量最小分辨率为0.019V,测量误差约为正负0.02V。

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

单片机原理及系统课程设计 专业:电气工程及其自动化 班级: 姓名: 学号: 指导教师: 兰州交通大学自动化与电气工程学院 2010 年 3 月 7 日

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

图3.2系统原理图4软件设计

5.系统调试及仿真结果 6.总结 两周的课程设计结束了,在这过程中,我学到了很多东西。首先,我学会了单片机设计的基本过程有哪些,每一过程有哪些基本的步骤,怎样通过查资料去完成这每一步。其次我巩固了上学期所学的一些单片机知识,从而加深了对ADC0809芯片的功能的了解。在编程过程中,遇到了许多困难,通过与同学之间的交流和咨询,最后解决了这些困难。所谓实践出真知,学到的东西只有运用到实践当中,才能真正体会到知识的力量。最后,通过这次课程设计,让我明白了想法和实践还是有差距的,当你真正去做一件事的时候,你会发现你的想法可能不适用,随时都需要调整,另外扎实的理论知识也是完成设计任何设计必不可少的要素,一切想法离开了理论知识都是空想。 参考文献 [1]彭为,黄科,雷道仲.单片机典型系统设计实例精讲[M].电子工业出版社.2009:22-54. [2] 谭浩强.C程序设计(第三版)[M].清华大学出版社.2009:32-46. [3] 王思明,张金敏,张鑫等.单片机原理及应用系统设计(第一版)[M].科学出版社.2012:70-292.

附录A源程序代码#include #include #define uchar unsigned char sbit p21=P2^1; sbit p22=P2^2; sbit p23=P2^3; sbit EOC=P3^1; sbit OE=P3^0; sbit ST=P3^2; sbit p34=P3^4; sbit p35=P3^5; sbit p36=P3^6;

(完整版)单片机技术毕业课程设计说明书范文

郑州工业应用技术学院课程设计说明书 题目: 姓名: 院(系): 专业班级: 学号: 指导教师: 成绩:

时间:年月日至年月日

郑州工业应用技术学院 课程设计任务书 题目: 电子秒表设计 专业、班级学号姓名 主要内容、基本要求、主要参考资料等: 主要内容: 利用单片机设计一个电子秒表,完成四位显示××.××秒,并具备开始计时、暂停、清零等功能。 基本要求: 1.利用单片机设计一个电子秒表,完成四位显示××.××秒,并设定按钮完成开始计时、暂停、清零等功能。 2.利用proteus软件完成设计电路和仿真; 3.掌握定时器的使用和数码管显示的方法; 4.通过此次设计将单片机软硬件结合起来对程序进行编辑、校验,锻炼实践能力和理论联系实际的能力。 主要参考资料: [1]李全利,单片机原理及接口技术[M],高等教育出版社 [2]王文杰,单片机应用技术[M],冶金工业出版社

[3]朱清慧,PROTEUS教程——电子线路设计、制版与仿真[M],清华大学出版社 [4]单片机实验指导书,天煌教仪 [5]彭伟,单片机C语言程序设计实训100例[M],电子工业出版社 完成期限: 指导教师签名: 课程负责人签名: 年月日 目录 1.引言 (1) 2.方案设计与论证 (3) 2.1 直流调速系统 (3) 2.1 检测系统 (4) 2.3显示电路 (9) 2.4系统原理图 (9) 3.硬件设计 (10) 3.1 80C51单片机硬件结构 (10) 3.2 最小应用系统设计 (11)

3.3前向通道设计 (12) 3.4后向通道设计 (15) 3.5显示电路设计 (17) 4.软件设计 (20) 4.1主程序设计 (20) 4.2显示子程序设计 (24) 4.3避障子程序设计 (25) 4.4软件抗干扰技术 (26) 4.5“看门狗”技术 (28) 4.6可编程逻辑器件 (29) 5.测试数据、测试结果分析 (30) 6.结论 (31) 致谢 (31) 参考文献 (32) 附录A 程序清单 (33) 附录B 硬件原理图 (41)

单片机课程设计数字电压表

单片机课程设计 ——电压表的设计 学院:信息工程学院 专业:电子信息科学与技术 班级:2011150 学号:201115002 姓名:王冬冬 同组同学:凡俊兴 201115001

目录 1 引言 (1) 2设计原理及要求 (2) 2.1数字电压表的实现原理 (2) 2.2数字电压表的设计要求 (2) 3软件仿真电路设计 (2) 3.1设计思路 (2) 3.2仿真电路图 (3) 3.3设计过程 (3) 3.4 AT89C51的功能介绍 (4) 3.4.1简单概述 (4) 3.4.2主要功能特性 (5) 3.4.3 AT89C51的引脚介绍 (5) 3.5 ADC0809的引脚及功能介绍 (7) 3.5.1芯片概述 (7) 3.5.2 引脚简介 (8) 3.5.3 ADC0809的转换原理 (8) 3.6 74LS373芯片的引脚及功能 (8) 3.6.1芯片概述 (8) 3.6.2引脚介绍 (9) 3.7 LED数码管的控制显示 (9) 3.7.1 LED数码管的模型 (9)

LED数码管模型如图3-6所示。 (9) 3.7.2 LED数码管的接口简介 (9) 4系统软件程序的设计 (9) 4.1 主程序 (10) 4.2 A/D转换子程序 (11) 4.3 中断显示程序 (12) 5使用说明与调试结果 (13) 6总结 (13) 参考文献 (14) 附录1 源程序 (15) 附录2原理电路 (19)

1 引言 在电量的测量中,电压、电流和频率是最基本的三个被测量,其中电压量的测量最为经常。而且随着电子技术的发展,更是经常需要测量高精度的电压,所以数字电压表就成为一种必不可少的测量仪器。数字电压表简称DVM,它是采用数字化测量技术,把连续的模拟量转换成不连续、离散的数字形式并加以显示的仪表。由于数字式仪器具有读数准确方便、精度高、误差小、测量速度快等特而得到广泛应用[1]。 传统的指针式刻度电压表功能单一,进度低,容易引起视差和视觉疲劳,因而不能满足数字化时代的需要。采用单片机的数字电压表,将连续的模拟量如直流电压转换成不连续的离散的数字形式并加以显示,从而精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC实时通信。数字电压表是诸多数字化仪表的核心与基础[2]。以数字电压表为核心,可以扩展成各种通用数字仪表、专用数字仪表及各种非电量的数字化仪表。目前,由各种单片机和A/D转换器构成的数字电压表作全面深入的了解是很有必要的。 最近的几十年来,随着半导体技术、集成电路(IC)和微处理器技术的发展,数字电路和数字化测量技术也有了巨大的进步,从而促使了数字电压表的快速发展,并不断出现新的类型[4]。数字电压表从1952年问世以来,经历了不断改进的过程,从最早采用继电器、电子管和形式发展到了现在的全固态化、集成化(IC 化),另一方面,精度也从0.01%-0.005%。 目前,数字电压表的内部核心部件是A/D转换器,转换的精度很大程度上影响着数字电压表的准确度,因而,以后数字电压表的发展就着眼在高精度和低成本这两个方面[3]。 本文是以简易数字直流电压表的设计为研究内容,本系统主要包括三大模块:转换模块、数据处理模块及显示模块。其中,A/D转换采用ADC0808对输入的模拟信号进行转换,控制核心AT89C51再对转换的结果进行运算处理,最后驱动输出装置LED显示数字电压信号

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

1.1数字电压表介绍 数字电压表简称DVM,数字电压表基本原理是将输入的模拟电压信号转化为数字信号,再进行输出显示。而A/D转换器的作用是将连续变化的模拟信号量转化为离散的数字信号,器基本结构是由采样保持,量化,编码等几部分组成。因此AD转换是此次设计的核心元件。输入的模拟量经过AD转换器转换,再由驱动器驱动显示器输出,便得到测量的数字电压。 本次自己的设计作品从各个角度分析了AD转换器组成的数字电压表的设计过程及各部分电路的组成及原理,并且分析了数模转换进而使系统运行起来的原理及方法。通过自己的实践提高了动手能力,也只有亲历亲为才能收获掌握到液晶学过的知识。其实也为建立节约成本的意识有些帮助。本次设计同时也牵涉到了几个问题:精度、位数、速度、还有功耗等不足之处,这些都是要慎重考虑的,这些也是在本次设计中的收获。 1.3 本次设计要求 本次设计的作品要求制作数字电压表的量程为0到10v,由于用到的模数转换芯片是ADC0809,设计系统给的供电电压为+5v,所以能够测量的电压围为-0.25v到5.25v之间,但是一般测量的直流电压围都在这之上,所以采用电阻分压网络,设计的电压测量围是0到25v之间,满足设计要求的最大量程5v的要求。同时设计的精度为小数点后三位,满足要求的两位小数的精度,在不考虑AD芯片的量化误差的前提下,此次设计的精度能够满足一般测量的要求。

2单片机和AD相关知识 2.1 51单片机相关知识 51单片机是对目前所有兼容intel 8031指令系统的单片机的统称。该系列单片机的始祖是intel的8031单片机,后来随着技术的发展,成为目前广泛应用的8为单片机之一。单片机是在一块芯片集成了CPU、RAM、ROM、定时器/计数器和多功能I/O口等计算机所需要的基本功能部件的大规模集成电路,又称为MCU。51系列单片机包含以下几个部件: 一个8位CPU;一个片振荡器及时钟电路; 4KB的ROM程序存储器; 一个128B的RAM数据存储器; 寻址64KB外部数据存储器和64KB外部程序存储空间的控制电路; 32条可编程的I/O口线; 两个16位定时/计数器; 一个可编程全双工串行口; 5个中断源、两个优先级嵌套中断结构。51系列单片机如下图: 图1 51单片机引脚图

基于单片机的智能电压表设计

科技学院毕业设计(学士) 1 学科分类号:_ _08_______ 科技学院 本科生毕业设计 题目:基于单片机的智能电压表设计专业年级:电子信息工程

科技学院毕业设计(学士)基于单片机的智能电压表设计 摘要:设计一种基于STC89C52单片机的智能数字电压表。分析了电压测量原理,设计了硬件电路和软件。主要通过STC89C52,AD574模数转换,模拟开关,LM324放大电路来实现量程自动转换,来实现电压表的功能。该表测量电压范围0~500v,输入阻抗大于22M,分辨率为12位。能自动完成量程选择,零点/满量程校正的直流电压表,仅使用两次按键,使用非常方便。数据由数码管显示。 关键词:电压测量;自动换挡;AD574;STC89C52 I

科技学院毕业设计(学士) Microcontroller-based smart voltmeter Abstract:Design AT89C52intelligent digital voltmeter.V oltage measurement principles, the design of hardware and software.On AT89C52Application of AD574 analog to digital conversion,analog switches,the LM324amplifier circuit to achieve the automatic range conversion,to achieve the function of the voltmeter.The meter to measure the voltage range of 0~500v,input impedance is greater than22M,with a resolution of12.Can automatically complete the range selection,zero /full scale calibrated DC voltmeter,use only two buttons,very easy to use.Data by the digital display. Keywords:voltage measurement;automatic shift;Application of AD574; STC89C52 II

单片机课程设计计算器

课程设计说明书 课程设计名称:单片机课程设计 课程设计题目:四位数加法计算器的设计学院名称:电气信息学院 专业班级: 学生学号:

学生姓名: 学生成绩: 指导教师: 课程设计时间:至

格式说明(打印版格式,手写版不做要求) (1)任务书三项的内容用小四号宋体,倍行距。 (2)目录(黑体,四号,居中,中间空四格),内容自动生成,宋体小四号。 (3)章的标题用四号黑体加粗(居中排)。 (4)章以下的标题用小四号宋体加粗(顶格排)。 (5)正文用小四号宋体,倍行距;段落两端对齐,每个段落首行缩进两个字。 (6)图和表中文字用五号宋体,图名和表名分别置于图的下方和表的上方,用五号宋体(居中排)。(7)页眉中的文字采用五号宋体,居中排。页眉统一为:武汉工程大学本科课程设计。 (8)页码:封面、扉页不占页码;目录采用希腊字母Ⅰ、Ⅱ、Ⅲ…排列,正文采用阿拉伯数字1、2、3…排列;页码位于页脚,居中位置。 (9)标题编号应统一,如:第一章,1,,……;论文中的表、图和公式按章编号,如:表、表……;图、图……;公式()、公式()。

课程设计任务书 一、课程设计的任务和基本要求 (一)设计任务(从“单片机课程设计题目”汇总文档中任选1题,根 据所选课题的具体设计要求来填写此栏) 1. 系统通过4x4的矩阵键盘输入数字及运算符。 2. 可以进行4位十进制数以内的加法运算,如果计算结果超过4位十进制数,则屏幕显示E。 3. 可以进行加法以外的计算(乘、除、减)。 4. 创新部分:使用LCD1602液晶显示屏进行显示,有开机欢迎界面,计算数据与结果分两行显示,支持小数运算。 (二)基本要求 1.有硬件结构图、电路图及文字说明; 2.有程序设计的分析、思路说明; 3.有程序流程框图、程序代码及注释说明; 4.完成系统调试(硬件系统可以借助实验装置实现,也可在Proteus 软件中仿真模拟); 5.有程序运行结果的截屏图片。

单片机课程设计报告——数字电压表[1]剖析

数字电压表 单片机课程设计报告 班级: 姓名: 学号: 指导教师: 2011 年3 月29 日

数字电压表电路设计报告 一、题目及设计要求 采用51系列单片机和ADC设计一个数字电压表,输入为0~5V线性模拟信号,输出通过LED显示,要求显示两位小数。 二、主要技术指标 1、数字芯片A/D转换技术 2、单片机控制的数码管显示技术 3、单片机的数据处理技术 三、方案论证及选择 主要设计方框图如下: 1、主控芯片 方案1:选用专用转化芯片INC7107实现电压的测量和实现,用四位数码管显示出最后的转换电压结果。缺点是京都比较低,内部电压转换和控制部分不可控制。优点是价格低廉。 方案2:选用单片机AT89C51和A/D转换芯片ADC0809实现电压的转换和控制,用四位数码管显示出最后的转换电压结果。缺点是价格稍贵;优点是转换京都高,且转换的过程和控制、显示部分可以控制。 基于课程设计的要求和实验室能提供的芯片,我选用了:方案2。 2、显示部分 方案1:选用4个单体的共阴极数码管。优点是价格比较便宜;缺点是焊接时比较麻烦,容易出错。 方案2:选用一个四联的共阴极数码管,外加四个三极管驱动。这个电路几乎没有缺点;优点是便于控制,价格低廉,焊接简单。 基于课程设计的要求和实验室所能提供的仪器,我选用了:方案2。

四、电路设计原理 模拟电压经过档位切换到不同的分压电路筛减后,经隔离干扰送到A/D 转换器进行A/D 转换。然后送到单片机中进行数据处理。处理后的数据送到LED 中显示。同时通过串行通讯与上位通信。硬件电路及软件程序。而硬件电路又大体可分为A/D 转换电路、LED 显示电路,各部分电路的设计及原理将会在硬件电路设计部分详细介绍;程序的设计使用汇编语言编程,利用Keil 和PROTEUS 软件对其编译和仿真。 一般I/O 接口芯片的驱动能力是很有限的,在LED 显示器接口电路中,输出口所能提供的驱动电流一般是不够的尤其是设计中需要用到多位LED ,此时就需要增加LED 驱动电路。驱动电路有多种,常用的是TTL 或MOS 集成电路驱动器,在本设计中采用了74LS244驱动电路。 本实验采用AT89C51单片机芯片配合ADC0808模/数转换芯片构成一个简易的数字电压表,原理电路如图1所示。该电路通过ADC0808芯片采样输入口IN0输入的0~5 V 的模拟量电压,经过模/数转换后,产生相应的数字量经过其输出通道 D0~D7传送给AT89C51芯片的P0口。AT89C51负责把接收到的数字量经过数据处理,产生正确的7段数码管的显示段码,并通过其P1口传送给数码管。同时它还通过其三位I/O 口P1.0、P1.1、P1.2、P1.3产生位选信号,控制数码管的亮灭。另外,AT89C51还控制着ADC0808的工作。其ALE 管脚为ADC0808提供了1MHz 工作的时钟脉冲;P2.4控制ADC0808的地址锁存端 (ALE);P2.1控制ADC0808的启动端(START);P2.3控制ADC0808的输出允许端(OE);P2.0控制ADC0808的转换结束信号(EOC)。 电路原理图如下所示,三个地址位ADDA,ADDB,ADDC 均接高电平+5V 电压,因而所需测量的外部电压可由ADC0808的IN7端口输入。由于ADC0808

基于单片机的数字电压表

基于单片机的数字电压表 摘要:本文介绍一种基于89S52单片机的一种电压测量电路,该电路采用ICL7135高精度、双积分A/D转换电路,测量范围直流0-±2000伏,使用LCD液晶模块显示,可以与PC机进行串行通信。正文着重给出了软硬件系统的各部分电路,介绍了双积分电路的原理,89S52的特点,ICL7135的功能和应用,LCD1601的功能和应用。该电路设计新颖、功能强大、可扩展性强。 关键词:电压测量,ICL7135,双积分A/D转换器,1601液晶模块 Abstract: The introduction of a cost-based 89S52 MCU a voltage measurement circuits, the circuits used ICL7135 high-precision, dual-scoring A/D conversion circuits, measuring scope DC 0-2000 volts, the use of LCD that can be carried out with a PC serial communications. The paper focuses on providing a software and hardware system components circuit, introduced double integral circuit theory, 89S52 features ICL7135 functions and applications, LCD1601 functions and applications. the circuit design innovative, powerful, can be expansionary strong. Key Words: Digital Voltmeter ICL7135 LCD1601 89S52 1前言 数字电压表(Digital Voltmeter)简称DVM,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。传统的指针式电压表功能单一、精度低,不能满足数字化时代的需求,采用单片机的数字电压表,由精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC进行实时通信。目前,由各种单片A/D 转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出强大的生命力。与此同时,由DVM扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭新水平。本章重点介绍单片A/D 转换器以及由它们构成的基于单片机的数字电压表的工作原理。

基于51单片机的电压表

电路原理图程序清单: //*******************************头文件及宏定义************************** * #include #define TIME0H 0x3C #define TIME0L 0xB0 #define uchar unsigned char #define uint unsigned int //******************端口设置********** #define OUTPORT P2 //ADC0809数据接口

#define LCDPORT P0 //LCD数据接口sbit SET=P1^3; //定义调整键sbit DEC=P1^4; //定义减少键sbit ADD=P1^5; //定义增加键uchar x=0; //计数器 sbit LCDRS=P3^5;// 寄存器选择信号sbit LCDRW=P3^6; //读写信号sbit LCDE=P3^7; //片选信号sbit LED1=P1^0; //下限提示灯sbit LED2=P1^1; //上限提示灯sbit START=P3^4;//ATART,ALE接口。0->1->0:启动AD转换。sbit EOC=P3^3; //转换完毕由0变1. sbit alarmflag=P1^2; sbit CLK=P3^2; //********************************全局变量***************************** unsigned int shangxian=300; //上限报警温度,默认值为38 unsigned int xiaxian=200; //下限报警温度,默认值为38 unsigned char uc_Clock=0;//定时器0中断计数bit b_DATransform=0; //启动adc0809转换时间到标志,为1是启动A/D转换bit lowflag; //下限标志bit highflag; //上限标志uchar set_st=0; //状态标志bit shanshuo_st; //闪烁间隔标志//******************************函数声明***************************** void vDelay(); // 延时函数 void vWriteCMD(unsigned char ucCommand);//把一个命令写入LCD函数void vWriteData(unsigned char ucData); //把一个数据写入LCD函数void vShowOneChar(unsigned char ucChar);//把一个字符写入LCD函数void vShowChar(unsigned char ucaChar[]); //把一组字符写入LCD函数void vShowVoltage(unsigned int uiNumber); //显示函数void vdInitialize(); //LCD初始化函数void Time0(); // 定时器0中断函数unsigned int uiADTransform(); // AD转换函数//*****外部中断0服务程序***** void int0(void) interrupt 0 { EX0=0; //关外部中断0 if(DEC==0&&set_st==1) { vDelay(); do{} while(DEC==0&&set_st==1); shangxian=shangxian-5;

智能电动百叶窗单片机课程设计说明书

智能电动百叶窗单片机课程设计说明书

单片机课程设计 ——智能电动百叶窗 姓名: 班级:机101-3班 专业:机械设计制造及其自动化 学号: 2010*****1310 指导教师: ****** 完成时间: 2013年6月5日

目录 一、课程设计任务书--------------------------------- - 4 - (一)课程设计题目:智能电动百叶窗................................. - 4 - (二)任务详情: .................................................. - 4 -二、设计项目简介 ---------------------------------- - 4 - (一)基本要求: .................................................. - 4 - (二)基本工作原理: .............................................. - 5 - (三)各元器件资料: .............................................. - 5 - 1.AT89C51单片机------------------------------------------ - 5 - 2.ADC0808------------------------------------------------ - 8 - 3.光敏传感器--------------------------------------------- - 9 - 4.74SEG-MPX4-CA数码管----------------------------------- - 10 - 5.74LS245 驱动------------------------------------------ - 11 - 三、电路原理图 ----------------------------------- - 12 - (一)复位电路 ................................................... - 12 - (二)时钟电路 ................................................... - 12 - (三)数码管显示电路 ............................................. - 12 - (四)电机控制电路 ............................................... - 13 - (五)A/D转换电路................................................ - 15 - (六)总体电路图 ................................................. - 15 - 四、程序框图 ------------------------------------- - 16 - 五、程序清单 ------------------------------------- - 17 - 六、总结 ----------------------------------------- - 19 - 七、参考资料 ------------------------------------- - 20 -

单片机课程设计报告数字电压表

University of South China 单片机课程设计报告 设计课题:基于单片机的数字电压表设计专业班级:电卓103班 学生姓名:李文帅 指导教师:朱卫华 设计时间:2012年1月10日

内容摘要 电压表是测量仪器中不可缺少的设备,目前广泛应用的是采用专用集成电路实现的数字电压表。本系统以8051单片机为核心,以逐次逼近式A/D转换器ADC0809、数码管显示器为主体,设计了一款简易的数字电压表,能够测量0~5V的直流电压,最小分辨率为0.02V。 该设计大体分为以下几个部分,同时,各部分选择使用的主要元器件确定如下: 1、单片机部分。使用常见的8051单片机,同时根据需要设计单片机电路。 2、测量部分。该部分是实验的重点,要求将外部采集的模拟信号转换成数字信号,通过单片机的处理显示在显示器上,该部分决定了数字电压表的精度等主要技术指标。根据需要本设计采用逐次逼近型A∕D转换器ADC0809进行模数转换。 3、数码管显示部分。其中一位为整数部分,其余位小数部分。 索引关键词:8051 模数转换数码管显示

Contents Abstract The voltmeter is indispensable in measuring instruments and equipment, is widely used digital voltmeter ASIC implementation. 8051, successive approximation type A / D converter ADC0809 digital tube display as the main design of a simple digital voltmeter capable of measuring 0 to 5V DC voltage, minimum resolution of 0.02V . The design is divided into several parts, each part of the main components selected for use are determined as follows: 1, microcontroller part. Using a common 8051, according to the need to design a microcontroller circuit. 2, the measurement section. This part is the focus of the experiment, require external acquisition of the analog signal is converted into a digital signal through the microcontroller of the processing and display on the display, the portion determines the main technical indicators such as the precision of the digital voltmeter. According to the needs of the design using successive approximation type A / D converter ADC0809 analog-to-digital conversion. 3, the digital display section. One for the integer part, the remaining bits of the fractional part. Index Keywords: 8051 Analog-to-digital Conversion digital display.

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

引言 数字电压表(Digital Voltmeter)简称DVM,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。传统的指针式电压表功能单一、精度低,不能满足数字化时代的需求,采用单片机的数字电压表,由精度高、抗干扰能力强,可扩展性强、集成方便。目前,由各种单片A/D 转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出强大的生命力。与此同时,由DVM扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭新水平。本论文重点介绍单片A/D 转换器以及由它们构成的基于单片机的数字电压表的工作原理。

1 实训要求 (1)基本要求: ①实现8路直流电压检测 ②测量电压范围0-5V ③显示指定电压通道和电压值 ④用按键切换显示通道 (2)发挥要求 ①测量电压范围为0-25V ②循环显示8路电压 2 实训目的 (1)进一步熟悉和掌握单片机的结构和工作原理; (2)掌握单片机的借口技术及,ADC0809芯片的特性,控制方法; (3)通过这次实训设计,掌握以单片机为核心的电路设计的基本方法和技术;(4)通过实际程序设计和调试,逐步掌握模块化程序设计的方法和调试技术。 3 实训意义 通过完成一个包括电路设计和程序开发的完整过程,使自身了解开发单片机应用系统的全过程,强化巩固所学知识,为以后的学习和工作打下基础。 4 总体实训方案 测量一个0——5V的直流电压,通过输入电路把信号送给AD0809,转换为数字信号再送至89s52单片机,通过其P1口经数码管显示出测量值。 4.1 结构框图 如图1—1所示 图1—1

基于单片机电压表C语言程序

#include #include #define uchar unsigned char #define uint unsigned int sbit dula=P2^6; sbit wela=P2^7; sbit adwr=P3^6; sbit adrd=P3^7; uchar code table[]={ 0x3f,0x06,0x5b,0x4f,0x66,0x6d, 0x7d,0x07,0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71 }; void delayms(uint xms) { uint i,j; for(i=xms;i>0;i--) for(j=110;j>0;j--); } void display (uchar shu1,uchar shu2,uchar shu3,uchar shu4,uchar shu5,uchar shu6) { dula=1; P0=0x80|table[shu1]; dula=0; P0=0xff; wela=1; P0=0x7e; wela=0; delayms(2); dula=1; P0=table[shu2]; dula=0; P0=0xff; wela=1; P0=0x7d; wela=0; delayms(2); dula=1; P0=table[shu3]; dula=0;

P0=0xff; wela=1; P0=0x7b; wela=0; delayms(2); dula=1; P0=table[shu4]; dula=0; P0=0xff; wela=1; P0=0x77; wela=0; delayms(2); dula=1; P0=table[shu5]; dula=0; P0=0xff; wela=1; P0=0x6f; wela=0; delayms(2); dula=1; P0=table[shu6]; dula=0; P0=0xff; wela=1; P0=0x5f; wela=0; delayms(2); } void main() { uchar a,A1,A2,A3,A4,A5,A6,adval; wela=1; P0=0x7f; wela=0; while(1) { adwr=1; _nop_();

单片机的密码锁课程设计说明书

1 引言 随着科技的发展,单片机已不是一个陌生的名词,它的出现是近代计算机技术发展史上的一个重要里程碑,因为单片机的诞生标志着计算机正式形成了通用计算机系统和嵌入式计算机系统两大分支。单片机单芯片的微小体积和低的成本,可广泛地嵌入到如玩具、家用电器、机器人、仪器仪表、汽车电子系统、工业控制单元、办公自动化设备、金融电子系统、舰船、个人信息终端及通讯产品中,成为现代电子系统中最重要的智能化工具。 本文所涉及的是市场占有率最高的是MCS—51系列,因为世界上很多知名的IC生产厂家都生产51兼容的芯片。到目前为止,MCS—51单片机已有数百个品种,还在不断推出功能更强的新产品。 随着科技的发展以及人们生活水平的大幅度提高,特别是近几年国内经济的发展以及科学技术的不断发展,防盗的要求也是与日俱增,同时对使用的便捷性也提出了更高的要求,传统的锁防盗效果已经满足不了现代社会的防盗需求,还存在着需要随身带着钥匙,如果钥匙不慎丢失被他人利用,就有可能使不良之人乘虚而入等诸多弊端.因此近几年一种新型的电子密码锁应运而生.电子密码锁运用电子电路控制机械部分,使两者紧密结合,从而避免了因为机械部分被破坏而导致开锁功能失常.大大增加了密码锁得防盗功能。同时因为电子密码锁不需要携带钥匙,弥补了钥匙极易丢失和仿造的缺陷,方便了锁具的使用,通过单片机的硬件和软件的设计可以不急可以达到开锁方便,而且还可以在别人随意开锁时发出警报。电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的亲呢。电子密码锁的密码保密性高,不易被破解以及它不用用户携带钥匙等等特点,使得它日益被广泛的人群所接受,也逐渐成为人们生活的一种时尚、潮流,它正慢慢的在许多领域无形之中抢占先机替代机械锁。 本设计就是基于单片机的电子密码锁设计方案,根据要求,给出了该单片机密码锁的硬件电路和软件程序,同时给出了单片机型号的选择、硬件设计、软件流程图、单片机存储单元的分配、汇编语言源程序及详细注释等内容。

单片机课程设计 数字电压表设计

《单片机原理及应用》课程设计报告书 课题名称数字电压表设计 名姓 学号 专业

指导教师 机电与控制工程学院月年日 1 任务书 电压表是测量仪器中不可缺少的设备,目前广泛应用的是采用专用集成电路实现的数字电压表。本系统以8051单片机为核心,以逐次逼近式A/D转换器ADC0809、LED显示器为主体,设计了一款简易的数字电压表,能够测量0~5V的直流电压,最小分辨率为0.02V。 该设计大体分为以下几个部分,同时,各部分选择使用的主要元器件确定如下: 1、单片机部分。使用常见的8051单片机,同时根据需要设计单片机电路。 2、测量部分。该部分是实验的重点,要求将外部采集的模拟信号转换成数字信号,通过单片机的处理显示在显示器上,该部分决定了数字电压表的精度等主要技术指标。根据需要本设计采用逐次逼近型A∕D转换器ADC0809进行模数转换。 3、键盘显示部分。利用4×6矩阵键盘的一个按键控制量程的转换,3或4位LED显示。其中一位为整数部分,其余位小数部分。 关键词:8051 模数转换LED显示矩阵键盘 2 目录

1 绪论 (1) 2 方案设计与论证 (2) 3 单元电路设计与参数计算 (3) 4 总原理图及参考程序 (8) 5 结论 (14) 6 心得体会 (15) 参考文献16 (7) 3 1.绪论 数字电压表的基本工作原理是利用A/D转换电路将待测的模拟信号转换成数字信号,通过相应换算后将测试结果以数字形式显示出来的一种电压表。较之于一般的模拟电压表,数字电压表具有精度高、测量准确、读数直观、使用方便等优

点。 电压表的数字化测量,关键在于如何把随时连续变化的模拟量转化成数字量,完成这种转换的电路叫模数转换器(A/D)。数字电压表的核心部件就是A/D转换器,由于各种不同的A/D转换原理构成了各种不同类型的DVM。一般说来,A/D 转换的方式可分为两类:积分式和逐次逼近式。 积分式A/D转换器是先用积分器将输入的模拟电压转换成时间或频率,再将其数字化。根据转化的中间量不同,它又分为U-T(电压-时间)式和U-F(电压-频率)式两种。 逐次逼近式A/D转换器分为比较式和斜坡电压式,根据不同的工作原理,比较式又分为逐次比较式及零平衡式等。斜坡电压式又分为线性斜坡式和阶梯斜坡式两种。 在高精度数字电压表中,常采用由积分式和比较式相结合起来的复合式A/D转换器。本设计以8051单片机为核心,以逐次比较型A/D转换器ADC0809、LED 显示器为主体,构造了一款简易的数字电压表,能够测量1路0~5V直流电压,最小分辨率0.02V。 4 2.方案设计与论证 基于单片机的多路数字电压表电路的基本组成如图3.1所示。

基于单片机的数字电压表制作——(C语言)

基于单片机的数字电压表制作——ADC0832模数转换应用程序(C语言) 主要部件:AT89S51 ADC0832 八段数码管 关键字:ADC0832程序C语言数字电压表 本文所描述的数字电压表是利用ADC0832模数转换芯片完成的。该芯片能将0~5V的模拟电压量转换为0~255级的数字量,所以本文描述的数字电压表的量程为0~5V。 以下是程序部分: 该程序是本人自编的,经测试可用,但不保证程序的可靠性及稳定性。若有转载请标明出处。 如果有同学将本程序烧写到单片机里却不能正常工作的,请注意以下三点: 1、是否将端口重新定义。每个单片机开发板的引脚连接都是不一样的,若不加修改直接把程序烧写到单片机里,那是绝对不能正常工作的。 2、是否正确选择通道值。ADC0832有两个模拟输入端口(也就是我说的通道),你要先弄清楚你用的是那个通道,并在main函数中设置相应的通道值(以CH命名的那个变量)。本程序默认使用0通道,如果0通道不行就改成1通道,反正不是0通道就是1通道。 3、如果你做的电压表在保证电路连接正确且没有以上两点问题的情况下,还是不能正常工作,请将程

序中的“if (adval == test)”这一行删掉。其实这一点我个人也不清楚到底有没有问题。我有两个单片机开发板,其中一个必须要把那一行删掉才能工作。这说明ADC0832读出的前8位与后8位数值不一样(确切的说应该是后8位反转的数值),这有悖于ADC0832的原理。我不知道到底是硬件还是软件出了问题,特此把这种现象标明。若有哪位同学知道其原因的还请多多指教。 /***********************************************************************************/ /*简易数字电压表制作——ADC0832模数转换应用程序(C语言版)*/ /*目标器件:AT89S51 */ /*晶 振:12.000MHZ */ /*编译环境:Keil uVision2 V2.12 */ /***********************************************************************************/ /*********************************包含头文件********************************/ #include #include /*********************************端口定义**********************************/ sbit CS = P3^5; sbit Clk = P3^4; sbit DATI = P3^3; sbit DATO = P3^3; /*******************************定义全局变量********************************/ unsigned char dat = 0x00; //AD值 unsigned char count = 0x00; //定时器计数 unsigned char CH; //通道变量 unsigned char dis[] = {0x00, 0x00, 0x00}; //显示数值 /*******************************共阳LED段码表*******************************/

相关文档
最新文档