版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于单片机的电子时钟的设计PAGEPAGE27毕业论文(设计)题目:基于单片机的电子时钟的设计作者姓名:学号:专业:电子信息工程技术指导教师:2012年6月ﻩﻩ(设计)选题表2012年6月1摘要传统的数字电子时钟采用了较多的分立元器件,不仅占用了很大的空间而且利用率也比很低,随着系统设计复杂度的不断提高,用传统时钟系统设计方法很难满足设计需求。单片机是集CPU、RAM、ROM、定时器/计数器和多种接口于一体的微控制器。它体积小、成本低、功能强,广泛应用于智能产品和工业自动化上.而51系列的单片机是各单片机中最为典型和最有代表性的一种.本文设计的电子时钟是基于51单片机,同时使用c语言为程序设计语言,从而克服传统电子时钟的弊端。本设计拟实现的基本功能为单片机计时显示功能。能够体现单片机电子时钟的可扩展优越性,加入时间调整程序,使用按钮,调整年月日及时间;加入阴历显示功能。关键词:单片机,电子时钟,c语言ABSTRACT
Traditionaldigitalelectronicclockwithagreateramountofdiscretecomponents,notonlytakesupalotofspaceandutilizationthanlow,asthesystemdesigncomplexitycontinuestoimprove,theclocksystemdesignusingtraditionalmethodsaredifficulttomeetthedesignrequirements.MicrocontrollerisaCPU,RAM,ROM,timer/counterandavarietyofinterfacesinoneofthemicro-controller.Itssmallsize,lowcost,powerful,widelyusedinsmartproductsandindustrialautomation.And51ofthemicrocontrollerMCUisthemosttypicalandmostrepresentativeone.Thisdesignisbasedon51single-chipelectronicclock,usingbothassemblylanguagefortheprogramminglanguage,toovercomethedrawbacksofconventionalelectronicclock。Thedesignofthebasicfunctionstobeachievedforthemicrocontrollertimerdisplay.SCMcanreflectthescalabilityadvantagesofelectronicclock,addtimetoadjust,theuseofbuttons,adjustthedateandtimeofyear,month;tojointhelunarcalendardisplay。Keywords:microcontroller,electronicclock,assemblylanguage目录TOC\o"1-3"\h\z\uHYPERLINK\l"_Toc294860050"摘要 PAGEREF_Toc294860050\h7HYPERLINK\l"_Toc294860051"ABSTRACTﻩPAGEREF_Toc294860051\h8HYPERLINK\l”_Toc294860052"第一章绪论 PAGEREF_Toc294860052\h10HYPERLINK\l"_Toc294860053"1。1单片机的定义ﻩPAGEREF_Toc294860053\h10HYPERLINK\l"_Toc294860054"1。2单片机分类ﻩPAGEREF_Toc294860054\h11HYPERLINK\l”_Toc294860055”1.3单片机的特点ﻩPAGEREF_Toc294860055\h11HYPERLINK\l”_Toc294860056"1。4单片机的应用领域ﻩPAGEREF_Toc294860056\h11HYPERLINK1.5电子时钟的特点及应用领域ﻩPAGEREF_Toc294860057\h12HYPERLINK\l"_Toc294860058”第二章MCS—51单片机简介ﻩPAGEREF_Toc294860058\h13HYPERLINK\l"_Toc294860059”2.1单片机的结构ﻩPAGEREF_Toc294860059\h13HYPERLINK\l"_Toc294860060"2.2单片机的存储器ﻩPAGEREF_Toc294860060\h16HYPERLINK\l”_Toc294860061"第三章数码管的简介 PAGEREF_Toc294860061\h19HYPERLINK\l"_Toc294860062"3。1数码管的分类ﻩPAGEREF_Toc294860062\h19HYPERLINK\l"_Toc294860063"3.2数码管的应用ﻩPAGEREF_Toc294860063\h20HYPERLINK\l”_Toc294860064”第四章电子时钟的设计ﻩPAGEREF_Toc294860064\h21HYPERLINK\l"_Toc294860065"4.1可实现的功能ﻩPAGEREF_Toc294860065\h21HYPERLINK\l”_Toc294860066"4。2软件设计流程ﻩPAGEREF_Toc294860066\h22HYPERLINK\l"_Toc294860067”4.3电子时钟设计的部分主要流程ﻩPAGEREF_Toc294860067\h25HYPERLINK\l"_Toc294860068”第五章电子时钟的仿真ﻩPAGEREF_Toc294860068\h25HYPERLINK\l”_Toc294860069”5。1单片机调试仿真软件ﻩPAGEREF_Toc294860069\h25HYPERLINK\l"_Toc294860070”5.2电子时钟的仿真ﻩPAGEREF_Toc294860070\h27HYPERLINK结束语 PAGEREF_Toc294860072\h32HYPERLINK\l"_Toc294860073"致谢ﻩPAGEREF_Toc294860073\h33HYPERLINK\h\z\u致谢本课题的研究和论文的完成是在曾老师的悉心指导和热情关怀下完成的.老师严谨的治学态度、丰富的实践经验、兢兢业业的工作精神使我受益匪浅。老师豁达的胸怀对我树立正确的人生观和价值观产生了积极的影响。在老师的指导和帮助下,我的专业知识水平和学习能力都得到了很大的提高。我在人生道路上的每一个脚印都凝聚着老师的心血。跟随老师学习这两年所获得的知识将是我一生中最宝贵的财富。在此谨向曾老师表示崇高的敬意和衷心的感谢!感谢老师在研究工作中对我进行的悉心指导,并为我的学习提供了良好的条件,使我的论文的撰写得以顺利进行。感谢曾最后感谢生我育我的父母!感谢你们一直以来对我的无私关爱和默默奉献.参考文献[1]周昌七,电大理工,2006年11月,总第225期,《桌面电子时钟制作》[2],彭小军,新余高专学报,2006年4月,第9卷第2期《用单片机实现电子时钟》[3]陈同洲,郭华帅,中国传媒大学学报,2009年3月,第16卷第1期,《电子时钟仿真及FPGA实现》[4]吴镇宇,2005年9月,《片上时钟系统的研究与的设计》[5]李建忠,2004年,西安电子科技大学出版社,《单片机原理及应用》[6]孙彩兰蒋海琳,计算机与信息技术,软件纵横,《基于C语言为内核的电子时钟设计》[7]彭小军,新余高专学报,2006年4月,第9卷第2期,《用单片机实现电子时钟》[8]颜学超,2006年5月,《一种实时时钟芯片的设计》[9]翟玉文徐宏亮赵岩,吉林化工学院学报,2007年1月,《实用多功能电子时钟设计》[10]陈同洲,郭华帅,中国传媒大学学报,2009年3月第16卷第1期,《电子时钟仿真及FPGA实现》[11]吴镇宇,2005年9月,《片上时钟系统的研究与的设计》[12]简宁,企业科技与发展,2010年第16期,《电子时钟仿真实现》[13]徐得波,葛广英,2004年9月,自然科学,《单片机动态可调电子时钟系统》[14]戴勇,刘斌儒,《国外电子元器件》2008年第7期,《基于AVR单片机Mega16的电子时钟的设计》[15]何翠萍,刘晓刚,周功海,煤矿现代化,2007年1月第1期,《单片机控电子时钟的设计》附录:#include"main。h”#include"ds1302。h"codeuint8Ledcode[13]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0xbf,0x86};uint8Time[7]={55,59,11,22,2,2,11};//秒分时日月周年10-08—1511:59:55uint8Led_buf[6];uint8Num,Led_n=0,T_n=0;voiddelay(uint16n){ while(n-—);}/**初始化系统定时器*/voidsystimer_init(void){TMOD=0x01;TH0=0xF8;ﻩTL0=0xCC;TR0=0; ET0=1;ﻩTMOD&=0x0F;ﻩTMOD|=0x10;TH1=0xDC;ﻩ//定时10msTL1=0x00;TR1=0;ﻩET1=0;ﻩEA=1;}/**判断键值*/uint8scan_key(void){ﻩuint8val=0;ﻩKeyOut1=0;ﻩKeyOut2=1;ﻩKeyOut3=1; KeyOut4=1;ﻩif(KeyIn4==0) {ﻩ delay(KEY_DELAY);ﻩﻩif(KeyIn4==0) ﻩﻩval=K_ADD;ﻩ} while((KeyIn1==0)||(KeyIn2==0)||(KeyIn3==0)||(KeyIn4==0));ﻩKeyOut1=1; KeyOut2=0;ﻩKeyOut3=1;ﻩKeyOut4=1;ﻩif(KeyIn4==0)ﻩ{ﻩﻩdelay(KEY_DELAY); ﻩif(KeyIn4==0)ﻩﻩ val=K_LEFT;ﻩ}ﻩwhile((KeyIn1==0)||(KeyIn2==0)||(KeyIn3==0)||(KeyIn4==0)); KeyOut1=1;ﻩKeyOut2=1;ﻩKeyOut3=0;ﻩKeyOut4=1;ﻩif(KeyIn4==0) {ﻩﻩdelay(KEY_DELAY);ﻩﻩif(KeyIn4==0) ﻩval=K_SUB; }ﻩwhile((KeyIn1==0)||(KeyIn2==0)||(KeyIn3==0)||(KeyIn4==0));ﻩKeyOut1=1;ﻩKeyOut2=1;ﻩKeyOut3=1;ﻩKeyOut4=0;ﻩif(KeyIn2==0)ﻩ{ﻩﻩdelay(KEY_DELAY);ﻩﻩif(KeyIn2==0)ﻩﻩﻩval=K_SET;ﻩ} if(KeyIn3==0)ﻩ{ﻩﻩdelay(KEY_DELAY); ﻩif(KeyIn3==0)ﻩﻩﻩval=K_ENTER;ﻩ}ﻩif(KeyIn4==0) {ﻩﻩdelay(KEY_DELAY); ﻩif(KeyIn4==0)ﻩ ﻩval=K_RIGHT; }ﻩwhile((KeyIn1==0)||(KeyIn2==0)||(KeyIn3==0)||(KeyIn4==0));ﻩreturnval;}/**制作数码管数据*/voidmake_led_number(void){ﻩET0=0; Led_buf[0]=0x7F&Ledcode[Time[0]%10];ﻩLed_buf[1]=Ledcode[Time[0]/10];ﻩLed_buf[2]=0x7F&Ledcode[Time[1]%10]; Led_buf[3]=Ledcode[Time[1]/10];ﻩLed_buf[4]=0x7F&Ledcode[Time[2]%10];ﻩLed_buf[5]=Ledcode[Time[2]/10];ﻩET0=1;}/**启动clock数字闪烁*/voidstart_flash(void){ﻩT_n=0; ﻩLed_buf[2*Num]=0x7F&Ledcode[Time[Num]%10];ﻩLed_buf[2*Num+1]=Ledcode[Time[Num]/10];ﻩTH1=0xDC;ﻩ//定时10msTL1=0x00;TR1=1;ﻩET1=1;}/**停止clock数字闪烁*/voidstop_flash(void){ﻩET1=0;TR1=0;ﻩLed_buf[2*Num]=0x7F&Ledcode[Time[Num]%10];ﻩLed_buf[2*Num+1]=Ledcode[Time[Num]/10];}/**时钟设置*/voidset_clock(void){ﻩuint8k_val,flag=0;ﻩﻩNum=0;ﻩﻩwhile(1)ﻩ{ﻩﻩk_val=scan_key(); ﻩﻩ if(k_val==0)ﻩﻩ{ﻩ ﻩif(flag==0)ﻩﻩ {ﻩ ﻩ start_flash();ﻩﻩﻩﻩflag=1;ﻩﻩﻩ} ﻩﻩcontinue;ﻩ }ﻩﻩﻩﻩflag=0;ﻩﻩstop_flash(); ﻩ ﻩif(k_val==K_ENTER)ﻩﻩ{ ﻩﻩset_time(Time);ﻩﻩﻩbreak;ﻩ }ﻩﻩﻩﻩswitch(k_val)ﻩﻩ{ ﻩﻩcaseK_ADD:ﻩﻩﻩﻩif(Num==2)ﻩﻩﻩﻩ{ﻩﻩ ﻩﻩif(Time[Num]>=23) ﻩ ﻩﻩﻩTime[Num]=0;ﻩﻩﻩﻩﻩelseﻩﻩﻩﻩﻩ Time[Num]++;ﻩﻩ ﻩ}ﻩﻩ ﻩelseﻩ ﻩﻩ{ﻩ ﻩﻩif(Time[Num]>=59)ﻩﻩﻩ ﻩﻩTime[Num]=0;ﻩ ﻩ ﻩelseﻩﻩ ﻩﻩTime[Num]++;ﻩﻩﻩﻩ}ﻩﻩ break;ﻩﻩﻩcaseK_SUB:ﻩ ﻩﻩif(Num==2)ﻩﻩ ﻩ{ﻩ ﻩ if(Time[Num]==0) ﻩﻩﻩﻩﻩTime[Num]=23;ﻩﻩﻩﻩﻩelseﻩﻩﻩ ﻩﻩTime[Num]-—;ﻩﻩﻩﻩ}ﻩﻩﻩﻩelseﻩ ﻩﻩ{ﻩ ﻩﻩﻩif(Time[Num]==0)ﻩﻩ ﻩﻩﻩTime[Num]=59; ﻩﻩ ﻩelseﻩﻩ ﻩ Time[Num]--;ﻩﻩ ﻩ}ﻩ ﻩbreak;ﻩﻩﻩﻩﻩﻩ ﻩcaseK_LEFT:ﻩﻩﻩﻩif(Num>=2)ﻩﻩﻩﻩﻩNum=0;ﻩ ﻩﻩelseﻩﻩ ﻩﻩNum++;ﻩﻩﻩ break;ﻩﻩﻩcaseK_RIGHT: ﻩﻩﻩif(Num==0)ﻩ ﻩﻩﻩNum=2;ﻩﻩ elseﻩﻩﻩﻩﻩNum——;ﻩﻩﻩﻩbreak;ﻩﻩﻩdefault:break;ﻩ }ﻩﻩmake_led_number();ﻩ}}/**数码管显示*/voidshow_num(uint8*buf){ﻩENLED=1;ﻩswitch(Led_n)ﻩ{ﻩﻩcase0:ﻩﻩﻩADDR0=0;ﻩﻩﻩADDR1=0;ﻩﻩﻩADDR2=0;ﻩﻩﻩP0=buf[0];ﻩﻩﻩbreak; ﻩcase1:ﻩ ﻩADDR0=1; ﻩﻩADDR1=0; ﻩﻩADDR2=0; ﻩ P0=buf[1];ﻩﻩﻩbreak; case2:ﻩﻩﻩADDR0=0; ﻩﻩADDR1=1;ﻩﻩﻩADDR2=0; ﻩ P0=buf[2]; ﻩﻩbreak; ﻩcase3:ﻩﻩﻩADDR0=1;ﻩﻩ ADDR1=1; ﻩﻩADDR2=0;ﻩ ﻩP0=buf[3];ﻩ ﻩbreak; ﻩcase4:ﻩﻩ ADDR0=0; ﻩﻩADDR1=0;ﻩﻩ ADDR2=1; ﻩﻩP0=buf[4];ﻩ ﻩbreak;ﻩﻩcase5: ﻩﻩADDR0=1;ﻩﻩﻩADDR
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论