机电一体化毕业设计(论文)-基于单片机的数字电压表的设计.doc_第1页
机电一体化毕业设计(论文)-基于单片机的数字电压表的设计.doc_第2页
免费预览已结束,剩余27页可下载查看

下载本文档

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

文档简介

编号 淮安信息职业技术学院毕业论文题 目基于单片机的数字电压表的设计学生姓名学 号系 部电气工程系专 业机电一体化班 级指导教师顾问教师二一二年十月摘要摘要本文介绍了一种基于单片机的简易数字电压表的设计。该设计主要由三个模块组成:a/d转换模块,数据处理模块及显示模块。a/d转换主要由芯片adc0809来完成,它负责把采集到的模拟量转换为相应的数字量在传送到数据处理模块。数据处理则由芯片at89c51来完成,其负责把adc0809传送来的数字量经过一定的数据处理,产生相应的显示码送到显示模块进行显示;此外,它还控制着adc0809芯片工作。该系统的数字电压表电路简单,所用的元件较少,成本低,且测量精度和可靠性较高。此数字电压表可以测量0-5v的1路模拟直流输入电压值,并通过一个四位一体的7段数码管显示出来。 关键词:【单片机】 【数字电压表】 【a/d转换】 【at89c51】 【adc0809】i目录目 录第一章 绪论3第二章 设计背景42.1单片机42.1.1单片机的简介42.1.2单片机的应用领域42.2数字电压表62.2.1数字电压表的特点6第三章 设计目的与功能要求73.1设计目的73.2功能要求7第四章 总体设计84.1系统设计84.2设计方案84.3总体设计框图9第五章 设计原理图95.1设计原理图10第六章 硬件电路设计116.1 信号调理模块116.1.1电压极性检测电路116.1.2电压范围粗测电路116.1.3量程切换电路116.2单片机模块126.2.1芯片的介绍和选择126.3 a/d转换模块166.3.1芯片的介绍和选择166.3.2原理图186.4显示模块186.4.1 led数码管186.4.2 led数码管与单片机接口设计20第七章 总体电路设计227.1总体电路设计22第八章 软件设计238.1汇编流程图238.2汇编程序248.3程序说明26第九章 总结27参考文献28第一章 绪论第一章 绪论电子电压表主要用于测量各种高、低频信号电压,它是电子测量中使用最广泛的仪器之一。根据测量结果的显示方式及测量原理不同,电压测量仪器可分为两大类:模拟式电压表(avm)和数字式电压表(dvm)。模拟式电压表是指针式的,多用磁电式电流表作为指示器,并在表盘上刻以电压刻度。数字式电压表首先将模拟量经模数(a/d)转换器变成数字量,然后用电子计数器计数,并以十进制数字显示被测电压值。众所周知,模拟电压表精度较高,曾经有很广阔的市场,现在依然有不少工程师依然在使用模拟电压表。的确模拟电压表在显示测量值方面精度校准,然而却也存在问题。模拟电压表采用用指针式,里面是磁电或电磁式结构,所以其响应速度较慢。然而在高速发展的当今社会,高速信号处理的需求越来越多,由于模拟电压表响应速度较慢已经不适用与高速信号领域,取而代之的将是数字电压表。但数字电压表由于存在采样误差,精度不是很高。不过目前可以通过技术手段来缩小误差。使其精度达到与模拟电压表一样精确甚至更高。可见将来数字电压表必将取代模拟电压表。现在有越来越多的数字测量仪器的出现但原理皆与数字电压表殊途同归,因此研究数字电压表有着很大现实意义。第二章 设计背景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机和其他计算的总和,甚至比人类的数量还要多。2.1.2单片机的应用领域1第二章 设计背景目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能ic卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械以及各种智能机械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:智能仪器单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、电流、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。例如精密的测量设备(电压表、功率计,示波器,各种分析仪)。工业控制单片机具有体积小、控制功能强、功耗低、环境适应能力强、扩展灵活和使用方便等优点,用单片机可以构成形式多样的控制系统、数据采集系统、通信系统、信号检测系统、无线感知系统、测控系统、机器人等应用控制系统。例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。家用电器现在的家用电器广泛采用了单片机控制,从电饭煲、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备和白色家电等。网络和通信现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。医用设备领域单片机在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。模块化系统某些专用单片机设计用于实现特定功能,从而在各种电路中进行模块化应用,而不要求使用人员了解其内部结构。如音乐集成单片机,看似简单的功能,微缩在纯电子芯片中(有别于磁带机的原理),就需要复杂的类似于计算机的原理。如:音乐信号以数字的形式存于存储器中(类似于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)使用方便用途广:开机预热预调后即可使用,可配接打印机自动记数.还可配接相应的转换器,用来测量交流电压、直流电流、电阻和温度等参量。25第三章 设计目的与功能要求第三章 设计目的与功能要求3.1设计目的通过制作简易的数字电压表,加深对所学专业知识的认识,提高分析,解决工程实际问题的能力,提高对单片机的应用能力,提高收集文献,资料的能力,从而达到综合运用所学的专业知识进行电子产品设计,制作与调试的能力。3.2功能要求以mcs-51系列单片机为核心器件,组成一个简单的直流数字电压表。采用1路模拟量输入,能够测量0-5v之间的直流电压值。电压显示用4位一体的led数码管显示,至少能够显示两位小数。 尽量使用较少的元器件。第四章 总体设计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转换变换后的结果加以显示。第四章 总体设计4.3总体设计框图图4-31 总体设计框图第六章 硬件电路设计第五章 设计原理图5.1设计原理图图5-11 设计原理图第六章 硬件电路设计6.1 信号调理模块该部分主要实现的功能是自动量程切换和电压变换,模块主要由电压极性检测电路、电压范围粗测电路、电压变换电路三部分组成。6.1.1电压极性检测电路电压极性检测电路采用过零比较器检测负电压的方式实现的,运算放大器lm324的反向端接地,同向端通过100k电阻接输入信号。图6-116.1.2电压范围粗测电路 为了粗略地得到被测量的电压范围我们采用多组比较器的方式,通过阶梯式比较的方法确定输入电压的范围。图6-126.1.3量程切换电路电路由衰减电阻、切换继电器和运算放大器组成,对应的是衰减1/2、1/3、1/4和无零漂放大50倍,切换电路如图所示。电压变换到0-5v标准信号后,再由a/d转换进行采样,最后由单片机算法还原。6.2单片机模块6.2.1芯片的介绍和选择单片机at89c51介绍at89c51是一种带4k字节flash存储器(fperomflash 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 三级程序存储器锁定 1288位内部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口外,更重要的用途是它的第二功能,如下表所示:端口引脚第二功能p3.0rxdp3.1txdp3.2int0p3.3int1p3.4t0p3.5t1p3.6wrp3.7rdp3口还接收一些用于闪烁存储器编程和程序校验的控制信号。rst:复位输入。当震荡器工作时,ret引脚出现两个机器周期以上的高电平将使单片机复位。ale/:当访问外部程序存储器或数据存储器时,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。xtal1:震荡器反相放大器及内部时钟发生器的输入端。xtal2:震荡器反相放大器的输出端。时钟震荡器:at89c51中有一个用于构成内部震荡器的高增益反相放大器,引脚xtal1和xtal2分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自然震荡器。 外接石英晶体及电容c1,c2接在放大器的反馈回路中构成并联震荡电路。对外接电容c1,c2虽然没有十分严格的要求,但电容容量的大小会轻微影响震荡频率的高低、震荡器工作的稳定性、起振的难易程序及温度稳定性。如果使用石英晶体,我们推荐电容使用30pf10pf,而如果使用陶瓷振荡器建议选择40pf10pf。用户也可以采用外部时钟。采用外部时钟的电路如图示。这种情况下,外部时钟脉冲接到xtal1端,即内部时钟发生器的输入端,xtal2则悬空。由于外部时钟信号是通过一个2分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求。 电路内部振荡 外部振荡电路 图6-226.3 a/d转换模块6.3.1芯片的介绍和选择adc0809芯片adc0809是美国国家半导体公司生产的cmos工艺8通道,8位逐次逼近式a/d模数转换器。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行a/d转换。是目前国内应用最广泛的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)外部特性(引脚功能)in0in7:8路模拟量输入端。 db0-db7:8位数字量输出端。 adda、addb、addc:3位地址输入线,用于选通8路模拟输入中的一路 ale:地址锁存允许信号,输入,高电平有效。 start: ad转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动a/d转换)。 eoc: ad转换结束信号,输出,当ad转换结束时,此端输出一个高电平(转换期间一直为低电平)。 oe:数据输出允许信号,输入,高电平有效。当ad转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。 clk:时钟脉冲输入端。要求时钟频率不高于640khz。 ref(+)、ref(-):基准电压。 vcc:电源,单一5v。 gnd:接地。6.3.2原理图图6-326.4显示模块6.4.1 led数码管 led基本结构led是发光二极管显示器的缩写。led由于结构简单、价格便宜、与单片机接口方便等优点而得到广泛应用。led显示器是由若干个发光二极管组成显示字段的显示器件6。在单片机中使用最多的是七段数码显示器。led七段数码显示器由8个发光二极管组成显示字段,其中7个长条形的发光二极管排列成“日”字形,另一个圆点形的发光二极管在显示器的右下角作为显示小数点用,其通过不同的组合可用来显示各种数字。led引脚排列如下图6-41所示:图6-41 led引脚排列 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数码管显示器,通常的译码方式有硬件译码和软件译码方式两种。硬件译码是指利用专门的硬件电路来实现显示字符码的转换。软件译码就是编写软件译码程序,通过译码程序来得到要显示的字符的字段码,译码程序通常为查表程序3。本设计系统中为了简化硬件线路设计,led译码采用软件编程来实现。由于本设计采用的是共阴极led,其对应的字符和字段码如下表所示。共阴极字段码表显示字符共阴极字段码03fh106h25bh34fh466h56dh67dh707h87fh96fh6.4.2 led数码管与单片机接口设计由于单片机的并行口不能直接驱动led显示器,所以,在一般情况下,必须采用专用的驱动电路芯片,使之产生足够大的电流,显示器才能正常工作7。如果驱动电路能力差,即负载能力不够时,显示器亮度就低,而且驱动电路长期在超负荷下运行容易损坏,因此,led显示器的驱动电路设计是一个非常重要的问题。为了简化数字式直流电压表的电路设计,在led驱动电路的设计上,可以利用单片机p0口上外接的上拉电阻来实现,即将led的a-g段显示引脚和dp小数点显示引脚并联到p0口与上拉电阻之间,这样,就可以加大p0口作为输出口德驱动能力,使得led能按照正常的亮度显示出数字,如图6-43所示。第六章 硬件电路设计 第七章 总体电路图6-43 led与单片机接口间的设计第七章 总体电路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软件绘制出硬件的原理,并仔细地检查修改,直至形成完善的硬件原理图。但要真正实现电路对电压的测量和显示的功能,还需要有相应的软件配合,才能达到设计要求。第八章 软件设计第八章 软件设计8.1汇编流程图开始系统初始化启动a/d转换采集a/d转换值数据转换y调用显示三位是否显示完?完?读电压值ynend程序流程图转换结束?yn第八章 软件设计8.2汇编程序;初始化定义led1 equ 30hled2 equ 31hled3 equ 32h;存放三个数码管的段码adc equ 35h;存放转换后的数据st bit p3.2oe bit p3.0eoc bit p3.1;定义adc0809的功能控制引脚org 0000hljmp main;跳转到主程序执行org 0030h;主程序,各寄存器初始化,adc0809采集数据和调用显示主程序;main: mov led1,#00h mov led2,#00h mov led3,#00h;寄存器初始化 clr p3.4 setb p3.5 clr p3.6;选择adc0809的通道2wait: 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 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;扫描初值送r3disp1: 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,#10d1: mov r7,#250 djnz r7,$ djnz r6,d1 ret ;显示数据表:tab: db 3fh, 06h,5bh,4fh,66h;共阴极数码管显示0-4 db 6dh,7dh

温馨提示

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

评论

0/150

提交评论