基于51单片检测+电子万年历的毕业设计崔晓_第1页
基于51单片检测+电子万年历的毕业设计崔晓_第2页
基于51单片检测+电子万年历的毕业设计崔晓_第3页
基于51单片检测+电子万年历的毕业设计崔晓_第4页
基于51单片检测+电子万年历的毕业设计崔晓_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

计 算 机 控 制 技 术课 程 设 计 说 明 书论文题目:基于 51 单片机温湿度检测+电子万年历的设计院 系 电气工程与自动化学院专 业 电气工程及其自动化班 级 B150331 学生姓名 崔晓敏 学 号 B15033101 指导教师 张 娟 梅 2016 年 12 月 25 日0第 1 章 绪论随着人们生活水平的提高和生活节奏的加快,对时间的要求越来越高,精准数字计时的消费需求也是越来越多。二十一世纪的今天,最具代表性的计时产品就是电子万年历,它是近代世界钟表业界的第三次革命。第一次是摆和摆轮游丝的发明,相对稳定的机械振荡频率源使钟表的走时差从分级缩小到秒级,代表性的产品就是带有摆或摆轮游丝的机械钟或表。第二次革命是石英晶体振荡器的应用,发明了走时精度更高的石英电子钟表,使钟表的走时月差从分级缩小到秒级。第三次革命就是单片机数码计时技术的应用(电子万年历) ,使计时产品的走时日差从分级缩小到 1/600 万秒,从原有传统指针计时的方式发展为人们日常更为熟悉的夜光数字显示方式,直观明了,并增加了全自动日期、星期、温度以及其他日常附属信息的显示功能,它更符合消费者的生活需求!因此,电子万年历的出现带来了钟表计时业界跨跃性的进步 我国生产的电子万年历有很多种,总体上来说以研究多功能电子万年历为主,使万年历除了原有的显示时间,日期等基本功能外,还具有闹铃,报警等功能。商家生产的电子万年历更从质量,价格,实用上考虑,不断的改进电子万年历的设计,使其更加的具有市场。本设计为软件,硬件相结合的一组设计。在软件设计过程中,应对硬件部分有相关了解,这样有助于对设计题目的更深了解,有助于软件设计。基本的要了解一些主要器件的基本功能和作用。除了采用集成化的时钟芯片外,还有采用 MCU 的方案,利用 STC89C52RC 单片微机制成万年历电路,采用软件和硬件结合的方法,控制 LCD1602 输出,分别用来显示年、月、日、时、分、秒,还有温度和湿度,其最大特点是:硬件电路简单,安装方便易于实现,软件设计独特,可靠。STC89C52 是 STC 公司生产的一种低功耗、高性能CMOS8 位微控制器,具有 8K 在系统可编程 Flash 存储器。STC89C52 使用经典的MCS-51 内核,但做了很多的改进使得芯片具有传统 51 单片机不具备的功能。在单芯片上,拥有灵巧的 8 位 CPU 和在系统可编程 Flash,使得 STC89C52 为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 本文介绍了基于 STC89C52RC 单片机设计的电子万年历。第 2 章 设计要求与方案12.1 设计要求2.1.1 基本要求具有年、月、日、星期、时、分、秒等功能;2.1.2 扩展功能具有温湿度检测功能;2.2 电路设计最终方案综上各方案所述,对此次作品的方案选定: 采用 STC89C52RC 作为主控制系统; DS1302 提供时钟; 温湿度传感器 SHT10 检测温湿度;LCD1206 液晶显示屏作为显示。2第 3 章 硬件设计与原理以 STC89C52RC 单片机为核心,起着控制作用。系统包括 LCD1602 液晶显示电路、复位电路、时钟电路、温湿度采集电路、按键调整子函数、按键提示音电路、报警指示灯电路和时钟芯片电路。设计思路分为九个模块:复位电路、晶振电路模块、STC89C52RC、LCD1602 液晶显示电路、温湿度采集电路、按键调整子函数、按键提示音电路、报警指示灯电路和时钟芯片电路这九个模块。3.1 系统设计方框图3.2 硬件设计分析3.2.1 显示系统LCD1602 分为带背光和不带背光两种,基控制器大部分为 HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别,两者尺寸差别如下图 3-2-1 所示:图 3-2-1 LCD1602 尺寸图3LCD1602 的主要技术参数:1、显示容量:162 个字符2、芯片工作电压:4.55.5V3、工作电流:2.0mA(5.0V)4、模块最佳工作电压:5.0V5、字符尺寸:2.954.35(WH)mm引脚功能说明LCD1602 采用标准的 14 脚(无背光)或 16 脚(带背光)接口,各引脚接口说明如图 3-2-2 所示 :编号 符号 引脚说明 编号 符号 引脚说明1 VSS 电源地 9 D2 数据2 VDD 电源正极 10 D3 数据3 VL 液晶显示偏压 11 D4 数据4 RS 数据/命令选择 12 D5 数据5 R/W 读/写选择 13 D6 数据6 E 使能信号 14 D7 数据7 D0 数据 15 BLA 背光源正极8 D1 数据 16 BLK 背光源负极第 1 脚:VSS 为地电源。第 2 脚:VDD 接 5V 正电源。图 3-2-2 引脚接口说明4第 3 脚:VL 为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影” ,使用时可以通过一个 10K 的电位器调整对比度。第 4 脚:RS 为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第 5 脚:R/W 为读写信号线,高电平时进行读操作,低电平时进行写操作。当 RS和 R/W 共同为低电平时可以写入指令或者显示地址,当 RS 为低电平 R/W 为高电平时可以读忙信号,当 RS 为高电平 R/W 为低电平时可以写入数据。第 6 脚:E 端为使能端,当 E 端由高电平跳变成低电平时,液晶模块执行命令。第 714 脚:D0D7 为 8 位双向数据线。第 15 脚:背光源正极。第 16 脚:背光源负极。3.2.2 LCD1602 的指令说明及时序序号 指令 RS R/W D7 D6 D5 D4 D3 D2 D1 D01 清显示 0 0 0 0 0 0 0 0 0 12 光标返回 0 0 0 0 0 0 0 0 1 *3 置输入模式 0 0 0 0 0 0 0 1 I/D S4 显示开/关控制 0 0 0 0 0 0 1 D C B5 光标或字符移位 0 0 0 0 0 1 S/C R/L * *6 置功能 0 0 0 0 1 DL N F * *7 置字符发生存贮器地址 0 0 0 1 字符发生存贮器地址8 置数据存贮器地址 0 0 1 显示数据存贮器地址9 读忙标志或地址 0 1 BF 计数器地址10 写数到 CGRAM 或DDRAM) 1 0 要写的数据内容11 从 CGRAM 或DDRAM 读数 1 1 读出的数据内容1602 液晶模块内部的控制器共有 11 条控制指令,如图 3-2-3 所示:1602 液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1 为高电平、0 为低电平)指令 1:清显示,指令码 01H,光标复位到地址 00H 位置。指令 2:光标复位,光标返回到地址 00H。图 3-2-3 控制命令表5指令 3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。指令 4:显示开关控制。D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令 5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标。指令 6:功能设置命令 DL:高电平时为 4 位总线,低电平时为 8 位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示 5x7 的点阵字符,高电平时显示5x10 的点阵字符。指令 7:字符发生器 RAM 地址设置。指令 8:DDRAM 地址设置。指令 9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。指令 10:写数据。指令 11:读数据。3.2.3 LCD1602 的 RAM 地址映射及标准字库表液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,图 3-2-4 是 1602 的内部显示地址。例如第二行第一个字符的地址是40H,那么是否直接写入40H 就可以将光标定位在第二行第一个字符的位置呢?这样不行,因为写入显示地址时要求最高位 D7 恒定为高电平 1 所以实际写入的数据应该是 01000000B(40H)+10000000B(80H)=11000000B(C0H)。图 3-2-4 LCD1602 内部显示地址6在对液晶模块的初始化中要先设置其显示模式,在液晶模块显示字符时光标是自动右移的,无需人工干预。每次输入指令前都要判断液晶模块是否处于忙的状态。1602 液晶模块内部的字符发生存储器(CGROM)已经存储了 160 个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是 01000001B(41H),显示时模块把地址 41H 中的点阵字符图形显示出来,我们就能看到字母“A”。图 3-2-5 液晶显示电路3.2.4 时钟电路模块(1) 时钟芯片 DS1302 的工作原理DS1302 在每次进行读、写程序前都必须初始化,先把 SCLK 端置 “0”,接着把RST 端置“1” ,最后才给予 SCLK 脉冲;读/写时序如下图 4 所示。图 5 为 DS1302 的控制字,此控制字的位 7 必须置 1,若为 0 则不能把对 DS1302 进行读写数据。对于位6,若对程序进行读/写时 RAM=1,对时间进行读 /写时,CK=0 。位 1 至位 5 指操作单元的地址。位 0 是读/写操作位,进行读操作时,该位为 1;该位为 0 则表示进行的是写操作。控制字节总是从最低位开始输入/输出的。表 6 为 DS1302 的日历、时间寄存器内容:“CH”是时钟暂停标志位,当该位为 1 时,时钟振荡器停止, DS1302 处于低功耗状态;当该位为 0 时,时钟开始运行。 “WP”是写保护位,在任何的对时钟和 RAM 的写操作之前,WP 必须为 0。当“WP” 为 1 时,写保护位防止对任一寄存器的写操作。7图 3-2-6 时钟芯片 DS1302 电路图(2) DS1302 的控制字节DS1302 的控制字如表 3-2-7 所示。控制字节的高有效位(位 7)必须是逻辑 1,如果它为 0,则不能把数据写入 DS1302 中,位 6 如果 0,则表示存取日历时钟数据,为 1表示存取 RAM 数据;位 5 至位 1 指示操作单元的地址;最低有效位(位 0)如为 0 表示要进行写操作,为 1 表示进行读操作,控制字节总是从最低位开始输出RAM RD1 A4 A3 A2 A1 A0 / CK /WR图 3-2-7 DS1302 的控制字格式(3) 数据输入输出(I/O)在控制指令字输入后的下一个 SCLK 时钟的上升沿时,数据被写入 DS1302,数据输入从低位即位 0 开始。同样,在紧跟 8 位的控制指令字后的下一个 SCLK 脉冲的下降沿读出 DS1302 的数据,读出数据时从低位 0 位到高位 7。如下图 3-2-8 所示8图 3-2-8 DS1302 读/写时序图(4) DS1302 的寄存器DS1302 有 12 个寄存器,其中有 7 个寄存器与日历、时钟相关,存放的数据位为BCD 码形式,其日历、时间寄存器及其控制字见图 3-2-9。图 3-2-9 DS1302 的日历、时间寄存器此外,DS1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM 相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。 DS1302 与 RAM 相关的寄存器分为两类:一类是单个 RAM 单元,共 31 个,每个单元组态为一个 8 位的字节,其命令控制字为 C0HFDH ,其中奇数为读操作,偶数为写操作;另一类为突发方式下的 RAM

温馨提示

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

评论

0/150

提交评论