畢業(yè)設(論文)-多功能數字鬧鐘系統設計與實現_第1頁
畢業(yè)設(論文)-多功能數字鬧鐘系統設計與實現_第2頁
畢業(yè)設(論文)-多功能數字鬧鐘系統設計與實現_第3頁
畢業(yè)設(論文)-多功能數字鬧鐘系統設計與實現_第4頁
畢業(yè)設(論文)-多功能數字鬧鐘系統設計與實現_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

Abstract

參考文獻[1]王云濤,王楠.淺談多功能數字鐘的設計[J].山東電力高等??茖W報.2005.4(8):71-72[2]Yang.Y.,Yi.J.,Woo,Y.Y.,andKim.B.:‘OptimumdesignforlinearityandefficiencyofmicrowaveDohertyamplifierusinganewloadmatchingtechnique’,Microw.J.,2001,44,(12),pp.20–36

[3]趙琳,王璐,閔莉.基于單片機的時鐘校時系統設計[J].科技廣場.2009.1:192-194[4]V.Yu.Teplov,A.V.Anisimov.ThermostattingSystemUsingaSingle-ChipMicrocomputerandThermoelectricModulesBasedonthePeltierEffect[J],2002

[5]張開碧,王浩,曾勇斌.基于STC89C52單片機的多功能數字鐘的設計[J].科技信息.2010.35:7[6]朱華光.LCD1602編程中一些問題怎樣解決[J].電腦編程技巧與維護.2010.15:90-91[7]黃克亞.基于液晶顯示器的數字電子鐘設計[J].科學之友:下旬.2010.10:33-34[8]陳洪財.基于單片機的模塊化教學研究[N].電氣電子教學學報.2010.32(6)[9]袁旭軍,莊松林.單片機復位電路的可靠性分析[J].電子技術應用.2002.11:19-21[10]張開碧,王浩,曾勇斌.基于STC89C52單片機的多功能數字鐘的設計[J].科學之友:下旬.2010.(35):7[11]李曉靜等.液晶顯示控制器與單片機的接口及編程[J],電子技術,2004年第6期[12]趙德生,李德倉.基于ATS89C52的數字電子鐘系統的設計與實現[J].鐵路計算機應用.2010.19(12):43-46[13]向繼文等.基于AT89C51的電子鐘系統設計[J],機電產片開發(fā)與創(chuàng)新,2007年第2期[14]馮育長.單片機系統設計與實例分析[M],西安:西安電子科技大學出版社,2007.5[15]萬勝前.基于KeilC51軟件的電子鐘設計與制作[J],鄂州大學學報,2007年第2期[16]劉軍等.單片機原理與接口技術[M],上海:華東理工大學出版社,2006.2[17]基于KeilC51軟件的電子鐘設計與制作[J],鄂州大學學報,2007年第2期附錄

附錄附錄1:部分程序代碼#include<reg52.h>#include<intrins.h>//包含_nop_()函數定義的頭文件#include"src.h"#include"delay.h"#include"init.h"#include"keyscan.h"#include<string.h>#include<stdio.h>uchars1num,shi,fen,miao,show_flag,set_flag=0,alarm_flag=1,as=0,am=0,ah=0;uchards=1,dm=0,dh=0,djs_flag=0;ucharU8FLAG,U8comdata,U8temp;ucharU8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp,U8checkdata_temp;ucharShiDu=23,WenDu=35; //定義溫,濕度voidRH(void);bitBusyTest(void){ bitresult; RS=0;//根據規(guī)定,RS為低電平,RW為高電平時,可以讀狀態(tài) RW=1; E=1;//E=1,才允許讀寫 _nop_();//空操作 _nop_(); _nop_(); _nop_();//空操作四個機器周期,給硬件反應時間 E=0; returnresult;}voidwrite_com(ucharcom)//液晶寫命令函數{while(BusyTest()==1);//如果忙就等待 RS=0;//根據規(guī)定,RS和R/W同時為低電平時,可以寫入指令 RW=0; E=0;//E置低電平(寫指令時,//就是讓E從0到1發(fā)生正跳變,所以應先置"0" _nop_(); _nop_();//空操作兩個機器周期,給硬件反應時間 LCD_PORT=com;//將數據送入P0口,即寫入指令或地址 _nop_(); _nop_(); _nop_(); _nop_();//空操作四個機器周期,給硬件反應時間 E=1;//E置高電平 _nop_(); _nop_(); _nop_(); _nop_();//空操作四個機器周期,給硬件反應時間 E=0;//當E由高電平跳變成低電平時,液晶模塊開始執(zhí)行命令}voidwrite_date(uchardate) //液晶寫數據函數{ while(BusyTest()==1);//如果忙就等待 RS=1;//RS為高電平,RW為低電平時,可以寫入數據 RW=0; E=0;//E置低電平(寫指令時,,//就是讓E從0到1發(fā)生正跳變,所以應先置"0" LCD_PORT=date;//將數據送入P0口,即將數據寫入液晶模塊 _nop_(); _nop_(); _nop_(); _nop_();//空操作四個機器周期,給硬件反應時間 E=1;//E置高電平 _nop_(); _nop_(); _nop_(); _nop_();//空操作四個機器周期,給硬件反應時間 E=0;//當E由高電平跳變成低電平時,液晶模塊開始執(zhí)行命令}voidwrite_sfm(ucharadd,uchardate)//寫時分秒函數{ ucharshi,ge; shi=date/10; ge=date%10; write_com(0x80+0x40+add); //設置顯示位置 delay(5); write_date(0x30+shi); //送去液晶顯示十位 delay(5); write_date(0x30+ge); //送去液晶顯示個位 delay(5);}voidshow_time(){ staticucharo_shi,o_fen,o_miao; staticucharo_as=0,o_am=0,o_ah=0; staticucharo_ds=0,o_dm=0,o_dh=0; if(!set_flag) { if(gn_flag==1) { if(o_shi!=shi){write_sfm(SHI_ADDR,shi);o_shi=shi;} if(o_fen!=fen){write_sfm(FEN_ADDR,fen);o_fen=fen;} if(o_miao!=miao){write_sfm(MIAO_ADDR,miao);o_miao=miao;} } elseif(gn_flag==3) { if(o_dh!=dh){write_sfm(SHI_ADDR,dh);o_dh=dh;} if(o_dm!=dm){write_sfm(FEN_ADDR,dm);o_dm=dm;} if(o_ds!=ds){write_sfm(MIAO_ADDR,ds);o_ds=ds;} }elseif(gn_flag==4) //濕度 { write_sfm(SHI_ADDR,ShiDu); } elseif(gn_flag==5) //濕度 { write_sfm(SHI_ADDR,WenDu); } } else { if(gn_flag==1) //設置時間 { if(o_shi!=shi) { o_shi=shi; write_com(0x06); delay(5); write_sfm(SHI_ADDR,shi); delay(5); write_com(0x80+0x40+SHI_ADDR); delay(5); write_com(0x0f); delay(5); } if(o_fen!=fen) { o_fen=fen; write_com(0x06); delay(5); write_sfm(FEN_ADDR,fen); delay(5); write_com(0x80+0x40+FEN_ADDR); delay(5); write_com(0x0f); delay(5); } if(o_miao!=miao) { o_miao=miao; write_com(0x06); delay(5); write_sfm(MIAO_ADDR,miao); delay(5); write_com(0x80+0x40+MIAO_ADDR); delay(5); write_com(0x0f); delay(5); } } elseif(gn_flag==2) //設置鬧鐘 { if(o_ah!=ah) { o_ah=ah; write_com(0x06); delay(5); write_sfm(SHI_ADDR,ah); delay(5); write_com(0x80+0x40+SHI_ADDR); delay(5); write_com(0x0f); delay(5); } if(o_am!=am) { o_am=am; write_com(0x06); delay(5); write_sfm(FEN_ADDR,am); delay(5); write_com(0x80+0x40+FEN_ADDR); delay(5); write_com(0x0f); delay(5); } if(o_as!=as) { o_as=as; write_com(0x06); delay(5); write_sfm(MIAO_ADDR,as); delay(5); write_com(0x80+0x40+MIAO_ADDR); delay(5); write_com(0x0f); delay(5); } } elseif(gn_flag==3)//設置倒計時 { if(o_dh!=dh) { o_dh=dh; write_com(0x06); delay(5); write_sfm(SHI_ADDR,dh); delay(5); write_com(0x80+0x40+SHI_ADDR); delay(5); write_com(0x0f); delay(5); } if(o_dm!=dm) { o_dm=dm; write_com(0x06); delay(5); write_sfm(FEN_ADDR,dm); delay(5); write_com(0x80+0x40+FEN_ADDR); delay(5); write_com(0x0f); delay(5); } if(o_ds!=ds) { o_ds=ds; write_com(0x06); delay(5); write_sfm(MIAO_ADDR,ds); delay(5); write_com(0x80+0x40+MIAO_ADDR); delay(5); write_com(0x0f); delay(5); } } } }voidmain(){ init(); delay(100); while(1) { keyscan(); if(gn_flag==4||gn_flag==5) { RH();//采集溫濕度 } show_time(); }}voiddelay_ms(intj){uchari;for(;j>0;j--) for(i=0;i<27;i++);}voidDelay_10us(void){ uchari; i--; i--; i--; i--; i--; i--;}voidCOM(void){uchari; for(i=0;i<8;i++) { U8FLAG=2; while((!P2_0)&&U8FLAG++); Delay_10us(); Delay_10us(); // Delay_10us(); U8temp=0; if(P2_0)U8temp=1; U8FLAG=2; while((P2_0)&&U8FLAG++); //超時則跳出for循環(huán) if(U8FLAG==1)break; //判斷數據位是0還是1 //如果高電平高過預定0高電平值則數據位為1 U8comdata<<=1; U8comdata|=U8temp;//0 }//for } // //濕度讀取子程序 // //以下變量均為全局變量 //溫度高8位==U8T_data_H //溫度低8位==U8T_data_L //濕度高8位==U8RH_data_H //濕度低8位==U8RH_data_L //校驗8位==U8checkdata //調用相關子程序如下 //Delay();,Delay_10us();,COM(); //voidRH(){ //主機拉低18ms P2_0=0; delay_ms(180); P2_0=1; //總線由上拉電阻拉高主機延時20us Delay_10us(); Delay_10us(); Delay_10us(); Delay_10us(); //判斷從機是否有低電平響應信號如不響應則跳出,響應則向下運行 if(!P2_0) //T! { U8FLAG=2; //判斷從機是否發(fā)出80us的低電平響應信號是否結束 while((!P2_0)&&U8FLAG++); U8FLAG=2; //判斷從機是否發(fā)出80us的高電平,如發(fā)出則進入數據接收狀態(tài) while((P2_0)&&U8FLAG++); //數據接收狀態(tài) COM(); U8RH_data_H_temp=U8comdata; COM(); U8RH_data_L_temp=U8comdata; COM(); U8T_data_H_temp=U8comdata; COM(); U8T_data_L_temp=U8comdata; COM(); U8checkdata_temp=U8comdata; //數據校驗 U8temp=(U8T_data_H_temp+U8T_data_L_temp+U8RH_data_H_temp+U8RH_data_L_temp); if(U8temp==U8checkdata_temp) { ShiDu=(U8RH_data_H_temp/16)*10+(U8RH_data_L_temp%16); WenDu=(U8T_data_H_temp/16)*10+(U8T_data_L_temp%16); } }}voidtimer0()interrupt1{ staticucharcount=0; staticintbeercnt=0,n=0; TH0=(65536-50000)/256; TL0=(65536-50000)%256; if(key_time)key_time--; count++; if(count==20)

溫馨提示

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

評論

0/150

提交評論