单片机多功能时钟系统毕业设计_第1页
单片机多功能时钟系统毕业设计_第2页
单片机多功能时钟系统毕业设计_第3页
单片机多功能时钟系统毕业设计_第4页
单片机多功能时钟系统毕业设计_第5页
已阅读5页,还剩83页未读 继续免费阅读

下载本文档

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

文档简介

1、 摘要随着社会快速的发展,人们的生活节奏变得越来越快,人们对时间观念也愈来愈重视。自动化、智能化技术的发展,机电产品的智能度愈来愈高,用到时间提示、定时控制的地方也会愈来愈多,因此,设计开发数字时钟具有良好的应用前景。由于单片机价格的低成本、高性能,在自动控制产品中得到了广泛的应用。本文以stc89c52为核心控制芯片,ds1302为时钟芯片,ds18b20为温度传感器,通过液晶显示器ampire128x64实时显示时间及温度,通过按键设置年月日和星期以及定时闹钟,定时闹钟时间到自动发出警报,应用c语言进行软件编程,并用altium designer summer 09软件进行演示、验证。经过

2、测试,系统可以正常完成预定的功能。关键词:单片机 stc89c52 电子时钟 c语言iiabstractwith rapid development of society, people's life rhythm becomes faster and faster, people to the concept of time is also more and more attention. automation, intelligent technology development, the intelligence degree of mechanical and electron

3、ic products become more and more high, use time reminder, timing control will be more and more, therefore, design and develop digital clock has a good application prospect.because of the price of low-cost, high-performance microcontroller, has been widely used in automatic control of the products. w

4、ith stc89c52 as the core control chip, this paper ds1887 for the clock chip, ds18b20 as temperature sensor, through the lcd display ampite128x64 real-time display of time and temperature, through the button and set the date and week timing alarm clock, timer alarm clock time to alert automatically,

5、using c language for software programming, using altium designer summer 09 for demonstration, software validation. program download by general technology of pz - isp software made by the company to complete. after the test, the system can accomplish the functions normally. key words: single chip mic

6、rocomputer c language stc89c52 electronic clock ii第一章 绪论1.1电子时钟的研究背景单片机自1976年由intel公司推出mcs-48开始,迄今已有二十多年了。由于单片机集成度高、功能强、可靠性高、体积小、功耗低、使用方便、价格低廉等一系列优点,目前已经渗入到人们工作和生活的方方面面,单片机的应用领域已从面向工业控制、通讯、交通、智能仪表等迅速发展到家用消费产品、办公自动化、汽车电子、pc机外围以及网络通讯等广大领域。单片机有两种基本结构:一种是在通用微型计算机中广泛采用的,程序存储器和数据存储器共用一个存储器空间的结构,称为“冯·

7、诺依曼”(von neumann)结构。另一种是将程序存储器和数据存储器截然分开,分别寻址的结构,称为“哈佛”(harvard)结构,目前的单片机采用此种结构为多。本文讨论的单片机多功能时钟系统的核心是目前应用极为广泛的51系列单片机,配置了外围设备,构成了一个可编程的计时定时系统,具有体积小,可靠性高,功能多等特点。不仅能满足所需要求而且还有很多功能可供扩展,有着广泛的应用领域。20世纪末,电子技术得到了极速的发展,毫无疑问,在其推动下,现代电子产品以及各种高科技产品几乎渗透到了社会的各个领域,这有力地推动了社会生产力的发展和社会信息化程度以及综合科技水平的提高,但产品更新换代的频率也越来越

8、快。随着科技的发展社会的进步和全球化竞争的日益激烈,人们对数字钟的要求也越来越高,传统的时钟已不能满足人们的需求。多功能电子钟不管在性能还是在样式亦或是用途上都发生了重大的变化,许多电子钟都已具备电子闹钟、电子秒表、温度检测等功能。同时单片机在多功能数字钟中的应用已是非常普遍的1。多功能电子时钟除了具有时钟的功能外还可以包含对环境温度检测的功能。温度是一种最基本的环境参数。在各个行业生产及日常生活中,对温度的测量及控制始终占据着非常重要的地位。目前,典型的温度检测控制系统由模拟式温度传感器、a/d转换电路和各种单片机组成。由于模拟式温度传感器输出的模拟信号必须经过a/d转换环节转换为数字信号后

9、才能与单片机等微处理器接口进行读写的操作,所以硬件电路会比较复杂,成本较高。而以ds18b20为代表的新型单线总线数字式温度传感器集温度测量和a/d转换于一体,这类传感器可以直接输出数字量,同时与单片机接口电路结构非常简单,可以广泛用于距离远、节点分布多的场合,具有较强推广应用价值。2 数字电子时钟是采用数字电路实现对时,分,秒数字显示的装置,广泛用于个人家庭,车站,码头办公室等公共场所,成为人们日常生活中不可或缺的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,数字时钟的精度远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。例如定时自

10、动报警、按时自动打铃、时间程序自动控制、定时广播、自动启闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电器的自动启用等,所有这些,都是以钟表数字化为基础的。因此,研究数字时钟及扩大其应用,有着非常现实的意义。1.2电子时钟的国内外研究现状数字电子时钟,自从它发明的那天起,就成为人类的朋友,给人们的生活、学习、工作、娱乐带来极大的方便。但随着时间的推移,科学技术的不断发展,生活节奏越来越快,竞争日益激烈,人们对时间计量的精度要求越来越高,应用越来越广。可以说时间的准确已成为各行各业安全运行的基础,如果时间出现误差而不能及时校正,会造成一系列严重的后果和经济损失3 。 电子时钟的设计方法有多种,

11、可用中小规模集成电路组成电子钟,也可以利用专用的电子钟芯片配以显示电路及其所需要的外围电路组成电子钟,还可以利用对单片机编程来实现电子钟。其中,利用单片机实现的电子时钟具有硬件结构简单、编程灵活、便于功能扩展等特点。由单片机作为数字钟的核心控制器,可以通过它的时钟信号实现计时功能,将其时间数据经单片机输出,利用显示器显示出来。通过键盘可以进行定时、校时功能。输出设备显示器可以用液晶显示技术或者数码管显示技术4。温度是一种最基本的环境参数,日常生活和工农业生产中经常要检测温度。传统的方式是采用热电偶或热电阻,但是由于模拟温度传感器输出为模拟信号,必须经过a/d 转换环节获得数字信号后才能与单片机

12、等微处理器接口,使得硬件电路结构复杂,制作成本较高。近年来,美国dallas 公司生产的dsl8b20 为代表的新型单总线数字式温度传感器以其突出优点广泛使用于仓储管理、工农业生产制造、气象观测、科学研究以及日常生活中。dsl8b20 集温度测量和a/d 转换于一体,直接输出数字量,传输距离远,可以很方便地实现多点测量,硬件电路结构简单,与单片机接口几乎不需要外围元件5。 智能温度传感器(亦称数字温度传感器)是上世纪90年代中期问世的。此类传感器是微电子技术、计算机技术和自动测试技术的结晶。目前,国际上已开发出多种智能温度传感器。智能温度传感器内部一般包含温度传感器、a/d转换器、信号处理器、

13、存储器(或寄存器)和接口电路。有的产品还带多路选择器、中央控制器、随机存取存储器和只读存储器。智能温度传感器能实时更新并输出温度数据,适配于各种微控制器也就是通常所说的单片机(mcu),并且可通过软件来实现显示功能,其智能化取决于软件和硬件的综合开发水平,二者缺一不可。目前,新型温度传感器正从模拟式向数字式、集成化向智能化及网络化的方向发展6。21世纪后,智能温度传感器毫无疑问正朝着高精度、多功能、总线标准化、高可靠性及高安全性等高科技的方向迅速发展,开发虚拟传感器和网络传感器、研制更先进的单片测温系统已是刻不容缓7。在日常生活和自动控制系统中,我们时常会遇到对时间和温度实时监控的需求。这就给

14、具有多种功能的时钟提供了市场,也有了市场开发的前景。本文给出了一种基于单片机实现带温度检测的电子时钟的设计方法和实现过程。在日常生活和工作中,我们常常用到定时控制,如扩印过程中的曝光定时等。早期常用的一些时间控制单元都使用模拟电路设计制作的,其定时准确性和重复精度都不是很理想,现在基本上都是基于数字技术的新一代产品,随着单片机性价比的不断提高,新一代产品的应用也越来越广泛。大则可以构成复杂的工业过程控制系统,完成复杂的控制功能;小则可以用于家电控制,甚至可以用于儿童电子玩具。它功能强大、体积小、质量轻、灵活好用,配以适当的接口芯片,可以构成各种各样、功能各异的微电子产品。随着电子技术的飞速发展

15、,家用电器和办公电子设备逐渐增多,不同的设备都有自己的控制器,使用起来很不方便。这些具有人们所需要的智能化特性的产品减轻了人的劳动,扩大了数字化的范围,为家庭数字化提供了可能。根据这种实际情况,设计了一个单片机多功能时钟系统,它有基本的时间功能,还有定时功能,既可作为闹铃,也可扩展为定时对家电等电气产品的自动控制,可以避免多种控制器的混淆,利用一个控制器对多路电器进行控制;可增加温度传感器,进行实时温度显示,进一步扩展为利用不同的温度某些电气产品进行自动控制;也可增加湿度传感器,进行实时湿度显示,以便对湿度进行控制,方便人们的生活。1.3 本章小结本章主要介绍了课题背景、设计任务和课题意义,对

16、单片机的优点及结构作了简要叙述,也对本系统的应用及概况进行了说明。第二章 总体方案2.1 系统的设计思路本次设计完成电子时钟年、月、日、时、分、秒的显示及环境温度测量等功能的基础上完成定时闹钟的功能。由于ds12887时钟芯片内含一个锂电池,所以断电情况可以运行十年以上不丢失数据,重新上电后不用校正时钟。硬件电路包括单片机最小系统电路、ds12887实时时钟芯片电路模块、ampire128x64液晶显示模块、按键模块、ds18b20温度传感器模块、蜂鸣器报警电路模块;软件部分主要通过c程序的编程实现对时钟芯片进行时间数据的读和写,然后通过液晶显示程序将时间显示出来,通过按键操作实现功能的转换和

17、屏幕的切换。设计中结合硬件、软件的分步调试,达到要求的控制效果。2.2 系统硬件描述基于单片机系统的电子时钟基本结构框图如图2-1所示:图2-1 系统基本结构框图该系统所需要的器件包括单片机stc89c52芯片一块,实时时钟芯片ds12887一块,温度传感器ds18b20一块,液晶显示屏ampire128x64一块,双4输入与门芯片74ls21一块,蜂鸣器一个,12mhz的晶振一个,排针排线若干组,电容电阻若干,导线若干,发光二级管;温度测量部分实现环境温度测量及显示;键盘部分主要为时钟和闹钟设置;功能整体程序流程框图如图2-2所示。2.3设计流程和预期成果该设计的主要流程如下:首先阅读大量参

18、考文献,进行设计方案的确定,然后在protel 99se上进行原理图的绘制和修改,在电气检查无误的情况下,购买所需要的元器件(元器件应考虑裕量)。接着把元器件焊接到各个功能电路的模块上,并结合程序进行调试。最后将各个功能的电路程序组合起来,然后再进行总体调试直到成功。本设计能达到以下结果: 1)显示年、月、日、星期等日历相关信息。通过按键设置年月日和星期,以及定时闹钟、俄罗斯方块和贪吃蛇游戏等。 2)掉电后时钟芯片正常运行,重新上电后不用校正时钟。 3)定时时间到达时,蜂鸣器报警;手动按任意键报警停止;如无人工按键,报警在1.5min后停止。 4)实时温度显示。2.4 本章小结本章主要对本系统

19、的基本功能和扩展功能进行了说明,也对本系统的系统的显示情况及操作作了详细说明。85第三章 硬件设计3.1 硬件芯片介绍3.1.1 单片机stc89c52(一)stc89c52功能特点8stc89c52是一种带8k字节闪烁可编程可擦除只读存储器的低电压,高性能comos8的微处理器,俗称单片机。该器件采用atmel搞密度非易失存储器制造技术制造,与工业标准的mcs-51指令集和输出管脚相兼容。表3-1给出了其主要功能。这是一种低功耗、高性能cmos 8位微控制器,具有8k(0000h1fffh)在线系统可编程flash存储器。片上flash允许程序存储器在线编程,也适于常规编程器。在单芯片上,拥

20、有灵巧的8位cpu和在线系统可编程flash,使得at89c52为众多嵌入式控制应用系统提供灵活、高效的解决方案。at89c52具有以下标准功能:8k(0000h1fffh)flash,256字节(00hffh)数据存储器(ram),64k(0000hffffh)程序存储器(rom),32位i/o口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口内晶振及时钟电路。其中,数据存储器(ram)用于存放各种运算的中间结果,作缓存和数据暂存,以及设置特征标志等。at89s52的片内数据存储器用位寻址方式,最大寻址范围为256字节(00hffh)。按使用情况

21、不同可分成低128字节(00h7fh)和高128字节(80hffh)。其中低128字节为真正的ram存储器,高128字节为特殊功能寄存器(sfr)区,如累加器acc、程序状态字psw、数据指针dptr、程序计数器pc等表3-1 stc89c52主要功能主要功能特性兼容mcs51指令系统8k可反复擦写flash rom32个双向i/o口256x8bit内部ram3个16位可编程定时/计数器中断时钟频率0-24mhz2个串行中断可编程uart串行通道2个外部中断源共6个中断源2个读写中断口线3级加密位低功耗空闲和掉电模式软件设置睡眠和唤醒功能(二)stc89c52各管脚介绍stc89c52各管脚如

22、图3-1所示。图3-1 stc89c52管脚图(1) 主电源引脚(2根) vcc(pin40):电源输入,接5v电源gnd(pin20):接地线(2)外接晶振引脚(2根)xtal0(pin18):片内振荡电路的输入端xtal1(pin19):片内振荡电路的输出端(3)控制引脚(4根)rst/vpp(pin9):复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。ale/prog(pin30):地址锁存允许信号psen(pin29):外部存储器读选通信号ea/vpp(pin31):程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。(4)可编程输入/

23、输出引脚(32根)stc89c52单片机有4组8位的可编程i/o口,分别位p0、p1、p2、p3口,每个口有8位(8根引脚),共32根。po口(pin39pin32):名称为p0.0p0.7。p0口是一个8位漏极开路的双向i/o口。作为输出口,每位能驱动8个ttl逻辑电平(晶体管-晶体管逻辑电平)。p1口(pin1pin8):名称为p1.0p1.7。p1 口是一个具有内部上拉电阻的8 位双向i/o 口,p1 输出缓冲器能驱动4 个 ttl 逻辑电平。对p1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(iil)。

24、此外,p1.0和p1.2分别作定时器/计数器2的外部计数输入(p1.0/t2)和时器/计数器2 的触发输入(p1.1/t2ex),具体如下所示。 在flash编程和校验时,p1口接收低8位地址字节。p1引脚第二功能p1.0 :t2(定时器/计数器t2的外部计数输入),时钟输出p1.1 :t2ex(定时器/计数器t2的捕捉/重载触发信号和方向控制)p1.5: mosi(在线系统编程时用到)p1.6 :miso(在线系统编程时用到)p1.7 :sck(在线系统编程时用到)p2口(pin21pin28):名称为p2.0p2.7。p2 口是一个具有内部上拉电阻的8 位双向i/o 口,p2 输出缓冲器能

25、驱动4 个 ttl 逻辑电平。对p2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(iil)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行movx dptr)时,p2 口送出高八位地址。在这种应用中,p2 口使用很强的内部上拉发送1。在使用 8位地址(如movx ri)访问外部数据存储器时,p2口输出p2锁存器的内容。在flash编程和校验时,p2口也接收高8位地址字节和一些控制信号。p3口(pin10pin17):8位准双向i/o口线,名称为p3.0p3.7。p3 口是一个具有内部上拉电阻的8

26、 位双向i/o 口,p2 输出缓冲器能驱动4 个 ttl 逻辑电平。对p3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(iil)。 p3口亦作为stc89c52特殊功能(第二功能)使用,如下表所示。在flash编程和校验时,p3口也接收一些控制信号。端口引脚 第二功能p3.0 rxd(串行输入口)p3.1 txd(串行输出口)p3.2 into(外中断0)p3.3 int1(外中断1)p3.4 to(定时/计数器0)p3.5 t1(定时/计数器1)p3.6 wr(外部数据存储器写选通)p3.7 rd(外部数据存

27、储器读选通)此外,p3口还接收一些用于flash闪存编程和程序校验的控制信号。rst复位输入。当振荡器工作时,rst引脚出现两个机器周期以上高电平将是单片机复位。ale/prog当访问外部程序存储器或数据存储器时,ale(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ale仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ale脉冲。对flash存储器编程期间,该引脚还用于输入编程脉冲(prog)。如有必要,可通过对特殊功能寄存器(sfr)区中的8eh单元的d0位置位,可禁止ale操作。该位置位后,只有一

28、条movx和movc指令才能将ale激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ale禁止位无效。psen程序储存允许(psen)输出是外部程序存储器的读选通信号,当stc89c52由外部程序存储器取指令(或数据)时,每个机器周期两次psen有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次psen信号。ea/vpp外部访问允许,欲使cpu仅访问外部程序存储器(地址为0000h-ffffh),ea端必须保持低电平(接地)。需注意的是:如果加密位lb1被编程,复位时内部会锁存ea端状态。如ea端为高电平(接vcc端),cpu则执行内部程序存储器的指令。flash存储

29、器编程时,该引脚加上+12v的编程允许电源vpp,当然这必须是该器件是使用12v编程电压vpp。3.1.2 实时时钟芯片ds12887 (一)ds12887功能特点9 10ds12887是美国达拉斯半导体公司推出的时钟芯片,此芯片是基于cmos技术的,把时钟芯片所需的晶振和外部锂电池相关电路集于芯片内部,这无疑大大简化了外围电路,同时它与目前ibm at计算机常用的时钟芯片mc146818b和ds1287芯片引脚兼容,可直接进行对等交换。其主要功能如下:(1)内含一个锂电池,断电可以运行十年,并且不会丢失数据,时间功能正常运行。(2)可计时至2100年前的秒、分、时、星期、日、月、年等日历信息

30、并带有闰年补偿功能。(3)可通过编程选择bcd码或者二进制数表示日历和定时闹钟。(4)可通过编程选择12小时或24小时制,12小时时钟模式带有pm和am提示,此外还有有夏令时功能。(5)可选择motorola和intel总线时序。(6)内部共有128个ram单元,这在常用的实时时钟中属于较大的。其中14个字节作为时钟和控制寄存器,114字节为通用ram,所有aram单元数据都具有掉电保护功能。(7)可编程并选择的方波信号输出(8)中断信号输出(irq)和总线兼容,定时闹钟中断、周期性中断、时钟更新周期结束中断可分别由软件屏蔽,也可分别进行测试。(9)三种可供选择的中断方式 -时间性中断 -周期

31、性中断 -时钟更新结束中断(二)ds12887的原理及管脚说明图3-2显示了ds12887管脚排列图。下面说明管脚功能 图3-2 ds12887管脚图gnd:电源地vcc:直流电源+5v电压。若外部提供的vcc电源小于4.25v,读写会即刻被禁止,但芯片内部的计时仍在继续,重新通上+5v电源后,通过编程即可显示当前时间;若外部提供的vcc电源小于3v,电源方式切换为内部锂电池提供,同样可以保持芯片内部计时仍然继续。mot(模式选择):接vcc(+5v)时,芯片在motorola时序下工作,接gnd(地)时,芯片在intel时序下工作。sqw(方波信号):通过15个分频器抽头中的13个提供方波输

32、出。ad0ad7(双向地址/数据复用线):数据和控制指令都通过此8个引脚来于单片机等控制器传输。as(地址选通输入):地址锁存引脚。  ds(数据选通或读输入):该引脚有两种操作模式,视该芯片是出于motorola模式或者intel模式,当使用motorola时序时,ds是一正脉冲,出现在总线周期的后段,称为数据选通;若为intel时序,ds称作(rd),rd与典型存贮器的允许信号(oe)的定义相同。r/w(读/写输入):r/w管脚同样也有两种操作模式。此引脚的两种模式与ds相似。cs(片选输入):在访问ds12887的总线周期内,片选信号必须保持为低。irq(中断申请输入):低电平

33、有效,可作微处理的中断输入。没有中断条件满足时,irq处于高阻态。irq线是漏极开路输入,要求外接上拉电阻。reset(复位输出):若要保证ds12887有效复位,必须让该脚保持低电平时间大于200ms。(三)ds12887的内部功能(1) 地址分配图 ds12887的存储器分配图如图3-3所示,其中00h-09h为时钟信息和闹钟信息寄存器,0ah-0dh为四个控制寄存器。ds12887的存分配图如图3-3所示(2) 控制寄存器    寄存器a 表3-4 ds12887寄存器auip:更新位。若uip为1,实时时钟的更新转换发生的很快,而当uip为0,更新转换至少

34、在244µs内不会发生。    dv0,dv1,dv2:用于晶振和复位分频链的开启。表3-5 ds12887周期中断率和方波频率rs3,rs2,rs1,rs0:频率选择位,通过这四个位用户可以:    a 用pie位允许中断;    b 用sqwe位允许sqaw输出;    c 二者同时允许并用相同的频率;    d 二者都不允许寄存器b 表3-6 ds12887寄存器bset:此位为0,时间更新正常进行,每秒计数走时一次,当此位为1,

35、时间更新被禁止,程序可对芯片进行初始化的操作和编程。    pie:周期中断允许位,pie为1,则允许以选定的频率拉低irq管脚,pie为0,则禁止中断。    aie:定时闹钟中断允许位,aie为1,允许中断,否则禁止中断。uie:更新结束中断允许位,aie为1,允许中断,否则禁止中断。    sqwe:方波允许位,置1选定频率方波从sqw脚输出;为0-时,sqw脚为低。    dm:数据模式位,dm为1表明为十进制数据,而0表明是bcd码的数据。  &

36、#160; 24/12:小时格式位,1表明24小时制,而0表明12小时制。    dse:夏令时允许位,当dse置1时允许两个特殊的更新,在四月份的第一星期日,时间从1:59:59am时改变为3:00:00am;在十月的最后一个星期日的1:59:59am时改变为1:00:00am。当dse位为0,这种特殊修正不发生。寄存器c 表3-7 ds12887寄存器cirqf:中断申请标志位。当下列表达式中一个或多个为真时,置1。    pf=pie=1;af=aie=1;uf=uie=1;    即:irqf=p

37、f·pie+af·aie+uf·uie    只要irqf为1,irq管脚输出低 ,程序读寄存器c以后或reset管脚为低后,所有标志位清零。   af:定闹中断标志位,只读,af为1表明现在时间与定闹时间匹配。    vf:更新周期结束标志位。vf为1表明更新周期结束。    bit0bit3:未用状态位,读出总为0,不能写入。寄存器d 表3-8 ds12887寄存器dvrt:内部锂电池状态位,平时应总读出1,如出现0,表明内部锂电池耗尽。 &

38、#160;  bit0bit6:未用状态位,读出总为0,不能写入。3.1.3 温度传感器ds18b20(一)ds18b20功能特点ds18b20具有超小体积和超低硬件开销,精度高,抗干扰能力强等优点。具有全数字温度转换及输出,单总线数据通信,最高12 位分辨率,检测温度范围大的特征,是开发温度相关产品的很好的选择。其主要功能如下:(1)独特的单线接口仅需一个端口引脚进行通讯(2)简单的多点分布应用(3)无需外部器件(4)可通过数据线供电(5)零待机功耗(6)测温范围-55+125,以0.5递增。华氏器件-67+2570f,以0.90f 递增(7)温度以9 位数字量读出(8)温度数字量

39、转换时间200ms(典型值)(9)用户可定义的非易失性温度报警设置(10)报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件(11)应用包括温度控制、工业系统、消费品、温度计或任何热感测系统二)ds18b20内部工作原理 ds18b20内部结构主要由四部分组成:64位光刻rom 、温度传感器、非挥发的温度报警触发器th和tl、配置寄存器。如图3-9所示。图3-9 ds18b20原理图ds18b20引脚定义: (1) dq为数字信号输入/输出端(2) gnd为电源地(3) vdd为外接供电电源输入端(在寄生电源接线方式时接地) 图3-10 ds18b20引脚图图3-10给出了

40、ds18b20测温原理:ds1820用一个高温度系数的振荡器确定一个门周期,内部计数器在这个门周期内对一个低温度系数的振荡器的脉冲进行计数来得到温度值。计数器被预置到对应于-55的一个值。如果计数器在门周期结束前到达0,则温度寄存器(同样被预置到-55)的值增加,表明所测温度大于-55。同时,计数器被复位到一个值,这个值由斜坡式累加器电路确定,斜坡式累加器电路用来补偿感温振荡器的抛物线特性。然后计数器又开始计数直到0,如果门周期仍未结束,将重复这一过程。斜坡式累加器用来补偿感温振荡器的非线性,以期在测温时获得比较高的分辨力。这是通过改变计数器对温度每增加一度所需计数的的值来实现的。因此,要想获

41、得所需的分辨力,必须同时知道在给定温度下计数器的值和每一度的计数值。ds1820 内部对此计算的结果可提供0.5的分辨力。温度以16bit 带符号位扩展的二进制补码形式读出。数据通过单线接口以串行方式传输。ds1820 测温范围-55+125,以0.5递增。如用于华氏温度,必须要用一个转换因子查找表。图3-11 ds18b20测温原理图ds18b20与单片机的硬件连接有两种方法:一是vdd接外部电源,gnd接地i/o与单片机的i/o线相接;二是用寄生电源供电,此时vdd和gnd接地,i/o接单片机i/o。无论是那种供电方式,i/o线都要接4.7k左右的上拉电阻。图3-7中,ds18b20采用寄

42、生电源方式,其vdd和gnd均接地,ds18b20采用外接电源方式,其vdd端用3-5.5v电源供电。本设计采用接线,即外接电源工作方式11。 3.1.4 液晶显示屏ampire128x64 (一)ampire128x64特点说明12 13液晶显示模块由于具有低功耗、寿命长、体积小、显示内容丰富、价格低、接口控制方便等优点,因此在各类电子产品中被极广泛地推广和应用。字符型液晶显示模块是一类专门用于显示字母、数字、符号等点阵式液晶显示模块。本系统设计采用字符型液屏显示模块ampire128x64 作为显示器件,这样不仅简化了系统的硬件设计,而且极大地提高了系统的可靠性。字符型液晶显示模块ampi

43、re128x64是单片机应用设计中最常用的信息显示器件。ampire128x64 可以显示两行,每行16 个字符,采用5v 电源供电,外围电路配置简单,价格便宜,具有很高的性价比14。(2) ampire128x64功能介绍ampire128x64各引脚功能如表3-12所示。是直接看时序图,另外一种方法是直接记忆和总结读写时电平高低和变化。很显然第二种更简单、直接,下面就列出典型读写的时序要求,以方便编写程序。读状态-输入:rs=l,r/w=h,e=h 输出:d0-d7=状态字写指令-输入:rs=l,r/w=l,d0-d7=指令码,e=高脉冲 输出:无读数据-输入:rs=h,r/w=h,e=h

44、 输出:d0-d7=数据写数据-输入:rs=h,r/w=l,d0-d7=数据,e=高脉冲 输出:无(2)状态字说明: 表3-13 状态字表对控制器每次进行读写操作之前,都必须进行读写检测,确保sta7为0(3) 指令说明:表3-14 显示模式设置表表3-15显示开/关及背光灯设置表(4)数据控制 控制器内部有一个数据地址指针,用户可通过它们来访问内部的全部80字节ram(5) 数据指针设置 表3-16 数据指针设置表(三)ampire128x64初始化过程(1)延时15ms(2)写指令38h(不检测忙信号)(3)延时5ms(4) 写指令38h(不检测忙信号)(5)写指令5ms(6) 写指令38

45、h(不检测忙信号)(7)之后每次写指令、读/写数据操作之前均需检测忙信号(8)写指令38h:显示模式设置(9)写指令08h:显示关闭(10) 写指令01h:显示清屏幕(11) 写指令06h:显示光标移动设置(12) 写指令0ch:显示及光标设置3.2 系统硬件架构本设计以模块化的方式来进行硬件电路的设计和调试。单片机的模块化就是把系统分成各个具有独立功能又可以互相衔接的简单模块,将复杂难懂的指令、语法、编程及其电路分解,使设计简单化15。本设计的电路模块可以分为单片机最小系统模块,时钟模块,温度传感器模块,液晶显示模块,按键模块,蜂鸣器报警模块。3.2.1 单片机最小系统本设计的单片机最小系统

46、主要包括stc89c52芯片,晶振电路和复位电路。(一)晶振电路 最小系统晶振电路如图3-9所示。图3-17晶振电路图stc89c52内部有一个用于构成振荡器的高增益反相放大器,引脚xtal0和xtal1分别是此放大器的输入端和输出端。时钟可以由内部方式产生或外部方式产生。内部方式的时钟电路如图3-9所示,在xtal0和xtal1引脚上外接定时元件,内部振荡器就产生自激振荡。定时元件通常采用石英晶体和电容组成的并联谐振回路。晶体振荡频率可以在1.212mhz之间选择,电容值在530pf之间选择,电容值的大小可对频率起微调的作用。单片机晶振两个电容的作用:这两个电容叫晶振的负载电容,分别接在晶振

47、的两个脚上和对地的电容,一般在几十pf。它会影响到晶振的谐振频率和输出幅度。晶振的负载电容=(cd*cg)/(cd+cg)+cic+c式中cd,cg为分别接在晶振的两个脚上和对地的电容,cic(集成电路内部电容)+c(pcb上电容)经验值为3至5pf。(2) 复位电路 最小系统复位电路如图3-10所示。图3-18 复位电路无论使用哪种类型的单片机,总要涉及到单片机复位电路的设计而单片机复位电路设计的好坏,直接影响到整个系统工作的可靠性许多用户在设计完单片机系统,并在实验室调试成功后,在现场却出现了“死机”、“程序走飞”等现象,这主要是单片机的复位电路设计不可靠引起的16。复位电路的基本功能是:

48、系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经过一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。单片机复位电路参数的选定须在振荡稳定后保证复位高电平持续时间大于2个机器周期。单片机复位电路主要有四种类型:微分型复位电路;积分型复位电路;比较器型复位电路;看门狗型复位电路17。(三)最小系统整体图最小系统整体电路如图3-19所示。图3-19 最小系统电路图3.2.2时钟模块本设计中的ds12887芯片ad0-ad7引脚与stc89c52芯片的p2口相连接。mot引脚接地,为intel总线时序方式。因此r/w和ds引脚也为对

49、应intel的操作模式。时钟模块电路如图3-20所示。图3-20时钟模块图3.2.3 温度传感器模块温度传感器ds18b20的接法很简单,它的dq引脚与stc89c52芯片的p1.7引脚相连接。这里只用到一个温度传感器,若要使用多个则只需将所有的ds18b20的i/o口接在一起即可,在具体操作时,通过读取每个芯片的内部序列号来识别18。温度传感器模块电路如图3-21所示。图3-21 温度传感器3.2.4 液晶显示模块液晶ampire128x64的d0-d7引脚与stc89c52芯片的p2口相接,而控制引脚rs,r/w,cs则分别接p1.6,p1.5,p1.4。引脚3接一个1k的电位器来调整对比

50、度,从而达到合适的背光灯对比度。液晶显示模块电路如图3-22所示。图3-22 液晶显示模块3.2.5 按键模块74ls21芯片为两组 4 输入与门(正逻辑)。本设计中的四个按键分别接到74ls21芯片的1a,1b,1c,1d,即4输入与门的4个输入。而74ls21的输出1y则接到stc89c52芯片的p3.2(int0)引脚,由于该引脚为低电平有效,当警报发生时按下四个按键中任意一个都会使输出1y变为低电平,则芯片发生中断,报警停止。同时,四个按键key1-key4也接到stc89c52芯片的p1.0-p1.3起到调节时间日期等功能。四个按键中s1为切换键,s2为设定键,s3为上调键,s4下调

51、键。按键模块电路如图3-23所示。图3-23 按键电路3.2.6 蜂鸣器报警模块蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。 ;蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。蜂鸣器在电路中用字母“h”或“ha”(旧标准用“fm”、“lb”、“jd”等)表示。蜂鸣器报警在单片机应用的设计上,很多方案都会用到蜂鸣器,大部分都是使用蜂鸣器来做提示或报警,比如按键按下、开始工作、工作结束或是故障等等。portc.3/t0 作为i/o 口通过三极管q2 来驱动蜂鸣器ls1,而portc.

52、2/pwm0 则作为pwm 输出口通过三极管q1 来驱动蜂鸣器ls2。另外在porta.3 和porta.2 分别接了两个按键,一个是pwm 按键,是用来控制pwm 输出口驱动蜂鸣器使用的;另一个是port 按键,是用来控制i/o 口驱动蜂鸣器使用的。连接按键的i/o 口开内部上拉电阻。软件设计方法先分析一下蜂鸣器。所使用的蜂鸣器的工作频率是2000hz,也就是说蜂鸣器的驱动信号波形周期是500s,由于是1/2duty 的信号,所以一个周期内的高电平和低电平的时间宽度都为250s。软件设计上,我们将根据两种驱动方式来进行说明。a) pwm 输出口直接驱动蜂鸣器方式由于pwm 只控制固定频率的蜂

53、鸣器,所以可以在程序的系统初始化时就对pwm 的输出波形进行设置。首先根据sh69p43 的pwm 输出的周期宽度是10 位数据来选择pwm 时钟。系统使用4mhz 的晶振作为主振荡器,一个tosc 的时间就是0.25s,若是将pwm 的时钟设置为tosc 的话, 则蜂鸣器要求的波形周期500s 的计数值为500s/0.25s=(2000)10=(7d0)16,7d0h 为11 位的数据,而sh69p43 的pwm输出周期宽度只是10 位数据,所以选择pwm 的时钟为tosc 是不能实现蜂鸣器所要的驱动波形的。这里我们将pwm 的时钟设置为4tosc,这样一个pwm 的时钟周期就是1s 了,由

54、此可以算出500s 对应的计数值为500s/1s=(500)10=(1f4)16,即分别在周期寄存器的高2 位、中4 位和低4 位三个寄存器中填入1、f 和4,就完成了对输出周期的设置。再来设置占空比寄存器,在pwm 输出中占空比的实现是通过设定一个周期内电平的宽度来实现的。当输出模式选择为普通模式时,占空比寄存器是用来设置高电平的宽度。250s 的宽度计数值为250s/1s=(250)10=(0fa)16。只需要在占空比寄存器的高2 位、中4 位和低4 位中分别填入0、f 和a 就可以完成对占空比的设置了,设置占空比为1/2duty。以后只需要打开pwm 输出,pwm 输出口自然就能输出频率

55、为2000hz、占空比为1/2duty 的方波。b) i/o 口定时翻转电平驱动蜂鸣器方式使用i/o 口定时翻转电平驱动蜂鸣器方式的设置比较简单,只需要对波形分析一下。由于驱动的信号刚好为周期500s,占空比为1/2duty 的方波,只需要每250s 进行一次电平翻转,就可以得到驱动蜂鸣器的方波信号。在程序上,可以使用timer0 来定时,将timer0 的预分频设置为/1,选择timer0 的始终为系统时钟(主振荡器时钟/4),在timer0 的载入/计数寄存器的高4 位和低4 位分别写入00h 和06h,就能将timer0 的中断设置为250s。当需要i/o 口驱动的蜂鸣器鸣叫时,只需要在

56、进入timer0 中断的时候对该i/o 口的电平进行翻转一次,直到蜂鸣器不需要鸣叫的时候,将i/o 口的电平设置为低电平即可。不鸣叫时将i/o 口的输出电平设置为低电平是为了防止漏电。模块的作用:当定时闹钟时间到时,蜂鸣器发出预设的声音,而发光二极管则会随着音乐闪烁。本模块采用pnp三极管为蜂鸣器放大电流,基极通过4.7k电阻与单片机stc89c52的闲置引脚p3.5相连接,集电极直接接地,发射极接发光二极管和蜂鸣器。报警模块电路如图3-24所示。图3-24 报警模块3.3 本章小结本章主要对芯片作了介绍,对其内存单元作了详细说明,并对系统硬件的结构框图和各功能电路作了说明,以及这些电路在本设计中的用途。第四章 软件设计4.1 软件设计总体说明本系统的程序采用c语言编写,为了便于修改和调试,系统软件采用模块化设计,程序的编写编译在wave6000软件中完成。 秒计数器的计数时钟信号为1hz的标准信号,可以由cpld板上提供的20mhz的信号通过分频得到。秒计数器的进位输出信号作为分钟计数器的计数信号,分钟计数器的进位输出信号又作为小时计数器的计数信号.设计一个同时显示时、分、秒6个数字的数字钟,则需要6个七段显示器。若同时点亮这6个七段显示器,则电路中会产生一个比较大的电流,很容易造成电路烧坏,我们通过扫描电路来解决这一问题,通过产生一个扫描信号lt(0)

温馨提示

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

评论

0/150

提交评论