593638886应用电子技术毕业设计(论文)基于单片机的温度显示数字时钟设计.doc

上传人:laozhun 文档编号:4146305 上传时间:2023-04-07 格式:DOC 页数:50 大小:1.74MB
返回 下载 相关 举报
593638886应用电子技术毕业设计(论文)基于单片机的温度显示数字时钟设计.doc_第1页
第1页 / 共50页
593638886应用电子技术毕业设计(论文)基于单片机的温度显示数字时钟设计.doc_第2页
第2页 / 共50页
593638886应用电子技术毕业设计(论文)基于单片机的温度显示数字时钟设计.doc_第3页
第3页 / 共50页
593638886应用电子技术毕业设计(论文)基于单片机的温度显示数字时钟设计.doc_第4页
第4页 / 共50页
593638886应用电子技术毕业设计(论文)基于单片机的温度显示数字时钟设计.doc_第5页
第5页 / 共50页
点击查看更多>>
资源描述

《593638886应用电子技术毕业设计(论文)基于单片机的温度显示数字时钟设计.doc》由会员分享,可在线阅读,更多相关《593638886应用电子技术毕业设计(论文)基于单片机的温度显示数字时钟设计.doc(50页珍藏版)》请在三一办公上搜索。

1、江西工业职业技术学院 毕业设计 课题名称: 温度显示数字时钟设计 作 者: 学 号: 分 院: 电子与信息工程 专 业: 应用电子技术 指导老师: 专业技术职务 副教授 2012年 3 月 摘要本设计是基于51系列的单片机进行的实时温度显示和时钟显示设计,可实现温度报警和闹钟功能,具有可调整报警温度和时间功能。在设计的同时对单片机的理论基础和外围扩展知识进行了比较全面准备。时钟显示的设计过程在硬件与软件方面进行同步设计。硬件部分主要由AT89S52单片机,LCD显示电路,以及调时按键电路等组成,系统通过LCD显示数据,所以具有人性化的操作和直观的显示效果。软件方面主要包括时钟程序、键盘程序,显

2、示程序等。本系统以单片机的汇编语言进行软件设计,为了便于扩展和更改,软件的设计采用模块化结构,使程序设计的逻辑关系更加简洁明了,以便更简单地实现调整时间及温度显示功能。所有程序编写完成后,在wave软件中进行调试,确定没有问题后,在Proteus软件中嵌入单片机内进行仿真。关键词:AT89S52; DS18B20; 1602AbstractThe design is based on the 51series single-chip real-time temperature display and clock display design, can realize temperature a

3、larm and alarm clock function, can adjust the alarm temperature and time function. In the design at the same time on a single theoretical basis and peripherally extending knowledge undertook comparative comprehensive preparation.The clock shows the design process of the hardware and software aspects

4、 in synchronous design. The hardware part consists of AT89S52chip, LCD display circuit, as well as the timing circuit and other components, the system through LCD display data, so it has a user-friendly operation and visual display effect. The software mainly includes the clock procedures, keyboard,

5、 display program. This system based on the MCU assembly language for software design, in order to facilitate the expansion and the change, the software design uses the modular structure, make the logic relation of designing program more concise, so that more simply realize the adjustment time and te

6、mperature display function. All programming is completed, in the wave software for debugging, determined that there is no problem, in the Proteus software embedded microcontroller simulation.Key Words:AT89S52; DS18b20; 1602目录1概述32设计方案论证22.1功能要求22.2方案确定42.2.1单片机芯片的选择方案和论证42.2.2显示模块选择方案和论证52.2.3时钟芯片的选

7、择方案和论证52.2.4温度采集模块的选择方案和论证62.2.5电路设计最终方案确定63主控制器和外围器件63.1AT89S52单片机63.2D1602073.2.1 1602芯片介绍73.2.2 1602 的应用83.3 DS18B2083.4 DS18B20介绍93.5 DS18B20应用104硬件设计114.1电路设计框图114.2系统概述114.3电源设计114.4单片机的复位电路124.5单片机系统的晶振电路124.6主电路设计135软件设计155.1主程序设计155.2键盘子程序设计16 5.3时钟子程序设计.165.41602子程序设计175.5DS18B20子程序设计186系统

8、调试256.1软件设计257结论44致谢46参考文献47附录24附录硬件电路图13附录主程序源代码25-1概述在日新月异的21世纪里,家用电子产品得到了迅速发展。许多家电设备都趋于人性化、智能化,这些电器设备大部分都含有CPU控制器或者是单片机。单片机以其高可靠性、高性价比、低电压、低功耗等一系列优点,近几年得到迅猛发展和大范围推广,广泛应用于工业控制系统、通讯设备、日常消费类产品和玩具等。并且已经深入到工业生产的各个环节以及人民生活的各个方面,如车间流水线控制、自动化系统等、智能型家用电器(冰箱、空调、彩电)等。用单片机来控制的小型家电产品具有便携实用,操作简单的特点。液晶在当今的技术是非常

9、成熟的,而且应用在各种方面,如各种显示器件。大到我们工业小到我们小孩子玩的玩具,所有我们这次采用了小液晶屏来显示我们的温度和时间,让我们看的更加简单。18b20也应用的非常广泛,而且非常的简单。时钟,自从它发明的那天起,就成为人类的朋友,但随着时间的推移,科学技术的不断发展,人们对时间计量的精度要求越来越高,应用越来越广。怎样让时钟更好的为人民服务,怎样让我们的老朋友焕发青春呢?这就要求人们不断设计出新型时钟。现今,高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟,石英表,石英钟都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校,数字式电子钟用集成电路计时时,译码代替

10、机械式传动,用LED显示器代替显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时,分,秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。在一个单片机应用系统中,时钟有两方面的含义:一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间,它通常有两种实现方法:一是用软件实现,即用单片机内部的可编程定时/计数器来实现,但误差很大,主要用在对时间精度要求不高的场合;二是用专门的时钟芯片实现,在对时间精度要求很高的情况下,通

11、常采用这种方法,典型的时钟芯片有:DS1302,DS12887,X1203等都可以满足高精度的要求。而在这次的设计中,我并没有用到时钟芯片,因为在我们单片机中用中断的方法就可以准确的计算出时间来,而且误差很小。本文设计的日历和时钟的显示广泛用于小型智能家用电子产品,如电子钟。利用单片机进行控制,外加掉电存储电路和显示电路,可实现时间的调整和显示。电子钟既可广泛应用于家庭,也可应用于银行、邮电、宾馆、医院、学校、企业、商店等相关行业的大厅,以及单位会议室、门卫等场所。因而,此设计具有相当重要的现实意义和实用价值。2设计方案论证2.1功能要求1、能显示年、月、日、时、分、秒、星期2、能对时间进行手

12、动修正3、采用24小时制4、使用1602显示时间参数5、上电后,电子钟显示23:59“402.2方案确定2.2.1单片机芯片的选择方案和论证方案一: 采用89C51芯片作为硬件核心,采用Flash ROM,内部具有4KB ROM 存储空间,能于3V的超低压工作,而且与MCS-51系列单片机完全兼容,但是运用于电路设计中时由于不具备ISP在线编程技术, 当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片造成一定的损坏。方案二:采用AT89S52,片内ROM全都采用Flash ROM;能以3V的超底压工作;同时也与MCS-51系列单片机完全该芯片内部

13、存储器为8KB ROM 存储空间,同样具有89C51的功能,且具有在线编程可擦除技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,不需要对芯片多次拔插,所以不会对芯片造成损坏。所以选择采用AT89S52作为主控制系统.2.2.2显示模块选择方案论证方案一:采用LED液晶显示屏,液晶显示屏的显示功能强大,可显示大量文字,图形,显示多样,清晰可见,但是价格昂贵,需要的接口线多,所以在此设计中不采用LED液晶显示屏。方案二:采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较适合,如采用在显示数字显得太浪费,且价格也相对较高,所以也不用此种作

14、为显示。方案三:采用LED数码管动态扫描,LED数码管价格适中,对于显示数字最合适,而且采用动态扫描法与单片机连接时,占用的单片机口线少。方案四:采用LCD1602液晶显示器,程序不是很复杂,而且电路简单。所以采用方案四2.2.3时钟芯片的选择方案和论证方案一:直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数。采用此种方案虽然减少芯片的使用,节约成本。到达显示的目的。方案二:采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度高,位的RAM做为数据暂存区,工作电压2.5V5

15、.5V范围内,2.5V时耗电小于300nA.但对1320不太熟悉,写程序无法进行2.2.4温度采集方案和论证温度采集目前使用较多的就是18b20了,稳定集成度大,而且程序简单有固定的模块。2.2.5电路设计最终方案确定综上各方案所述,对此次作品的方案选定: 以单片机AT89S52为主控制器,时间数据是通过单片机本身产生,用18b20采集温度信号,并通过1602数码管显示出来,并用键盘来完成对当前时间的调整。3主控制器和外围器件3.1AT89S52单片机AT89S52是一种低功耗、高性能CMOS 8位微控制器,使用 ATMEL 公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全

16、兼容。并具有以下标准功能: 8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。3.21602液晶模块3.2.11602芯片介绍工业字符型液晶,能够同时显示16x02即32个字符。(16列2行) 注:为了表示的方便 ,后文皆

17、以1表示高电平,0表示低电平。 1602液晶也叫1602字符型液晶它是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔每行之间也有间隔起到了字符间距和行间距的作用,正因为如此所以他不能显示图形 (用自定义CGRAM,显示效果也不好) n1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。 n目前市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶

18、。蓝底白字标准型16X2液晶显示字符模块(背光/蓝屏)1602采用标准的16脚接口,其中:第1脚:VSS为地电源第2脚:VDD接5V正电源第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。第6脚:E端为使能端,当E端由高

19、电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。第15脚:背光电源正极第16脚:背光电源负极1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如表1所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A” 。3.2.21602的应用指令集1602通过D0D7的8位数据端传输数据和指令。 显示模式设置: (初始化) 0011 0000 0x38 设置16

20、2显示,57点阵,8位数据接口; 显示开关及光标设置: (初始化) 0000 1DCB D显示(1有效)、C光标显示(1有效)、B光标闪烁(1有效) 0000 01NS N=1(读或写一个字符后地址指针加1 &光标加1),N=0(读或写一个字符后地址指针减1 &光标减1),S=1 且 N=1 (当写一个字符后,整屏显示左移) s=0 当写一个字符后,整屏显示不移动数据指针设置: 数据首地址为80H,所以数据地址为80H+地址码(0-27H,40-67H)其他设置:01H(显示清屏,数据指针=0,所有显示=0);02H(显示回车,数据指针=0)。3.3 DS18b20模块DS18B20数字温度传

21、感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢封装式,型号多种多样,有LTM8877,LTM8874等等。主要根据应用场合的不同而改变其外观。封装后的DS18B20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。 3.3.1DS18B20芯片介绍、 独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。 、测温范围 55+125,固有测温分辨率0.5。 、支持多点

22、组网功能,多个DS18B20可以并联在唯一的三线上,最多只能并联8个,实现多点测温,如果数量过多,会使供电电源电压过低,从而造成信号传输的不稳定。 、工作电源: 35V/DC 、在使用中不需要任何外围元件 、 测量结果以912位数字量方式串行传送 、不锈钢保护管直径 6 、适用于DN1525, DN40DN250各种介质工业管道和狭小空间设备测温 、 标准安装螺纹 M10X1, M12X1.5, G1/2”任选 、PVC电缆直接出线或德式球型接线盒出线,便于与其它电器设备连接。3.3.2 18b20的应用2.1 该产品适用于冷冻库,粮仓,储罐,电讯机房,电力机房,电缆线槽等测温和控制领域 2.

23、2 轴瓦,缸体,纺机,空调,等狭小空间工业设备测温和控制。 2.3 汽车空调、冰箱、冷柜、以及中低温干燥箱等。 2.4 供热/制冷管道热量计量,中央空调分户热能计量和工业领域测温和控制4硬件设计4.1电路设计框图AT89S52主控制模块DS18b20模块LCD1602显示键盘模块复位电路时钟电路4.2系统概述本电路是由AT89S52单片机为控制核心,具有在线编程功能,低功耗,能在3V超低压工作;时钟电路由DS1302提供,它是一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V5.5V。采用三线接口与CPU进行同步通信,

24、并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31*8的用于临时性存放数据的RAM寄存器。可产生年、月、日、周日、时、分、秒,具有使用寿命长,精度高和低功耗等特点,同时具有掉电自动保存功能;显示部份由15个数码管,74Hs138、74ls244构成。使用动态扫描显示方式对数字的显示。硬件的结构和可靠性直接影响着整个系统的可靠性,所以合理的安排电路能提高电子产品的性能。4.3电源设计在这里因设计分工和侧重点不同,电源模块用通用的5v变压器。4.4单片机的复位电路图4-2手动复位电路在系统运行的过程中,有时可能对系统需要进行复位,为了避免对硬件系统经常加电和断电造成

25、的损害,设计了手动的复位电路。如图4-2所示。这种电路的设计,在系统的运行过程中需要复位时,只需使开关闭合,在RST端就会出现一定时间的高电平信号,从而使单片机实现复位。4.5单片机系统的晶振电路单片机必须在时钟的驱动下才能进行工作。MCS-51系列单片机内部都有一个时钟振荡电路,只需外接晶振源,就能产生一定频率的时钟信号送到单片机的内部的各个单元,决定单片机的工作速度。图4-3就是内部时钟工作方式的电路图,这是一种常用的方式。这种方式是外界振荡源,本设计就采用这种外接晶振的方法。电路中的两个电容的作用有两个:一是帮助振荡器起振(C1 C2的值大,起振的速度慢;反之,速度快。);二是对振荡器的

26、频率起到微调的作用(C1 C2的值大,频率略有减少,反之,频率略有提高)。C1 C2的值采用30pF。图4-3单片机内部晶振电路连接图 4.6主电路设计主电路的功能是完成时、分、秒之间的转换,和数据之间的交换传递,再送往lcd显示,并且接受键盘操作,对温度和时间进行校正。电路图5软件设计软件的设计是设计控制系统的应用程序。其任务是在整体设计和硬件设计的基础上,确定程序结构,分配内RAM资源,划分功能模块,然后进行主程序和各模块程序的设计,最后连接起来成为一个完整应用程序,与硬件相结合完成相应功能。5.1主程序设计主程序才用模块化设计,流程图如图5-1所示。程序特性:本程序是一个小闹钟程序,具备

27、红外遥控控制时间调整,并兼有温度显示及温度报警功能,可以控制闹钟的开关,但是没有设置温度报警的开关,当不想让温度报警时,只需要把报警温度调到一个不可能的值,那么,它就不会打扰您了.作用说明:开始初始化T0并开中断初始化T1并关中断寄存器初始化标志位初始化初始化时间调键盘子程序调温度子程序调显示子程序结束寄存器的初始化主要是初始化执行程序时用到的部分RAM空间,防止程序执行时带来混乱。标志位初始化是对时间调整时判断是调分还是调时等而专设的位标志,初始化过程中标志位全部置0,即开始时是处于显示状态,而不是调整状态,这一点在程序中相当明了。初始化时间是开机时显示的时间,并通过调用时钟的写程序来完成时

28、间的置初值。图5-1程序流程图5.2键盘子程序设计K1键显示报警温度和闹钟时间,K2键减小温度报警时间 ,K3键增加温度报警时间 , K4键打开/关闭闹钟,当打开闹钟时,会在时间显示后面多显示一个小喇叭 ,+ 键和L 键用于调整时间的小时,+ 键增加,L 键减小,UP键和menu键用于调整时间的分钟,UP键增加,menu键减小,- 键和R 键用于调整闹钟的小时,K5和K6用于调整闹钟的分钟,具体用法类似于调整时间,在调整闹钟时,请先按K1键,使显示切换到闹钟显示 5.3时钟子程序设计 display1=input1/10+0x30; /秒单位数据处理 display0=input1%10+0x

29、30; display3=input2/10+0x30; /分单位数据处理 display2=input2%10+0x30; display5=input3/10+0x30; /时单位数据处理 display4=input3%10+0x30; lcd_pos(0x46); lcd_wdat(display5); /显示时 lcd_wdat(display4); lcd_wdat(0x3a); /显示: lcd_wdat(display3); /显示分 lcd_wdat(display2); lcd_wdat(0x3a); /显示: lcd_wdat(display1); /显示秒 lcd_wd

30、at(display0); 5.4 1602子程序设计LED1602A液晶显示流程图开 始 对LCD1602A进行初始化 判是否有按键按下 否 扫描按键 延时消抖 首行扫描字R3列扫描送P1 扫描、判行确定键值键值入栈保护键值转化为ASII码,存入寄存器判释放按键 否继续扫描判第七位是否为0否LCD1602A写命令 显 示延 时结 束/ 检查LCD忙状态 lcd_busy为1时,忙,等待。 lcd-busy为0时,闲,可写指令与数据。但是在51单片机中这个可以不用/ bit lcd_busy() bit result; LCD_RS = 0; LCD_RW = 1; LCD_EN = 1; d

31、elayNOP(); result = (bit)(P0&0x80); LCD_EN = 0; return(result); /写指令数据到LCD RS=L,RW=L,E=高脉冲,D0-D7=指令码。/ void lcd_wcmd(unsigned char cmd) / while(lcd_busy(); 1602行驶速度能满足总是闲 LCD_RS = 0; LCD_EN = 0; _nop_(); _nop_(); P0 = cmd; delayNOP(); LCD_EN = 1; delayNOP(); LCD_EN = 0; /写显示数据到LCD,RS=H,RW=L,E=高脉冲,D0

32、-D7=数据。 / void lcd_wdat(unsigned char dat) /while(lcd_busy(); LCD_RS = 1; LCD_EN = 0; P0 = dat; delayNOP(); LCD_EN = 1; delayNOP(); LCD_EN = 0; /自定义字符写入CGRAM void writetab() unsigned char i; lcd_wcmd(0x40); /写CGRAM for (i = 0; i 0; i-) DQ = 0; / 给脉冲信号 dat = 1; DQ = 1; / 给脉冲信号 if(DQ) dat |= 0x80; Del

33、ay(4); return (dat); /*/ WriteOneChar(unsigned char dat)/写一个字节 unsigned char i = 0; for (i = 8; i 0; i-) DQ = 0; DQ = dat&0x01; Delay(5); DQ = 1; dat=1; /*/ Read_Temperature(void)/读取温度 Init_DS18B20(); if(presence=1) flash(); /DS18B20不正常, else WriteOneChar(0xCC); / 跳过读序号列号的操作 WriteOneChar(0x44); / 启动

34、温度转换 Init_DS18B20(); WriteOneChar(0xCC); /跳过读序号列号的操作 WriteOneChar(0xBE); /读取温度寄存器 temp_data0 = ReadOneChar(); /温度低8位 temp_data1 = ReadOneChar(); /温度高8位 6系统调试单片机系统经过总体设计,完成了硬件和软件设计开发。通过软件和硬件相结合系统即可运行。但编制好的程序或焊接好的线路不能按预计的那样正常工作是常见的事,经常会出现一些硬件、软件上的错误,这是软件和硬件开发者经常遇见的,这就需要通过调试来发现错误并加以改正。调试可分为硬件调试和软件调试。本设

35、计系统的已经在PC机上用模拟开发软件进行了检测和调试,并运行成功,最后进行实物图的硬件组装与调试,这样就给开发者在提供了方便。6.1软件设计#include #include sbit DQ = P25; /定义DS18B20端口DQ sbit K1 = P14; sbit K2 = P15; sbit K3 = P16; sbit K4 = P17; sbit fu=P37; sbit LCD_RS = P26; sbit LCD_EN = P27; sbit IRIN = P32; /红外遥控 unsigned char IRDIS2; unsigned char IRCOM4; void delay0(unsigned char x); /x*0.14MS void flash(); /刷新程序

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号