温度显示闹钟功能的电子日历设计doc

上传人:第*** 文档编号:57351233 上传时间:2018-10-21 格式:PDF 页数:35 大小:454.97KB
返回 下载 相关 举报
温度显示闹钟功能的电子日历设计doc_第1页
第1页 / 共35页
温度显示闹钟功能的电子日历设计doc_第2页
第2页 / 共35页
温度显示闹钟功能的电子日历设计doc_第3页
第3页 / 共35页
温度显示闹钟功能的电子日历设计doc_第4页
第4页 / 共35页
温度显示闹钟功能的电子日历设计doc_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《温度显示闹钟功能的电子日历设计doc》由会员分享,可在线阅读,更多相关《温度显示闹钟功能的电子日历设计doc(35页珍藏版)》请在金锄头文库上搜索。

1、 课程设计报告 课程名称:温度显示闹钟功能的电子日历设计 姓 名 学 号: 班 级: 专 业: 电子信息工程 日 期: 2011 年 6 月 30 日 前言. 2 一课程设计的目的与要求 . 4 1.课程设计的目的 . 4 2 2.课程设计要求 . 4 二总体设计 . 4 2.1 基本工作原理 . 4 2.2 总体硬件设计 . 4 2.2.1、系统组成方案 . 4 2.2.2、按键、显示功能的定义 . 5 2.3 硬件设计 5 2.3.1 DS1302 简介 5 2.3.2 DS18B20 简介 6 2.3.3 24C02 简介 9 2.3.4 LCD1602 简介 10 2.3 总体软件设计

2、 13 2.3.1、存储单元的分配、标志位的定义 . 13 2.3.2 总体设计流程图 . 14 2.3.3 具体程序流程图 15 三结束语. 16 四系统原理图 . 17 五程序清单 . 18 前言 单片机在我们日常生活中应用相当的广泛 大到工业控制方面 小到生活儿童玩具等的应用。现今已经成为必不可少的控制系统。单片机具有价格低廉技术3 成熟等特点收到大家的广泛好评单片机就像一个小型的计算机有自己的处理器 CPU 随机存储器 RAM、只读存储器 ROM、多种 I/O 口和中断 系统、定时器/计时器等功能可能还包括显示驱动电路、脉宽调制电路、模拟 多路转换器、A/D 转换器等在工业的生产中常用

3、于智能控制自动控制等方面。可以很好的代替人做一些工作在控制精度方面也有很好的表现。另外在时下很流行的家电智能控制方面也有很大的应用。 温度显示闹铃功能的电子日历设计 4 一课程设计的目的与要求 1.课程设计的目的 应用 STC89C52RC 单片机DS1302DS18B20,24C02 和 1602 实现具有温度检测功能和闹钟功能的基于 1602 显示的电子日历的设计与制作。 1 基于 DS1302万年历功能模块。 2 DS18B20 温度显示模块。 3 1602 显示模块。 2.课程设计要求 在两周内实现上述设计目的完成电路的设计焊接和实现。 二总体设计 2.1 基本工作原理 1利用 DS1

4、302 的时钟芯片功能因为 DS1302 具有两个电源一个主电源一个从电源主电源掉电以后芯片内部时钟还在跑可以保证时钟的实时性。 2数字温度传感器 DS18B20 可以方便的感应外界温度从而实现温度的实时监测。 3利用液晶 LCD1602 将以上信息显示出来 2.2 总体硬件设计 2.2.1、系统组成方案 P0 口控制 1602 的 D0-D7P2.0P2.1P2.2 分别控制 1602 的 RS,RW,E。P2.4P2.5P2.6,P2.7 分别控制键盘部分。P3.6 蜂鸣器。P1.1P1.2P1.3 分别控制DS1302 的 RST,I/O,SCLK。P1.4P1.5 分别控制 24C02

5、C 的 SDA,SCK。P1.0 控5 制 DS18B20 的 DQ。以上为硬件端口的分配。 2.2.2、按键、显示功能的定义 11602 第一屏显示年月日时间星期以及温度。换屏之后显示闹钟的设置。在板子中最上面的一个按键是时间年月日星期的调整控制中间两个按键上边的是加一按键 下边一个是减一按键。最下边的一个按键是闹钟的设置按键。 2.3 硬件设计 2.3.1 DS1302 简介 DS1302 是美国 DALLAS 公司推出的一种高性能、低功耗的实时时钟芯片附加 31字节静态 RAM采用 SPI 三线接口与 CPU 进行同步通信并可采用突发方式一次传送多个字节的时钟信号和 RAM 数据。实时时

6、钟可提供秒、分、时、日、星期、月和年一个月小与 31 天时可以自动调整且具有闰年补偿功能。工作电压宽达 2.55.5V。采用双电源供电主电源和备用电源 可设置备用电源充电方式提供了对后背电源进行涓细电流充电的能力。 各引脚的功能为 Vcc1主电源Vcc2备份电源。当 Vcc2Vcc1+0.2V 时由 Vcc2 向 DS1302 供电当 Vcc2 清除液晶显示器即将 DDRAM 的内容全部填入“空白“的 ASCII 码 20H; 光标归位即将光标撤回液晶显示屏的左上方; 将地址计数器(AC)的值设为 0。 2光标归位指令 功能 把光标撤回到显示器的左上方; 12 把地址计数器(AC)的值设置为

7、0; 保持 DDRAM 的内容不变。 3进入模式设置指令 功能设定每次定入 1 位数据后光标的移位方向并且设定每次写入的一个 字符是否移动。参数设定的 情况如下所示 位名设置 I/D 0=写入新数据后光标左移 1=写入新数据后光标右移 S 0=写入新数据后显示屏不移动 1=写入新数据后显示屏整体右 移 1 个字符 4显示开关控制指令 功能控制显示器开/关、光标显示/关闭以及光标是否闪烁。参数设定的情 况如下 位名设置 D 0=显示功能关 1=显示功能开 C 0=无光标 1=有光标 B 0=光标闪烁 1=光标不闪烁 5设定显示屏或光标移动方向指令 功能使光标移位或使整个显示屏幕移位。参数设定的情

8、况如下 S/C R/L 设定情况 0 0 光标左移 1 格且 AC 值减 1 0 1 光标右移 1 格且 AC 值加 1 1 0 显示器上字符全部左移一格但光标不动 1 1 显示器上字符全部右移一格但光标不动 6功能设定指令 功能设定数据总线位数、显示的行数及字型。参数设定的情况如下 位名设置 DL 0=数据总线为 4 位 1=数据总线为 8 位 13 N 0=显示 1 行 1=显示 2 行 F 0=57 点阵/每字符 1=510 点阵/每字符 2.3 总体软件设计 2.3.1、存储单元的分配、标志位的定义 各个所用端口的确定 sbit DQ = P10; /ds18b20温度传送数据IO口

9、sbit ds1302_rst = P11; /1302复位 sbit ds1302_io = P12; /数据输入输出 sbit ds1302_sclk= P13; /串行时钟 sbit alarm_out = P36; sbit lcd1602_rs = P20; / 1602命令、数据选择 sbit lcd1602_rw = P21; / 1602写 sbit lcd1602_e = P22; / 1602使能 sbit set = P24; /选择按键 sbit up = P25; /加 sbit down= P26; /减 sbit nao = P27; main() lcd1602

10、_init(); ds18b20_init(); ds1302_init(); c02_init(); while(1) if(done=1) keyjpress(); if(done=0) xianshi(); /取得并显示日历和时间 key_set_alarm(); alarm_ring(); 14 2.3.2 总体设计流程图如下 开始初始化调用xianshi()Done=1?调时定时NY判断按下的为set 或naoset=0nao=0读取闹钟时间并执行15 2.3.3 具体程序流程图 16 三结束语 在这次课程设计中确实对单片机的理解有了很大的提高 从纯的理论中能联系到实际中 来。 特别

11、是对 I2C 总线的理解有了很大的进步 在验收中老师提到一个最困扰的问题就是地 址问题我们的数据是怎么写进去的写到哪里了自己对地址的概念有了一个更加清晰的 认识。 另外对数据手册的运用也有了一定的认识以前所学的知识大部分只局限到课本但 是我们要用到一个芯片我们必须要知道它的特性那么数据手册就是一个不可缺少的资 料。 再次 就是这次我们小组三个人表现出来的合作意识非常不错 也很感想老师所提出的 问题在解决问题过程中也是提高很快的。 17 四系统原理图 18 五程序清单 #include #include “intrins.h“ #include “24c02.h“ #define uchar u

12、nsigned char #define uint unsigned int uchar code tabe1=“20 - -“; /液晶一直显示的字符 uchar code tabe2=“ : : “; uchar code tabe3=“Alarm set:“; uchar miao,fen,shi,nian,yue,ri,week,wendu_shi,wendu_ge,wendu_shu,variate,alarm_shi,alar m_fen,alarm_miao; uchar flag=1,count=0,flag_up=0,flag_down=0,flag_alarm=0,alar

13、m_on,alarm_count=0,done =0; uint wendu; /定义 IO sbit DQ = P10; /ds18b20 温度传送数据 IO 口 sbit ds1302_rst = P11; /1302 复位 sbit ds1302_io = P12; /数据输入输出 sbit ds1302_sclk= P13; /串行时钟 sbit alarm_out = P36; sbit lcd1602_rs = P20; / 1602 命令、数据选择 sbit lcd1602_rw = P21; / 1602 写 sbit lcd1602_e = P22; / 1602 使能 sb

14、it set = P24; /选择按键 sbit up = P25; /加 sbit down= P26; /减 sbit nao = P27; sbit ACC0=ACC0; sbit ACC7=ACC7; /延时 void delay(uchar x) uchar y,z; for(z=x;z0;z-) for(y=110;y0;y-); 19 void delay1() _nop_(); _nop_(); ds18b20_delay(uchar xus) /延时 xus while(xus-); /*ds18b20*/ void ds18b20_init() /DS18B20 初始化 uchar x=0; DQ=1; ds18b20_delay(8); DQ=0; ds18b20_delay(80); DQ=1; ds18b20_delay(14); x=DQ; ds18b20_delay(20); void

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号