完美升级版电子万年历毕业论文报告Word文件下载.docx
- 文档编号:5240456
- 上传时间:2023-05-04
- 格式:DOCX
- 页数:28
- 大小:243.13KB
完美升级版电子万年历毕业论文报告Word文件下载.docx
《完美升级版电子万年历毕业论文报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《完美升级版电子万年历毕业论文报告Word文件下载.docx(28页珍藏版)》请在冰点文库上搜索。
北京航空航天大学出版社,2006.1
[2]徐科军,传感器与检测技术[M]。
电子工业出版社,2010.11
[3]方彦军,孙健,智能仪器技术及其应用[M]。
化学工业出版社,2004.4
[4]徐爱钧,智能化测量控制仪表原理与设计[M]。
北京航空航天大学出版社,2004.9
1任务分析和性能指标1
1.1任务分析1
1.2性能指标1
2总体设计方案1
2.1硬件方案1
2.2软件方案1
3系统硬件设计2
3.1检测电路2
3.2控制电路2
4系统软件设计2
4.1主程序设计2
4.2数据采集程序设计2
4.3监控程序设计2
5调试及性能分析2
5.1调试分析2
5.1.1软件调试2
5.1.2硬件调试2
5.1.3系统功能调试3
5.2性能分析3
总结3
参考文献4
附录1元器件清单5
附录2调试系统照片6
1任务分析和性能指标
1.1任务分析
电子万年历是日常生活中常见的小型电子产品,其形式多种多样,小到带有日期的电子腕表,大到公共场所悬挂的大型电子日历,此外,眼下我们还常能在宾馆、饭店等场所见到一种带有年、月、日、时、分、秒、星期甚至节气等信息的电子日历牌。
电子日历的主要功能是给人们提供时间和日期信息,无论其形式如何,从外部都可分为显示和校准两部分。
为使电子日历协调工作,整个系统从功能上可分为实时时钟、显示和键盘三个模块,分别完成时间和日期的计算以及人机交互的管理等。
1.2性能指标
实时时钟(RTC:
Real
Time
Clock)是系统的核心,其运行精度直接影响产品质量。
实时时钟的实现有两种方案可选,一是利用单片机系统时钟和中断完成时间和日期的计算;
二是利用专用时钟芯片。
前者不用附加芯片,系统简单,但是累计误差较大,只有
短时计时才可使用。
长时间计时一般都采用后者。
后者采用32.768KHz晶体振荡器振作
为脉冲源,内部的15位计数器刚好产生标准秒脉冲。
该类芯片除时钟计时外,还有年
月日和星期的计算功能,并且还可计算闰年。
芯片初始化后可脱离CPU自动运行,有
些芯片内部带有电池,出厂时芯片即开始运行。
专用时钟芯片的种类很多,与CPU的
通信方式有并行,
也有串行。
常见的芯片有DALLAS
公司生产的DS1302和DS12C887,
前者为串行,需要外加后备电池;
后者为并行,芯片内置锂电池和晶体振荡器,无外加
电源的情况下可运行10年。
此外,还有许多时钟芯片,如Epson、Holtek、深圳兴威帆
等公司都推出自己的时钟芯片.因为我们具备单片机相关知识的基础,所以我们利用单片机系统时钟和中断完成时间和日期的计算。
2总体方案设计
2.1硬件方案
显示部分
数据显示常采用液晶,液晶显示有耗电低、外形美观的优点,并且,点阵液晶可显示较复杂的字符或图案。
键盘部分
时钟系统的键盘设置三个键:
确认键、加1键、减1键。
实时时钟部分
利用单片机系统时钟和中断完成时间和日期的计算。
2.2软件方案
C语言编属于高级语言,具有可移植性,能够结构化编程。
使用标准C语言的程序,几乎都可以不作改变移植到不同的微机平台上,对于嵌入式等的微控制芯片,属于标准C语言的部分也很少需要修改,而且程序很容易读懂。
C语言编写程序结构清晰,移植性好,容易维护和修改。
汇编语言针对不同的操作系统平台,不同的微控制器,指令都是完全不同的,即使指令相似,也不具有可移植性。
但是汇编语言是针对专门的控制器的,所以运行速度可以精确到一个指令周期。
汇编语言的程序读懂需要借助微控制器的指令手册以及各个寄存器的说明,所以很难读懂。
汇编语言编写代码实时性强,能够直接控制硬件的工作状态,但是不具有可移植性,维护和修改困难。
经过我们三人的讨论我们决定使用c语言来编写程序,因为c语言程序容易学,也很容易读懂,编写程序结构清晰,易于我们组员之间的讨论和学习。
而且相对于汇编我们更加擅长c语言。
3硬件设计与实现
由于单片机系统时钟和中断能完成年、月、日、时、分、秒等时间信息,对于一天内的时间记录,有12小时制和24小时制两种模式。
在12小时制模式中,用AM和PM区分上午和下午;
时间的表示方法也有两种,一种用二进制数表示,一种是用BCD码表示。
而显示部分我们采用LCD液晶显示屏,液晶显示屏的显示功能强大,可显示文字,图形,显示多样,清晰可见,而其体积较小,使用方便,可以使电路更加简洁,所以选择了液晶显示器。
3.11602显示电路
3.2键盘电路
3.3晶振电路
3.4复位电路
3.5单片机电路
4软件设计与实现
4.1主程序
voidmain()
{
init();
while
(1)
{
anjian();
}
}
4.2子程序
4.2.1按键程序
voidanjian()按键函数
{
rd=0;
if(s1==0)
{
delay(5);
if(s1==0)
{s1num++;
while(!
s1);
if(s1num==1)
{
TR0=0;
write_com(0x80+0x40+12);
write_com(0x0f);
}
}
if(s1num==2)
write_com(0x80+0x40+9);
if(s1num==3)
write_com(0x80+0x40+6);
if(s1num==4)
write_com(0x80+15);
if(s1num==5)
write_com(0x80+9);
if(s1num==6)
write_com(0x80+6);
if(s1num==7)
write_com(0x80+1);
if(s1num==8)
s1num=0;
write_com(0x0c);
TR0=1;
if(yue==1)
{
tian=ri-ri4;
}
if(yue==2)
tian=31+ri-ri4;
if(yue==3)
tian=59+ri-ri4;
if(yue==4)
tian=90+ri-ri4;
if(yue==5)
tian=120+ri-ri4;
if(yue==6)
tian=151+ri-ri4;
if(yue==7)
tian=181+ri-ri4;
if(yue==8)
tian=212+ri-ri4;
if(yue==9)
tian=243+ri-ri4;
if(yue==10)
tian=272+ri-ri4;
if(yue==11)
tian=304+ri-ri4;
if(yue==12)
tian=334+ri-ri4;
ri4=0;
}
if(s1num!
=0)
if(s2==0)
delay(5);
if(s2==0)
{
while(!
s2);
if(s1num==1)
{
miao++;
if(miao==60)
miao=0;
write_sfm(12,miao);
write_com(0x80+0x40+12);
}
if(s1num==2)
fen++;
if(fen==60)
fen=0;
write_sfm(9,fen);
write_com(0x80+0x40+9);
if(s1num==3)
shi++;
if(shi==24)
shi=0;
write_sfm(6,shi);
write_com(0x80+0x40+6);
if(s1num==4)
xingqi++;
if(xingqi==8)
xingqi=1;
write_xq(15,xingqi);
write_com(0x80+15);
if(s1num==5)
ri++;
if(ri==32)
ri=1;
write_yr(9,ri);
write_com(0x80+9);
if(s1num==6)
yue++;
if(yue==13)
yue=1;
tian=1;
}
write_yr(6,yue);
write_com(0x80+6);
if(s1num==7)
nian++;
write_n(1,nian);
write_com(0x80+1);
}
if(s3==0)
delay(5);
if(s3==0)
while(!
s3);
if(s1num==1)
miao--;
if(miao==-1)
miao=59;
write_sfm(12,miao);
write_com(0x80+0x40+12);
if(s1num==2)
fen--;
if(fen==-1)
fen=59;
write_sfm(9,fen);
write_com(0x80+0x40+9);
if(s1num==3)
shi--;
if(shi==-1)
shi=23;
write_sfm(6,shi);
write_com(0x80+0x40+6);
if(s1num==4)
xingqi--;
if(xingqi==0)
xingqi=7;
write_xq(15,xingqi);
write_com(0x80+15);
if(s1num==5)
ri--;
ri4++;
if(ri==0)
{
ri=31;
}
write_yr(9,ri);
write_com(0x80+9);
if(s1num==6)
yue--;
if(yue==0)
yue=12;
tian=334+ri;
write_yr(6,yue);
write_com(0x80+6);
if(s1num==7)
nian--;
write_n(1,nian);
write_com(0x80+1);
}
}
}
}
4.2.2中断程序
voidtimer0()interrupt1开中断1(定时器中断0)包括时间的算法程序
t0++;
if(t0==20)
t0=0;
miao++;
if(miao==60)
miao=0;
fen++;
write_sfm(12,miao);
调用函数write-()都为调用上边的显示子函数下同
if(fen==60)
fen=0;
shi++;
write_sfm(9,fen);
if(shi==24)
shi=0;
xingqi++;
tian++;
write_sfm(6,shi);
if(xingqi==8)
xingqi=1;
write_xq(15,xingqi);
if(tian!
ri=tian;
if(tian<
=31)
yue=1;
write_yr(6,yue);
if(tian>
=32&
&
tian<
=59)
yue=2;
ri=tian-31;
if(60<
=tian&
=90)
{
yue=3;
ri=tian-59;
if(91<
=120)
yue=4;
ri=tian-90;
if(121<
=151)
yue=5;
ri=tian-120;
if(152<
=181)
yue=6;
ri=tian-151;
if(182<
=212)
yue=7;
ri=tian-181;
if(213<
=243)
yue=8;
ri=tian-212;
if(244<
=273)
yue=9;
ri=tian-243;
if(274<
=304)
yue=10;
ri=tian-273;
if(305<
=334)
yue=11;
ri=tian-304;
if(335<
=365)
yue=12;
ri=tian-334;
write_yr(6,yue);
if(tian==366)
tian=1;
yue=01;
ri=1;
nian++;
write_n(1,nian);
write_yr(9,ri);
4.2.3显示年
voidwrite_n(ucharadd,uintdate)液晶显示年
uintshi,ge,bai,qian;
qian=date1000;
bai=date100%10;
shi=date10%10;
ge=date%10;
write_com(0x80+add);
write_date(0x30+qian);
write_date(0x30+bai);
write_date(0x30+shi);
write_date(0x30+ge);
4.2.4显示星期
voidwrite_xq(ucharadd,uchardate)液晶显示星期
write_date(0x30+date);
4.2.5显示月日
voidwrite_yr(ucharadd,uchardate)液晶显示月日
ucharshi,ge;
shi=date10;
4.2.6显示时分秒
voidwrite_sfm(ucharadd,uchardate)液晶显示时分秒
write_com(0x80+0x40+add);
液晶屏第二行的选着地址
液晶屏显示数字的方式
4.2.7程序初始化
voidinit()函数初始化一些相应的变量
{
miao=53;
fen=59;
shi=23;
xingqi=5;
ri4=0;
tian=284;
nian=2013;
dula=0;
wela=0;
lcden=0;
write_com(0x38);
显示模式设置,设置16乘2显示,5×
7点阵,八位数据接口
write_com(0x0c);
显示状态为整体显示
write_com(0x06);
光标的设定当读或写一个字符后地址指针加一,光标加一
write_com(0x80);
液晶屏第一行选着地址
write_com(0x01);
清除显示否则后面出现黑一块
for(num=0;
num<
17;
num++)
write_date(table1[num]);
write_com(0x80+0x40);
13;
write_date(table2[num]);
TMOD=0x01;
中断初始化定时器0的工作方式一
EA=1;
ET0=1;
TR0=1;
4.2.8写数据到液晶显示器
voidwrite_date(uchardate)液晶屏数据指令
rs=1;
P0=date;
delay(5);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完美 升级 电子 万年历 毕业论文 报告
![提示](https://static.bingdoc.com/images/bang_tan.gif)