福州大学PIC课程设计报告 数字钟.docx

上传人:b****6 文档编号:2991254 上传时间:2022-11-16 格式:DOCX 页数:16 大小:349.72KB
下载 相关 举报
福州大学PIC课程设计报告 数字钟.docx_第1页
第1页 / 共16页
福州大学PIC课程设计报告 数字钟.docx_第2页
第2页 / 共16页
福州大学PIC课程设计报告 数字钟.docx_第3页
第3页 / 共16页
福州大学PIC课程设计报告 数字钟.docx_第4页
第4页 / 共16页
福州大学PIC课程设计报告 数字钟.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

福州大学PIC课程设计报告 数字钟.docx

《福州大学PIC课程设计报告 数字钟.docx》由会员分享,可在线阅读,更多相关《福州大学PIC课程设计报告 数字钟.docx(16页珍藏版)》请在冰豆网上搜索。

福州大学PIC课程设计报告 数字钟.docx

福州大学PIC课程设计报告数字钟

 

《PIC单片机》

课程设计

 

学生姓名:

学号:

指导教师:

鲍光海

2014年6月26日

 

目录

 

1.课程设计题目描述和功能……………………………………………1

2.课程设计所用硬件……………………………………………………1

3.课程设计所用软件……………………………………………………6

4.课程设计所得结果……………………………………………………13

5.课程设计心得体会……………………………………………………14

6.参考书目………………………………………………………………15

1、课程设计题目描述和功能

⏹题目:

利用单片机PIC16F887设计数字钟

⏹设计原理:

利用单片机的IIC通信功能,将时钟芯片DS1307中的时间,和TC74芯片中的温度,用LCD液晶屏显示,并可以通过按键来修改时间和切换数字钟的功能模式。

⏹设计所能实现功能:

1 显示年、月、日、星期、时、分、秒并且可通过按键进行修改。

2 显示当前温度。

3 可设置重要日期并倒计天数。

2、课程设计所用硬件

TC74温度传感器

PIC16F887

LCD

按键

DS1307时钟芯片

①单片机PIC16F887:

a.硬件原理图:

b.硬件介绍:

本课设板所用的单片机为PIC16F887,是877A的升级,其主要参数与877A类似,但使用更为灵活、有的参数更为细化(如异步通信的波特率为双字节),而价格比877A更低。

887的程序存储器、通用RAM、EEPROM与877A完全相同。

但个别参数不同。

PIC16F887单片机是本次课设的核心模块,是实现与LCD显示模块、TC74温度传感器模块、DS1307时钟模块和按键模块等硬件连接部分进行通信的中心。

 

②LCD

a.硬件原理图:

b.硬件介绍:

LCD模块型号为YB1602A,每行显示16个字符,共2行,为了节省单片机的I/O口,采用4位数据线接线方式,将D4~D7分别与RD0~RD3相连,RD7用于背光显示,上电后要延时20ms,才能进行初始化。

③按键

a.硬件原理图:

b.硬件介绍:

4个按键用于修改时间和切换数字钟工作模式,分别为设置(SET)、加(ADD)、减(DEC),切换屏幕(COU)。

接到RB0~RB3,采用电平变化中断。

按下SET时,依次闪烁年、月、日、星期、时、分、秒。

按下COU时,屏幕切换为倒计时界面。

通过加(ADD)、减(DEC)按键修改时间。

④TC74:

a.硬件原理图:

b.硬件介绍:

TC74芯片用于提供温度数据,时钟线SCL和数据线SDA通过IIC接口RC3和RC4与单片机通信。

再在LCD上显示温度值。

⑤DS1307时钟芯片

a.硬件原理图:

b.硬件介绍:

DS1307是低功耗、IIC接口、日历和时钟数据,按BCD码存取的时钟/日历芯片。

它提供秒、分、小时、星期、日期、月和年等时钟日历数据。

时钟芯片DS1307用于提供时间数据,时钟线SCL和数据线SDA通过IIC接口RC3和RC4与单片机通信。

时钟芯片的SQW输出1Hz脉冲,输出到RA4,控制修改时间时的闪烁频率。

3、课程设计所用软件

⏹整体软件流程图

⏹部分程序:

●倒计时所用程序:

intdiff(void)

{

inti;

intdiff=0;

constintmonth[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};

MA=(AAAA[5]>>4);

MA=MA*10;

MA=MA+(AAAA[5]&0X0F);

MB=(BBBB[5]>>4);

MB=MB*10;

MB=MB+(BBBB[5]&0X0F);

DA=(AAAA[4]>>4);

DA=DA*10;

DA=DA+(AAAA[4]&0X0F);

DB=(BBBB[4]>>4);

DB=DB*10;

DB=DB+(BBBB[4]&0X0F);

YA=(AAAA[6]>>4);

YA=YA*10;

YA=YA+(AAAA[6]&0X0F);

YB=(BBBB[6]>>4);

YB=YB*10;

YB=YB+(BBBB[6]&0X0F);

if(AAAA[6]==BBBB[6])

{

if(AAAA[5]==BBBB[5])

{

diff=DB-DA;

}

else

{

for(i=MA+1;i

{

diff+=month[i];

}

diff+=month[MA]-DA+DB;

if(leapyear(AAAA))

if(AAAA[5]<=2&&BBBB[5]>2)

diff++;

}

}

else

{

for(i=YA+1;i

{

if(leapyear(i))

diff+=366;

else

diff+=365;

}

for(i=MA+1;i<=12;i++)//date1距离年末多少天

{

diff+=month[i];

}

diff+=month[MA]-DA;

if(MA<=2)

if(leapyear(YA))

diff++;

for(i=1;i

{

diff+=month[i];

}

diff+=DB;

if(MB>2)

if(leapyear(YB))

diff++;

}

returndiff;

}

 

intleapyear(char*year)

{

GW=(year[6]>>4);

GW=GW*10;

GW=GW+(year[6]&0X0F);

GW=GW%4;

if(GW==1)

return1;

else

return0;

}

●闪烁程序:

//闪烁年

voidyear(void)

{if(RA4==1)

{LCD_WRITE(LINE1,COM);

LCD_WRITE('2',DATA);

LCD_WRITE('0',DATA);

LCD_WRITE(((AAAA[6]&0xF0)>>4)+0x30,DATA);

LCD_WRITE((AAAA[6]&0x0F)+0x30,DATA);

}

else

{LCD_WRITE(LINE1,COM);

LCD_WRITE('',DATA);

LCD_WRITE('',DATA);

LCD_WRITE('',DATA);

LCD_WRITE('',DATA);

}

}

●加法日期校正:

//日校正

if(X==3)

{AAAA[4]+=1;//X=3,日期自动加1

if((AAAA[4]&0x0F)>9)

{AAAA[4]=AAAA[4]&0xF0;

AAAA[4]=AAAA[4]+0x10;//日期的低4位大于9时,低4位清零高4位进1位

}

if((AAAA[5]==1)|(AAAA[5]==3)|(AAAA[5]==5)|(AAAA[5]==7)|(AAAA[5]==8)|(AAAA[5]==0x10)|(AAAA[5]==0x12))

{

if(AAAA[4]>0x31)

{

AAAA[4]=0x01;//日期大于0x31,则改为0x01

}

}

if((AAAA[5]==2))

{

GW=(AAAA[6]>>4);

GW=GW*10;

GW=GW+(AAAA[6]&0X0F);

GW=GW%4;

NOP();

if(GW==0)

{

if(AAAA[4]>0x29)

{

AAAA[4]=0x01;//日期大于0x29,则改为0x01

}

}

else

{

if(AAAA[4]>0x28)

{

AAAA[4]=0x01;//日期大于0x28,则改为0x01

}

}

}

else

{

if(AAAA[4]>0x30)

{

AAAA[4]=0x01;//日期大于0x30,则改为0x01

}

}

4、课程设计所得结果

开机显示欢迎页面

开机欢迎页面延时1后,自动跳转到正常显示时间、温度界面

 

按COU按键切换到倒计时界面

 

5、课程设计心得体会

通过这两周周的课程设计,收获颇多:

首先,加深了我对单片机PIC16F887A的理解,提高了编程能力,分析问题和解决问题的能力,还有熟练操作PROTEUS、MAPLAB的能力。

同时我发现设计中仅仅靠电脑仿真是远远不够的,实际烧写中可以发现许多仿真中不能发现的问题,例如按键的抖动和LCD的清屏显示乱码等。

同时很感谢老师上课和课程设计过程中对我们的耐心指导。

虽然老师的要求相对其他大学老师来说可能较为严格,但是我觉得这样还是很有必要的。

PIC这一门课也许是我大学中学习的最认真的一门课了。

我感觉学的很扎实,真正学到了了将来工作中可以用到的知识和技术。

在此向鲍老师再次表示感谢!

6、参考书目:

[1]《PIC16系列单片机C程序设计与PROTEUS仿真》,江和,北京航空航天大学出版社,2010

[2]《福州大学PIC单片机课程设计指导书》江和,2012年8月

[3]DS1307时钟芯片简要说明江河2011年9月

 

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

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1