新闻

直流数字电流表的doc

作者:365真人游戏 发布时间:2020-10-15 12:21 点击数:

  班 级 08331 0 学 号 0 本科毕业设计论文 题 目 直流数字电流表的设计 学 院 专 业 机械设计制造及其自动化 学生姓名 导师姓名 宋金茂 毕业设计(论文)诚信声明书 本人声明:本人所提交的毕业论文《 直流数字电流表的设计 》是本人在指导教师指导下独立研究、写作的成果,论文中所引用他人的无论以何种方式发布的文字、研究成果,均在论文中加以说明;有关教师、同学和其他人员对本文的写作、修订提出过并为我在论文中加以采纳的意见、建议,均已在我的致谢辞中加以说明并深致谢意。 本论文和资料若有不实之处,本人承担一切相关责任。 论文作者: (签字) 时间:2012 年 5 月 20 日 指导教师已阅: (签字)时间:2012 年 5 月 20 日 西 安 电 子 科 技 大 学 长 安 学 院 毕业设计(论文)任务书 学生姓名 学号 指导教师 宋金茂 职称 高工 学院 专业 机械设计制造及其自动化 题目名称 直流数字电流表的设计 任务与要求: 一、任务 1. 学习单片机及数字电路方面的知识。2. 完成电路的整体设计。 二、要求 1. 编写单片机程序。 2. 完成硬件电路的安装及其调试。 3. 电流用LED数码管显示。 开始日期 2012年1月5日 完成日期 2012年5月24日 院长(签字) 年 月 日 注:本任务书一式两份,一份交学院,一份学生自己保存。 西 安 电 子 科 技 大 学 长 安 学 院 毕业设计(论文)工作计划 学生姓名 学号 指导教师 宋金茂 职称 高 工 学 院 专业 机械设计制造及其自动化 题目名称 直流数字电流表的设计 一、毕业设计(论文)进度 起 止 时 间 工 作 内 容 2012.1.5—2012.2.5 学习单片机和数字电路的相关知识。 2012.2.5—2012.3.5 查阅文献资料,完成设计方案。 2012.3.5—2012.4.5 编写及调试单片机程序。 2012.4.5—2012.5.5 完成电路安装及调试。 2012.5.5—2012.5.24 撰写及完善论文,准备论文答辩 二、主要参考书目(资料) [1] 吴金戌.8051单片机实践与应用.北京:清华大学出版社,2002 [2] 余锡存 《单片机原理及接口技术》 西安电子科技大学出版社 2000年 [3] 龙脉工作室《51单片机C语言应用开发技术大全》 人民邮电出版社 08年9月 [4] 余锡存 《单片机原理及接口技术》 西安电子科技大学出版社 2000年 [5] 张国勋.缩短ICL7135A/D采样程序时间的一种方法,1993 [6] 潭浩强 《C程序设计》清华大学出版社 2003年 三、主要仪器设备 计算机一台 四、教师的指导安排情况(场地安排、指导方式) 场地安排在物理实验中心,每周与学生会面两个下午,指导并解决毕业设计的相关问题。 五、对计划的说明 注:本计划一式两份,一份交学院,一份学生自己保存(计划书双面打印) 西 安 电 子 科 技 大 学 长 安 学 院 毕业设计(论文)中期检查表 学 院 专 业 机械设计制造及其自动化 学生姓名 学 号班 级 08331 导师姓名 宋金茂 职 称 高 工 单 位 理学院 题目名称 直流数字电流表的设计 检 查 内 容 检 查 结 果 题目是否更换及更换原因 否 学生出勤情况 该生能经常与老师联系,积极学习相关知识,与老师探讨相关问题,出勤情况良好。 进 度 评 价 (完成总工作量的百分比) 70% 质量评价、进度描述 软件、硬件已做好 总 体 评 价 (按优、良、中、及格、不及格五挡评价) 良 存在的问题与建议 进一步完善软、硬件并抓紧撰写论文。 学 院 审 核(盖章) 检查组教师: 2012年4月15日 注:此表由指导教师填写,中期检查成绩将作为毕业设计总成绩的一部分;此表装订入毕业设计(论文)中。 西 安 电 子 科 技 大 学 长 安 学 院 毕业设计(论文)成绩登记表 学 院 专 业 机械设计制造及其自动化 姓 名 学 号成 绩 题目名称 直流数字电流表的设计 指导教师 宋金茂 职 称 高工 指导教师评语及对成绩的评定意见 雷立磊同学能够按照毕业设计工作计划,在广泛阅读有关单片机原理及A/D转换等相关参考文献的基础上,基于单片机和C语言基本理论,利用实验方法系统地开展了对直流数字电压表的研究,获得了比较理想的设计作品,对相关结论及存在问题进行了讨论、分析,同时将有关实验测量结果进行了比较验证。 该同学在毕业设计期间,能按指导教师的要求认真开展工作,出勤情况良好。毕业设计工作反映出作者在通信工程专业方面已掌握了一定的基础理论和基本技能、具有一定的创新能力和解决相关实际问题的能力。论文工作量饱满,写作认真,条理清晰,推理严谨,图表曲线齐全。本论文已全面完成了毕业设计任务书的要求。建议成绩为: 。 签名 年 月 日 评阅人评语及成绩评定意见 论文主要针对直流数字电流表进行了深入研究,选题具有实际应用的现实意义,该项研究对于单片机的推广具有很强的应用价值,对数字测量仪表的发展具有重要意义。论文主要包括以下内容: 1.掌握了单片机、数字电路方面的基本原理和基本理论。 2.具有分析和设计电路的基本技能和能力。 3.能够解决硬件设计和调试方面的实际问题。 4.在硬件设计和焊接方面具有一定的独立工作能力。 论文撰写认真,内容详细,逻辑严谨,条理清晰。从论文中可以看出作者阅读了大量的国内外文献资料,在通信工程专业方面掌握了坚实的理论基础知识和基本应用技能,具有一定的分析问题和解决问题的能力。建议成绩为: 。 签名 年 月 日 答辩小组意见 雷立磊同学毕业设计答辩逻辑严谨,条理清晰,内容详细。回答问题正确,通过答辩体现了雷立磊同学掌握了机械设计制造及其自动化专业方面的基本理论和基本技能,并能熟练的利用机械设计制造及其自动化专业基本知识和单片机基本技能完成测量仪器方面的应用工作。经过答辩组全体教师认真讨论,无记名投票同意该同学毕业设计成绩为 。 签名 年 月 日 学院答辩委员会 意见 答辩委员 会主任签名 (学院盖章) 年 月 日 注:学院、专业名均写全称;成绩登记表双面打印。 摘要 直流数字电流表的诞生打破了传统电子测量仪器的模式和格局。它显示清晰直观、读数准确,采用了先进的数显技术,大大地减少了因人为因素所造成的测量误差事件。数字电流表是建立在数字电压表的基础上,让电压表与电阻串联,其显示的是电流,数字电压表是把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式,并加以显示的仪表。数字电流表把电子技术、计算技术、自动化技术的成果与精密电测量技术密切的结合在一起,成为仪器、仪表领域中独立而完整的一个分支,数字电流表标志着电子仪器领域的一场革命,也开创了现代电子测量技术的先河。本设计采用了以单片机为开发平台,控制系采用AT89C52单片机,A/D转换采用ADC0809。系统除能确保实现要求的功能外,还可以方便进行8路其它A/D转换量的测量、远程测量结果传送等扩展功能。简易数字电流测量电路由A/D转换、数据处理、显示控制等组成。 关键词:单片机 AT89C51 A/D转换 ADC0809 数据处理 ABSTRACT The birth of digital voltage meter to break the traditional mode of electronic measuring instruments and patterns. It shows the clear and intuitive, accurate reading, the use of advanced digital technology, greatly reducing the human factor due to measurement errors caused by the incident. Digital voltmeter is the continuous analog (DC voltage) into a non-continuous, discrete digital form and displayed in the instrument. Digital voltage meter to electronic technology, computing technology, automation technology and precision electrical measurement results of the close combination of technology, as equipment, instruments and complete the field of a branch of the independent, digital voltage meter marks a revolution in the field of electronic devices Also created a precedent for modern electronic measurement technology. This design uses a microcontroller as a development platform, the control system using AT89C52 microcontroller, A / D conversion using ADC0809. System in addition to ensure the required functionality, but also can facilitate the 8 other A / D conversion volume measurement, such as extended transmission distance measurement function. Simple digital voltage measuring circuit from the A / D conversion, data processing, display control and so on. Key words: SCM AT89C51 A / D converter ADC0809 data processing 目 录 第一章 引言 1 1.1 引言 1 1.2 课题研究的现状和发展趋势 1 1.3 智能仪表目前发展状况 2 第二章 设计任务及可行性分析 5 2.1 系统设计要求 5 2.2 系统设计思路 5 2.3 总体结构 6 2.3.1 数字电流表的组成 6 2.3.2 电路设计 6 2.3.3 10倍放大器电路 7 2.3.4 A/D转换电路 7 2.3.5 电桥输入电路 8 2.3.6 测量电路 9 第三章 元器件的选择 11 3.1 单片机的选择 11 3.2 A/D转换器的选择 12 3.3 LED显示电路的选择 13 3.4 所需元器件清单 14 第四章 数字式电流表的硬件设计 15 4.1 硬件电路设计概述 15 4.2 主要元器件的介绍 15 4.2.1 单片机AT89S51 15 4.2.2 主要性能参数 16 4.2.3 AT89S51的引脚 16 4.2.4 A/D转换芯片ADC0809 22 4.2.5 ADC0809内部逻辑结构 22 4.2.6 ADC0809的引脚 23 4.2.7 ADC0809的工作原理 24 4.2.8 4位一体7段LED数码管 24 4.3 控制电路模块 25 4.3.1 总电路 25 4.3.2 AT89S51的复位电路和时钟电路 26 4.3.3 A/D转换电路 27 4.3.4 显示电路 28 第五章 数字式电流表的软件设计 29 5.1 系统程序设计总方案 29 5.2 系统子程序设计 29 5.2.1 初始化程序 29 5.2.2 A/D转换子程序 29 5.2.3 显示子程序 30 5.3 系统程序代码 31 第六章 数字式电流表的调试 35 6.1 软件调试 35 6.2 显示结果及误差分析 35 6.2.1 显示结果 35 6.2.2 误差分析 38 第七章 结 论 39 致谢 41 参考文献 43 引言 引言 传统的指针式刻度电流表功能单一,精度低,容易引起视差和视觉疲劳,因而不能满足数字化时代的需求。采用单片机的数字电流表,将连续的模拟量如直流电压转化成不连续的离散的数字形式并加以显示,从而精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC 实时通信。数字电压表是诸多数字化仪表的核心与基础。以数字电流表为核心,可以扩展成各种通用数字仪表、专用数字仪表及各种非电量的数字化仪表。目前,由各种单片机和 A/D 转换器构成的数字电流表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域。显示出强大的生命力。与此同时,由DVM扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭新的水平。因此对数字电压表作全面深入的了解是很有必要的。 课题研究的现状和发展趋势 最近的十几年来,随着半导体技术、集成电路 (IC)和微处理器技术的发展, 数字电路和数字化测量技术也有了巨大的进步,从而促使了数字电流表的日新月异,并不断出现新的类型。 数字电流表从 1952 年问世以来,经历了不断改进的过程,从最早采用继电器、电子管的型式发展到了现在的全固态化、集成化(IC 化〕。另一方面,精度也从0.1%提高到了现在的0.01%——0.005%,而且从实验中空用的“高价样品” 开始已发展到了现在为厂矿企业广所使用的的“廉价型”,进而出现了能够用于安装板上作指示仪表的“安装型”。 目前,数字电流表的内部核心部件是A/D 转换器,转换的精度很大程度上影响着数字电流表的准确度,因而,以后数字电流表的发展就着眼在高精度和低成本这两个方面。 智能仪表目前发展状况 在自动化控制系统中,仪器仪表作为其构成元素,它的技术进展是跟随控制系统技术的发展的。常规的自动化仪器仪表适应常规控制系统的要求,它们以经典控制理论和现代控制理论为基础,以控制对象的数学模型为依据。当今,控制理论已发展到智能控制的新阶段,自动化仪器仪表的智能化就成为必然和必须。本文将就自动化仪器仪表的智能化的状况与进展,以及当今对智能仪器仪表研究、开发热点做概要的分析与表述。作者建议人们关注自动化仪器仪表智能化技术的进展,关注仪器仪表装置与控制系统技术的互动发展,这对推进我国自动化技术水平的进一步提高将是大为有益的。智能化的自动化仪器仪表应以智能控制理论为基础,体现人的智能行为。人工智能是智能控制理论的基本组成部分之一,它以知识为基础,它的目标是建造智能化的计算机系统,用来模拟和执行人类的智力功能,如判断、理解、推理、识别、规划、学习和问题求解等等,进而用自动机模仿人类的思维过程和智能行为。基于智能控制理论基础的智能仪器仪表目前大致有几方面的进展: (1)专家控制系统(expert control system, ECS)是典型的基于知识控制系统,它是一个具有大量的专门知识与经验的程序系统。它运用人工智能技术和计算机技术,根据某领域一个或多个专家提供的知识和经验,进行推理和判断,模拟人类专家的决策过程,解决那些需要人类专家才能解决好的复杂问题。专家控制器的结构按控制要求的不同而有所不同。典型的结构由知识库、推理机、人机接口等组成。其中,知识的获取、知识库的建立是关键。人们已经总结出的方法是领域专家和知识专家的有机结合,同时收集、归纳有经验的操作员方面的知识。然后把获取的知识变成可用的规则,以期在推理过程中得到更高的命中率。专家控制已在工业控制中得到广泛的应用。 (2)模糊控制器(FC-Fuzzy Controller),也称模糊逻辑控制器(FLC-Fuzzy Logic Controller)。自然界的事物都具有一定的模糊性,模糊逻辑在控制领域中的应用产生了模糊控制技术。由于模糊控制技术具有处理不确定性、不精确性和模糊信息的能力,对无法建造数学模型的被控过程能进行有效的控制,能解决一些用常规控制方法不能解决的问题,因而模糊控制在工业控制领域得到了广泛的应用。模糊控制器一般由输入标定、模糊化、模糊决策、清晰化、输出标定等几个部分组成。其中,模糊化、模糊决策、清晰化是主要和基本的部分,“模糊化”将输入量(精确量)变为模糊量,“模糊决策”进行模糊运算,其过程是由推理机进行预估输出推理,得到模糊量输出。“清晰化”将模糊量输出转化为精确量,提供给系统的驱动器定标后使用。当前,模糊控制技术在工业控制中得到广泛的应用,尤其在不确定性过程、难于建模的场合发挥了模糊控制技术的长处。模糊控制器在家电和其它行业同样得到了广泛的应用。 (3)神经网络在工业控制系统中的应用提高了系统的信息处理能力,提高了系统的智能水平。所谓神经网络控制,简称神经控制,它是指采用神经网络这一技术对复杂的非线性对象进行建模,或担当控制器,或优化计算,或进行推理,或故障诊断等工作。由于神经网络具有高度的并行结构和并行实现能力,具有对任意非线性关系的描述能力,具有通过训练学习归纳全部数据能力,使得它在控制系统中被广泛灵活地应用。 数字电流表,作为智能仪表的一种,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。传统的指针式电压表功能单一、精度低,不能满足数字化时代的需求,采用单片机的数字电流表,由精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC进行实时通信。目前,由各种单片A/D 转换器构成的数字电流表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出强大的生命力。 设计任务及可行性分析 系统设计要求 可以测量0-5V的8路输入电压值; 测量结果可在四位LED数码管上轮流显示后单路选择显示; 测量最小分辨率为0.019A; 测量误差约为+0.0AV; 系统设计思路 1、 根据设计要求,选择AT89S51单片机作为核心控制器件。 2、 A/D 转换采用ADC0809 实现。与单片机的接口为 P0 口和 P2 的高四位引脚。 3、 电压显示采用4 位一体的LED 数码管。 4、 LED 数码管的段码输入,由并行端口 P1 产生;位码输入,由并行端口 P3 低三位产生。 图2.1设计思路框图 总体结构 数字电流表的组成 图2.2 数字电流表的组成框图 数字直流电流表的核心是A/D转换器。按系统功能实现要求,决定控制系统采用AT89C5单片机,A/D转换采用ADC0809。系统除能确保实现要求的功能外,还可以方便地进行8路其他A/D转换量的测量和远程测量结果传送等扩展功能。数字电表系统设计方案框图如图所示。 图2.3 数字电流表系统设计方案框图 电路设计 1、IO口资源分配 ① P3口连接ADC0804的8位数据口; ② P1.4连接ADC0804的2、3引脚,进行数据读取控制; ③ P0口连接LED数码管段码A-H; ④ P2、0-P2、2连接LED数码管的位选驱动; ⑤ P1.0,P1.1连接按键,P1.2连接LED指示灯; 10倍放大器电路 下图是一个最简单的10倍放大电路,运算放大器使用的是精度比较高的OP07,利用它,可以把0~00mV的电压放大到0~.000V。在使用的数字电表量程为.000A时,特别有用。如果把它应用在基本量程为±00.0mA的数字电表上,就相当于把分辨力提高了10倍,在一些测量领域中,传感器的信号往往觉得太小了,这时,可以考虑在数字表前面加上这种放大器来提高分辨力。 图倍放大器电路 A/D转换电路 在电流或者电压的测量中,经常遇见测量的并不是直流而是交流,这时候,绝对不可以把交流信号直接输入到数字电表去,必须先把被测的交流信号变成直流信号后,才可以送入数字电表进行测量。下图就是一个把交流信号转换成为直流信号的参考电路。(说明:更好的交流转换成为直流的电路是一种“真有效值”转换电路,但是由于其专用芯片价格昂贵,多应用在一些高档场合。) 本电路中,输入的是0~200.0mV的交流信号,输出的是0~200.0mV的直流信号,从信号幅度来看,并不要求电路进行任何放大,但是,正是电路本身具有的放大作用,才保证了其几乎没有损失地进行AC-DC的信号转换。因此,这里使用的是低功耗的高阻输入运算放大器,其不灵敏区仅仅只有2m左右,在普通数字万用表中大量使用,电路大同小异。首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平 时,输出三态门打开,转换结果的数字量输出到数据总线上。 AC-DC转换电路 电桥输入电路 在温度测量和其他物理及化学量的测量中,经常会出现“零点”的时候信号不是零的情况,这时候,下面的“电桥输入”电路就被优先采用了。可以根据被测信号的特点,用传感器替换电桥回路中的某一个电阻元件。数字电压表的两个输入端也不再有接地点,作为一种典型的“差分”输入来使用了。 测量电路 电桥输入电路的变种还可以延伸到下面的电路,这是一个把4~20mA电流转换为数字显示的电路。它的零点就是4mA而不是0mA。当输入零点电流为4mA的时候,利用IN-上面建立起来的电压,抵消掉IN+由于4mA出现的无用信号,使得数字电压表差分输入=0,就实现了4mA输入时显示为0的要求。随着信号的继续增大,例如到了20mA,对数字电表来说,相当于差分输入电流为20-4=16mA,这个16mA在62.5R电阻上的压降,就是数字电表的最大输入信号。这时候,把数字电表的基准电压调整到与16*62.5=1000mV相等,显示就是1000个字。 .7 测量电路 简易数字电表测量电路由A/D转换、数据处理及显示控制等组成。 A/D转换有集成电路ADC0809完成。ADC0809具有8路模拟输入端口,地址线脚)可决定对哪一路模拟输入作A/D转换。第22脚位地址锁存控制,当输入为高电平时,对地址信号进行锁存。第6脚位测试控制,当输入一个2μs 宽高电平脉冲时,就开始A/D转换。第7脚为A/D转换结束标志,当A/D转换结束时,第7脚输出高电平。第9脚为A/D转换数据输出允许控制,当OE脚为高电平时,A/D转换数据从端口输出。第10脚为ADC0809的时钟输入端,利用单片机第30脚嘚分频晶振频率,再通过14024二分频得到1MHz时钟。 单片机的P1、P3.0-P3.3端口作为4位LED数码管显示控制。P3.5端口用作单路显示/循环显示转换按钮。P3.6端口用作单路显示时选择显示的通道。P0端口用作A/D转换数据读入,P2端口用作ADC0809的A/D转换控制。 单片机的选择 20世纪80年代以来,单片机的发展非常迅速,就通用单片机而言,世界上一些著名的计算机厂家已投放市场的产品就有50多个系列,数百个品种。目前世界上较为著名的8位单片机的生产厂家和主要机型如下: 美国Intel公司:MCS—51系列及其增强型系列 美国Motorola公司:6801系列和6805系列 美国Atmel公司:89C52等单片机 美国Zilog公司:Z8系列及SUPER8 美国Fairchild公司:F8系列和3870系列 美国Rockwell公司:6500/1系列 美国TI(德克萨司仪器仪表)公司:TMS7000系列 NS(美国国家半导体)公司:NS8070系列 等等。 尽管单片机的品种很多,但是在我国使用最多的还是Intel公司的MCS—51系列单片机和美国Atmel公司的89C52单片机 MCS—51系列单片机包括三个基本型8031、8051、8751 8031内部包括一个8位CPU、128个字节RAM,21个特殊功能寄存器(SFR)、4个8位并行I/O口、1个全双工串行口、2个16位定时器/计数器,但片内无程序存储器,需外扩EPROM芯片。比较麻烦,不予采用 8051是在8031的基础上,片内集成有4K ROM,作为程序存储器,是一个程序不超过4K字节的小系统。ROM内的程序是公司制作芯片时,代为用户烧制的,出厂的8051都是含有特殊用途的单片机。所以8051适合与应用在程序已定,且批量大的单片机产品中。也不予采用。 8751是在8031基础上,增加了4K字节的EPROM,它构成了一个程序小于4KB的小系统。用户可以将程序固化在EPROM中,可以反复修改程序。但其价格相对8031较贵。8031外扩一片4KB EPROM的就相当于8751,它的最大优点是价格低。随着大规模集成电路技术的不断发展,能装入片内的外围接口电路也可以是大规模的。也不予采用。 AT89S51是美国ATMEL公司生产的低功耗、高性能CMOS 8位单片机。图1-6和1-7分别为其实物图和内部总体结构图。AT89S51片内含有4k字节Flash闪速存储器,128字节内部 RAM,32个I/O 口线,看门狗(WDT),两个数据指针,两个16 位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,S51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许 RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存 RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89S51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。因此我选择AT89S51为系统的控制器。 A/D转换器的选择 A/D转换器大致分有三类:一是双积分A/D转换器,二是逐次逼近式A/D转换器,三是并行A/D转换器。 双积分A/D转换器通过两次积分将输入的模拟电压转换成时间或频率,然后由定时器/计数器获得数字值。它的优点是分辨率高,抗干扰性好,价格便宜,但转换速率低。 逐次逼近式A/D转换器是将采样输入信号与给定电压不断地进行比较,从逐次逼近寄存器的最高位开始,顺序地对寄存器的每一位将输入电压与内置D/A转换器输出进行比较,一个时钟周期完成1位转换,进过n次比较而得到数字值。它的优点是精度、速度、价格适中、不存在延迟问题。适合于中速率而分辨率较高的场合。 并行A/D转换器是内部有多个比较器,只需要作一次比较就可完成转换。优点是它是所有A/D转换器中速度最快的,但价格也昂贵,分辨率却不是很高。 在转换精度、转换速率、以及经济上的考虑,该系统决定选用逐次逼近式A/D转换器的ADC0809型。ADC0809是典型的8位MOS型8通道逐次逼近式A/D转换器,每采集一次一般需100μs。 图3.1 逐次逼近式A/D转换原理图 LED显示电路的选择 LED显示器是由N个LED显示块拼接成N位LED显示器。N个LED显示块有N跟位选线,根据显示方式的不同,位选线和段选线的连接方法也各不相同,段选线控制显示字符的字型,而位选线为各个LED显示块的公共端,它控制该LED显示位的亮、暗。LED显示器有静态显示和动态显示两种显示方式。 (1)LED静态显示方式: LED显示器工作于静态显示方式时,各位的共阴极(或共阳极)连接在一起并接地(或+5V);每位的段选线(a~dp)分别与一个8位的锁存器输出相连。所以称为静态显示。各个LED的显示字符一经确定,相应锁存器的输出将维持不变,直到显示另一个字符为止。也正因此如此,静态显示器的亮度都较高。这种显示方式接口编程容易。付出的代价是占用口线较多,若用I/O接口,则要占用4个8位I/O口,若用锁存器接口,则要用4片74LS373芯片。如果显示器位数增多,则静态显示方式更是无法适应,因此在显示位数较多的情况下,一般都采用动态显示方式。 (2)LED动态显示方式: 在多位LED显示时,为了简化硬件电路,通常将所有位的段选线相应的并联在一起,有一个8位I/O口控制,形成段选线的多路复用。而各位的共阳极或共阴极分别由相应的I/O线控制,实现各位的分时选通。其中段选线位I/O口,而位选线位I/O口。由于各位的段选线并联,段码的输出对各位来说都是相同的,因此,同一时刻,如果各位位选线位LED将显示相同的字符。若要各位LED能够显示出与本位相应的显示字符,就必须采用扫描显示方式,即在某一时刻,只让某一位的位选线状态,而其他各位的位选线处于关闭状态,同时,段选线上输出相应位要显示字节的段码。在确定LED不同位显示的时间间隔,不能太短,因为发光二极管从导通到发光有一定的延时,导通时间太短,发光太弱人眼无法看清。但也不能太长,因为毕竟要受限于临界闪烁频率,而且此时间越长,占用CPU时间也越多,另外,显示位增多,也将占用大量的CPU时间,因此动态显示实质是一牺牲CPU时间来换取元件的减少。 所以,由于本系统涉及到4位显示输出,采用LED动态扫描显示方式。 所需元器件清单 表3.1所需元器件材料表 器件类型 器件名 数值 数量 单片机 AT89S51 1 A/D转换器 ADC0809 1 数码管 TSEG-MP*4-CC-BLUE 1 开关 按键开关 1 电容 C1、C2 33uF C3 10uF 1 电阻 R1 1K 2 排阻 RP1 200 1 变阻器 RV1 1K 1 晶振 X1 1MHz 1 数字式电流表的硬件设计 硬件电路设计概述 硬件电路设计主要包括:AT89S51单片机系统,A/D转换电路,显示电路。测量最大电压为5A,显示最大值为5.00A。本实验采用AT89S51单片机芯片配合ADC0809模/数转换芯片构成一个简易的数字电流表。 硬件电路设计由6个部分组成; A/D转换电路,AT89C51单片机系统,LED显示系统、时钟电路、复位电路以及测量电流输入电路。硬件电路设计框图如图1所示。 图4.1 数字式电流表系统硬件设计框图 主要元器件的介绍 单片机AT89S51 AT89S51是美国ATMEL公司生产的低功耗、高性能CMOS 8位单片机。图4.2和4.3分别为其实物图和内部总体结构图。AT89S51片内含有4k字节Flash闪速存储器,128字节内部 RAM,32个I/O 口线,看门狗(WDT),两个数据指针,两个16 位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,S51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许 RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存 RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89S51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 主要性能参数 与MCS-51产品指令系列完全兼容; 4K字节在系统编程(ISP)Flash闪速存储器; 1000次擦写周期; 4.0~5.5 V工作电压范围; 全静态工作模式:0Hz~33MHz; 三级程序加密锁; 128字节内部RAM; 32个可编程I/O口线个中断源; 全双工串行UART通道; 低工耗空闲和掉电模式; 中断可从空闲模式唤醒系统; 看门狗(WDT)及双数据指针; 掉电标识和快速编程特性; 灵活的在系统编程 AT89S51的引脚 AT89S51芯片为40引脚双列直插式封装,其引脚排列如图4.2所示。 图4.2 AT89S51的引脚图 (1)VCC:电源电压; (2)GND:接地; (3)P0口:P0口是一组8位漏极开路双向I/O口,每位引脚可驱动8个TTL逻辑门路。对P0口的管脚写“1”时,被定义为高阻抗输入。在访问外部数据存储器或程序存储器时,它可以被定义为数据总线和地址总线的低八位。在FLASH编程时,P0 口作为原码输入口;当FLASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻。 (4)P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口的输出缓冲器可驱动4个TTL逻辑门电路。对P1口管脚写入“1”后,被内部上拉电阻拉高,可用作输入。P1口被外部下拉为低电平时,将输出电流,这是由于内部接有上拉电阻的缘故。在FLASH编程和校验时,P1口作为低八位地址接收。P1口还具有第二功能,如表4.1所示。 ???? 表4.1 P1口的第二功能 端口引脚 第二功能 P1.5 MOSI(用于ISP编程) P1.6 MISO(用于ISP编程) P1.7 SCK(用于ISP编程) (5)P2口:P2口是一个内部提供上拉电阻的8位双向I/O口,P2口的输出缓冲器可驱动4个TTL逻辑门电路。对P2口管脚写入“1”后,被内部上拉电阻拉高,可用作输入。P2口被外部下拉为低电平时,将输出电流,这是由于内部接有上拉电阻的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在访问8位地址外部数据存储器时,P2口线上的内容,在整个访问期间不改变。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 (6)P3口:P3口是一个内部提供上拉电阻的8位双向I/O口,P3口的输出缓冲器可驱动4个TTL逻辑门电路。对P3口管脚写入“1”后,被内部上拉电阻拉高,可用作输入。P3口被外部下拉为低电平时,将输出电流,这是由于内部接有上拉电阻的缘故。P3口除了一般I/O线的功能外,还具有更为重要的第二功能,如表4.2所示。P3口同时为FLASH编程和编程校验接收一些控制信号 表4.2 P3口的第二功能 端口引脚 第二功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INTO(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(定时器0外部输入) P3.5 T1(定时器1外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通) (7) RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 (8) ALE//RPOG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 (9)/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的信号将不出现。 (10)/EA/VPP:当保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 AT89S51 有256 个字节的内部RAM,80H-FFH 高128 个字节与特殊功能寄存器(SFR)地址是重叠的,也就是高128字节的RAM 和特殊功能寄存器的地址是相同的,但物理上它们是分开的。 ·定时器0和定时器1: AT89S51的定时器0和定时器1 的工作方式与AT89C51 相同。定时和计数功能由特殊功能寄存器TMOD的控制位C/T进行选择,这两个定时/计数器有4种操作模式,通过TMOD的M1和M0选择。其中模式0、1和2都相同,模式3不同。 ·定时器2: 定时器2 是一个16 位定时/计数器。它既可当定时器使用,也可作为外部事件计数器使用,其工作方式由特殊功能寄存器T2CON的C/T2 位选择。定时器2 有三种工作方式:捕获方式,自动重装载(向上或向下计数)方式和波特率发生器方式,工作方式由T2CON 的控制位来选择。 定时器2 由两个8 位寄存器TH2 和TL2 组成,在定时器工作方式中,每个机器周期TL2 寄存器的值加1,由于一个机器周期由12 个振荡时钟构成,因此,计数速率为振荡频率的1/12。 在计数工作方式时,当T2 引脚上外部输入信号产生由1 至0 的下降沿时,寄存器的值加1,在这种工作方式下,每个机器周期的5SP2 期间,对外部输入进行采样。若在第一个机器周期中采到的值为1,而在下一个机器周期中采到的值为0,则在紧跟着的下一个周期的S3P1 期间寄存器加1。由于识别1 至0 的跳变需要2 个机器周期(24 个振荡周期),因此,最高计数速率为振荡频率的1/24。为确保采样的正确性,要求输入的电平在变化前至少保持一个完整周期的时间,以保证输入信号至少被采样一次。 ·可编程时钟输出: 定时器2 可通过编程从P1.0 输出一个占空比为50%的时钟信号。P1.0 引脚除了是一个标准的I/O 口外,还可以通过编程使其作为定时/计数器2 的外部时钟输入和输出占空比50%的时钟脉冲。当时钟振荡频率为16MHz 时,输出时钟频率范围为61Hz—4MHz。 ·UART: AT89S51的工作方式与AT89C51工作方式相同。串口为全双工结构,表示可以同时发送和接收,它还具有接收缓冲,在第一个字节从寄存器读出之前,可以开始接收第二个字节。(但是如果第二个字节接收完毕时第一个字节仍未读出,其中一个字节将会丢失)。串口的发送和接收寄存器都是通过SFR SBUF进行访问的。写入SBUF的数据装入发送寄存器,对SBUF的读操作是对物理上分开的接收寄存器进行访问。 该串口有4种操作模式(模式0、模式1、模式2和模式3),在这4种模式中,发送过程是以任意一条写SBUF作为目标寄存器的指令开始的,模式0时接收通过设置R0=0及REN=1初始化,其他模式下如若REN=1则通过起始位初始化。 ·中断: AT89S51共有6 个中断向量:两个外中断(INT0 和INT1),3 个定时器中断(定时器0、1、2)和串行口中断。 这些中断源可通过分别设置专用寄存器IE 的置位或清0 来控制每一个中断的允许或禁止。IE 也有一个总禁止位EA,它能控制所有中断的允许或禁止。 定时器2 的中断是由T2CON 中的TF2 和EXF2 逻辑或产生的,当转向中断服务程序时,这些标志位不能被硬件清除,事实上,服务程序需确定是TF2 或EXF2 产生中断,而由软件清除中断标志位。 定时器0 和定时器1 的标志位TF0 和TF1 在定时器溢出那个机器周期的S5P2 状态置位,而会在下一个机器周期才查询到该中断标志。然而,定时器2 的标志位TF2 在定时器溢出的那个机器周期的S2P2 状态置位,并在同一个机器周期内查询到该标志。 ·时钟振荡器: AT89S51中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1 和XTAL2 分别是该放大器的输入端和输出端。 这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器,振荡电路。 外接石英晶体(或陶瓷谐振器)及电容C1、C2 接在放大器的反馈回路中构成并联振荡电路。对外接电容C1、C2 虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性,如果使用石英晶体,我们推荐电容使用30pF±10pF,而如使用陶瓷谐振器建议选择40pF±10F。 用户也可以采用外部时钟。采用外部时钟的电路。这种情况下,外部时钟脉冲接到XTAL1 端,即内部时钟发生器的输入端,XTAL2 则悬空。 由于外部时钟信号是通过一个2 分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求。 ·Flash存储器的编程: AT89S51单片机内部有8k字节的Flash PEROM,这个Flash 存储阵列出厂时已处于擦除状态(即所有存储单元的内容均为FFH),用户随时可对其进行编程。编程接口可接收高电压(+12V)或低电压(Vcc)的允许编程信号。低电压编程模式适合于用户在线编程系统,而高电压编程模式可与通用EPROM 编程器兼容。 ·数据查询: AT89S51 单片机用Data Palling 表示一个写周期结束为特征,在一个写周期中,如需读取最后写入的一个字节,则读出的数据的最高位(P0.7)是原来写入字节最高位的反码。写周期完成后,所输出的数据是有效的数据,即可进入下一个字节的写周期,写周期开始后,Data Palling 可能随时有效。 ·Ready/Busy:字节编程的进度可通过“RDY/BSY 输出信号监测,编程期间,ALE 变为高电平“H”后,P3.4(RDY/BSY)端电平被拉低,表示正在编程状态(忙状态)。编程完成后,P3.4 变为高电平表示准备就绪状态。 ·程序校验:如果加密位LB1、LB2 没有进行编程,则代码数据可通过地址和数据线读回原编写的数据,采用如图12的电路。加密位不可直接校验,加密位的校验可通过对存储器的校验和写入状态来验证。 ·芯片擦除:利用控制信号的正确组合并保持ALE/PROG 引脚10mS 的低电平脉冲宽度即可将PEROM 阵列(4k字节)和三个加密位整片擦除,代码阵列在片擦除操作中将任何非空单元写入“1”,这步骤需再编程之前进行。 A/D转换芯片ADC0809 ADC0809是典型的8位8通道逐次逼近式A/D转换器,其实物如图1-3所示。它可以和微型计算机直接接口。ADC0809转换器的系列芯片是ADC0808,可以相互替换。 ADC0809内部逻辑结构 图4.3 ADC0809的内部逻辑结构图 ADC0809的内部逻辑结构如图4.7所示。图中多路模拟开关可选通8路模拟通道,允许8路模拟量分时输入,并共用一个A/D转换器进行转换。地址锁存与译码电路完成对A、B、C三个地址位进行锁存与译码,如表4.3所示。 表4.3 ADC0809通道选择表 C(ADDC) B(ADDB) A(ADDA) 选择的通道 0 0 0 IN0 0 0 1 IN1 0 1 0 IN2 0 1 1 IN3 1 0 0 IN4 1 0 1 IN5 1 1 0 IN6 1 1 1 IN7 ADC0809的引脚 ADC0809芯片为28引脚双列直插式芯片,其主要功能: (1)IN0~IN7:8路模拟量输入通道。 (2)A、B、C:模拟通道地址线路模拟通道的选择,其译码关系如表4.3所示。其中,A为低地址,C为高地址,引脚图中为ADDA,ADDB和ADDC。 (3)ALE:地址锁存允许信号。对应ALE上跳沿,A、B、C地址状态送入地址锁存器中。 (4)START:转换启动信号。START上升沿时,复位ADC0809;START下降沿时启动芯片,开始进行A/D转换;在A/D转换期间,START应保持低电平。本信号有时简写为ST。 (5)D7~D0:数据输出线。为三态缓冲输出形式,可以和单片机的数据线)OE:输出允许信号。用于控制三态输出锁存器向单片机输出转换得到的数据。OE=0,输出数据线,输出转换得到的数据。 (7)CLK:时钟信号。ADC0809的内部没有时钟电路,所需时钟信号由外界提供,因此有时钟信号引脚。通常使用频率为500KHz的时钟信号。 (8)EOC:转换结束信号。EOC=0,正在进行转换;EOC=1,转换结束。使用中该状态信号即可作为查询的状态标志,又可作为中断请求信号使用。 (9)Vcc: +5V电源,GND:地。 (10)Vref:参考电压。参考电压用来与输入的模拟信号进行比较,作为逐次逼近的基准。其典型值为+5V(Vref(+)=+5V, Vref(-)=0V)。 ADC0809的工作原理 首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。 (注意:ALE信号常与START信号连在一起,这样连接可以在信号的前沿写入地址信号,在其后沿启动A/D转换,图4.4为ADC0809信号的时序配合图)。 图4.4 ADC0809信号的时序配合 4位一体7段LED数码管 本实验的显示模块主要由一个4位一体的7段LED数码管(SM410564)构成,用于显示测量到的电压值。它是一个共阳极的数码管,每一位数码管的原理图如图4.5所示。每一位数码管的a,b,c,d,e,f,g和dp端都各自连接在一起,用于接收AT89C52的P1口产生的显示段码。C1,C2,C3,C4引脚端为其位选端,用于接收AT89C52的P3口产生的位选码。 图4.5 一位数码管的原理图 图4.6 4位一体7段LED数码管图 控制电路模块 总电路 本课题实验主要采用AT89S51芯片和ADC0809芯片来完成一个简易的数字电压表,能够对输入的0~5 V的模拟直流电流进行测量,并通过一个4位一体的7段LED数码管进行显示,测量误差约为0.02 V。该电流表的测量电路主要由三个模块组成:A/D转换模块、数据处理模块及显示控制模块。A/D转换主要由芯片ADC0809来完成,它负责把采集到的模拟量转换为相应的数字量再传送到数据处理模块。数据处理则由芯片AT89S51来完成,其负责把ADC0809传送来的数字量经一定的数据处理,产生相应的显示码送到显示模块进行显示;另外它还控制着ADC0809芯片的工作。显示模块主要由7段数码管及相应的驱动组成,显示测量到的电流值。数字式电流表的设计的总电路图见附录一。 AT89S51的复位电路和时钟电路 AT89S51的复位电路如图4.7所示。当单片机一上电,立即复位;另外,如果在运行中,外界干扰等因素使单片机的程序陷入死循环状态或“跑飞”,就可以通过按键使其复位。复位也是使单片机退出低功耗工作方式而进入正常状态的一种操作。 图4.7 复位电路和时钟电路 电容C和电阻R1实现上电自动复位。增加按键开关S又可实现按键复位功能。一般取C=10uF,R1=1KΩ。 单片机中CPU每执行一条指令,都必须在统一的时钟脉冲的控制下严格按时间节拍进行,而这个时钟脉冲是单片机控制中的时序电路发出的。CPU执行一条指令的各个微操作所对应时间顺序称为单片机的时序。MCS-51单片机芯片内部有一个高增益反相放大器,用于构成震荡器,XTAL1为该放大器的输入端,XTAL2为该放大器输出端,但形成时钟电路还需附加其他电路。 本设计系统采用内部时钟方式,利用单片机内部的高增益反相放大器,外部电路简,只需要一个晶振和2个电容即可。 电路中的器件选择可以通过计算和实验确定,也可以参考一些典型电路的参数,电路中,电容器C1和C2对震荡频率有微调作用,通常的取值范围是30±10pF,在这个系统中选择了33uF;石英晶振选择范围最高可选24MHz,它决定了单片机电路产生的时钟信号震荡频率,在本系统中选择的是12MHz,因而时钟信号的震荡频率为12MHz。 A/D转换电路 A/D转换由ADC0809完成。ADC0809具有8路模拟输入端口,地址线脚)可决定对哪一路模拟输入作A/D转换。22脚为地址控制,当输入为高电平时,对地址信号进行锁存。6脚为测试控制,当输入一个2μs宽高电平脉冲时,就开始A/D转换。7脚为A/D转换结束标志,当A/D转换结束时,7脚输出高电平。9脚为A/D转换数据输出允许控制,当OE脚为高电平时,A/D转换数据从该端口输出。10脚为ADC0809的时钟输入端,利用单片机AT89S51的30脚的六分频晶振频率再通过14024二分频得到1MHz时钟。AT89S51与ADC0809的连接电路原理图如图4.8所示。 图4.8 AT89S51与ADC0809的连接电路原理图 AT89S51与ADC0809的连接必须注意处理好3个问题: (1)在START端送一个100μs宽的启动正脉冲; (2)获取EOC端上的状态信息,因为它是A/D转换的结束标志; 给“三态输出锁存器”分配一个端口地址,也就是给OE端送一个地址译码器的输出信号。 显示电路 由于单片机的并行口不能直接驱动LED显示器,所以,在一般情况下,必须采用专用的驱动电路芯片,使之产生足够大的电流,显示器才能正常工作[7]。如果驱动电路能力差,即负载能力不够时,显示器亮度就低,而且驱动电路长期在超负荷下运行容易损坏,因此,LED显示器的驱动电路设计是一个非常重要的问题。 为了简化数字式直流电流表的电路设计,在LED驱动电路的设计上,可以利用单片机P0口上外接的上拉电阻来实现,即将LED的A-G段显示引脚和DP小数点显示引脚并联到P0口与上拉电阻之间,这样,就可以加大P0口作为输出口德驱动能力,使得LED能按照正常的亮度显示出数字。 系统采用动态显示方式驱动4个数码管工作,显示电路与单片机的P1口相连来显示采集到的电流值。如图4.9所示: 图4.9 显示电路原理图 数字式电流表的软件设计 系统程序设计总方案 根据模块的划分原则,将该程序划分初始化模块,A/D转换子程序和显示子程序,这三个程序模块构成了整个系统软件的主程序,如图5.1所示。 图5.1 数字式直流电流表主程序框图 系统子程序设计 初始化程序 所谓初始化,是对将要用到的MCS_51系列单片机内部部件或扩展芯片进行初始工作状态设定,初始化子程序的主要工作是设置定时器的工作模式,初值预置,开中断和打开定时器等。 A/D转换子程序 A/D转换子程序用来控制对输入的模块电流信号的采集测量,并将对应的数值存入相应的内存单元,其转换流程图如图5.2所示。 图5.2 A/D转换流程图 显示子程序 显示子程序采用动态扫描实现四位数码管的数值显示,在采用动态扫描显示方式时,要使得LED显示的比较均匀,又有足够的亮度,需要设置适当的扫描频率,当扫描频率在70HZ左右时,能够产生比较好的显示效果,一般可以采用间隔10ms对LED进行动态扫描一次,每一位LED的显示时间为1ms。 在本设计中,为了简化硬件设计,主要采用软件定时的方式,即用定时器0溢出中断功能实现11μs定时,通过软件延时程序来实现5ms的延时。其转换流程图如图5.3所示。 图5.2 显示子程序流程图 系统程序代码 根据数字式电压表的设计电路图及系统软件流程图所需系统软件的主程序代码: LED_0 EQU 30H ;//百分位显示存储 LED_1 EQU 31H ;//十分位显示存储 LED_2 EQU 32H ;//个位显示存储 ADC EQU 35H CLOCK BIT P2.4 ST BIT P2.5 EOC BIT P2.6 OE BIT P2.7 ORG 00H SJMP MAIN ORG 0BH LJMP INT_T0 MAIN: MOV LED_0, #00H ;//初始化 MOV P2, #0FFH MOV LED_1, #00H MOV LED_2, #00H MOV DPTR, #TABLE MOV TMOD, #02H ;//定时器T0 定时器工作模式,工作在方式1 MOV TH0,#245 ;//装入计数初值 MOV TL0,#00H MOV IE, #82H SETB TR0 ;//置位定时器T0溢出中断请求标志位 HERE: CLR ST SETB ST CLR ST JNB EOC, $ ;//判断转换是否结束 SETB OE ;//允许输出转换的数字量 MOV ADC, P1 ;//转换的数字量存入ADC即35H中 CLR OE MOV A, ADC MOV B, #51 DIV AB MOV LED_2, A MOV A, B MOV B, #5 DIV AB MOV LED_1, A MOV LED_0, B LCALL DISP SJMP HERE INT_T0: CPL CLOCK ;//提供时钟 RETI DISP: MOV A, LED_0 ;//显示程序 MOVC A, @A+DPTR CLR P2.3 MOV P0, A LCALL DELAY SETB P2.3 MOV A, LED_1 MOVC A,@A+DPTR CLR P2.2 MOV P0, A LCALL DELAY SETB P2.2 MOV A, LED_2 MOVC A, @A+DPTR CLR P2.1 ORL A, #80H MOV P0, A LCALL DELAY SETB P2.1 RET DELAY: MOV R6, #10 ;//50ms延时 D1: MOV R7, #250 DJNZ R7, $ DJNZ R6, D1 RET TABLE: DB 3FH, 06H, 5BH, 4FH, 66H ;//数码管显示共阴极段码 DB 6DH, 7DH, 07H, 7FH, 6FH END 数字式电流表的调试 软件调试 软件调试的主要任务是排查错误,错误主要包括逻辑和功能错误,这些错误有些是显性的,而有些是隐形的。Proteus软件可以对基于微控制器的设计连同所有的周围电子器件一起仿真,用户甚至可以实时采用诸如LED/LCD、键盘、RS232终端等动态外设模型来对设计进行交互仿真。Proteus支持的微处理芯片包括8051系列、AVR系列、PIC系列、HC11系列及Z80等等。Proteus可以完成单片机系统原理图电路绘制、PCB设计,更为显著点的特点是可以与u Visions3 IDE工具软件结合进行编程仿真调试。 本系统的调试主要以软件为主,其中,系统电路图的绘制和仿真我采用的是Proteus软件,而程序方面,采用的是汇编语言,用Keil软件将程序写入单片机。 显示结果及误差分析 显示结果 当IN0口输入电压值为0A时,显示结果如图6.1所示,测量误差为0A。 图6.1 输入电流为0V时,LED的显示结果 2.当IN0输入电流值为1.50A时,显示结果如图6.2所示。测量误差为0.01A。 图6.2 输入电流为1.50V时,LED的显示结果 3. 当IN0口输入电流值为3.50A时,显示结果如图6.3。测量误差为0.01A。 图6.3 输入电流为3.50A时,LED的显示结果 误差分析 通过以上仿真测量结果可得到简易数字电压表与“标准”数字电压表对比测试表,如下表6.1所示: 表6.1 简易数字电流表与“标准”数字电流表对比测试表 标准电流值/A 简易电流表测量值/A 绝对误差/A 0.00 0.00 0.00 0.50 0.51 0.01 1.00 1.00 0.00 1.50 1.51 0.01 2.00 2.00 0.00 2.50 2.50 0.00 3.00 3.00 0.00 3.50 3.50 0.00 4.00 4.00 0.00 4.99 5.00 0.01 由于单片机AT89C51为8位处理器,当输入电流为5.00A时,ADC0809输出数据值为255(FFH),因此单片机最高的数值分辨率为0.0196A(5/255)。这就决定了电流表的最高分辨率只能到0.0196A,从上表可看到,测试电流一般以0.01A的幅度变化。 从上表可以看出,简易数字电流表测得的值基本上比标准电压值偏大0-0.01A,这可以通过校正ADC0809的基准电压来解决。因为该电压表设计时直接用5A的供电电源作为电压,所以电压可能有偏差。当要测量大于5A的电流时,可在输入口使用分压电阻,而程序中只要将计算程序的除数进行调整就可以了。 结 论 经过一段时间的努力,毕业论文-基于单片机的简易数字电压表基本完成。但设计中的不足之处仍然存在。这次设计是我第一次设计电路,并用Proteus实现了仿真。在这过程中,我对电路设计,单片机的使用等都有了新的认识。通过这次设计学会了Proteus和Keil软件的使用方法,掌握了从系统的需要、方案的设计、功能模块的划分、原理图的设计和电路图的仿真的设计流程,积累了不少经验。 基于单片机的数字电流表使用性强、结构简单、成本低、外接元件少。在实际应用工作应能好,测量电流准确,精度高。系统功能、指标达到了课题的预期要求、系统在硬件设计上充分考虑了可扩展性,经过一定的改造,可以增加功能。本文设计主要实现了简易数字电流表测量一路电流的功能,详细说明了从原理图的设计、电路图的仿真再到软件的调试。 通过本次设计,我对单片机这门课有了进一步的了解。无论是在硬件连接方面还是在软件编程方面。本次设计采用了AT89C51单片机芯片,与以往的单片机相比增加了许多新的功能,使其功能更为完善,应用领域也更为广泛。设计中还用到了模/数转换芯片ADC0809,以前在学单片机课程时只是对其理论知识有了初步的理解。通过这次设计,对它的工作原理有了更深的理解。在调试过程中遇到很多问题,硬件上的理论知识学得不够扎实,对电路的仿真方面也不够熟练。 总之这次电路的设计和仿真,基本上达到了设计的功能要求。在以后的实践中,我将继续努力学习电路设计方面的理论知识,并理论联系实际,争取在电路设计方面能有所提升。 致谢 本设计制作历时近三个月,从论文的制作要求到初稿的修改过程一直到最后的完稿,宋金茂老师都孜孜不倦的指导我,给予了我很大的关怀和帮助,并给我提出了宝贵的意见。宋金茂老师所具有的严谨的治学态度、平易近人的品德以及对国内外学术动态的敏锐洞察力,无一不给我留下深刻的印象。在他的深切关怀和悉心指导下,我才能极好的完成我的论文。在此,我谨向宋金茂老师致以诚挚的谢意和崇高的敬意。 最后,我要感谢四年的大学生活,感谢西安电子科技大学长安学院的全体教职工,感谢08331班的全体师生,感谢你们陪我走过了人生中极具意义的四年,谢谢。 参考文献 [1]胡健.单片机原理及接口技术[M].北京:机械工业出版社,2004年10月 [2]王毓银.数字电路逻辑设计[M].高等教育出版社,2005年12月 [3]于殿泓、王新年.单片机原理与程序设计实验教程[M].西安电子科技大学出版社,2007年5月 [4]谢维成、杨加国.单片机原理与应用及C51程序设计实例[M].电子工业出版社,2006年3月 [5]李广弟.单片机基础[M].北京航空航天大学出版社,2007年5月 [6]姜志海,黄玉清等著.单片机原理及应用[M] .北京:电子工业出版社.2005年7月 [7]魏立峰.单片机原理及应用技术[M].北京大学出版社,2005年 [8]周润景.Protues在MCS-51&ARM7系统中的应用百例[M].第一版.北京:电子工业出版社,2006年 [9]边春远等著.MCS-51单片机应用开发实用子程序[M] .北京:人民邮电出版社,2005年9月. [10]苗红霞.单片机实现数字电压表的软硬件设计[J] .河海大学常州分校学报,2002,(03). [11]宋凤娟,孙军,李国忠.基于89C51单片机的数字电压表设计[J] .工业控制计算机,2007,(04). 附录一 数字式电流表设计的原理图 附录二实物图 - 2 - 摘要 摘要 ABSTRACT ABSTRACT ii 目录 目录 i 34 直流数字电流表的设计 第六章 数字式电流表的调试 35 致谢 41 附录二实物图 参考文献 43 附录二实物图 附录一 主控模块 显示模块 A/D转换模块 AT89C51 P0 P2 P1 P3 ADC0809 4位LED显示 上电复位 串口通信 电源电路 输入数字电流 输入电流 电流 比较器 顺序脉冲 发生器 逐次逼近寄存器 DAC 时钟电路 复位电路 A/D转换电路 测量电流输入 显示系统 AT89C51 P1 P2 P2 P0 开始 初始化 调用A/D转换子程序 调用显示子程序 结束 开始 启动转换 A/D转换结束? 输出转换结果 数值转换 显示 结束 动态显示子程序 选择通道 显示缓冲区首地址送R0 指向右边第一位 取出要显示的数据 查等显示数据的显示码 送7段码到P1口 IS延时处理 4位显示完成? 返回 计算下一位位选码 修改显示缓冲区地址 N


365真人游戏

@SHENZHEN ENERGY Corporation All Rights Reserved.

365真人游戏