




已阅读5页,还剩36页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕业论文-直流数字电压表的设计与实现 毕业设计论文摘 要在日常维修教学和科研中电压表是不可缺少的本课题目的就是以单片机为基础设计出一种结构简单工作可靠灵活性好的数字电压表本文首先介绍了数字电压表的发展现状及课题的目的和意义然后对基于单片机的数字电压表的硬件系统软件系统的设计原理及具体实现方案作以详细介绍其中在硬件部分较为详细的讨论了硬件的选择设计原理使用方法和功能同时对各部分接口电路作以介绍在软件部分介绍了软件所使用的编程语言和编程思路本文设计的数字电压表其硬件电路所用组件较少成本低调节简单软件采用C语言编程其灵活性高可读性强该设计主要由三个模块组成AD转换模块数据处理模块及显示模块AD转换主要由芯片ADC0809来完成它负责把采集到的模拟量转换为相应的数字量在传送到数据处理模块数据处理则由芯片AT89C51来完成其负责把ADC0809传送来的数字经过一定的数据处理产生相应的显示码送到显示模块进行显示此外它还控制着ADC0809芯片工作经过理论研究原理设计和整机调试实验结果表明该方案可行本次设计的电压表所测量的直流电压范围为04v要求测量电压的误差不超过01v它以单片机AT89C51为核心主要由转换电路将输入的模拟量转换为数字量的AD转换器ADC08091602液晶显示器构成关键词单片机电压表AD转换器1602液晶显示器ABSTRACTIn routine maintenance teaching and research voltage meter is indispensable A direct current digital voltage meter has been designed which is based on MCU and has a simple structure reliable flexibleFirstlythis paper introduced the development of the base on MCU digital voltage meter and the purpose and significance of topic Then in details this paper described the design principle of hardware and software systems And in details the hardware part present a discussion in hardware selection design principles instructions and the function further more some of the interface circuit have been introduced The software part introduced the programming language and programming ideas used in codesThe digital voltage meter designed here have less components in the hardware part lower cost and easier testing software used C programming language which is high flexibility and strong readability The circuit of the voltage meter is mainly consisted of three mould pieces AD converting mould piece AD converting is mainly completed by the ADC0809 it converts the collected analog data into the digital data and transmits the outcome to the manifestation controlling mould piece Data processing is mainly completed by the AT89C51 chip it processes the data produced by the ADC0809 chip and generates the right manifestation codes also transmits the codes to the manifestation controlling mould piece Also the AT89C51 chip controls the ADC0809 chip to work After theoretical research principle design and debugging the experimental results suppose it is feasible of choosing this program This design and manufacture of digital voltmeterthe measuring range DC voltage 0 4v measurement precision is 008v It is based on 8951 MCU core mainly by the conversion circuit to convert an alog input to digital volume A D converterADC0809the 1602 liquid crystal display fromKEY WORDS SCM digital voltmeterAD converter 1602 liquid crystal display目 录摘 要IABSTRACTII引 言V第1章 系统设计方案的选择111设计方案的选择1112基于分立组件的电压表1113基于单片机系统及AD转换芯片的电压表1114 方案的选择2第2章 总体设计221 硬件电路的设计2211单片机简介及本设计单片机的选择22111常用单片机的特点比较及本设计单片机的选择32112本设计使用的单片机的简介322显示器件的介绍和选择6221常用显示器件简介6222 1602液晶的参数资料723模数AD转换芯片的选择9231 常用的AD芯片简介9232模数AD芯片ADC0809的资料10233 ADC0809工作过程13234 ADC0809与单片机的接口14235主要元器件介绍17第3章 电路设计2031 技术要求2032 设计方案2033 硬件电路系统模块的设计20331单片机系统21332 AD转换芯片与单片机的连接21333 1602液晶与单片机连接2134 按键控制电路的设计2135系统电路的设计2336 系统软件的设计24361主程序的设计25362 初始化程序25363 AD转换子程序25364 显示子程序26第4章 系统的调试2741 软件调试27411 加入仿真辅助信号27412 加载程序2842 显示结果及误差分析28421 显示结果28422 误差分析2943 系统调试中遇到的问题及解决的方法30第5章 结论31致 谢32附件一参考文献33附件二电路总图34附件三源程序35引 言 数字电压表出现在50年代初60年代末发起来的电压测量仪表简称DVM它采用的是数字化测量技术把连续的模拟量也就是连续的电压值转变为不连续的数字量加以数字处理然后再通过显示器件显示这种电子测量的仪表之所以出现一方面是由于电子计算机的应用逐渐推广到系统的自动控制信实验研究的领域提出了将各种被观察量或被控制量转换成数码的要求即为了实时控制及数据处理的需要另一方面也是电子计算机的发展带动了脉冲数字电路技术的进步为数字化仪表的出现提供了条件所以数字化测量仪表的产生与发展与电子计算机的发展是密切相关的同时为革新电子测量中的烦锁和陈旧方式也催促了它的飞速发展如今它又成为向智能化仪表发展的必要桥梁如今数字电压表已绝大部分已取代了传统的模拟指针式电压表因为传统的模拟指针式电压表功能单一精度低读数的时候也非常不方便很容易出错而采用单片机的数字电压表由于测量精度高速度快读数时也非常的方便抗干扰能力强可扩展性强等优点已被广泛的应用于电子及电工的测量工业自动化仪表自动测试系统等智能化测量领域显示出强大的生命力数字电压表最初是伺服步进电子管比较式其优点是准确度比较高但是采样速度慢重量达几十公斤体积大继之出现了谐波式电压表它的速度方面稍有提高但是准确度低稳定性差再后来出现了比较式仪表改进逐次渐近式结构它不仅保持了比较式准确度高的优点而且速度也有了很大的提高但它有一缺点是抗干扰能力差很容易受到外界各种因素的影响随后在谐波式的基础上双引伸出阶梯波式它的唯一的进步是成本降低了可是准确宽速以及抗干扰能力都未能提高而现在数字电压表的发展已经是非常的成熟就原理来讲它从原来的一二种已发展到多种在功能上讲则从测量一参数发展到能测多种参数从制作组件来看发展到了集成电路准确度已经有了很大的提高精度高达1NV读数每秒几万次而相对以前它的价格也有了降低了很多目前实现电压数字化测量的方法仍然模-数AD转换的方法转换的精度很大程度上影响着数字电压表的准确度因而以后数字电压表的发展就着眼在高精度和低成本这两个方面而数字电压表种类繁多型号新异目前国际仍未有统一的分类方法而常用的分类方法有如下几种按用途来分有直流数字电压表交直流数字电压表交直流万用表等按显示位数来分有4位5位6位7位8位等按测量速度来分有低准确度中准确度高准确度等按测量速度来分有低速中速高速超高速等但在日常生活中数字电压表一般是按照原理不同进行分类的目前大致分为以下几类比较式电压时间变换式积分式等在电量的测量中电压电流和频率是最基本的三个被测量其中电压量的测量最为经常而且随着电子技术的发展更是经常需要测量高精度的电压所以数字电压表就成为一种必不可少的测量仪器另外由于数字式仪器具有读数准确方便精度高误差小灵敏度高和分辨率高测量速度快等特点而倍受用户青睐数字式电压表就是基于这种需求而发展起来的是一种必不可少的电子测量仪表本文是以简易数字直流电压表的设计为研究内容本系统主要包括三大模块转换模块数据处理模块及显示模块其中AD转换采用ADC0809对输入的模拟信号进行转换控制核心AT89C51再对转换的结果进行运算处理最后驱动输出装置LED显示数字电压信号第1章 系统设计方案的选择11设计方案的选择 设计数字电压表有多种的设计方法方案是多种多样的由于大规模集成电路数字芯片的高速发展各种数字芯片品种多样导致对模拟数据的采集部分的不一致性进而又使对数据的处理及显示的方式的多样性又由于在现实的工作生活中电压表的测量测程范围是比较大的所以必须要对输入电压作分压处理而各个数据处理芯片的处理电压范围不同则各种方案的分段也不同下面介绍两种数字电压表的设计方案112基于分立组件的电压表 这种设计方案是由模拟电路与数字电路两大部分组成模拟部分包括输入放大器AD转换器和基准电压源数字部分包括计数器译码器逻辑控制器振荡器和显示器其中AD转换器是它的核心器件它将输入的模拟量转换成数字量模拟电路和数字电路是相互联系的由逻辑控制电路产生控制信号按规定的时序将AD转换器中个组模拟开关接通或断开保证AD转换正常进行AD转换结果通过计数译码电路变换成段码最后驱动显示器显示出相应的数值此方案设计其优点是设计成本低能够满足一般的电压测量但设计不灵活都是采用纯硬件电路很难将其在原有的基础上进行扩展113基于单片机系统及AD转换芯片的电压表这种方案是利用单片机系统与模数转换芯片显示模块等的结合构建数字电压表由于单片机的发展已经成熟利用单片机系统的软硬件结合可以组装出许多的应用电路来此方案的原理是模数AD转换芯片的基准电压端被测量电压输入端分别输入基准电压和被测电压模数AD转换芯片将被测量电压输入端所采集到的模拟电压信号转换成相应的数字信号然后通过对单片机系统进行软件编程使单片机系统能按规定的时序来采集这些数字信号通过一定的算法计算出被测量电压的值最后单片机系统将计算好了的被测电压值按一定的时序送入显示电路模块加以显示114 方案的选择综上所述根据以上两种设计方案各方面优点及其在所设计电压表中的实用性我们选择第二种电压表设计方案即由单片机系统及数字芯片构建的方法来我们本次设计第二种方案不仅能够继承上一种方案的各种优点还能改进上一种设计方案设计的不灵活和难于在原基础上进行功能扩展等不足第2章 总体设计21 硬件电路的设计设计思路1根据设计要求选择AT89C51单片机为核心控制器件2AD转换采用ADC0809实现3电压显示采用1602液晶显示器211单片机简介及本设计单片机的选择目前单片机的种类很繁多主要有主流的8位单片机和高性能的32位单片机结合本设计各方面因素对于本设计8位单片机已经是绰绰有余了但用哪一种类8的单片机呢在这里先简单的介绍一下几种常用的8位单片机2111常用单片机的特点比较及本设计单片机的选择单片机是指一个集成在一块芯片上的完整计算机系统具有一个完整计算机所需要的大部分部件CPU内存总线系统等而目前常用的单片机的8位有51系列单片机AVR单片机PIC单片机应用最广的8位单片机还是intel的51系列单片机51系列单片机的特点是硬件结构合理指令系统规范加之生产历史悠久世界有许多芯片公司都买了51的芯片核心专利技术并在其基础上扩充其性能使得芯片的运行速度变得更快性价比更高AVR单片机是atmel公司推出较新的单片机它的显着特点是高性能低功能高速度指令单周期为主但性格方面比51单片机要高有专门的IO方向寄存器虽然有转强的驱动电压但IO口使用没51单片机方便PIC单片机系列是美国微芯公司的产品也是市面上增长最快的单片机之一属精简指令集单片机其特点是高速度高性能但在性格方面比51单片机要高也有专门的IO方向寄存器IO口使用不比51单片机方便综合以上各种单片机的基本性能及本设计的满足需要我们将选择51系列单片机2112本设计使用的单片机的简介本设计中选用是51系列的AT89C51它是低电压低功耗高性能的CMOS8位单片机片内含4KB的可反复擦写的只读程序存储器和128B的随机存取数据存储器32个IO口线片内振荡器及时钟电路并与MCS-51系列单片机兼容在设计中单片机起着连接硬件电路与程序运行及存储数据的任务一方面它将AD转换器显示器等通过IO口地址线和数据线连接起来另一方面它将用户下载的程序通过控制总线控制数据的输入输出从而实现册电压的功能下图21为AT89C51 单片机内部结构框图图 21 AT89C51单片机内部结构框图从内部结构图框图上可以看出AT89C51单片机包括一下资源一个8位的CPU一个片内振荡器及时钟电路4KB的FlashROM128的内部RAM可扩展64KB外部ROM和外部RAM的控制电路2个16位的定时计数器26个特殊功能寄存器4个8位的并行口一个全双工的串行口5个中断源2个外部中断3内部中断内部硬件看门狗电路一个SPI串行接口用于芯片的在系统编程AT89C51单片机有四十个引脚引脚可分为四类电源地时钟控制和IO口管脚说明 Vcc供电电压 GND接地 P0口P0口为一个8位双向IO口每脚可吸收8TTL门电流当P1口的管脚第一次写1时被定义为高阻输入P0能够用于外部程序数据存储器它可以被定义为数据地址的第八位在FIASH编程时P0 口作为原码输入口当FIASH进行校验时P0输出原码此时P0外部必须被拉高 P1口P1口是一个内部提供上拉电阻的8位双向IO口P1口缓冲器能接收输出4TTL门电流P1口管脚写入1后被内部上拉为高电平可用作输入P1口被外部下拉为低电平时将输出电流这是由于内部上拉的缘故在FLASH编程和校验时P1口作为第八位地址接收 P2口P2口为一个内部上拉电阻的8位双向IO口P2口缓冲器可接收输出4个TTL门电流当P2口被写1时其管脚被内部上拉电阻拉高且作为输入并因此作为输入时P2口的管脚被外部拉低将输出电流这是由于内部上拉的缘故P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时P2口输出地址的高八位在给出地址1时它利用内部上拉优势当对外部八位地址数据存储器进行读写时P2口输出其特殊功能寄存器的内容P2口在FLASH编程和校验时接收高八位地址信号和控制信号 P3口P3口管脚是8个带内部上拉电阻的双向IO口可接收输出4个TTL门电流当P3口写入1后它们被内部上拉为高电平并用作输入作为输入由于外部下拉为低电平P3口将输出电流ILL这是由于上拉的缘故 RST复位输入当振荡器复位器件时要保持RST脚两个机器周期的高电平时间 ALEPROG当访问外部存储器时地址锁存允许的输出电平用于锁存地址的地位字节在FLASH编程期间此引脚用于输入编程脉冲在平时ALE端以不变的频率周期输出正脉冲信号此频率为振荡器频率的16因此它可用作对外部输出的脉冲或用于定时目的然而要注意的是每当用作外部数据存储器时将跳过一个ALE脉冲如想禁止ALE的输出可在SFR8EH地址上置0此时 ALE只有在执行MOVXMOVC指令是ALE才起作用另外该引脚被略微拉高如果微处理器在外部执行状态ALE禁止置位无效 PSEN外部程序存储器的选通信号在由外部程序存储器取址期间每个机器周期两次PSEN有效但在访问外部数据存储器时这两次有效的PSEN信号将不出现 EAVPP当EA保持低电平时则在此期间外部程序存储器0000H-FFFFH不管是否有内部程序存储器注意加密方式1时EA将内部锁定为RESET当EA端保持高电平时此间内部程序存储器在FLASH编程期间此引脚也用于施加12V编程电源VPP XTAL1反向振荡放大器的输入及内部时钟工作电路的输入 XTAL2来自反向振荡器的输出振荡器特性 XTAL1和XTAL2分别为反向放大器的输入和输出该反向放大器可以配置为片内振荡器石晶振荡和陶瓷振荡均可采用如采用外部时钟源驱动器件XTAL2应不接有余输入至内部时钟信号要通过一个二分频触发器因此对外部时钟信号的脉宽无任何要求但必须保证脉冲的高低电平要求的宽度22显示器件的介绍和选择本次设计中有显示模块而常用的显示器件比较多有数码管LED点阵1602液晶12864液晶等221常用显示器件简介数码管是最常用的一种显示器件它是由几个发光二极管组成的8字段显示器件其特点是价格非常的便宜使用也非常的方便显示效果非常的清楚小电流下可以驱动每光发光响应时间极短体积小重量轻抗冲击性能好寿命长但数码管只能是显示09的数据不能够显示字符这也是数码管的不足之处LED点阵显示器件是由好多个发光二极管组成的具有高亮度功耗低视角大寿命长耐湿冷热等特点LED点阵显示器件可以显示数字英文字符中文字符等但用LED点阵显示的软件程序设计比较麻烦1602液晶是工业字符型液晶能够同时显示162即32个字符1602液晶模块内部的字符发生存储器已经存储了160个不同的点阵字符图形这些字这些字符有阿拉伯数字英文字母的大小写常用的符号和日文假名等每一个字符都有一个固定的代码使用时直接编写软件程序按一定的时序驱动即可它的特点是显示字迹清楚价格相对便宜12864液晶也是一种工业字符型液晶它不仅能够显示1602液晶所可以显示的字符数字等信息而且还可以显示84个中文汉字和一些简单的图片显示信息也非常的清楚使用时也直接编写软件程序按一定的时序驱动即可不过它的价格比1602液晶贵了很多在本设计中我们只需要显示最后电压的数字值和电压的单位综合上面各种显示器件的特点数码管只能显示数字不能显示单位字符不符合本设计的要求而点阵显示器件驱动显示软件程序编写麻烦占用的引脚相对也较多也不是理解的显示器件所以在本设计中我们考虑用液晶显示器件虽然12864液晶比1602液晶的功能强不过在价格方面却贵了好多而1602液晶也足够满足本设计的需要因此在本设计实验我们选择1602液晶显示器件222 1602液晶的参数资料我们选择了1602液晶做为本设计的显示模块的显示器件以下是1602液晶的各方面参数编号符号引脚说明1VSS电源地2VDD电源正极3VL液晶显示偏压信号4RS数据命令选择端5RW读写选择端6E使能信号8-14D0-D7Data IO15BLA背光源正极16BLK背光源负极表2 1 接口信号说明1基本操作时序读状态输入RS 0RW 1E 1输出D0-D7为状态字写状态输入RS 0RW 0D0-D7为指令码E为高脉冲输出无读数据输入RS 1RW 1E 1输出D0-D7为数据写数据输入RS 1RW 0D0-D7为数据E为高脉冲输出无STA7STA6STA5STA4STA3STA2STA1STA0STA0-6当前数据地址指针的数值STA7读写操作使能1禁止 0允许表2 2 状态字说明指令码功能00111000设置162显示57点阵8位数据口表23 显示开关及光标设置 指令码 功能00001DCBD 1开显示D 0关显示C 1显示光标C 0不显示关标B 1光标闪烁B 0光标不显闪烁000001NSN 1当读写一个字条款后地址指针加一且光标加一N 0当读或写一个字符后地址指针减一且光标减一S 1当写一个安条款整屏显示左移N 1或右移N 0以得到光标不移动而屏幕移动的效果S 0当写一个字符整屏显示不移动表24 指令的说明 指令码功能00111000设置162显示57点阵8位数据口表25 显示开关及光标设置 指令码 功能00001DCBD 1开显示D 0关显示C 1显示光标C 0不显示关标B 1光标闪烁B 0光标不显闪烁000001NSN 1当读写一个字条款后地址指针加一且光标加一N 0当读或写一个字符后地址指针减一且光标减一S 1当写一个安条款整屏显示左移N 1或右移N 0以得到光标不移动而屏幕移动的效果S 0当写一个字符整屏显示不移动表26显示模式设置 指令码 功能80H地址码0-27H40H-67H设置数据地址指针01H显示清屏1数据指针清0 2所有显示清002H显示回车数据指针清0表27 数据控制23模数AD转换芯片的选择在本设计中模数AD转换模块是一个重要的模块它关系到最后数电压表电压值的精确度所以AD芯片的选择是设计过程中一个很重要的环节231 常用的AD芯片简介常用的AD芯片有AD0809AD0832TLC2543C等几种下面简单介绍一下这三种芯片AD0809是8位逐次逼近型AD转换器它是由一个8路的模拟开关一个地址锁存译码器一个AD 转换器和一个三态输出锁存器组成多路开关可选通8个模拟通道允许8 路模拟量分时输入共享AD 转换器进行转换些AD转换器是的特点是8位精度属于并行口如果输入的模拟量变化大快必须在输入之前增加采样电路AD0832也是8位逐次逼近型AD转换器可支持致命伤个单端输入通道和一个差分输入通道它易于和微处理器接口或独立使用可满量程工作可用地址逻辑多路器选通各输入通道TLC2543C是12位开关电容逐次逼近AD转换每个器件有三个控制输入端片选输入输出时钟以及地址输入端它可以从主机高速传输转换数据它有高速的转换通用的控制能力具有简化比率转换刻度以及模拟电路与逻辑电路和电源噪声隔离耐高温等特点综合上述几种AD转换芯片的特点在本设计中我们设计的是简易数字电压表因此在此我们选择精度为8位的ADC0809芯片232模数AD芯片ADC0809的资料综合本设计的各方面考虑我们选了ADC0809模数转换芯片下面就介绍此芯片的各方面资料1结构和转换原理如图 12 所示为ADC0809的内部结构框图ADC0809由3部分组成8路模拟量选通开关8位AD转换器和三态输出数据锁存器 ADC0809允许8路模拟信号输入由8路模拟开关选通其中一路信号模拟开关受信道地址锁存和译码电路的控制当地址锁存信号ALE有效时3位地址CBA进入地址锁存器经译码后使8路模拟开关选通某一路信号 8位AD转换器为逐次逼近式由256R电阻分压器树状模拟开关这两部分组成一个DA变换器电压比较器逐次逼近寄存器逻辑控制和定时电路组成三态门输出锁存器用来保存AD转换结果当输出允许信号OE有效时打开三态门输出AD转换结果因输出有三态门便于与单片机总线连接表28 ADC0809信道地址选择表图22 ADC0809的内部结构图23 ADC0809的引脚2引脚功能由引脚图 23 所示ADC0809共有28个引脚采用双列直插式封装ADC0809 虽然有8路模拟通道可以同时输入8路模拟信号但每个瞬间只能转换一路各路之间的切换由软件变换信道地址来实现其主要引脚功能如下所示IN0IN78路模拟量输入端D7D08位数字量输出端ABC3位地址输入线用于选通8路模拟输入中的一路ALE地址锁存允许信号输入高电平有效 START AD转换启动信号输入高电平有效 EOC AD转换结束信号输出当AD转换结束时此端输出一 个高电平转换期间一直为低电平 OE数据输出允许信号输入高电平有效当AD转换结束时此端输入一个高电平才能打开输出三态门输出数字量CLK时钟脉冲输入端要求时钟频率不高于640KHZ REFREF-基准电压 Vcc电源单一5V GND地233 ADC0809工作过程图24 ADC0809的时序图ADC0809的工作过程分为如下几步第一步首先确定ABC三位地址决定选择哪一路模拟信号第二步使ALE端接收一正脉冲信号使该路模拟信号经选择开关达到比较器的输入端第三步使START端接收一正脉冲信号START的上升沿将逐次逼近寄存器复位下降沿启动AD转换第四步EOC输出信号变低指示转换正在进行第五步AD转换结束EOC变为高电平指示AD转换结束此时数据已保存到8位锁存器中第六步OE信号变为高电平则8位三态锁存缓冲器的三态门被打开转换好的8位数字量数据被输出到数据线上如上所述EOC信号变为高电平表示AD转换完成EOC可作为中断申请信号通知89C51取走数据在查询传送方式中EOC可以作为89C51查询外设ADC的状态信号234 ADC0809与单片机的接口ADC0809与单片机的连接主要考虑三方面与单片机的数据总线地址总线和控制总线的连接a数据总线由于ADC0809的输出D7D0具有三态输出锁存缓冲器ADC0809可以直接和单片机的数据总线P00P07相连b地址总线地址总线的P00P01和P02可以对应连接ADC0809的A BC三位地址信号输入线用以控制8路模拟输入中哪一路被选中输入c控制总线有启动转换信号START输出允许信号OE转换结束信号EOC以及ALE等信号线的连接START要求是一个正脉冲信号由单片机控制发出输出允许信号OE也需要单片机提供一个正脉冲信号在AD转换结束时ADC0809会发出转换结束信号EOC通知89C51可以读取转换数据AD转换后得到的是数据这些数据应传送给89C51单片机进行处理数据传送的关键问题是如何确认AD转换完成因为只有确认数据转换完成后才能进行传送为此可采用下述两种方式对于一种AD转换器来说转换时间作为一个主要技术指标是已知的和固定的例如若ADC0809转换时间为128s相当于6MHz的89C51单片机的64个机器周期可据此设计一个延时子程序AD转换启动后即调用这个延时子程序延迟时间一到转换肯定完成了接着就可以进行数据传送a查询传送方式由于ADC0809片内无时钟利用AT89C51提供的地址锁存信号ALE经过分频后可保证ADC0809可靠的工作由于ADC0809的输出D7D0具有三态输出锁存缓冲器因此ADC0809可以直接和单片机的数据总线相连由于此种方式下ALE和START连接在一起因此0809在锁存信道地址的同时也启动转换在读取转换结果时用单片机的读信号和片选信号引脚经或非门后产生的正脉冲信号作为OE信号用以打开三态输出锁存器b中断传送方式采用中断方式可大大节省单片机的时间当转换结束时EOC向单片机发出中断请求信号由中断服务子程序读取AD转换结果并存储到RAM中然后启动ADC0809的下一次转换三种典型连接电路大体上说ADC0809在整个51单片机系统中是作为外部RAM的一个单元定位的但具体到某一个连接方式ADC0809在整个51单片机系统中的定位又有一些差别a第一种典型连接这是一种数据线对数据线地址线对地址线的标准连接方式但是由于51单片机没有现成的低8位地址总线所以采用这种标准连接方式需要用74LS373或类似芯片产生低8位地址总线早期的51系列单片机的应用品种很多是没有内置程序存储器的8031芯片本身就需要外挂74LS373等芯片产生低8位地址总线来外接EPROM等程序存储器连接ADC0809时不需要专门外挂74LS373因此早期的51系列单片机如8031采用这种连接ADC0809还是比较可行的编程概要 MOV DPTR7FF8HDPTR指向0809通道0 MOVX DPTRA锁定通道0并启动转换MOVX ADPTR读取转换结果b第二种典型连接通常芯片的地址线只能进不能出自不必说ADC0809的数据线有一特点只能出不能进就是说就像往SBUF写入时写到发送缓冲寄存器从SBUF读出时实际是读取接收缓冲寄存器的数据一样往ADC0809写入时把数据总线上的数据写到地址寄存器从ADC0809读出时实际是读取转换结果数据因此可以在把51单片机的8位数据线接到ADC0809的8位数据线的同时又把其中的3位直接接到ADC0809的3根地址线以确定信道号通常把51单片机的8位数据线中的低3位D2D1D0直接接到ADC0809的3根地址线A2A1A0以确定通道号在这种连接方式中ADC0809的转换结果寄存器在概念上定位为单片机外部RAM单元的只读寄存器而通道号寄存器在概念上定位为单片机同一个外部RAM单元的只写寄存器同一个外部RAM单元的只读寄存器与只写寄存器使用同一个地址就像51系列单片机的串行发送缓冲器与串行接受缓冲器使用同一个地址99H一样不会发生混乱 这种连接方式有一个特点那就是单片机要把最低3位二进制数据通过数据总线写入ADC0809的地址锁存器然后作为信道地址使用编程概要MOV A0F8HADC0809信道0地址送到AMOV DPTR7FFFHDPTR指向ADC0809MOVX DPTRA锁定通道0并启动转换MOVX ADPTR 要求在程序第一条指令中把决定是否能选中整个ADC0809芯片的数据传送到数据指针在本电路中只要送到DPTR的最高位数据为0就能选中ADC0809而信道地址由累加器A的最低3位数字决定除了最高位以外DPTR的其余15位数据对于ADC没有任何意义除了较低3位以外累加器A的其余5位数据对于ADC也没有任何意义这是本程序的一大特点c第三种典型连接在很多应用场合AT89C51内部的硬件资源例如4KB闪存128B内部RAM一个串行口和4个8位并行口等已经够用就是说在很多应用场合不需要外扩RAM或IO口当51单片机没有外扩RAM和IO口时ADC0809就可以在概念上作为一个特殊的唯一的外扩RAM单元因为它是唯一的就没有地址编号也就不需要任何地址线或者地址译码线只要单片机往外部RAM写入就是写到ADC0809的地址寄存器中只要单片机从外部RAN读取数据就是读取ADC0809的转换结果 编程概要MOV A0F8HADC0809信道0地址送到A MOVX R0A锁定通道0并启动转换 MOVX AR0 读取转换结果其中间寄存器R0中的数据无论在启动ADC0809还是在读取转换结果时都没有任何意义因此事先不必考虑往R0中送入什么数据这是本程序的一大特点三种连接方式的综合比较第一种和第二种连接方式允许多片ADC0809与单片机连接第三种连接方式只能连接一片通常1片8通道ADC0809就能满足控制工程需要因此在单片机没有外扩RAM和IO接口时第三种连接方式时一种优选方案需要2片或更多ADC0809时第二种连接方式时一种优选方案第一种连接方式需要一片74LS373做地址锁存器如果单片机系统已经有一片73LS373地址锁存器那么第一种连接方式也不失为一种可以考虑的连接方式235主要元器件介绍模数转换芯片ADC0809ADC0809是典型的8位8通道逐次逼近式AD转换器其实物如图25所示它可以和微型计算机直接接口图25ADC0809实物图a ADC0809内部逻辑结构图26 ADC0809的内部逻辑结构及引脚图ADC0809的内部逻辑结构如图26示图中多路模拟开关可选通8路模拟通道允许8路模拟量分时输入并共享一个AD转换器进行转换地址锁存与译码电路完成对ABC三个地址位进行锁存与译码如表29所示表29 ADC0809通道选择表C ADDC B ADDB A ADDA 选择的通道000IN0001IN10100IN2011IN3100IN4101IN5110IN6111IN7b ADC0809的引脚ADC0809芯片为28引脚双列直插式封装其引脚排列如图29所示 1 IN0IN78路模拟量输入通道 2 ABC模拟信道地址线这3根地址线用于对8路模拟通道的选择其译码关系如表1-1所示其中A为低地址C为高地址引脚图中为ADDAADDB和ADDC 3 ALE地址锁存允许信号对应ALE上跳沿ABC地址状态送入地址锁存器中 4 START转换启动信号START上升沿时复位ADC0809START下降沿时启动芯片开始进行AD转换在AD转换期间START应保持低电平本信号有时简写为ST 5 D7D0数据输出线为三态缓冲输出形式可以和单片机的数据线直接相连D0为最低位D7为最高 6 OE输出允许信号用于控制三态输出锁存器向单片机输出转换得到的数据OE 0输出数据线呈高阻OE 1输出转换得到的数据 7 CLK时钟信号ADC0809的内部没有时钟电路所需时钟信号由外界提供因此有时钟信号引脚通常使用频率为500KHz的时钟信号 8 EOC转换结束信号EOC 0正在进行转换EOC 1转换结束使用中该状态信号即可作为查询的状态标志又可作为中断请求信号使用 9 Vcc 5V电源GND地 10 Vref参考电压参考电压用来与输入的模拟信号进行比较作为逐次逼近的基准其典型值为5V Vref 5V Vref - 0V c ADC0809的工作原理首先输入3位地址并使ALE 1将地址存入地址锁存器中此地址经译码选通8路模拟输入之一到比较器START上升沿将逐次逼近寄存器复位下降沿启动 AD转换之后EOC输出信号变低指示转换正在进行直到AD转换完成EOC变为高电平指示AD转换结束结果数据已存入锁存器这个信号可用作中断申请当OE输入高电平时输出三态门打开转换结果的数字量输出到数据总线上注意ALE信号常与START信号连在一起这样连接可以在信号的前沿写入地址信号在其后沿启动AD转换图27为ADC0809信号的时序配合图图27 ADC0809信号的时序配合第3章 电路设计31 技术要求1以51系列单片机为核心器件组成一个简单的直流数字电压表2最高量程为4v31602液晶显示器显示至少能够显示两位小数4AD转换芯片结合的方法实现本设计使用的基本元器件是AT89C51单片机ADC0809模数转换芯片1602液晶显示器开关按键电容电阻晶振标准电源等等设计的基本框图如下图31 设计的基本框图33 硬件电路系统模块的设计系统电路图的绘制和仿真我用的是Proteus软件331单片机系统单片机最小系统包括晶振电路复位电路电源其原理图如下图32 复位电路此模块中单片机的晶振是12MHZC1和C2的电容是22pfC3可选10UFR1电阻为1K332 AD转换芯片与单片机的连接此设计中选择的是AD转换芯片的信道1信道2 信道3数据输出口连接单片机的P0口脉冲端连接单片机的ale口模块连接如下图33所示333 1602液晶与单片机连接此模块液晶的RS和E端分别连接单片机的P30和P31口液晶的数据各端口连接单片机的P1口具体如下图34所示34 按键控制电路的设计三个通道键盘的三端分别与单片机的P34P35P36口连接另一端接地原理图如图35所示键盘的功能可根据所测的电压范围通过按键来切换通道 图33 AD转换芯片与单片机的连接图34 1602液晶与单片机连接图35 按键控制电路35系统电路的设计此电路的工作原理是5V模拟电压信号通过变阻器VR1分压后由ADC0809的IN0通道进入由于使用的IN0通道所以ADDAADDBADDC都接低电平经过模数转换后产生相应的数据经过其输出通道D0-D7传送给AT89C51芯片的P1口AT89C51负责把接收到的数据经过数据处理产生正确的显示段码传送给1602液晶显示器同时它还通过其四位IO口P20P21P22P23产生位选信号控制数码管的亮灭此外AT89C51还控制ADC0809的工作其中单片机AT89C51通过定时器中断从P24输出方波接到ADC0809的CLOCKP26发正脉冲启动AD转换P25检测AD转换是否完成转换完成后P27置高从P1口读取转换结果送给LED显示出来简易数字直流电压表的硬件电路已经设计完成就可以选取相应的芯片和元器件利用Proteus软件绘制出硬件的原理并仔细地检查修改直至形成完善的硬件原理图但要真正实现电路对电压的测量和显示的功能还需要有相应的软件配合才能达到设计要求图36 总电路图36 系统软件的设计本设计是硬件电路和软件编程相结合的设计方案选择合适的编程语言是一个重要的环节在单片机的应用系统程序设计时常用的是汇编语言和C语言汇编语言的特点是占用内存单元少执行效率高执行速度快但它依赖于计算机硬件程序可读性和可移植性比较差而C语言虽然执行效率没有汇编语言高但语言简洁使用方便灵活运算丰富表达化类型多样化数据结构类型丰富具有结构化的控制语句程序设计自由度大有很好的可重用性可移植性等特点由于现在单片机的发展已经达到了很高的水平内部的各种资源相当的丰富CPU的处理速度非常的快用C语言来控制单片机无疑是一个理想的选择所以在本设计中采用C语言编写软件程序361主程序的设计根据模块的划分原则将该程序划分初始化模块AD转换子程序和显示子程序这三个程序模块构成了整个系统软件的主程序如图37所示图37 数字式直流电压表主程序框图362 初始化程序谓初始化是对将要用到的51系列单片机内部部件或扩展芯片进行初始工作状态设定初始化子程序的主要工作是设置定时器的工作模式初值预置开中断和打开定时器等363 AD转换子程序AD转换子程序用来控制对输入的模块电压信号的采集测量并将对应的数值存入相应的内存单元其转换流程图如图38所示图38 AD转换流程图364 显示子程序显示子程序采用动态扫描实现1602液晶显示器的数值显示在采用动态扫描显示方式时要使得液晶显示器显示的比较均匀又有足够的亮度需要设置适当的扫描频率当扫描频率在70HZ左右时能够产生比较好的显示效果一般可以采用间隔10ms对液晶显示器进行动态扫描一次每一位液晶显示器的显示时间为1ms第4章 系统的调试完成了系统的硬件设计制作和软件编程之后要使系统能够按设计意图正常运行必须进行系统调试 41 软件调试软件调试的任务是利用开发工具进行在线仿真调试发现和纠正程序的错误同时也能发现硬件的故障首先单独调试各子程序是否能够按照预期的功能接口电路的控制是否正常最后调试整个程序尤其注意的是各模块间能否正确的传递参数a检查液晶显示模块程序在主程序中调用display 和dislay_zifu 函数观察在1602液晶上是否能够显示相应的字符如果不能则在相关的子程序中设计断点反复调试直到能够显示b检查按键模块程序本设计的按键模块程序是用状态机的方法可以在key_state1状态下加一个任务如显示一个字符在液晶上观察是否正确显示c检查AD转换模块程序可以在硬件电路的输入端输入已知的几个电压分别观察液晶上是否显示相应的电压值d检查数据的转换模块程序可以按硬件电路的按键开关输入相应的电压观察液晶显示的电压值是否一致如果一致则数据转换的算法正确的e总调试当相应的各模块环节都正确后可程序下载到单片机接上电源运行再检查所有功能观察是否能预期的一样如果一样说明设计成功完成本设计的调试主要以软件为主其中系统电路图的绘制和仿真我采用的是Proteus软件而程序方面采用的是汇编语言用Keil软件将程序写入单片机411
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年滁州市轨道交通运营有限公司公开招募青年就业见习人员16名考试参考题库及答案解析
- 2025湖南娄底新化县部分事业单位面向社会招聘工作人员61人考试参考题库及答案解析
- 水稻节水灌溉设备制造创新创业项目商业计划书
- 数控机床精度恢复创新创业项目商业计划书
- 黎里安全生产培训课件
- 林业有害生物绿色防控创新创业项目商业计划书
- 水稻新型环保材料创新创业项目商业计划书
- 2025年钢木门行业研究报告及未来行业发展趋势预测
- 黄金鉴定培训分享知识课件
- 2025年安徽宣城市第四人民医院第一批次招聘5人笔试备考题库及完整答案详解1套
- 2024年全国企业员工全面质量管理知识竞赛考试原题库资料(含答案)
- 《弟子规》全文及解释(拼音版)
- 人教版四年级上册数学《速度、时间和路程》获奖说课稿
- 2025数学步步高大一轮复习讲义人教A版复习讲义含答案
- 上海交通大学本科毕业答辩
- 数字货币概论 课件 第5章 稳定币的原理与实现
- 《基金法律法规、职业道德与业务规范》知识点必考必练试题库200题(含详解)
- 计算机网络原理实验教程
- 《火力发电工程安全检查规程》
- 慢性胆囊炎急性发作的护理查房
- 标准化养羊场建设
评论
0/150
提交评论