1、4.2 A/D转换程序的设计 164.3 数据处理程序的设计 174.4 显示子程序的设计 175.检测与仿真 175.1. 利用单片机选通8路模拟信号实现数值显示仿真 175.2. 利用外接开关选通8路模拟信号实现数值显示仿真 19心得体会 21致谢 21参考文献 22附录一:8路模拟单片机控制程序清单 22附录二:8路模拟外接开关控制程序清单 241.引言 随着微电子技术与计算机技术的发展,人类社会已进入信息时代。人们为了更好地认识世界,尽可能多地获取自然界的各种信息,单纯依赖人类的感官已远远不能满足人们的愿望。由微处理器和各种性能优良的器件构成的电子测量模拟量系统的应用日益广泛为人类获取
2、各种信息提供了必要的手段。1.1 国内外本课题发展概况与目前的水平随着时间的推移,计算机革命的完成,信息高速公路的飞速发展,我们的工业已经和自动化控制密不可分了.据统计,我国的单片机年容量已达13亿片,且每年以大约16%的速度增长,但相对于世界市场我国的占有率还不到1%。这说明单片机应用在我国才刚刚起步,有着广阔的前景。培养单片机应用人才,特别是在工程技术人员中普及单片机知识有着重要的现实意义。单片机是二十世纪七十年代中期发展起来的一种大规模集成电路器件.它在一块芯片内集成了计算机的各个功能部件,构成一种单片式的微型计算机.二十世纪八十年代以来,国际上单片机的发展迅速,单片机应用不断深入,新技
3、术层出不穷.单片机的应用技术是一项新型的工程技术,其内涵随着单片机的发展而发展。1.2 研究背景随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中模拟量输入数字数字输出就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。本设计与传统的测量方式相比,具有读数方便,测量范围广,测量准确,其输出采用数字显示,主要用于要求测量比较准确的场所,或科研实验室使用,该设计控制器可使用多种类型的单片机芯片,AD芯片,显示器件等组合灵活设计完成要求功能
4、,也可在基础模块上进行多项所需扩展功能。市场上已有很多相关类型的产品1.3 目的(1) 进一步熟悉和掌握单片机的结构及工作原理。(2) 掌握单片机的接口技术及AD0809芯片的特性,控制方法。(3) 通过课程设计,掌握以单片机核心的电路设计的基本方法和技术。(4) 通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。1.4 意义通过完成一个包括电路设计和程序开发的完整过程,使学生了解开发一单片机应用系统的全过程,强化巩固所学,为今后从事相应打下基础。2.总体设计方案2.1系统设计的结构原理本系统一般包括模拟信号的输入输出通道和数字信号的输入输出通道。系统的数据输入又称为数据的收集;系
5、统的数据输出又称为数据的分配。本系统的任务,具体地说,就是采集传感器输出的模拟信号并转换成数值显示,以便实现对某些物理量的监视。由系统的任务可以知道,系统具有以下几方面的功能:数据采集、数据处理数据输出。2.2系统设计的基本原则对于不同的采集对象,系统设计的具体要求是不相同的。但是,本系统设计是由硬件和软件两部分组成的,因此,系统设计的一些基本原则是大体相同的。2.2.1 硬件设计的基本原则(1) 经济合理系统硬件设计中,一定要注意在满足件能指标的前提下,尽可能地降低价格,以便得到高的性能价格比,这是硬件设计中优先考虑的一个主要因素,也是一个产品争取市场的主要因素之一。(2) 安全可靠选购设备
6、要考虑环境的温度、湿度、压力、振动、粉尘等要求,以保认在规定的下作环境下,系统性能稳定、工作可靠。要有超量程和过载保护,保证输入、输出通道正常工作。要注意对交流市电以及电火花等的隔离。要保证连接件的接触可靠。(3) 足够的抗干扰能力有完善的抗干扰措施,是保证系统精度、工作正常和不产生错误的必要条件。2.2.2 软件设计的基本原则(1) 结构合理程序应该采用结构模块化设计。这不仅有利于程序的进一步扩充,而且也有利于程序的修改和维护。在程序编序时,要尽量使得程序的层次分明,易于阅读和理解,同时还可以简化程序,减少程序对于内存的使用量。当程序中有经常需要加以修改或变化的参数时,应该设计成独立的参数传
7、递群序,避免程序的频繁修改。(2) 操作性能好操作件能好是指使用方便。这点对数据采集系统来说是很重要的。在开发程序时,应该考虑如何降低对操作人员专业知识的要求。(3) 系统应设计一定的检测程序,例如状态检测利诊断程序,以便系统发生故障时容易确定故障部位,对于重要的参数要定时存储,以防止因掉电而丢失数据。(4) 提高程序的执行速度。(5) 给出必要的程序说明。3.硬件电路设计3.1系统概述基于单片机的8路输入模拟信号数值显示电路,以ADC0809和AT89C51为核心,该系统有三个部分:数据采集由集成电路AD0809完成。0809具有8路模拟输入端口, 地址线(23-25脚)可决定对那一路模拟输
8、入做A/D转换。第22脚为地址锁存控制,当输入为高电平时,对地址信号进行锁存, 9脚为A/D转换数据输出允许控制,当OE脚为高电平时,A/D转换数据从端口输出;10脚为0809的时钟输入端。单片机的P1,P3端口做四位LED数码管显示控制,P0端口做A/D转换数据读入用,P2口用做0809的A/D转换控制。其中,控制选通那一路作为模拟输入,有两种方案:一是利用单片机编程软件控制实现;二是利用开关硬件控制实现。数据处理由单片机芯片AT89C51实现,作为核心器件。显示选用八段数码管。3.2 系统工作原理3.2.1 单片机处理核心模块 AT89C51是一种高性能低功耗的采用CMOS工艺制造的8位微
9、控制器,拥有8KB的可编程的闪存(Flash programmable and erasable read only memory)。它提供下列标准特征:8K字节的闪速存储器,56字节的RAM,32条I/O线,3个16位定时器/计数器,一个六中断源两个优先级的中断结构,一个双工的串行口,片上震荡器和时钟电路。其管脚图如图1所示:引脚说明:VCC:电源电压GND:地P0口:P0口是一组8位漏极开路型双向I/O口,作为输出口用时,每个引脚能驱动8个TTL逻辑门电路。当对0端口写入1时,可以作为高阻抗输入端使用。当P0口访问外部程序存储器或数据存储器时,它还可设定成地址数据总线复用的形式。在这种模式
10、下,P0口具有内部上拉电阻。在Flash编程时,P0口接收指令字节,同时输出指令字节在程序校验时。程序校验时需要外接上拉电阻。P1口:P1口是一带有内部上拉电阻的8位双向I/O口。P1口的输出缓冲能接受或输出4个TTL逻辑门电路。当对P1口写1时,它们被内部的上拉电阻拉升为高电平,此时可以作为输入端使用。当作为输入端使用时,P1口因为内部存在上拉电阻,所以当外部被拉低时会输出一个低电流(IIL)。P2口:P2是一带有内部上拉电阻的8位双向的I/O端口。P2口的输出缓冲能驱动4个TTL逻辑门电路。当向P2口写1时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。作为输入口,因为内部存在上拉
11、电阻,某个引脚被外部信号拉低时会输出电流(IIL)。P2口在访问外部程序存储器或16位地址的外部数据存储器(例如MOVX DPTR)时,P2口送出高8位地址数据。在这种情况下,P2口使用强大的内部上拉电阻功能当输出1时。当利用8位地址线访问外部数据存储器时(例MOVX R1),P2口输出特殊功能寄存器的内容。当Flash编程或校验时,P2口同时接收高8位地址和一些控制信号。P3口:P3是一带有内部上拉电阻的8位双向的I/O端口。P3口的输出缓冲能驱动4个TTL逻辑门电路。当向P3口写1时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。P3口同时具有AT89C51的多种特殊功能,具体如下
12、表所示:端口引脚第二功能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/:当访问外部存储器时,地址锁存允许是一输出脉冲,用以锁存地址的低8位字节。当在Flash编程时还可以作为编程脉冲输出()。一般情况下,ALE是以晶振频率的1/6输出,可以用作外部时钟或定时目的。但也要注意,每当访问外部数据存储器时将跳过一个ALE
13、脉冲。:程序存储允许时外部程序存储器的读选通信号。当AT89C52执行外部程序存储器的指令时,每个机器周期两次有效,除了当访问外部数据存储器时,将跳过两个信号。/VPP:外部访问允许。为了使单片机能够有效的传送外部数据存储器从0000H到FFFH单元的指令,必须同GND相连接。需要主要的是,如果加密位1被编程,复位时EA端会自动内部锁存。当执行内部编程指令时,应该接到VCC端。XTAL1:振荡器反相放大器以及内部时钟电路的输入端。XTAL2:振荡器反相放大器的输出端。3.2.2 ADC模数转换模块(1) ADC0809主要特性ADC0809 是采用CMOS 工艺制造的双列直插式单片8 位A/D
14、 转换器。分辨率8 位,精度7 位,带8 个模拟量输入通道,有通道地址译码锁存器,输出带三态数据锁存器。启动信号为脉冲启动方式,最大可调节误差为1LSB,ADC0809 内部设有时钟电路,故CLK 时钟需由外部输入,fclk 允许范围为500kHz1MHz,典型值为640kHz。每通道的转换需6673 个时钟脉冲,大约100110s。工作温度范围为-40+85。功耗为15mW,输入电压范围为05V,单一+5V 电源供电。它可以接与Z80、8085、8080、8031 等CPU 相连,也可以独立使用。(2) ADC0809 内部结构和外部引脚ADC0809A/D 转换器,其内部结构如图3-4所示
15、。包括一个高阻抗斩波比较器;一个带有256个电阻分压器的树状开关网络;一个逻辑控制环节和8 位逐次比较寄存器(SAR);一个8 位三态输出缓冲器。引脚功能介绍如下:图2. ADC0809内部结构和外部引脚图A、 IN0IN8:8 路输入通道的模拟量输入端,输入;B、 2-12-8:8 位数字量输出端;2-1 为最低位(LSB),2-8 为最高位(MSB),输出,三态;C、ALE:地址锁存控制信号,输入,上升沿有效。将地址选择信号A、B、C 锁入地址寄存器;D、START:启动A/D 转换控制信号,输入,上升沿有效。当输入一个正脉冲,便立即启动A/D转换,同时使EOC 变为低电平;E、 EOC:
16、A/D 转换结束信号,输出,高电平有效。EOC 由低电平变为高电平,表明本次A/D 转换已经结束;F、OE:输出允许控制信号,输入,高电平有效。OE 由低电平变为高电平,打开三态输出锁存器,将转换的结果输出到数据总线上;G、VREF(-)、VREF(+):片内D/A 转换器的参考电压输入端。VREF(-)不能为负值,VREF(+)不能高于VCC,且1/2VREF(-)+VREF(+)与1/2VCC 之差不得大于0.1V;H、CLOCK:时钟输入端。500kHz1MHz,典型值为640kHz。I、 A、B、C:8 路模拟开关的3 位地址选通输入端,其对应关系如表3-2 所示。表2. 8路模拟开关
17、地址选通输入端ADC0809 时序图如图3所示。其中,tWS:最小起动脉宽,典型值为100ns,最大值为200ns;tWE:最小ALE 脉宽,典型值为100ns,最大值为200ns;tD:模拟开关延时,典型值为1s,最大值为2.5s;tC:转换时间,当fclk=640kHz 时,典型值为100s,最大值为116s;tEOC:转换结束延时,最大位8 个时钟周期加2s。本系统采用中断连接方式,当传感器获取的信号经过放大器放大和滤波后再AD转换器进行处理。通过对其模拟通道控制线ADDA、ADDB、ADDC的设值可以对通道进行选择。将ADDA、ADDB、ADDC分别接P3.4-P3.6,只要把三位位地
18、址写入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. ADC0809 时序图图4. 利用单片机选通控制原理图图5. 利用外接开关选通控制原理图3.2.3 数码管显示 本系统的显示部分采用八段数码管共阳极显示,需接上拉电阻。4. 软件设计汇编语言是一种用文字助记符来表示机器指令的符号语言
19、,是最接近机器码的一种语言。其主要优点是占用资源少、程序执行效率高。但是不同的CPU,其汇编语言可能有所差异,所以不易移植。KEIL uVISION2 是众多单片机应用开发软件中优秀的软件之一,它支持众多不同公司的MCS51 架构的芯片,它集编辑,编译,仿真等于一体,同时还支持,PLM,汇编和C 语言的程序设计,它的界面和常用的微软VC+的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。因此本系统采用KEIL uVISION2进行软件的编写和调试。4.1 主程序的设计 图6.主程序流程图4.2 A/D转换程序的设计在8路模拟单片机控制程序中由P3.0,P3.1和P3.2
20、控制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和CLR P2.5指令启动A/D转换,用JNB P2.6,$等待转换结束,用CLR P2.7关闭输出,转换结果暂存在35H中。4.3 数据处理程序的设计 将AD转换结果转换成BCD码并依次将百位、十位和个位分别存在30H,31H和32H中,而在8路模拟单片机控制程序中,3
21、3H则存放被选通的通道号。4.4 显示子程序的设计 用查表的方式实现每一位数值及通道号的显示,并且将每次显示的时间控制在5毫秒以方便观察。5.检测与仿真5.1. 利用单片机选通8路模拟信号实现数值显示仿真首先在程序中将ADC0809的显示通道设置为第5通道,即 使用SETB P3.4, CLR P3.5, SETB P3.6这三条指令。由于PROTEUS仿真软件中没有ADC0809芯片的仿真模型因此我们用ADC0808代替。仿真结果如下:图7.模拟信号输入端的滑动变阻器为最小时的数值显示结果图8.模拟信号输入端的滑动变阻器为50%时的数值显示结果图9.模拟信号输入端的滑动变阻器为最大时的数值显
22、示结果由仿真结果可得,该系统的最小分辨率为0.02V,最大显示数值为255(输入为5V时),模拟输入最大值为5V,可作为数字电压表使用。5.2. 利用外接开关选通8路模拟信号实现数值显示仿真首先将开关接地,此时选通0号通道,由于0号通道输入端接滑动变阻器,显示数值为033;再将开关接到+5V,此时选通1号通道,由于1号通道输入端接地,故显示数值为000。用PROTEUS软件仿真结果如下:图10. 利用外接开关选通0号通道图11. 利用外接开关选通1号通道 由仿真结果可得,在该系统中由于显示通道是由外接开关控制,故无法用单片机控制LED数码管显示通道的数值,优点是可不用修改程序而控制通道的选择。
23、心得体会经过两个星期的努力,课程设计终于大告成功了。整个设计通过了软件和硬件上的调试、仿真。我想这对于自己以后的学习和工作都会有很大的帮助。在这次设计中遇到了很多实际性的问题,在实际设计中才发现,书本上理论性的东西与在实际运用中的还是有一定的出入的,所以有些问题不但要深入地理解,而且要不断地更正以前的错误思维。一切问题必须要靠自己一点一滴的解决,而在解决的过程当中你会发现自己在飞速的提升。对于单片机设计,其硬件电路是比较简单的,主要是解决程序设计中的问题,而程序设计是一个很灵活的东西,它反映了你解决问题的逻辑思维和创新能力,它才是一个设计的灵魂所在。因此在整个设计过程中大部分时间是用在程序上面
24、的。很多子程序是可以借鉴书本上的,但怎样衔接各个子程序才是关键的问题所在,这需要对单片机的结构很熟悉。因此可以说单片机的设计是软件和硬件的结合,二者是密不可分的。通过这次课程设计我也发现了自身存在的不足之处,虽然感觉理论上已经掌握,但在运用到实践的过程中仍有意想不到的困惑,经过一番努力才得以解决。我也充分认识到团队合作的重要性,只有分工协作才能保证整个项目的有条不絮。通过这次设计,我懂得了学习的重要性,了解到理论知识与实践相结合的重要意义,学会了坚持、耐心和努力,这将为自己今后的学习和工作做出了最好的榜样。致谢这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后在老师的辛勤指导下,组员和其
25、他同学的帮助,终于迎刃而解。这次,对于与我搭档的同学和指导老师表示忠心的感谢!参考文献 1.张友德主编. 单片微型机原理,应用与实验. 复旦大学出版社, 2006.102.周润景,张丽娜,刘映群编.PROTEUS入门实用教程.北京:机械工业出版社,2007.93.张疑坤 陈善久 裘雪红. 单片微型计算机原理及应用M. 西安:西安电子科技大学出版, 20035.谢筑森编著. 单片机开发与典型应用设计M. 合肥:中国科学技术大学出版社, 1997.6.张积东主编. 单片机51/98开发与应用M. 北京:电子工业出版社,1994.7.全国大学生电子设计竞赛组委会. 全国大学生电子设计大赛获奖作品精选
26、(2001)M. 北京:北京理工大学出版社2003.8路模拟单片机控制程序清单LED_0 EQU 30H ;存放三个数码管的段码LED_1 EQU 31HLED_2 EQU 32HLED_3 EQU 33HADC EQU 35H ;存放转换后的数据ST BIT P3.2OE BIT P3.0EOC BIT P3.1 ORG 00HSTART: MOV LED_0,#00H MOV LED_1,#00H MOV LED_2,#00H MOV LED_3,#00H MOV DPTR,#TABLE ;送段码表首地址 SETB P3.4 CLR P3.5 SETB P3.6 ;选择ADC0808的通道
27、5,可自由选择WAIT: CLR ST SETB ST CLR ST ;启动转换 JNB EOC,$ ;等待转换结束 SETB OE ;允许输出 MOV ADC,P1 ;暂存转换结果 CLR OE ;关闭输出 MOV A,ADC ;将AD转换结果转换成BCD码 MOV B,#100 DIV AB MOV LED_2,A MOV A,B MOV B,#10 MOV LED_1,A MOV LED_0,B MOV A, P3 SWAP A ANL A,#07H MOV LED_3,A LCALL DISP ;显示AD转换结果DISP: MOV A, LED_3 MOVC A, A+DPTR CLR P2.0 MOV P0, A LCALL DELAY SETB P2.0 MOV A,LED_0 ;数码显示子程序 MOVC A,A+DPTR CLR P2.3 MOV P0,A SETB P2.3 MOV A,LED_1 CLR P2.2 SETB P2.2 MOV A,LED_2 CLR P2.1 SETB P2.1 RETDELAY: MOV R6,#10 ;延时5毫秒D1: MOV R7,#250D2: DJNZ R7,D2 DJNZ R6,D1TA
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1