基于pic16f887单片机的数字钟课程设计报告(福州大学)

上传人:简****9 文档编号:106690172 上传时间:2019-10-15 格式:DOC 页数:12 大小:201.62KB
返回 下载 相关 举报
基于pic16f887单片机的数字钟课程设计报告(福州大学)_第1页
第1页 / 共12页
基于pic16f887单片机的数字钟课程设计报告(福州大学)_第2页
第2页 / 共12页
基于pic16f887单片机的数字钟课程设计报告(福州大学)_第3页
第3页 / 共12页
基于pic16f887单片机的数字钟课程设计报告(福州大学)_第4页
第4页 / 共12页
基于pic16f887单片机的数字钟课程设计报告(福州大学)_第5页
第5页 / 共12页
点击查看更多>>
资源描述

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

1、 PIC单片机课程设计 学生姓名: 刘荣灿 学 号: 011200* 专业班级: 2012级*班 指导教师: 江 和 二一四年十二月二十七日目 录1、课程设计目的12、课程设计题目描述和要求13、课程设计报告内容14、结论95、参考目录101.课程设计目的 1、PIC单片机课程设计是电气工程与自动化专业一门重要的专业实践课,通过课程设计能够进一步熟悉PIC单片机原理与应用,巩固并提高对这学期PIC单片机知识的学习和应用; 2、熟悉对PIC16F887各个模块的编程与调试,最后综合各个模块,最后综合各个模块达到提高综合实践水平的能力; 3、掌握实验板上的操作和运用,学会使用PICKIT3下载器进

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

3、度传感器,用C语言编程,通过ICD2烧写进芯片,在LCD液晶显示屏上实现时间显示、运行的功能和温度显示功能。液晶显示屏显示着年、月、日、时、分、秒、星期。数字钟有调整时间的功能,通过对按键的操作可以对时间进行调整以及设定闹钟。3.1系统功能说明显示屏分两行显示,第一行显示日期:年/月/日、星期,第二行显示格式为时间(时:分:秒)、温度。显示秒由00一直加到59,分钟由00加到59,小时采用24小时制,由00加到23,星期由1一直加到7,日由01一直加到31(或30、29、28),月由01一直加到12,年由2000一直加到2099,温度为。按键操作时,按键RB0按下选择要修改的部分;按键RB1按

4、下时,数字加;按键RB2按下时,数字减;按键RB3可以进入闹钟设定模式。3.2设计步骤1、按照题目要求设计仿真图;2、对数字钟各个模块进行编程;3、将程序写入芯片,用仿真图仿真;4、若仿真图可实现,则把程序下载到实验板上运行;5、根据实验板情况进行调试。3.3 硬件电路的设计3.3.1 总电路图根据所要实现的预期功能,硬件必须要有最小系统模块、LCD显示模块、时钟模块、闹铃模块、温度模块、按键模块等。根据所提供的实验板资料,可以设计如下电路(proteus图):3.3.2 单片机最小系统模块 本次课程设计的最小系统包括16F887单片机、复位模块、4M外部晶振等部件组成如上最基本电路,其中芯片

5、供电的引脚略去。本课设板所用的单片机为PIC16F887,是877A 的升级,其主要参数与887A类似,但使用更为灵活、有的参数更为细化(如异步通信的波特率为双字节),而价格比887A更低,887引脚与877A兼容。3.3.3 时钟和温度模块的设计 DS1307芯片通过SCL连接RC3,SDA连接RC4,跟887进行通信。通信过程中,先判断时钟芯片是否工作,若“秒”的最高位“CH”为1,说明时钟还未运行,则通过写程序,对时钟芯片赋初值同时使“秒”的最高位“CH”为0。时钟芯片DS1307工作后,在引脚7发出1Hz脉冲,引脚7连接一个LED灯。脉冲的输出,会使LED灯一亮一灭,可通过LED灯的亮

6、暗可判断时钟芯片DS1307是否运行。时钟芯片 DS1307: DS1307 是实时时钟芯片,它提供秒、分、时、日、月、年和星期等数据。通常时钟芯片是要接备用电池,当主电源掉电时,备用电源为DS1307 提供维持电源此电源只供DS1307 使用,此时时钟仍正常运行,时钟晶振是典型的32.768kHz。温度模块: TC74也是IIC器件,它一出厂就配有一个固定的地址,单片机通过寻址来实现对不同IIC器件的访问和操作。单片机只要有一个IIC接口,就可以实现对外围不同地址的IIC器件进行操作。TC74温度范围为40125, 在2585范围的精度为2(最大值),在025 的范围精度为3(最大值)。TC

7、74的默认的7位地址为0b1001101。TC74的读温度命令是0b00000000,在温度数据寄存器中,每单位值代表1 ,数据用二进制补码格式。3.3.4 LCD液晶显示模块 本课设所使用的字符型LCD型号为YB1602,1602型LCD显示模块具有体积小,功耗低,显示内容丰富等特点,采用4位接线法,RD口的低四位和LCD的高4位连接,RD4、RD5、RD6用于读写和使能控制.上电后要延时15ms 后,才能进行初始。3.3.5 闹钟模块的设计 通过设定闹钟时间将闹钟时间存储在CCCC数组中,当时钟时间与闹钟时间相等时启动蜂鸣器,蜂鸣器发出声响。3.3.6 按键模块按键采用普通按键,按键另一端

8、接B口,由于B口可通过程序编写为弱上拉,所以仿真图中按键不需画出上拉电阻。RB0代表时间设置,RB1代表加,RB2代表减,RB3代表闹钟设置。3.4软件编程的设计及其说明3.4.1 软件设计执行的总体流程程序流程图: 开始程序流程图对各模块的初始化,和对单片机的端口的初始化判断时钟是否工作 否时钟初始化 是 读取温度和时间寄存器值判断是否到达闹钟设定时间 是蜂鸣器响 否判断是否有闹钟设定中断 是进入闹钟设定模式,频幕静止 否判断是否有选择调时中断判断是否有选择调时中断 是 是 根据不同的中断类型,进入不同的中断子程序,对时钟进行相应的修改根据不同的中断类型,进入不同的中断子程序,对闹钟进行相应

9、的修改 结束在LCD上显示出温度和时间值 否 否3.4.2 温度传感器 TC74 程序操作/温度传感器模块宏定义#define TC74_ADD 0b1001000 /TC74的7位地址#define RTR 0b00000000 /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); /等待重新开

10、始条件结束IIC_SEND(TC74_ADD1)+1); /发送TC74地址(读)RCEN=1; /接收使能while (RCEN=1); /等待接收完成R2=SSPBUF; /接收数据存入R2PEN=1; /停止位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 闹钟模块的程序操作#define FMQ RC1/=蜂鸣器的初始化void SPEA

11、KER_CSH(void) TRISC1=0; FMQ=0;if(CCCC2=AAAA2)&(CCCC1=AAAA1)&(c=2) FMQ=1; /当设定的时间到时,蜂鸣器响else FMQ=0; 3.4.4时钟芯片 DS1307 的程序操作/=对DS1307进行初始化void DS1307_CSH() READ_DS1307(0,1); /读秒寄存器WRITE_DS1307(0x07,0x10); /SOUT输出1HZ的方波频率if(AAAA0&0x80)=0x80) /判断位秒寄存器最高位是否为1 LCD_WRITE(0b00000001,COM); /清屏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日WRITE_DS1307(0x05,0x11);/11月WRITE_DS1307(

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

当前位置:首页 > 商业/管理/HR > 管理学资料

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