文档视界 最新最全的文档下载
当前位置:文档视界 › 51单片机数字电压表汇编程序

51单片机数字电压表汇编程序

51单片机数字电压表汇编程序
51单片机数字电压表汇编程序

ORG 0000H

LJMP START

ORG 0030H

;初始化参数

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位有效数字的存储空间(78H最高位,7AH 最低位)。

MOV 79H,A

MOV 7AH,A

MOV A,#0FFH ;初始化P0,P1口,写入高电平。

MOV P0,A

MOV P1,A

;主程序

MAIN: LCALL AD_SUB ;调用A/D转换子程序,开始采样并转换。

LCALL TURN_SUB ;调用数码转换子程序,将采样转换来的0-255转换成一一对应的

;0.00-5.00

LCALL DISP_SUB ;调用显示子程序。

LJMP MAIN

;====================================================================

;A/D转换子程序

AD_SUB: CLR A

MOV P2,A ;初始化P2口,清除对ADC0809的控制信号。

MOV R0,#70H

LCALL AD_ST ;调用采样转换子程序

WAIT: JB P3.7,DATASAVE ;判断采样转换是否完毕,完毕则跳转到DATASAVE进行存储。

AJMP WAIT ;否则继续等待。

;启动采样,送脉冲时序

AD_ST: SETB P2.3 ;ALE 脉冲时序

NOP

NOP

CLR P2.3

SETB P2.4 ;START 脉冲时序(上跳清零,下跳开始转换)

NOP

NOP

CLR P2.4

NOP

NOP

RET

;采样转换的数据存储

DATASAVE: SETB P2.5 ;置位OE端,允许ADC0809输出数据

MOV A,P0 ;将转换的数据存储到70H中

MOV @R0,A

CLR P2.5

CLR A ;初始化P0,P1,P2口(P0,P1高电平,P2低电平)

MOV P2,A

MOV A,#0FFH

MOV P0,A

MOV P1,A

RET

;将0~255转换为0.00~5.00

TURN_SUB: MOV A,@R0

MOV B,#51

DIV A B

MOV 78H,A ;以上这一段是整数部分(个位)放入78H

MOV A,B ;余数部分放入A

CLR F0

SUBB A,#1AH ;余数和51的一半即1AH比较,以便四舍五入

MOV F0,C

MOV A,#10

MUL AB ;余数乘以10,以便再除以51

MOV B,#51

DIV A B

JB F0,LOOP1 ;判断四舍五入,跳到LOOP1是"四舍"

ADD A,#5 ;这是"五入"

LOOP1: MOV 79H,A ;十分位

MOV A,B

CLR F0

SUBB A,#1AH

MOV F0,C

MOV A,#10

MUL AB

MOV B,#51

DIV A B

JB F0,LOOP2

ADD A,#5

LOOP2: MOV 7AH,A ;百分位

RET

;====================================================================

;显示子程序

DISP_SUB: MOV R1,#78H ;R1辅助寄存器,用于存放要显示的数据的地址(初始为最高位78H)

CLR A

MOV P1,#0FFH ;初始化P1,P2口(P1高电平,P2低电平)

ANL P2,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,#10H

DL1: MOV R7,#10H

DL2: DJNZ R7,DL2

DJNZ R6,DL1

RET

;====================================================================

;0-9段码

TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H

END

基于51单片机的数字电压表设计说明

1.1数字电压表介绍 数字电压表简称DVM,数字电压表基本原理是将输入的模拟电压信号转化为数字信号,再进行输出显示。而A/D转换器的作用是将连续变化的模拟信号量转化为离散的数字信号,器基本结构是由采样保持,量化,编码等几部分组成。因此AD转换是此次设计的核心元件。输入的模拟量经过AD转换器转换,再由驱动器驱动显示器输出,便得到测量的数字电压。 本次自己的设计作品从各个角度分析了AD转换器组成的数字电压表的设计过程及各部分电路的组成及原理,并且分析了数模转换进而使系统运行起来的原理及方法。通过自己的实践提高了动手能力,也只有亲历亲为才能收获掌握到液晶学过的知识。其实也为建立节约成本的意识有些帮助。本次设计同时也牵涉到了几个问题:精度、位数、速度、还有功耗等不足之处,这些都是要慎重考虑的,这些也是在本次设计中的收获。 1.3 本次设计要求 本次设计的作品要求制作数字电压表的量程为0到10v,由于用到的模数转换芯片是ADC0809,设计系统给的供电电压为+5v,所以能够测量的电压围为-0.25v到5.25v之间,但是一般测量的直流电压围都在这之上,所以采用电阻分压网络,设计的电压测量围是0到25v之间,满足设计要求的最大量程5v的要求。同时设计的精度为小数点后三位,满足要求的两位小数的精度,在不考虑AD芯片的量化误差的前提下,此次设计的精度能够满足一般测量的要求。

2单片机和AD相关知识 2.1 51单片机相关知识 51单片机是对目前所有兼容intel 8031指令系统的单片机的统称。该系列单片机的始祖是intel的8031单片机,后来随着技术的发展,成为目前广泛应用的8为单片机之一。单片机是在一块芯片集成了CPU、RAM、ROM、定时器/计数器和多功能I/O口等计算机所需要的基本功能部件的大规模集成电路,又称为MCU。51系列单片机包含以下几个部件: 一个8位CPU;一个片振荡器及时钟电路; 4KB的ROM程序存储器; 一个128B的RAM数据存储器; 寻址64KB外部数据存储器和64KB外部程序存储空间的控制电路; 32条可编程的I/O口线; 两个16位定时/计数器; 一个可编程全双工串行口; 5个中断源、两个优先级嵌套中断结构。51系列单片机如下图: 图1 51单片机引脚图

基于51单片机的DS18B20数字温度计的实训报告

电子信息职业技术学院 暨国家示性软件职业技术学院 单片机实训 题目:用MCS-51单片机和 18B20实现数字温度计 姓名: 系别:网络系 专业:计算机控制技术 班级:计控 指导教师: * 伟 时间安排:2013年1月7日至 2013年1月11日

摘要 随着国民经济的发展,人们需要对各中加热炉、热处理炉、反应炉和锅炉中温度进行监测和控制。采用单片机来对他们控制不仅具有控制方便,简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大的提高产品的质量和数量。 在日常生活及工业生产过程中,经常要用到温度的检测及控制,温度是生产过程和科学实验中普遍而且重要的物理参数之一。在生产过程中,为了高效地进行生产,必须对它的主要参数,如温度、压力、流量等进行有效的控制。温度控制在生产过程中占有相当大的比例。温度测量是温度控制的基础,技术已经比较成熟。传统的测温元件有热电偶和二电阻。而热电偶和热电阻测出的一般都是电压,再转换成对应的温度,这些方法相对比较复杂,需要比较多的外部硬件支持。我们用一种相对比较简单的方式来测量。 我们采用美国DALLAS半导体公司继DS18B20之后推出的一种改进型智能温度传感器DS18B20作为检测元件,温度围为-55~125 oC,最高分辨率可达0.0625 oC。DS18B20可以直接读出北侧温度值,而且采用三线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点。 本文介绍一种基于AT89C51单片机的一种温度测量及报警电路,该电路采用DS18B20作为温度监测元件,测量围0℃-~+100℃,使用LED模块显示,能设置温度报警上下限。正文着重给出了软硬件系统的各部分电路,介绍了集成温度传感器DS18B20的原理,AT89C51单片机功能和应用。该电路设计新颖、功能强大、结构简单。 关键词:单片机,数字控制,温度计, DS18B20,AT89S51

基于51单片机的电压表的设计

引言 在电量的测量中,电压、电流和频率是最基本的三个被测量,其中电压量的测量最为经常。而且随着电子技术的发展,更是经常需要测量高精度的电压,所以数字电压表就成为一种必不可少的测量仪器。数字电压表简称DVM,它是采用数字化测量技术,把连续的模拟量转换成不连续、离散的数字形式并加以显示的仪表。由于数字式仪器具有读数准确方便、精度高、误差小、测量速度快等特而得到广泛应用[1]。 传统的指针式刻度电压表功能单一,进度低,容易引起视差和视觉疲劳,因而不能满足数字化时代的需要。采用单片机的数字电压表,将连续的模拟量如直流电压转换成不连续的离散的数字形式并加以显示,从而精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC实时通信。数字电压表是诸多数字化仪表的核心与基础[2]。以数字电压表为核心,可以扩展成各种通用数字仪表、专用数字仪表及各种非电量的数字化仪表。目前,由各种单片机和A/D转换器构成的数字电压表作全面深入的了解是很有必要的。 最近的几十年来,随着半导体技术、集成电路(IC)和微处理器技术的发展,数字电路和数字化测量技术也有了巨大的进步,从而促使了数字电压表的快速发展,并不断出现新的类型[3]。数字电压表从1952年问世以来,经历了不断改进的过程,从最早采用继电器、电子管和形式发展到了现在的全固态化、集成化(IC化),另一方面,精度也从0.01%-0.005%。 目前,数字电压表的内部核心部件是A/D转换器,转换的精度很大程度上影响着数字电压表的准确度,因而,以后数字电压表的发展就着眼在高精度和低成本这两个方面[4]。 本文是以简易数字直流电压表的设计为研究内容,本系统主要包括三大模块:转换模块、数据处理模块及显示模块。其中,A/D转换采用ADC0808对输入的模拟信号进行转换,控制核心AT89C51再对转换的结果进行运算处理,最后驱动输出装置LED显示数字电压信号[5]。

基于51单片机及DS18B20温度传感器的数字温度计程序(详细注释)

基于51单片机及DS18B20温度传感器的数字温度计程序(详细注释)

电路实物图如下图所示: C 语言程序如下所示: /******************************************************************** zicreate ----------------------------- Copyright (C) https://www.docsj.com/doc/ab9055228.html, -------------------------- * 程序名; 基于DS18B20的测温系统 * 功 能: 实时测量温度,超过上下限报警,报警温度可手动调整。K1是用来 * 进入上下限调节模式的,当按一下K1进入上限调节模式,再按一下进入下限 * 调节模式。在正常模式下,按一下K2进入查看上限温度模式,显示1s 左右自动 * 退出;按一下K3进入查看下限温度模式,显示1s 左右自动退出;按一下K4消除 * 按键音,再按一下启动按键音。在调节上下限温度模式下,K2是实现加1功能, * K1是实现减1功能,K3是用来设定上下限温度正负的。 * 编程者:Jason * 编程时间:2009/10/2 *********************************************************************/ #include //将AT89X52.h 头文件包含到主程序 #include //将intrins.h 头文件包含到主程序(调用其中的_nop_()空操作函数延时) #define uint unsigned int //变量类型宏定义,用uint 表示无符号整形(16位) #define uchar unsigned char //变量类型宏定义,用uchar 表示无符号字符型(8位) uchar max=0x00,min=0x00; //max 是上限报警温度,min 是下限报警温度 bit s=0; //s 是调整上下限温度时温度闪烁的标志位,s=0不显示200ms ,s=1显示1s 左右 bit s1=0; //s1标志位用于上下限查看时的显示 void display1(uint z); //声明display1()函数 #include"ds18b20.h" //将ds18b20.h 头文件包含到主程序 #include"keyscan.h" //将keyscan.h 头文件包含到主程序 #include"display.h" //将display.h 头文件包含到主程序

51单片机简单数字电压表

毕业论文声明 本人郑重声明: 1.此毕业论文是本人在指导教师指导下独立进行研究取得的成果。除了特别加以标注地方外,本文不包含他人或其它机构已经发表或撰写过的研究成果。对本文研究做出重要贡献的个人与集体均已在文中作了明确标明。本人完全意识到本声明的法律结果由本人承担。 2.本人完全了解学校、学院有关保留、使用学位论文的规定,同意学校与学院保留并向国家有关部门或机构送交此论文的复印件和电子版,允许此文被查阅和借阅。本人授权大学学院可以将此文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本文。 3.若在大学学院毕业论文审查小组复审中,发现本文有抄袭,一切后果均由本人承担,与毕业论文指导老师无关。 4.本人所呈交的毕业论文,是在指导老师的指导下独立进行研究所取得的成果。论文中凡引用他人已经发布或未发表的成果、数据、观点等,均已明确注明出处。论文中已经注明引用的内容外,不包含任何其他个人或集体已经发表或撰写过的研究成果。对本文的研究成果做出重要贡献的个人和集体,均已在论文中已明确的方式标明。

学位论文作者(签名): 年月

关于毕业论文使用授权的声明 本人在指导老师的指导下所完成的论文及相关的资料(包括图纸、实验记录、原始数据、实物照片、图片、录音带、设计手稿等),知识产权归属华北电力大学。本人完全了解大学有关保存,使用毕业论文的规定。同意学校保存或向国家有关部门或机构送交论文的纸质版或电子版,允许论文被查阅或借阅。本人授权大学可以将本毕业论文的全部或部分内容编入有关数据库进行检索,可以采用任何复制手段保存或编汇本毕业论文。如果发表相关成果,一定征得指导教师同意,且第一署名单位为大学。本人毕业后使用毕业论文或与该论文直接相关的学术论文或成果时,第一署名单位仍然为大学。本人完全了解大学关于收集、保存、使用学位论文的规定,同意如下各项内容: 按照学校要求提交学位论文的印刷本和电子版本;学校有权保存学位论文的印刷本和电子版,并采用影印、缩印、扫描、数字化或其它手段保存或汇编本学位论文;学校有权提供目录检索以及提供本学位论文全文或者部分的阅览服务;学校有权按有关规定向国家有关部门或者机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权大学可以将本学位论文的全部或部分内容编入学校有关数据库和收录到《中国学位论文全文数据库》进行信息服务。在不以赢利为目的的前提下,学校可以适当复制论文的部分或全部内容用于学术活动。 论文作者签名:日期: 指导教师签名:日期: 单片机硬件实习任务书

基于51单片机的多功能电子钟设计

基于51单片机的多功能电子钟设计 【摘要】数字电子时钟是人们日常生活中不可或缺的必需品。本文以STC89C52为核心控制芯片,DS12887为时钟芯片,DS18B20为温度传感器,通过液晶显示器LCD1602实时显示时间及温度,通过按键设置年月日和星期以及定时闹钟,定时闹钟时间到自动发出警报。本设计的+5V电源采用LM1117电压转换元件,将电源适配器转换得到的12V电压直接变成5V电压供系统使用。程序的下载则是通过普中科技公司自制的PZ-ISP软件完成。经过测试,系统可以正常完成预定的功能。 【关键词】电子时钟;单片机;DS12887;DS18B20;

Design of Multi-function Clock Based on 51 MCU 【Abstract】Digital electronic clock is an integral, necessary part of daily life.In this paper, STC89C52 chip is used as the core control chip, DS12887chip is used as the clock chip, DS18B20 chip is used as the temperature sensor and LCD1602 was used to diaplay time and temperature。You can set year, month and time alarm clock through the four buttons.When the real time reach to the time clock,the system will warn automatically. The +5V power of the system is supplied by LM1117 voltage conversion device. The 12V voltage get from power adapter was transformed directly into 5V voltage for the system. The download of the process is accomplished through the PZ-ISP software made by Puzhong technology company. After testing, the system can complete the scheduled function normally. 【key words】electronic clock;MCU;DS12887;DS18B20

STC89C51单片机的数字电压表设计

基于STC89C51单片机的数字电压表设计 0 引言 数字电压表的设计和开发已有很多类型和款式,传统的数字电压表有自己的特点,它们适合在现场做手工测量,而要完成远程测量并对测量的数据做进一步处理,运用传统的数字电压表是无法完成的。为此,本文设计了基于PC通信的数字电压表,该表既可以完成测量数据的传递,又可借助PC进行测量数据的处理。所以,这种类型的数字电压表无论在功能和实际应用上,都具有传统数字电压表无法比拟的优点,这使得它的开发和应用都具有良好的前景。 1 系统构成 本系统主要由硬件和软件两部分构成,硬件主要包括数据采集电路,单片机最小数据采集系统,单片机与PC机的接口电路等。软件主要有单片机数据采集程序,单片机与上位机通信程序,以及上位机数据处理程序。 2 数据采集电路原理 该新型数字电压表测量的电压类型为直流,测量范围为0~5 V,下位机采用的单片机为STC89C51,AD转化采用的是最常见的ADC0809,可通过RS232串行口与PC机进行通信,以传送所测量的直流电压数据。图1所示是该数字电压表的数据采集电路。电路的设计已做到了最小化,即没有用任何附加逻辑器件做接口电路,便可实现单片机对ADC0809转换芯片的操作。图1中的ADC0809是8位的模数转化芯片,片内有8路模拟选通开关以及相应的通道锁存译码电路,转化时间大约为100μs左右。在电路应用中,首先要指定ADC0809的数据通道,当外部电压进入芯片后,STATR信号由高到低,在脉冲的下降沿ADC0809开始转换,同时管脚EOC电平变低,表示转化正在进行,转化完成之后,管脚EOC的电平变高,表示一次转化结束。 3 软件编程 本系统的软件程序主要包括下位机数据采集程序、上位机可视化界面程序、单片机与PC 机的串口通信等。单片机可采用C51编程,上位机操作可采用VC++6.0进行可视化编程,这样,在串口调试的时候,就可以借助“串口调试助手”工具,并有效利用这个工具提高,整个系统效率 3.1 单片机编程 单片机在这个系统中所起的作用是控制ADC0809进行数据转化,并将转化的数据通过串口发送到上位机上。因为单片机做数据处理的能力不是很强,所以,将所采集的数据转化量送到PC机上,再利用PC机强大的数据处理能力来进行处理,最后得出想要的结果。因为ADC0809的CLOCK需要外接时钟信号(一般接500 kHz),这个时钟信号频率可以用标准的振荡电路产生,也可以用单片机自带的TO或T1口产生。为了设计的最小化,本设计采用的是自带的TO口来提供时钟信号。其程序如下: 3.2 上位机编程 上位机采用VC++6.0实现可视化界面及与下位机的通信功能。VC++是基于Windows

51单片机数字电压表实验报告

微控制器技术创新设计实验报告 姓名:学号:班级: 一、项目背景 使用单片机AT89C52和ADC0808设计一个数字电压表,能够测量0-5V之间的直流电压值,四位数码显示。在单片机的作用下,能监测两路的输入电压值,用8位串行A/D转换器,8位分辨率,逐次逼近型,基准电压为 5V;显示精度伏。 二、项目整体方案设计 ADC0808 是含8 位A/D 转换器、8 路多路开关,以及与微型计算机兼容的控制逻辑的CMOS组件,其转换方法为逐次逼近型。ADC0808的精度为 1/2LSB。在AD 转换器内部有一个高阻抗斩波稳定比较器,一个带模拟开关树组的256 电阻分压器,以及一个逐次通近型寄存器。8 路的模拟开关的通断由地址锁存器和译码器控制,可以在8 个通道中任意访问一个单边的模拟信号。

三、硬件设计 四、软件设计#include<> #include""

#define uchar unsigned char #define uint unsigned int sbit OE = P2^7; sbit EOC=P2^6; sbit START=P2^5; sbit CLK=P2^4; sbit CS0=P2^0; sbit CS1=P2^1; sbit CS2=P2^2; sbit CS3=P2^3; uint adval,volt; uchar tab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8, 0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E}; void delayms(uint ms) {

基于51单片机多功能电子时钟设计论文报告-毕设论文

单片机课程设计报告 多功能电子数字钟 姓名: 学号: 班级: 指导教师:

目录 一课程设计题目-------------------------------- 3 二电路设计--------------------------------------- 4 三程序总体设计思路概述------------------- 5 四各模块程序设计及流程图---------------- 6 五程序及程序说明见附录------------------- ** 六课程设计心得及体会---------------------- 11 七参考资料--------------------------------------- 12

一题目及要求 本次单片机课程设计在Proteus软件仿真平台下实现,完成电路设计连接,编程、调试,仿真出实验结果。具体要如下:用8051单片机设计扩展6位数码管的静态或动态显示电路,再连接几个按键和一个蜂鸣器报警电路,设计出一个多功能电子钟,实现以下功能: (1)走时(能实现时分秒,年月日的计时) (2)显示(分屏切换显示时分秒和年月日,修改时能定位闪 烁显示) (3)校时(能用按键修改和校准时钟) (4)定时报警(能定点报时) 本次课程设计要求每个学生使用Proteus仿真软件独立设计制作出电路图、完成程序设计和系统仿真调试,验收时能操作演示。最后验收检查 结果,评定成绩分为: (1)完成“走时+显示+秒闪”功能----及格 (2)完成“校时修改”功能----中等 (3)完成“校时修改位闪”----良好 (4)完成“定点报警”功能,且使用资源少----优秀

基于单片机的数字温度计设计开题报告

****大学综合性设计实验 开题报告 ?实验题目:数字温度计的设计 ?学生专业10电气工程与自动化 ?同组人:———————— ?指导老师: 2013年4月

1.国内外现状及研究意义 随着科技的不断发展,现代社会对各种信息参数的准确度和精确度的要求都有了几何级的增长,而如何准确而又迅速的获得这些参数就需要受制于现代信息基础的发展水平。在三大信息信息采集(即传感器技术)、信息传输(通信技术)和信息处理(计算机技术)中,传感器属于信息技术的前沿尖端产品,尤其是温度传感器技术,在我国各领域已经引用的非常广泛,可以说是渗透到社会的每一个领域,人民的生活与环境的温度息息相关,在工业生产过程中需要实时测量温度,在农业生产中也离不开温度的测量,因此研究温度的测量方法和装置具有重要的意义。 测量温度的关键是温度传感器,温度传感器的发展经历了三个发展阶段: ①传统的分立式温度传感器 ②模拟集成温度传感器 ③智能集成温度传感器。 目前的智能温度传感器(亦称数字温度传感器)是在20世纪90年代中期问世的,它是微电子技术、计算机技术和自动测试技术(ATE)的结晶,特点是能输出温度数据及相关的温度控制量,适配各种微控制器(MCU)。社会的发展使人们对传感器的要求也越来越高,现在的温度传感器正在基于单片机的基础上从模拟式向数字式,从集成化向智能化、网络化的方向飞速发展,并朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速发展,本文将介绍智能集成温度传感器DS18B20的结构特征及控制方法,并对以此传感器,AT89S51单片机为控制器构成的数字温度测量装置的工作原理及程序设计作了详细的介绍。与传统的温度计相比,其具有读数方便,测温范围广,测温准确,输出温度采用数字显示,主要用于对测温要求比较准确的场所,或科研实验室使用。该设计控制器使用ATMEL公司的AT89S51单片机,测温传感器使用DALLAS公司DS18B20,用液晶来实现温度显示。 2.方案设计及内容 (一)、方案一 采用热电偶温差电路测温,温度检测部分可以使用低温热偶,热电偶由两个焊接在一起的异金属导线所组成,热电偶产生的热电势由两种金属的接触电势和单一导体的温差电势组成。通过将参考结点保持在已知温度并测量该电压,便可推断出检测结点的温度。数据采集部分则使用带有A/D 通道的单片机,在将随被测温度变化的电压或电流采集过来,进行A/D 转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来。热电偶的优点是工作温度范围非常宽,且体积小,

基于51单片机的数字电压表设计

目录 摘要........................................................................ I 1 绪论. (1) 1.1数字电压表介绍 (1) 1.2仿真软件介绍 (1) 1.3 本次设计要求 (2) 2 单片机和AD相关知识 (3) 2.1 51单片机相关知识 (3) 2.2 AD转换器相关知识 (4) 3 数字电压表系统设计 (5) 3.1系统设计框图 (5) 3.2 单片机电路 (5) 3.3 ADC采样电路 (6) 3.4显示电路 (6) 3.5供电电路和参考电压 (7) 3.6 数字电压表系统电路原理图 (7) 4 软件设计 (8) 4.1 系统总流程图 (8) 4.2 程序代码 (8) 5 数字电压表电路仿真 (15) 5.1 仿真总图 (15) 5.2 仿真结果显示 (15) 6 系统优缺点分析 (16) 7 心得体会 (17) 参考文献 (18)

1 绪论 1.1数字电压表介绍 数字电压表简称DVM,数字电压表基本原理是将输入的模拟电压信号转化为数字信号,再进行输出显示。而A/D转换器的作用是将连续变化的模拟信号量转化为离散的数字信号,器基本结构是由采样保持,量化,编码等几部分组成。因此AD转换是此次设计的核心元件。输入的模拟量经过AD转换器转换,再由驱动器驱动显示器输出,便得到测量的数字电压。 本次自己的设计作品从各个角度分析了AD转换器组成的数字电压表的设计过程及各部分电路的组成及原理,并且分析了数模转换进而使系统运行起来的原理及方法。通过自己的实践提高了动手能力,也只有亲历亲为才能收获掌握到液晶学过的知识。其实也为建立节约成本的意识有些帮助。本次设计同时也牵涉到了几个问题:精度、位数、速度、还有功耗等不足之处,这些都是要慎重考虑的,这些也是在本次设计中的收获。 1.2仿真软件介绍 Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows 操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是: (1)现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。 (2)支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、 A VR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。 (3)提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2等软件。 (4)具有强大的原理图绘制功能。 可以仿真51系列、A VR、PIC、ARM、等常用主流单片机。还可以直接在基于原理图的虚拟原型上编程,再配合显示及输出,能看到运行后输入输出的效果。配合系统配置的

基于51单片机的数字温度计设计

基于51单片机的数字温度计设计 一.课题选择 随着时代的发展,控制智能化,仪器小型化,功耗微量化得到广泛关注。单片机控制系统无疑在这方面起到了举足轻重的作用。单片机的应用系统设计业已成为新的技术热点,其中数字温度计就是一个典型的例子,它可广泛应用与生产生活的各个方面,具有巨大的市场前景。 二.设计目的 1.理解掌握51单片机的功能和实际应用。 2.掌握仿真开发软件的使用。 3.掌握数字式温度计电路的设计、组装与调试方法。 三.实验要求 1.以51系列单片机为核心器件,组成一个数字式温度计。 2.采用数字式温度传感器为检测器件,进行单点温度检测。 3.温度显示采用4位LED数码管显示,三位整数,一位小数。 四.设计思路 1.根据设计要求,选择STC89C51RC单片机为核心器件。 2.温度检测采用DS18B20数字式温度传感器。与单片机的接口为P 3.6引脚。 3.采用usb数据线连接充电宝供电,接电后由按钮开关控制电路供电。 硬件电路设计总体框图为图1: 五.系统的硬件构成及功能 1.主控制器 单片机STC89C51RC具有低电压供电和体积小等特点,有40个引脚,其仿真图像如下图所示:

2.显示电路 显示电路采用4位共阳LED数码管,从P3口RXD,TXD串口输出段码。LED数码管在仿真软件中如下图所示: 3.温度传感器 DS18B20是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。DS18B20的性能特点如下: 1.独特的单线接口仅需一个端口引脚进行通讯。 2.简单的多点分布应用。 3.无需外部器件。 4.可通过数据线供电。 5.零待机功耗。 6.测温范围-55~+125摄氏度。 其电路图如下图所示:

基于51单片机的ADC0832数字电压表(仿真+程序)

仿真图: /*********************************包含头文件********************************/ #include #include /*********************************端口定义**********************************/ sbit CS = P3^5; sbit Clk = P3^3; sbit DATI = P3^4; sbit DATO = P3^4; sbit P20=P2^0 ; /*******************************定义全局变量********************************/ unsigned char dat = 0x00; //AD值 unsigned char count = 0x00; //定时器计数

unsigned char CH; //通道变量 unsigned char dis[] = {0x00, 0x00, 0x00}; //显示数值 /*******************************共阳LED段码表*******************************/ unsigned char code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; char code tablewe[]={ 0xfd,0xfb,0xf7,0xef,0xdf,0xfe }; /**************************************************************************** 函数功能:AD转换子程序 入口参数:CH 出口参数:dat ****************************************************************************/ unsigned char adc0832(unsigned char CH) { unsigned char i,test,adval; adval = 0x00; test = 0x00; Clk = 0; //初始化 DATI = 1; _nop_(); CS = 0; _nop_(); Clk = 1; _nop_(); if ( CH == 0x00 ) //通道选择

51单片机数字钟

目录 1 设计任务与要求................................................... I 2 设计方案 (1) 3 硬件设计 (2) 3.1 AT89C51单片机简介 2 3.2单片机型号的选择 (6) 3.3数码管显示工作原理 (6) 4 软件设计 (7) 4.1主程序模块介绍 (7) 4.2主程序 (7) 5 仿真调试 ........................................ 错误!未定义书签。 5.1K EIL仿真结果................................. 错误!未定义书签。 5.2仿真结果分析 (13) 6 小结 ............................................ 错误!未定义书签。

1 设计任务与要求 1. 设计一个基于单片机的电子时钟,并且能够实现时分秒的现实和调节。 2. 设计出硬件电路。 3. 设计出软件编程方法,并写出源代码。 4. 用PROTEUS进行仿真。 5.用汇方式实现目的。 7.系统的各各功能模块要编语言编实现程序设计。 6.利用查表,中断等清楚,有序。 8.程序运行时有友好的用户界面。 2 设计方案 本设计主要设计了一个基于AT89C51单片机的电子时钟。并在数码管上显示相应的时间。并通过一个控制键用来实现时间的调节和是否进入省电模式的转换。应用Proteus的ISIS软件实现了单片机电子时钟系统的设计与仿真。该方法仿真效果真实、准确,节省了硬件资源。 该设计的硬件部分主要包括89C51多功能接口芯片用于开发电子时钟芯片、LED七段数码显示器用于显示时间、8031集成定时器用于定时、0.125W、8欧姆的扬声器用于定时发声。软件部分包括主程序、定时计数中断程序、时间调整程序、延时程序四大模块。通过中断程序进行定时器计数,时间调整程序是当键按下时间小于1秒,关闭显示(省电)进入调节时间状态,延时程序用于时间的延迟。先设计个秒钟程序,在秒钟程序中先不设计按钮,直接通电运行,使用40H 存放计数值,从00—59,一直循环,把40H中的数值拆分成个位和十位,分别存在30H与31H中,要求动态扫描时,使用21H当标志位,用指令JB控制显示个位与十位,程序中使用中间寄存器R0与R1用于存放拆分后的字型,再传到30H与31H中去,再设计时钟程序。

单片机课程设计—数字温度计

第1章概述 1.1 数字温度计简介 随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。 此次课程设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用,该设计控制器使用单片机AT89S51,测温传感器使用DS18B20,用3位共阳极LED数码管以串口传送数据,实现温度显示,能准确达到以上要求。 1.2 设计内容及要求 本次单片机课程设计将以51系列单片机为核心,以开发板为平台;设计一个数字式温度计,要求使用温度传感器(可以采用DS18B20或采用AD590)测量温度,再经单片机处理后,由LED数码管显示测量的温度值。测温范围为0~100℃,精度误差在0.5℃以内。

第2章系统总体方案设计 2.1数字温度计设计的方案 在做数字温度计的单片机电路中,对信号的采集电路大多都是使用传感器,这是非常容易实现的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。采集之后,通过使用51系列的单片机,可以对数据进行相应的处理,再由LED显示电路对其数据进行显示。 2.2系统设计框图 温度计电路设计总体设计方框图如图 2.1所示,控制器采用单片机AT89S51,温度传感器采用DS18B20,用6位LED数码管以串口传送数据实现温度显示。此外,还添加了报警系统,对温度实施监控。 图2.1 数字温度计框图

C51单片机多功能数字钟C源程序

/*led.h 负责声明全局变量 */ #include #define uchar unsigned char #define uint unsigned int /*各数据在LCD中显示的地址*/ #define Year 0x80+0x00 #define Month 0x80+0x05 #define Day 0x80+0x08 #define Hour 0x80+0x40 #define Munite 0x80+0x43 #define Second 0x80+0x46 #define Weidu 0x80+0x49 /*各数据在LCD中显示的地址*/ /*******各端口定义********/ sbit lcden=P2^6; sbit lcdrs=P2^7; sbit beep=P2^5; sbit key1=P2^0; sbit key2=P2^1; sbit key3=P2^2; sbit key4=P2^3; sbit key5=P2^4; sbit dq=P3^7; /*******各端口定义********/ /*******全局变量声明******/ extern int key_function; extern int key_alarm; extern int h_alarm,m_alarm; extern int idata s,m,h,y,mo,d; extern int idata sc,mc,hc,yc,moc,dc; extern int wei; extern int music; extern int idata date[2][13]; extern uchar timeh,timel; /*******全局变量声明******/ /*******public方法声明****/ void time_cal(); void write_data(uchar date);

(完整版)基于51单片机的数字温度计

硬件课程设计实验报告课题:数字温度计 班级: 作者: 学号: 指导老师: 课设评价: 课设成绩:

目录 一.需求分析 (1) 二.概要设计 (1) 三.硬件电路设计 (3) 四.系统软件设计 (5) 五.软件仿真 (8) 六.实际连接与调试 (9) 七.本次课设的收获与感受 (11) 附录(程序源代码) (12)

一.需求分析 功能要求: 测量环境温度,采用接触式温度传感器测量,用数码管显示温度值。 设计要求: (一)功能要求 (1) 由4位数码管显示当前温度。 (2) 具备报警,报警门限通过键盘设置。 (3) 精度为0.5℃。 (二)画出参考的电路原理图 (三)画出主程序及子程序流程图、画出MCS51内部RAM分配图,并进行适当地解释。 (四)写出实现的程序及实现过程。并进行适当地解释说明。 二.概要设计 (一)方案选择 由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。 (二)系统框图 该系统可分为以下七个模块: (1)控制器:采用单片机STC89C52对采集的温度数据进行处理; (2)温度采集:采用DS18B20直接向控制器传输12位二进制数据; (3)温度显示:采用了4个LED共阴极七段数码管显示实际温度值; (4)门限设置:主要实现模式切换及上下门限温度的调节; (5)报警装置:采用发光二极管进行报警,低于低门限或高于高门限均使其发光; (6)复位电路:对整个系统进行复位; (7)时钟振荡模块:为整个系统提供统一的时钟周期。

51单片机多功能电子时钟

. 常熟理工学院电气与自动化工程学院 《单片机设计与应用》课程设计题目: 51单片机多功能电子时钟 姓名:邓才明 学号: 040111102 班级: 1601112 指导教师: 起止日期:

51单片机多功能电子时钟 邓才明 常熟理工电气与自动化工程学院,20130922 摘要:本设计开发了一款具有日期、时间、星期和气温同步显示功能的电子时钟,并且能设置闹钟、转换农历、显示相关节日.工作原理是主控MCU(AT89C52)读取实时时钟芯片DS12CR887,获取时间信息,由全数字单总线结构温度传感器DS18B20读取温度信息,经MCU处理,送LCD12864显示;利用三线串口控制语音模块WT-588D-20SS可定时读出时间和响应闹铃。 关键字: DS12CR887 DS18B20 WT-588D-20SS 12864 1.方案比较与论证 当下,日历芯片很多,万年历实现方案很多,我们根据自己实际情况,提出如下方案. 1.1时间部分: 方案一、利用单片机内部定时器产生秒信号,通过软件处理得到时间信息,送LCD 显示. 方案二、利用通用串行实时时钟芯片DS1302产生时间信息,利用MCU读取时间信息,送LCD 显示. 方案三、通过实时时钟芯片DS12CR887,获取时间信息,经MCU处理,送LCD显示. 方案一电路结构简单,可控性强,但断电后时间数据完全消失,再次上电后需重新设定,且由于电路本身缺陷和附加干扰较多,时间误差较大.方案二电路结构简单,时间精度较高,由于使用串行数据传输,节省MCU资源,但DS1302无内置电池,掉电后,数据丢失,重新上电后需对时.方案三采用实时时钟芯片DS12CR887,其内部具有内置锂电池,在掉电的情况下可以正常工作10年以上,且带有非易失性RAM,可以保证在掉电的情况下,用户的定时信息不会丢失;带有温度补偿,保证时间数据的准确.经过综合考虑,我们认为方案三满足设计需求. 1.2温度部分 由于只是测量气温,用数字温度传感器单总线结构DS18B20即可满足要求,该器件采用单总线结构,且数字传输,可以与CPU直接接口,电路结构简便,可靠性好. 1.3主控部分 选用单片微控制器AT89C52作为主控.系统方案方框图如图2.1所示

51单片机数字温度计汇编程序

ORG 0000H LJMP MAIN ORG 0100H ;********************************************* DAT BIT P1.0 TEMPER_L EQU 40H TEMPER_H EQU 41H A_BIT EQU 60H B_BIT EQU 61H C_BIT EQU 62H D_BIT EQU 63H ;***主程序**************************************** MAIN: MOV A,#7FH LCALL WRITE_1820 LCALL INIT_1820 LCALL GET_TEMPER LCALL CONVER LCALL DISPLAY LJMP MAIN ;***初始化db18b20**************************************************** INIT_1820: CLR EA INI10: SETB DAT MOV R2,#200 INI11: CLR DAT DJNZ R2,INI11 SETB DAT MOV R2,#30 INT12: DJNZ R2,INT12 CLR C ORL C,DAT JC INI10 MOV R6,#80 INI13: ORL C,DAT JC INI14 DJNZ R6,INI13 SJMP INI10

INI14: MOV R2,#240 INT15: DJNZ R2,INT15 RET ;**读温度子程序********************************************************* GET_TEMPER: MOV A,#0CCH LCALL WRITE_1820 MOV A,#44H LCALL WRITE_1820 SETB DAT LCALL DISPLAY LCALL INIT_1820 MOV A,#0CCH LCALL WRITE_1820 MOV A,#0BEH LCALL WRITE_1820 LCALL READ_1820 MOV TEMPER_L,A LCALL READ_1820 MOV TEMPER_H,A RET ;***写ds18b20的程序*********************************************************** WRITE_1820: CLR EA MOV R3,#8 WR11: SETB DAT MOV R4,#8 RRC A CLR DAT WR12: DJNZ R4,WR12 MOV DAT,C MOV R4,#30 WR13: DJNZ R4,WR13 DJNZ R3,WR11 SETB DAT RET ;***读ds18b20的程序********************************************************************* READ_1820:

相关文档
相关文档 最新文档