毕业设计简易数字电压表设计.doc

上传人:文库蛋蛋多 文档编号:3927001 上传时间:2023-03-28 格式:DOC 页数:30 大小:441.50KB
返回 下载 相关 举报
毕业设计简易数字电压表设计.doc_第1页
第1页 / 共30页
毕业设计简易数字电压表设计.doc_第2页
第2页 / 共30页
毕业设计简易数字电压表设计.doc_第3页
第3页 / 共30页
毕业设计简易数字电压表设计.doc_第4页
第4页 / 共30页
毕业设计简易数字电压表设计.doc_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《毕业设计简易数字电压表设计.doc》由会员分享,可在线阅读,更多相关《毕业设计简易数字电压表设计.doc(30页珍藏版)》请在三一办公上搜索。

1、毕业设计(论文)题 目:简易数字电压表设计 摘 要数字电压表(Digital Voltmeter)简称DVM,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。传统的指针式电压表功能单一、精度低,不能满足数字化时代的需求,采用单片机的数字电压表,由精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC进行实时通信。目前,由各种单片A/D 转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出强大的生命力。与此同时,由DVM扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭新水平

2、。本章重点介绍单片A/D 转换器以及由它们构成的基于单片机的数字电压表的工作原理。关键词: A/D转换模块 数据处理模块简易数字电压表目 录摘要8第一章 实现方案101.硬件选择方案 122.主要元器件的介绍 123.程序设计 21第二章 系统的测试与结果 25第三章系统调试过程及问题解决 28第四章 结论 29第五章致谢 30参考文献 30引 言 本文主要描述采用AT89S51芯片和ADC0809芯片来完成一个简易的数字电压表,能够对输入的05 V的模拟直流电压进行测量,并通过一个4位一体的7段LED数码管进行显示,测量误差约为0.02 V。该电压表的测量电路主要由三个模块组成:A/D转换模

3、块、数据处理模块及显示控制模块。A/D转换主要由芯片ADC0809来完成,它负责把采集到的模拟量转换为相应的数字量再传送到数据处理模块。数据处理则由芯片AT89S51来完成,其负责把ADC0809传送来的数字量经一定的数据处理,产生相应的显示码送到显示模块进行显示;另外它还控制着ADC0809芯片的工作。显示模块主要由7段数码管及相应的驱动芯片(74HC245组成,显示测量到的电压值湖南科技经贸职业学院毕业论文选题表 2010 年 3 月 15 日学生姓名刘潭华专业机电一体化年级07机电一班学号200707007060题 目:简易数字电压表设计指导教师姓名指导教师职称主要研究内容本文主要描述采

4、用AT89S51芯片和ADC0809芯片来完成一个简易的数字电压表,能够对输入的05 V的模拟直流电压进行测量,并通过一个4位一体的7段LED数码管进行显示,测量误差约为0.02 V。从而研究单片机数字电压表使用中的问题以及其解决办法。主要参考文献1.( 9787560935911) 胡乾斌、单片机原理与应用、2006年2月、第二版、华中科技大学出版社、P20P24。2.( 9787810778374) 李广弟 朱月秀冷祖祁、单片机基础、2007年6月、第一版、北京航空航天大学出版社、P65P673.( 978-7-301-10760-7/TN 0032) 魏立峰 王宝兴、单片机原理及应用技术

5、、2006年8月、第一版、北京大学出版社、P165P169。指导教师意见 签名: 年 月 日系部意见 年 月 日 湖南科技经贸职业学院毕业论文任务书教研室指导教师职 称学生姓名刘潭华专业(班级)07级机电一体化机电一班设计题目简易数字电压表设计设计内容和目标本文主要描述采用AT89S51芯片和ADC0809芯片来完成一个简易的数字电压表,能够对输入的05 V的模拟直流电压进行测量,并通过一个4位一体的7段LED数码管进行显示,测量误差约为0.02 V。从而研究单片机数字电压表使用中的问题以及其解决办法。设计要求简易数字电压表可以测量05V的8路输入电压值,并在四位LED数码管上轮流显示或单路选

6、择显示。测量最小分辨率为0.019V,测最误差约为 0.02V进度安排1查阅相关资料进行筛选; 2010.04.122初步构思,确定大的框架; 2010.04.173论文的撰写; 2010.05.214论文格式的修改; 2010.05.255老师的意见及引导; 2010.05.286再次修改,大体完成 2010.06.04教研室审核 室主任签名: 年 月 日系部审核 系主任签名: 年 月 日说明:此表一式两份,系部和学生各留存一份湖南科技经贸职业学院毕业论文开题报告设计(论文)题目简易数字电压表设计选题背景、意义数字电压表(Digital Voltmeter)简称DVM,它是采用数字化测量技术

7、,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。传统的指针式电压表功能单一、精度低,不能满足数字化时代的需求,采用单片机的数字电压表,由精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC进行实时通信。目前,由各种单片A/D 转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出强大的生命力。与此同时,由DVM扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭新水平。本章重点介绍单片A/D 转换器以及由它们构成的基于单片机的数字电压表的工作原理。研 究内 容采用AT89S51芯片和ADC0809

8、芯片来完成一个简易的数字电压表,能够对输入的05 V的模拟直流电压进行测量,并通过一个4位一体的7段LED数码管进行显示,测量误差约为0.02 V。从而研究单片机数字电压表使用中的问题以及其解决办法。技术路 线、方案本系统采用AT89S51单片机芯片配合ADC0809模/数转换芯片构成一个简易的数字电压表。该电路通过ADC0809芯片采样输入口IN0输入的05 V的模拟量电压,经过模/数转换后,产生相应的数字量经过其输出通道D0D7传送给AT89S51芯片的P0口。AT89S51负责把接收到的数字量经过数据处理,产生正确的7段数码管的显示段码,并通过其P1口经驱动芯片74HC245驱动,再传送

9、给数码管。同时它还通过其三位I/O口P3.0、P3.1、P3.2产生位选信号,控制数码管的亮灭。从而读出测量值,以达到测量目的。湖南科技经贸职业学院毕业论文开题报告计 划进 度1查阅相关资料进行筛选; 2010.04.122初步构思,确定大的框架; 2010.04.173论文的撰写; 2010.05.214论文格式的修改; 2010.05.255老师的意见及引导; 2010.05.286再次修改,大体完成 2010.06.04指导老师意见指导教师签名: 年 月 日开题组意 见 组长签名: 年 月 日 湖南科技经贸职业学院毕业论文成绩考核表 作者姓名刘潭华专业机电一体化年级07机电一班学号200

10、707007060题 目简易数字电压表设计指导教师姓名指导教师职称指导教师评阅意见 年 月 日建议等级:指导教师(签名):系部终审意见 (盖章) 年 月 日审定等级负责人(签名):摘 要数字电压表(Digital Voltmeter)简称DVM,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。传统的指针式电压表功能单一、精度低,不能满足数字化时代的需求,采用单片机的数字电压表,由精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC进行实时通信。目前,由各种单片A/D 转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测

11、试系统等智能化测量领域,示出强大的生命力。与此同时,由DVM扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭新水平。本章重点介绍单片A/D 转换器以及由它们构成的基于单片机的数字电压表的工作原理,本文主要描述采用AT89S51芯片和ADC0809芯片来完成一个简易的数字电压表,能够对输入的05 V的模拟直流电压进行测量,并通过一个4位一体的7段LED数码管进行显示,测量误差约为0.02 V。该电压表的测量电路主要由三个模块组成:A/D转换模块、数据处理模块及显示控制模块。A/D转换主要由芯片ADC0809来完成,它负责把采集到的模拟量转换为相应的数字量再传送到数据处理模块

12、。数据处理则由芯片AT89S51来完成,其负责把ADC0809传送来的数字量经一定的数据处理,产生相应的显示码送到显示模块进行显示;另外它还控制着ADC0809芯片的工作。显示模块主要由7段数码管及相应的驱动芯片(74HC245)组成,显示测量到的电压值。【关键词】7段数码管ADC0809芯片 简易数字电压表。 第一章实现方案本系统采用AT89S51单片机芯片配合ADC0809模/数转换芯片构成一个简易的数字电压表,原理电路如图1-1所示。该电路通过ADC0809芯片采样输入口IN0输入的05 V的模拟量电压,经过模/数转换后,产生相应的数字量经过其输出通道D0D7传送给AT89S51芯片的P

13、0口。AT89S51负责把接收到的数字量经过数据处理,产生正确的7段数码管的显示段码,并通过其P1口经驱动芯片74HC245驱动,再传送给数码管。同时它还通过其三位I/O口P3.0、P3.1、P3.2产生位选信号,控制数码管的亮灭。另外,AT89S51还控制着ADC0809的工作。其ALE管脚为ADC0809提供了1MHz工作的时钟脉冲;P2.3控制ADC0809的地址锁存端(ALE);P2.4控制ADC0809的启动端(START);P2.5控制ADC0809的输出允许端(OE);P3.7控制ADC0809的转换结束信号(EOC)。系统框图如图1-2所示。图1-1 电路原理图图1-2 系统框

14、图1.1硬件选择方案:一所需元器件:1. AT89S51芯片 1块2. ADC0809芯片 1块3. 74HC245芯片 2块4. 4位一体数码 1个5. 6MHz晶振 1个6. 33pF电容 2个7. 0.1uF滤波电容 2个8. 10uF电解电容 1个9. 按键开关 1个10.发光二极管 1个11.4.7K精密电位器 1个12.510电阻 12个13.8.2K电阻 1个14.10K电阻 1个15.导线 若干1.2 主要元器件的介绍:(1). 模数转换芯片ADC0809:ADC0809是典型的8位8通道逐次逼近式A/D转换器,其实物如图1-3所示。它可以和微型计算机直接接口。ADC0809转

15、换器的系列芯片是ADC0808,可以相互替换。 图1-3 ADC0809实物图1) ADC0809内部逻辑结构图1-4 ADC0809的内部逻辑结构及引脚图ADC0809的内部逻辑结构如图1-4所示。图中多路模拟开关可选通8路模拟通道,允许8路模拟量分时输入,并共用一个A/D转换器进行转换。地址锁存与译码电路完成对A、B、C三个地址位进行锁存与译码,如表1-1所示。表1-1 ADC0809通道选择表 C(ADDC)B(ADDB)A(ADDA)选择的通道000IN0001IN10100IN2011IN3100IN4101IN5110IN6111IN72) ADC0809的引脚ADC0809芯片为

16、28引脚双列直插式封装,其引脚排列如图1-4所示。(1)IN0IN7:8路模拟量输入通道。(2)A、B、C:模拟通道地址线。这3根地址线用于对8路模拟通道的选择,其译码关系如表1-1所示。其中,A为低地址,C为高地址,引脚图中为ADDA,ADDB和ADDC。(3)ALE:地址锁存允许信号。对应ALE上跳沿,A、B、C地址状态送入地址锁存器中。(4)START:转换启动信号。START上升沿时,复位ADC0809;START下降沿时启动芯片,开始进行A/D转换;在A/D转换期间,START应保持低电平。本信号有时简写为ST。(5)D7D0:数据输出线。为三态缓冲输出形式,可以和单片机的数据线直接

17、相连。D0为最低位,D7为最高。 (6)OE:输出允许信号。用于控制三态输出锁存器向单片机输出转换得到的数据。OE=0,输出数据线呈高阻;OE=1,输出转换得到的数据。(7)CLK:时钟信号。ADC0809的内部没有时钟电路,所需时钟信号由外界提供,因此有时钟信号引脚。通常使用频率为500KHz的时钟信号。(8)EOC:转换结束信号。EOC=0,正在进行转换;EOC=1,转换结束。使用中该状态信号即可作为查询的状态标志,又可作为中断请求信号使用。(9)Vcc: +5V电源,GND:地。 (10)Vref:参考电压。参考电压用来与输入的模拟信号进行比较,作为逐次逼近的基准。其典型值为+5V(Vr

18、ef(+)=+5V, Vref(-)=0V)。3) ADC0809的工作原理:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。(注意:ALE信号常与START信号连在一起,这样连接可以在信号的前沿写入地址信号,在其后沿启动A/D转换,图1-5为ADC0809信号的时序配

19、合图)。图1-5 ADC0809信号的时序配合(2). 数据处理及控制芯片AT89S51:AT89S51是美国ATMEL公司生产的低功耗、高性能CMOS 8位单片机。图1-6和1-7分别为其实物图和内部总体结构图。AT89S51片内含有4k字节Flash闪速存储器,128字节内部 RAM,32个I/O 口线,看门狗(WDT),两个数据指针,两个16 位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,S51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许 RAM,定时/计数器,串行通信口及中断系统继续工作。掉电

20、方式保存 RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89S51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。图1-6 AT89S51实物图1) 主要性能参数与MCS-51产品指令系列完全兼容;4K字节在系统编程(ISP)Flash闪速存储器;1000次擦写周期;4.05.5 V工作电压范围;全静态工作模式:0Hz33MHz;三级程序加密锁;128字节内部RAM;32个可编程I/O口线;2个16位的定时/计数器;6个中断源;图1-7 AT89S51芯片内部总体结构图全双工

21、串行UART通道;低工耗空闲和掉电模式;中断可从空闲模式唤醒系统;看门狗(WDT)及双数据指针;掉电标识和快速编程特性;灵活的在系统编程(ISP-字节或页写模式)。2) AT89S51的引脚:AT89S51芯片为40引脚双列直插式封装,其引脚排列如图1-8所示。图1-8 AT89S51的引脚图(5)P2口:P2口是一个内部提供上拉电阻的8位双向I/O口,P2口的输出缓冲器可驱动4个TTL逻辑门电路。对P2口管脚写入“1”后,被内部上拉电阻拉高,可用作输入。P2口被外部下拉为低电平时,将输出电流,这是由于内部接有上拉电阻的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2

22、口输出地址的高八位。在访问8位地址外部数据存储器时,P2口线上的内容,在整个访问期间不改变。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。(6)P3口:P3口是一个内部提供上拉电阻的8位双向I/O口,P3口的输出缓冲器可驱动4个TTL逻辑门电路。对P3口管脚写入“1”后,被内部上拉电阻拉高,可用作输入。P3口被外部下拉为低电平时,将输出电流,这是由于内部接有上拉电阻的缘故。P3口除了一般I/O线的功能外,还具有更为重要的第二功能,如表1-3所示。P3口同时为FLASH编程和编程校验接收一些控制信号。 (1)V (1)VCC:电源电压; (2)GND:接地; (3)P0口:P0口是

23、一组8位漏极开路双向I/O口,每位引脚可驱动8个TTL逻辑门路。对P0口的管脚写“1”时,被定义为高阻抗输入。在访问外部数据存储器或程序存储器时,它可以被定义为数据总线和地址总线的低八位。在FLASH编程时,P0 口作为原码输入口;当FLASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻。 (4)P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口的输出缓冲器可驱动4个TTL逻辑门电路。对P1口管脚写入“1”后,被内部上拉电阻拉高,可用作输入。P1口被外部下拉为低电平时,将输出电流,这是由于内部接有上拉电阻的缘故。在FLASH编程和校验时,P1口作为低八位地址接收。P1口还具

24、有第二功能,如表1-2所示。 表1-2 P1口的第二功能端口引脚第二功能P1.5MOSI(用于ISP编程)P1.6MISO(用于ISP编程)P1.7 SCK(用于ISP编程)表1-3 P3口的第二功能端口引脚第二功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2/INTO(外部中断0)P3.3/INT1(外部中断1)P3.4T0(定时器0外部输入)P3.5T1(定时器1外部输入)P3.6/WR(外部数据存储器写选通)P3.7/RD(外部数据存储器读选通)(7) RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。(8) ALE/RPOG:当访问外部存

25、储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。(9)/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这

26、两次有效的信号将不出现。(10)/EA/VPP:当保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 (11)XTAL1:片内高增益反向放大器的输入及内部时钟工作电路的输入。(12)XTAL2:片内高增益反向放大器的输出端。3) AT89S51与AT89C51的区别AT89S51在AT89C51的基础上,又增加了许多功能,性能有了较大提升。 (1)ISP在线编程功能,这个功能的优势在于改写单片机存储

27、器内的程序不需要把芯片从工作环境中剥离。是一个强大易用的功能。(2)工作频率为33MHz,大家都知道89C51的极限工作频率只有24M,就是说S51具有更高工作频率,从而具有了更快的计算速度。(3)具有双工UART串行通道。 (4)内部集成看门狗计时器,不再需要像89C51那样外接看门狗计时器单元电路。(5)双数据指示器。(6)电源关闭标识。 (7)全新的加密算法,这使得对于89S51的解密变为不可能,程序的保密性大大加强,这样就可以有效的保护知识产权不被侵犯。 (8)兼容性方面:向下完全兼容51全部字系列产品。比如8051、89C51等等早期MCS-51兼容产品。在89C51上一样可以照常运

28、行,这就是所谓的向下兼容。4) AT89S51的复位电路AT89S51的复位电路如图1-9所示。当单片机一上电,立即复位;另外,如果在运行中,外界干扰等因素使单片机的程序陷入死循环状态或“跑飞”,就可以通过按键使其复位。复位也是使单片机退出低功耗工作方式而进入正常状态的一种操作。图1-9 复位电路电容C和电阻R1实现上电自动复位。增加按键开关S和电阻R2又可实现按键复位功能。R2的作用是在S按下的时候,防止电容C放电电流过大烧坏开关S的触点。因保证R1/R2 10。一般取C=10uF,R2=100,R1=8.2K。5) AT89S51与ADC0809的连接AT89S51与ADC0809的连接电

29、路如图1-10所示。AT89S51与ADC0809的连接必须注意处理好3个问题:(1)在START端送一个100ns宽的启动正脉冲;(2)获取EOC端上的状态信息,因为它是A/D转换的结束标志;(3)给“三态输出锁存器”分配一个端口地址,也就是给OE端送一个地址译码器的输出信号。(图见下页)图1-10 AT89S51与ADC0809的连接电路(3). 驱动芯片74HC24574HC245为三态输出的八组总线收发器,在本实验中作为驱动芯片使用,用于驱动数码管的点亮。图1-11和图1-12分别为其实物图和引脚图。(1)A:A总线端;(2)B:B总线端;(3)/G:三态允许端(低电平有效);(4)D

30、IR:方向控制端;(5)Vcc:电源; (6)GND:地。(图1-11)74HC245的实物图 (图1-12)74HC245引脚图(4). 4位一体7段LED数码管本实验的显示模块主要由一个4位一体的7段LED数码管(SM410564)构成,用于显示测量到的电压值。它是一个共阳极的数码管,每一位数码管的原理图如图1-13所示。每一位数码管的a,b,c,d,e,f,g和dp端都各自连接在一起,用于接收AT89S51的P1口产生的显示段码。1,2,3,4引脚端为其位选端,用于接收AT89S51的P3口产生的位选码。图1-14和图1-15分别为其实物图和引脚图。图1-13 一位数码管的原理图图1-1

31、4 SM410564数码管实物图3、程序设计(1).主程序设计初始化中主要对AT89S51,ADC0809的管脚和数码管的位选及所用到的内存单元70H,78H,79H,7AH 进行初始化设置。准备工作做好后便启动ADC0809对IN0脚输入进的05V电压模拟信号进行数据采集并转换成相对应的0255十进制数字量。在数据处理子程序中,运用标度变换知识,编写算法将0255十进制数字量转换成0.005.00V的数据,输出到显示子程序进行显示。整个主程序就是在A/D转换,数据处理及显示程序循环执行。整个程序流程框图如图116所示。(图见下页)(2).各子程序设计1)A/D转换子程序启动ADC0809对模

32、拟量输入信号进行转换,通过判断EOC(P3.1引脚)来确定转换是否完成,若EOC为0,则继续等待;若EOC为1,则把OE置位,将转换完成的数据存储到70H中。程序流程图如图117所示。(图见下页) 图1-16主程序流程图 图1-17 A/D转换程序流程图2)数据处理子程序程序流程图如图118所示(图见下页)图1-18数据处理子程序流程图3)显示子程序显示子程序采用动态扫描法实现三位数码管的数值显示。测量所得的A/D转换数据放在70H内存单元中,测量数据在显示时需转换成10进制BCD码放在78H7AH单元中。寄存器R1用作显示数据地址指针。程序流程图如图1-19所示。图1-19显示子程序流程图第

33、二章 系统的测试与结果1.源程序ORG 0000HLJMP STARTORG 0003HRETIORG 000BHRETIORG 0013HRETIORG 001BHRETIORG 0023HRETIORG 002BHRETIORG 0030H2;初始化参数START: CLR A SETB P3.7 ;初始化EOC CLR P3.0 ;初始化LED位选,全不选中。 CLR P3.1 CLR P3.2 MOV P2 , A ;初始化P2口,清除对ADC0809的控制信号。MOV 70H , A ;初始化数据采样后存储空间。 MOV 78H , A ;初始化数据处理后3位有效数字的存储空间(78

34、H最高位,7AH最低位)。 MOV 79H , A MOV 7AH , AMOV A , #0FFH ;初始化P0,P1口,写入高电平。MOV P0 , AMOV P1 , A3;主程序MAIN: LCALL AD_SUB ;调用A/D转换子程序,开始采样并转换。 LCALL TURN_SUB ;调用数码转换子程序,将采样转换来的0-255转换成一一对应的;0.00-5.00LCALL DISP_SUB ;调用显示子程序。LJMP MAIN;=;A/D转换子程序 AD_SUB: CLR AMOV P2 , A ;初始化P2口,清除对ADC0809的控制信号。MOV R0 , #70H LCAL

35、L AD_ST ;调用采样转换子程序WAIT: JB P3.7 , DATASAVE ;判断采样转换是否完毕,完毕则跳转到DATASAVE进行存储。 AJMP WAIT ;否则继续等待。;启动采样,送脉冲时序AD_ST: SETB P2.3 ;ALE 脉冲时序NOPNOPCLR P2.3SETB P2.4 ;START 脉冲时序(上跳清零,下跳开始转换)NOPNOPCLR P2.4NOPNOPRET;采样转换的数据存储DATASAVE: SETB P2.5 ;置位OE端,允许ADC0809输出数据MOV A , P0 ;将转换的数据存储到70H中MOV R0 , ACLR P2.5 CLR A

36、 ;初始化P0,P1,P2口(P0,P1高电平,P2低电平)MOV P2 , AMOV A , #0FFHMOV P0 , AMOV P1 , ARET;将0255转换为0.005.00TURN_SUB: MOV A , R0 MOV B , #51DIV AB MOV 78H , A ;以上这一段是整数部分(个位)放入78H MOV A , B ;余数部分放入ACLR F0SUBB A , #1AH ;余数和51的一半即1AH比较,以便四舍五入MOV F0 , CMOV A , #10MUL AB ;余数乘以10,以便再除以51 MOV B , #51DIV ABJB F0 , LOOP1

37、;判断四舍五入,跳到LOOP1是“四舍”ADD A , #5 ;这是“五入”LOOP1: MOV 79H , A ;十分位MOV A , BCLR F0SUBB A , #1AHMOV F0,CMOV A , #10MUL ABMOV B , #51DIV ABJB F0 , LOOP2ADD A , #5LOOP2: MOV 7AH , A ;百分位RET;=;显示子程序 DISP_SUB: MOV R1 , #78H ;R1辅助寄存器,用于存放要显示的数据的地址(初始为最高位78H) CLR A MOV P1 , #0FFH ;初始化P1,P2口(P1高电平,P2低电平) ANL P2 ,

38、 A LCALL PLAY ;调用显示位码子程序CLR P1.7 ;显示最高位(个位)后的小数点SETB P3.0 ;选中最高位LED数码管LCALL DELAY ;调用延迟子程序CLR P3.0 ;取消最高位位选INC R1 ;提取第二位有效数字(十分位)的数据地址(79H) LCALL PLAY ;调用显示位码子程序 SETB P3.1 ;选中第二位LED数码管LCALL DELAY ;调用延迟子程序 CLR P3.1 ;取消第二位位选 INC R1 ;提取最低位(百分位)的数据地址(7AH)LCALL PLAY ;调用显示位码子程序 SETB P3.2 ;选中最低位LED数码管LCALL DELAY ;调用延迟子程序 CLR P3.2 ;取消最低位位选 RET;位码显示 PLAY: MOV A , R1 ;送偏移量MOV DPTR , #TAB ;送表首地址MOVC A , A+DPTR ;查表得出相应LED段码 MOV P1 , A ;输出显示RET ;= ;延时程序DELAY: MOV R6 , #10HDL1: MOV R7 , #10HDL2: DJNZ R7 , DL2DJNZ R6 , DL1RET;=;09段码 TAB: DB 0C0H , 0

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号