《2022年第九组单片机的数字多用表的设计》由会员分享,可在线阅读,更多相关《2022年第九组单片机的数字多用表的设计(35页珍藏版)》请在金锄头文库上搜索。
1、哈尔滨商业大学基于单片机的数字多用表的设计姓名:王立源201010810142 吴帆 201010810532 张雪燕 201010810642 丛博 201011930002 郭爽 201010810112 班级: 10 级机械设计制造及其自动化(一)班指导老师:姜海涛时间: 2013.6.1 2013.6.17 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 35 页摘 要近十几年来,单片机技术的发展极为迅速,广泛应用于生产、生活的各个领域。从测量领域来看,一部分电子测量仪表在高速化、精确化方面有了明显的进步。电子测量仪表精确度的高
2、低,直接影响着企业的经济效益。在我国现有经济水平下,使用单片机开发的电子测量仪表,测量精确而且性价比极高,不仅适用于电压、电流、电阻等的测量,还广泛适用于温度、湿度等测量场合。本课题设计了一个基于单片机的数字多用表,这种数字多用表以单片机作为数据处理主控芯片。首先,将输入的待测模拟信号经过A/D 转换模块,转换成为单片机能够识别和处理的数字信号;然后,单片机对此数字信号进行数据处理;最后,测量结果通过LED 显示模块显示出来。本课题设计的数字多用表具有用途多、测量精确、性能稳定、携带方便等优点,是电子测量中最常用的工具之一。它可以用来测量电压、电流、电阻等,操作起来非常简单,而且还可以进行功能
3、扩展。关键词:单片机;电子测量; A/D 转换; LED 显示目 录1 引言 1 1.1数字多用表的研究现状1 1.2课题重点解决的问题2 2 数字多用表的方案设计2 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 35 页2.1数字多用表工作原理2 2.2数字多用表的硬件电路设计3 2.2.1 电阻测量电路和电阻测量原理4 2.2.2 电压测量电路和电压测量原理6 2.2.3 电流测量电路和电流测量原理8 2.2.4 LED显示 9 3 数字多用表的软件设计13 3.1主程序流程图 13 3.2物理采样及处理流程14 4 结果分析 1
4、4 4.1KEIL C51软件环境简介 14 4.2PROTEUS软件环境简介 15 4.3结果分析 16 5 结束语 16 参考文献 17 附录源程序 错误!未定义书签。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 35 页1 引言1.1 数字多用表的研究现状现代的精密数字多用表是一种复杂的测量仪器,它通常提供交、直流电压,交、直流电流和电阻等常规测量功能。随着大规模集成电路和显示技术的发展,数字多用表的精度和分辨率越来越高,以其小型化、低功耗、低成本、简单易用的优势成为了计量测试、科研、国防和生产制造环境所不可或缺的主要精密测量设
5、备。与模拟式仪表相比,数字多用表具有准确度高、测量范围宽、测量速度快、能够快速读取数值、抗干扰能力强、使用方便等特点。目前,作为高端数字多用表的精度和分辨率越来越高。一些高性能数字多用表采用了双模显示,分辨率已达61/2 位数字,并具有波形捕获功能。多种标准的接口及以太网接口的采用,进一步扩展了数字多用表的应用范围和应用领域。目前的数字多用表虽然具有很高的灵敏度和准确度,但仍存在不足之处,主要从以下几个方面表现出来:(1)不能实现自动化显示和测量,最明显的问题是需要经常转换功能转换量程开关,测量速度慢,显示不够精确,操作不便等缺点;( 2)经常因测量范围过大而烧毁多用表。(3)反应慢,触点接触
6、不良,功能 /量程选择开关的弹簧片容易被损坏、氧化和变形。随着电子技术特别是检测和控制技术的飞速发展,提高数字多用表自动化水平成为可能,测量功能自动识别数字多用表取代手动操作的数字多用表是必然趋势。将测控技术的发展成果应用到数字多用表设计中,对传统数字多用表的结构进行改造,用先进的计算机控制技术代替传统的机械功能/量程选择开关,克服了目前数字多用表的缺点,能够进行快速、便捷、准确地测量,并大大提高了可靠性和安全性等性能指标。研制世界上最先进的新一代高智能化的数字多用表具有重要的现实意义,对于提高我国在仪表制造业方面的国际影响力和数字多用表在国际市场上的竞争力将发挥重大作用。现在的测试系统都在朝
7、着小型化、智能化、多功能、模块化、标准化、数字化和开放型方向发展,随着检测技术和电子技术的进步和应用领域的扩大,这种演便将会越来越明显。整体模块趋于标准化,每个模块有独立的测量功能,用户可根据测试需要即插即用,十分灵活。新型的测量仪器在测量方面的作用越来越显著。 RAM 、CPU、FPGA、EPLD、ROM、DSP和 ASIC 是现代仪器的工作核心,它们的集成度越来越高、处理数据的速度也越来越快,甚至出现了系统级的芯片。仪器内部带有处理能力很强的智能软件,已不是简单的硬精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 4 页,共 35 页件实体,而是
8、硬件、软件相结合,软件在测量仪器智能高低方面起着重要的作用。不仅提高了产品的设计水平和产品的制造质量,而且缩短了生产周期。1.2 课题重点解决的问题本课题重点要解决的问题是对各种测量内容和量程的转换,可以利用开关选择所需测量的内容,并使之正确的显示在显示器上。传统的数字多用表在测量时需要手动切换量程 ,不仅不方便 ,而且要求不能超过该量程。如果在测量时忘记切换量程或测量值超出测量范围,则会出现很大的测量误差,甚至有可能将数字多用表烧坏。另外,由于A/D 转换器转换而来的值是整数,所以要把它转换为带小数点的字符串形式,从而使A/D 转换器转换得到的值变成字符串的形式在LED 上显示,能让各量程的
9、值正确的显示。本课题中采用集成多路模拟开关、模数转换和运算放大器设计了数字多用表量程自动切换技术,通过单片机检测和软件编程可实现数字多用表量程的自动转换。它具有结构简单、体积小、动作快、驱动电流小、操作方便等优点。2 数字多用表的方案设计2.1 数字多用表工作原理本课题设计的数字多用表的实现是基于单片机原理。首先,在Proteus软件环境中进行硬件电路图的设计和描绘。然后在Keil 软件环境中进行系统的软件编程,并进行程序源文件的编译和调试,最后生成.hex 文件。此 .hex 文件是硬件电路运行实现的源代码来源。把.hex 文件加载到80C51 单片机芯片,然后在Proteus软件环境中运行
10、硬件电路,数字多用表就可以正常显示了。本课题设计的数字多用表主要由: A/D 转换模块、数据处理模块、显示模块这三大模块组成。其组成原理如图1 所示。首先,被测量模拟量输入到A/D 转换模块,变换为单片机能够识别和处理的数字量,然后,单片机对这个数字量进行处理 , 最后,输出给 LED 显示模块进行显示。图 1 系统的组成原理图(框图)A/D 转换80C51 数据处理模块被测量显示输入信号复位电路精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 5 页,共 35 页2.2 数字多用表的硬件电路设计P2.7RDWR1234WRRDP2.7A BCDEF
11、G HABC DEFGH1234XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3
12、.7/RD17P3.6/WR16P3.5/T115U180C51X1CRYSTALR310kC110uFSW1SW-ROT-3D03Q02D14Q15D27Q26D38Q39D413Q412D514Q515D617Q616D718Q719OE1CLK11U274LS374OUT121ADD B24ADD A25ADD C23VREF(+)12VREF(-)16IN31IN42IN53IN64IN75START6OUT58EOC7OE9CLOCK10OUT220OUT714OUT615OUT817OUT418OUT319IN228IN127IN026ALE22U3ADC0808231U4:A74
13、LS02564U4:B74LS0212U5:A74LS04?8910U4:C74LS02111213U4:D74LS02-5C222pFC322pFAVVVRV1098411U6:CLM324R191kRX50-5vRV待测电阻数字多用表的电阻测量输入电路图121314411U6:DLM324321411U7:ALM324R28100KR292.2MR24100KR321.5MR30100KR26100KR25100KR2030RL0.1R27100KVAVB反相缓冲电路-5V+5V差分放大电路VDAV321411U7:BLM324+5v待测电流321411U6:ALM324567411U1:
14、BLM324R1640kR1540kR1710k+5V10kC50.1ufC60.1ufC70.33ufC80.1ufR1340kR1410kR1240k-15vw待测电压+15V低通滤波器同相放大电路图 2 数字多用表的主电路图数字多用表主电路图如图2 所示, 80C51 单片机通过片选方式扩展了A/D转换器 ADC0808 和 4 位 LED 数码管,单片机的P2.7 引脚作为 ADC0808 的片选信号,因此A/D 转换的端口地址为7FFFH。片选信号和WR信号一起经或非门产生 ADC0808 的启动信号 START 和地址锁存信号ALE。片选信号和RD信号一起经或非门产生输出允许信号O
15、E, OE=1 时选通三态门使输出锁存器中的转换结果送入数据总线。ADC0808 的 EOC 信号经反相后接到80C51 的1INT引脚,用于产生A/D 转换完成中断请求信号1。ADC0808 芯片的 3 位模拟量输入通道地址输入端A、B、C 分别接 80C51的 P0.0、P0.1、P0.2,故只要向端口地址 0C000H分别写入数据 00H07H,即可启动模拟量输入通道07 进行 A/D 转换。ADC0808 参考正电压为 5V,参考负电压为0V,时钟输入为 2MHZ。单片机的P2.0 引脚作为数码管锁存器74LS374 的片选信号,片选信号和WR信号一起经或非门及反相器接到数码管锁存器7
16、4LS374 的 CLK 端,因此显示器的数字端地址为0FEFFH, 而单片机的 P1.4P1.7引脚作为数码管的数位选择,显示时先将数据通过数字端口写入锁存器,再通过数位选择点亮相应数码精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 6 页,共 35 页管。单片机的P1.0P1.2 引脚通过一个转换开关接地,通过判断P1.0P1.2引脚电平的高低,决定是否进行电压、电阻、电流的测量。2.2.1电阻测量电路和电阻测量原理1、电阻测量电路如图 3 所示为数字多用表的电阻测量输入电路。运算放大器的反馈电阻RX作为待测量电阻,通过1000电阻 R19 接
17、到电源 -5V。假定运算放大器理想,那么:195RRXVRV (2-1) 将 RV 送给 ADC0808,转换后得到数字量为:5255RVDV (2-2) 单片机读取 A/D 转换数据,在经过逆向运算可得:RX=25519RDV (2-3) 注意此时得到的RX为二进制数,需要转化为十进制数后才能送给数码管显示。程序采用4 字节无符号除法,连续进行4 次除以 10 的除法,依次取得4 位数值,并且电阻测量范围只保证在01000范围内误差不超过2,如果测量其他范围的电阻,需要修改R19的数值,或者采用其它电路。1098411U6:CLM324R191kRX50-5vRV待测电阻数字多用表的电阻测量
18、输入电路图图 3 数字多用表的电阻测量输入图2、电阻测量原理数字多用表中的电阻档采用的是比例测量法,其原理电路见图4。由稳压管 ZD 提供测量基准电压,流过标准电阻R0和被测电 RX的电流基本相等 (数字表头的输入阻抗很高,其取用的电流可忽略不计)。所以 A/D 转换器的参考电压URFE和输入电压 UIN有如下关系:精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 7 页,共 35 页xINREFRRUU0(2-4) 即0RUURREFINx(2-5) 根据所用 A/D 转换器的特性可知,数字表显示的是 UIN与 URFE的比值,当 UIN=URFE
19、时 显 示 “ 1000 ” , UIN=0.5URFE时 显 示“500”,以此类推。所以,当RX =R0时,表头将显示“1000”,当RX=0.5R0时显示“500”,这称为比例读数特性2。因此,我们只要选取不同的标准电阻并适当地对小数点进行定位,就能得到不同的电阻测量档。如对 200档,取 R01=100,小数点定在十位 上。 当 RX=100 时, 表头 就 会显 示出100.0。当 RX变化时,显示值相应变化,可以从 0.1测到 199.9。又如对 2K档,取 R02=1K,小数点定在千位上。当RX变化时,显示值相应变化,可以从0.001K测到 1.999K。图 5 电阻原理图图 4
20、 电阻测量原理图精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 8 页,共 35 页其余各档道理相同,可自行推演。数字多用表多量程电阻档电路见图5。由上分析可知,10120201303021001000 1009001019RRRRRRRRkkk图 5 中由正温度系数 (PTC)热敏电阻 R1与晶体管 T 组成了过压保护电路,以防误用电阻档去测高电压时损坏集成电路。当误测高电压时,晶体管T 发射极将击穿从而限制了输入电压的升高。同时R1随着电流的增加而发热,其阻值迅速增大,从而限制了电流的增加,使T 的击穿电流不超过允许范围。即T 只是处于软击穿状
21、态,不会损坏,一旦解除误操作,R1和 T 都能恢复正常。2.2.2电压测量电路和电压测量原理1、电压测量电路如图 6 所示为数字多用表的电压测量输入电路。待测电压经过低通滤波器滤除高频干扰,在通过同相放大器送给ADC0808,电压测量范围为05V,ADC0808 的分辨率为 8 位,测量误差为02. 02555V。321411U6:ALM324567411U1:BLM324R1640kR1540kR1710k+5V10kC50.1ufC60.1ufC70.33ufC80.1ufR1340kR1410kR1240k-15vw待测电压+15V低通滤波器同相放大电路图 6 数字多用表的电压测量输入电
22、路图2、多量程数字电压表原理在基准数字电压表头前面加一级分压电路(分压器 ),可以扩展直流电压测量的量程。如图7 所示, U0为电压表头的量程 (如 200MV) ,r 为其内阻 (如 10M),r1、r2为分压电阻, U01为扩展后的量程。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 9 页,共 35 页图 7 分压电路原理图图8 多量程分压器原理图由于 rr2,所以分压比为21200rrrUUi扩展后的量程为02210UrrrUi多量程分压器原理电路见图8,5 档量程的分压比分别为1、0.1、0.01、0.001 和 0.0001,对应的量程
23、分别为2000V、200V、20V、2V 和 200MV。采用图 8 的分压电路虽然可以扩展电压表的量程,但在小量程档明显降低了电压表的输入阻抗,这在实际使用中是所不希望的。所以,实际数字多用表的直流电压档电路为图9 所示,它能在不降低输入阻抗的情况下,达到同样的分压效果3。例如:其中 200V 档的分压比为001. 010105432154MkRRRRRRR (2-6) 其余各档的分压比可同样算出。实际设计时是根据各档的分压比和总电阻来确定各分压电阻的。如先确定R=R1+R2+ R3+R4+R5, 再计算 2000V 档的电阻 R5=0.0001R =1K 再逐档计算 R4、R3、R2、R1
24、。尽管上述最高量程档的理论量程是 2000V,但通常的数字多用表出于耐压和安全考虑,规定最高电压量限为1000V。换量程时,多量程转换开关可以根据档位自动调整小数点的显示,使用者可方便地直接读出测量图 9 使用分压电路图精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 10 页,共 35 页结果。2.2.3电流测量电路和电流测量原理1、电流测量电路如图 10 所示为数字多用表的电流测量输入电路。电流测量范围为1mA100mA,因为ADC0808 是电压转换器件,必须将电流转换为电压才能进行测量,这可以通过串接电阻RL 来实现,注意 RL 必须很小,否
25、则影响电流数值。由于测量电流和RL 都很小,两端的电压也很小,必须将其放大到ADC0808 能够分辨的范围之内。121314411U6:DLM324321411U7:ALM324R28100KR292.2MR24100KR321.5MR30100KR26100KR25100KR2030RL0.1R27100K待测电阻VAVB反相缓冲电路-5V+5V差分放大电路VDAV321411U7:BLM324图 10 数字多用表的电流测量输入电路图2、多量程数字多用表电流测量原理根据欧姆定律,用合适的取样电阻把待测电流转换为相应的电压,再进行测量。如图 11,取样电阻 R上的电压降为: Ui=IiR 图
26、11 电流测量原理图 12 多量程分流器电路精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 11 页,共 35 页若数字表头的电压量程为U0,欲使电流档量程为I0,则该档的取样电阻 (也称分流电阻 )为: R = U0/I0 , 如 U0 =200v,则 I0 =200mA 档的分流电阻为R=1K。多量程分流器原理电路见图12。图 12 中的分流器在实际使用中有一个缺点,就是当换档开关接触不良时,被测电路的电压可能使数字表头过载,所以,实际数字多用表的直流电流档电路为图13所示。图 13 中各档分流电阻的阻值是这样计算的:先计算最大电流档的分流电阻
27、R5)( 1. 022. 050msIUR (2-7) 再计算下一档的R4)(9 .01 .02.02.05404RIURm(2-8) 依次可计算出R5、R2和 R1。图中的BX 是 2A 保险丝管,电流过大时会快速熔断,超过流保护作用。两只反向连接且与分流电阻并联的二极管D1、D2为塑封硅整流二极管,它们起双向限幅过压保护作用。正常测量时,输入电压小于硅二极管的正向导通压降,二极管截止,对测量毫无影响。一旦输入电压大于0.7V,二极管立即导通,两端电压被限制住(小于 0.7V),保护仪表不被损坏2。2.2.4 LED 显示LED 静态显示(也称直流驱动),是指显示器显示某一字符时,相应段的发
28、光二极管恒定地导通或截止,每一个段码都有一个单片机的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 的地址分别为: 1FFFH、3FFFH、5FFFH,其译码信号与单片机的写信号一起控制对某一片74LS373的数据写入,采用MOVX 指令写入
29、数据。静图 13 实用分流器精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 12 页,共 35 页态显示时,较小的驱动电流就可以得到较高的显示亮度,所以可由接口芯片直接驱动。LED 动态显示是将所有数码管的8 个显示的同名端连在一起,另外为每个数码管的公共极COM 增加位元选通控制电路,位元选通由各独立的I/O 线控制,当单片机输出字型码时,所有数码管接到相同的字码符时,会显示哪一个取决于对位元选通COM 段电路的控制输入,所以我们只要把所有显示的数码管的选通控制打开,就会显示出所需字形,没有选通的数码管就不会点亮,在动态显示过程中,每个数码管点亮
30、时间只有几毫秒,由于人的视觉及数码管的余辉作用,虽然数码管并不是同时点亮,但只要扫描速度快,给人的视觉效果就是一组稳定的显示资料。由于 LED 动态显示的亮度高,软件编程容易,所以本设计采用动态显示。2.2.5 芯片的选择1、主芯片的选择本设计采用 80C51 单片机作为数据处理模块的核心芯片。对A/D 转换后得到的数字信号进行处理工作。80C51 单片机是一种闪烁可编程可擦除只读存储器( FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS,8 位微处理器。 AT80C51 单片机的可擦除只读存储器可以反复擦除
31、100 次。该器件采用ATMEL 高密度非易失存储器制造技术制造,与工业标准的 MCS-51 指令集和输出管脚相兼容3。由于将多功能8 位 CPU 和闪烁存储器组合在单个芯片中,ATMEL的 AT80C51 是一种高效微控制器,80C51 是它的一种精简版本。80C51 单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。80C51芯片的引脚如图 14所示。引脚功能介绍如下:精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 13 页,共 35 页XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD
32、138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115U280C51图 14 80C51引脚图ALE:地址锁存控制信号, ALE 用于控
33、制把 P0口输出的低 8 位地址送入锁存器锁存起来,以实现低位地址和数据的分时传送。PSEN:外部程序存储器读选通信号,在读外部ROM 时PSEN有效(低电平),以实现外部ROM 单元的读操作。EA:访问程序存储器控制信号。当EA信号为低电平时,对ROM 的读操作是针对外部程序存储器的;而当EA信号为高电平时,对ROM 的读操作时从内部程序存储器开始,并可延迟至外部程序存储器4。RST:复位信号。当输入的复位信号延续2 个机器周期以上高电平时即为有效,用于完成单片机的复位工作。XTAL1和 XTAL2 :外接晶体引线端。当使用芯片内部时钟时, XTAL1 和XTAL2 用于外接石英晶体谐振器和
34、微调电容;当使用外部时钟时,用于接入外部时钟脉冲信号5。2、模数 (A/D) 转换芯片的选择常见的物理量都是幅值(大小)连续变化的所谓模拟量 (模拟信号 )。指针式仪表可以直接对模拟电压、电流进行显示。而对数字式仪表,需要把模拟电信号(通常是电压信号 )转换成数字信号,再进行显示和处理(如存储、传输、打印、运算等 )。数字信号与模拟信号不同,其幅值(大小)是不连续的。这种情况被称为是量化的。若最小量化单位(量化台阶 )为,则数字信号的大小一定是的整数精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 14 页,共 35 页倍,该整数可以用二进制数码表示
35、。但为了能直观地读出信号大小的数值,需经过数码变换 (译码)后由数码管或液晶屏显示出来。本设计采用的A/D 转换器为 8位的 ADC0808 转换器。 ADC0808 是 8 位逐次逼近式,可实现8 路模拟信号的分时采用,片内有8 路模拟选通开关,以及相应的选通地址锁存与译码电路。地址锁存与译码电路完成对A、B、C3 个地址位进行所存和译码,其译码输出用于通道选择。8 位 A/D 转换器是逐渐逼近式,有控制与时序电路、逐次逼近寄存器、树状开关以及256R 电阻阶梯网络等组成。输出锁存器用于存放和输出转换得到的数字量6。其主要性能如下:(1)分辨率为 8位(2)精度小于 1/2LSB (3)单一
36、 +5V 供电,模拟输入电压范围为05V (4)具有锁存控制的8路输入模拟开关(5)可锁存三态输出,输出与TTL 电平兼容(6)功耗为 15MW (7)不必进行零点和满度调整(8)转换速度取决于芯片外接的时钟频率7 (9)时钟频率范围 101280kHZ,典型值为 640kHZ,约为 100 s ADC0808 芯片的引脚如图 15 所示。引脚功能介绍如下:OUT121ADD B24ADD A25ADD C23VREF(+)12VREF(-)16IN31IN42IN53IN64IN75START6OUT58EOC7OE9CLOCK10OUT220OUT714OUT615OUT817OUT418
37、OUT319IN228IN127IN026ALE22U1ADC0808图 15 ADC0808引脚图IN7IN0:模拟量输入通道。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 15 页,共 35 页A、B、C:地址线,模拟通道的选择信号,A 为低位地址, C 为高位地址。ALE:地址锁存允许信号。对应ALE 上跳沿, A、B、C 地址状态送入地址锁存器中。START:转换启动信号。 START 上跳沿时,所有内部寄存器清0;START下跳沿时,开始进行A/D 转换;在 A/D 转换期间, START应保持低电平。D7D0:数据输出线。 D0 为最
38、低位, D7 为最高位。OE:输出允许信号, OE=0,输出数据线呈高电阻;OE=1,输出转换得到的数据。REF(+)、REF(-):分别为基准电源的正、负端。EOC:转换结束信号。 EOC=0,正在进行转换, EOC=1,转换结束。3 数字多用表的软件设计3.1 主程序流程图图 16 主程序流程图测量选择初始化程序开始显示子程序启动 A/D 转换器测量电压启动 A/D 转换器测电阻显示子程序启动 A/D 转换器测电流结束显示子程序P1.2=0P1.0=0P1.1=0精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 16 页,共 35 页3.2 物理
39、采样及处理流程开始被测物理量选择电压电流电阻档位选择信号转换A/D芯片采集转换处理采集信号显示测量数据结果返回图 17物理采样及处理流程图4 结果分析在硬件电路设计和软件编程完成之后,就可以进行系统仿真。在硬件电路的仿真环境 Proteus中,将经过编辑、编译、汇编、连接几步生成的.hex 文件加载到单片机 80C51 中;然后,将待测量通过A/D 转换口与本系统相连;最后,按一下运行按钮便可以从LED 上读取测量结果了。4.1 Keil C51 软件环境简介单片机开发中除必要的硬件外,同样离不开软件,本系统的软件编程设计是在 Keil 软件环境中完成的。我们写的C 语言、汇编语言源程序要变为
40、CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了8。机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51 单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展, Keil 软件是目前最流行开发51 系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil 即可看出。 Keil 提供了包括 C 编译器、宏汇精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 17 页,共 35 页编、连接器、库管理和一个功能强大的
41、仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。掌握这一软件的使用对于使用 51系列单片机的爱好者来说是十分必要的,如果使用C 语言编程,那么 Keil 几乎就是不二之选。即使不使用C 语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令人事半功倍9。Keil C51 是美国 Keil Software 公司出品的 51 系列兼容单片机 C 语言软件开发系统,与汇编相比,C 语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C 来开发,体会更加深刻。 Keil C51 软 件提 供丰 富的
42、库函 数和 功能强 大 的集 成 开发 调试工 具 , 全Windows 界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到 Keil C51 生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势10。4.2Proteus软件环境简介本系统的硬件设计首先是在Proteus 软件环境中仿真实现的。Proteus 软件是来自英国Labcenter electronics 公司的 EDA 工具软件, Proteus软件有十多年的历史,在全球广泛使用,除了具有和其它EDA 工具一样的原理布图、 PCB自动或人工布线及电路仿真的功能外,
43、其革命性的功能是,它的电路仿真是互动的。针对微处理器的应用,还可以直接在基于原理图的虚拟原型上编程,并实现软件源码级的实时调试。如果有显示及输出,配合系统配置的虚拟仪器如示波器、逻辑分析仪等,还能看到运行后输入输出的效果。Proteus 建立了完备的电子设计开发环境,尤其重要的是Proteus Lite 可以完全免费,也可以花微不足道的费用注册达到更好的效果11。Proteus7.1是目前最好的模拟单片机外围器件的工具。可以仿真51 系列、AVR、PIC 等常用的MCU 及其外围电路(如LCD,RAM ,ROM,键盘,马达, LED,A/D,部分 SPI 器件,部分 IIC 器件, .)。其实
44、 Proteus与 multisim比较类似,只不过它可以仿真MCU!。当然,软件仿真精度有限,而且不可能所有的器件都找得到相应的仿真模型,用开发板和仿真器当然是最好选择,可是初学者拥有它们的可能性比较小12。使用 51系列单片机,不管是用汇编语言还是用 C语言编程都要用到keil 软件。使用 keilc51v7.50 + proteus7.1 可以像使用仿真器一样调试程序,一般而言,微机实验中用万能仿真器+电工系自己做的实验板的实验都可以做得到。当然,硬件实践还是必不可少的。在没有硬件的情况下, Proteus能像 pspice 仿真模拟 /数字电路那样仿真MCU 及外围电路。另精选学习资料
45、 - - - - - - - - - 名师归纳总结 - - - - - - -第 18 页,共 35 页外,即使有硬件,在程序编写早期用软件仿真一下也是很有必要的。Proteus软件主要具有以下几个方面的特点:(1)设计和仿真软件Proteus 是一个很有用的工具,它可以帮助学生和专业人士提高他们的模拟和数字电路的设计能力。(2)它允许对电路设计采用图形环境,在这种环境中,可以使用一个特定符号来代替元器件,并完成不会对真实电路造成任何损害的电路仿真操作14。(3)它可以仿真仪表以及可描述在仿真过程中所获得的信号的图表。(4)它可以仿真目前流行的单片机,如PICS, ATMEL-AVR, MOT
46、OROLA, 8051 等。(5)在设计综合性方案中 ,还可以利用 ARES 开发印制电路板13。4.3 结果分析以测量电流为例进行结果分析,如图18 所示是对一个 11mA 的电流进行测量的仿真电路。从图中可以看出LED 显示的结果与实际值一致, 符合电子测量系统对电路测量的要求。AB C D EFGH1234121314411U6:DLM324R321.5MAV图 18 电流测量仿真电路图5 结束语通过这次长达数月的毕业课题的设计,使我真正的、全面的有机会对大学期间所学的专业课和专业知识进行了系统的分析和总结,从课题的分析设计到精选学习资料 - - - - - - - - - 名师归纳总结
47、 - - - - - - -第 19 页,共 35 页最后的硬件电路设计和软件编程设计的实现,都是在老师的指导下,逐步完成的。本课题设计了一个数字多用表,这种数字多用表以单片80C51 作为数据处理主控芯片,并以模数转换芯片ADC0808、锁存器 74LS374、液晶显示模块作为外围电路,构成了整个的硬件电路15。待测的模拟量首先经过A/D 转换模块,转换成为单片机能够识别和处理的数字信号;然后,单片机对此数字信号进行数据处理;最后,测量结果通过显示模块显示出来。可以用来测量电压、电流、电阻,而且还可以进行功能的扩展。由于能力和时间有限,系统还有一些地方不尽如人意。比如,本系统能直接测量的电压
48、范围比较小,要想测量大电压必须先进行分压处理。因为A/D 转换器 ADC0808 有 8 个输入端口,所以,理论上讲本系统能够分时地对8 路信号进行测量;如果接上湿度传感器本系统还能象测量温度那样来测量湿度,而这些工作还有待今后一一地去解决。参考文献精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 20 页,共 35 页1 闫茹. 中药滴丸包装车间悬挂式药料输送小车控制系统开发D . 陕西: 陕西科技大学 2009.2 白雨微 . 六位半数字多功能万用表设计J林业机械与木工设备. 2010:21-27.3 刘文武 . 机械水表远传系统的开发与应用.
49、J中国仪器仪表 . 2009: 35-41.4 张秋菊 . 机载干扰控制系统的设计与实现D . 大连理工大学 2007.5 张锋 . 高精度数字同步系统的研究D. 中国科学院西安光学精密机械研究所2007.附录 源程序:org 0000h 。单片机复位地址ajmp main 。转移到主程序处精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 21 页,共 35 页org 0100h 。main被定位在 0x0100处main: mov sp,#80h 。初始化堆栈指针jnb P1.0,cr jnb P1.1,cv jnb P1.2,ca cr: mov
50、 R7,#00h lcall adc LCALL RDAT lcall DISPLAY sjmp main CV: MOV R7,#01H LCALL ADC LCALL VDAT LCALL DISPLAY SJMP MAIN CA: MOV R7,#02H LCALL ADC LCALL ADAT LCALL DISPLAY SJMP MAIN ADC: MOV A,R7 。0808 A/D转换子程序MOV DPTR,#7FFFH MOVX DPTR,A JB P3.3,$ MOVX A,DPTR 。输入转换结果RET vdat: mov R2,#00h mov R3,A mov R6,#
51、01h 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 22 页,共 35 页mov R7,#0F4h call MULD2 。乘以 500 clr C mov A,r5 add A,#60h 。加96修正mov r5,A mov A,r4 addc A,#00h mov r4,A mov A,r3 addc A,#00h mov r3,A mov A,r2 addc A,#00h mov r2,A mov r0,#30h mov r1,#34h mov A,R2 mov r1,A inc r1 mov A,R3 mov r1,A inc r1 m
52、ov A,R4 mov r1,A inc r1 mov A,R5 mov r1,A inc r1 mov r1,#00h inc r1 mov r1,#00h inc r1 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 23 页,共 35 页mov r1,#00h inc r1 mov r1,#0FFh call DIVD4 。除以 255 mov r1,#38h mov r1,#00h inc r1 mov r1,#00h inc r1 mov r1,#00h inc r1 mov r1,#0Ah call DIVD4 mov 43h,33h
53、call DIVD4 mov 42h,33h call DIVD4 mov 41h,33h mov r0,#40h mov r0,#00h inc r0 mov A,41h mov DPTR,#SEGMENT7 movc A,A+DPTR orl A,#80h mov r0,A inc r0 mov A,42h mov DPTR,#SEGMENT7 movc A,A+DPTR mov r0,A inc r0 mov A,43h 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 24 页,共 35 页mov DPTR,#SEGMENT7 movc A,
54、A+DPTR mov r0,A ret ADAT: mov B,A mov A,#0B6h clr C 。以下根据范围设置数值以防溢出subb A,B jc LARGERA mov A,B subb A,#16h jc LESSA ajmp MIDDLEA LARGERA: mov A,#0B6h ajmp CALCULATEA LESSA: mov A,#16h ajmp CALCULATEA MIDDLEA: mov A,B CALCULATEA: mov r2,#0C3h mov r3,#50h mov r6,#00h mov r7,A call MULD2 。乘以 50000 clr
55、C mov A,r5 subb A,#70h 。以下减去 102000 mov r5,A mov 37h,A mov A,r4 subb A,#8Eh 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 25 页,共 35 页mov 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 r1,#01h inc r1 mov r
56、1,#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,#0Ah mov DPTR,#SEGMENT7 call DIVD4 mov A,33h movc A,A+DPTR mov 43h,A 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 26 页,共 35 页call DIVD4 mov A,33h movc A,A+DPTR mov 42h,A call
57、 DIVD4 mov A,33h movc A,A+DPTR cjne A,#3Fh,NOTEQU mov A,#00h NOTEQU: mov 41h,A mov 40h,#00h RET rdat: mov R2,#00h mov R3,A mov R6,#03h mov R7,#0E8h call MULD2 。乘以 1000 mov r0,#30h mov r1,#34h mov A,R2 mov r1,A inc r1 mov A,R3 mov r1,A inc r1 mov A,R4 mov r1,A inc r1 mov A,R5 mov r1,A inc r1 精选学习资料 -
58、 - - - - - - - - 名师归纳总结 - - - - - - -第 27 页,共 35 页mov r1,#00h inc r1 mov r1,#00h inc r1 mov r1,#00h inc r1 mov r1,#0FFh call DIVD4 。除以 255 mov r1,#38h mov r1,#00h inc r1 mov r1,#00h inc r1 mov r1,#00h inc r1 mov r1,#0Ah mov DPTR,#SEGMENT7 call DIVD4 。连续进行 4次除以 10的操作mov A,33h 。取得 10进制值movc A,A+DPTR m
59、ov 43h,A call DIVD4 mov A,33h movc A,A+DPTR mov 42h,A call DIVD4 mov A,33h movc A,A+DPTR mov 41h,A call DIVD4 mov A,33h movc A,A+DPTR cjne A,#3Fh,NONZERO 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 28 页,共 35 页mov A,#00h NONZERO: mov 40h,A ret DELAY_5ms: mov R5,#01h 。设置 R5 初始计数值DELAY_5ms1: mov R6,
60、#16h 。设置 R6 初始计数值DELAY_5ms2: mov R7,#70h 。设置 R7 初始计数值DELAY_5ms3: djnz R7,DELAY_5ms3 。延时时间为Time=( ( (R7*2)+2+1 )*R6+2+1 )*R5+1 djnz R6,DELAY_5ms2 。djnz R5,DELAY_5ms1 。ret SEGMENT7: DB 3Fh 。7段数码管字符 0的abcdefg 的值 ,a 在最低位 , 最高位始终保留为 0 DB 06h DB 5Bh DB 4Fh DB 66h DB 6Dh DB 7Dh DB 07h DB 7Fh DB 6Fh DISPLAY
61、: mov DPTR,#0fEffh 。写第一位数码管mov r1,#40h mov A,r1 movx DPTR,A setb C mov P1.4,C clr C 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 29 页,共 35 页mov P1.4,C call DELAY_5ms setb C mov P1.4,C inc r1 mov A,r1 。写第二位数码管movx DPTR,A setb C mov P1.5,C clr C mov P1.5,C call DELAY_5ms setb C mov P1.5,C inc r1 mov
62、 A,r1 。写第三位数码管movx DPTR,A setb C mov P1.6,C clr C mov P1.6,C call DELAY_5ms setb C mov P1.6,C inc r1 mov A,r1 。写第四位数码管movx DPTR,A setb C mov P1.7,C clr C mov P1.7,C call DELAY_5ms setb C 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 30 页,共 35 页mov P1.7,C ret 。双字节二进制无符号数乘法。被乘数在 R2(高位) 、R3(低位) 中,乘数在
63、R6(高位)、R7(低位) 中。乘积在 R2(高位) 、R3 、R4 、R5(低位) 中。用到累加器 A,B,PSW,R2R7 。永远不会产生进位。在出口时总是清除 C。若结果超出 2个字节范围则 OV=1 。MULD2: MOV A,R3 MOV B,R7 MUL AB MOV R4,B MOV R5,A MOV A,R3 MOV B,R6 MUL AB ADD A,R4 MOV R4,A CLR A ADDC A,B MOV R3,A MOV A,R2 MOV B,R7 MUL AB ADD A,R4 MOV R4,A MOV A,R3 ADDC A,B MOV R3,A 精选学习资料 -
64、 - - - - - - - - 名师归纳总结 - - - - - - -第 31 页,共 35 页CLR A RLC A XCH A,R2 MOV B,R6 MUL AB ADD A,R3 MOV R3,A MOV A,R2 ADDC A,B MOV R2,A ORL A,R3 JZ MULD21 SETB OV RET MULD21: CLR OV RET 。四字节无符号数除法。R0 存放被除数 , 除数, 商数的地址。从R0开始的连续四个字节为结果的余数, 入口时可以为任意,但在出口时发生变化。其后的连续 4个字节在入口时是被除数 , 出口时是商数。再其后的连续四个字节在入口时是除数,
65、出口时保持不变。用到累加器 A,B,PSW,R0R7 。如果除数为零,则置 OV=1 标志,否则清零。在出口时总是清除 C。DIVD4: MOV A,R0 MOV B,A ADD A,#08h 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 32 页,共 35 页MOV R1,A MOV A,#00h ORL A,R1 INC R1 ORL A,R1 INC R1 ORL A,R1 INC R1 ORL A,R1 JZ DIVD45 MOV R1,B MOV R2,#04h DIVD41: MOV R1,#00h INC R1 DJNZ R2,DI
66、VD41 MOV R3,#20h DIVD42: MOV R2,#08h MOV A,B MOV R0,A ADD A,#07h MOV R1,A CLR C DIVD43: MOV A,R1 RLC A MOV R1,A DEC R1 DJNZ R2,DIVD43 MOV A,R0 ADD A,#03h MOV R1,A 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 33 页,共 35 页MOV A,R0 ADD A,#0Bh MOV R0,A MOV A,R1 SUBB A,R0 MOV R4,A DEC R1 DEC R0 MOV A,R1
67、 SUBB A,R0 MOV R5,A DEC R1 DEC R0 MOV A,R1 SUBB A,R0 MOV R6,A DEC R1 DEC R0 MOV A,R1 SUBB A,R0 MOV R7,A JC DIVD44 MOV A,B MOV R0,A ADD A,#03h MOV R1,A MOV A,R4 MOV R1,A DEC R1 MOV A,R5 MOV R1,A DEC R1 MOV A,R6 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 34 页,共 35 页MOV R1,A DEC R1 MOV A,R7 MOV R1,A MOV A,R0 ADD A,#07h MOV R1,A INC R1 DIVD44: DJNZ R3,DIVD42 MOV R0,B CLR OV CLR C RET DIVD45: SETB OV CLR C RET end 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 35 页,共 35 页