单片机综合实训报告.doc_第1页
单片机综合实训报告.doc_第2页
单片机综合实训报告.doc_第3页
单片机综合实训报告.doc_第4页
单片机综合实训报告.doc_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

辽宁石油化工大学实习、设计用纸辽宁石油化工大学实习设计本(第 一 册)专业班级: 电气自动化技术 0832班 姓 名: 学 号: 09号 实习、设计名称: 单片机综合实训 实习、设计地点: 实训室 实习、设计时间: 2010 年 9 月 27 日 至 2010 年 11 月 15 日指导教师: 成 绩: 评 阅 人: 职 业 技 术 学 院 教 务 科 制27目录前 言11 单片机实训中常用的软件21.1 Protel 99 SE的介绍21.1.1 Protel 99 SE的系统组成21.1.2 Protel 99 SE的功能特性31.1.3 Protel 99se设计举例31.2 Protues 的介绍41.2.1 Protues的功能特点51.2.2 Protues 的功能模块51.2.3 Protues提供了丰富的资源71.3 Keil软件的介绍71.3.1 Keil仿真器的结构81.3.2 Keil仿真器的使用特点82 单片机系统仿真112.1步进电机的正反转设计112.1.1主要元器件112.1.2电路功能112.1.3电路原理图112.1.4程序清单122.1.5 系统仿真122.2外部中断的应用132.2.1主要元器件132.2.2电路功能142.2.3电路原理图142.2.4程序清单142.2.5系统仿真152.3数字温度计162.3.1主要器件162.3.2电路功能162.3.3方案论证162.3.4电路原理图182.3.5系统仿真193单片机系统设计203.1系统要求2032总体分析203.3硬件设计213.4软件设计22总 结25参考文献26前 言随着社会的进步和发展和人们生活水平的不断提高,单片机技术已经成为当今各种新技术的载体,各个应用领域的工程技术人员都应掌握单片机应用技术。同时它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。本次设计的共分五大章:第一章简单介绍了本次实训的目的及要求;第二章介绍的是实训中主要用到的软件(Protel 99 SE、Protues和Keil软件);第三章主要进行两个小型试验的Protues仿真(一个是步进电机正反转,一个是外部中断应用);第四章是单片机的综合实例设计,本文所设计的是数字温度计;最后一章是对本次单片机综合实训的总结。对于本次单片机仿真实训用到的Protel 99 SE 、Protues以及Keil三种运行软件是在单片机技术不断发展情况下,最为流行的三种软件。Protel99SE是应用于Windows9X/2000/NT操作系统下的EDA设计软件,具有很强的数据交换能力和开放性及3D模拟功能。Proteus软件也是一种EDA工具软件。它除了具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。Keil C51是51系列兼容单片机C语言软件开发系统,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件。本设计最后介绍的数字温度计具有读数方便,测温范围广,测温准确的特点。它的温度控制器输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用,该设计控制器使用单片机AT89C51,测温传感器使用DS18B20,用3位共阳极LED数码管以串口传送数据,实现温度显示,能准确达到以上要求。 本人水平有限,编写过程中难免有错误之处,希望老师能给与批评指导。1 单片机实训中常用的软件1.1 Protel 99 SE的介绍Protel99SE是应用于Windows9X/2000/NT操作系统下的EDA设计软件,采用设计库管理模式,可以进行联网设计,具有很强的数据交换能力和开放性及3D模拟功能,是一个32位的设计软件,可以完成电路原理图设计,印制电路板设计和可编程逻辑器件设计等工作,可以设计32个信号层,16个电源-地层和16个机加工层。1.1.1 Protel 99 SE的系统组成按照系统功能来划分,Protel99se主要包含以下俩大部分和6个功能模块。 1)电路工程设计部分(1)电路原理设计部分(Advanced Schematic 99):电路原理图设计部分包括电路图编辑器(简称SCH编辑器)、电路图零件库编辑器(简称Schlib编辑器)和各种文本编辑器。本系统的主要功能是:绘制、修改和编辑电路原理图;更新和修改电路图零件库;查看和编辑有关电路图和零件库的各种报表。 (2)印刷电路板设计系统(Advanced PCB 99):印刷电路板设计系统包括印刷电路板编辑器(简称PCB编辑器)、零件封装编辑器(简称PCBLib编辑器)和电路板组件管理器。本系统的主要功能是:绘制、修改和编辑电路板;更新和修改零件封装;管理电路板组件。 (3)自动布线系统(Advanced Route 99):本系统包含一个基于形状(Shape-based)的无栅格自动布线器,用于印刷电路板的自动布线,以实现PCB设计的自动化。 2)电路仿真与PLD部分(1)电路模拟仿真系统(Advanced SIM 99):电路模拟仿真系统包含一个数字/模拟信号仿真器,可提供连续的数字信号和模拟信号,以便对电路原理图进行信号模拟仿真,从而验证其正确性和可行性。 (2)可编程逻辑设计系统(Advanced PLD 99):可编程逻辑设计系统包含一个有语法功能的文本编辑器和一个波形编辑器(Waveform)。本系统的主要功能是;对逻辑电路进行分析、综合;观察信号的波形。利用PLD系统可以最大限度的精简逻辑部件,使数字电路设计达到最简化。 (3)高级信号完整性分析系统(Advanced Integrity 99):信号完整性分析系统提供了一个精确的信号完整性模拟器,可用来分析PCB设计、检查电路设计参数、实验超调量、阻抗和信号谐波要求等。 1.1.2 Protel 99 SE的功能特性1、开放式集成化的设计管理体系 2、超强功能的、修改与编辑功能 3、强大的设计自动化功能 1.1.3 Protel 99se设计举例1)总线驱动原理图图1.1 总线驱动原理图MCS-51系列单片机的外部扩展空间可达64KB,但扩展总线接口的负载能力有限,P0口能驱动8个LS TTL电路,P2口只能驱动4个LS TTL电路。在实际应用中,若负载过重,则应采用总线驱动电路,以提高端口的驱动能力和系统的抗干扰能力。对于P0口作为数据总线宜采用双向8路三态缓冲器74LS245,而P2口作为地址总线可采用单向8路三态缓冲器74LLS244,其接口方法如图1.1。2)键盘、显示器扩展原理图(1)键盘接口电路:根据系统要求,采用两个按键:开始键和停止键;键盘使用8155芯片扩展;各键键码确定原则为开始键01H、停止键02H,具体键盘接口电路如图1.2所示。(2)显示器接口电路:根据系统要求,采用4位显示时间;根据实际需要,显示器采用7段共阴极LED数码管显示器,显示缓冲区选择40H-43H单元;显示接口电路选择8155芯片,采用动态显示、软件译码方式,段、位驱动芯片采用6路集电极开路输出驱动7407芯片,具体显示器接口电路如图1.2所示。图1.2 键盘、显示器扩展原理图1.2 Protues 的介绍Proteus软件是英国Labcenter electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。 1.2.1 Protues的功能特点 Proteus软件具有其它EDA工具软件(例:multisim)的功能,这些功能是: (1)原理布图 (2)PCB自动或人工布线 (3)SPICE电路仿真 此外它还具有革命性的特点: (1)互动的电路仿真 用户甚至可以实时采用诸如RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。 (2)仿真处理器及其外围电路 可以仿真51系列、AVR、PIC、ARM、等常用主流单片机。还可以直接在基于原理图的虚拟原型 上编程,再配合显示及输出,能看到运行后输入输出的效果。配合系统配置的虚拟逻辑分析仪、示波器等,Proteus建立了完备的电子设计开发环境。 1.2.2 Protues 的功能模块 1)智能原理图设计(ISIS) (1)丰富的器件库:超过27000种元器件,可方便地创建新元件。 (2)智能的器件搜索:通过模糊搜索可以快速定位所需要的器件。 (3)智能化的连线功能:自动连线功能使连接导线简单快捷,大大缩短绘图时间。 (4)支持总线结构:使用总线器件和总线布线使电路设计简明清晰。 (5)可输出高质量图纸:通过个性化设置,可以生成印刷质量的BMP图纸,可以方便地供WORD、POWERPOINT等多种文档使用。 2)完善的电路仿真功能(Prospice) (1)ProSPICE混合仿真:基于工业标准SPICE3F5,实现数字/模拟电路的混合仿真。 (2)超过27000个仿真器件:可以通过内部原型或使用厂家的SPICE文件自行设计仿真器件,Labcenter也在不断地发布新的仿真器件,还可导入第三方发布的仿真器件。 (3)多样的激励源:包括直流、正弦、脉冲、分段线性脉冲、音频(使用wav文件)、指数信号、单频FM、数字时钟和码流,还支持文件形式的信号输入。 (4)丰富的虚拟仪器:13种虚拟仪器,面板操作逼真,如示波器、逻辑分析仪、信号发生器、直流电压/电流表、交流电压/电流表、数字图案发生器、频率计/计数器、逻辑探头、虚拟终端、SPI调试器、I2C调试器等。 (5)生动的仿真显示:用色点显示引脚的数字电平,导线以不同颜色表示其对地电压大小,结合动态器件(如电机、显示器件、按钮)的使用可以使仿真更加直观、生动。 (6)高级图形仿真功能(ASF):基于图标的分析可以精确分析电路的多项指标,包括工作点、瞬态特性、频率特性、传输特性、噪声、失真、傅立叶频谱分析等,还可以进行一致性分析。 3)独特的单片机协同仿真功能(VSM) (1)支持主流的CPU类型:如ARM7、8051/52、AVR、PIC10/12、PIC16、PIC18、PIC24、dsPIC33、HC11、BasicStamp、8086、MSP430等,CPU类型随着版本升级还在继续增加,如即将支持CORTEX、DSP处理器。 (2)支持通用外设模型:如字符LCD模块、图形LCD模块、LED点阵、LED七段显示模块、键盘/按键、直流/步进/伺服电机、RS232虚拟终端、电子温度计等等,其COMPIM(COM口物理接口模型)还可以使仿真电路通过PC机串口和外部电路实现双向异步串行通信。 (3)实时仿真:支持UART/USART/EUSARTs仿真、中断仿真、SPI/I2C仿真、MSSP仿真、PSP仿真、RTC仿真、ADC仿真、CCP/ECCP仿真。 (4)编译及调试:支持单片机汇编语言的编辑/编译/源码级仿真,内带8051、AVR、PIC的汇编编译器,也可以与第三方集成编译环境(如IAR、Keil和Hitech)结合,进行高级语言的源码级仿真和调试。 4)实用的PCB设计平台 (1)原理图到PCB的快速通道: 原理图设计完成后,一键便可进入ARES的PCB设计环境,实现从概念到产品的完整设计。 (2)先进的自动布局/布线功能:支持器件的自动/人工布局;支持无网格自动布线或人工布线;支持引脚交换/门交换功能使PCB设计更为合理。(3)完整的PCB设计功能:最多可设计16个铜箔层,2个丝印层,4个机械层(含板边),灵活的布线策略供用户设置,自动设计规则检查,3D 可视化预览。 (4)多种输出格式的支持:可以输出多种格式文件,包括Gerber文件的导入或导出,便利与其它PCB设计工具的互转(如protel)和PCB板的设计和加工。 1.2.3 Protues提供了丰富的资源 (1)Proteus可提供的仿真元器件资源:仿真数字和模拟、交流和直流等数千种元器件,有30多个元件库。 (2)Proteus可提供的仿真仪表资源 :示波器、逻辑分析仪、虚拟终端、SPI调试器、I2C调试器、信号发生器、模式发生器、交直流电压表、交直流电流表。理论上同一种仪器可以在一个电路中随意的调用。 (3)除了现实存在的仪器外,Proteus还提供了一个图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来,其作用与示波器相似,但功能更多。这些虚拟仪器仪表具有理想的参数指标,例如极高的输入阻抗、极低的输出阻抗。这些都尽可能减少了仪器对测量结果的影响。 (4)Proteus可提供的调试手段 Proteus提供了比较丰富的测试信号用于电路的测试。这些测试信号包括模拟信号和数字信号。 1.3 Keil软件的介绍Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。 1.3.1 Keil仿真器的结构(1)该仿真器配合uVision集成开发环境使用,分独立使用的Keil仿真器和非独立使用的Keil仿真器两种(参看下图),前者可应用于其他的51单片机目标系统,后者一般只限于在配套的51实验板上使用(请参看教材中的有关段落)。(2)独立使用的Keil仿真器采用标准4线USB插座作电气接口,注意它不是真的总线意义上的USB口4线中,中间的两线用于RS-232通信,外侧的两线是电源和地。顺便说明,市面上也有直接使用USB接口的Keil仿真器出售,其原理是用一片USBUART转换芯片代替仿真器上原来的232UART转换芯片。由于uVision集成调试环境不直接支持USB口,所以,这样做需要在PC机端增加USB驱动,并在仿真器端增加硬件开销,从而使仿真器的整体售价上升较多。非独立使用的Keil仿真器限于在配套的51实验板上使用,它通过一般的两头串行电缆与PC机进行通信,并使用实验板上的复位按键(黄色)进行复位。(3)独立使用的Keil仿真器配有一根长约2米的定制电缆,该电缆一共有3个接头,其中,9孔RS-232接头连接PC的COM口(COM1-COM4);从它根部分出来的一个USB接头连接PC机的USB口,用于从该口取电(5V/最大500mA)供给仿真器和目标系统,但如果用户采用外部电源给目标系统和仿真器供电,则该接头应悬空;另一个USB接头用于连接仿真器。(4)必要时,独立使用的Keil仿真器还可以直接当编程下载器来使用(不依赖别的硬件)。做法是:拔掉仿真器上的仿真芯片,换成支持UART串口在线下载的芯片,如STC公司的STC89C51/52/53/54/55/58/516等(出厂时其内部已固化有支持在线下载的程序),连上串行电缆,并适当控制上电过程,就可将用户程序直接下载到这些芯片(烧写寿命100万次)。这些芯片的抗干扰性能、片内资源的配置及烧写寿命等项指标均优于Atmel等公司的同类芯片,但价格会略高几毛钱到1元钱(与购买渠道有关)。至于PC机端的在线下载程序(STC-ISP),可以从STC公司或深圳宏晶公司网站上免费下载。1.3.2 Keil仿真器的使用特点 (1)Keil仿真器的使用:以51实验板为例,将仿真器按正确方向插入实验板的CPU插座并锁紧(USB接口与锁紧把手方向一致),用定制电缆连接仿真器和PC机,其供电方式有两种: 通过外部电源同时向实验板和仿真器供电,此时仿真器上的跳线器应开路; 从PC机的USB口取电(5V/最大500mA)同时供给仿真器和实验板,此时仿真器上的跳线器应该短路。两种供电方式不要同时采用。若采用后一方式,应尽量避免带电插拔仿真器端的接头,因为RS-232口不支持热插拔操作,如果这样做,有可能损坏两端的通信芯片(但发生几率并不高)。(2)Keil仿真器的核心是一片由SST公司生产的51兼容芯片SST89E564RD或SST89E516RD。该仿真芯片拥有64KB(Block0)+8KB(Block1)的Flash-ROM,其ROM中常驻有名为“SoftICE(在电路仿真,Software In Circuit Emulator)”的仿真监控程序。实际上,SoftICE只占用5KB的存储空间,包括Block0中的1KB(FC00H-FFFFH)和Block1中的4KB(0000H-0FFFH)。在Block0中还剩下约63KB(0000-FBFFH)可用作用户的仿真空间。(3)调试时,在PC机上uVision套件和仿真器上SoftICE固件的共同控制下,利用仿真芯片“在应用编程(IAP,In Aplication Programming)”的特性,先将目标程序下载到仿真芯片的Block0空间(0000H-FBFFH),随后可对目标系统进行各种硬件仿真调试。调试期间PC机与仿真器之间始终保持通信联络,导致独立Keil仿真器上一个指示数据接收的LED不断闪亮。(4)对独立Keil仿真器,用户必须用仿真器上的复位按钮来结束前一轮的硬件仿真调试,此时,仿真芯片进行复位操作,芯片中前次的用户程序被清除,仿真监控程序重新掌握控制权,准备开始新一轮的下载和调试。 对非独立的Keil仿真器,用户应通过51实验板上的黄色复位按键来进行复位。(5)仿真芯片内的以下资源将在硬件仿真时被占用,但其它资源向用户开放。UART串口仿真时用于PC机与SoftICE间的串行通信;定时器2仿真时用作串行通信的波特率发生器;内部RAM间接寻址区最高端的8个字节仿真时用作堆栈。(6)由于仿真时Keil仿真器要占用一部分硬件资源,所以它不是真正意义上的仿真器,正确的叫法应该是“在线调试器”。此外,仿真芯片有一定的使用寿命。这是因为每次仿真都需要重新将用户代码下载烧写到片内的Flash-ROM。有资料说,它可以支持1万次以上的全速运行调试和100万次以上的单步运行调试。(7)SST89E564RD/516RD的最高工作频率为40MHz,除Flash-ROM外,片内拥有以下一些硬件资源:1KB的内部RAM,定时器T0/T1/T2,1个UART口和1个SPI串口,看门狗定时器WDT,5个可编程计数器阵列PCA、8个中断源和4级中断优先结构,2个数据指针等。其中,44脚封装的SST89E516RD比SST89E564RD多出一个4线的P4口。但用户应注意有些资源(如WDT)的使用不同于AT89S51/52等常用芯片。使用仿真芯片SST89E564RD/516RD可仿真多种51单片机芯片。其仿真空间约63KB,系统时钟可选到40MHz。也就是说,只要仿真芯片上有该项资源,且仿真时未被占用,那么用户就可以在硬件仿真时使用它。(8)使用独立的Keil仿真器时,请注意以下几点:仿真器标配11.0592MHz的晶振,但用户可以在仿真器上的晶振插孔中换插其他频率的晶振;仿真器上的复位按钮只复位仿真芯片,不复位目标系统。仿真芯片的31脚(/EA)已接至高电平,所以仿真时只能使用片内ROM,不能使用片外ROM;但仿真器外引插针中的31脚并不与仿真芯片的31脚相连,故该仿真器仍可插入到扩展有外部ROM(其CPU的/EA引脚接至低电平)的目标系统中使用。2 单片机系统仿真2.1步进电机的正反转设计2.1.1主要元器件(1)单片机(AT89C51) (2)运放(ULN2003A)(3)电阻(MINRES10K) (4)按钮(BUTTON)(5)电容(CAP) (6)晶振(CRYSTAL)(7)单极性步进电机(MOTOR.STEPPER) (8)反相器(74LS04)2.1.2电路功能电路中有三个按键:STOP键使电动机停止转动;FOR键控制电动机正转;REV键控制电动机反转。按键分别接在单片机的P1.0-P1.2引脚上,作为控制信号的输入端,输出端采用ULN2003驱动电路控制步进电机的转向。2.1.3电路原理图步进电机正反转控制电路原理图如图2.1所示。图2.1 步进电机正反转控制电路原理图2.1.4程序清单ORG 0000H MOV DPTR,#TAB DLY:MOV R1,#20 NOP MOVC A,A+DPTR D1: MOV R2,#248ACALL DLY JZ REV DJNZ R2,$STOP:ORL P2,#0FFH MOV P2,A DJNZ R1,D1LOOP:JNB P1.0,FOR2 JNB P1.2,STP1 RET JNB P1.1,REV2 JNB P1.0,FOR2 TAB:DB 3,6,0CH,9 JNB P1.2,STP1 ACALL DLY DB 0 JMP LOOP INC R0 DB 3,9,0CH,6FOR: MOV R0,#0 JMP REV1 DB 0FOR1:MOV A,R0 STP1:ACALL DLY END MOV DPTR,#TAB JNB P1.2,$ MOVC A,A+DPTR ACALL DLY JZ FOR JMP STOP MOV P2,A FOR2:ACALL DLY JNB P1.2,STP1 JNB P1.0,$ JNB P1.1,REV2 ACALL DLY ACALL DLY JMP FOR INC R0 REV2:ACALL DLY JMP FOR1 JNB P1.1,$REV: MOV R0,#5 ACALL DLYREV1:MOV A,R0 JMP REV 2.1.5 系统仿真 所有操作都可以在ISIS中进行,首先从PROTEUS库中选取元器件和工具,参考上图放置元器件放置电源和地。连线时,注意把经由驱动器ULN2003A输出到电动机的控制线标注为“1C、2C、3C、4C”,相应的电动机引脚终端标注为“1C、2C、3C、4C”。完成元器件属性设置和电气检测。执行菜单SourceAdd/Remove Source File,新建源程序文件STEP.ASM。执行菜单SourceSTEP.ASM,打开PROTEUS提供的文本编辑器SRCEDIT,在其中编辑源程序,并保存.执行菜单SourceBuild All,编译源程序,生成目标代码文件STEPHEX。若编译失败,修改调试直至编译成功。打开单片机的元器件属性窗口,在Program File 栏中添加上面编译好的目标代码文件STEPHEX;在Clock Frequency栏中输入晶振频率1MHz.启动仿真后,运行初始状态小灯不亮。单击FOR键,单片机控制电动机正转,再单击STOP键,步进电机停止转动。系统运行效果图如图2.2所示。图2.2 步进电机正反转控制运行效果图2.2外部中断的应用2.2.1主要元器件(1)单片机(AT89C51) (2)开关(LED-YELLOW)(3)电阻(MINRES10K) (4)按钮(BUTTON)(5)电容(CAP) (6)晶振(CRYSTAL)2.2.2电路功能设计一个8只小彩灯控制程序,控制要求如下:(1) 主程序运行时,依次点亮小彩灯(且点亮的灯不灭),8只小彩灯都亮后全灭,循环;(2) 当外部中断0(INT0)发生中断一次后(中断请求信号方式用脉冲触发方式),8只小彩灯全亮、全灭;(3) 当外部中断1(INT1)发生中断后(中断请求信号方式用电平触发方式),8只小彩灯中亮4只,灭4只;(4) 小彩灯亮、灭间隔时间为0.5s。2.2.3电路原理图外部中断应用电路原理图如图2.3所示。图2.3 外部中断原理图2.2.4程序清单ORG 0000H AJMP L1 SETB EX1AJMP MAIN MAIN:MOV SP,#60H SETB EAORG 0003H SETB IT0 N1:MOV R0,#08AJMP L0 CLR IT1 MOV A,#0FFHORG 0013H SETB EX0 N2:CLR CRRC A ACALL YS POP PSWMOV P1,A POP P1 CLR RS1ACALL YS POP PSW RETIDJNZ R0,N2 CLR RS0 YS:MOV R5,#249MOV P1,#0FFH RETI S1:MOV R6,#250ACALL YS L1:PUSH PSW S2:NOPAJMP N1 PUSH P1 NOPL0:PUSH PSW SETB RS1 DJNZ R6,S2PUSH P1 MOV P1,#0FH DJNZ R5,S1SETB RS0 ACALL YS RETMOV P1,#0FFH POP P1 END2.2.5系统仿真所有操作都可以在ISIS中进行,首先从PROTEUS库中选取元器件和工具,参考上图放置元器件放置电源和地;要特别注意正确连线和正确设置网络标号;最后完成元器件属性设置和电气检测。图2.4 外部中断应用运行结果图执行菜单SourceAdd/Remove Source File,新建源程序文件STEP.ASM。执行菜单SourceSTEP.ASM,打开PROTEUS提供的文本编辑器SRCEDIT,在其中编辑源程序,并保存.执行菜单SourceBuild All,编译源程序,生成目标代码文件STEPHEX。若编译失败,修改调试直至编译成功。打开单片机的元器件属性窗口,在Program File 栏中添加上面编译好的目标代码文件STEPHEX;在Clock Frequency栏中输入晶振频率12MHz.启动仿真后,运行初始状态8只小灯依次点亮,且点亮的灯不灭。当外部中断0(INT0)发生中断一次后(中断请求信号方式用脉冲触发方式),8只小彩灯全亮、全灭;当外部中断1(INT1)发生中断后(中断请求信号方式用电平触发方式),8只小彩灯中亮4只,灭4只。具体运行结果如图2.4所示。2.3数字温度计2.3.1主要器件(1)单片机(AT89C51) (2)电阻(MINRES10K)(3)三同相三态缓冲器(74HC245) (4)电容(CAP)(5)晶振(CRYSTAL) (6)数字温度传感器(DS18B20)(7)LED 数码管(7SEG-MPX4-CA)2.3.2电路功能数字温度计电路采用温度敏感元件也就是温度传感器(DS18B20),将温度的变化转换成电信号的变化,如电压和电流的变化,温度变化和电信号的变化有一定的关系,如线性关系,一定的曲线关系等,这个电信号可以使用模数转换的电路即AD转换电路将模拟信号转换为数字信号,数字信号再送给处理单元,如单片机或者PC机等,处理单元经过内部的软件计算将这个数字信号和温度联系起来,成为可以显示出来的温度数值,如28.0摄氏度,然后通过显示单元,如LED示出来给人观察。这样就完成了数字温度计的基本测温功能。2.3.3方案论证按照系统设计功能的要求,确定系统由3个模块组成:主控制器、测温电路及显示电路。数字温度计总体电路结构框图如图2.5所示。DS18B20AT89C51主控制器显示电路扫描驱动图2.5 数字温度计总体电路结构框图1. 主控制器单片机AT89C51具有低压电和小体积等特点,两个端口刚好满足电路系统的设计需要,很适合便携手持式产品的设计使用,系统可以用两节电池供电。2. 显示电路显示电路采用4位共阳LED数码管,从P1口输出段码,列扫描用P3.0P3.3来实现,列驱动用PN4249三极管。2. DS1820工作原理图2.6中低温度系数晶振的振荡频率受温度的影响小,用于产生固定频率的脉冲信号送给减法计数器1;高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。图中还隐含着计数门。当计数门打开时,DS18B20就对低温度系数晶振产生的脉冲信号进行计数,进而完成温度测量。计数门的开启时间由高温度系数晶振来决定,每次测量前,首先将-55所对应的一个基数分别置入减法计数器1、温度寄存器中。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时,温度寄存器的值将加1,减法计数器1的预置值将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行减法计数,如此循环,直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值就是所测量温度值。图中的斜率累加器用于补偿和修正测温过程的非线形性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直到温度寄存器中的数值达到被测量温度值。另外,由于DS18B20 单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。系统对 DS18B20 的各种操作必须按协议进行。操作协议为:初始化DS18B20(发复位脉冲)发ROM功能命令发存储器操作命令处理数据。预置斜率累加器 低温度系数振荡器减法计数器 1计数比较器 预置减到0 温度寄存器 减到 0减法计数器 2高温度系统振荡器增加停止图2.6 DS18B20工作原理图 2.3.4电路原理图数字温度计电路原理图如图2.7所示。图2.7 数字温度计电路原理图2.3.5系统仿真 所有操作都可以在ISIS中进行,首先从PROTEUS库中选取元器件和工具,参考上图放置元器件放置电源和地;要特别注意正确连线和正确设置网络标号;最后完成元器件属性设置和电气检测。执行菜单SourceAdd/Remove Source File,新建源程序文件WDJASM。执行菜单SourceWDJ.ASM,打开PROTEUS提供的文本编辑器SRCEDIT,在其中编辑源程序,并保存.执行菜单SourceBuild All,编译源程序,生成目标代码文件WDJHEX。若编译失败,修改调试直至编译成功。打开单片机的元器件属性窗口,在Program File 栏中添加上面编译好的目标代码文件WDJHEX;在Clock Frequency栏中输入晶振频率12MHz.启动仿真后,LED数码管显示DS18B20的初始温度,可以分别单击DS18B20调试器中的左按钮和右按钮来实现输出温度值的升降,LED数码管的显示温度也随之变化,运行结果如图2.8所示。图2.8 数字温度计电路运行效果图3单片机系统设计人体反应测试仪3.1系统要求本测试仪用于检测人体反应速度,记录从灯光显示开始到操作人员按下相应按钮所需时间,按时间快慢确定操作人员反应速度。要求如下:(1)显示器采用4位显示,格式为0.000s。(2)开始灯一个,按钮两个:开始键和停止键。(3)给电后显示器和开始灯无任何显示,按下开始按钮,经随机延时后开始灯亮,灯亮后当操作人员按下停止按钮,显示器显示反应时间并保持,如果始终不按停止键,到9s显示器会自动显示并保持。此时需再按开始键,显示器和开始灯同时熄灭,又经随机延时后开始灯亮,等待按停止键。(4)在按开始键后开始灯没亮之前的时间内,如果按停止键,会出现显示器全亮并闪动,同时有提前按键的语音提示,按开始键后复位。(5)随机延时每次不同,无规律可寻。1s8s随机。(6)语音控制按不同数段输出不同控制(9段):0.150以下 你太棒了!反应速度如此之快!0.1510.200 你的反应速度够快的!0.2010.250 你的放应速度比较快!0.2510.300 不错!精神集中些还可以更好!0.3010.350 多加练习吧,你的反应稍差些。0.3510.400 你是不是喝酒了?反应有点迟钝了。0.4010.500 快睡着了吧,好好休息吧。0.501以上 我想你是睡着了。提前按键 嗨!你提前按键了,重来!32总体分析1)机型确定为调试方便,选择8031单片机,晶振频率选择6MHZ。2)元器件选择根据系统要求,本系统应具有键盘接口及显示接口,因此拟采用8155芯片扩展I/O接口。由系统要求可知,需采用多段语音录制芯片,拟采用APR9600语音录制芯片,其录音时间最长60s,最多可分256段,可以满足需要。3.3硬件设计1)存储器扩展由于选用的8031单片机无内部程序存储器,根据实际情况选用2732扩展4KB程序存储器。本系统所需保存数据较少,不需扩展数据存储器。本系统中扩展存储器及IO接口芯片有2732、8155和APR9600;采用线选法,2732地址为0000H0FFFH。2)开始灯电路由系统要求可知,需扩展一个LED开始灯,使用P1.0控制。要求当P1.0为0时亮,P1.0为1时灯灭。3)语音控制电路APR9600语音录放芯片是一款音质好、噪声低、不怕断电、可反复录放的新型语音芯片,单片电路可录放32s60s,串行控制时可分256段以上,并行控制时最大可分8段。4)键盘及其接口电路根据系统要求,采用两个按键:开始键和停止键;键盘使用8155芯片扩展;各键键码确定原则为开始键01H、停止键02H。5)显示器接口电路根据系统要求,采用4位显示时间;根据实际需要,显示器采用7段共阴极LED数码管显示器,显示缓冲区选择40H-43H单元;显示接口电路选择8155芯片,采用动态显示、软件译码方式,段、位驱动芯片采用6路集电极开路输出驱动7407芯片。 6)其他电路对于时钟电路、复位电路和电源电路系统无特殊要求,采用典型即可。人体反应测试仪硬件原理图如图3.1所示,其中不包括程序存储器扩展和LED灯。图3.1人体反应测试仪硬件设计原理图3.4软件设计1)程序功能人体反应测试仪程序主要完成以下功能:(1) 确定是否有键闭合同时判断是河间闭合;(2) 按动开始键经随机延时后开始亮灯;(3) 判断开始灯亮前是否提前按停止键;(4) 记录开始灯亮到被测试人员按动停止键的反应时间;(5) 根据是否提前按停止键及反应时间输出不同语音信号;(6) 提前按停止键显示器全亮并闪动,未提前按停止键则显示器显示反应时间。2)主要器件、存储单元及标志位说明(1)定时器/计数器说明定时器/计数器说明0固定定时1ms,作为确定反应时间的依据。定时器/计数器说明1固定定时1ms,作为键盘去抖动和显示器动态显示时延时使用。(2)中断说明本程序中只使用定时器中断0,定时时间到则反应时间加1。(3)I/O接口地址及功能说明各I/O接口地址及功能说明见表3-1。表3-1 I/O接口地址及

温馨提示

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

评论

0/150

提交评论