畢業(yè)設計液晶顯示時間控制器的設計_第1頁
畢業(yè)設計液晶顯示時間控制器的設計_第2頁
畢業(yè)設計液晶顯示時間控制器的設計_第3頁
畢業(yè)設計液晶顯示時間控制器的設計_第4頁
畢業(yè)設計液晶顯示時間控制器的設計_第5頁
已閱讀5頁,還剩54頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

液晶顯示時間控制器設計LiquidCrystalDisplayTimeControllerDesign學生姓名:岳維啟學生學號:10780220專業(yè)名稱:電子信息科學與技術指導教師:孫瑩光(副教授)計算機與信息工程學院2014年6月10日

獨創(chuàng)性聲明本人聲明所呈交的畢業(yè)設計(論文)是本人在指導教師指導下進行的研究工作和取得的研究成果,除了文中特別加以引用標注之處外,論文中不包含其他人已經(jīng)發(fā)表或撰寫過的研究成果,沒有偽造數(shù)據(jù)的行為。畢業(yè)設計(論文)作者簽名:簽字日期:年月日畢業(yè)設計(論文)版權使用授權書本畢業(yè)設計(論文)作者完全了解學校有關保留、使用論文的規(guī)定。同意學校保留并向有關管理部門或機構送交論文的復印件和電子版,允許論文被查閱和借閱。本人授權天津城建大學可以將本論文的全部或部分內(nèi)容編入有關數(shù)據(jù)進行檢索,可以采用影印、縮印或掃描等復制手段保存和匯編本論文。(保密的畢業(yè)設計(論文)在解密后適用本授權說明)畢業(yè)設計(論文)作者簽名:指導教師簽名:簽字日期:年月日簽字日期:年月日

摘要現(xiàn)如今單片機系統(tǒng)已經(jīng)普遍于我們的生活,電磁爐、微波爐、冰箱、空調(diào)等,凡是有控制面板和遙控器的基本上都內(nèi)嵌有單片機模塊。而時間控制器是應用于民用、軍用一種非常常見的控制模塊,小到家電,大道大型機械,甚至軍用設備都有它的身影。時間控制器常用于作息控制,比如上課下課的鬧鈴,控制生產(chǎn)機械的定時開與關,這就是可編程時間控制器應用廣泛的地方。可編程控制器是一種全天候可以不用人在旁邊駐守的一種自動控制的模塊,它可以大大節(jié)省人力、物力以及時間,可以大大的提升工作效率可以減少不必要的工作。時間控制器可以用于每天分時段的設備開與關,以及當前日歷與時間的顯示。時間控制器大多都是穩(wěn)定性強,精度較高,具有不錯的抗干擾性,可以在嚴酷條件下工作,可以嵌入到定時采集信息的儀器中去。本文所設計的時間控制器可以精確定時20個時間的控制以及顯示日歷時間溫度等信息,還可以顯示下個控制時刻,以及通過按鍵改變時間控制的時間和擁有倒計時功能。時間控制器可以應用于自動化生產(chǎn)線,提高生產(chǎn)效率,減少控制的大量重復性勞動,本文是對時間控制器整個設計工作的較全面的介紹及總結。關鍵詞:時間控制器;控制;定時;輸入輸出

ABSTRACTNowadaysSCMsystemhasbeencommoninourlife,suchasinductioncooker,microwaveoven,refrigerator,airconditioner,thosewhohaveacontrolpanelandremotecontrolofbasicallywithembeddedMCUmodule.Andtimecontrollerisakindofverycommonusedincivilianandmilitarycontrolmodule,smalltohomeappliance,avenuelargemachines,andevenmilitaryequipmenthasitsshadow.Classtimecontrollerusedtoschedulecontrol,suchasaclassofalarm,controlintheproductionofmechanicaltimingonandoff,thisistheplacewheretimeprogrammablecontrollerisusedwidely.Programmablecontrollerisakindofall-weathercannotbesideofchooseandemploypersonsstationedakindofautomaticcontrolmodule,itcangreatlysavemanpower,materialresourcesandtime,cangreatlyimprovetheworkefficiencycanreduceunnecessarywork.Timecontrollercanbeusedineveryperiodoftimeoftheequipmentonandoff,andthecurrentcalendarandtimedisplay.Mostoftimecontrollerarestrongstability,highprecision,hasagoodanti-jamming,canworkunderharshconditions,canbeembeddedintotiminginstrumentofgatheringinformation.Inthispaper,thedesignedcontrollercanprecisetiming20timeinformationsuchasthetemperaturecontrolanddisplaythecalendartime,canalsodisplaythenextmomentcontrol,andbythetimeofkeychangecontrolandhasacountdownfunction.Timecontrollercanbeusedintheautomaticproductionline,improvetheproductionefficiency,reducethecontrolofalargenumberofrepetitivework,thisarticleistotimecontrollerisrelativelycomprehensiveintroductionandsummaryofthewholedesignwork.Keywords:timecontroller;control;timing;inputandoutput

目錄TOC\o"1-3"\h\u10169第一章緒論 致謝時光如梭,曾經(jīng)欣喜自己考上大學的我眨眼間將要離開了在此學習生活了四年的大學,說實話我的內(nèi)心充滿了不舍和眷戀,雖然我是一個懷舊的人,但是我需要往前看,馬上要步入職場的我對此并不慌張和彷徨,我堅信人生就像一場旅程,我只是從一個歇腳的地方踏上新的旅途,我將會把我學到的知識學以致用,并且我相信我一定會活到老學到老,一直補充著自己的不足,和學習新的知識。眨眼間兩個月的時間就要過去了,從我接到論文題目和任務書,到系統(tǒng)的論證,硬件的完成,軟件的一遍遍修改、調(diào)試,以及最終的系統(tǒng)實現(xiàn)功能,再到論文的準備,查找資料、文獻,一個字一個字的往論文上打字,無數(shù)遍的修改最終完成了畢業(yè)論文。雖然我的論文比較生疏和畢業(yè)設計比較粗糙,但是是我辛苦兩個月的成果,當我拿著成果看的時候,我的內(nèi)心是充滿了喜悅的,就好似父母看待自己孩子一樣,從無到有,有著那種滿足的成就感。說道此我不得不感謝這四年來學校老師的培養(yǎng),是您們的辛苦與汗水澆灌了我們這些小樹茁壯成長為一棵棵大樹,您們不光教授了我們知識,還教授了我們做人的道理,培養(yǎng)了我們自己的創(chuàng)造性思維,和自己獨立思考的能力,以及對整體的規(guī)劃、安排、實現(xiàn)的能力。在此特別感謝我的指導老師孫瑩光教授,他從大二期間教授我們單片機知識、計算機硬件知識,到最后畢業(yè)設計我找到了孫瑩光教授作為我的指導老師,孫瑩光教授教學嚴謹,專業(yè)能力強,教授我很多知識,在我卡殼的時候給予了我許多的幫助,一步步指導我完成我的畢業(yè)設計,在此再次感謝您孫瑩光老師。在此感謝我的父母這四年來對我的鼓勵和支持,每次拿著生活費我都會想到這些是父母辛辛苦苦的血汗錢。在此感謝您們的從小到大的撫養(yǎng)教育,對于我文化科學知識啟迪的培養(yǎng),讓我在彷徨灰心的時候,給與我心靈的港灣。在以后的日子里,我會更加的努力的學習工作,好好的孝順您們。在此感謝這四年我的同窗們,這四年我們互相幫助,互相學習,互相進步,一起走過這四年的風風雨雨,我會好好真心珍藏這份美好的回憶。在此感謝我這四年的室友們,雖然大家都有著種種不同的生活習慣,但是由于緣分我們聚在了一起,我們互相容忍別人的缺點,互相鼓勵、幫助和學習,過了這大學四年,我會說一句好哥們珍重。在此特別感謝我的同學翟菲菲同學,他給予了很多關于學習和畢業(yè)設計的幫助,把從一個單片機小白的我變?yōu)榱艘粋€單片機菜鳥,真心謝謝你。最后了,在此我只能說一句自此海闊憑魚躍,天高任鳥飛,祝愿我們未來一切順利,越來越好。參考文獻參考文獻[1]STC12C5A60S2系列單片機器件手冊[S],/index.htm.[2]張毅剛,單片機原理及應用[M],高等教育出版社,2006.[3]李華,MCS-51系列單片機實用接口技術[M],北京航空航天大學出版社,1993.[4]何立民,單片機應用系統(tǒng)設計[M],北京航空航天大學出版社,1990.[5]高鵬、安濤等,電路設計與制版Protel99入門與提高[M],人民郵電出版社,2000.[6]字符液晶模塊說明書[S].[7]陳勇,DS12887實時時鐘芯片及其應用[J],電子世界,1998(2)0:39-40.[8]張義和,王敏男等.例說51單片機[M],人民郵電出版社,2008.[9]周華興,實時時鐘芯片DS12887特點與應用[J],電子世界,2005(7):47-48.[10]單片機STC12C5A60S2資料[S],/jichuzhishi/datasheet/STC12C5A60S2/MCU/185549.html[11]郭凌、姚大紅,新型實時時鐘芯片DS12887原理及應用[D],2006[12]百度百科單片機芯片資料[Z],/view/1012.htm?fr=aladdin[13]簡單介紹幾種常見的單片機/News/view/id/2.html[14]魯廣英.基于單片機電子萬年歷的設計與實現(xiàn)[J].硅谷.2010(12)[15]吳瑰麗,劉建華,崔玉潔.單片機與時鐘芯片DS12C887的接口設計[J].石家莊鐵路工程職業(yè)技術學院學報.2004(02)[16]趙亞轉.淺談單片機應用與單片機芯片——兼對八位單片機學習的感想[J].科技傳播.2010(08)[17]齊婉玉,孟英紅,沈滿.用DS18B20進行溫度檢測的方法與技巧[J].儀器儀表學報.2003(S2)[18]Joe-AirJiang.Applicationofaweb-basedremoteagro-ecologicalmonitoringsystemforobservingspatialdistributionanddynamicsofBactroceradorsalisinfruitorchards.[J].PrecisionAgriculture,2013,14(3)[19]BlackAM.Progressinnon-invasiverespiratorymonitoringusinguncalibratedbreathingmovementcomponents..[J].PhysiologicalMeasurement,2001,22(1)附錄附錄#include<STC12C5A60S2.h>#defineuintunsignedint#defineucharunsignedcharsbitbeep=P1^2;sbits1=P1^0;sbits2=P1^1;sbits3=P1^2;sbits4=P1^3;sbitrs=P2^0;sbitrw=P2^1;sbitlcden=P2^7;sbitrd=P3^7;sbitwr=P3^6;sbitdsirq=P3^2;sbitdsas=P4^5;sbitdscs=P2^6;sbitDQ=P1^7;bitflag1,flag_ri;//定義兩個位置變量uinttvalue;uchartflag;ucharcount,s1num,flag,t0_num;ucharxdatasavetimer[20];charmiao,shi,fen,year,month,day,week,nmiao,nshi,nfen;ucharcodetable[]="20--";//液晶固定顯示內(nèi)容ucharcodetable1[]="::";voidwrite_ds(uchar,uchar);voidset_alarm(uchar,uchar,uchar);voidread_alarm();ucharread_ds(uchar);voidset_time();voiddisplay();ucharread_temp();voidsave_timer();voiddelay(uintz){uintx,y;for(x=z;x>0;x--) for(y=110;y>0;y--);}voiddi(){beep=0;delay(100);beep=1;}voidsave_timer(void){unsignedchari;a=nshi*60+nfensavetimer[times]=a;times++;if(20<=times)times=0;}voiddelay1(uinti){ while(i--);}voidwrite_com(ucharcom){//寫液晶命令函數(shù)rs=0;rw=0;lcden=0;rd=0;wr=0;P0=com;delay(3);lcden=1;delay(3);lcden=0;}voidwrite_date(uchardate){//寫液晶數(shù)據(jù)函數(shù)rs=1;rw=0;lcden=0;rd=0;wr=0;P0=date;delay(3);lcden=1;delay(3);lcden=0;}voidwrite_ds(ucharadd,uchardate){//寫12887函數(shù)//dsas=0;delay(2);dscs=0;dsas=1;rd=1;wr=1;delay(2);P0=add;delay(2); //先寫地址dsas=0;wr=0;delay(2);P0=date;//在寫數(shù)據(jù)delay(2);wr=1;dsas=1;dscs=1;}ucharread_ds(ucharadd){//讀12887函數(shù)uchards_date;//dsas=0;delay(1);dsas=1;rd=1;wr=1;dscs=0;delay(2);P0=add;delay(2);dsas=0;rd=0;delay(2);P0=0xff;delay(2);ds_date=P0;delay(2);rd=1;dsas=1;dscs=1;returnds_date;}//voidDS_init()//{//DS_A=0x20;// DS_B=0x12;//}//voidwrite_time()//{// DS_A=0x2f;//寄存器A// DS_B|=0x80;// Years=0x13;//年// Month=0x09;//月// Day=0x13;//日// Week=0x05;//星期// Hour=0x10;//時// Minute=0x55;//分// Second=0x00;//秒// DS_B&=0x7f;//寄存器A//}/**///首次操作12887時給與寄存器的初始化voidset_time(){write_ds(0x0A,0x20);//正常更新,二進制格式,24進制小時write_ds(0x0B,0x12);//禁止更新,接下來初始化數(shù)據(jù),即寫入時間,日期等write_ds(0x0A,0x2f);//禁止更新,接下來初始化數(shù)據(jù),即寫入時間,日期等write_ds(0x0B,0x86);//禁止更新,接下來初始化數(shù)據(jù),即寫入時間,日期等write_ds(0x00,0x00);write_ds(0x01,0x16);write_ds(0x02,0x1a);write_ds(0x03,0x00);write_ds(0x04,0x0b);write_ds(0x05,0x00);write_ds(0x06,1);write_ds(0x07,16);write_ds(0x08,6);write_ds(0x09,14);//write_ds(0x0A,0x20);//正常更新,二進制格式,24進制小時write_ds(0x0B,0x26);//正常更新,二進制格式,24進制小時}voidread_alarm(){//讀取12887鬧鐘值nmiao=read_ds(0x01);nfen=read_ds(0x03);nshi=read_ds(0x05);}voidinit(){//初始化函數(shù)ucharnum;EA=1;EX0=1;IT0=1;flag=0;flag1=0;t0_num=0;flag_ri=0;//beep=0;s1num=0;week=1;lcden=0;P1=0x0f;P4SW=0x20;/**///以下是首次設置ds12887 時使用,以后不必在寫入write_ds(0x0A,0x20);//打開振蕩器//write_ds(0x0B,0x86);//禁止更新,接下來初始化數(shù)據(jù),即寫入時間,日期等//write_ds(0x0B,0x06);//正常更新,二進制格式,24進制小時write_ds(0x0B,0x26);//設置24小時模式,BCD格式,開啟鬧鈴中斷//set_time();//設置默認鬧鐘時間write_com(0x38);//1602液晶初始化write_com(0x0c);write_com(0x06);write_com(0x01);write_com(0x80);for(num=0;num<16;num++) { write_date(table[num]); delay(1); }write_com(0x80+0x40);for(num=0;num<11;num++) { write_date(table1[num]); delay(1); }}voidwrite_sfm(ucharadd,chardate) {//1602液晶刷新時分秒函數(shù)chartens,ge;tens=date/10;ge=date%10;write_com(0x80+0x40+add);//write_com(0x06);write_date(0x30+tens);write_date(0x30+ge);}voidwrite_nyr(ucharadd,chardate){//1602液晶刷新年月日charshi,ge;shi=date/10;ge=date%10;write_com(0x80+add);write_com(0x06);write_date(0x30+shi);write_date(0x30+ge);}voidwrite_week(charwe){//寫液晶星期顯示函數(shù)write_com(0x80+12);//write_com(0x06);switch(we){case1:write_date('M');delay(5); write_date('O');delay(5); write_date('N'); break;case2:write_date('T');delay(5); write_date('U');delay(5); write_date('E'); break;case3:write_date('W');delay(5); write_date('E');delay(5); write_date('D'); break;case4:write_date('T');delay(5); write_date('H');delay(5); write_date('U'); break;case5:write_date('F');delay(5); write_date('R');delay(5); write_date('I'); break;case6:write_date('S');delay(5); write_date('A');delay(5); write_date('T'); break;case7:write_date('S');delay(5); write_date('U');delay(5); write_date('N'); break;}}voidkeyscan(){ucharssec=0;ucharminn=1;ucharhour=0;uinttimes=0;if(flag_ri==1) { if((s1==0)||(s2==0)||(s3==0)||(s4==0)) { delay(5); if((s1==0)||(s2==0)||(s3==0)||(s4==0)) { while(!(s1&&s2&&s3&&s4));di(); flag_ri=0; //清除報警標志 //beep=0; } } } if(s1==0) { delay(5); if(s1==0) { s1num++; if(flag1==1) if(s1num==4) s1num=1; flag=1; while(!s1);di(); switch(s1num) { //光標閃爍點定位 case1:write_com(0x80+0x40+8); write_com(0x0f); break; case2:write_com(0x80+0x40+5); break; case3:write_com(0x80+0x40+2); break; case4:write_com(0x80+12); break; case5:write_com(0x80+9); break; case6:write_com(0x80+6); break; case7:write_com(0x80+3); break; case8:s1num=0; write_com(0x0c); flag=0; write_ds(0x00,miao); write_ds(0x02,fen); write_ds(0x04,shi); write_ds(0x06,week); write_ds(0x07,day); write_ds(0x08,month); write_ds(0x09,year); break; } } } if(s1num!=0) { delay(1); if(s2==0) { while(!s2);di(); switch(s1num) { //根據(jù)功能鍵次數(shù)調(diào)節(jié)相應數(shù)值 case1:miao++; if(miao==60) miao=0; write_sfm(0x0a,miao); write_com(0x80+0x40+8); if(flag1==0) write_ds(0,miao); break; case2:fen++; if(fen==60) fen=0; write_sfm(0x07,fen); write_com(0x80+0x40+5); if(flag1==0) write_ds(2,fen); break; case3:shi++; if(shi==24) shi=0; write_sfm(0x04,shi); write_com(0x80+0x40+2); if(flag1==0) write_ds(4,shi); break; case4:week++; if(week==8) week=1; write_week(week); write_com(0x80+12); write_ds(6,week); break; case5:day++; if(day==32) day=1; write_nyr(0x09,day); write_com(0x80+9); write_ds(7,day); break; case6:month++; if(month==13) month=1; write_nyr(0x06,month); write_com(0x80+6); write_ds(8,month); break; case7:year++; if(year==100) year=0; write_nyr(0x03,year); write_com(0x80+3); write_ds(9,year); break; } } } if(s3==0) { delay(1); if(s3==0) { while(!s3);di(); ssec=0;while(1){if(s4==0)//顯示時間{ delay(5);if(s4==0)//顯示時間break;}if((read_ds(0x0c)&0x10)!=0)//顯示時間{//if()write_sfm(0x02,hour); write_sfm(0x05,minn); write_sfm(0x08,ssec);times++;if(ssec<=0){minn--;ssec=60;}ssec--;if(times%60==0){ssec=0;}if(times>60){beep=0;ssec=0;minn=0;}if(times>62)beep=1;read_temp(); display();//if(ssec<=0){minn--;ssec=59;}}} } } if(s4==0)//檢測s4 { delay(5); if(s4==0) { flag1=~flag1; while(!s4); di(); if(flag1==0) { //退出鬧鐘時設置保存數(shù)值 flag=0; write_com(0x80+0x40); write_date(''); write_date(''); write_com(0x0c); write_ds(0x01,miao); write_ds(0x03,fen); write_ds(0x05,shi); } else { //進入鬧鐘設置 read_alarm();//讀取原始數(shù)據(jù) miao=nmiao; //重新賦值用于按鍵調(diào)節(jié) fen=nfen; shi=nshi; write_com(0x80+0x40); write_date('N');//顯示標志 write_date('Z');// write_com(0x80+0x40+3) ; write_sfm(0x02,nshi); write_sfm(0x05,nfen); write_sfm(0x08,nmiao);nmiao=read_ds(0x02);nfen=read_ds(0x04);nshi=read_ds(0x05);//ucharssec=0;//ucharminn=0;//ucharhour=0;////uinttimes=0;/**********************************************************//************************************************************/ } } }}voidmain()//主函數(shù){ init();//set_time(); while(1) { keyscan();//按鍵掃描 if(flag_ri==1) { di(); delay(100); di(); delay(500); beep=0; } if(flag==0&&flag1==0) { keyscan();//按鍵掃描 year=read_ds(0x09); month=read_ds(0x08); day=read_ds(0x07); week=read_ds(0x06); shi=read_ds(0x04); fen=read_ds(0x02); miao=read_ds(0x00); write_sfm(8,miao) ; write_sfm(5,fen); write_sfm(2,shi); write_week(week); write_nyr(3,year); write_nyr(6,month); write_nyr(9,day);read_temp(); display();save_timer(); } }}voidexter()interrupt0{ucharc;//進入中斷表示鬧鐘時間到flag_ri=1; //設置標志位//beep=0;c=read_ds(0x0c);//讀取12887的c寄存器表示響應了中斷} voidds18b20rst()//ds18b20初始化子函數(shù){ //要求"數(shù)據(jù)線拉高-延時-數(shù)據(jù)線拉低-延時大于480微妙-數(shù)據(jù)線拉高-延時等待" ucharx=0; DQ=1;//信號線DQ復位 delay1(40);//延時 DQ=0;//DQ拉低 delay1(4000);//精確延時大于480us DQ=1;//拉高 delay1(400);}voidds18b20wr(ucharwdata)//寫數(shù)據(jù)子函數(shù),無返回值,含參數(shù){ uchari=0; for(i=8;i>0;i--)//要寫完一個字節(jié),故需要重復8次以下操作 { DQ=0;//數(shù)據(jù)線拉低 DQ=wdata&0x01;//wdata是一個形參,將其與00000001進行按位與

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論