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

合集下载

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

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

基于51单片机的直流数字电压表设计概述:直流数字电压表是一种用于测量直流电压的仪器,它通过将电压信号转换为数字形式,并显示在数码管上,实现对电压的准确测量。

本文将介绍基于51单片机的直流数字电压表的设计原理和实现方法。

一、设计原理:1.1 电压信号采集:直流数字电压表的第一步是采集待测电压信号。

常用的采集方法是使用一个分压电路将待测电压降低到合适的范围,再通过运算放大器将其放大到合适的电平。

51单片机的模拟输入引脚可以接受0-5V的模拟电压信号,因此可以直接将放大后的信号接入单片机进行采集。

1.2 模数转换:采集到的模拟电压信号需要经过模数转换(A/D转换)才能被单片机读取和处理。

51单片机内部集成了一个10位的A/D转换器,可以将输入的模拟电压转换为相应的数字量。

通过设置不同的参考电压和采样精度,可以实现对不同电压范围的准确测量。

1.3 数码管显示:经过模数转换后,得到的数字量需要通过数码管进行显示。

51单片机的IO口可以通过控制段选和位选的方式,将数字量转换为相应的数码管显示。

可以根据需要选择常用的七段数码管或者液晶显示屏进行显示。

二、设计实现:2.1 硬件设计:硬件设计包括电路原理图设计和PCB布局设计两个部分。

电路原理图设计主要包括电压采集电路、运算放大器、A/D转换器和数码管驱动电路等部分。

PCB布局设计需要考虑信号的走线和电源的分布,以保证电压信号的准确采集和显示。

在设计过程中,需要注意地线和信号线的分离,以减少干扰。

2.2 软件设计:软件设计主要包括单片机的程序编写和调试。

首先需要编写采集模拟电压信号和进行A/D转换的程序,将转换后的数字量存储在单片机的内部存储器中。

然后编写数码管驱动程序,将存储的数字量转换为相应的数码管显示。

最后,通过按键或者旋转编码器等方式,可以实现对量程和精度的选择。

三、设计优化:3.1 精度优化:为了提高直流数字电压表的测量精度,可以采用更高精度的A/D转换器,增加参考电压的精度,或者通过校准电路对测量误差进行校正。

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

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

基于单片机的数字电压表设计一、引言在电子测量领域中,电压表是一种常用的测量仪器,用于测量电路中的电压值。

传统的模拟电压表由于精度低、读数不便等缺点,逐渐被数字电压表所取代。

数字电压表具有精度高、读数直观、抗干扰能力强等优点,广泛应用于工业自动化、电子设备检测、实验室测量等领域。

本文将介绍一种基于单片机的数字电压表设计方案,详细阐述其硬件电路设计、软件编程实现以及系统性能测试。

二、系统总体设计方案(一)设计要求设计一款基于单片机的数字电压表,能够测量 0 5V 的直流电压,测量精度为 001V,具有实时显示测量结果的功能。

(二)系统组成本数字电压表系统主要由以下几个部分组成:1、传感器模块:用于将输入的电压信号转换为适合单片机处理的电信号。

2、单片机模块:作为系统的核心,负责对传感器采集到的数据进行处理和计算,并控制显示模块显示测量结果。

3、显示模块:用于实时显示测量的电压值。

三、硬件电路设计(一)传感器模块选用 ADC0809 作为模数转换芯片,它具有 8 个模拟输入通道,可以将 0 5V 的模拟电压转换为 8 位数字量输出。

(二)单片机模块选择 AT89C51 单片机作为控制核心,它具有 4K 字节的 Flash 程序存储器和 128 字节的随机存取数据存储器。

(三)显示模块采用液晶显示屏(LCD1602)作为显示器件,它能够清晰地显示数字和字符信息。

四、软件编程实现(一)编程语言选择使用 C 语言进行编程,C 语言具有语法简洁、可移植性强等优点。

(二)主程序流程主程序首先进行系统初始化,包括单片机端口初始化、LCD1602 初始化、ADC0809 初始化等。

然后启动 ADC0809 进行模数转换,读取转换结果并进行数据处理,计算出实际的电压值。

最后将电压值发送到 LCD1602 进行显示。

(三)模数转换子程序ADC0809 的转换过程通过控制其启动转换引脚(START)和读取转换结束引脚(EOC)来实现。

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

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

基于单片机的数字电压表学生姓名系部:专业年级:指导教师:摘要本文介绍基于AT89S52单片机的一种电压测量电路,介绍了双积分电路的原理,AT89S52的特点,ICL7135的功能和应用,LCD1601的功能和应用。

该电路设计新颖、功能强大、可ICL7135高精度、双积分A/D转换电路,测量范围直流0-±2000伏,使用LCD液晶模块显示,可以与PC机进行串行通信。

正文着重给出了软硬件系统的各部分电扩展强关键词:电压测量,ICL7135,双积分A/D转换器,1601液晶模块目录第1章概述 (1)1.1 数字电压表的发展前景. (1)1.2 电路原理图 (2)第2章硬件电路设计 (3)2.1 输入电路设计 (3)2.1.1 衰减电路设计 (3)2.1.2 衰减电路: (3)2.2 转换电路 (4)2.2.1 转化器类型 (4)2.2.2 转换器主要性能: (5)2.2.3 ICL7135芯片简绍 (6)2.3 AT89S52介绍 (8)2.3.1 AT89S52芯片特点 (9)2.3.2 主要引脚功能描述 (9)2.4 显示电路 (12)2.4.1 液晶显示器的分类及原理 (12)2.4.2 LCD-1601介绍 (12)第3章系统软件设计 (14)3.1主程序设计 (14)3.2 中断程序设计 (15)第4章通讯模块设计 (16)4.1 通讯模块电路组成 (16)4.2 通讯模块程序设计 (16)结束语 (18)致谢 (19)附件一电路原理图 (20)附件二部分参考程序 (21)参考文献 (23)第1章概述1.1 数字电压表的发展前景.数字电压表作为数字技术的成功应用,发展相当快。

数字电压表(Digital VoIt Me-ter,DVM),以其功能齐全、精度高、灵敏度高、显示直观等突出优点深受用户欢迎。

特别是以A/D转换器为代表的集成电路为支柱,使DVM向着多功能化、小型化、智能化方向发展。

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

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

基于AT89C51单片机数字电压表的设计题目:基于AT89C51单片机数字电压表的设计目录一、整体设计思路框图及原理图 (4)二、模块分析 (5)1.AT89C51单片机 (5)2.A/D转换 (6)3. .................................................................................. 显示电路 (7)三、软件设计 (5)四、程序清单 (6)五、仿真实验调试 (12)六、总结与体会. (13)七、参考文献 (14)34一、 整体设计思路框图及原理图数字电压表的设计即将连续的模拟电压信号经过A/D 转换器转换成二进制数值,再经由单片机软件编程转换成十进制数值并通过显示屏显示。

按系统实现要求,决定控制系统采用AT89C51单片机,A/D 转换由于仿真软件里的ADC0809元件有问题,这里用ADC0808代替,它和ADC0809区别很小。

采用ADC0808。

数字电压表系统整体框图如下图1所示。

图1 整体框图系统通过软件设置单片机的内部定时器T1产生中断信号。

通过片选选择8路通道中的一路,将该路电压送入ADC0808的EOC 端口产生高电平,同时将ADC0808的OE 端口置为高电平,单片机将转换后结果存到片内RAM 。

系统调出转换显示程序,将转换为二进制的数据在转换成十进制数并输出到LCD 显示电路,将相应电压显示出来。

原理图见附录图7。

二、模块分析1.AT89C51单片机接口分配电路设计如右图2所示:P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。

当P1口的管脚第一次写1时,被定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。

在这里P0口作为输入与输出分别与ADC0808的输出端和LCD显示的输入端相连,且P0外部被阻值为1KΏ图2 单片机接口电路的电阻拉高。

P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

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

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

基于单片机数字电压表设计单片机数字电压表是一种先进的电压测量技术,它可以检测和测量精确的电压值。

近年来,这种技术在电力系统、自动化技术、电子设备等各个领域中得到了广泛的应用。

这种技术不仅提高了测量数据的精确性和可靠性,而且可以满足多种功能要求,有效地提高了工程设计的效率。

单片机数字电压表的原理及组成单片机数字电压表是一种半导体装置,基本原理是用参考电路产生一个参考电压,并使用模数转换技术测试输入电压,然后将输入电压与参考电压比较,最后将比较结果显示在数字显示器上。

单片机数字电压表的结构由电源供应器、测试电路、模数转换技术、控制器和数字显示器组成。

电源供应器的输出电压可以用作参考电压,测试电路将输入电压与参考电压比较,模数转换技术将比较结果转换成数字格式的结果,控制器将数字结果发送给数字显示器,数字显示器将结果显示出来。

单片机数字电压表的优点由于单片机数字电压表具有以下优点,使其在电力系统、自动化技术、电子设备等各个领域中得到了广泛的应用。

首先,单片机数字电压表的测量可靠性比传统的模拟电压表高,能够测量更精确的电压值,从而提高测量准确性。

其次,单片机数字电压表具有超高的灵活性。

它可以通过修改程序在软件上实现功能扩展,从而满足不同的电压测量要求。

第三,单片机数字电压表的显示精度高,同时能够提供连续测量结果,以满足对电压变化的时实判断要求。

第四,单片机数字电压表的体积小,可以完全替代传统的模拟电压表,有利于节约空间和重量。

第五,单片机数字电压表的低功耗,无需额外的外部电源,从而提高工作效率。

单片机数字电压表的应用由于其高质量、精密度和稳定性,单片机数字电压表在电力系统和电子设备中有广泛应用。

电力系统中,单片机数字电压表可用于测量高压过程的开关操作,检测变压器的接线状况,监测电缆引线的断线情况,以及预防接地线等。

在电子设备中,单片机数字电压表可用于监控数字设备的电压变化、测量输入电压的精确度,以及进行自动调节和维护等。

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

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

基于单片机的数字电压表设计数字电压表在电子技术中使用非常广泛,可以用来测量电路中的直流电压、交流电压以及各种信号的幅度等等。

基于单片机的数字电压表实现了数字电压的读取和显示,具有精确、稳定、易操作等特点,下面将介绍基于单片机的数字电压表的设计原理及实现方法。

一、系统结构基于单片机的数字电压表主要是由程序控制模块、模数转换模块和数字显示模块组成。

程序控制模块主要用来完成开机、校准、测试、功能选择等功能;模数转换模块主要将电压信号转换成数字量,供数字显示模块使用;数字显示模块主要将转换后的数字量显示在LCD液晶屏上。

二、硬件设计1.电源电路电源电路主要用来为电路提供稳定的电压和电流,本电路采用稳压电源芯片LM7805实现,稳压芯片输入端连接外部DC12V/1A电源,输出端连接电路板上的整个电路。

2.输入电路输入电路主要用来将被测电源的电压传递给单片机,常规情况下采用分压电路实现。

在本电路中,电阻R1和电容C1为RC滤波电路,起到滤波作用,防止干扰信号的影响;电阻R2是分压电路中的电阻,它根据电压值的不同设置不同的值,以保证被测电压在单片机内部转换过程中不会对单片机产生影响。

3.单片机模块单片机模块是系统的核心部分,本电路中选用STM32F103C8T6单片机实现模数转换和数码管控制,使用C 语言编写程序,通过模拟输入端口读取电压并进行模数转换,将得到的数字使用查表法将其转换为数码管控制脉冲,控制数码管的亮灭实现数字显示。

4.数字显示模块数字显示模块主要由七段数码管、LCD液晶屏幕、导线和电容等器组成,七段数码管用于展示测量到的电压大小,LCD 液晶屏用于展示功能选项、单位等信息。

导线是电路板内部连接线路,电容等器用来平滑电压波动。

三、软件设计1.引脚定义在程序中首先定义STM32F103C8T6单片机内存地址、输入输出引脚和电平状态,其中A0口用来读取被测电压;B0-B7口用来控制七段数码管的亮灭;C0口用来输出PWM,控制风扇的旋转速度;D0口用来控制蜂鸣器的开启和关闭。

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

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

单片机技术课程设计说明书智能数据采集系统基于单片机的数字电压表设计专业电气工程及其自动化姓名何俊班级BMZ电气081学号0861402114指导教师周云龙完成日期2011年6月5日目录基于单片机数字电压表的设计1.概述………………………………………………………………………………………2.数字电压表设计原理图……………………………………………………………………………3.系统硬件设计……………………………………………………………………………3.1硬件流程图…………………………………………………………………………3.2硬件电路图…………………………………………………………………………3.3硬件电路图各组成模块分析………………………………………………………4.系统软件设计……………………………………………………………………………4.1主程序流程图………………………………………………………………………4.2转换结果处理子程序流程图……………………………………………………4.3显示子程序流程图…………………………………………………………………4.4延时子程序流程图…………………………………………………………………5. 综合调试图………………………………………………………………………6. 结束语……………………………………………………………………………………参考文献………………………………………………………………………………………附录……………………………………………………………………………………………附录1 :程序清单……………………………………………………………………………附录2:设计图纸……………………………………………………………………………附录3:元器件目录表…………………………………………………………………………智能数据采集系统(基于单片机数字电压表的设计)1.概述1.1课题要求设计并且制作基于51单片机的数据采集系统,配置A/D转换芯片,编制数据采集系统监控软件,数据采集软件,电位器提供模拟输入量(传感器实验系统提供模拟量输入),将模拟量转换成数字量,通过数码管显示出来,分析数据采集精度。

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

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

基于单片机的数字电压表设计一、数字电压表设计1、目的及意义数字电压表是诸多数字化仪表的核心与基础。

可以扩展成各种通用数字仪表、专用数字仪表及各种非电量的数字化仪表(如:温度计,湿度计,酸度计,重量,厚度仪等),几乎覆盖了电子电工测量,工业测量,自动化仪表等各个领域。

除此之外,数字电压还有着传统指针电压表无可比拟的优点:读数直观、准确,显示范围宽、分辨力高,转入阻抗高,功耗小、抗干扰强等。

因此对数字电压表作全面深入的了解是很有必要的。

但是传统的数字电压表设计通常以大规模ASIC(专用集成电路)为核心器件,并辅以少量中规模集成电路及显示器件构成,可是这种设计方法灵活性差,系统功能固定,难以更新扩展,不能满足日益发展的电子工业要求。

而应用单片机为核心单元的数字电压表,其灵活性高、系统功能扩展简单,性能稳定可靠。

本课题目的就是以单片机为基础设计出一种结构简单、工作可靠、灵活性好的直流数字电压表。

要求测量范围为0~5V。

2、总体设计方案数字电压表主要包括两部分:硬件电路及软件程序。

而硬件电路采用ATMEL公司的AT89C51作为主处理器,系统主要由信号采集、A/D转换、数据处理输出、驱动显示等几个功能模块组成。

系统框图1如下:图1硬件原理框图被测直流电压由A/D转换单元采集后被量化,再由单片机对A/D转换的结果进行标度变换,得到被测电压的数值,通过单片机对数次转换结果求平均值、并通过SOI串行数据接口把所求平均值输出给显示驱动单元,由该单元完成译码,并驱动数码管显示。

电压表的数字化是将连续模拟的电压量经A/D转化后变为不连续的离散的数字量并加以显示。

在设计过程中采用分模块设计,按照图1把电路分A/D转换、数据处理输出、驱动、显示四个单元。

数值显示是采用八段数码管,由单片机以动态扫描方式驱动,在此方式下能保证足够的亮度和较长的使用寿命。

单片机是将计算机的基本部件微型化,使之集成在一块芯片上的微机。

在自动化装置、智能化仪器仪表、过程控制和家用电器等领域得到日益广泛的应用。

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

引言数字电压表(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—14.2 原理及功能8路数字电压表主要利用A/D转换器,其过程为如下:先用A/D转换器对各路电压值进行采样,得到相应的数字量,再按数字量与模拟量成比例关系运算得到相应的模拟电压值,然后把模拟值通过数码管显示出来。

设计时假设待测的输入电压为8路,电压值的范围为0——5v,要求能在4位LED数码上轮流显示或单路显示。

测量的最小分辨率为0.019v。

根据系统的功能要求,控制系统采用AT89s51单片机,A/D转换器。

当输入电压为5V时,输出的数据值为255(0FFH),因此最大分辨率为0.0196V(5/255)。

ADC0809具有8路模拟量输入端口,通过3位地址输入端能从8路中选择一路进行转换。

如每隔一段时间依次轮流改变3位地址输入端的地址,就能依次对8路输入电压进行测量。

LED 数码管显示采用软件译码动态显示。

通过按键选择可8路循环显示,也可以单路循环。

单路显示可通过按键选择所要显示的通道数。

5 硬件电路设计8路数字电压表应用系统硬件电路由单片机、A/D转换器、数码管显示电路和按键处理电路等组成,电路原理图如图1—2所示。

图1—2ADC0809具有8路模拟量输入通道IN0---IN7,通过3位地址输入端C、B、A(引脚23--25)进行选择。

引脚22为地址锁存控制端ALE,当输入为高电平时,C、B、A引脚输入的地址锁存于ADC0809内部是锁存器中,经内部译码电路译码选中相应的模拟通道。

引脚6为启动转换控制端START,当输入一个2μs宽的高电平脉冲时,就启动ADC0809开始对输入通道的模拟量进行转换。

引脚7为A/D转换器,当开始转换时,EOC信号为低电平,经过一段时间,转换结束,转换结束信号EOC输出高电平,转换结果存放于ADC0809内部的输出数据寄存器中。

引脚9脚为A/D转换数据输出允许控制端OE,当OE 为高电平时,存放于输出数据锁存器中的数据通过ADC0809的数据线D0—D7输出。

引脚10为ADC0809的时钟信号输入端CLOCK。

在连接时,ADC0809的数据线D0—D7与AT89S52的P0口相连接,ADC0809的地址引脚、地址锁存端ALE、启动信号START、数据输出允许控制端OE分别与AT89S52的P2口相连接,转换结束信号EOC与AT89S52的P3.7相连接。

时钟信号输入端CLOCK信号,由单片机的地址锁存信号ALE得到。

LED数码管采用动态扫描方式连接,通过AT89S52的P1口和P3.0—P3.3口控制。

P1口为LED数码管的字段码输出端,P3.0—P3.3口为LED数码管的位选码输出端,通过三极管驱动并反相。

S1和S2是两个按键开关,分别与单片机的P3.5和P3.6相连接。

S1用于单路显示或多路循环显示转换控制,S2用于单路显示时的通道选择。

6 系统软件程序的设计多路数字电压表的系统软件程序由主程序、A/D转换子程序和显示子程序组成。

6.1 主程序主程序包含初始化部分、调用A/D转换子程序和调用显示程序,如图1—3所示。

初始化部分包含存放通道数据缓冲区初始化和显示缓冲区初始化。

另外,对于单路显示和循环显示,系统设置了一个标志位00H控制。

初始化时00H位设置为0,默认为循环显示,当它为1时改变为单路显示。

00H位通过单路/循环按键控制。

6.2 A/D转换子程序A/D转换子程序用于对ADC0809的8路输入模拟电压进行A/D转换,并将转换的数值存入8个相应的存储单元中,如图1—4所示。

A/D转换子程序每隔一定时间调用一次,即隔一段时间对输入电压采样一次。

6.3 显示子程序LED数码管采用软件译码动态扫描方式。

在显示子程序中包含多路循环显示和单路显示程序。

多路循环显示把8个存储单元的数值依次取出送到4位数码管上显示,每一路显示1秒。

单路显示程序只对当前选中的一路数据进行显示。

每路数据显示需经过转换变成十进制BCD码,放于4个数码管的显示缓冲区中。

单路显示或多路循环显示通过标志位00H控制。

在显示控制程序中加入了对单路或多路循环按键和通道选择按键的判断。

图1—3图1—46.3.1 C语言源程序清单#include <stdio.h>#include <AT89x52.h>#include <intrins.h> //调用_nop_()延时函数#define ad_con P2 //0809控制口#define addata P0 //0809数据入口#define disdata P1 //数码管显示#define uchar unsigned char#define uint unsigned intuchar number=0x00; //存放单通道显示时的当前通道数sbit ALE=P2^3; //0809地址锁存信号sbit START=P2^4; //启动信号sbit OE=P2^5; //输出允许通道sbit KEY1=P3^5; //循环或单路选择按键sbit KEY2=P3^6; //通道选择按键sbit EOC=P3^7; //转换结束信号sbit DISX=disdata^7;//小数点位sbit FLAG=PSW^0; //循环或单路显示标志位Uchar codedis_7[11]={0x3F,0x06,0x5B,0X4F,0x66,0x6D,0x7D,0x07,0x7E,0x6F,0x00};//数码管的字段码uchar code scan_con[4]={0xF1,0xF2,0xF4,0xF8};//4个LED数码管的位选Uchar data ad_data[8]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};//0809的8个通道转换数据缓冲区uchar data dis[5]={0x00,0x00,0x00,0x00,0x00};//显示缓冲区/*主函数*/main(){P0=0xff; //初始化端口P2=0x00;P1=0xff;P3=0xff;while(1){test(); //测量转换数据scan();//显示数据}}/*1秒延时*/delay1ms(uint t){uint i,j;for (i=0;i<t;i++)for (j=0;j<120;j++);}/*检测按键子程序*/keytest(){if (KEY1==0) //检测循环或单路选择按键是否按下{FLAG=!FLAG; //标志位取反,循环,单路显示却换while(KEY1==0);}if(FLAG==1) //单路循环时,检测通道选择按键是否按下{if(KEY2==0){number++;if(number==8){number=0; }while(KEY2==0);}}}/*显示扫描子程序*/scan(){uchar k,n;int h;if(FLAG==0) //循环显示子程序{dis[3]=0x00; //通道值清零for(n=0;n<8;n++) //循环8次{dis[2]=ad_data[n]/51; //转换为BCD码dis[4]=ad_data[n]%51;dis[4]=dis[4]*10;dis[1]=dis[4]/51;dis[4]=dis[4]%51;dis[4]=dis[4]*10;dis[0]=dis[4]/51;for(h=0;h<500;h++) //每个通道显示时间控制为1s {for(k=0;k<4;k++) //4位LED循环显示{disdata=dis_7[dis[k]];if(k==2){DISX=0;}P3=scan_con[k];delay1ms(1);P3=0xff;}}dis[3]++; //通道值加1keytest(); //检测按键}}if(FLAG==1) //单路显示子程序{dis[3]=number;for(k=0;k<4;k++)//4位LED扫描显示{disdata=dis_7[dis[k]];if(k==2){DISX=0;}P3=scan_con[k];delay1ms(1);P3=0xff;}keytest(); //检测按键}}/*转换子函数*/test(){uchar m;uchar s=0x00; //初始通道位0ad_con=s;//第一通道地址送0809控制口for(m=0;m<8;m++){ALE=1;_nop_();_nop_();ALE=0;//锁存通道地址START=1;_nop_();_nop_();START=0;//启动转换_nop_();_nop_();_nop_();_nop_();while(EOC==0);//等待转换结束OE=1;ad_data[m]=addata;OE=0;//读取当前通道转换数据 s++;ad_con=s;//改变通道地址}ad_con=0x00;//通道地址恢复初值}7 单片机概述AT89S52是一种低功耗、高性能CMOS8位微控制器,具有 8K在系统可编程Flash 存储器。

相关文档
最新文档