2022年机电一体化大学本科方案设计书基于单片机的数字电压表的方案设计书 .pdf
编号淮安信息职业技术学院毕 业 论 文题目基于单片机的数字电压表的设计学生姓名学号系部电气工程系专业机电一体化班级指导教师顾问教师二一二 年十月精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 28 页摘要本文介绍了一种基于单片机的简易数字电压表的设计。该设计主要由三个模块组成: A/D 转换模块,数据处理模块及显示模块。A/D 转换主要由芯片 ADC0809来完成,它负责把采集到的模拟量转换为相应的数字量在传送到数据处理模块。数据处理则由芯片AT89C51来完成,其负责把ADC0809传送来的数字量经过一定的数据处理,产生相应的显示码送到显示模块进行显示;此外 , 它还控制着 ADC0809 芯片工作。该系统的数字电压表电路简单,所用的元件较少,成本低,且测量精度和可靠性较高。此数字电压表可以测量0-5V 的 1 路模拟直流输入电压值,并通过一个四位一体的7 段数码管显示出来。关键词:【单片机】【数字电压表】【A/D 转换】【 AT89C51 】 【ADC0809 】精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 28 页目录第一章绪论 3第二章设计背景 42.1单片机 42.1.1单片机的简介 42.1.2单片机的应用领域52.2数字电压表 42.2.1数字电压表的特点4第三章设计目的与功能要求53.1设计目的 53.2功能要求 5第四章总体设计 64.1系统设计 64.2设计方案 64.3总体设计框图 7第五章设计原理图75.1设计原理图 8第六章硬件电路设计96.1 信号调理模块 96.1.1电压极性检测电路96.1.2电压范围粗测电路96.1.3量程切换电路 96.2单片机模块 106.2.1芯片的介绍和选择106.3 A/D 转换模块 136.3.1芯片的介绍和选择136.3.2原理图 156.4显示模块 156.4.1 LED 数码管 156.4.2 LED 数码管与单片机接口设计17第七章总体电路设计197.1总体电路设计 19第八章软件设计 208.1汇编流程图 208.2汇编程序 218.3程序说明 23第九章总结 24参考文献 25精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 28 页第一章 绪论电子电压表主要用于测量各种高、低频信号电压,它是电子测量中使用最广泛的仪器之一。根据测量结果的显示方式及测量原理不同,电压测量仪器可分为两大类:模拟式电压表(AVM )和数字式电压表(DVM )。模拟式电压表是指针式的,多用磁电式电流表作为指示器,并在表盘上刻以电压刻度。数字式电压表首先将模拟量经模数(A/D )转换器变成数字量,然后用电子计数器计数,并以十进制数字显示被测电压值。众所周知,模拟电压表精度较高,曾经有很广阔的市场,现在依然有不少工程师依然在使用模拟电压表。的确模拟电压表在显示测量值方面精度校准,然而却也存在问题。模拟电压表采用用指针式,里面是磁电或电磁式结构,所以其响应速度较慢。然而在高速发展的当今社会,高速信号处理的需求越来越多,由于模拟电压表响应速度较慢已经不适用与高速信号领域,取而代之的将是数字电压表。但数字电压表由于存在采样误差,精度不是很高。不过目前可以通过技术手段来缩小误差。使其精度达到与模拟电压表一样精确甚至更高。可见将来数字电压表必将取代模拟电压表。现在有越来越多的数字测量仪器的出现但原理皆与数字电压表殊途同归,因此研究数字电压表有着很大现实意义。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 4 页,共 28 页第二章 设计背景2.1 单片机2.1.1 单片机的简介单片微型计算机简称单片机,是典型的嵌入式微控制器( Microcontroller Unit),常用英文字母的缩写 MCU 表示单片机,单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O 设备。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。它最早是被用在工业控制领域。由于单片机在工业控制领域的广泛应用,单片机由芯片内仅有CPU 的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU 集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。INTEL 的 Z80 是最早按照这种思想设计出的处理器,当时的单片机都是8 位或 4 位的。其中最成功的是INTEL 的 8031,此后在 8031 上发展出了MCS51 系列单片机系统。因为简单可靠而性能不错获得了很大的好评。尽管 2000 年以后 ARM 已经发展出了32 位的主频超过 300M 的高端单片机,直到目前基于8031 的单片机还在广泛的使用。在很多方面单片机比专用处理器更适合应用于嵌入式系统,因此它得到了广泛的应用。事实上单片机是世界上数量最多处理器,随着单片机家族的发展壮大,单片机和专用处理器的发展便分道扬镳。现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有 1-2 部单片机。汽车上一般配备40 多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!单片机的数量不仅远超过PC机和其他计算的总和,甚至比人类的数量还要多。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 5 页,共 28 页2.1.2 单片机的应用领域目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC 卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械以及各种智能机械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:智能仪器单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、电流、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。例如精密的测量设备(电压表、功率计,示波器,各种分析仪)。工业控制单片机具有体积小、控制功能强、功耗低、环境适应能力强、扩展灵活和使用方便等优点,用单片机可以构成形式多样的控制系统、数据采集系统、通信系统、信号检测系统、无线感知系统、测控系统、机器人等应用控制系统。例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。家用电器现在的家用电器广泛采用了单片机控制,从电饭煲、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备和白色家电等。网络和通信现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。医用设备领域单片机在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 6 页,共 28 页仪,监护仪,超声诊断设备及病床呼叫系统等等。模块化系统某些专用单片机设计用于实现特定功能,从而在各种电路中进行模块化应用,而不要求使用人员了解其内部结构。如音乐集成单片机,看似简单的功能,微缩在纯电子芯片中(有别于磁带机的原理),就需要复杂的类似于计算 机 的 原 理 。 如 : 音 乐 信 号 以 数 字的 形 式 存 于 存 储 器 中 ( 类 似 于ROM),由微控制器读出,转化为模拟音乐电信号(类似于声卡)。在大型电路中,这种模块化应用极大地缩小了体积,简化了电路,降低了损坏、错误率,也方便于更换。汽车电子单片机在汽车电子中的应用非常广泛,例如汽车中的发动机控制器,基于 CAN 总线的汽车发动机智能电子控制器、GPS 导航系统、 abs 防抱死系统、制动系统、胎压检测等。此外,单片机在工商、金融、科研、教育、电力、通信、物流和国防航空航天等领域都有着十分广泛的用途。2.2 数字电压表2.2.1 数字电压表的特点数字电压表 (DVM )是将被测的电压模拟量自动转换成开关量,然后进行数字编码、译码,以数字形式显示出来的一种电测仪表,它具有如下主要特点: (1)准确度高 :目前可达到 10-6 数量级,因此用它代替直读仪表,可大大提高测量精度。(2)灵敏度高 :一般可做到 10 微伏至 1 微伏,目前已有10-9 伏数量级的仪表。(3)输入阻抗高 :一般可达1000 兆欧以上,而且工作时零电流很小,一般可达 10-10安。(4)测量速度快 :采样速度一般每秒种为几十次到上万次,甚至可达百万次。(5)读数准确 :因是数字显示,所以读数准确,可以消除人为的读数误差。(6)使用方便用途广 :开机预热预调后即可使用,可配接打印机自动记数.还可配接相应的转换器,用来测量交流电压、直流电流、电阻和温度等参量。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 7 页,共 28 页第三章 设计目的与功能要求3.1 设计目的通过制作简易的数字电压表,加深对所学专业知识的认识,提高分析,解决工程实际问题的能力,提高对单片机的应用能力,提高收集文献,资料的能力,从而达到综合运用所学的专业知识进行电子产品设计,制作与调试的能力。3.2 功能要求以 MCS-51 系列单片机为核心器件,组成一个简单的直流数字电压表。采用 1 路模拟量输入,能够测量0-5V 之间的直流电压值。电压显示用 4 位一体的 LED 数码管显示,至少能够显示两位小数。尽量使用较少的元器件。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 8 页,共 28 页第四章 总体设计4.1 系统设计主要分为两部分:硬件电路及软件程序。硬件电路包括:单片机及外围电路,模拟信号采集电路,A/D 转换电路,数码管显示电路,各部分电路的衔接。软件的程序可采用C 语言或汇编,这里采用汇编语言,详细的设计思路在后面介绍。4.2 设计方案数字电压表的设计方案很多,但采用集成电路来设计较流行。其设计主要是由模拟电路和数字电路两大部分组成,模拟部分包括A/D 转换器,基准电源等。数字部分包括振荡器,数码显示,计数器等。其中,A/D 转换器将输入的模拟量转换成数字量,它是数字电压表的一个核心部件,对它的选择一般有两种选择方案:1.采用双积分A/D 转换器 MC14433,它有多路调制的BCD 码输出端和超量程输出端,采用动态扫描显示,便于实现自动控制。但芯片只能完成A/D 转换功能,要实现显示功能还需配合其它驱动芯片等,使得整部分硬件电路板布线复杂,加重了电路设计和实际焊接的工作。2.逐次逼近式A/D 转换器。它的转换速度更快,而且精度更高,比如ADC0808、ADC0809 等,它们通常具有8 路模拟选通开关及地址译码、锁存电路等,它们可以与单片机系统连接,将数字量送单片机进行分析和显示。这样电路设计简单,电路板布线不复杂,便于焊接、调试。这里采用这种方案。显示部分可以采用各类数码管或用LCD 显示器显示。在此简化采用4位八段共阴极数码管对A/D 转换变换后的结果加以显示。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 9 页,共 28 页4.3 总体设计框图图 4-31 总体设计框图精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 10 页,共 28 页第五章 设计原理图5.1 设计原理图图 5-11 设计原理图精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 11 页,共 28 页第六章 硬件电路设计6.1 信号调理模块该部分主要实现的功能是自动量程切换和电压变换,模块主要由电压极性 检 测 电 路 、 电 压 范 围 粗 测 电 路 、 电 压 变 换 电 路 三 部 分 组 成 。6.1.1电压极性检测电路 电压极性检测电路采用过零比较器检测负电压的方式实现的,运算放大器LM324 的反向端接地,同向端通过100K 电阻接输入信号。图 6-11 6.1.2电压范围粗测电路 为了粗略地得到被测量的电压范围我们采用多组比较器的方式,通过阶梯式比较的方法确定输入电压的范围。图 6-12 6.1.3量程切换电路电路由衰减电阻、切换继电器和运算放大器组成,精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 12 页,共 28 页对应的是衰减1/2、1/3、1/4 和无零漂放大50 倍,切换电路如图所示。电压变换到0-5V 标准信号后,再由A/D 转换进行采样,最后由单片机算法还原。6.2 单片机模块6.2.1 芯片的介绍和选择单片机 AT89C51 介绍AT89C51 是 一 种 带4K 字 节FLASH存 储 器 ( FPEROM Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051 是一种带2K 字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000 次。该器件采用ATMEL 高密度非易失存储器制造技术制造,与工业标准的MCS-51 指令集和输出管脚相兼容。由于将多功能8 位 CPU 和闪烁存储器组合在单个芯片中, ATMEL 的 AT89C51 是一种高效微控制器, AT89C2051 是它的一种精简版本。 AT89C51 单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如图6-21所示图 6-21 芯片引脚图(1)主要特性 与 MCS-51 兼容 4K 字节可编程闪烁存储器 寿命: 1000写/擦循环 数据保留时间: 10年 全静态工作: 0Hz-24MHz 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 13 页,共 28 页 三级程序存储器锁定 128 8位内部 RAM 32可编程 I/O 线 两个 16位定时器计数器 5个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路(2)引脚描述VCC :电源电压GND:地P0 口:P0 口是一组8 位漏极开路双向I/O 口,即地址 /数据总线复用口。作为输出口时,每一个管脚都能够驱动8 个 TTL 电路。当 “1”被写入 P0口时,每个管脚都能够作为高阻抗输入端。P0 口还能够在访问外部数据存储器或程序存储器时,转换地址和数据总线复用,并在这时激活内部的上拉电阻。P0 口在闪烁编程时, P0 口接收指令,在程序校验时,输出指令,需要接电阻。P1 口:P1 口一个带内部上拉电阻的8 位双向 I/O 口,P1 的输出缓冲级可驱动 4 个 TTL 电路。对端口写 “1”,通过内部的电阻把端口拉到高电平,此时可作为输入口。因为内部有电阻,某个引脚被外部信号拉低时输出一个电流。闪烁编程时和程序校验时,P1口接收低 8位地址。P2 口:P2 口是一个内部带有上拉电阻的8 位双向 I/O 口,P2 的输出缓冲级可驱动4 个 TTL 电路。对端口写 “1”,通过内部的电阻把端口拉到高电平,此时,可作为输入口。因为内部有电阻,某个引脚被外部信号拉低时会输出一个电流。在访问外部程序存储器或16 位地址的外部数据存储器时,P2口送出高 8 位地址数据。在访问8 位地址的外部数据存储器时,P2口线上的内容在整个运行期间不变。闪烁编程或校验时,P2 口接收高位地址和其它控制信号。P3 口:P3 口是一组带有内部电阻的8 位双向 I/O 口,P3 口输出缓冲故可驱动 4 个 TTL 电路。对 P3口写如 “1”时,它们被内部电阻拉到高电平并可作为输入端时,被外部拉低的P3口将用电阻输出电流。P3 口除了作为一般的I/O 口外,更重要的用途是它的第二功能,如下表所示:精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 14 页,共 28 页端口引脚第二功能P3.0 RXD P3.1 TXD P3.2 INT0 P3.3 INT1 P3.4 T0 P3.5 T1 P3.6 WR P3.7 RD P3口还接收一些用于闪烁存储器编程和程序校验的控制信号。RST:复位输入。当震荡器工作时,RET 引脚出现两个机器周期以上的高电平将使单片机复位。ALE/ PROG:当访问外部程序存储器或数据存储器时,ALE 输出脉冲用于锁存地址的低8 位字节。即使不访问外部存储器,ALE 以时钟震荡频率的 1/16 输出固定的正脉冲信号,因此它可对输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE 脉冲时,闪烁存储器编程时,这个引脚还用于输入编程脉冲。如果必要,可对特殊寄存器区中的8EH 单元的 D0 位置禁止 ALE 操作。这个位置后只有一条MOVX 和 MOVC指令 ALE 才会被应用。此外,这个引脚会微弱拉高,单片机执行外部程序时,应设置 ALE 无效。PSEN : 程序 储 存 允许 输 出 是 外 部 程 序 存 储 器 的 读 选通 信 号 ,当AT89C51 由外部程序存储器读取指令时,每个机器周期两次PSEN 有效,即输出两个脉冲。在此期间,当访问外部数据存储器时,这两次有效的PSEN 信号不出现。EA/VPP :外部访问允许。欲使中央处理器仅访问外部程序存储器,EA端必须保持低电平。需要注意的是:如果加密位LBI 被编程,复位时内部会锁存 EA 端状态。如EA 端为高电平, CPU 则执行内部程序存储器中的指令。闪烁存储器编程时,该引脚加上+12V 的编程允许电压VPP,当然这必须是该器件是使用12V 编程电压 VPP。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 15 页,共 28 页XTAL1 :震荡器反相放大器及内部时钟发生器的输入端。XTAL2 :震荡器反相放大器的输出端。时钟震荡器 :AT89C51 中有一个用于构成内部震荡器的高增益反相放大器,引脚 XTAL1 和 XTAL2 分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自然震荡器。外接石英晶体及电容C1,C2 接在放大器的反馈回路中构成并联震荡电路。对外接电容 C1,C2 虽然没有十分严格的要求,但电容容量的大小会轻微影响震荡频率的高低、震荡器工作的稳定性、起振的难易程序及温度稳定性。如果使用石英晶体,我们推荐电容使用30PF 10PF,而如果使用陶瓷振荡器建议选择 40PF 10PF。用户也可以采用外部时钟。采用外部时钟的电路如图示。这种情况下,外部时钟脉冲接到XTAL1端,即内部时钟发生器的输入端,XTAL2 则悬空。由于外部时钟信号是通过一个2 分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求。电路内部振荡外部振荡电路图 6-226.3 A/D 转换模块6.3.1 芯片的介绍和选择ADC0809 芯片ADC0809 是美国国家半导体公司生产的CMOS 工艺 8 通道,8 位逐次逼近式 A/D 模数转换器。其内部有一个8 通道多路开关,它可以根据地址码锁存译码后的信号,只选通8 路模拟输入信号中的一个进行A/D 转换。是目前精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 16 页,共 28 页国内应用最广泛的8 位通用 A/D 芯片。图 6-31 引脚图(1)主要特性1)8路输入通道, 8 位 AD 转换器,即分辨率为8位。2)具有转换起停控制端。3)转换时间为 100s( 时钟为 640kHz 时),130s(时钟为 500kHz)4)单个 5V 电源供电5)模拟输入电压范围05V,不需零点和满刻度校准。6)工作温度范围为 -4085摄氏度7)低功耗,约 15mW。(2)外部特性(引脚功能)IN0 IN7:8 路模拟量输入端。DB0-DB7:8 位数字量输出端。ADDA 、ADDB、ADDC:3 位地址输入线,用于选通8 路模拟输入中的一路ALE :地址锁存允许信号,输入,高电平有效。START : AD 转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D 转换)。EOC:AD 转换结束信号,输出,当AD 转换结束时,此端输出一个高电平(转换期间一直为低电平)。OE:数据输出允许信号,输入,高电平有效。当AD 转换结束时,此精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 17 页,共 28 页端输入一个高电平,才能打开输出三态门,输出数字量。CLK :时钟脉冲输入端。要求时钟频率不高于640KHZ。REF(+)、REF(-): 基准电压。Vcc:电源,单一 5V。GND:接地。6.3.2 原理图图 6-32 6.4 显示模块6.4.1 LED 数码管LED基本结构LED 是发光二极管显示器的缩写。LED 由于结构简单、价格便宜、与单片机接口方便等优点而得到广泛应用。LED 显示器是由若干个发光二极管组成显示字段的显示器件6。在单片机中使用最多的是七段数码显示器。LED七段数码显示器由8 个发光二极管组成显示字段,其中7 个长条形的发光二极管排列成“日”字形,另一个圆点形的发光二极管在显示器的右下角作为显示小数点用,其通过不同的组合可用来显示各种数字。LED 引脚排列如下图 6-41 所示: 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 18 页,共 28 页图 6-41LED 引脚排列LED数码管的选择在应用系统中,设计要求不同,使用的LED 显示器的位数也不同,因此就生产了位数,尺寸,型号不同的LED 显示器供选择,在本设计中,选择4位一体的数码型LED 显示器,简称“ 4-LED”。本系统中前一位显示电压的整数位,即个位,后两位显示电压的小数位。4-LED 显示器引脚如图所示,是一个共阴极接法的4 位 LED 数码显示管,其中 a,b,c,e,f,g 为 4 位 LED 各段的公共输出端, 1、2、3、4 分别是每一位的位数选端, dp 是小数点引出端, 4 位一体 LED 数码显示管的内部结构是由4 个单独的LED 组成,每个LED 的段输出引脚在内部都并联后,引出到器件的外部。图 6-42 4 位 LED引脚对于这种结构的LED 显示器,它的体积和结构都符合设计要求,由于4位 LED 阴极的各段已经在内部连接在一起,所以必须使用动态扫描方式(将所有数码管的段选线并联在一起,用一个I/O 接口控制)显示。LED译码方式译码方式是指由显示字符转换得到对应的字段码的方式,对于LED 数码管显示器,通常的译码方式有硬件译码和软件译码方式两种。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 19 页,共 28 页硬件译码是指利用专门的硬件电路来实现显示字符码的转换。软件译码就是编写软件译码程序,通过译码程序来得到要显示的字符的字段码,译码程序通常为查表程序3。本设计系统中为了简化硬件线路设计,LED 译码采用软件编程来实现。由于本设计采用的是共阴极LED,其对应的字符和字段码如下表所示。共阴极字段码表显示字符共阴极字段码0 3FH 1 06H 2 5BH 3 4FH 4 66H 5 6DH 6 7DH 7 07H 8 7FH 9 6FH 6.4.2LED 数码管与单片机接口设计由于单片机的并行口不能直接驱动LED 显示器,所以,在一般情况下,必须采用专用的驱动电路芯片,使之产生足够大的电流,显示器才能正常工作7。如果驱动电路能力差,即负载能力不够时,显示器亮度就低,而且驱动电路长期在超负荷下运行容易损坏,因此,LED 显示器的驱动电路设计是一个非常重要的问题。为了简化数字式直流电压表的电路设计,在LED 驱动电路的设计上,可以利用单片机 P0口上外接的上拉电阻来实现,即将LED 的 A-G 段显示引脚和 DP 小数点显示引脚并联到P0 口与上拉电阻之间,这样,就可以加大P0口作为输出口德驱动能力,使得LED 能按照正常的亮度显示出数字,如图6-43所示。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 20 页,共 28 页图 6-43 LED 与单片机接口间的设计精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 21 页,共 28 页第七章 总体电路7.1 总体电路经过以上的设计过程,可设计出基于单片机的简易数字直流电压表硬件电路原理图如图 7-11所示。图 7-11 简易数字电压表电路图此电路的工作原理是:+5V 模拟电压信号通过变阻器VR1 分压后由ADC0809的IN0通 道 进 入 ( 由 于 使 用 的IN0通 道 , 所 以ADDA,ADDB,ADDC均接低电平),经过模/数转换后,产生相应的数字量经过其输出通道 D0-D7 传送给 AT89C51芯片的 P1口,AT89C51负责把接收到的数字量经过数据处理,产生正确的7 段数码管的显示段码传送给四位LED,同时它还通过其四位I/O 口 P2.0、P2.1、P2.2、P2.3产生位选信号控制数码管的亮灭。此外,AT89C51 还控制ADC0809 的工作。其中,单片机AT89C51 通过定时器中断从P2.4 输出方波,接到ADC0809 的 CLOCK,P2.6发正脉冲启动 A/D 转换, P2.5检测 A/D 转换是否完成,转换完成后,P2.7置高从 P1口读取转换结果送给LED 显示出来3。简易数字直流电压表的硬件电路已经设计完成,就可以选取相应的芯片和元器件,利用Proteus 软件绘制出硬件的原理,并仔细地检查修改,直至形成完善的硬件原理图。但要真正实现电路对电压的测量和显示的功能,还需要有相应的软件配合,才能达到设计要求。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 22 页,共 28 页第八章 软件设计8.1 汇编流程图开始系统初始化启动 A/D 转换采集 A/D 转换值数据转换Y 调用显示三位是否显示完?完?读电压值Y N END 程序流程图转换结束?Y N 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 23 页,共 28 页8.2 汇编程序。初始化定义LED1 EQU 30H LED2 EQU 31H LED3 EQU 32H。存放三个数码管的段码ADC EQU 35H。存放转换后的数据ST BIT P3.2 OE BIT P3.0 EOC BIT P3.1。定义 ADC0809 的功能控制引脚ORG 0000H LJMP MAIN 。跳转到主程序执行ORG 0030H 。主程序,各寄存器初始化,ADC0809 采集数据和调用显示主程序;MAIN: MOV LED1,#00H MOV LED2,#00H MOV LED3,#00H 。寄存器初始化CLR P3.4 SETB P3.5 CLR P3.6。选择 ADC0809 的通道 2 WAIT: CLR ST SETB ST CLR ST。在脉冲下降沿启动转换JNB EOC,$。等待转换结束SETB OE。允许输出信号MOV ADC,P1 。暂存 A/D 转换结果 CLR OE。关闭输出 MOV A,ADC 。将转换结果放入A 中,准备个位数据转换MOV B,#50。变换个位调整值50送 B DIV AB MOV LED1,A 。将变换后的个位值送显示缓冲区LED1 MOV A,B 。将变换结果的余数放入A 中,准备十分位变换MOV B,#5。变换十分位调整值5 送 B DIV AB 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 24 页,共 28 页MOV LED2,A 。将变换后的十分位值送LED2 MOV LED3,B 。最后的余数作百分位值送LED3 LCALL DISP 。调用显示程序AJMP WAIT 。显示子程序:DISP:MOV R1,#LED1 CJNE R1,#5,GO。R1=5V?是往下执行,否,则到GO MOV LED2,#0H 。是 5V,即最高值,将小数的十分位清零MOV LED3,#0H 。将小数的百分位清零GO:MOV R2,#3。显示位数赋初值,用到3 位数码管MOV R3,#0FDH 。扫描初值送 R3 DISP1:MOV P2,#0FFH。关闭显示 ,目的防止乱码MOV A,R1 。显示值送 A MOV DPTR,#TAB 。送表首地址给 DPTR MOVC A,A+DPTR 。查表取段码CJNE R2,#3,GO1。判断是否个位数码管?否则跳到GO1 ORL A,#80H。将整数的数码管显示小数点GO1:MOV P0,A 。送段码给 P0口MOV A,R3 MOV P2,A 。送位码给 P2口 LCALL DELAY 。调用延时MOV R3,A RL A。改变位码 MOV R3,A INC R1。改变段码DJNZ R2,DISP1。三位是否显示完?否则调到DISP1 RET 。延时 5S程序:DELAY:MOV R6,#10 D1:MOV R7,#250 DJNZ R7,$ DJNZ R6,D1 RET 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 25 页,共 28 页。显示数据表:TAB: DB 3FH, 06H,5BH,4FH,66H 。共阴极数码管显示0-4 DB 6DH,7DH,07H,7FH,6FH 。显示 5-9 END8.3 程序说明程序先定义了ADC0809 的控制线,对其控制端口要注意的是操作时序。要将 A/D 转换来的数据变换成对应的BCD 码,这是因为ADC0809 是 8位 A/D 转换,对 05V 的模拟量转换成00HFFH 的数字量,即0255。这要变换成对应十进制的BCD 码才能显示。最高255/50=5.0(5V),BCD 码取 0101B,只精确到十分位。例如A/D 转换来的数据为235,变换对应的 BCD 码为: 235/50=4(是个位)余 35/5=6(十分位)余 5,余数 5 直接作百分位(此位不精确),即为4.65V,BCD 码为 0100 0110 0101.然后查表,缓存,调显示程序显示。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 26 页,共 28 页总结在 A/D 转换部分软件的设计中,首先要考虑到A、B、C 分别接地址锁存器提供的低三位地址,只要把三位地址写入ADC0809 中的地址锁存器,就实现了模拟通道选择IN0。在本次设计中只用到了一路输入。单片机为8 位处理器,当输入电压为5.00 时,输出数据值为255(FFH),决定了该电压表的最大分辨率(精度)只能达到0.0196V。测试时电压数值的变化一般以0.02 的电压幅度变化。在200MV 档中,电压值的变化是由 0-200MV 变化,而模拟开关的变化为0-5V 变化,所以在此档位中电压表的绝对精度是0.784MV(200/255);在 2V 档中,电压值的变化是由200-2000MV 变化,模拟开关的变化为0-5V 变化,所以在此档位中电压表的绝对精度是7.06MV(1800/255);在 20V 档中,电压值的变化是由2-2MV变化,模拟开关的变化也为0-5V 变化,所以在此档位中电压表的绝对精度是 70.58MV (18/255)。本次设计成功的完成了基于AT89C51单片机的数字电压表设计任务,输入 0-20V 直流电压,单片机转化为模拟量进行初始判断后,利用模拟开关实现了 200MV、2V、20V 自动换挡,能够在LCD 液晶屏上显示相应的数字量电压值, 20V 档精确到小数点后两位; 2V 档时作为 2000MV 的量程显示 4 位有效数字; 200MV 档时精确到小数点后一位。基于本设计中的电路,还可以扩展很多其它方面的功能如:1)本次设计在采集模拟电压量时只用到了ADC0809 的 IN0 通道,完全可以通过编程实现多通道输入,并在LCD 液晶显示屏上显示相对应的通道值。2)可采用高精度的A/D 转换器,实现更大的量程和更高的精度。3) 可以利用单片机串口通信将电压值传送至电脑进行同步显示和后期处理。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 27 页,共 28 页参考文献1 鲍小南 . 单片机微型计算机原理及应用浙江大学出版社 2009.2 2 楼然苗、李光飞 . 单片机课程设计指导电子工业出版社,2007.12 3 吴经国等 .单片机应用技术 . .中国电力出版社, 2000.54 吴金戌、沈庆阳、郭庭青. 8051 单片机实践与应用清华大学出版社,2011.8 5 余修武 . 单片机原理及应用电子科技大学出版社 ,2011.10 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 28 页,共 28 页