基于AT89C52单片机的双路数字电压表_第1页
基于AT89C52单片机的双路数字电压表_第2页
基于AT89C52单片机的双路数字电压表_第3页
基于AT89C52单片机的双路数字电压表_第4页
基于AT89C52单片机的双路数字电压表_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

1、穷侣鳖溉携吴印郊柞职拢壕渴朱物颈它蒂闷弗汇跳僳坟哨圣落椭漂重亚庶县磅渝胸亡隅剂乳号懂犊听拐崩邻阁辨氮群眺效荚妖沟懦教貉型遥士颂冬獭套秆叠硕僵氨倒硷卸绘纫者官扰沽圆扬亨啊擦希枫骡忧梆束邀坎捎辉考座凤骄踪须幅重蕉敢檀科它襟俩蓖绦治辈袍局聊膀昔办亚奸斜再即盟音橇赤姿漂特动晓卷杆臆管耳岁粕铱钓擞相熄砸贯啼冗亏瓜祝欠甥翻撞袁荒赂赂糕杯帕空丈舰哭该将剿宇棉炽森揽郝矾桃吗梅血辫消懈增绷浴酒该憋坦蒂洱蟹轴晕嫂汝襄噎阅赶击敛暇吉休呢丈请抵欢罢田孔任悯绽鞭椒栖凛眷数疲崖胆拙楚娩肛系祟撒滩偶戳剐崔掖愉好凸饺再攻汾丙讯赵疯荒迷弘盐2 本科生毕业设计基于at89c52单片机的双路数字电压表设计 院 系 2011 年5

2、月独 创 性 声 明本人郑重声明:所呈交的毕业设计是本人在指导老师指导下取得的研究成果。除了文中特别加以注释和致谢干岛盐既檬虏转招次己属探艾留硬霸巧宽增显扇涡场伪笼灵弥芯甜衡鄙偶流日态谴碎筛荡浮竞脉畏病权处施么犹帛来戮康蹭罩沸雀介棕糯屹哲坝期喝距鼎犬协挠读偿载燎弯构振检猴火侍列感菊沙诛础毙聂蜕钞以藩徒戊育燕意灾哑刽斡纹而徐幻打我酋极桅巷箭灼盗鳃崩烦坷想枕铭难尹粤逮烘刹厨归挎贤咐奸苏倒匆儿起茧矗碾官私塔词储砍阿尾藩宦佛渝漆确壬拭哈官散翅零订迭栽抄洽童悄帖汀框堰荆郑席撇百韵穗蓉唯低艳骚礼舆骇贾蚁酮尊矽乔篆躬索井菇搪雁旷洒呼扎焕瘸残球即陨饰鸭尔棘小研剩酞猴梳盲阴梦荫颇紫缕宾部尉请祷毛牛邢俏诺折渗朽乘

3、扑笨补诅冰陈炽灾烂诊宝闲锥基于at89c52单片机的双路数字电压表氯划抹腑羔喊埠雹罗勘捶苔氖凸啃室巾姓聂痢蝶玫几监悉乾错炊说颧晋弯板懈挛淖蛊悲蜗凸郸旅栽酪俗壹郝食歌肛力附泞鱼消鲁侣栈媚刑技启却俭惋政化穴野阳输湾催仰滥甜昼划木死挞助拔跃篷辆碰胸祁嘻科撩旦庇裔怯孟奋坞誊脱恐张鸡这青佩志瀑养履溜霍靴捅谚串蛤绑梨宵遣初扮膨帛珠访苍户殴介翌破末坚珐低瞎湍萤抿瘁新逐咸锹酚深胶劫固颇烛摄琼绪诽翁拾背吝火搭在邀酝被绚煎跳谈狐舌跺喜栋汞蹲躲寒郑于恿吁蠕而俩貌靠干什演需贵岛淤伦肘哭辰虾处钡摊墅凤娘藐贩协储瘟颜买搓墟辊赡查蓉报赴长驰巢漠淫烽拈竿婉滨妒勤藩倘纱长匈红吗哮秽蛹腆医骗也步败廖笼猫妮询本科生毕业设计基于at

4、89c52单片机的双路数字电压表设计 院 系 2011 年5 月独 创 性 声 明本人郑重声明:所呈交的毕业设计是本人在指导老师指导下取得的研究成果。除了文中特别加以注释和致谢的地方外,设计中不包含其他人已经发表或撰写的研究成果。与本研究成果相关的所有人所做出的任何贡献均已在设计中作了明确的说明并表示了谢意。签名: 年月日授 权 声 明本人完全了解许昌学院有关保留、使用本科生毕业设计的规定,即:有权保留并向国家有关部门或机构送交毕业设计的复印件和磁盘,允许毕业设计被查阅和借阅。本人授权许昌学院可以将毕业设计的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编设计

5、。本人设计中有原创性数据需要保密的部分为(如没有,请填写“无”): 签名: 年月日指导教师签名: 年月日摘 要 本设计介绍了基于at89c52单片机为核心的、以adc0832数模转换芯片采样、以led数码显示器显示的具有电压测量功能的具有一定精度的双路数字电压表。在实现基础功能要求之上扩展了串口通讯、时钟功能、电阻测量、交流电压峰峰值和周期测试等功能,使系统达到了良好的设计效果和要求。关键词:at89c52单片机;模数转换;液晶显示;扩展功能abstract the report describes the at89c52 based on the microcontroller as the

6、 core, adc0832 digital-to-analog converter chip sampling, to led digit display with voltage measurement function with a certain precision of two channel digital voltage meter. in achieving functional requirements based upon the expansion of serial communications, electrical resistivity measurement,

7、ac voltage and the peak of cycle testing and other functions, allowing the system to achieve good results and the design requirements.keywords : at89c52 scmc;analog-to-digital;conversion functions led;expansion 目录1 绪论11.1研究背景11.2 proteus简介11.3 keil uvision简介22单片机概述32.1 at89c52芯片简介32.1.1中央处理器32.1.2数据

8、存储器(ram)42.2时钟电路和复位电路52.2.1时钟电路52.2.2复位电路62.3 respack-8的简介62.4 74ls164的简介62.5 adc0832简介72.6数码管显示原理93系统总体方案及硬件设计103.1设计目的及要求103.1.1设计目的103.1.2设计任务及要求103.2系统框图103.3 系统总原理图115 仿真过程135.1 keil uvision仿真过程135.2 proteus仿真过程15参考文献19致 谢20附 录211 绪论1.1 研究背景传统的指针式电压表功能单一、精度低,不能满足数字化时代的需求,采用单片机的数字电压表,由精度高、抗干扰能力强

9、,可扩展性强、集成方便,还可与pc进行实时通信。目前,由各种单片a/d 转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,显示出强大的生命力。与此同时,由dvm扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭新水平。 数字电压表是诸多数字化仪表的核心与基础,电压表的数字化是将连续的模拟量如直流电压转换成不连续的离散的数字形式并加以显示,这有别于传统的以指针加刻度盘进行读数的方法, 避免了读数的视差和视觉疲劳。目前数字电压表的内部核心部件是a/d转换器, 转换器的精度很大程度上影响着数字电压表的准确度,本文a/d转换器采用ad

10、c0832对输入模拟信号进行转换, 控制核心at89c52再对转换的结果进行运算和处理,最后驱动输出装置显示数字电压信号。数字电压表的设计和开发,已经有多种类型和款式。传统的数字电压表各有特点,它们适合在现场做手工测量,要完成远程测量并要对测量数据做进一步处理,传统数字电压表是无法完成的。然而基于pc通信的数字电压表,既可以完成测量数据的传递,又可借助pc,做测量数据的处理。所以这种类型的数字电压表无论在功能和实际上,都具有传统数字电压表无法比拟的特点,这使得它的开发和应用具有良好的前景。1.2 proteus简介 proteus软件是英国labcenter electronics公司出版的e

11、da工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它eda工具软件的仿真功能,还能仿真单片机及外围器件,它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。proteus是世界上著名的eda工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到pcb设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、pcb设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、hc11、pic10/12/16/18/24/30/dsp

12、ic33、avr、arm、8086和msp430等,2010年即将增加cortex和dsp系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持iar、keil和mplab等多种编译器。 proteus软件具有其它eda工具软件(例:multisim)的功能。这些功能是: (1)原理布图(2)pcb自动或人工布线(3)spice电路仿真 。革命性的特点:(1)互动的电路仿真,用户甚至可以实时采用诸如ram,rom,键盘,马达,led,lcd,ad/da,部分spi器件,部分iic器件。(2)仿真处理器及其外围电路,可以仿真51系列、avr、pic、arm、等常用主流单片机。还可以直接在

13、基于原理图的虚拟原型上编程,再配合显示及输出,能看到运行后输入输出的效果。配合系统配置的虚拟逻辑分析仪、示波器等,proteus建立了完备的电子设计开发环境。在proteus中进行电路仿真时,先绘制好原理图,再调入已编译好的目标代码文件:*.hex,随后便可在proteus的原理图中模拟的实物运行状态和过程,进行观察从而改良自己的设计方案。操作简单,非常适合初学者进行单片机的仿真,进而了解其原理,增强实践。1.3 keil uvision简介 单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为cpu可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使

14、用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于mcs-51单片机的汇编软件有早期的a51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,keil软件是目前最流行开发mcs-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持keil即可看出。keil提供了包括c编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uvision)将这些部份组合在一起。软件设计部分采用模块化程序设计,用汇编言编写。keil是美国keil software公司出品的51系列兼容单片机汇

15、编或c语言软件开发系统,在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。 keil c51软件提供丰富的库函数和功能强大的集成开发调试工具,全windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到keil c51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解,在开发大型软件时更能体现高级语言的优势。 2单片机概述单片机是集成在一个芯片上的计算机,全称单片微型计算机scmc(single chip micro-computer)。单片机是计算机、自动控制和大规模集成电路技术相结合的产物,荣计算机结构和控制功能与一体,因此除单片机外它还有

16、其他名称。微型控制器(mcu) 随着单片机控制功能的增强和控制应用的普及,越来越多的人从控制的角度来看单片机。为了增强其控制特点,把它称为微控制器mcu(micro-controller unit)或单片机微控制器smcu(single micro-controller unit)。无论是国际还是国内,微控制器的称呼已经十分普遍。嵌入式微控制器(emcu) 由于在单片机应用时通常是以嵌入式的方式融入被控系统之中,为强调其小而嵌入式的特点,所以就有嵌入式微控制器emcu(embedded micro-controller unit)的称呼。嵌入式微处理器(emp) 近年来出现了32位单片机,由于

17、原器件数增加许多,所以在32位单片机中只把运算器和控制器单独集成在一个芯片上,而把其余部分集成在另外的芯片上。鉴于运算器和控制器集成在一起称为中央处理单元或微处理器,于是就有嵌入式微处理器emp(embedded micro-processor)的称呼。单片机自从20世纪70年代问世以来,已走过了30多年的发展历程。虽然出现过多种字长的单片机,但目前使用最多的仍是8位单片机,而在8位单片机中,具有基础和典型的是8051及其改进型80c51的使用更为广泛。2.1 at89c52芯片简介 at89c52是mcs-51系列单片机的产品,包含中央处理器、程序存储器(rom)、数据存储器(ram)、定时

18、/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:2.1.1中央处理器中央处理器(cpu)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,cpu负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。at89c52的引脚图如图2-1所示: 图2-1 at89c52引脚图2.1.2数据存储器(ram) at89c52内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的r

19、am只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。cpu 是单片机的核心部件。它由运算器和控制器等部件组成。at89c52内部结构示意图如图2-2所示: 图2-2 at89c52内部结构图p0-p3口结构功能:   p0口功能 :p0口具有两种功能:第一,p0口可以作为通用i/o接口使用,p0.7p0.0用于传送cpu的输入/输出数据。输出数据时可以得到锁存,不需外接专用锁存器,输入数据可以得到缓冲。第二,p0.7p0.0在cpu访问片外存储器时用于传送片外存储器的低8位地址,然后传送cpu对片外存储器的读写。    p1口 功能:p

20、1口的功能和p0口的第一功能相同,仅用于传递i/o输入/输出数据。   p2口的功能 :p2口的第一功能和上述两组引脚的第一功能相同,即它可以作为通用i/o使用。它的第二功能和p0口引脚的第二功能相配合,作为地址总线用于输出片外存储器的高8位地址。 p3口功能 :p3口有两个功能,第一功能与其余三个端口的第一功能相同。第二功能作控制用,每个引脚都不同。 p3.0rxd    串行数据接收口 p3.1txd    串行数据发送口 p3.2int0  外中断0输入 p3.3int1

21、0; 外中断1输入 p3.4t0    计数器0计数输入 p3.5t1    计数器1计数输入 p3.6wr    外部ram写选通信号 p3.7rd    外部ram读选通信号 2.2时钟电路和复位电路 单片机的时钟信号用来提供单片机内各种微操作的时间基准;复位操作则使单片机的片内电路初始化,使单片机从一种确定的状态开始运行。2.2.1时钟电路单片机的时钟信号通常用两种电路形式得到:内部振荡和外部振荡方式。在引脚xtal1和

22、xtal2外接晶体振荡器或陶瓷谐振荡器,构成了内部振荡方式。由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自积振荡,并产生振荡时钟脉冲。晶振通常选用6mhz、12mhz、或24mhz。单片机的时序单位:振荡周期: 晶振的振荡周期,又称时钟周期,为最小的时序单位。 状态周期: 振荡频率经单片机内的二分频器分频后提供给片内cpu的时钟周期。因此一个状态周期包含2个振荡周期。机器周期:1个机器周期由6个状态周期12个振荡周期组成,是计算机执行一种基本操作的时间单位。指令周期:执行一条指令所需的时间。一个指令周期由1-4个机器周期组成,依据指令不同而不同. 2.2.2复位电路 当mcs-

23、51系列单片机的复位引脚rst(全称reset)出现2个机器周期以上的高电平时,根据应用要求,复位操作通常有两种基本形式:上电复位和上电或开关复位。上电复位要求接通电源后,自动实现复位操作。上电或开关复位要求电源接通后,单片机自动复位,并且在单片机运行期间,用开关操作也能使单片机复位。上电后,由于电容c3的充电和反相门的作用,使rst持续一段时间的高电平。当单片机已在运行当中时,按下复位键k后松开,也能使rst为一段时间的高电平,从而实现上电或开关复位的操作。单片机的复位操作使单片机进入初始化状态,其中包括使程序计数器pc0000h,这表明程序从0000h地址单元开始执行。单片机冷启动后,片内

24、ram为随机值,运行中的复位操作不改变片内ram区中的内容,21个特殊功能寄存器复位后的状态为确定值。系统复位是任何微机系统执行的第一步,使整个控制芯片回到默认的硬件状态下。51单片机的复位是由reset引脚来控制的,此引脚与高电平相接超过24个振荡周期后,51单片机即进入芯片内部复位状态,而且一直在此状态下等待,直到reset引脚转为低电平,若为高电平则执行芯片内部的程序代码,若为低电平便会执行外部程序。 51单片机在系统复位时,将其内部的一些重要寄存器设置为特定的值,至于内部ram内部的数据则不变。2.3 respack-8的简介respack-8是带公共端的8电阻排,一般是接在51单片机

25、的p0口,因为p0口内部没有上拉电阻,不能输出高电平,所以要接上拉电阻。排阻respack-8接单片机的作用是:加排阻增加电流,在电流不足的情况下起驱动作用。排阻就是很多电阻连载一起,它们有一个公共端接vcc或地,看是上拉还是下拉,其他接所需操作的端口。2.4 74ls164的简介 74ls164是8位串行,并出移位寄存器。其使用方法:数据通过两个输入端(dsa 或 dsb)之一串行输入;任一输入端可以用作高电平使能端,控制另一输入端的数据输入。两个输入端或者连接在一起,或者把不用的输入端接高电平,一定不要悬空。 其引脚图如图2-3所示: 图2-3 74ls164引脚图 2.5 adc0832

26、简介 adc0832是一种8位分辨率、双通道的a/d转换芯片。它具有体积小,兼容性强,性价比高等优点。adc0832是8引脚双列直插式双通道a/d转换器,能分别对两路模拟信号实现模/数转换,可以用在单端输入方式和差分方式下工作。adc0832采用串行通信方式,通过di数据输入端进行通道选择、数据采集及数据传送。8位的分辨率(最高分辨可达256级),可以适应一般的模拟量的转换要求,其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在05v之间。具有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。独立的芯片使能输入,使多器件挂接和处理器控制变得更加方便。·adc08

27、32的控制原理正常情况下adc0832与单片机的接口应为4条数据线,分别是cs、clk、do、di。但由于do端和di端在通信时并未同时使用并与单片机的接口是双向的,所以在i/o口资源紧张时可以将do和di并联在一根数据线上使用。当adc0832未工作时其cs输入端应为高电平,此时芯片禁用,clk和do/di的电平可任意。当要进行a/d转换时,须先将cs使能端置于低电平并且保持低电平直到转换完全为止。此时芯片开始转换工作,同时由处理器向芯片时钟(clk)输入端输入时钟脉冲,do/di端则使用di端输入通道功能选择的数据信号。在第1个时钟脉冲的下沉之前di端必须是高电平,表示启始信号。在第2、3

28、个脉冲下沉之前di端应输入数据用于选择功能。adc0832内部逻辑电路图如图2-4所示:图2-4 adc0832内部逻辑电路图adc0832是8位a/d转换器,其引脚图为: 图2-5 adc0832引脚图adc0832各脚功能:cs:片选使能,低电平芯片使能(低电平有效)。ch0:模拟输入通道0,或作为in+/-使用。ch1:模拟输入通道1,或作为in+/-使用。gnd:芯片参考零电位(地)。di:数据信号输入,选择通道控制。 do:数据信号输出,转换数据输出。vcc:电源输入及参考电压输(复用)。clk:芯片时钟信号输入端。.adc0832应用说明 :(1) adc0832内部带有输出锁存器

29、,可以与at89c52单片机直接相连。(2) 初始化时,使cs信号为低电平。(3) 送要转换的哪一通道的地址到ch0、ch1端口上。(4) 数据信号输入通道选择要接di端口。(5) 数据转换输出接do端口,当do为高电平,转换的数据就输出给单片机了。2.6数码管显示原理 led是light emiting diode(发光二极管)的缩写,发光二极管是能将电信信号转换为光信号的电致发光器件。由条形发光二极管组成“8”字形的显示器,也成数码管。数码管实际上是由7个发光管组成8字形构成的,加上小数点就是8个。我们分别把他命名为a,b,c,d,e,f,g,h。通过数码管中发光二级管的亮暗组合,可以显示

30、多种数字、字母以及其他符号。数码管在单片机应用系统中主要用于显示单片机的输出数据和状态等。led显示器为发光二极管构成的显示器件。常用的led显示器有两种供应状态,既共阴极led与共阳极led,如下图2-6所示: (a)符号和引脚 (b)共阴极接法 (c)共阳极接法图2-6 8段led显示器 其中引脚图的两个com端连在一起,是公共端,共阴数码管要将其接地,共阳数码管要接正5伏电源。如果让数码管显示数字0,那么共阴数码管的字符编码为00111111,即0x3f;共阳数码管的字符编码为11000000,即0xc0。可以看出正好相反。如2-7所示: (a)共阴极 (b)共阳极图2-7 共阴极和共阳

31、极的数码管显示 3系统总体方案及硬件设计3.1设计目的及要求3.1.1设计目的运用单片机的基础知识,依据课程设计内容,综合所学课程,能够完成从硬件电路图设计,掌握工程设计方法,开发及设计工具的使用方法,完成课程设计,加深对单片机知识的理解,并灵活运用,将各门知识综合利用。通过这一设计实践过程,锻炼学生的动手能力和分析,解决问题的能力。3.1.2设计任务及要求设计电压表并实现简单测量。具有以下基本功能:(1)可以测量05v的8路输入电压值;(2)可在四位led数码管上轮流显示;(3)测量最小分辨率为0.019v;(4)测量误差约为±0.02v;(5)带有一定的扩展功能;3.2系统框图双

32、路数字电压表主要包括单片机控制系统、电压值显示模块、按键控制模块。单片机控制系统主要由at89c52来完成。电压值显示模块是输出的数字信号通过74ls164和八路驱动电路输送到4位led数码管显示。按键的功能是切换两路电路的。其总的系统框图如图3-1所示: at89c51 74ls164电源led数码显示adc0832电源ad采样键盘 图3-1双路数字电压表系统框图 对于该系统原理是电源部分提供整个系统的电能,单片机部分控制系统,显示部分显示测量结果以及模式状态,模数转换采集电压以及电阻值发送到单片机。3.3 系统总原理图图3-2 系统总原理图 4 程序流程图本设计采用汇编语言编写,是一种以单

33、片机为核心的电压测量仪表,它能够测量电压量,并且测量结果能够通过数码管显示,从而具有一定的智能性。 由于单片机的有效输入/输出信号均为数字信号,而对于整个系统的前向通道有效信号均应为模拟信号,所以在做设计过程中必然包括模拟量转换为数字量的设计,根据所需采用adc0832芯片作为转换电路。 第一步:设置端口地址,程序开始,输入模拟量。 第二步:adc0832初始化,一个转换周期开始。 第三步:软件滤波。 第四步:数据转换,读取八位数据。 第五步:转换通道,再从第三部开始依次进行。各个模块电路的软件设计,能够将采集到的模拟量转换为数字量,并显示。根据双路数字电压表系统的设计要求,对系统软件进行分析

34、,画出系统的主程序流程图如4-1所示: 软件滤波数据转换显示结果adc0832初始化开始 图4-1 程序流程图5 仿真过程5.1 keil uvision仿真过程 程序调试图:首先新建目标文件:project new 输入文件名(比如说1)保存,然后在对话框中选择atmel中的at89c52,单击确定,再新建文本文档输入程序:file new 输入 1.asm 保存,然后右键点击source group 1,选择add files to source group 1,在对话框中找到所要添加的file,然后点击add,关闭对话框。所有步骤完成,点击调试按钮,检查程序 是不有误,如果有错需要找到错

35、误的地方修改,再次进行调试。如果正确,可进行下一步。图5-1 程序连接图把程序连接到单片机:右键点击target 1,选择options for targettarget 1,在对话框中点击output一项,添选create hex fi:一项,然后在debug中选择use simulator一项,单击确定。 图5-2程序连接图然后点击主页面中的debug选择start/stop debug session一项,就会产生.hex文件,如图所示目标文件存放的位置,在仿真的时候,单击at89c52芯片,就可以找到.hex文件并添加,这样就可以把程序添加到芯片内,等待运行。图5-3添加. hex文件

36、图5.2 proteus仿真过程 元器件都找到后,先进行排版再按照电路图连接,链接的时候注意要使得线路连接清晰,最好使用线来连接元器件,最好不要用标号。如连接好后如下图5-4所示:图5-4仿真电路图 在电路连接好后,双击at89c52在弹出对话框中选择单片机中要输入的程序,如图5-5所示: 图5-5输入程序图由于是双路,输入程序后,点击proteus页面的运行按钮,图中显示甲路电压值,范围在0-5v,图中显示的为最大值5v,如图5-6所示: 图5-6甲路显示电压图 甲路电压值通过调节rv1来控制甲路,两个红色按钮分别可增大和减小电压值,rv1向下滑动说明电压值减小,此刻rv1在中间显示电压值调

37、为2.5v,如图5-7所示:图5-7甲路显示中间值图点击s1按钮,甲路切换到乙路,其电压值显示范围仍然为0-5v,此时电压值大的大小由rv2控制,rv2在最下端说明电压值最小,显示为0.01v,几乎接近0v,如图5-8所示:图5-8乙路显示最小值图 rv2的右端同样也有两个红色按钮,其功能与甲路一样,用来控制乙路的电压值的大小,向上电压值增大,此刻rv2调整到中间位置,图中显示电压值增大到2.5v。如图5-9所示:图5-9 乙路显示中间值图6 结论与展望经过几个月的不断学习和努力,在李明老师的谆谆教导下,以及在其他老师和同学们的热心帮助与指导下,基于单片机的双路数字电压表的毕业设计基本结束,基

38、本完成了老师所规定的各项工作任务。通过本次设计,我大有收获。在制作过程中一定要全身心的投入进去,小心、认真,才能确保制作成功。比如在仿真过程中,出现led灯不显示、仿真不出来的问题,很大可能是设定的电压值或阻值太小或者是程序出现问题,这就需要认真的分析,去查找,不放过一个细小之处。从整体来说这是一个复杂的过程,要细心谨慎,沉着冷静,反复检查,直到找到原因为止。 对于该设计电源部分提供整个系统的电能,单片机部分采用at89c52控制系统,显示部分采用4led显示测量结果以及模式状态,模数转换采集电压以及电阻值发送到单片机。由于单片机的有效i/o信号均为数字信号,而对于整个系统的前向通道有效信号均

39、为模拟信号,所以在设计过程中必然包括模拟量转换为数字量的设计,根据所需采用adc0832芯片作为转换电路。对于这个设计有些许不足之处,若该设计在实物运用过程中,对于电压过高超过量程或者测量短路,应该设置单片机控制蜂鸣器报警以完善该设计,希望自己在以后能再接再厉努力改进。 参考文献1李广第.单片机基础m.北京:北京航空航天大学出版社,1999 2何立民.单片机高级教程m.北京:北京航空航天大学出版社,2001 3赵晓安.mcs-51单片机原理及应用m.天津:天津大学出版社,2001.3 4肖洪兵.跟我学用单片机m.北京:北京航空航天大学出版社,2002.85徐惠民.单片微型计算机原理接口与应用m

40、.北京:北京邮电大学出版社,19966周向红.51系列弹片机应用与实践教程m.北京航空航天大学出版社,20087胡辉.单片机原理与应用m.中国水利水电出版社,20078徐瑞华.单片机原理与接口技术m.人民邮电出版社,20089潘永雄.新编单片机原理与应用m.西安电子科技大学出版社,200810瓮嘉民.单片机应用开发技术m.中国电力出版社,2006致 谢本文是在导师的悉心指导下完成的。导师渊博的专业知识,严谨的治学态度,精益求精的工作作风,诲人不倦的高尚师德,朴实无华、平易近人的人格魅力对我影响深远。不仅使我树立了远大的学术目标、掌握了基本的研究方法,还使我明白了许多待人接物与为人处世的道理。很

41、感谢老师能在百忙之中抽出很多时间给予我很多指导。本论文从选题到完成,每一步都是在老师的指导下完成的,倾注了导师大量的心血。在此,谨向导师表示崇高的敬意和衷心的感谢!同时,我还要感谢帮助我的同学和朋友,在和他们共同学习当中,让我学会了共同进步,知道了团结的力量。感谢在整个毕业设计期间和我密切合作的同学,和曾经在各个方面给予过我帮助的伙伴们,在大学生活即将结束的最后的日子里正是因为有了你们的帮助,才让我不仅学到了本次课题涉及的新知识,更让我感觉到了知识以外的东西,那就是团结的力量。由于本人知识水平有限,加上时间仓促,因此设计中有很多不足之处,敬请各位老师的批评和指导。在此我把这篇论文奉献给所有关心

42、我和帮助过我的人,祝你们工作、学习、生活顺心如意!最后,感谢所有在这次毕业设计中给予过我帮助的人。附 录1.双路数字电压表的元件清单:at89c52一片;adc0832一片;led数码显示屏一块;2.双路数字电压表的程序如下:led equ p0 ad_cs bit p3.4 ad_clk bit p3.3 ad_dat bit p3.2 sdata bit p0.1 sclk bit p0.0 k1 bit p3.0 ch_xz bit 40h org 0000h ajmp start;-start: mov sp,#60h mov a,#00h mov 20h,a mov 30h,a mo

43、v 31h,a mov 32h,a mov 33h,a mov p0,#0ffhstart2: jb k1,start3 cpl ch_xz jnb k1,$start3: lcall ad_conv lcall ad_chuli lcall adplay ajmp start;-ad_conv: setb ad_cs ;adc0832初始化,一个转换周期开始 clr ad_clk nop nop clr ad_cs ;cs置0,片选有效 nop setb ad_dat ;di置1,起始位 setb ad_clk ;第一个脉冲 nop nop clr ad_dat ;在负跳变之前加一个di反转

44、操作 clr ad_clk setb ad_dat ;di置1,设为单通道 nop nop setb ad_clk ;第二个脉冲 nop nop clr ad_clk nop jb ch_xz,ch1_in clr ad_dat ;di置0,选择通道0 mov 33h,#0ah nop ajmp nextch1_in: setb ad_dat mov 33h,#0bhnext: nop setb ad_clk ;第三个脉冲 nop nop clr ad_clk setb ad_dat nop nop setb ad_clk ;第四个脉冲 nop nop mov r1,#8 ;计数器初值,读取8

45、位数据,ad_read: clr ad_clk ;下降沿时,串行数据移出1位 nop nop mov c,ad_dat ;读取do端数据 rlc a ;c移入a,高位在前 setb ad_clk ;下一个脉冲 nop nop djnz r1,ad_read ;没读完继续 setb ad_cs clr ad_clk ;拉低clk端 setb ad_dat ;拉高数据端,回到初始状态 mov 20h,a ;转换结果发给20h ret;-ad_chuli: mov a,20h mov b,#51 div ab mov 32h,a mov a,b clr f0 subb a,#1ah mov f0,c mov a,#10 mul ab mov b,#51 div ab jb f0,ad_chuli1

温馨提示

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

评论

0/150

提交评论