课程设计(论文)多功能数字电压表、万年历和温度测试器_第1页
课程设计(论文)多功能数字电压表、万年历和温度测试器_第2页
课程设计(论文)多功能数字电压表、万年历和温度测试器_第3页
课程设计(论文)多功能数字电压表、万年历和温度测试器_第4页
课程设计(论文)多功能数字电压表、万年历和温度测试器_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

1、摘 要本设计是多功能数字电压表、万年历和温度测试器,随着电子科学技术的发展,电子测量成为广大电子工作者必须掌握的手段,对测量的精度和功能的要求也越来越高,而电压的测量甚为突出,因为电压的测量最为普遍。本设计在参阅了大量前人设计的数字电压表的基础上介绍一种基于89s52单片机的一种电压测量电路,该电路采用分a/d转换电路,测量范围直流0-5伏,万年历可显示月、日、时、分、秒,温度计可显示现场周围温度,使用lcd液晶模块显示。正文着重给出了软硬件系统的各部分电路,介绍了89s52的特点,lcd1602的功能和应用,ds1302的功能和应用,ds18b20的功能和应用。该电路设计新颖、功能强大、可扩

2、展性强。本文首先简要介绍了设计电压表、万年历、温测的主要方式以及单片机系统的优势;然后详细介绍了直流数字电压、表万年历、温测的设计流程,以及硬件系统和软件系统的设计,并给出了硬件电路的设计细节,包括各部分电路的走向、芯片的选择以及方案的可行性分析等。通过这努力,另外通过同学的帮助,我做成了这个多功能数字电压表,将程序键入可以显示0-5的不同电压值,可以显示月、日、时、分、秒,现场温度。而且还能通过键位调整万年历。通过此次课程设计使我对我们所学的知识有了更深的认识和体会,对自我动手的能力也提高了很多。本论文重点介绍单片机的数字电压表、万年历、温测的工作原理。目录1 绪论1.1课程设计的目的和意义

3、1.2国内外研究现状1.3本课题所作的主要工作2 系统总体方案2.1课程设计总体方案2.2课程设计系统环境3 系统硬件设计3.1硬件总体方案与选型3.2 硬件模块设计4 软件设计4.1数字电压表4.2万年历4.3 温度检测5软硬件联调6总结6.1 设计中遇到的问题和解决方案6.2 对本次设计的展望参考文献附1:源程序代码附2:系统原理图1 概述1.1课程设计的目的和意义:本次课程设计,让我学习和巩固了使用单片机的定时中断、基本的常用的寄存器的使用方法,还有就是学习常用的外围硬件使用、电路原理图设计、pcb设计等等。使我对已学过的基础知识有了更深入的理解,独立思考、独立工作以及应用所学基本理化分

4、析和解决实际问题的能力有了很大的提高。1.2国内外研究现状目前,市场上的主要使用的电压表有:指针式电压表和数字电压表两种。由于传统的指针式电压表功能单一、精度低,不能满足数字化时代的需求,因此,采用单片机的数字电压表,由精度高、抗干扰能力强,可扩展性强、集成方便,还可与pc进行实时通信等优点已使数字电压表成为现在电子测量的主要应用产品。同时,由数字电压表扩展而成的各种通用及专用数字仪器仪表。随着我国交流数字电压表市场的迅猛发展,与之相关的核心生产技术应用与研发必将成为业内企业关注的焦点。利用ad转换芯片设计的数字电压表将模拟信号转换为数字显示部分,这在生产运用中有很大的实际意义,今后这方面的技

5、术将得到提高,运用更加广泛。近些年我国开始重视对电子万年历的开发与设计,但是中国电子万年历产业出现的问题中,许多不容乐观,如产业结构不合理、产业集中于劳动力密集型产品;技术密集型产品明显落后于发达工业国家;生产要素决定性作用正在削弱;产业能源消耗大、产出率低、环境污染严重、对自然资源破坏力大;企业总体规模偏小、技术创新能力薄弱、管理水平落后等。目前的智能温度传感器(亦称数字温度传感器)是在20世纪90年代中期问世的,它是微电子技术、计算机技术和自动测试技术(ate)的结晶,特点是能输出温度数据及相关的温度控制量,适配各种微控制器(mcu)。社会的发展使人们对传感器的要求也越来越高,现在的温度传

6、感器正在基于单片机的基础上从模拟式向数字式,从集成化向智能化、网络化的方向飞速发展,并朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速发展。1.3本课题所作的主要工作 通过查阅资料完成对数字电压表将程序键入可以显示0-5的不同电压值;万年历显示月、日、时、分、秒;温度测试显示现场实际温度的完成。2 系统总体方案2.1课程设计总体方案单片机a/d转换器ad574a电压显示器模拟电压输入量程控制电路系统总框图单片机at89c52和adc0809设计一个数字电压表,能够测量05v之间的直流电压值,两位数码显示。重点负责单片机at89c5

7、2硬件部分的功能及应用。at89s52是一个低功耗,高性能cmos 8位单片机,片内含8k bytes isp(in-system programmable)的可反复擦写1000次的flash只读程序存储器,器件采用atmel公司的高密度、非易失性存储技术制造,兼容标准mcs -51指令系统及80c51引脚结构,芯片内集成了通用8位中央处理器和isp flash存储单元,功能强大的微型计算机的at89s52可为许多嵌入式控制应用系统提供高性价比的解决方案。设计方框图如下温度测试与万年历采用数字温度芯片ds18b20 测量温度,输出信号全数字化。便于单片机处理及控制,省去传统的测温方法的很多外围

8、电路。且该芯片的物理化学性很稳定,它能用做工业测温元件,此元件线形较好。在0100 摄氏度时,最大线形偏差小于1 摄氏度。ds18b20 的最大特点之一采用了单总线的数据传输,由数字温度计ds18b20和微控制器at89s51构成的温度测量装置,它直接输出温度的数字信号,可直接与计算机连接。这样,测温系统的结构就比较简单,体积也不大。采用51 单片机控制,软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制,而且体积小,硬件实现简单,安装方便。既可以单独对多ds18b20。该系统利用at89s51芯片控制温度传感器ds18b20进行实时温度检测并显示,能够实现快速测量环境温度,并可以

9、根据需要设定上下限报警温度。该系统扩展性非常强,它可以在设计中加入时钟芯片ds1302以获取时间数据,在数据处理同时显示时间。2.2课程设计系统环境keil c51软件调试环境或wave调试程序3 系统硬件设计3.1硬件总体方案与选型(1)at89s52at89s52是一种低功耗、高性能cmos8位微控制器,具有 8k在系统可编程flash存储器。使用atmel公司高密度非易失性存储器技术制造,与工业80c51 产品指令和引脚完全兼容。at89s52具有以下标准功能: 8k字节flash,256字节ram, 32位i/o 口线,2个数据指针,三个16位定时器/计数器,5个中断优先级2层中断嵌套

10、中断,全双工串行口, 片内晶振及时钟电路。另外,at89s52可降至0hz静态逻辑操作,支持2种软件,可选择节电模式。空闲模式下,cpu 停止工作,允许ram、定时器/计数器、串口、中断继续工作。掉电保护方式下,ram内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。单片机引脚结果及说明如图1-1所示图1-1vcc:供电电压。gnd:接地。p0口:p0口为一个8位漏级开路双向i/o口,每脚可吸收8ttl门电流。当p1口的管脚第一次写1时,被定义为高阻输入。p0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在fiash编程时,p0 口作为原码输入口,当f

11、iash进行校验时,p0输出原码,此时p0外部必须被拉高。p1口:p1口是一个内部提供上拉电阻的8位双向i/o口,p1口缓冲器能接收输出4ttl门电流。p1口管脚写入1后,被内部上拉为高,可用作输入,p1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在flash编程和校验时,p1口作为第八位地址接收。 p2口:p2口为一个内部上拉电阻的8位双向i/o口,p2口缓冲器可接收,输出4个ttl门电流,当p2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,p2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。p2口当用于外部程序存储器或16位地址外部数据存储

12、器进行存取时,p2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,p2口输出其特殊功能寄存器的内容。p2口在flash编程和校验时接收高八位地址信号和控制信号。p3口:p3口管脚是8个带内部上拉电阻的双向i/o口,可接收输出4个ttl门电流。当p3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,p3口将输出电流(ill)这是由于上拉的缘故。p3口也可作为at89c51的一些特殊功能口,如下所示:p3.0 rxd(串行输入口)p3.1 txd(串行输出口)p3.2 /int0(外部中断0)p3.3 /int1(

13、外部中断1)p3.4 t0(记时器0外部输入)p3.5 t1(记时器1外部输入)p3.6 /wr(外部数据存储器写选通)p3.7 /rd(外部数据存储器读选通)p3口同时为闪烁编程和编程校验接收一些控制信号。rst:复位输入。当振荡器复位器件时,要保持rst脚两个机器周期的高电平时间。ale/prog:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在flash编程期间,此引脚用于输入编程脉冲。在平时,ale端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ale脉冲。

14、如想禁止ale的输出可在sfr8eh地址上置0。此时,ale只有在执行movx,movc指令是ale才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ale禁止,置位无效。psen:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/psen有效。但在访问外部数据存储器时,这两次有效的/psen信号将不出现。ea/vpp:当/ea保持低电平时,则在此期间外部程序存储器(0000h-ffffh),不管是否有内部程序存储器。注意加密方式1时,ea将内部锁定为reset;当ea端保持高电平时,此间内部程序存储器。在flash编程期间,此引脚也用于施加12v编程电源。xt

15、al1:反向振荡放大器的输入及内部时钟工作电路的输入。 xtal2:来自反向振荡器的输出。xtal1和xtal2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,xtal2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。(2)8位a/d转换器芯片adc0809dc0809是带有8位a/d转换器、8路多路开关以及微处理机兼容的控制逻辑的cmos组件。它是逐次逼近式a/d转换器,可以和单片机直接接口。adc0809的主要特性 1) 它是具有8路模拟量输入

16、、8位数字量输出功能的a/d转换器。 2) 转换时间为100s。 3) 模拟输入电压范围为0v+5v,不需零点和满刻度校准。 4)低功耗,约15mw。引脚结构 图12所示 图12adc0809主要信号引脚的功能如下:in0in7:8条模拟量输入通道ale地址锁存允许信号。对应ale上跳沿,a、b、c地址状态送入地址锁存器中。start转换启动信号。start上升沿时,复位adc0809;start下降沿时启动芯片,开始进行a/d转换;在a/d转换期间,start应保持 低电平。本信号有时简写为st.a、b、c地址线。 通道端口选择线,a为低地址,c为高地址,引脚图中为adda,addb和add

17、c。其地址状态与通道对应关系见表9-1。clk时钟信号。adc0809的内部没有时钟电路,所需时钟信号由外界提供,因此有时钟信号引脚。通常使用频率为500khz的时钟信号eoc转换结束信号。eoc=0,正在进行转换;eoc=1,转换结束。使用中该状态信号即可作为查询的状态标志,又可作为中断请求信号使用。d7d0数据输出线。为三态缓冲输出形式,可以和单片机的数据线直接相连。d0为最低位,d7为最高oe输出允许信号。用于控制三态输出锁存器向单片机输出转换得到的数据。oe=0,输出数据线呈高阻;oe=1,输出转换得到的数据。vcc +5v电源。vref参考电源参考电压用来与输入的模拟信号进行比较,作

18、为逐次逼近的基准。其典型值为+5v(vref(+)=+5v, vref(-)=-5v).adc0809应用说明1) adc0809内部带有输出锁存器,可以与at89s51单片机直接相连。2) 初始化时,使st和oe信号全为低电平。3) 送要转换的哪一通道的地址到a,b,c端口上。4) 是否转换完毕,根据eoc信号来判断。5) 当eoc变为高电平时,这时给oe为高电平,转换的数据就输出给单片机了。 (3)lcd1602液晶显示器各种图形的显示原理 线段的显示:点阵图形式液晶由mn个显示单元组成,假设lcd显示屏有64行,每行有128列,每8列对应1字节的8位,即每行由16字节,共168=128个

19、点组成,屏上6416个显示单元与显示ram区1024字节相对应,每一字节的内容和显示屏上相应位置的亮暗对应。例如屏的第一行的亮暗由ram区的000h00fh的16字节的内容决定,当(000h)=ffh时,则屏幕的左上角显示一条短亮线,长度为8个点;当(3ffh)=ffh时,则屏幕的右下角显示一条短亮线;当(000h)=ffh,(001h)=00h,(002h)=00h,(00eh)=00h,(00fh)=00h时,则在屏幕的顶部显示一条由8段亮线和8条暗线组成的虚线。这就是lcd显示的基本原理。字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式lcd,目前常用16*1,16*2,20

20、*2和40*2行等的模块。下面以长沙太阳人电子有限公司的1602字符型液晶显示器为例,介绍其用法。一般1602字符型液晶显示器实物如图1602lcd的基本参数及引脚功能 1602lcd分为带背光和不带背光两种,基控制器大部分为hd44780,带背光的比不带背光的厚,是否带背光在应用中并无差别,两者尺寸差别如下图lcd1602主要技术参数:显示容量:162个字符芯片工作电压:4.55.5v工作电流:2.0ma(5.0v)模块最佳工作电压:5.0v字符尺寸:2.954.35(wh)mm引脚功能说明1602lcd采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表编号符号引脚说明编号

21、符号引脚说明1vss电源地9d2数据2vdd电源正极10d3数据3vl液晶显示偏压11d4数据4rs数据/命令选择12d5数据5r/w读/写选择13d6数据6e使能信号14d7数据7d0数据15bla背光源正极8d1数据16blk背光源负极 表1 引脚接口说明表第1脚:vss为地电源。第2脚:vdd接5v正电源。第3脚:vl为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10k的电位器调整对比度。第4脚:rs为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:r/w为读写信号线,高电平时进行读操作,低电平时进行写

22、操作。当rs和r/w共同为低电平时可以写入指令或者显示地址,当rs为低电平r/w为高电平时可以读忙信号,当rs为高电平r/w为低电平时可以写入数据。第6脚:e端为使能端,当e端由高电平跳变成低电平时,液晶模块执行命令。第714脚:d0d7为8位双向数据线。第15脚:背光源正极。第16脚:背光源负极。其与单片机的连接如下图所示(4)74hc393该74hct393是高速硅栅cmos器件并具有低功耗肖特基针ttl兼容(输入通道)。他们是在符合jedec规定 标准号 7a条。该74ht393是4位独立时钟(件1cp和2 cp)和主复位(1mr和2mr)每个二进制计数器输入涟波计数器。对每个“393”

23、一半的运作是一样的“93”只是没有外部时钟时,连接需要相同。触发的计数器的时钟输入的高电平到低电平的转换。计数器输出内部连接提供时钟输入阶段。纹波计数器的输出不同步变化,不应被用于高速地址解码。主复位是每4位计数器由“1”和“2”在引脚说明确定高电平异步输入。关于核磁共振输入高电平覆盖时钟,并设置输出低。引脚结构 图13所示图1-3、引脚配置 引脚说明:编号符号名称和功能1, 131cp, 2cp时钟输入(高电平到低电平,边缘触发)2, 121mr, 2mr异步主复位输入端(高电平有效)3, 4, 5, 6, 11, 10, 9, 81q0 to 1q3, 2q0 to 2q3触发器输出7gn

24、d接地14vcc正电源电压(5)ds1302 ds1302 是美国dallas公司推出的一种高性能、低功耗、带ram的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5v5.5v。采用三线接口与cpu进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或ram数据。ds1302内部有一个318的用于临时性存放数据的ram寄存器。ds1302是ds1202的升级产品,与ds1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。引脚功能及结构图1示出ds1302的引脚排列,其中vcc1为后备电源,vcc2为主电

25、源。在主电源关闭的情况下,也能保持时钟的连续运行。ds1302由vcc1或vcc2两者中的较大者供电。当vcc2大于vcc10.2v时,vcc2给ds1302供电。当vcc2小于vcc1时,ds1302由vcc1供电。x1和x2是振荡源,外接32.768khz晶振。rst是复位/片选线,通过把rst输入驱动置高电平来启动所有的数据传送。rst输入有两种功能:首先,rst接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,rst提供终止单字节或多字节数据的传送手段。当rst为高电平时,所有的数据传送被初始化,允许对ds1302进行操作。如果在传送过程中rst置为低电平,则会终止此次数据传送,i

26、/o引脚变为高阻态。上电运行时,在vcc2.5v之前,rst必须保持低电平。只有在sclk为低电平时,才能将rst置为高电平。i/o为串行数据输入输出端(双向),后面有详细说明。sclk始终是输入端。 ds1302的控制字节 ds1302 的控制字如图2所示。控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入ds1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取ram数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。 数据输入输出(i/o) 在控制指令字输入后的下一个sclk时钟的上升

27、沿时,数据被写入ds1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个sclk脉冲的下降沿读出ds1302的数据,读出数据时从低位0位到高位7ds1302的寄存器 ds1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为bcd码形式,其日历、时间寄存器及其控制字见表1。 此外,ds1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与ram相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。 ds1302与ram相关的寄存器分为两类:一类是单个ram单元,共31个,每个单元组态为一个8位的字节,其命令控制字为c

28、0hfdh,其中奇数为读操作,偶数为写操作;另一类为突发方式下的ram寄存器,此方式下可一次性读写所有的ram的31个字节,命令控制字为feh(写)、ffh(读)。 ds1302的内部结构各引脚的功能为: vcc1:主电源;vcc2:备份电源。当vcc2vcc1+0.2v时,由vcc2向ds1302供电,当vcc2 vcc1时,由vcc1向ds1302供电。 sclk:串行时钟,输入,控制数据的输入与输出; i/o:三线接口时的双向数据线; ce:输入信号,在读、写数据期间,必须为高。该引脚有两个功能:第一,ce开始控制字访问移位寄存器的控制逻辑;其次,ce提供结束单字节或多字节数据传输的方法

29、。(6)ds18b20dallas最新单线数字温度传感器ds18b20简介新的一线器件体积更小、适用电压更宽、更经济 dallas 半导体公司的数字化温度传感器ds1820是世界上第一片支持 一线总线接口的温度传感器。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。ds18b20、 ds1822 一线总线数字化温度传感器 同ds1820一样,ds18b20也 支持一线总线接口,测量温度范围为 -55c+125c,在-10+85c范围内,精度为0.5c。ds1822的精度较差为 2c 。现场温度直接以一线总线的数字方式传输,大大提高了系统的抗干扰性。适合于

30、恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。与前一代产品不同,新的产品支持3v5.5v的电压范围,使系统设计更灵活、方便。而且新一代产品更便宜,体积更小。 ds18b20、 ds1822 的特性 ds18b20可以程序设定912位的分辨率,精度为0.5c。可选更小的封装方式,更宽的电压适用范围。分辨率设定,及用户设定的报警温度存储在eeprom中,掉电后依然保存。ds18b20的性能是新一代产品中最好的!性能价格比也非常出色! ds1822与 ds18b20软件兼容,是ds18b20的简化版本。省略了存储用户定义报警温度、分辨率参数的eeprom,精度降低为2c

31、,适用于对性能要求不高,成本控制严格的应用,是经济型产品。 继一线总线的早期产品后,ds1820开辟了温度传感器技术的新概念。ds18b20和ds1822使电压、特性及封装有更多的选择,让我们可以构建适合自己的经济的测温系统。ds18b20的新性能 1)可用数据线供电,电压范围:3.05.5v; 2)测温范围:-55+125,在-10+85时精度为0.5; 3)可编程的分辨率为912位,对应的可分辨温度分别为0.5、0.25、0.125和0.0625; 4)12位分辨率时最多在750ms内把温度值转换为数字; 5)负压特性:电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。 ds18b2

32、0的外形和内部结构ds18b20内部结构主要由四部分组成:64位光刻rom、温度传感器、非挥发的温度报警触发器th和tl、配置寄存器。ds18b20的管脚排列如下: ds18b20外形图 引脚定义: 1) dq为数字信号输入/输出端; 2) gnd为电源地; 3) vdd为外接供电电源输入端(在寄生电源接线方式时接地)。 内部结构 ds18b20内部结构图 ds18b20有4个主要的数据部件: 1)光刻rom中的64位序列号是出厂前被光刻好的,它可以看作是该ds18b20的地址序列码。64位光刻rom的排列是:开始8位(28h)是产品类型标号,接着的48位是该ds18b20自身的序列号,最后8

33、位是前面56位的循环冗余校验码(crc=x8+x5+x4+1)。光刻rom的作用是使每一个ds18b20都各不相同,这样就可以实现一根总线上挂接多个ds18b20的目的。 2)ds18b20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625/lsb形式表达,其中s为符号位。 表 6-1 ds18b20温度值格式表 这是12位转化后得到的12位数据,存储在18b20的两个8比特的ram中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需

34、要取反加1再乘于0.0625即可得到实际温度。 例如+125的数字输出为07d0h,+25.0625的数字输出为0191h,-25.0625的数字输出为ff6fh,-55的数字输出为fc90h。 表6-2 ds18b20温度数据表 3)ds18b20温度传感器的存储器 ds18b20温度传感器的内部存储器包括一个高速暂存ram和一个非易失性的可电擦除的eepram,后者存放高温度和低温度触发器th、tl和结构寄存器。 4)配置寄存器 该字节各位的意义如下: 表6-3 配置寄存器结构tmr1r011111低五位一直都是1 ,tm是测试模式位,用于设置ds18b20在工作模式还是在测试模式。在ds

35、18b20出厂时该位被设置为0,用户不要去改动。r1和r0用来设置分辨率,如下表所示:(ds18b20出厂时被设置为12位)分辨率设置表: 表6-4 温度值分辨率设置表r1r0分辨率温度最大转换时间009位93.75ms0110位187.5ms1011位375ms1112位750ms3.2 硬件模块设计1)数字电压模块设计方框图如下单片机a/d转换器电压显示器模拟电压输入量程控制电路系统总框图原理接线图如下2)万年历与温测模块原理接线图如下4 软件设计4.1数字电压表 我们采用c语言编程,通过定时器0计时实现显示时间功能,通过串口中断实现上位机对下位机的模式切换功能。通过键盘扫描和扫描处理函数

36、,实现键盘的模式切换功能。同时我们还设计了浮点数显示处理函数,采样函数,交流采集电压峰峰值函数,显示交流周期和峰峰值函数。这些函数的组合,实现了电压表功能的完善。4.2万年历万年历总流程图系统软件设计总流程图4.3 温度检测温度检测总流程图ds18b20在单片机控制下分三个阶段:18b20 初始化:初始化流程图见读18b20时序:读ds18b20流程见图 4.1:写18b20时序:写18b20 流程见图 4.2图 4.1读ds18b20流程图 图 4.2写ds18b20流程图5软硬件联调6总结6.1 设计中遇到的问题和解决方案6.2 对本次设计的展望参考文献附录1:源程序代码1) 数字电压表程

37、序 #include/头文件 #define uchar unsigned char /#define uint unsigned int / *adc* /=adc0809=相关管脚设置以及变量定义=sbit adc_st=p30;sbit adc_oe=p31; sbit adc_eoc=p32;sbit adc_clk=p33;uint adc_xianshi;float adc_number,adc_shiji ;/ =1602=/=1602管脚设置及变量定义=uchar code table=cuilongfei!;uchar qian,bai,shi,ge;sbit lcden=p

38、34;sbit lcdrs=p35;uchar num; /= sbit led=p20;/ *延时程序* / / * /=毫秒级的延时程序=void delayms(uint xms)uint i,j;for(i=xms;i0;i-)for(j=115;j0;j-);/=微秒级的延时程序=void delayus(unsigned int i)while(i-);/=/=1602写命令子程序=void write_com(uchar com)lcdrs=0; /rs=0;p1=com; /p1delayms(5);lcden=1; /en=1;delayms(5);lcden=0;/=160

39、2写数据子程序=void write_data(uchar date)lcdrs=1;p1=date;delayms(5);lcden=1;delayms(5);lcden=0;/=1602初始化子程序=/=void init()lcden=0;write_com(0x38); /write_com(0x0c);write_com(0x06);write_com(0x01);/=adc=/=adc0809显示数据的处理=void adc_display()qian=adc_xianshi/1000;bai=adc_xianshi%1000/100;shi=adc_xianshi%100/10;

40、ge=adc_xianshi%100%10;/=adc初始化=void adc_main() adc_st=0;delayus(5);adc_st=1;delayus(5);adc_st=0;delayus(5);while(adc_eoc=0); / eoc=1;转换结束adc_oe=1;delayus(5);adc_number=p0;delayus(5);adc_oe=0;delayus(5);delayus(5);adc_shiji=(5.0*adc_number)/250.0;adc_xianshi=adc_shiji*1000;delayus(5);/=main=/=主函数=voi

41、d main() init(); /1602初始化 write_com(0x80); /1602第一排显示命令 for(num=0;num11;num+) /显示崔龙飞 write_data(tablenum);delayms(20); while(1) /循环函数 led=0;adc_main(); /adc初始化adc_display();/adc数据处理write_com(0x80+0x40);/1602第二排显示命令/=显示测量的电压值=write_data(0x30+qian);delayms(20);write_data(0x30+bai); delayms(20);write_d

42、ata(0x30+shi);delayms(20); write_data(0x30+ge);delayms(20);/=mv显示=write_data(m);delayms(20);write_data(v);delayms(20);led=1;delayms(500);2)万年历程序 #include#define uchar unsigned char#define uint unsigned intuint num,num1,num2,num3;char sec=50,min=1,hour=10,date=2,month=12,year=98;/注意:hour不能送24负责错误!/ *

43、ds1302* /sbit ds_sclk=p11;sbit ds_io=p12;sbit ds_rst=p13;uchar ds13028=0,0,0,0,0,0,0,0; /秒,分,时,日,月,星期,年uchar datebit8=0,0,0,0,0,0,16,0; /日期各位显示的数值uchar timebit8=0,0,16,0,0,16,0,0; /时间各位显示的数值uchar bitcode=0x80; /数码管位码初值/ *1602* /uchar code table=cuilongfei!;/uchar code table1=www.txmcu.com;uchar code

44、 table=cuilongfei!;sbit lcden=p34;sbit lcdrs=p35;/ *按键位定义* /sbit k1=p14;sbit k2=p15;sbit k3=p16;sbit k4=p17;uchar timeflag=1;uchar temp=0x0f;uchar dnum=0; /= sbit led=p20;/ *延时程序* / / * /void delay(uint z)uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);void write_com(uchar com)lcdrs=0;p0=com;delay(5);lcden=

45、1;delay(5);lcden=0;void write_data(uchar date)lcdrs=1;p0=date;delay(5);lcden=1;delay(5);lcden=0;void init()lcden=0;write_com(0x38);write_com(0x0e);write_com(0x06);write_com(0x01);/ * / *向ds1302 写一字节数据,address 为命令字节void delayms(uint xms)uint i,j;for(i=xms;i0;i-)for(j=115;j0;j-);void writebyte(uchar command,uchar writedata) uchar j,k=1; ds_rst=0; ds_sclk=0;/_low; ds_rst=1;/_high; for(j=0;j=7;j+) if(command&k) ds_io=1;/_high; else ds_io=0; /_low; ds_sclk=1;/_high; k

温馨提示

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

评论

0/150

提交评论