基于51单片机数字电压表的设计与实现_第1页
基于51单片机数字电压表的设计与实现_第2页
基于51单片机数字电压表的设计与实现_第3页
基于51单片机数字电压表的设计与实现_第4页
基于51单片机数字电压表的设计与实现_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、大连东软信息技术职业学院 高职毕业设计(论文)高职毕业设计(论文) 系系 所:所: 电子工程系 专专 业:业: 嵌入式系统工程 学生姓名:学生姓名: 学生学号:学生学号: 指导教师:指导教师: 导师职称:导师职称: 论文题目论文题目:基于 51 单片机数字电压表的设计与实现 完成日期:完成日期: 2013 年 04 月 22 日 大连东软信息技术职业学院 dalian neusoft institute of information technology 基于 51 单片机数字电压表的设计与实现 摘 要 数字电压表简称 dvm,它是采用数字化测量技术,把连续的模拟量(直流输入电 压)转换成不连

2、续、离散的数字形式并且加以显示的仪表。数字电压表自从一九五二 年以来,随着电子技术的飞跃发展,尤其是目前,做成测量仪表、模拟指示仪表的数字 化和自动测量的系统,而得到了很大的发展。数字电压表是从电位差计的自动化这种 想法研制出来的,因此即便是最初的数字电压表,其精度也要比模拟式仪表高,而其 成本比电位差计也高。以后,dvm 的发展就着眼在高精度和低成本两个方面。 单片机可单独地完成工业控制所要求的智能化控制功能,这是单片机最大的特征。 本电路主要采用 stc89c52rc 芯片和 adc0832 芯片来完成一个简易的数字电压表, 可以够对输入的 05 v 的模拟直流电压进行测量,并且通过一个

3、4 位一体的 7 段 led 数码管进行显示。该电压表的测量电路由三个模块组成:a/d 转换模块、数据处理模 块及显示控制模块。a/d 转换主要由芯片 adc0832 来完成,它负责把采集到的模拟量 转换成相应的数字量再传送到数据处理模块。数据处理则由芯片 stc89c52rc 来完成, 其负责把 adc0832 传送来的数字量经一定的数据处理,产生相应的显示码送到显示模 块进行显示;另外它还控制着 adc0832 芯片的工作。 关键词关键词:单片机,数字电压表,a/d 转换,adc0832 based on 51 single chip microcomputer digital voltm

4、eter design and implementation abstract referred to as the digital voltmeter dvm, it is the use of digital measuring technology, continuous analog (dc input voltage) is converted into a discontinuous, discrete digital form and the display of the instrument. digital voltmeter since its inception in 1

5、952, with the rapid development of electronic technology, especially as the measuring instruments, the digitization of analog indicating instrument and automatic measurement system, and has been a great development. digital voltmeter is developed out of this idea from the potential difference of aut

6、omation, so even if the initial digital voltmeter, its accuracy than analog instrumentation, and its cost is also higher than the potential difference. in the future, the development of the dvm focus on two aspects of the high accuracy and low cost. the microcontroller can be used alone to complete

7、the requirements of modern industrial control intelligent control function, which is the biggest features of the microcontroller. the present circuit the stc89c52rc chip and adc0832 chip to complete a simple digital voltmeter, 05v analog input dc voltage to be measured and integrated by a four 7-seg

8、ment led display. the voltmeter measuring circuit mainly consists of three modules: a/d converter module, the data processing module and the display control module. the a/d converter chip adc0832 to complete, it sends it to the data processing module is responsible for the acquisition to analog conv

9、ersion for the corresponding digital. stc89c52rc to complete the data processing by the chip, which is responsible for the adc0832 transferred to digital by a certain data processing to produce the corresponding display code to the display module for display; addition, it also controls the adc0832 c

10、hip. key words: singlechip, digital display voltmeter, a/d conversion adc0832 目 录 摘 要.i abstract.ii 第 1 章项目概述.1 1.1 设计的目的.1 1.2 产品要求.1 1.3 各模块方案选择及论证.1 第 2 章项目实施方案.3 2.1 概述模数转换芯片 adc0832.3 2.2.1adc0832 内部逻辑结构.3 2.2.2 工作原理.3 2.2 控制芯片 stc89c52rc.3 2.3 led 数码管的控制显示.4 第 3 章电压表原理.5 3.1 电压表的原理.5 3.2 电源部分.

11、5 3.3a/d 转换电路 .6 3.4 单片机最小系统电路部分.6 3.5 显示电路部分.6 第 4 章项目成果.8 4.1 软件成果物.8 4.2 程序设计.8 4.2.1 主程序设计.8 4.2.2 中断显示程序.9 4.2.3 调试与测试.10 4.2.4 软件介绍.10 4.3 源程序代码.11 4.3 硬成果物.14 4.4 硬件调试.15 参考文献.16 致 谢.17 第第 1 章章项目概述项目概述 1.1 设计的目的设计的目的 通过制作简易数字电压表,加深对所学专业知识的认识,提高分析、解决工程实 际问题的能力,提高对单片机的应用能力,提高收集文献、资料的能力,从而达到综 合运

12、用所学的专业知识进行电子产品设计、制作与调试的能力。 1.2 产品要求产品要求 基本功能: 1) 能用数码管显示电压值 2) 测量精确度达 0.5v 3) 自制的直流稳压电源 4) 系统应具备复位功能 1.3 各模块方案选择及论证各模块方案选择及论证 根据设计要求,系统可分成电压采集模块、a/d 转换模块 、主控模块、显示模块。 a/d 转换模块: 方案一: a/d 转换器采用 icl7107 型三位半显示的芯片,输入信号,流经取样电路 取样后送到 icl7107 型三位半 a/d 转换器,只需要很少的简单外围元件,就可组成数 字电流表模块,直接驱动三位半 led 显示器显示,最后输入电流在显

13、示部分显示。由 于本人对此电路不熟悉,而且 icl7107 做的 led 数字表,最大的缺点就是数字乱跳不 稳定,尤其最后一位。所以不采用此方案。 方案二: 采用 adc0832 转换芯片,其中 a/d 转换器用于实现模拟量向数字量的转 换,单电源供电。它是具有 8 路模拟量输入、8 位数字量输出功能的 a/d 转换器,转 换时间成 100s,模拟输入电压范围为 0v+5v,不需零点和满刻度校准,功耗低, 约 15mw。 由于模拟转换电路的种类很多,通过对转换速度,精度和价格方面考虑,所以选 择方案二采用 adc0832 为本次设计的转换芯片。 接口模块: 方案一:用数字电路实现,采用译码芯片

14、 cd4543 作为接口芯片,这种方案能实 现功能,但稳定性不高,结构复杂。 方案二:采用 stc89c52rc 单片机作为系统的控制单元,通过 a/d 转换将被测值 转换为数字量送入单片机中,再由单片机来送显。此方案各类功能易于实现,成本低、 功耗低,显示稳定。 通过比较,我选择方案二。 第第 2 章章项目实施方案项目实施方案 2.1 概述概述模数转换芯片模数转换芯片 adc0832 adc0832 是典型的 8 位 8 通道逐次逼近式 a/d 转换器,它能和微型计算机直接接。 adc0832 转换器的系列芯片是 adc0808,能相互替换。 2.2.1 adc0832 内部逻辑结构内部逻辑

15、结构 如图 3.1 所示 图 2.1 adc0832 内部逻辑结构 2.2.2 工作原理工作原理 首先输入 3 位地址,并且使 ale=1,将地址存入地址锁存器中。此地址经译码选 通 8 路模拟输入之一到比较器。start 上升沿将逐次逼近寄存器复位。下降沿启动 a/d 转换,之后 eoc 输出信号变低,指示转换正在进行。直到 a/d 转换完成,eoc 变为高电平,指示 a/d 转换结束,结果数据已存入锁存器,这个信号可用作中断申请。 当 oe 输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上 2.2 控制芯片控制芯片 stc89c52rc stc89c52rc 是美国 atme

16、l 公司生产的低功耗、高性能 cmos 8 位单片机。 stc89c52rc 片内含有 4k 字节 flash 闪速存储器,128 字节内部 ram,32 个 i/o 口 线,看门狗(wdt),两个数据指针,两个 16 位定时/计数器,一个 5 向量两级中断结 构,一个全双工串行通信口,片内振荡器及时钟电路。并且支持两种软件可选的节电 工作模式。空闲方式停止 cpu 的工作,但允许 ram,定时/计数器,串行通信口及中 断系统继续工作。掉电方式保存 ram 中的内容,但振荡器停止工作并且禁止其它所 有部件工作直到下一个硬件复位。由于将多功能 8 位 cpu 和闪烁存储器组合在单个芯 片中,at

17、mel 的 stc89c52rc 是一种高效微控制器,为很多嵌入式控制系统提供了 一种灵活性高且价廉的方案。 2.3 led 数码管的控制显示数码管的控制显示 led 数码管模型如图 2.4 led 的段码端口 ag 分别接至 at89c51 的 p1.0p1.7 口,位选端 14 分别接 至 p3.5、p3.4、p3.1、p3.0,如图 2.4 a b c d e f g dp q1 q2 q3 q0 图 2.2 led 数码管模型 图 2.3 led 与 at89c51 的硬件连线 第第 3 章章电压表原理电压表原理 3.1 电压表的原理电压表的原理 本设计采用 stc89c52rc 单片

18、机芯片配合 adc0832 模/数转换芯片组成一个简易 的数字电压表,电路通过 adc0832 芯片采样输入口 in0 输入的 05 v 的模拟量电压, 经过模/数转换后,产生相应的数字量经过其输出通道 d0d7 传送给 stc89c52rc 芯 片的 p0 口。stc89c52rc 负责把接收到的数字量数据处理,产生正确的 7 段数码管的 显示段码,并且通过其 p1 口经驱动芯片 sn74ls373 驱动,再传送给数码管。同时它 还通过其三位 i/o 口 p3.0、p3.1、p3.2 产生位选信号,控制数码管的亮灭。 stc89c52rc 还控制着 adc0832 的工作。其 ale 管脚为

19、 adc0832 提供了 1mhz 工 作的时钟脉冲;p2.3 控制 adc0832 的地址锁存端(ale);p2.4 控制 adc0832 的启动 端(start);p2.5 控制 adc0832 的输出允许端(oe);p3.7 控制 adc0832 的转换结束 信号(eoc)。 3.2 电源部分电源部分 电源部分电路主要是要求能提供稳定可靠的电压,使整个系统能正常的工作。采 用 220v 的工频交流电压,而单片机的工作电压是直流+5v,因此,先通过一个普通的 变压器降低电压,再通过桥式整流,然后再通过 7805 芯片的进一步稳压,确保+5v 电 源的稳定、 。而且 7805 集成稳压器是常

20、用的固定输出+5v 电压的集成稳压器。其内部 含有限流保护、过热保护和过压保护电路,采用了噪声低、温度漂移小的基准电压源, 工作稳定可靠。1 脚为输入端,2 脚为接地端,3 脚为输出端,用十分方便,能在任何 有交流电压的地方用,不需另带电池。通过整流滤波以后输出直流电压,为确保整个 电路能正常工作,考虑到不接负载或电源电压有波动时电容能承受的耐压,必须加电 容。发光二极管 d2 点亮表示电源电路正常工作,其电源电路如图 3.1 所示: 图 3.1 电源部分 3.3 a/d 转换电路转换电路 随着数字技术,尤其是信息技术的飞速发展与普及,在现代控制。通信及检测等 领域,为了提高系统的性能指标,对

21、信号的处理广泛采用了数字计算机技术。系统的 实际对象往往都是一些模拟量(如温度。压力。位移。图像等),使计算机或数字仪表能 识别。处理这些信号,必须首先将这些模拟信号转换成数字信号,经计算机分析。处 理后输出的数字量也往往需要将其转换为相应模拟信号才能为执行机构所接受。所以 就需要一种能在模拟信号与数字信号之间起桥梁作用的电路-模数和数模转换器。 将模拟信号转换成数字信号的电路,称为模数转换器(简称 a/d 转换器);将数字信 号转换为模拟信号的电路称为数模转换器(简称 d/a 转换器或);a/d 转换器和 d/a 转换器 已成为信息系统中不可缺的组成部分,为确保系统处理结果的精确,a/d 转

22、换器和 d/a 转换器必须具有足够转换精度;如果要实现快速变化信号的实时控制与检测,a/d 与 d/a 转换器还要求具有较高的转换速度。转换精度与转换速度是衡量 a/d 与 d/a 转换器 的重要技术指标。随着集成技术的发展,现已研制和生产出许多单片的和混合集成型 的 a/d 和 d/a 转换器,它们具有愈来先进的技术指标 a/ d 转换 器是模 拟量输 入通道 的一个 环节, 单片机通过 a/d 转换器把输入模拟量变成数字量再处理。随着大规模集成电路的发展, 目前不同厂家已经生产出了多种型号的 a/d 转换器,以满足不同应用场合的需要。如 vin 1 gnd 2 vout 3 u57805

23、1 2 3 j1 power 1 2 3 4 d1 bridge1 c4 104 c5 104c6 470uf/25v c7 470uf/16v c8 1o4 r14 2k d2 le d vcc 果按照工作原理划分,ac 主要有 4 种类型,即双积分式 a/d 转换器、逐近式 a/d 转 换器和并且行式 a/d 转换器和计数比较式 a/d 转换器。目前最常用的是双积分和逐次 逼近式。 3.4 单片机最小系统电路部分单片机最小系统电路部分 单片机内部每个部件要想协调一致地工作,必须在统一口令时钟信号的控制下工 作。单片机工作所需要的时钟信号有两种产生方式,内部时钟方式和外部时钟。内部 时钟方式

24、:单片机内部有一个构成振荡器的增益反相放大器,引脚 xtal1 和 xtal2 分别是此放大器的输入端和输入端,这个放大器与反馈元件的片外晶振一起构成自激 振荡器。电容 c1 和 c2 取 20pf,晶体的振荡频率取 12mhz,晶体振荡频率高,则系统 的时钟频率也高,单片机运行速度也比较快。 3.5 显示电路部分显示电路部分 本电路的显示模块主要由一个 4 位一体的 7 段 led 数码管组成,用于显示测量到 的电压值。它是一个共阳极的数码管,每一位数码管的 a,b,c,d,e,f,g 和 dp 端都各自连接 在一起,用于接收 stc89c52rc 的 p1 口产生的显示段码。1,2,3,4

25、 引脚端为其位 选端,用于接收 stc89c52rc 的 p3 口产生的位选码。本系统采用动态扫描方式。扫 描方法是用其接口电路把所有数码管的 8 个比划段 ag 和 dp 同名端连在一起,而每 一个数码管的公共极 com 各自独立地受 i/o 线控制。cup 从字段输出口送出字型码 时,所有数码管接收到相同的字型码,取决于 com 端。com 端与单片机的 i/o 接口 相连接,由单片机输 出位位选码到 io 接口,控制何时哪一位数 码管被点亮。在轮流点亮数码管的位扫 描过程中,每位数码管的点亮时间极为 短暂。但由于人的视觉暂留现象,给人 的印象就是一组稳定显示的数码。动态 方式的优点是十分

26、明显的,即耗电省, 在动态扫描过程中,任何时刻只有一个 数码管是处于工作状态的。具体原理图 如图 3.2 所示。 clk 10 st art 6 oe 9 in0 26 in1 27 in2 28 in3 1 in4 2 in5 3 in6 4 in7 5 adda 25 addb 24 addc 23 ale 22 gnd 13 vcc 11 d0 17 d1 14 d2 15 d3 8 d4 18 d5 19 d6 20 d7 21 eoc 7 ref+ 12 ref- 16 u3 adc0809fn d0 d1 d2 d3 d4 d5 d6 d7 a0 vcc a2 a3 a3 a4 接

27、1q 接2q 接3q a b c d e f g dp 1 2 3 4 7seg-mpx4-cc 接接接 q1 pnp q2 pnp q3 pnp q4 pnp r2 1ok r3 1ok r4 1ok r5 1ok p0 p1 p2 p3 p4 p5 p6 p7 vccvccvccvcc 接p3.0接p3.1接p3.3接p3.4 图 3.2 显示部分 第第 4 章章项目成果项目成果 4.1 软件成果物软件成果物 如图 3.3 所示 图 3.3 软件成果图 4.2 程序设计程序设计 4.2.1 主程序设计主程序设计 主程序包含初始化部分、调用 a/d 转换子程序和相应外部 0 中断显示电压数值

28、程 序,初始化部分包含存放通道的缓冲区初始化和显示缓冲区初始化。另外,对于单路 显示和循环显示,系统设置了一个标志位 00h 控制,初始化时 00h 位设置为 0,默认 为循环显示,当它为 1 时改变为单路显示控制,00h 位通过单路、循环按键控制。流 程图如图 3.4 所示。 开始 显示子程序 a/d 转换子程序 初始化 图 3.4 主程序流程图 a/d 转换子程序用于对 adc0808 的 4 路输入模拟电压进行 a/d 转换,并且将转 换的数值存入 4 个相应的存储单元中,a/d 转换子程序每隔一定时间调用一次,即隔 一段时间对输入电压采样一次,如图 4-2 所示。 过程 进行十六进制调

29、整 开始 a/d 转换 调用延时 存转换后的十六进制数 数据指针加一 入栈保护 4 路转换次数减一 显示电压值 n y 图 3.5 转换子程序流程图 4.2.2 中断显示程序中断显示程序 设计中采用中断的方式来读取转换完成的数据能节省 cpu 的资源。 当系统设置好后,一旦数据转换完成,便会进入外部中断 0,然后在中断中读取转 换的数值,处理数据并且送数码管显示输出。 led 数码管采用软件译码动态扫描的方式。在中断程序中包含多路循环显示程序 和单路显示程序,多路循环显示程序把 4 个存储单元的数值依次取出送到 4 个数码管 上显示,每一路显示一秒。单路显示程序只对当前选中的一路数据进行显示。

30、每路数 据显示时需经过转换变成十进制 bcd 码,放于 4 个数码管显示缓冲区中。单路或多路 循环显示通过标志位 00h 控制。在显示控制程序中加入了对单路或多路循环按键的判 断。 4.2.3 调试与测试调试与测试 本设计应用 proteus6 及 keil51 软件,首先根据自己设计的电路图用 proteus6 软件 画出电路模型,关于这个软件的用通过查一些资料和自己的摸索学习;然后我们用 keil51 软件对所编写的程序进行编译、链接,如果没有错误和警告便可生成程序的 hex 文件,将此文件加到电路图上使软硬件结合运行,最后进行端口电压的对比测试。 4.2.4 软件介绍软件介绍 prote

31、us6.0 是目前最好的模拟单片机外围器件的工具,真的很不错。能仿真 51 系 列、avr,pic 等常用的 mcu 及其外围电路(如 lcd,ram,rom,键盘,马达, led,ad/da,部分 spi 器件,部分 iic 器件。 ) 其实 proteus 与 multisim 比较类似,只不过它能仿真 mcu。 当然,软件仿真精度有限,而且不可能所有的器件都找得到相应的仿真模型,用 开发板和仿真器当然是最好选择。 如果你在学 51 单片机,如果你想自己做 lcd,led,ad/da,直流马达。 用 51 不管是用汇编或是 c 编程当然要。 用 keil c51 v7.20 + prote

32、us 6.0 能像用仿真器一样调试程序,一般而言,微机实验中 用万利仿真器+电工系自己做的实验板的实验都能做得到。 当然,硬件实践还是必不可少的。本方案只是在没有硬件的情况下让你能像 pspice 仿真模拟/数字电路那样仿真 mcu 及外围电路。另外,即使有硬件,在程序编 写早期用软件仿真一下也不错的。 1、安装 keil c51 v7.20 与 proteus 6.0 2、把 proteus 安装目录下 vdm51.dll 文件复制到 keil 安装目录的 c51bin 目录 中。 3、修改 keil 安装目录下 tools.ini 文件,在 c51 字段加入 tdrv5=binvdm51.

33、dll (proteus vsm monitor-51 driver),保存。 注意:不一定要用 tdrv5,根据原来字段选用一个不重复的数值就能了。引号内 的名字随意。 4、打开 proteus,画出相应电路。在 proteus 的 tools 菜单中选中 use remote debug monitor。 5、在 keil 中编写 mcu 的程序。 6、进入 keil 的 project 菜单 option for target 工程名。在 debug 选项中右栏上 部的下拉菜选中 proteus vsm monitor-51 driver。 在进入 seting,如果同一台机 ip 名为

34、 127.0.0.1,如不是同一台机则填另一台的 ip 地址。端口号一定为 8000。 注意:能在一台机器上运行 keil,另一台中运行 proteus 进行远程仿真。 7、在 keil 中进行 debug,同时在 proteus 中查看直观的结果(如 lcd 显示) 4.3 源程序代码源程序代码 org 0000h ljmp start org 0003h reti org 000bh reti org 0013h reti org 001bh reti org 0023h reti org 002bh reti org 0030h start: clr a setb p3.7 ;初始化eo

35、c clr p3.0 ;初始化led位选,全不选中。 clr p3.1 clr p3.2 mov p2 , a ;初始化p2口,清除对adc0832的控制信号。 mov 70h , a ;初始化数据采样后存储空间。 mov 78h , a ;初始化数据处理后3位有效数字的存储空间(78h最高位,7ah最 低位)。 mov 79h , a mov 7ah , a mov a , #0ffh ;初始化p0,p1口,写入高电平。 mov p0 , a mov p1 , a main: lcall ad_sub ;调用a/d转换子程序,开始采样并且转换。 lcall turn_sub ;调用数码转换子

36、程序,将采样转换来的0-255转换成一一对 应的 ;0.00-5.00 lcall disp_sub ;调用显示子程序。 ljmp main = ad_sub: clr a mov p2 , a ;初始化p2口,清除对adc0832的控制信号。 mov r0 , #70h lcall ad_st ;调用采样转换子程序 wait: jb p3.7 , datasave ;判断采样转换是否完毕,完毕则跳转到datasave进行存 储。 ajmp wait ;否则继续等待。 ;启动采样,送脉冲时序 ad_st: setb p2.3 ;ale 脉冲时序 nop nop clr p2.3 setb p2

37、.4 ;start 脉冲时序(上跳清零,下跳开始转换) nop nop clr p2.4 nop nop ret ;采样转换的数据存储 datasave: setb p2.5 ;置位oe端,允许adc0832输出数据 mov a , p0 ;将转换的数据存储到70h中 mov r0 , a clr p2.5 clr a ;初始化p0,p1,p2口(p0,p1高电平,p2低电平) mov p2 , a mov a , #0ffh mov p0 , a mov p1 , a ret ;将0255转换为0.005.00 turn_sub: mov a , r0 mov b , #51 div ab

38、mov 78h , a ;以上这一段是整数部分(个位)放入78h mov a , b ;余数部分放入a clr f0 subb a , #1ah ;余数和51的一半即1ah比较,以便四舍五入 mov f0 , c mov a , #10 mul ab ;余数乘以10,以便再除以51 mov b , #51 div ab jb f0 , loop1 ;判断四舍五入,跳到loop1是“四舍” add a , #5 ;这是“五入” loop1: mov 79h , a ;十分位 mov a , b clr f0 subb a , #1ah mov f0,c mov a , #10 mul ab mo

39、v b , #51 div ab jb f0 , loop2 add a , #5 loop2: mov 7ah , a ;百分位 ret ;= ;显示子程序 disp_sub: mov r1 , #78h ;r1辅助寄存器,用于存放要显示的数据的地址(初始为最高位 78h) clr a mov p1 , #0ffh ;初始化p1,p2口(p1高电平,p2低电平) anl p2 , a lcall play ;调用显示位码子程序 clr p1.7 ;显示最高位(个位)后的小数点 setb p3.0 ;选中最高位led数码管 lcall delay ;调用延迟子程序 clr p3.0 ;取消最高

40、位位选 inc r1 ;提取第二位有效数字(十分位)的数据地址(79h) lcall play ;调用显示位码子程序 setb p3.1 ;选中第二位led数码管 lcall delay ;调用延迟子程序 clr p3.1 ;取消第二位位选 inc r1 ;提取最低位(百分位)的数据地址(7ah) lcall play ;调用显示位码子程序 setb p3.2 ;选中最低位led数码管 lcall delay ;调用延迟子程序 clr p3.2 ;取消最低位位选 ret ;位码显示 play: mov a , r1 ;送偏移量 mov dptr , #tab ;送表首地址 movc a , a

41、+dptr ;查表得出相应led段码 mov p1 , a ;输出显示 ret ;= ;延时程序 delay: mov r6 , #10h dl1: mov r7 , #10h dl2: djnz r7 , dl2 djnz r6 , dl1 ret ;= ;09段码 tab: db 0c0h , 0f9h , 0a4h , 0b0h , 99h , 92h , 82h , 0f8h , 80h , 90h end 我们在程序编写完成后,就能用仿真器进行初步调试,观察在计算机里能否通过 编译与运行并且达到设计的基本要求。在基本符合的情况下,利用仿真器与工作正常 的硬件连接进行仿真调试;或用编程

42、器把程序烧写到芯片中,直接观察能否正常运行。 如果达不到设计要求或者不能正常运行,能直接在程序中进行修改。 4.3 硬成果物硬成果物 如图 3.6 所示 图 3.6 硬件成果 4.4 硬件调试硬件调试 在系统上电开始测量前,要用万用表的电压档对被测电压进行估测,然后以此选 择适当的量程,防止过大电压烧坏 a/d 转换器。首先用万用表按照原理图逐步检查中 各器件的电源及各引脚的连接是否正确,有否断路、短路或者虚焊,尤其是给电路供 电的电源部分需重点检查,用数字万用表测量 7805 输出端的电压是否是+5v,是否稳 定,能够输出+5v,且稳定即可说明电源电路的设计基本达到目的要求。如果电压没有 达

43、到预期要求,要及时排查解决,以免烧坏芯片和其他元器件。 软件调试时先进行单元测试,分别对各个代码模块进行测试,看其是否实现了规 定功能,再把已经测试过的模块组合起来进行调试,一旦不能正确运行,要找出程序 中的代码错误,确定大致的错误位置,研究有关部分的错误程序,找出错误的原因, 修改设计和代码,以排除故障。 我们在程序编写完成后,就能利用仿真器初步调试,观察在计算机里能否通过编 译与运行并且达到设计的基本要求。在基本符合的情况下,利用仿真器和工作正常的 硬件连接进行仿真调试;或用编程器把程序烧写到芯片中,直接观察能否正常运行。 如果达不到设计要求或者不能正常运行,能直接在程序中进行编译和修改。

44、 系统调试中遇到的问题及解决的方法: 1)在应用滤波电容的过程中,开始时是把电容串联在电路中,导致电路无法导通, 而后我们短路电容,解决了问题。 2)电源指示灯上,一开始发现接上电源,指示灯不亮,经过仪器测量发现正负极 接反,后重新焊接。 3)由于源程序的多处错误,使得仿真无法通过,后经过单步调试,把存在的错误 一一排除,通过了软件仿真。 4)在烧录芯片的过程中,由于选择烧录文件的错及芯片质量的问题(因多次烧录, 无法再次烧录)使得烧录失败,后经过老师指导并且更换了 at89c51 芯片,解决了问 题。 参考文献参考文献 1 魏立峰,单片机原理及应用技术m,北京大学出版社2006 2 陈光绒,

45、单片机技术应用教程m,北京大学出版社2005 3 李广弟, 单片机基础m,北京航空航天大学出版社2007 4 刘树林,低频电子线路m,电子工业出版社2003 5 何宏,单片机原理与接口技术m,国防工业出版社2006 6 张志良,单片机原理与控制技术m,机械工业出版社2001 7 郭强,液晶显示器件应用技术m,北京邮电学院出版社1993 8 王辛之,at89系列单片机原理与接口技术m,北京航空航天大学出版社2004 致致 谢谢 本次设计由于使用的是高效单片机作为核心的测量系统,和灵敏度和精度较高的 a/d转换器,使本电压表具有精度高、灵敏度强、性能可靠、电路简单成本低的特点, 使其有很高的智能化

46、水平。 由本次设计,我对单片机这门课程有了更进一步的了解。无论是在其硬件连接方 面还是在软件编程方面,都取得了新的收获。本次实验采用了 stc89c52rc 单片机芯 片,与以往我们所熟悉的 c51 芯片有许多不同之处,通过本次设计及查阅相关资料, 我对其之间的区别有了一定的认识,在本设计报告的硬件介绍部分也对其作了详细的 论述。s51 在 c51 的基础上增加了许多新的功能,使其功能更为完善,应用领域也更 为广泛。 在毕业设计的整个过程中我发现了自己对单片机认知的一些不足之处。在对单片 机编程方面,我又掌握了一些新的编程思想,使得程序更为简练、易懂,而且更为严 谨,程序执行的稳定性得到了提高。在基于单片机的数字电压表的设计过程中也找到 了一些关于单片机开发的规律:先了解所有元件的具体内容,使数字电压表从简易变 为多功能的方式,虽然没有做多功

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论