基于pic16f887单片机的数字钟课程设计

上传人:aa****6 文档编号:38363989 上传时间:2018-05-01 格式:DOC 页数:12 大小:146KB
返回 下载 相关 举报
基于pic16f887单片机的数字钟课程设计_第1页
第1页 / 共12页
基于pic16f887单片机的数字钟课程设计_第2页
第2页 / 共12页
基于pic16f887单片机的数字钟课程设计_第3页
第3页 / 共12页
基于pic16f887单片机的数字钟课程设计_第4页
第4页 / 共12页
基于pic16f887单片机的数字钟课程设计_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《基于pic16f887单片机的数字钟课程设计》由会员分享,可在线阅读,更多相关《基于pic16f887单片机的数字钟课程设计(12页珍藏版)》请在金锄头文库上搜索。

1、 PICPIC 单片机单片机 课程设计课程设计二二一四年十二月二十七日一四年十二月二十七日目目 录录1 1、课程设计目的、课程设计目的112 2、课程设计题目描述和要求、课程设计题目描述和要求113 3、课程设计报告内容、课程设计报告内容114 4、结论、结论995 5、参考目录、参考目录101011.1.课程设计目的课程设计目的1、 PIC 单片机课程设计是电气工程与自动化专业一门重要的专业实践课,通过课程设计能够进一步熟悉 PIC 单片机原理与应用,巩固并提高对这学期 PIC 单片机知识的学习和应用;2、熟悉对 PIC16F887 各个模块的编程与调试,最后综合各个模块,最后综合各个模块达

2、到提高综合实践水平的能力;3、掌握实验板上的操作和运用,学会使用 PICKIT3 下载器进行现场的实物的调试;2.2.课程设计题目描述和要求课程设计题目描述和要求1、利用 DS1307 时钟芯片,LCD 液晶显示屏,TC74 温度传感器,蜂鸣器,按键做一个实时时钟,将时间和温度实时的显示在液晶上。编写相应的程序,最终可以在仿真软件上正常运行,可以在单片机开发板实物上也正常的运行,并且能脱机运行。2、在时钟和温度实时显示的过程中,允许外部的按键中断,通过按键可以对时间进行修改,也可以设定闹钟时间,实现闹钟报警。3、设计出硬件电路图,设计出软件编程方法,写出源代码,用 PROTEUS 进仿真在软件

3、仿真可行后,下载到实验板上进行演示。3.3.课程设计报告内容课程设计报告内容运用 PIC16F887 芯片、DS1307 时钟芯片和 TC74 温度传感器,用 C 语言编程,通过 ICD2 烧写进芯片,在 LCD 液晶显示屏上实现时间显示、运行的功能和温度显示功能。液晶显示屏显示着年、月、日、时、分、秒、星期。数字钟有调整时间的功能,通过对按键的操作可以对时间进行调整以及设定闹钟。3.1 系统功能说明显示屏分两行显示,第一行显示日期:年/月/日、星期,第二行显示格式为时间(时:分:秒) 、温度。显示秒由 00 一直加到 59,分钟由 00 加到 59,小时采用 24 小时制,由 00 加到 2

4、3,星期由 1 一直加到 7,日由 01 一直加到31(或 30、29、28) ,月由 01 一直加到 12,年由 2000 一直加到 2099,温度为2。按键操作时,按键 RB0 按下选择要修改的部分;按键 RB1 按下时,数字加;按键 RB2 按下时,数字减;按键 RB3 可以进入闹钟设定模式。3.2 设计步骤1、按照题目要求设计仿真图;2、对数字钟各个模块进行编程;3、将程序写入芯片,用仿真图仿真;4、若仿真图可实现,则把程序下载到实验板上运行;5、根据实验板情况进行调试。3.3 硬件电路的设计3.3.1 总电路图根据所要实现的预期功能,硬件必须要有最小系统模块、LCD 显示模块、时钟模

5、块、闹铃模块、温度模块、按键模块等。根据所提供的实验板资料,可以设计如下电路(proteus 图):33.3.2 单片机最小系统模块本次课程设计的最小系统包括 16F887 单片机、复位模块、4M 外部晶振等部件组成如上最基本电路,其中芯片供电的引脚略去。本课设板所用的单片机为 PIC16F887,是 877A 的升级,其主要参数与 887A 类似,但使用更为灵活、有的参数更为细化(如异步通信的波特率为双字节) ,而价格比 887A 更低,887引脚与 877A 兼容。3.3.3 时钟和温度模块的设计DS1307 芯片通过 SCL 连接 RC3,SDA 连接 RC4,跟 887 进行通信。通信

6、过程中,先判断时钟芯片是否工作,若“秒”的最高位“CH”为 1,说明时钟还未运行,则通过写程序,对时钟芯片赋初值同时使“秒”的最高位“CH”为 0。时钟芯片 DS1307 工作后,在引脚 7 发出 1Hz 脉冲,引脚 7 连接一个 LED 灯。脉4冲的输出,会使 LED 灯一亮一灭,可通过 LED 灯的亮暗可判断时钟芯片 DS1307是否运行。时钟芯片 DS1307:DS1307 是实时时钟芯片,它提供秒、分、时、日、月、年和星期等数据。通常时钟芯片是要接备用电池,当主电源掉电时,备用电源为 DS1307 提供维持电源此电源只供 DS1307 使用,此时时钟仍正常运行,时钟晶振是典型的32.7

7、68kHz。温度模块:TC74 也是 IIC 器件,它一出厂就配有一个固定的地址,单片机通过寻址来实现对不同 IIC 器件的访问和操作。单片机只要有一个 IIC 接口,就可以实现对外围不同地址的 IIC 器件进行操作。TC74 温度范围为40125, 在2585范围的精度为2(最大值) ,在 025 的范围精度为3(最大值) 。TC74 的默认的 7 位地址为 0b。TC74 的读温度命令是 0b,在温度数据寄存器中,每单位值代表 1 ,数据用二进制补码格式。3.3.4 LCD 液晶显示模块本课设所使用的字符型 LCD 型号为 YB1602,1602 型 LCD 显示模块具有体积小,功耗低,显

8、示内容丰富等特点,采用 4 位接线法,RD 口的低四位和 LCD 的高 4 位连接,RD4、RD5、RD6 用于读写和使能控制.上电后要延时 15ms 后,才能进行初始。3.3.5 闹钟模块的设计5通过设定闹钟时间将闹钟时间存储在 CCCC数组中,当时钟时间与闹钟时间相等时启动蜂鸣器,蜂鸣器发出声响。3.3.6 按键模块按键采用普通按键,按键另一端接 B 口,由于 B 口可通过程序编写为弱上拉,所以仿真图中按键不需画出上拉电阻。RB0 代表时间设置,RB1 代表加,RB2 代表减,RB3 代表闹钟设置。3.4 软件编程的设计及其说明3.4.1 软件设计执行的总体流程程序流程图:程序流程图程序流

9、程图开始6否是是否是否是 是否 否3.4.2 温度传感器 TC74 程序操作对各模块的初始化,和 对单片机的端口的初始 化判断时钟是否 工作读取温度和时间寄存 器值时钟初始化判断是否有闹 钟设定中断判断是否有选 择调时中断进入闹钟设定 模式,频幕静 止在 LCD 上显示出温度 和时间值根据不同的中断类型, 进入不同的中断子程序, 对时钟进行相应的修改结束判断是否有选 择调时中断根据不同的中断类型, 进入不同的中断子程序, 对闹钟进行相应的修改判断是否到达 闹钟设定时间 蜂鸣器响7/温度传感器模块宏定义#define TC74_ADD 0b /TC74 的 7 位地址#define RTR 0b

10、 /TC74 的读温度命令signed char READ_T(void) signed char R2;SEN=1; /开始条件while (SEN=1); /检测开始条件是否完成?IIC_SEND(TC74_ADD1); /送 TC74 地址(写)IIC_SEND(RTR); /写 RTR 命令(写)RSEN=1; /重新开始条件while (RSEN=1); /等待重新开始条件结束IIC_SEND(TC74_ADD1)+1); /发送 TC74 地址(读)RCEN=1; /接收使能while (RCEN=1); /等待接收完成R2=SSPBUF; /接收数据存入 R2PEN=1; /停止

11、位while(PEN=0);return(R2);TC74 的读温度的步骤如下:1) 发送启始位;2) 发送 TC74 的 7 位地址+0(写) ;3) 发送 TC74 的写命令(RTR) ;4) 重新开始条件;5) 发送 TC74 的 7 位地址+1(读) ;6) 接收使能,接收 TC74 的温度;7) 发送停止条件;3.4.3 闹钟模块的程序操作8#define FMQ RC1/=蜂鸣器的初始化void SPEAKER_CSH(void)TRISC1=0;FMQ=0;if(CCCC2=AAAA2) /当设定的时间到时,蜂鸣器响else FMQ=0; 3.4.4 时钟芯片 DS1307 的程

12、序操作/=对 DS1307 进行初始化void DS1307_CSH() READ_DS1307(0,1); /读秒寄存器WRITE_DS1307(0x07,0x10); /SOUT 输出 1HZ 的方波频率if(AAAA0 /清屏WRITE_DS1307(0x07,0x10);/写控制字到 LCDWRITE_DS1307(0x00,0x00);/00 秒WRITE_DS1307(0x01,0x00);/00 分WRITE_DS1307(0x02,0x08); /08 时WRITE_DS1307(0x03,0x06);/星期 6WRITE_DS1307(0x04,0x01);/01 日WRIT

13、E_DS1307(0x05,0x11);/11 月WRITE_DS1307(0x06,0x14);/14 年3.5 设计成果9LCD 显示屏第一行前面的字符显示显示日期,第一行后面的字符显示星期几;第二行前面的字符显示时间,后面的字符当前温度值。当按下 RB3 按键时,屏幕静止进入闹钟设定模式,通过设定时间可实现闹钟提醒功能。目标达成情况:1、单片机液晶显示屏可以实时的显示时间和温度(达到) ;2、当时间达到某个闹钟设定值时蜂鸣器响(达到) ;3、能够实现脱机运行(达到) ;4、可区分闰年、闰月(达到) ;4.4.结论结论4.1 调试问题分析用 PIC16F887 实验板,通过 PIC3 连接

14、,进行在线调试和脱机运行,出现了一些问题,经过独立思考以及和老师同学的交流后得以解决。问题一:不能掉电保护,每次脱机或者复位都会进行时钟初始化;解决办法:DS1307 初始化前用(AAAA0&0x80)=0x80 先进行判断秒的最高位是否为 1,为 1 则进行初始化;问题二:闰年、闰月识别错误;解决办法:用数组 DDDD先储存闰年年份,当时钟时间 AAAA=DDDD时为闰年;4.2 实验所得和体会这次的数字钟是我第一次完成的课程设计,让我懂得了实践是验证理论的最好途径。通过该课程设计,进一步掌握了 PIC 单片机的应用,熟练 PIC 单片机的C 程序的编写与调试,让我对于理论课上一些疑惑的地方豁然开朗,加深了对于理论课程的理解。整个课程设计下来,认识了 LCD 液晶显示、TC74 温度、实时时钟显示等模块的应用,懂得了对时钟芯片、温度传感器的操作方法及原理,懂10得了对相应模块的简单编程。实物仿真时,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

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