课程设计:基于单片机AT89C51数字时钟设计说明书.doc

上传人:哈尼dd 文档编号:5027439 上传时间:2020-01-29 格式:DOC 页数:32 大小:815.50KB
返回 下载 相关 举报
课程设计:基于单片机AT89C51数字时钟设计说明书.doc_第1页
第1页 / 共32页
课程设计:基于单片机AT89C51数字时钟设计说明书.doc_第2页
第2页 / 共32页
课程设计:基于单片机AT89C51数字时钟设计说明书.doc_第3页
第3页 / 共32页
课程设计:基于单片机AT89C51数字时钟设计说明书.doc_第4页
第4页 / 共32页
课程设计:基于单片机AT89C51数字时钟设计说明书.doc_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《课程设计:基于单片机AT89C51数字时钟设计说明书.doc》由会员分享,可在线阅读,更多相关《课程设计:基于单片机AT89C51数字时钟设计说明书.doc(32页珍藏版)》请在三一文库上搜索。

1、摘要摘要 本设计基于单片机技术原理,以单片机芯片 AT89C51 作为核心控制器,通过硬件 电路的制作以及软件程序的编制,设计了多功能数字时钟系统。该时钟系统主要由时 钟模块、环境温度检测模块、液晶显示模块以及键盘控制模块组成。系统具有简单清 晰的操作界面,能在 4V7V 直流电源下正常工作。能够准确显示时间(显示格式为时 时:分分:秒秒,24 小时制) ,可随时进行时间调整,具有闹钟时间设置、闹钟开/关、 止闹功能,能够对时钟所在的环境温度进行测量并显示。设计以硬件软件化为指导思 想,充分发挥单片机功能,大部分功能通过软件编程来实现,电路简单明了,系统稳 定性高。同时,该时钟系统还具有功耗小

2、、成本低的特点,具有很强的实用性。由于 系统所用元器件较少,单片机所被占用的 I/O 口不多,因此系统具有一定的可扩展性。 关键词:单片机,数字时钟,时间调整,温度显示 目目 录录 1 1、绪论、绪论 1 1 1.11.1 课题的提出及研究意义课题的提出及研究意义1 1 1.21.2 数字时钟的发展现状数字时钟的发展现状2 2 1.31.3 课题研究目的和研究内容课题研究目的和研究内容4 4 2 2、多功能数字时钟硬件设计、多功能数字时钟硬件设计 5 5 2.12.1 主控制模块主控制模块6 6 2.22.2 显示模块显示模块8 8 2.32.3 时钟模块时钟模块1111 2.42.4 温度模

3、块温度模块1212 2.52.5 串行通信接口电路串行通信接口电路1515 2.62.6 电源转换模块电源转换模块1616 2.72.7 本章小结本章小结1717 3 3 软件设计部分软件设计部分 1818 3.13.1时钟程序的设计时钟程序的设计 1818 3.23.2 温度采集流程温度采集流程1818 3.33.3 液晶程序模块液晶程序模块1919 3.43.4 本章小结本章小结2020 4 4 总总结结2020 参参考考文文献献 2121 附附录录 多多功功能能数数字字时时钟钟设设计计程程序序 2222 1 1、绪论、绪论 人类的生活和工作均离不开时钟。从古代的滴漏更鼓到近代的机械钟,从

4、电子表到 目前的数字时钟,为了准确的测量和记录时间,人们一直在努力改进着计时工具。钟表 的数字化,大力推动了计时的精确性和可靠性。 1.11.1 课题的提出及研究意义课题的提出及研究意义 1.1.11.1.1 课题的提出课题的提出 近些年,随着科技的发展和社会的进步,人们对数字钟的要求也越来越高,传统的 时钟已不能满足人们的要求。多功能数字钟不管在性能还是在样式上都发生了质的变化, 有电子闹钟、数字闹钟等等。 数字钟成为人们日常生活中不可少的必需品 ,由于数字集 成电路的发展和石英晶体振荡器的广泛应用 ,使得数字钟的精度,远远超过老式钟表, 钟 表的数字化给人们生产生活带来了极大的方便 。 在

5、日常生活和工作中,我们常常用到定时控制,如扩印过程中的曝光定时等。早期 常用的一些时间控制单元都使用模拟电路设计制作的,其定时准确性和重复精度都不是 很理想,现在基本上都是基于数字技术的新一代产品,随着单片机性能价格比的不断提 高,新一代产品的应用也越来越广泛,大可构成复杂的工业过程控制系统,完成复杂的 控制功能。小则可以用于家电控制,甚至可以用于儿童电子玩具。它功能强大,体积小, 质量轻,灵活好用,配以适当的接口芯片,可以构造各种各样、功能各异的微电子产品。 随着电子技术的飞速发展,家用电器和办公电子设备逐渐增多,不同的设备都有自 己的控制器,使用起来很不方便。根据这种实际情况,设计了一个单

6、片机多功能数字时 钟,它可以避免多种控制器的混淆,利用一个控制器对多路电器进行控制,同时又可以 进行时钟校准和定点打铃。它可以执行不同的时间表(考试时间和日常作息时间)的打 铃,可以任意设置时间。这种具有人们所需要的智能化特性的产品减轻了人的劳动,扩 大了数字化的范围,为家庭数字化提供了可能。 电子钟是一种利用数字电路来显示秒、分、时的计时装置,与传统的机械钟相比, 它具有走时准确、显示直观、无机械传动装置等优点,因而得到广泛应用。随着人们生 活环境的不断改善和美化,在许多场合可以看到数字电子钟。在城市的主要营业场所、 车站、码头等公共场所使用 LCD 数字电子钟已经成为一种时尚。但目前市场上

7、各式各样 的 LCD 数字电子钟大多数用全硬件电路实现,电路结构复杂,功率损耗大等缺点 ,因此 有必要对数字电子钟进行改进 。 1.1.21.1.2 课题研究的意义课题研究的意义 多功能数字时钟的用途十分广泛,只要有计时的存在,便要用到数字时钟的原理及 结构;同时在日期中,它以其小巧,价格低廉,走时精度高,使用方便,功能多,便于 集成化而受广大消费者的喜爱。随着人类科技文明的发展,人们对于时钟的要求在不断 提高。时钟已不仅仅被看出一种用来显示时间的工具,在很多实际应用中它还需要能 4 够实现更多其它的功能。高精度、多功能、小体积、低功耗,是现代时钟发展的趋势。 在这种趋势下,时钟的数字化、多功

8、能化已经成为现在时钟生产研究的主导设计方向。 1.21.2 数字时钟的发展现状数字时钟的发展现状 几种常用数字时钟设计方案: 一、基于微机系统的数字时钟设计 计时单元由定时/计数器 8253 的通道 0 来实现。定时采用硬件计数和软件技术相结 合的方式,即通过 8253 产生一定的定时时间,然后再利用软件进行计数,从而实现 24 小时制定时。8253 定时时间到了之后产生中断信号, 8253 在中断服务程序中实现时、 分、秒的累加。 时间显示采用实验平台上的 6 个 LED 数码管分别显示时、分、秒,采用动态扫描方 式实现。 校时和闹铃定时通过键盘电路和单脉冲产生单元来输入。按键包括校时键、闹

9、钟定 时键、加 1 键和减 1 键等。 报警声响用蜂鸣器产生,将蜂鸣器接到 8255 的一个端口,通过输出电平的高低来 控制蜂鸣器的发声。 系统硬件设计主要利用微机实验平台上的电路模块。硬件电路主要由键盘电路、单 脉冲产生单元、8253 定时计数器、8255 并行接口单元、8259 中断控制器、LED 显示电 路和蜂鸣器电路等等。系统的硬件电路设计框图如图 1 所示。 图 1.1 基于微机系统的数字时钟设计框图 二、基于 VHDL 的数字时钟设计 基于 VHDL 语言,用 Top_Down 的思想进行设计。 用 CN6 无进位六进制计数器选择数码管的亮灭以及对应的数,循环扫描显示,用 SEL6

10、1 六选一选择器选择给定的信号输出对应的数送到七段码译码器。 K4 模块进行复位, 设置小时和分,输出整点报时信号和时,分,秒信号。 单元模块设计部分 对应的数模 块 CN6 信号选择模 块 SEL61 七段码译码 器模块 DISP 图 1.2 基于 VHDL 数字时钟的设计模块 单元模块设计部分分三个部分,介绍数字钟选择显示数码管和对应的数模块 CN6, 信号选择模块 SEL61,七段码译码器模块 DISP 和复位,秒,分,时显示,设置模块。 三、基于单片机数字时钟设计 基于单片机的数字时钟设计是模块化设计,以单片机做主控制模块,控制时钟芯片、 温度传感器芯片等,又将数据控制输出到显示模块。

11、 基于 MCS-51 单片机的数字时钟系统具有显示准确、直观、易于调整等特点。单片机 自诞生以来给全世界人类的生活和工作起到了剧烈的变化,而 MCS-51 单片机是我国使 用最早、最易掌握和应用的一款单片机。通过该系统的设计,对单片机的原理和功能有 个比较系统和全面的掌握,初步学习到有关工程设计的方法和思路。这样以后的就业面 会更加宽广,也可以满足当今社会对单片机开发人才的大量需求 5 。 目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。 导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化 过程的实时控制和数据处理,广泛使用的各种智能 IC

12、卡,录象机、摄象机,以及程控 玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪 表、医疗器械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控 制的科学家、工程师。 单片机在多功能数字钟中的应用已是非常普遍的,人们对数字钟 的功能及工作顺序都非常熟悉。但是却很少知道它的内部结构以及工作原理。由单片机 作为数字钟的核心控制器,可以通过它的时钟信号进行时实现计时功能,将其时间数据 经单片机输出,利用显示器显示出来。通过键盘可以进行定时、校时功能。输出设备显 示器可以用液晶显示技术和数码管显示技术。 1.31.3 课题研究目的和研究内容课题研究目的和研究内容

13、 1.3.11.3.1 课题研究目的课题研究目的 日常生活中人们离不开时钟。本文介绍是基于单片机的多功能数字时钟,在传统的时 钟基础上它具有走时准确、显示直观、无机械传动装置等优点。随着电子产业的发展,时 钟的数字化、多功能化已经成为现在时钟生产研究的主导设计方向。 1.3.21.3.2 课题研究内容课题研究内容 采用模块设计法完成多功能数字时钟的设计。基本功能是时钟显示,能准确显示“时” 、 “分” 、 “秒” ,并具有快速校准时、分、秒的功能。时钟显示同时具有实时温度显示。扩展 功能有具整点报时功能以及闹钟功能。 2 2、多功能数字时钟硬件设计、多功能数字时钟硬件设计 基于单片机的多功能数

14、字时钟的设计, 单片机芯片作为控制系统的核心部件,它除 了具备微机 CPU 的数值计算功能外,还具有灵活强大的控制功能,以便实时检测系统的 输入量、控制系统的输出量,实现自动控制。在本次设计中采用单片机技术来实现数字 钟的功能。方案的设计可以从以下几个方面来确定。微处理器的选择, AT89S51 是 2003 年 ATMEL 推出的新型品种,除了完全兼容 8051 外,还多了 ISP 编程和看门狗功能。显 示电路的设计,随着科技的发展,液晶显示的使用越来越方便,已被普遍的使用。由于 液晶显示与驱动都集成在一个芯片上,因此使用起来很方便。在这里采用液晶显示;校 时和定时电路的设计;实时控制电路是

15、时钟电路的一个重要组成部分,采用的是一个时 钟芯片,单片机从中读取数据送到显示器上显示,从而实现数字钟的功能;还有一些其 他控制电路如复位电路、时钟电路等。通过这些控制电路的连接构成了完整的电路 . 按照系统设计功能的要求,初步确定设计系统由电源转换模块、主控制模块、时钟 及温度模块、显示模块、键盘接口模块共 5 个模块组成,电路系统构成框图如图 2.1 所 示: 电源模块 DS1302 STC89C52 主控制模块 键扫描电路 显示电路 DS18B20 图 2.1电路系统构成框图 2.12.1 主控制模块主控制模块 2.1.12.1.1 STC89C52RC 单片机的单片机的特性概述特性概述

16、 STC89C52 是 STC 公司生产的低电压,高性能 CMOS8 位单片机,片内含 4kbytes 的可反复擦写的只读程序存储器(PEROM)和 128bytes 的随机存取数 据存储器(RAM) ,器件采用 ATMEL 公司的高密度、非易失性存储技术生产,兼 容标准 MCS-51 指令系统,片内置通用 8 位中央处理器(CPU)和 Flash 存储单 元,可灵活应用于各种控制领域。其主要功能有:与 MCS-51 产品指令系统完全 兼容;4k 字节可重擦写 Flash 闪速存储器;1000 次擦写周期;全静态操作: 0Hz24MHz;三级加密程序存储器;1288 字节内部 RAM;32 个

17、可编程 IO 口线;2 个 16 位定时计数器;6 个中断源;可编程串行 UART 通道;低功耗空 闲和掉电模式 2.1.22.1.2 STC89C52RC 管脚说明管脚说明 脚图如下图所示: 图 3.6 STC89C52 引脚图 VCC:供电电压。 GND:接地。 P0 口:P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8TTL 门电流。当 P1 口的管 脚第一次写 1 时,被定义为高阻输入。P0 能够用于外部程序数据存储器,它可以被定义为 数据/地址的第八位。在 FIASH 编程时,P0 口作为原码输入口,当 FIASH 进行校验时,P0 输出原码,此时 P0 外部必须被拉高

18、。 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

19、 位地址外部数据存储器进行存取时,P2 口输出地址的高八位。在给 出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2 口 输出其特殊功能寄存器的内容。P2 口在 FLASH 编程和校验时接收高八位地址信号和控制信 号。 P3 口:P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL 门电流。 当 P3 口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉 为低电平,P3 口将输出电流(ILL)这是由于上拉的缘故。 P3 口也可作为 AT89C51 的一些特殊功能口。 P3 口同时为闪烁编程和编程校验接收一些控制信号

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

21、行状态 ALE 禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两 次/PSEN 有效。但在访问外部数据存储器时,这两次有效的/PSEN 信号将不出现。 /EA/VPP:当/EA 保持低电平时,则在此期间外部程序存储器(0000H-FFFFH) ,不管是 否有内部程序存储器。注意加密方式 1 时,/EA 将内部锁定为 RESET;当/EA 端保持高电平 时,此间内部程序存储器。在 FLASH 编程期间,此引脚也用于施加 12V 编程电源(VPP) 。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。

22、2.22.2 显示模块显示模块 随着科技的发展,液晶显示的使用越来越方便,已被普遍的使用,所以本次设计采用 液晶显示。液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有 电就有显示,这样即可以显示出图形。液晶显示器具有厚度薄、适用于大规模集成电路直 接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、 PDA 移动通信工具等众多领域。 由于液晶显示与驱动都集成在一个芯片上,因此使用起来很方便。数字钟要显示现在 的日历时间包括年、月、日、星期、时、分、秒,在这里采用 1602LCD 液晶显示。 2.2.1 1602LCD 显示器的结构显示器的结构 编号

23、符号引脚说明编号符号引脚说明 1VSS 电源地 9D2Date I/O 2VDD 电源正极 10D3Date I/O 3VL 液晶显示偏压信号 11D4Date I/O 4RS 数据/命令选择端(V/L) 12D5Date I/O 5R/W 读/写选择端(H/L) 13D6Date I/O 6E 使能信号 14D7Date I/O 7D0Date I/O15BLA 背光源正极 8D1Date I/O16BLK 背光源负极 图 1602 液晶接口引脚定义 1、2 组电源 一组是模块的电源 一组是背光板的电源 均为 5V 供电。 2、VL 是调节对比度的引脚调节此脚上的电压可以改变黑白对比度 3、

24、RS 是很多液晶上都有的引脚 是命令/数据选择引脚 该脚电平为高时表示将进行数 据操作;为低时表示进行命令操作。 4、RW 也是很多液晶上都有的引脚是读写选择端 该脚电平为高是表示要对液晶进行读 操作;为低时表示要进行写操作。 5、E 同样很多液晶模块有此引脚通常在总线上信号稳定后给一正脉冲通知把数据读走, 在此脚为高电平的时候总线不允许变化。 6、D0D7 8 位双向并行总线,用来传送命令和数据。 7、BLA 是背光源正极,BLK 是背光源负极。 2.2.22.2.2 1602LCD1602LCD 数据原理数据原理 读状态输入RS=L,R/W=H,E=H输出D0D7=状态字 写指令输入RS=

25、L,R/W=L,D0D7=指令码,E=高 脉冲 输出无 读数据输入RS=H,R/W=H,E=H输出D0D7=数据 写数据输入RS=H,R/W=L,D0D7=数据,E=高脉 冲 输出无 图 2.4 1602LCD 基本操作时序 此液晶上电的时候需要初始化典型的指令码是 38H,也就是上电的时候需要调用 void write_cmd(unsigned char command)这个函数写指令码,用法是 write_cmd(0x38); 执行完这个函数可以把液晶初始化成 16x2 显示 5x7 的点阵 8 位总线接口。以下指令 码用法相同。 此液晶支持的指令码有 指令码功能 00111000 设置

26、162 显示,57 点陈,8 位数据接口 第一行指令主要能完成的功能是 控制液晶显示否,光标显示否,光标闪烁否。共有 以下 8 种指令 0000100008H 关液晶显示 光标不闪烁 不显示光标位 置 0000100109H 关液晶显示 光标不闪烁 显示光标位置 000010100AH 关液晶显示 光标不闪烁 不显示光标位 置 000010110BH 关液晶显示 光标不闪烁 显示光标位置 000011000CH 开液晶显示 光标不闪烁 不显示光标位 置 000011010DH 开液晶显示 光标不闪烁 显示光标位置 000011100EH 开液晶显示 光标不闪烁 不显示光标位 置 0000111

27、10FH 开液晶显示 光标不闪烁 显示光标位置 第二行指令主要能完成的功能是写完字符 光标或屏幕移动方向 指令码功能 80H+地址码(0-27H,40H-67H)设置数据地址指针 2 2. .2 2. .3 3 显显示示模模块块的的数数据据连连接接 1602LCD 的 D0D7 的八位数据线分别接单片机 89C51 的 P0.0P0.7。RS 复位端 接 P2.0,EN 使能端接 P2.2,读、写信号端接 P2.1 图 2.5 显示模块的数据连接图 2.32.3 时钟模块时钟模块 单片机控制时钟模块,定时时间,它通常有两种实现方法:一是用软件实现,即用单 片机内部的可编程定时/计数器来实现,但

28、误差很大,主要用在对时间精度要求不高的场合; 二是用专门的时钟芯片实现,在对时间精度要求很高的情况下,通常采用这种方法,典型 的时钟芯片有:DS1302,DS12887,X1203 等都可以满足高精度的要求。本次设计采用 DS12887 芯片 2.3.12.3.1 DS12887DS12887 的性能特性的性能特性 DS12887 为 DALLAS 公司生产的实时时钟芯片,除具有实时钟功能外,它还具有 114 字节的通用 RAM。内藏锂电池,并与广泛应用的 DS1287、MC146818B 脚对脚兼容。本文 从应用角度出发,概述了其功能特点、外部特性、内部结构及与微机芯片的接口应用。 2.3.

29、22.3.2 DS12887 数据操作原理数据操作原理 2 2. .3.33.3 时钟模块的数据连接时钟模块的数据连接 图 2.9 时钟模块的数据连接 2.3.4 键盘原理图键盘原理图 键盘 S1,S2,S3 分别用做调时选择,上调按键,下调按键。 2.42.4 温度模块温度模块 多功能数字时钟拥有实时温度显示功能,由单片机将温度传感器数据控制输出由液 晶显示。本次设计采用温度传感器是 DS18B20. 2.4.12.4.1 DS18B20DS18B20 的性能特性的性能特性 1.1 独特的单线接口方式,DS18B20 在与微处理器连接时仅需要一条口线即可实现微 处理器与 DS18B20 的双

30、向通讯。 1.2 测温范围 55125,固有测温分辨率 0.5。 1.3 支持多点组网功能,多个 DS18B20 可以并联在唯一的三线上,最多只能并联 8 个, 如果数量过多,会使供电电源电压过低,从而造成信号传输的不稳定,实现多点测温 1.4 工作电源: 35V/DC 1.5 在使用中不需要任何外围元件 1.6 测量结果以 912 位数字量方式串行传送 1.7 不锈钢保护管直径 6 1.8 适用于 DN1525, DN40DN250 各种介质工业管道和狭小空间设备测温 1.9 标准安装螺纹 M10X1, M12X1.5, G1/2”任选 1.10 PVC 电缆直接出线或德式球型接线盒出线,便

31、于与其它电器设备连接。 2:应用范围 2.1 该产品适用于冷冻库,粮仓,储罐,电讯机房,电力机房,电缆线槽等测温和控 制领域 2.2 轴瓦,缸体,纺机,空调,等狭小空间工业设备测温和控制。 2.3 汽车空调、冰箱、冷柜、以及中低温干燥箱等。 2.5 供热/制冷管道热量计量,中央空调分户热能计量和工业领域测温和控制 2.4.22.4.2 DS18B20DS18B20 数据操作原理数据操作原理 DS18B20 的引脚功能图 引脚引脚符号说明 51GND 地 42DQ 单线应用的输入、 输出引脚 33VDD 电源 图 2.8 DS18B20 的引脚功能 独特的一线接口,只需要一条口线通信 多点能力,

32、简化了分布式温度传感应用 无需 外部元件 可用数据总线供电,电压范围为 3.0 V 至 5.5 V 无需备用电源 测量温度范围为 -55至+125。 温度传感器可编程的分辨率为 912 位 温度转换为 12 位数字格式最大值为 750 毫秒 用户可定义的非易失性温度报警设置 应用范围包括恒温控制,工业系统,消费电子产品温 度计,或任何热敏感系统 描述该 DS18B20 的数字温度计提供 9 至 12 位(可编程设备温度读数。信息被发送到/ 从 DS18B20 通过 1 线接口,所以中央微处理器与 DS18B20 只有一个一条口线连接。为读写 以及温度转换可以从数据线本身获得能量,不需要外接电源

33、。 因为每一个 DS18B20 的包含 一个独特的序号,多个 ds18b20s 可以同时存在于一条总线。这使得温度传感器放置在许多 不同的地方。它的用途很多,包括空调环境控制,感测建筑物内温设备或机器,并进行过 程监测和控制。 DS18B20 内部结构主要由四部分组成:64 位光刻 ROM、温度传感器、非挥发的温度报 警触发器 TH 和 TL、配置寄存器。该装置信号线高的时候,内部电容器 储存能量通由 1 线 通信线路给片子供电,而且在低电平期间为片子供电直至下一个高电平的到来重新充电。 DS18B20 的电源也可以从外部 3V-5 .5V 的电压得到。 DS18B20 采用一线通信接口。因为

34、一线通信接口,必须在先完成 ROM 设定,否则记忆 和控制功能将无法使用。主要首先提供以下功能命令之一: 1 )读 ROM, 2 )ROM 匹配, 3 )搜索 ROM, 4 )跳过 ROM, 5 )报警检查。这些指令操作作用在没有一个器件的 64 位光刻 ROM 序列号,可以在挂在一线上多个器件选定某一个器件,同时,总线也可以知道 总线上挂有有多少,什么样的设备。 若指令成功地使 DS18B20 完成温度测量,数据存储在 DS18B20 的存储器。一个控制功 能指挥指示 DS18B20 的演出测温。测量结果将被放置在 DS18B20 内存中,并可以让阅读发 出记忆功能的指挥,阅读内容的片上存储

35、器。温度报警触发器 TH 和 TL 都有一字节 EEPROM 的数据。如果 DS18B20 不使用报警检查指令,这些寄存器可作为一般的用户记忆用途。在 片上还载有配置字节以理想的解决温度数字转换。写 TH,TL 指令以及配置字节利用一个记 忆功能的指令完成。通过缓存器读寄存器。所有数据的读,写都是从最低位开始。 DS18B20 有 4 个主要的数据部件: (1)光刻 ROM 中的 64 位序列号是出厂前被光刻好的,它可以看作是该 DS18B20 的地 址序列码。64 位光刻 ROM 的排列是:开始 8 位(28H)是产品类型标号,接着的 48 位是该 DS18B20 自身的序列号,最后 8 位

36、是前面 56 位的循环冗余校验码(CRC=X8+X5+X4+1) 。光 刻 ROM 的作用是使每一个 DS18B20 都各不相同,这样就可以实现一根总线上挂接多个 DS18B20 的目的。 (2) DS18B20 中的温度传感器可完成对温度的测量,以 12 位转化为例:用 16 位符 号扩展的二进制补码读数形式提供,以 0.0625/LSB 形式表达,其中 S 为符号。 2.4.32.4.3 温度模块的数据连接温度模块的数据连接 在设计中,温度传感器 DS18B20 的数据端口 DQ 与单片机 89C51 的 P3.0。单片机读取 数据送入显示模块进行温度显示。 图 2.10 温度模块及键盘接

37、口模块连接图 2.52.5 串行通信接口电路 MAX232 是电压转换芯片,将 TTL 电平转换成可以和电脑串口匹配的电压。 DB9 通过下载线缆与电脑连接,可以将程序下载到单片机上。 2.62.6 电源转换模电源转换模块块 日常用到的都是 220V 的交流电源,所以,需要用变压器将其转换为线路设计中所用 到的直流电源。此转换后的直流电源为 +12V,而线路设计中许多芯片所用到的电压为 +5V,因 此,还需有 12V 到 5V 的转换电路。此转换采用 7805(三端稳压器)来完成,转换图如下: 图 2.11 7805 电压转换电路 当 Vin5V 时,Vout端可得到稳定的 5V 电压。 2.

38、62.6 系统系统原理图原理图 2 2. .7 7 本章小结本章小结 本章通过对设计思想的介绍,分别对主控制模块、显示模块、时钟模块、温度模块 以及电源转换模块的设计原理进行分析阐述。对各模块所需的芯片、元器件进行介绍。 3 3 软件设计部分软件设计部分 本次设计用 Keil 编程软件进行软件设计。Keil 软件是目前最流行的开发系列单片机软 件,近年来各仿真机厂商纷纷宣布全面支持 Keil。Keil 提供了包括 C 编译器、宏汇编、连 接器、库管理和仿真调试器在内的完整开发方案,通过集成开发环境将这些部分组合在一 起。Keil 支持汇编语言和 C 语言的程序设计,易学易用。 3.13.1时钟

39、程序的设计时钟程序的设计 对时钟芯片的操作主要包括 2 个方面:一是将芯片中的日期等数据读出来, 二是在进行日期等设置时将设置的数据写入芯片,这也是按键处理时的主要内容。 无论是读数据还是写数据,都要满足 DS12887 对时序的要求。而对芯片各个数 据部分的访问是通过地址进行的,且读和写的地址不一样。读出的数据同样要转 为 ASC II 码,然后储存起来,等待送去显示。其流程图如下图所示: 3.23.2 温温度度采采集集流流程程 系统程序的设计主要包括 C 程序主函数、DS18B20 复位函数、DS18B20 写字节函数、 DS18B20 读字节函数、温度计算转换函数和显示函数等,系统主程序

40、设计流程图如图 4.2 所 初始化 读日期数据 数据处理 将设置的数据写入芯片 转为 ASCII 送去显示 示。 温度采集模块流程图 3.33.3 液晶程序模块液晶程序模块 时钟需显示时间、温度。以上两个模块都需将数值送显示模块。 液晶的一般初始化过程: 延时 15mS 写指令 38H(不检测忙信号) 延时 5mS 写指令 38H(不检测忙信号) 延时 5mS 写指令 38H(不检测忙信号) 以后每次写指令、读/写数据操作均需要检测忙信号 写指令 38H:显示模式设置 写指令 08H:显示关闭 写指令 01H:显示清屏 写指令 06H:显示光标移动设置 写指令 0CH:显示开及光标设置 voi

41、d en_toggle() en=0; /_nop_(); delay(); en=1; delay(); / _nop_(); en=0; /液晶延时 3.43.4 本章小结本章小结 本章介绍了本次设计的软件部分的设计思想,即时钟程序与温度转换显示程序。 4 4 总总结结 本设计能够准确显示时间(显示格式为时时:分分:秒秒, 24 小时制) ,可随时进 行时间调整,具有闹钟时间设置、闹钟开 /关、止闹功能,能够对时钟所在的环境温度 进行测量并显示。设计以硬件软件化为指导思想,充分发挥单片机功能,大部分功能通 过软件编程来实现,电路简单明了,系统稳定性高。 基于单片机的数字时钟系统具有显示准确

42、、直观、易于调整等特点, 单片机所被占 用的 I/O 口不多,因此系统具有一定的可扩展性。 电子时代已经到来。做为新时代的我 们,更应该提高自身能力,适应新时代的发展。知识来自实践,多去生活中探询所需要 的。对于上述所提到的研究课题,我们应尽量考虑到人的因素,增强时钟的实用性和操 作性,为使用者提供切实的方便,营造一种舒适的生活氛围。所以,在设计的时候,应 该从多方面、多角度去考虑问题,而且应该进一步提高时钟的质量。 参考文献 1 刘建英.基于单片机的时钟设计J.内蒙古石油化工,2005,1. 2余永权.ATMEL89 系列单片机应用技术,北京航空航天大学出版社,2002 3李广弟等.单片机基

43、础,北京航空航天大学出版社,2001 4郁有文,常健,程继红.传感器原理及工程应用M西安:西安电子科技大学出版社, 2008.7 5张韵华 符号计算系统 Mathematica 教程M 北京:科学出版社.2001 6张国营,陈缔缨 传感器实验指导书M.徐州:中国矿业大学物理实验中心.2008 7 张晔,王玉民.单片机应用技术M.高等教育出版社,2006. 8AT89C51 Datasheet ,ATMEL,2004 9LCD1602 Datasheet www.21IC.com 10DS1302 Datasheet ,DALLAS Semiconductor,2004 11DS18B20 Da

44、tasheet ,DALLAS Semiconductor ,2004 12李光飞.单片机 C 程序设计实例指导M. 北京:航空航天大学业出版社, 2005. 13楼燃苗,李光飞. 51 系列单片机设计实例M. 北京:航空航天大学业出版社, 2003. 14马忠梅等. 单片机的 C 语言应用程序设计M. 北京:航空航天大学业出版社, 1999. 15赖麒文. 8051单片机C语言彻底应用M . 北京:科学业出版社, 2002. 5 5 心得体会心得体会 通过本次的课程设计,我对专业知识有了更深的了解与体会。我们明白理论与实践相 结合的必要性和重要性。它激发了我们两周的课程设计过程中,让我深深的

45、感觉到自己在 实际运用中的专业知识的匮乏,刚开始的一段时间里,对一些工作感到无从下手,茫然不 知所措,在学校总以为自己学的不错,一旦接触到实际,才发现自己知道的是多么少,这 时才真正领悟到“书到用时方恨少”的含义。而课程设计,就是给了我们这样一个机会。 不谨提高了我们的动手能力,更是让我们,把学习中的知识有了更深的理解 人们常说:“立足本行如下棋,输赢系于每个棋子” 。大学,大代表广博,学代表学 识。大学出去的人一定要有广博的学识才能算得上是真正的大学毕业生。从大学的第一天 开始,我们就必须从被动转向主动,成为自己未来的主人,积极地管理自己的学业和将来 的事业,做好人生和职业生涯规划。作为大学

46、生,最重要的还是学习,学生第一要事是学 习,学习好了才能做其他的事情。毕竟现在是知识,信息第一的时代,有了知识你才能改 变,得到自己想要的,实现自己的梦想。 总结一下在此次设计过程中的收获主要有二个方面:一是通过课程设计,学到了实践 知识,同时进一步加深了对理论知识的理解,使理论与实践知识都有所提高,圆满地完成 了此次实训的任务。二是通过这次学习,让我对各种自动化系统有了新的认识和更深的了 解,增强了自己动手实践的能力。为就业和将来的工作取得了一些宝贵的实践经验。 我想这次课程设计结束的同时,对自己以后的学习便是一个新的开始,争取精益求精, 更上一层楼。 “路漫漫其修远兮,吾将上下而求索”我相

47、信自己在以后的学习中会不断的完 善,不求最好只求更好!“天行健,君子以自强不息” 。生活因奋斗而精彩。人生之路,使 自己用双脚对全部生命历程的艰难丈量。每个人身后深深浅浅的脚印里,都蕴藏着许许多 多个故事,蕴含着许许多多的快乐与艰辛。在这个弱肉强食的社会里,只有强者才有出路, 才能在高手如云的环境中脱颖而出,占有一席之地。心如平原驰马,易放难收,趁着缰绳 还在手,勒马回头,为时不晚。奋斗的过程很艰辛,也许一年两年都不会有什么进展,但 只要保持一颗奋斗的心,总有“守得云开见月明”的时候。正如“临渊羡鱼,不如退而结 网” 。我们要永不退缩,永不言败! 附附录录 多多功功能能数数字字时时钟钟设设计计

48、程程序序 #include #include #define busy (dq=0) #define uchar unsigned char uchar shu1,tshi,tge,td1,td2,temp_d,temp1; uchar code tab1=“ Write By Wxg “; uchar code tab2=“V=12.0V“; uchar rom8,year,month,date,week,shi,fen,miao,sflag,keys_num=0; /sbit p37=P37; sbit rs=P24; sbit rw=P25; sbit lcden=P26; sbit d

49、q=P17; sbit dsas=P37; sbit dsrw=P33; sbit dsds=P36; sbit dscs=P35; sbit s2=P31; sbit s3=P32; bit temp_flag; void delayus(unsigned int us) /微秒延时,数据 us 不等值 while(us-); void delayms(unsigned int k) /毫秒延时 unsigned int i,j; for(i=1;i1; if(q) /写 1 dq=0; _nop_(); _nop_(); dq=1; delayus(5); else /写 0 dq=0; delayus(4); dq=1; _nop_(); _nop_(); void read_rom() /18b20 的 64 位序列号读取 uchar n; init_18b20(); check_exist(); w

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

当前位置:首页 > 研究报告 > 商业贸易


经营许可证编号:宁ICP备18001539号-1