第九组单片机的数字多用表的设计_第1页
第九组单片机的数字多用表的设计_第2页
第九组单片机的数字多用表的设计_第3页
第九组单片机的数字多用表的设计_第4页
第九组单片机的数字多用表的设计_第5页
已阅读5页,还剩35页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

1、哈尔滨商业大学基于单片机的数字多用表的设计姓名:王立源 201010810142吴帆 201010810532张雪燕 201010810642丛博 201011930002郭爽 201010810112班级: 10级机械设计制造及其自动化(一)班指导老师:姜海涛摘要近十几年来,单片机技术的发展极为迅速,广泛应用于生产、生活的各个 领域。从测量领域来看,一部分电子测量仪表在高速化、精确化方面有了明显 的进步。电子测量仪表精确度的高低,直接影响着企业的经济效益。在我国现 有经济水平下,使用单片机开发的电子测量仪表,测量精确而且性价比极高, 不仅适用于电压、电流、电阻等的测量,还广泛适用于温度、湿度

2、等测量场 合。本课题设计了一个基于单片机的数字多用表,这种数字多用表以单片机作 为数据处理主控芯片。首先,将输入的待测模拟信号经过 A/D 转换模块,转换 成为单片机能够识别和处理的数字信号;然后,单片机对此数字信号进行数据 处理;最后,测量结果通过 LED 显示模块显示出来。本课题设计的数字多用表具有用途多、测量精确、性能稳定、携带方便等 优点,是电子测量中最常用的工具之一。它可以用来测量电压、电流、电阻 等,操作起来非常简单,而且还可以进行功能扩展关键词: 单片机;电子测量; A/D 转换; LED 显示目录1 引言 11.1 数字多用表的研究现状 11.2 课题重点解决的问题 22 数字

3、多用表的方案设计 22.1 数字多用表工作原理 22.2 数字多用表的硬件电路设计 32.2.1 电阻测量电路和电阻测量原理 42.2.2 电压测量电路和电压测量原理 62.2.3 电流测量电路和电流测量原理 82.2.4 LED 显示 93 数字多用表的软件设计 133.1 主程序流程图 133.2 物理采样及处理流程 144 结果分析 144.1 KEIL C51 软件环境简介 144.2PROTEUS软件环境简介154 . 3结果分析 165 结束语 16参考文献 17 附录源程序 错误!未定义书签。1 引言1.1 数字多用表的研究现状现代的精密数字多用表是一种复杂的测量仪器,它通常提供

4、交、直流电 压,交、直流电流和电阻等常规测量功能。随着大规模集成电路和显示技术的 发展,数字多用表的精度和分辨率越来越高,以其小型化、低功耗、低成本、 简单易用的优势成为了计量测试、科研、国防和生产制造环境所不可或缺的主 要精密测量设备。与模拟式仪表相比,数字多用表具有准确度高、测量范围 宽、测量速度快、能够快速读取数值、抗干扰能力强、使用方便等特点。目 前,作为高端数字多用表的精度和分辨率越来越高。一些高性能数字多用表采 用了双模显示,分辨率已达 61/2 位数字,并具有波形捕获功能。多种标准的接 口及以太网接口的采用,进一步扩展了数字多用表的应用范围和应用领域。目前的数字多用表虽然具有很高

5、的灵敏度和准确度,但仍存在不足之处, 主要从以下几个方面表现出来:( 1)不能实现自动化显示和测量,最明显的问 题是需要经常转换功能转换量程开关,测量速度慢,显示不够精确,操作不 便等缺点;( 2)经常因测量范围过大而烧毁多用表。( 3)反应慢,触点接触 不良,功能 /量程选择开关的弹簧片容易被损坏、氧化和变形。随着电子技术特 别是检测和控制技术的飞速发展,提高数字多用表自动化水平成为可能,测量 功能自动识别数字多用表取代手动操作的数字多用表是必然趋势。将测控技术 的发展成果应用到数字多用表设计中,对传统数字多用表的结构进行改造,用 先进的计算机控制技术代替传统的机械功能 /量程选择开关,克服

6、了目前数字多 用表的缺点,能够进行快速、便捷、准确地测量,并大大提高了可靠性和安全 性等性能指标。研制世界上最先进的新一代高智能化的数字多用表具有重要的 现实意义,对于提高我国在仪表制造业方面的国际影响力和数字多用表在国际 市场上的竞争力将发挥重大作用。现在的测试系统都在朝着小型化、智能化、多功能、模块化、标准化、数 字化和开放型方向发展,随着检测技术和电子技术的进步和应用领域的扩大, 这种演便将会越来越明显。整体模块趋于标准化,每个模块有独立的测量功 能,用户可根据测试需要即插即用,十分灵活。新型的测量仪器在测量方面的 作用越来越显著。RAM、CPU、FPGA、EPLD、ROM、DSP和AS

7、IC是现代仪 器的工作核心,它们的集成度越来越高、处理数据的速度也越来越快,甚至出 现了系统级的芯片。仪器内部带有处理能力很强的智能软件,已不是简单的硬 件实体,而是硬件、软件相结合,软件在测量仪器智能高低方面起着重要的作 用。不仅提高了产品的设计水平和产品的制造质量,而且缩短了生产周期。1.2课题重点解决的问题本课题重点要解决的问题是对各种测量内容和量程的转换,可以利用开关 选择所需测量的内容,并使之正确的显示在显示器上。传统的数字多用表在测 量时需要手动切换量程,不仅不方便,而且要求不能超过该量程。如果在测量时忘 记切换量程或测量值超出测量范围,则会出现很大的测量误差,甚至有可能将数字 多

8、用表烧坏。另外,由于 A/D转换器转换而来的值是整数,所以要把它转换为 带小数点的字符串形式,从而使 A/D转换器转换得到的值变成字符串的形式在 LED上显示,能让各量程的值正确的显示。本课题中采用集成多路模拟开关、模数转换和运算放大器设计了数字多用 表量程自动切换技术,通过单片机检测和软件编程可实现数字多用表量程的自 动转换。它具有结构简单、体积小、动作快、驱动电流小、操作方便等优点。2数字多用表的方案设计2.1数字多用表工作原理本课题设计的数字多用表的实现是基于单片机原理。首先,在Proteus软件环境中进行硬件电路图的设计和描绘。然后在Keil软件环境中进行系统的软件编程,并进行程序源文

9、件的编译和调试,最后生成.hex文件。此.hex文件是硬件电路运行实现的源代码来源。把.hex文件加载到80C51单片机芯片,然后在 Proteus软件环境中运行硬件电路,数字多用表就可以正常显示了。本课题设计的数字多用表主要由:A/D转换模块、数据处理模块、显示模块 这三大模块组成。其组成原理如图1所示。首先,被测量模拟量输入到A/D转换模块,变换为单片机能够识别和处理的数字量,然后,单片机对这个数字量 进行处理,最后,输出给LED显示模块进行显示。图1系统的组成原理图(框图)2.2数子多用表的硬件电路设计+5v88待测电輕U6:CU2R1974LS374LM324X1CRYSTALR39U

10、4:B21O1C1TS1U4:A2316374LS024T4T526T-7816 TT10uF 29-工口工10k0 123 4 5 b /Q Q Q QQQQQ101 23 4567DD DD DDDDSW1XTAL1P0.0/AD0P0.1/ADP0.2/AD2XTAL2P0.3/AD:P0.4/AD,P0.5/AD!P0.6/AD6RSTP0.7/ADP2.0/A8P2.1/A9P2.2/A1CPSENP2.3/A11ALEP2.4/A1:EAP2.5/A13P2.6/A14P2.7/A15P1.0P3.0/RXDP1.1P3.1/TXEP1.2P3.27nrr(P1.3P3.3/WTP

11、1.4P3.4/T0P1.5P3.5TP1.6P1.7P3.77RI表的电阻测量输入电路图80C5110U5:A1820OEVREF(-VREF(+OUT8ALEOUT7ADD COUT6ADD BOUT5ADD AOUT4OUT3IN7OUT2IN6OUT1IN5IN4EOCIN3IN2STARTIN1CLOCKIN0U3610ADC0808反相缓冲电路R27IO-,100KR28rL i2100K3U4:CU4:D22tr12 WR2474LS+5V寺测电压R12C50.1uf2/261612R13-15vU6:AR15同相放大电路C70.33ufR1640kU1:BLM32c6r 0.1

12、uLM324+ 15VIR1410k低通滤波器C80.1ufR1710k图2数字多用表的主电路图数字多用表主电路图如图 2所示,80C51单片机通过片选方式扩展了 A/D 转换器ADC0808和4位LED数码管,单片机的 P2.7引脚作为ADC0808的片 选信号,因此 A/D转换的端口地址为7FFFH。片选信号和只信号一起经或非 门产生ADC0808的启动信号START和地址锁存信号ALE。片选信号和RD信 号一起经或非门产生输出允许信号OE, OE=1时选通三态门使输出锁存器中的转换结果送入数据总线。ADC0808的EOC信号经反相后接到80C51的INT 1引 脚,用于产生A/D转换完成

13、中断请求信号。ADC0808芯片的3位模拟量输入 通道地址输入端 A、B、C分别接80C51的PO.O、P0.1、P0.2,故只要向端口地 址0C000H分别写入数据00H07H,即可启动模拟量输入通道 07进行A/D转 换。ADC0808参考正电压为5V,参考负电压为0V,时钟输入为2MHZ。单片机的P2.0引脚作为数码管锁存器 74LS374的片选信号,片选信号和WR信号一起经或非门及反相器接到数码管锁存器 74LS374的CLK端,因此显 示器的数字端地址为0FEFFH,而单片机的P1.4P1.7引脚作为数码管的数位选 择,显示时先将数据通过数字端口写入锁存器,再通过数位选择点亮相应数码

14、管。单片机的P1.0P1.2引脚通过一个转换开关接地,通过判断P1.0P1.2引脚电平的高低,决定是否进行电压、电阻、电流的测量。2.2.1电阻测量电路和电阻测量原理1、电阻测量电路如图3所示为数字多用表的电阻测量输入电路。运算放大器的反馈电阻RX作为待测量电阻,通过 1000Q电阻R19接到电源-5V。假定运算放大器理想, 那么:(2-1)rv=5V RXR19将RV送给ADC0808,转换后得到数字量为:, RV 汉 255(2-2)DV =5单片机读取A/D转换数据,在经过逆向运算可得:(2-3)“ DV 汉 R19RX=255注意此时得到的Rx为二进制数,需要转化为十进制数后才能送给数

15、码管显示。程序采用4字节无符号除法,连续进行4次除以10的除法,依次取得4位 数值,并且电阻测量范围只保证在 01000Q范围内误差不超过2Q,如果测量 其他范围的电阻,需要修改 R19的数值,或者采用其它电路。待测电阻 RXRV图3数字多用表的电阻测量输入图2、电阻测量原理数字多用表中的电阻档采用的是比例测量法,其原理电路见图4。由稳压管ZD提供测量基准电压,流过标准电阻 R0和被测电Rx的电流基本相等(数字 表头的输入阻抗很高,其取用的电流可忽略不计 )。所以A/D转换器的参考电压 Urfe和输入电压Uin有如下关系:U REFRoU INRxU INRxUrefRo(2-4)(2-5)2

16、MO动Vref-IPTCIN+&200k Q90k900200100JT&900k20k Q 9kA/D数字表头V ref*NDLt/p-EF召 VREF-A/D 转换占1iN+及f+IN-数宁图4电阻测量原理图根据所用A/D转换器的特性可知,数字 表显示的是 Uin与Urfe的比值,当Uin=Urfe 时显示“ 1000 ”, Uin=0.5Urfe时显示“500”,以此类推。所以,当 Rx =R0时, 表头将显示“ 1000”,当 Rx=0.5R0时显示“ 500”,这称为比例读数特性。因此,我 们只要选取不同的标准电阻并适当地对小数 点进行定位,就能得到不同的电阻测量档。如对200Q档,

17、取R0i=100Q,小数点定在十 位上。当Rx=100 Q时,表头就会显示出 100.0Q。当Rx变化时,显示值相应变化, 可以从0.1 Q测到199.9Q。又如对2K Q档, 取R02=1K Q,小数点定在千位上。当 Rx变 化时,显示值相应变化,可以从 0.001KQ测 至U 1.999KQ。IN-图5电阻原理图其余各档道理相同,可自行推演。数字多用表多量程电阻档电路见图 5。 由上分析可知,R| = Rd1 -100:R2 = &2 - Rdi -1000 -100 = 9003R3 = R03 - Rd2 = 10k - 1k = 9k图5中由正温度系数(PTC)热敏电阻R1与晶体管T

18、组成了过压保护电路,以防 误用电阻档去测咼电压时损坏集成电路。当误测咼电压时,晶体管T发射极将击穿从而限制了输入电压的升高。同时R1随着电流的增加而发热,其阻值迅速增大,从而限制了电流的增加,使 T的击穿电流不超过允许范围。即 T只是处 于软击穿状态,不会损坏,一旦解除误操作,R1和T都能恢复正常。222电压测量电路和电压测量原理1、电压测量电路如图6所示为数字多用表的电压测量输入电路。待测电压经过低通滤波器 滤除高频干扰,在通过同相放大器送给ADC0808,电压测量范围为 05V,5ADC0808的分辨率为8位,测量误差为:0.02 V。255图6数字多用表的电压测量输入电路图2、多量程数字

19、电压表原理在基准数字电压表头前面加一级分压电路(分压器),可以扩展直流电压测量的量程。如图7所示,U0为电压表头的量程(如200MV),r为其内阻(如10M Q ),门、匕为分压电阻,U01为扩展后的量程。Sj J.1J0-/o数宇电压表头.r 1a图7分压电路原理图图8多量程分压器原理图Uo由于r2,所以分压比为Ui0Ui0rir2扩展后的量程为ri=0.001(2-6)多量程分压器原理电路见图8, 5档量程的分压比分别为1、0.1、0.01、0.001和0.0001,对应的量程分别为 2000V、200V、20V、2V和200MV。采用 图8的分压电路虽然可以扩展电压表的量程,但在小量程档

20、明显降低了电压表的输入阻抗,这在实际使用中是所不希望的。所以,实际数字多用表的直流电 压档电路为图9所示,它能在不降低输入阻抗的情况下,达到同样的分压效果3O例如:其中200V档的分压比为R4 + R510k其余各档的分压比可同样算出。 实际设计时是根据各档的分 压比和总电阻来确定各分压 电阻的。如先确定R=R1+R2+R3+R4+R5,再计算2000V档的 电阻R5=0.0001R =1K再逐档 计算R4、R3、R2、R1。尽管 上述最高量程档的理论量程 是2000V,但通常的数字多用 表出于耐压和安全考虑,规定 最高电压量限为1000V。换量 程时,多量程转换开关可以根 据档位自动调整小数

21、点的显示, 使用者可方便地直接读出测量动I9M2V900k20VuR、90k压表头200VR;9kM 一2000Vr-nL局 Ik图9使用分压电路图Ri R2 R3 R4 R510M结果。223电流测量电路和电流测量原理1、电流测量电路如图10所示为数字多用表的电流测量输入电路。电流测量范围为1mA100mA,因为ADC0808是电压转换器件,必须将电流转换为电压才能进行测 量,这可以通过串接电阻 RL来实现,注意RL必须很小,否则影响电流数值。 由于测量电流和RL都很小,两端的电压也很小,必须将其放大到ADC0808能够分辨的范围之内反相缓冲电路图10数字多用表的电流测量输入电路图2、多量程

22、数字多用表电流测量原理根据欧姆定律,用合适的取样电阻把待测电流转换为相应的电压,再进行测 量。如图11,取样电阻R上的电压降为:Ui=liR图11电流测量原理图12多量程分流器电路若数字表头的电压量程为 Uo,欲使电流档量程为Io,则该档的取样电阻(也称分流电阻)为:R = Uo/Io ,女口 Uo =200v,则Io =200mA档的分流电阻为 R=1K多量程分流器原理电路见图 12。图12中的分流器在实际使用中有一个缺 点,就是当换档开关接触不良时,被测电路的电压可能使数字表头过载,所 以,实际数字多用表的直流电流档电路为图13所示。图13中各档分流电阻的阻值是这样计算的:先计算最大电流档

23、的分流电阻RsUo1 m50.2 =0.1()2(2-7)再计算下一档的F4Uo0.2R4- -R50.1 =0.9(门)Im40.2依次可计算出 R5、R2和R1。图中的BX是2A保险丝管,电流过大时会快速熔断,超过流保护作用。两只反向 连接且与分流电阻并联的二极管 D1、 D2为塑封硅整流二极管,它们起双向 限幅过压保护作用。正常测量时,输 入电压小于硅二极管的正向导通压图13实用分流器降,二极管截止,对测量毫无影响。一旦输入电压大于0.7V,二极管立即导通,两端电压被限制住(小于0.7V),保 护仪表不被损坏。224 LED显示LED静态显示(也称直流驱动),是指显示器显示某一字符时,相

24、应段的发光二极管恒定地导通或截止,每一个段码都有一个单片机的I/O埠进行驱动。在静态显示电路中,若七段 LED显示器的a b、c、d、e、f段导通,g段 截止,则显示0。这种显示方法每一位都需要有一个 8位输出口控制。采用3 片74LS373扩展并行I/O 口,3片74LS373的口地址是由74LS138译码器的输 出决定的,74LS138 的 A、B、C 分别接 AT89C51 的 P2.5、P2.6 P2.7,所以 3 片74LS373的地址分别为:仆FFH、3FFFH、5FFFH,其译码信号与单片机的 写信号一起控制对某一片74LS373的数据写入,采用MOVX指令写入数据。静 态显示时

25、,较小的驱动电流就可以得到较高的显示亮度,所以可由接口芯片直 接驱动。LED 动态显示是将所有数码管的 8 个显示的同名端连在一起,另外为每个 数码管的公共极 COM 增加位元选通控制电路,位元选通由各独立的 I/O 线控 制,当单片机输出字型码时,所有数码管接到相同的字码符时,会显示哪一个 取决于对位元选通 COM 段电路的控制输入,所以我们只要把所有显示的数码 管的选通控制打开,就会显示出所需字形,没有选通的数码管就不会点亮,在 动态显示过程中,每个数码管点亮时间只有几毫秒,由于人的视觉及数码管的 余辉作用,虽然数码管并不是同时点亮,但只要扫描速度快,给人的视觉效果 就是一组稳定的显示资料

26、。由于 LED 动态显示的亮度高,软件编程容易,所以本设计采用动态显示。 2.2.5 芯片的选择 1、主芯片的选择本设计采用 80C51 单片机作为数据处理模块的核心芯片。对 A/D 转换后得 到的数字信号进行处理工作。 80C51 单片机是一种闪烁可编程可擦除只读存储 器( FPEROM Falsh Programmable and Erasable Read Only Memory )的低电 压,高性能 CMOS , 8 位微处理器。 AT80C51 单片机的可擦除只读存储器可以 反复擦除 100 次。该器件采用 ATMEL 高密度非易失存储器制造技术制造,与 工业标准的 MCS-51 指

27、令集和输出管脚相兼容 3。由于将多功能 8 位 CPU 和闪 烁存储器组合在单个芯片中, ATMEL 的 AT80C51 是一种高效微控制器, 80C51 是它的一种精简版本。 80C51 单片机为很多嵌入式控制系统提供了一种 灵活性高且价廉的方案。19XTAL118XTAL2RSTP0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7293031PSENALEEA-P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A1512345678P1.0P1.1

28、P1.2P1.3P1.4P1.5P1.6P1.7P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/TP3.5/TP3.6/WRP3.7/RD38373534333221222324252627281011121314151617390180C51图14 80C51引脚图ALE :地址锁存控制信号,ALE用于控制把P0 口输出的低8位地址送入锁 存器锁存起来,以实现低位地址和数据的分时传送。PSEN :外部程序存储器读选通信号,在读外部ROM时PSEN有效(低电平),以实现外部ROM单元的读操作。EA :访问程序存储器控制信号。当 EA信号为低电平时,对 ROM的读操

29、 作是针对外部程序存储器的;而当 EA信号为高电平时,对 ROM的读操作时从 内部程序存储器开始,并可延迟至外部程序存储器 4。RST:复位信号。当输入的复位信号延续2个机器周期以上高电平时即为有效,用于完成单片机的复位工作。XTAL1和XTAL2 :外接晶体引线端。当使用芯片内部时钟时,XTAL1和XTAL2用于外接石英晶体谐振器和微调电容;当使用外部时钟时,用于接入外 部时钟脉冲信号5。2、模数(A/D)转换芯片的选择常见的物理量都是幅值(大小)连续变化的所谓模拟量(模拟信号)。指针式仪 表可以直接对模拟电压、电流进行显示。而对数字式仪表,需要把模拟电信号 (通常是电压信号)转换成数字信号

30、,再进行显示和处理 (如存储、传输、打印、 运算等)。数字信号与模拟信号不同,其幅值 (大小)是不连续的。这种情况被称为是 量化的。若最小量化单位(量化台阶)为,则数字信号的大小一定是的整数倍,该整数可以用二进制数码表示。但为了能直观地读出信号大小的数值,需 经过数码变换(译码)后由数码管或液晶屏显示出来。本设计采用的A/D转换器为8位的ADC0808转换器。ADC0808是8位逐次逼近式,可实现8路模拟信号的分时采用,片内有 8路模拟选通开关,以及 相应的选通地址锁存与译码电路。地址锁存与译码电路完成对A、B、C3个地址位进行所存和译码,其译码输出用于通道选择。 8位A/D转换器是逐渐逼近

31、式,有控制与时序电路、逐次逼近寄存器、树状开关以及 256R电阻阶梯网络等 组成。输出锁存器用于存放和输出转换得到的数字量 。其主要性能如下:(1) 分辨率为8位(2) 精度小于1/2LSB(3) 单一 +5V供电,模拟输入电压范围为05V(4) 具有锁存控制的8路输入模拟开关(5) 可锁存三态输出,输出与 TTL电平兼容(6) 功耗为15MW(7) 不必进行零点和满度调整(8) 转换速度取决于芯片外接的时钟频率7(9) 时钟频率范围101280kHZ,典型值为640kHZ,约为100gADC0808芯片的引脚如图15所示。引脚功能介绍如下:U126272812325_2423221216IN

32、0CLOCKIN1STARTIN2IN3EOCIN4IN5OUT1IN6OUT2IN7OUT3OUT4ADD AOUT5ADD BOUT6ADD COUT7ALEOUT8VREF(+)VREF(-)OE1062120_19_18_8_151417ADC0808图15 ADC0808引脚图IN7IN0 :模拟量输入通道A、B、C:地址线,模拟通道的选择信号,A为低位地址,C为高位地址。ALE :地址锁存允许信号。对应 ALE上跳沿,A、B、C地址状态送入地址 锁存器中。START:转换启动信号。START上跳沿时,所有内部寄存器清 0; START 下跳沿时,开始进行A/D转换;在A/D转换期间

33、,START应保持低电平。D7DO:数据输出线。DO为最低位,D7为最高位。OE:输出允许信号,OE=0,输出数据线呈高电阻;OE=1,输出转换得到 的数据。REF(+)、REF(-):分别为基准电源的正、负端。EOC:转换结束信号。EOC=0,正在进行转换,EOC=1,转换结束。3数字多用表的软件设计3.1主程序流程图图16主程序流程图3.2物理采样及处理流程被测物理量选择电压电流电阻档位选择信号转换A/D芯片采集转换处理采集信号显示测量数据结果返回图17物理采样及处理流程图4结果分析在硬件电路设计和软件编程完成之后,就可以进行系统仿真。在硬件电路 的仿真环境Proteus中,将经过编辑、编

34、译、汇编、连接几步生成的.hex文件加 载到单片机80C51中;然后,将待测量通过 A/D转换口与本系统相连;最后, 按一下运行按钮便可以从LED上读取测量结果了。4.1 Keil C51软件环境简介单片机开发中除必要的硬件外,同样离不开软件,本系统的软件编程设计是在Keil软件环境中完成的。我们写的C语言、汇编语言源程序要变为 CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已 极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的 A51,随着单片机开发技术的不 断发展,从普遍使用汇编语言到逐渐使用高级语言开发,

35、单片机的开发软件也 在不断发展,Keil软件是目前最流行开发51系列单片机的软件,这从近年来各 仿真机厂商纷纷宣布全面支持 Keil即可看出。Keil提供了包括C编译器、宏汇 编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通 过一个集成开发环境( uVision )将这些部份组合在一起。掌握这一软件的使用 对于使用 51系列单片机的爱好者来说是十分必要的,如果使用 C 语言编程,那 么 Keil 几乎就是不二之选。即使不使用 C 语言而仅用汇编语言编程,其方便易 用的集成环境、强大的软件仿真调试工具也会令人事半功倍 9 。Keil C51是美国Keil Software公司

36、出品的51系列兼容单片机C语言软件开 发系统,与汇编相比, C 语言在功能上、结构性、可读性、可维护性上有明显 的优势,因而易学易用。用过汇编语言后再使用 C 来开发,体会更加深刻。Keil C51 软件提供丰 富的库函数和 功能强大的集成开发调试工 具,全 Windows 界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体 会到 Keil C51 生成的目标代码效率非常之高,多数语句生成的汇编代码很紧 凑,容易理解。在开发大型软件时更能体现高级语言的优势 10。4.2Proteus软件环境简介本系统的硬件设计首先是在 Proteus 软件环境中仿真实现的。 Proteus 软件 是

37、来自英国 Labcenter electronics公司的EDA工具软件,Proteus软件有十多年 的历史,在全球广泛使用,除了具有和其它EDA工具一样的原理布图、PCB自动或人工布线及电路仿真的功能外,其革命性的功能是,它的电路仿真是互动 的。针对微处理器的应用,还可以直接在基于原理图的虚拟原型上编程,并实 现软件源码级的实时调试。如果有显示及输出,配合系统配置的虚拟仪器如示 波器、逻辑分析仪等,还能看到运行后输入输出的效果。Proteus建立了完备的电子设计开发环境,尤其重要的是Proteus Lite可以完全免费,也可以花微不足道的费用注册达到更好的效果 11。Proteus7.1 是

38、目前最好的模拟单片机外围器件的工具。可以仿真 51 系列、 AVR、PIC等常用的 MCU及其外围电路(如 LCD,RAM,ROM,键盘,马 达,LED,A/D,部分SPI器件,部分IIC器件,)。其实Proteus与 multisim 比较类似,只不过它可以仿真 MCU !。当然,软件仿真精度有限,而且不可能 所有的器件都找得到相应的仿真模型,用开发板和仿真器当然是最好选择,可 是初学者拥有它们的可能性比较小 12。使用 51 系列单片机,不管是用汇编语言 还是用C语言编程都要用到keil软件。使用keilc51v7.50 + proteus7.1可以像使 用仿真器一样调试程序,一般而言,微

39、机实验中用万能仿真器 +电工系自己做的 实验板的实验都可以做得到。当然,硬件实践还是必不可少的。在没有硬件的 情况下,Proteus能像pspice仿真模拟/数字电路那样仿真 MCU及外围电路。另外,即使有硬件,在程序编写早期用软件仿真一下也是很有必要的。Proteus软件主要具有以下几个方面的特点:(1)设计和仿真软件 Proteus是一个很有用的工具,它可以帮助学生和专 业人士提高他们的模拟和数字电路的设计能力。(2)它允许对电路设计采用图形环境,在这种环境中,可以使用一个特定符号来代替元器件,并完成不会对真实电路造成任何损害的电路仿真操作14 0(3)它可以仿真仪表以及可描述在仿真过程中

40、所获得的信号的图表。(4)它可以仿真目前流行的单片机,如 PICS, ATMEL-AVR, MOTOROLA, 8051 等。(5)在设计综合性方案中,还可以利用ARES开发印制电路板13o 4.3结果分析以测量电流为例进行结果分析,如图 18所示是对一个11mA的电流进行测 量的仿真电路。从图中可以看出 LED显示的结果与实际值一致,符合电子测量 系统对电路测量的要求。图18电流测量仿真电路图u6:DA2VBCDEGH13V*F41 1i 11 iV 411 1i 41 1F i5结束语通过这次长达数月的毕业课题的设计,使我真正的、全面的有机会对大学 期间所学的专业课和专业知识进行了系统的分

41、析和总结,从课题的分析设计到 最后的硬件电路设计和软件编程设计的实现,都是在老师的指导下,逐步完成 的。本课题设计了一个数字多用表,这种数字多用表以单片 80C51 作为数据处 理主控芯片,并以模数转换芯片 ADC0808、锁存器74LS374、液晶显示模块作 为外围电路,构成了整个的硬件电路 15。待测的模拟量首先经过A/D 转换模块,转换成为单片机能够识别和处理的数字信号;然后,单片机对此数字信号 进行数据处理;最后,测量结果通过显示模块显示出来。可以用来测量电压、 电流、电阻,而且还可以进行功能的扩展。由于能力和时间有限,系统还有一些地方不尽如人意。比如,本系统能直 接测量的电压范围比较

42、小,要想测量大电压必须先进行分压处理。因为 A/D 转 换器 ADC0808 有 8 个输入端口,所以,理论上讲本系统能够分时地对 8 路信号 进行测量;如果接上湿度传感器本系统还能象测量温度那样来测量湿度,而这 些工作还有待今后一一地去解决。参考文献1闫茹. 中药滴丸包装车间悬挂式药料输送小车控制系统开发 D .陕西:陕西科 技大学 2009.2 白雨微.六位半数字多功能万用表设计J林业机械与木工设备.2010:21-27.3 刘文武.机械水表远传系统的开发与应用.J中国仪器仪表.2009: 35-41.4 张秋菊.机载干扰控制系统的设计与实现 D .大连理工大学 2007.5 张锋. 高精

43、度数字同步系统的研究 D. 中国科学院西安光学精密机械研究所 2007.附录 源程序:org 0000h。单片机复位地址ajmp main。转移到主程序处org 0100h。main被定位在 0x0100处main: mov sp,#80h。初始化堆栈指针jnb P1.0,crjnb P1.1,cvjnb P1.2,cacr:mov R7,#00hlcall adcLCALL RDATlcall DISPLAYsjmp mainCV: MOV R7,#01HLCALL ADCLCALL VDATLCALL DISPLAYSJMP MAINCA: MOV R7,#02HLCALL ADCLCAL

44、L ADATLCALL DISPLAYSJMP MAINADC: MOV A,R7 。 0808 A/D 转换子程序MOV DPTR,#7FFFHMOVX DPTR,AJB P3.3,$MOVX A,DPTR 。输入转换结果RETvdat:mov R2,#00hmov R3,Amov R6,#01hmovR7,#0F4hcallMULD2clrCmovA,r5addA,#60hmovr5,AmovA,r4addcA,#00hmovr4,AmovA,r3addcA,#00hmovr3,AmovA,r2addcA,#00hmovr2,Amovr0,#30hmovr1,#34hmovA,R2movr

45、1,Aincr1movA,R3movr1,Aincr1movA,R4movr1,Aincr1movA,R5movr1,Aincr1movr1,#00hincr1movr1,#00hincr1。乘以 500加96修正movr1,#00hincr1movr1,#0FFhcallDIVD4。除以 255movr1,#38hmovr1,#00hincr1movr1,#00hincr1movr1,#00hincr1movr1,#0AhcallDIVD4mov43h,33hcallDIVD4mov42h,33hcallDIVD4mov41h,33hmovr0,#40hmovr0,#00hincr0movA

46、,41hmovDPTR,#SEGMENT7movcA,A+DPTRorlA,#80hmovr0,Aincr0movA,42hmovDPTR,#SEGMENT7movcA,A+DPTRmovr0,Aincr0movA,43hmov DPTR,#SEGMENT7movc A,A+DPTRmov r0,AretADAT:movB,AmovA,#0B6hclrC。以下根据范围设置数值以防溢出subbA,BjcLARGERAmovA,BsubbA,#16hjcLESSAajmpMIDDLEALARGERA:movA,#0B6hajmpCALCULATEALESSA:mov A,#16hajmpCALCU

47、LATEAMIDDLEA:movA,BCALCULATEA: mov r2,#0C3hmovr3,#50hmovr6,#00hmovr7,AcallMULD2。乘以 50000clrCmovA,r5subbA,#70h。以下减去 102000movr5,Amov37h,AmovA,r4subbA,#8Ehmov r4,A mov 36h,A mov A,r3 subb A,#01h mov r3,A mov 35h,A mov A,r2 subb A,#00h mov r2,A mov 34h,A mov r0,#30h mov r1,#38h mov r1,#00h inc r1 mov r

48、1,#01h inc r1 mov r1,#5Eh inc r1 mov r1,#0A0h call DIVD4 。除以 89760 mov r1,#38h mov r1,#00h inc r1 mov r1,#00h inc r1 mov r1,#00h inc r1 mov r1,#0Ahmov DPTR,#SEGMENT7 call DIVD4 mov A,33h movc A,A+DPTR mov 43h,Acall DIVD4 mov A,33hmovc A,A+DPTR mov 42h,A call DIVD4mov A,33h movc A,A+DPTR cjne A,#3Fh,

49、NOTEQU mov A,#00hNOTEQU:mov 41h,A mov 40h,#00h RETrdat:mov R2,#00hmov R3,Amov R6,#03hmov R7,#0E8hcall MULD2。乘以 1000mov r0,#30hmov r1,#34hmov A,R2mov r1,Ainc r1mov A,R3mov r1,Ainc r1mov A,R4mov r1,Ainc r1mov A,R5mov r1,A inc r1mov r1,#00hincr1movr1,#00hincr1movr1,#00hincr1movr1,#0FFhcallDIVD4。除以 255movr1,#38hmovr1,#00hincr1movr1,#00hincr1movr1,#00hincr1movr1,#0AhmovDPTR,#SEGMENT7callDIVD4。连续进行 4次除以 10的操作movA,33h。取得 10进制值movcA,A+DPTRmov43h,AcallDIVD4movA,33hmovcA,A+DPTRmo

温馨提示

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

评论

0/150

提交评论