自动化毕业设计基于单片机的8路模拟量输入数值显示控制器的设计_第1页
自动化毕业设计基于单片机的8路模拟量输入数值显示控制器的设计_第2页
自动化毕业设计基于单片机的8路模拟量输入数值显示控制器的设计_第3页
自动化毕业设计基于单片机的8路模拟量输入数值显示控制器的设计_第4页
自动化毕业设计基于单片机的8路模拟量输入数值显示控制器的设计_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

1、2006 级课程设计自动化 学院 电子科学与技术 专业 课程设计题目 基于单片机的8路模拟量输入数值显示控制器的设计学 生 姓 名 班 级 060832 指 导 教 师 日 期 2009 年 6 月 25 日 基于单片机的8路模拟量输入数值显示控制器的设计 摘 要本设计是基于单片机的8路模拟量输入数值显示控制器,随着电子科学技术的发展,电子测量成为广大电子工作者必须掌握的手段,对测量的精度和功能的要求也越来越高,此设计为电子测量的基本数据采集模块,该电路设计简易、功能强大、可扩展性强。 以adc0809和at89c51为核心,该系统有三个部分:数据采集,数据处理和显示。具体包括控制、显示、a/

2、d转换器、电平转换接口、个人计算机等。设计中用adc0809进行8路数据的采样,利用at89c51单片机的串行口发送和接收数据。显示部分由数码显示器构成。硬件设计应用电子设计自动化工具,软件设计采用模块化编程方法。关键词: 单片机 at89c51 adc0808 数据采集目 录1.引言51.1 国内外本课题发展概况与目前的水平51.2 研究背景51.3 目的61.4 意义62.总体设计方案62.1系统设计的结构原理62.2系统设计的基本原则62.2.1 硬件设计的基本原则72.2.2 软件设计的基本原则73.硬件电路设计83.1系统概述83.2 系统工作原理83.2.1 单片机处理核心模块83

3、.2.2 adc模数转换模块113.2.3 数码管显示154. 软件设计154.1 主程序的设计164.2 a/d转换程序的设计164.3 数据处理程序的设计174.4 显示子程序的设计175.检测与仿真175.1. 利用单片机选通8路模拟信号实现数值显示仿真175.2. 利用外接开关选通8路模拟信号实现数值显示仿真19心得体会21致谢21参考文献22附录一:8路模拟单片机控制程序清单22附录二:8路模拟外接开关控制程序清单241.引言 随着微电子技术与计算机技术的发展,人类社会已进入信息时代。人们为了更好地认识世界,尽可能多地获取自然界的各种信息,单纯依赖人类的感官已远远不能满足人们的愿望。

4、由微处理器和各种性能优良的器件构成的电子测量模拟量系统的应用日益广泛为人类获取各种信息提供了必要的手段。1.1 国内外本课题发展概况与目前的水平随着时间的推移,计算机革命的完成,信息高速公路的飞速发展,我们的工业已经和自动化控制密不可分了.据统计,我国的单片机年容量已达13亿片,且每年以大约16%的速度增长,但相对于世界市场我国的占有率还不到1%。这说明单片机应用在我国才刚刚起步,有着广阔的前景。培养单片机应用人才,特别是在工程技术人员中普及单片机知识有着重要的现实意义。单片机是二十世纪七十年代中期发展起来的一种大规模集成电路器件.它在一块芯片内集成了计算机的各个功能部件,构成一种单片式的微型

5、计算机.二十世纪八十年代以来,国际上单片机的发展迅速,单片机应用不断深入,新技术层出不穷.单片机的应用技术是一项新型的工程技术,其内涵随着单片机的发展而发展。1.2 研究背景随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中模拟量输入数字数字输出就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。本设计与传统的测量方式相比,具有读数方便,测量范围广,测量准确,其输出采用数字显示,主要用于要求测量比较准确的场所,或科研实验室使用,该设计

6、控制器可使用多种类型的单片机芯片,ad芯片,显示器件等组合灵活设计完成要求功能,也可在基础模块上进行多项所需扩展功能。市场上已有很多相关类型的产品1.3 目的(1) 进一步熟悉和掌握单片机的结构及工作原理。(2) 掌握单片机的接口技术及ad0809芯片的特性,控制方法。(3) 通过课程设计,掌握以单片机核心的电路设计的基本方法和技术。 (4) 通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。1.4 意义通过完成一个包括电路设计和程序开发的完整过程,使学生了解开发一单片机应用系统的全过程,强化巩固所学,为今后从事相应打下基础。2.总体设计方案2.1系统设计的结构原理本系统一般包括模

7、拟信号的输入输出通道和数字信号的输入输出通道。系统的数据输入又称为数据的收集;系统的数据输出又称为数据的分配。本系统的任务,具体地说,就是采集传感器输出的模拟信号并转换成数值显示,以便实现对某些物理量的监视。 由系统的任务可以知道,系统具有以下几方面的功能:数据采集、数据处理数据输出。2.2系统设计的基本原则对于不同的采集对象,系统设计的具体要求是不相同的。但是,本系统设计是由硬件和软件两部分组成的,因此,系统设计的一些基本原则是大体相同的。2.2.1 硬件设计的基本原则(1) 经济合理系统硬件设计中,一定要注意在满足件能指标的前提下,尽可能地降低价格,以便得到高的性能价格比,这是硬件设计中优

8、先考虑的一个主要因素,也是一个产品争取市场的主要因素之一。(2) 安全可靠选购设备要考虑环境的温度、湿度、压力、振动、粉尘等要求,以保认在规定的下作环境下,系统性能稳定、工作可靠。要有超量程和过载保护,保证输入、输出通道正常工作。要注意对交流市电以及电火花等的隔离。要保证连接件的接触可靠。(3) 足够的抗干扰能力有完善的抗干扰措施,是保证系统精度、工作正常和不产生错误的必要条件。2.2.2 软件设计的基本原则(1) 结构合理程序应该采用结构模块化设计。这不仅有利于程序的进一步扩充,而且也有利于程序的修改和维护。在程序编序时,要尽量使得程序的层次分明,易于阅读和理解,同时还可以简化程序,减少程序

9、对于内存的使用量。当程序中有经常需要加以修改或变化的参数时,应该设计成独立的参数传递群序,避免程序的频繁修改。(2) 操作性能好操作件能好是指使用方便。这点对数据采集系统来说是很重要的。在开发程序时,应该考虑如何降低对操作人员专业知识的要求。(3) 系统应设计一定的检测程序,例如状态检测利诊断程序,以便系统发生故障时容易确定故障部位,对于重要的参数要定时存储,以防止因掉电而丢失数据。(4) 提高程序的执行速度。(5) 给出必要的程序说明。3.硬件电路设计3.1系统概述基于单片机的8路输入模拟信号数值显示电路,以adc0809和at89c51为核心,该系统有三个部分:数据采集,数据处理和显示。数

10、据采集由集成电路ad0809完成。0809具有8路模拟输入端口, 地址线(23-25脚)可决定对那一路模拟输入做a/d转换。第22脚为地址锁存控制,当输入为高电平时,对地址信号进行锁存, 9脚为a/d转换数据输出允许控制,当oe脚为高电平时,a/d转换数据从端口输出;10脚为0809的时钟输入端。单片机的p1,p3端口做四位led数码管显示控制,p0端口做a/d转换数据读入用,p2口用做0809的a/d转换控制。其中,控制选通那一路作为模拟输入,有两种方案:一是利用单片机编程软件控制实现;二是利用开关硬件控制实现。数据处理由单片机芯片at89c51实现,作为核心器件。显示选用八段数码管。3.2

11、 系统工作原理3.2.1 单片机处理核心模块 at89c51是一种高性能低功耗的采用cmos工艺制造的8位微控制器,拥有8kb的可编程的闪存(flash programmable and erasable read only memory)。它提供下列标准特征:8k字节的闪速存储器,56字节的ram,32条i/o线,3个16位定时器/计数器,一个六中断源两个优先级的中断结构,一个双工的串行口,片上震荡器和时钟电路。其管脚图如图1所示:图1. at89c51芯片管脚图引脚说明:vcc:电源电压gnd:地p0口:p0口是一组8位漏极开路型双向i/o口,作为输出口用时,每个引脚能驱动8个ttl逻辑门

12、电路。当对0端口写入1时,可以作为高阻抗输入端使用。当p0口访问外部程序存储器或数据存储器时,它还可设定成地址数据总线复用的形式。在这种模式下,p0口具有内部上拉电阻。在flash编程时,p0口接收指令字节,同时输出指令字节在程序校验时。程序校验时需要外接上拉电阻。p1口:p1口是一带有内部上拉电阻的8位双向i/o口。p1口的输出缓冲能接受或输出4个ttl逻辑门电路。当对p1口写1时,它们被内部的上拉电阻拉升为高电平,此时可以作为输入端使用。当作为输入端使用时,p1口因为内部存在上拉电阻,所以当外部被拉低时会输出一个低电流(iil)。p2口:p2是一带有内部上拉电阻的8位双向的i/o端口。p2

13、口的输出缓冲能驱动4个ttl逻辑门电路。当向p2口写1时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。作为输入口,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出电流(iil)。p2口在访问外部程序存储器或16位地址的外部数据存储器(例如movx dptr)时,p2口送出高8位地址数据。在这种情况下,p2口使用强大的内部上拉电阻功能当输出1时。当利用8位地址线访问外部数据存储器时(例movx r1),p2口输出特殊功能寄存器的内容。当flash编程或校验时,p2口同时接收高8位地址和一些控制信号。p3口:p3是一带有内部上拉电阻的8位双向的i/o端口。p3口的输出缓冲能驱动4个t

14、tl逻辑门电路。当向p3口写1时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。作为输入口,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出电流(iil)。p3口同时具有at89c51的多种特殊功能,具体如下表所示:端口引脚第二功能p3.0rxd (串行输入口)p3.1txd(串行输出口)p3.2 (外部中断0)p3.3(外部中断1)p3.4t0(定时器0)p3.5t1(定时器1)p3.6(外部数据存储器写选通)p3.7(外部数据存储器都选通)表1. p3口的第二功能rst:复位输入。当振荡器工作时,rst引脚出现两个机器周期的高电平将使单片机复位。ale/:当访问外部存储器时,地

15、址锁存允许是一输出脉冲,用以锁存地址的低8位字节。当在flash编程时还可以作为编程脉冲输出()。一般情况下,ale是以晶振频率的1/6输出,可以用作外部时钟或定时目的。但也要注意,每当访问外部数据存储器时将跳过一个ale脉冲。:程序存储允许时外部程序存储器的读选通信号。当at89c52执行外部程序存储器的指令时,每个机器周期两次有效,除了当访问外部数据存储器时,将跳过两个信号。/vpp:外部访问允许。为了使单片机能够有效的传送外部数据存储器从0000h到fffh单元的指令,必须同gnd相连接。需要主要的是,如果加密位1被编程,复位时ea端会自动内部锁存。当执行内部编程指令时,应该接到vcc端

16、。xtal1:振荡器反相放大器以及内部时钟电路的输入端。xtal2:振荡器反相放大器的输出端。3.2.2 adc模数转换模块 (1) adc0809主要特性adc0809 是采用cmos 工艺制造的双列直插式单片8 位a/d 转换器。分辨率8 位,精度7 位,带8 个模拟量输入通道,有通道地址译码锁存器,输出带三态数据锁存器。启动信号为脉冲启动方式,最大可调节误差为1lsb,adc0809 内部设有时钟电路,故clk 时钟需由外部输入,fclk 允许范围为500khz1mhz,典型值为640khz。每通道的转换需6673 个时钟脉冲,大约100110s。工作温度范围为-40+85。功耗为15m

17、w,输入电压范围为05v,单一+5v 电源供电。它可以接与z80、8085、8080、8031 等cpu 相连,也可以独立使用。(2) adc0809 内部结构和外部引脚adc0809a/d 转换器,其内部结构如图3-4所示。包括一个高阻抗斩波比较器;一个带有256个电阻分压器的树状开关网络;一个逻辑控制环节和8 位逐次比较寄存器(sar);一个8 位三态输出缓冲器。引脚功能介绍如下:图2. adc0809内部结构和外部引脚图a、 in0in8:8 路输入通道的模拟量输入端,输入;b、 2-12-8:8 位数字量输出端;2-1 为最低位(lsb),2-8 为最高位(msb),输出,三态;c、a

18、le:地址锁存控制信号,输入,上升沿有效。将地址选择信号a、b、c 锁入地址寄存器;d、start:启动a/d 转换控制信号,输入,上升沿有效。当输入一个正脉冲,便立即启动a/d转换,同时使eoc 变为低电平;e、 eoc:a/d 转换结束信号,输出,高电平有效。eoc 由低电平变为高电平,表明本次a/d 转换已经结束;f、oe:输出允许控制信号,输入,高电平有效。oe 由低电平变为高电平,打开三态输出锁存器,将转换的结果输出到数据总线上;g、vref(-)、vref(+):片内d/a 转换器的参考电压输入端。vref(-)不能为负值,vref(+)不能高于vcc,且1/2vref(-)+vr

19、ef(+)与1/2vcc 之差不得大于0.1v;h、clock:时钟输入端。500khz1mhz,典型值为640khz。i、 a、b、c:8 路模拟开关的3 位地址选通输入端,其对应关系如表3-2 所示。表2. 8路模拟开关地址选通输入端adc0809 时序图如图3所示。其中,tws:最小起动脉宽,典型值为100ns,最大值为200ns;twe:最小ale 脉宽,典型值为100ns,最大值为200ns;td:模拟开关延时,典型值为1s,最大值为2.5s;tc:转换时间,当fclk=640khz 时,典型值为100s,最大值为116s;teoc:转换结束延时,最大位8 个时钟周期加2s。本系统采

20、用中断连接方式,当传感器获取的信号经过放大器放大和滤波后再ad转换器进行处理。通过对其模拟通道控制线adda、addb、addc的设值可以对通道进行选择。将adda、addb、addc分别接p3.4-p3.6,只要把三位位地址写入0809中的地址锁存器,就实现了通道的选择。将adc0809的ale和start信号连在一起,然后将at89c51中的p3.2作为片选信号,接ale信号,p3.0连adc0809的oe信号,同时将adc的eoc转换结束信号连接at89c51的p3.1.该模块的原理图如图3-6。也可利用外接开关控制adda、addb、addc,该模块的原理图如图4,5。图3. adc0

21、809 时序图图4. 利用单片机选通控制原理图图5. 利用外接开关选通控制原理图3.2.3 数码管显示 本系统的显示部分采用八段数码管共阳极显示,需接上拉电阻。4. 软件设计汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言。其主要优点是占用资源少、程序执行效率高。但是不同的cpu,其汇编语言可能有所差异,所以不易移植。keil uvision2 是众多单片机应用开发软件中优秀的软件之一,它支持众多不同公司的mcs51 架构的芯片,它集编辑,编译,仿真等于一体,同时还支持,plm,汇编和c 语言的程序设计,它的界面和常用的微软vc+的界面相似,界面友好,易学易用,在调

22、试程序,软件仿真方面也有很强大的功能。因此本系统采用keil uvision2进行软件的编写和调试。4.1 主程序的设计 开始初始化调用ad转换子程序调用显示子程序 图6.主程序流程图4.2 a/d转换程序的设计在8路模拟单片机控制程序中由p3.0,p3.1和p3.2控制a/d转换的启动和数据的输出,用clr p3.2,setb p3.2和clr p3.2指令启动a/d转换,用jnb p3.1,$等待转换结束,用clr p3.0关闭输出,转换结果暂存在35h中。在8路模拟外接开关控制程序中由p2.5,p2.6和p2.7控制a/d转换的启动和数据的输出,用clr p2.5,setb p2.5和c

23、lr p2.5指令启动a/d转换,用jnb p2.6,$等待转换结束,用clr p2.7关闭输出,转换结果暂存在35h中。4.3 数据处理程序的设计 将ad转换结果转换成bcd码并依次将百位、十位和个位分别存在30h,31h和32h中,而在8路模拟单片机控制程序中,33h则存放被选通的通道号。4.4 显示子程序的设计 用查表的方式实现每一位数值及通道号的显示,并且将每次显示的时间控制在5毫秒以方便观察。5.检测与仿真5.1. 利用单片机选通8路模拟信号实现数值显示仿真首先在程序中将adc0809的显示通道设置为第5通道,即 使用setb p3.4, clr p3.5, setb p3.6这三条

24、指令。由于proteus仿真软件中没有adc0809芯片的仿真模型因此我们用adc0808代替。仿真结果如下:图7.模拟信号输入端的滑动变阻器为最小时的数值显示结果图8.模拟信号输入端的滑动变阻器为50%时的数值显示结果图9.模拟信号输入端的滑动变阻器为最大时的数值显示结果由仿真结果可得,该系统的最小分辨率为0.02v,最大显示数值为255(输入为5v时),模拟输入最大值为5v,可作为数字电压表使用。5.2. 利用外接开关选通8路模拟信号实现数值显示仿真首先将开关接地,此时选通0号通道,由于0号通道输入端接滑动变阻器,显示数值为033;再将开关接到+5v,此时选通1号通道,由于1号通道输入端接

25、地,故显示数值为000。用proteus软件仿真结果如下:图10. 利用外接开关选通0号通道图11. 利用外接开关选通1号通道 由仿真结果可得,在该系统中由于显示通道是由外接开关控制,故无法用单片机控制led数码管显示通道的数值,优点是可不用修改程序而控制通道的选择。心得体会经过两个星期的努力,课程设计终于大告成功了。整个设计通过了软件和硬件上的调试、仿真。我想这对于自己以后的学习和工作都会有很大的帮助。在这次设计中遇到了很多实际性的问题,在实际设计中才发现,书本上理论性的东西与在实际运用中的还是有一定的出入的,所以有些问题不但要深入地理解,而且要不断地更正以前的错误思维。一切问题必须要靠自己

26、一点一滴的解决,而在解决的过程当中你会发现自己在飞速的提升。对于单片机设计,其硬件电路是比较简单的,主要是解决程序设计中的问题,而程序设计是一个很灵活的东西,它反映了你解决问题的逻辑思维和创新能力,它才是一个设计的灵魂所在。因此在整个设计过程中大部分时间是用在程序上面的。很多子程序是可以借鉴书本上的,但怎样衔接各个子程序才是关键的问题所在,这需要对单片机的结构很熟悉。因此可以说单片机的设计是软件和硬件的结合,二者是密不可分的。通过这次课程设计我也发现了自身存在的不足之处,虽然感觉理论上已经掌握,但在运用到实践的过程中仍有意想不到的困惑,经过一番努力才得以解决。我也充分认识到团队合作的重要性,只

27、有分工协作才能保证整个项目的有条不絮。通过这次设计,我懂得了学习的重要性,了解到理论知识与实践相结合的重要意义,学会了坚持、耐心和努力,这将为自己今后的学习和工作做出了最好的榜样。致谢这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后在老师的辛勤指导下,组员和其他同学的帮助,终于迎刃而解。这次,对于与我搭档的同学和指导老师表示忠心的感谢!参考文献 1.张友德主编. 单片微型机原理,应用与实验. 复旦大学出版社, 2006.102.周润景,张丽娜,刘映群编.proteus入门实用教程.北京:机械工业出版社,2007.93.张疑坤 陈善久 裘雪红. 单片微型计算机原理及应用m. 西安:西安电

28、子科技大学出版, 20035.谢筑森编著. 单片机开发与典型应用设计m. 合肥:中国科学技术大学出版社, 1997.6.张积东主编. 单片机51/98开发与应用m. 北京:电子工业出版社,1994.7.全国大学生电子设计竞赛组委会. 全国大学生电子设计大赛获奖作品精选(2001)m. 北京:北京理工大学出版社2003.附录一:8路模拟单片机控制程序清单led_0equ 30h ;存放三个数码管的段码led_1 equ 31hled_2 equ 32hled_3 equ 33hadcequ35h;存放转换后的数据st bit p3.2oe bit p3.0eoc bit p3.1org 00hs

29、tart: movled_0,#00hmovled_1,#00hmovled_2,#00hmov led_3,#00hmovdptr,#table;送段码表首地址setbp3.4clrp3.5setb p3.6 ;选择adc0808的通道5,可自由选择 wait: clr stsetb stclr st;启动转换 jnb eoc,$ ;等待转换结束setb oe ;允许输出mov adc,p1;暂存转换结果clr oe ;关闭输出mov a,adc;将ad转换结果转换成bcd码mov b,#100div abmov led_2,amov a,bmov b,#10div abmov led_1,amov led_0,b mov a, p3 swap a anl a,#07h mov led_3,alcalldisp ;显示ad转换结果 disp: mov a, led_3 movc a, a+dptr clr p2.0mov p0, alcall delaysetb p2.0 mova,led_0;数码显示子程序movca,a+dptrclrp2.3movp0,alcalldelaysetbp2.3mova,led_1movca,a+dptrclr

温馨提示

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

评论

0/150

提交评论