多功能數(shù)字鐘最報告_第1頁
多功能數(shù)字鐘最報告_第2頁
多功能數(shù)字鐘最報告_第3頁
多功能數(shù)字鐘最報告_第4頁
多功能數(shù)字鐘最報告_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、-. z課程設(shè)計題 目 基于單片機的多功能數(shù)字鐘設(shè)計 學(xué)生 任江彬 * 1013014053 所在院(系) 物理與電信工程學(xué)院 專業(yè)班級 電子102 指導(dǎo)教師 志偉 完成地點 理工學(xué)院 2021年 1月12日多功能數(shù)字鐘設(shè)計報告 摘 要多功能數(shù)字鐘是以STC89C52RC單片機為核心控制器構(gòu)成的新型數(shù)字化產(chǎn)品,由時鐘模塊、鬧鐘模塊、鍵盤顯示模塊、電源模塊、溫度、電網(wǎng)電壓和頻率測量等模塊組成。時鐘由部定時器實現(xiàn)時間的計量,通過鍵盤和數(shù)碼管可方便地校對時鐘和設(shè)置鬧鐘時間,采用光電傳感器實現(xiàn)非接觸鬧鐘止鬧功能。通過對現(xiàn)場環(huán)境溫度、電網(wǎng)頻率、電壓進展測量,實現(xiàn)電壓欠壓、過壓報警。方案比擬與論證系統(tǒng)設(shè)計

2、包含時間計量、顯示、溫度測量、電網(wǎng)頻率、電壓測量等多個局部,下面對各局部設(shè)計方案做分析和選擇。計時方案一:由51單片機實現(xiàn)時鐘功能先設(shè)定51單片機部的一個定時器/計數(shù)器工作于定時方式,對機器周期計數(shù)形成基準(zhǔn)時間,然后用另外一個定時器軟件計數(shù)的方法對基準(zhǔn)時間形成秒,秒計60次形成分鐘,分鐘計60次形成小時。方案二: 專用時鐘芯片目前市場上已有很多實時時鐘芯片,。如DS12887、DS1302等,芯片都集成了時鐘/日歷功能,給時鐘系統(tǒng)設(shè)計帶來很多方便??紤]到本錢以及編程方面的問題,因此選擇方案一。溫度采集方案一:采用集成溫度傳感器如AD590等測溫,但是電路設(shè)計復(fù)雜。 方案二:采用數(shù)字溫度傳感器

3、DS18B20 。該傳感器構(gòu)造簡單,不需外接電路,數(shù)據(jù)傳輸采用 one-wire總線,可用一根 I/O數(shù)據(jù)線傳輸數(shù)據(jù),精度高,能滿足題目1的要求,且分辨率較高,重復(fù)性和可靠性好。數(shù)字化溫度傳感器具有與單片機接口方便、直接數(shù)字量輸出等優(yōu)點,因此選用方案二。三鍵盤顯示1、鍵盤方案一:采用陣列式鍵盤,此類鍵盤是采用行列掃描方式,優(yōu)點是當(dāng)按鍵較多時可以降低占用單片機的I/O口數(shù)目,缺點是電路復(fù)雜且會加大編程難度。方案二:采用獨立式按鍵電路,每個鍵單獨占有一根I/O接口線,每個I/O口的工作狀態(tài)互不影響,此類鍵盤采用端口直接掃描方式。缺點是當(dāng)按鍵較多時占用單片機的I/O數(shù)目較多,優(yōu)點是電路設(shè)計簡單,且編

4、程極其容易。由于該系統(tǒng)采用了常規(guī)鐘表式的校對方式,用鍵較少,系統(tǒng)資源足夠用,故采用了方案二。2、顯示方案一:數(shù)碼管實現(xiàn)顯示功能。 采用共陰數(shù)碼管,用51單片的P0 I/O口控制數(shù)碼管的段選,P2 I/O 口控制數(shù)碼管的位選,同時用74LS245(數(shù)據(jù)緩沖器)增加I/O的驅(qū)動能力方案二:液晶顯示器來實現(xiàn)顯示功能。液晶顯示器來實現(xiàn)顯示功能,不僅可以實現(xiàn)根本的顯示信息,而且可以顯示豐富的符號指示信息,如AM/PM,鬧鐘符號等,信息量豐富且直觀易懂。而且液晶顯示有功耗低,體積小,重量輕,壽命長,不產(chǎn)生電磁輻射污染等優(yōu)點。 由于數(shù)碼管可以完成制作任務(wù),經(jīng)濟耐用,完全能夠滿足 電路顯示功能 。因此采用方案

5、一。非接觸止鬧功能 方案一:采用聲音控制實現(xiàn)非接觸止鬧功能,優(yōu)點是方便,但由于聲控存在靈敏度的問題,在現(xiàn)場條件差的環(huán)境中較容易引起誤動作。方案二:采用光電開關(guān)實現(xiàn)非接觸止鬧功能,因為光電開關(guān)利用物體對紅外線的反射,可檢測到物體的有無,方便有效,人只需揮揮手就可產(chǎn)生信號,完成止鬧功能??紤]到止鬧功能的準(zhǔn)確性,因此采用方案二。電壓、頻率測量交流電壓的真有效值測量可采用AC-DC絕對值運放AD536等實現(xiàn),因難于購置,方案采用由9v變壓器變壓后,經(jīng)全橋整流濾波,由A/D轉(zhuǎn)換器ADC0832實現(xiàn)電壓有效值測量。電網(wǎng)頻率是通過變壓器、過零比擬器處理后得到方波信號,對此方波信號進展頻率測量,進而得到電網(wǎng)頻

6、率。二系統(tǒng)總體設(shè)計系統(tǒng)框圖如下圖。STC89C52RC數(shù)碼管顯示報警電路鍵盤輸入電壓測量頻率測量溫度測量止鬧電路系統(tǒng)方框圖系統(tǒng)工作原理: 系統(tǒng)上電自檢后,數(shù)碼管實時實現(xiàn)時、分、秒的數(shù)字顯示以及LED對AM/PM和鬧鐘開關(guān)的顯示,通過按鍵可實現(xiàn)校對時間、設(shè)置鬧鐘時間、鬧鐘開、鬧鐘關(guān)的設(shè)定以及進展現(xiàn)場溫度、電網(wǎng)頻率、電壓值的測量和顯示。當(dāng)鬧鐘時間到和出現(xiàn)電網(wǎng)電壓欠壓、過壓報警時,通過發(fā)光二極管、蜂鳴器來實現(xiàn)聲、光報警。三、系統(tǒng)模塊設(shè)計鍵盤接口電路設(shè)計鍵盤電路設(shè)計如下圖。 鍵盤電路設(shè)計模式鍵:第一次按鍵開場校對小時;第二次按鍵開場校對分鐘;第三次按鍵開場校對秒鐘;第四次按鍵開場校對鬧鐘小時;第五次按

7、鍵開場校對鬧鐘分鐘;第六次按鍵切換現(xiàn)場溫度顯示;第七次按鍵切換電網(wǎng)電壓顯示;第八次按鍵切換電網(wǎng)頻率顯示;第九次按鍵回到初始計時界面。加鍵:當(dāng)切換校對時鐘時、分、秒和鬧鐘時、分時可進展加一操作。減鍵:當(dāng)切換校對時鐘時、分、秒和鬧鐘時、分時可進展減一操作。鬧鐘開關(guān)鍵:按鍵確定鬧鐘的開、關(guān)。2、顯示器電路設(shè)計系統(tǒng)采用數(shù)碼管顯示。數(shù)碼管與單片機接口電路如下圖。數(shù)碼管顯示電路3、溫度測量電路設(shè)計溫度測量傳感器采用DALLAS公司DS18B20的單總線數(shù)字化溫度傳感器,測溫圍為-55125,可編程為9位12位A/D轉(zhuǎn)換精度,測溫分辨率到達0.0625,單片機只需一根I/O口線便能與DS18B20通信,占用

8、單片機I/O口線少,可節(jié)省大量引線和邏輯電路。接口電路如下圖。單片機與DS18B20接口電路電網(wǎng)頻率測量交流220V電壓經(jīng)變壓器降壓后, LM393過零比擬器,將電網(wǎng)正弦波整成方波信號,此信號頻率即為當(dāng)前電網(wǎng)電壓頻率。將此脈沖信號由LM393輸出到單片機的INT1(P3.3)端口,經(jīng)編程計算出1s外部中斷的次數(shù)即為電網(wǎng)的頻率。 正弦波變方波電路電網(wǎng)電壓測量原理:交流220V電壓經(jīng)變壓器降壓后,整流濾波,取濾波后的有波動的直流電壓信號,用A/D轉(zhuǎn)換器ADC0832,實現(xiàn)時時對電網(wǎng)電壓進展檢測。設(shè)測量最高電壓值為255V,通過9V產(chǎn)生交流電壓U經(jīng)整流濾波后,用電阻分壓,取5V電壓為ADC0832的

9、滿量程輸入。由ADC0832進展A/D轉(zhuǎn)換,將得到的數(shù)字量送入單片機,處理得到電壓值并顯示。電網(wǎng)電壓測量電路6、非接觸止鬧電路設(shè)計當(dāng)鬧鐘定時到點時,會觸發(fā)聲報警,系統(tǒng)設(shè)計時采用漫射光電傳感器ST188檢測人體和遙控止鬧行為。當(dāng)人體靠近傳感器3cm以或紅外遙控器遙控時,單片時機檢測到傳感器信號,自動發(fā)出停頓鬧鐘行為。7、報警功能當(dāng)鬧鐘定時到點時,會觸發(fā)聲報警,電路如下圖。8、5V電源電路設(shè)計將220V、50HZ的市電用9V變壓器變壓后以全波整流電路作為整流網(wǎng)絡(luò),以極性電容作為濾波網(wǎng)絡(luò),采用固定式三端集成穩(wěn)壓電路7805得到5V直流穩(wěn)壓電源。選用4個1N4007整流二極管組成橋式整流電路。選100

10、0uF/25V的電解電容作為濾波電容。7805輸入端加0.33uF電容,防止電路產(chǎn)生自激振蕩,輸出端的電容用于消除電壓中的高頻噪聲,以便輸出較大的電流脈沖。 電源電路設(shè)計四系統(tǒng)測試1、測試及制作中所用儀器:數(shù)字示波器數(shù)字萬用表函數(shù)發(fā)生器直流穩(wěn)壓電源PC機一臺溫度計、秒表、烙鐵等2、測試結(jié)果1根本要求上電復(fù)位后,由顯示信息可知到達數(shù)字顯示時間、AM/PM顯示、鬧鐘開、關(guān)狀態(tài)、鬧鐘燈熄滅的顯示要求,按模式鍵,可進展時間設(shè)定,能在新的時間點上運行,實現(xiàn)時間設(shè)置功能;按模式鍵,可進展鬧鐘時間設(shè)定,能在新的時間點到達時,發(fā)聲報警,實現(xiàn)鬧鐘設(shè)置功能;按鬧鐘開關(guān)鍵,鬧鐘指示燈隨之相應(yīng)進展亮、滅切換,如果鬧鐘

11、關(guān),時間到達鬧鐘設(shè)置值時,系統(tǒng)沒有發(fā)出聲報警;如果鬧鐘開,時間到達鬧鐘設(shè)置值時,系統(tǒng)發(fā)出聲報警,實現(xiàn)鬧鐘開、關(guān)控制。2發(fā)揮局部按模式鍵,數(shù)碼管由主界面顯示進入溫度顯示界面,能準(zhǔn)確顯示出當(dāng)前的環(huán)境溫度,繼續(xù)按模式鍵返回時鐘顯示主界面;按模式鍵,數(shù)碼管由主界面顯示進入電網(wǎng)電壓、頻率測量顯示界面,能準(zhǔn)確顯示出當(dāng)前的電網(wǎng)電壓、頻率值,繼續(xù)按模式鍵返回時鐘顯示主畫面;在電壓欠壓、過壓時能報警;當(dāng)鬧鐘啟動時,在止鬧的光電傳感器前方30MM晃一下手,鬧鐘立即停鬧,實現(xiàn)非接觸止鬧功能。或者用自制的紅外遙控器,也可實現(xiàn)非接觸止鬧五、經(jīng)歷及教訓(xùn)通過此次多功能數(shù)字鐘設(shè)計制作,我將從書本上學(xué)到的知識應(yīng)用于實踐,學(xué)會了

12、一些電子電路仿真設(shè)計能力,雖然過程中遇到了一些困難,但是在解決這些問題的過程無疑也是對我自身專業(yè)素質(zhì)的一種提高。當(dāng)最終調(diào)試成功的時候也是對我們的一種肯定。此次的課設(shè)不僅增強了我在專業(yè)設(shè)計方面的信心,鼓舞了我,更是一次興趣的培養(yǎng)。 另外在這次實驗中我遇到了不少的問題針對不同的問題我采取不同的解決方法,最終一一解決設(shè)計中遇到的問題。在我遇到不懂的問題時,利用網(wǎng)上的資源,搜索查找得到需要的信息,和同學(xué)之間相互討論。這次的制作也讓我們感受到,我們在電子方面學(xué)到的只是很小的一局部知識,我們需要更多的時間來學(xué)習(xí)知識,學(xué)習(xí)技術(shù)。六參考文獻:1. 郭天祥 新概念51單片機C語言教程.電子工業(yè)2. 丁向榮 ST

13、C系列增強型8051單片機原理與應(yīng)用.電子工業(yè)3. 建忠 單片機原理及應(yīng)用. 電子科技大學(xué)4. 童詩白、華成英 模擬電子技術(shù)根底第四版. 高等教育5. 閻石 數(shù)字電子技術(shù)根底第五版. 高等教育程序:*include*define uint unsigned int *define uchar unsigned charsbit AM=P11;/AM指示燈sbit PM=P10;/PM指示燈sbit k=P12; /非接觸止鬧sbit key1=P13; /設(shè)置鍵sbit key2=P14; /加1鍵sbit key3=P15; /減1鍵sbit key4=P16; /鬧鐘開關(guān)sbit ring

14、=P17;/鬧鐘開關(guān)指示燈sbit fm=P30; / 過壓欠壓報警sbit CLK = P32;sbit DI = P35;sbit DO = P34;sbit CS = P31;sbit DQ = P36; /溫度傳感器sbit fmq= P37; /鬧鐘蜂鳴器bit ringoff;float tt;uint t;uint temp;uint adc;uint m; /頻率uint n; /電壓采樣次數(shù)uint d; /電壓uchar num,cout, keynum;uchar hour,min,sec;/時分秒uchar n_hour,n_min; /鬧鐘時分秒uchar code

15、table=0*3f,0*06,0*5b,0*4f,0*66,0*6d,0*7d,0*07,0*7f,0*6f,/0-9數(shù)字 0*bf,0*86,0*db,0*cf,0*e6,0*ed,0*fd,0*87,0*ff,0*ef, /0-9數(shù)字帶小數(shù)點0*40,0*39,0*76,0*3e; /-,c ,H ,Uvoid delay(uint z) /1ms延時函數(shù) uint *; for (z;z0;z-) for(*=110;*0;*-); /*/void init_DS18B20()/初始化 uint i; DQ = 0; i=103; while(i0)i-; DQ = 1; i=4;wh

16、ile(i0)i-;bit readbit() /讀1位數(shù)據(jù) uint i; bit dat; DQ=0;i+;/i+起延時作用 DQ=1;i+;i+; dat=DQ; i=8;while(i0)i-;return (dat);uchar tempread()/讀1個字節(jié)數(shù)據(jù)uchar i,j,dat;dat=0;for (i=1;i=8;i+) j=readbit(); dat=(j1); return(dat);void tempwrite(uchar dat) /寫1個字節(jié) uchar j; uint i; bit test; for (j=1;j=1;if(test) /寫 1 DQ=

17、0; i+;i+; DQ=1; i=8;while(i0)i-; else /寫 0 DQ=0; i=8;while(i0)i-; DQ=1; i+;i+; uint gettemp() /讀溫度數(shù)據(jù)uchar a,b;init_DS18B20();delay(1);tempwrite(0*cc); / 寫跳過讀ROM指令tempwrite(0*44); / 寫溫度轉(zhuǎn)換指令 init_DS18B20();delay(1);tempwrite(0*cc); tempwrite(0*be);a=tempread();b=tempread();t=b;t=8; t=t|a;tt=t*0.0625;

18、/分辨率0.0625t= tt*10+0.5; return(t); uint ad0832()/ADC0832驅(qū)動函數(shù) uchar k; CS=0; CLK=0; CLK=1; DI=1; CLK=0; CLK=1; DI=1; CLK=0; CLK=1; DI=0; CLK=1; CLK=0; for (k=0;k1)| 0*80; else adc=(adc1)|0*00; CS=1; return (adc); void init() /初始化函數(shù)ringoff=1; num=0;n=50; /電壓采樣50次cout=0; keynum=0;hour=12;min=0;sec=0;n_

19、hour=0;n_min=0; TMOD=0*01; /定時器0,工作方式1 TH0=(65536-50000)/256;TL0=(65536-50000)%256;IT1=1; /下降沿觸發(fā)EA=1; /開總中斷ET0=1; /開定時器0中斷E*1=1; /開計外部1中斷 TR0=1; /啟動計數(shù)器0 void T0_time() interrupt 1/定時器0中斷函數(shù)TH0=(65536-50000)/256;TL0=(65536-50000)%256;num+ ; if(num=20) num=0; sec+; E*1=0; /關(guān)閉外部1中斷 m=cout; /計數(shù)值放入變量 cout

20、=0; E*1=1;/開計外部1中斷 if(sec=60) sec=0;min+; if(min=60)min=0;hour+; if(hour=24) hour=0; void T1_time() interrupt 2/外部中斷1函數(shù) cout+;void key()/按鍵函數(shù)if(key1=0) delay(10); if(key1=0)P0=0*00;delay(5); keynum= keynum+1; TR0=0; while(!key1); if( keynum=4)TR0=1; if( keynum=9) keynum=0; if( keynum=0)if(hour=12)AM

21、=1;PM=0; else AM=0;PM=1; else AM=1;PM=1; if( keynum!=0) if(key2=0) /時間加1 delay(10); if(key2=0) P0=0*00; delay(5); while(!key2);if( keynum=1)hour+;if(hour=24)hour=0;if( keynum=2)min+;if(min=60)min=0;if( keynum=3)sec+;if(sec=60)sec=0;if( keynum=4)n_hour+;if(n_hour=24)n_hour=0;if( keynum=5)n_min+;if(n_

22、min=60)n_min=0; if(key3=0) /時間減1 delay(10); if(key3=0) P0=0*00; delay(5);while(!key3); if( keynum=1) hour-;if(hour=-1)hour=23; if( keynum=2) min-;if(min=-1)min=59; if( keynum=3) sec-;if(sec=-1)sec=59; if( keynum=4) n_hour-;if(n_hour=-1)n_hour=23; if( keynum=5) n_min-;if(n_min=-1)n_min=59; if(key4=0)

23、 delay(10); if(key4=0) P0=0*00; delay(5);while(!key4);ringoff=ringoff;ring=ring; if(ringoff=0)if(k=0) delay(10); if(k=0) P0=0*00; delay(5);while(!k);ringoff=1;ring=1; void display() /顯示函數(shù) if( keynum=4| keynum=5) P2=0*7f; P0=tablen_hour/10; delay(2); P0=0*00; /消隱 P2=0*bf; P0=tablen_hour%10; delay(2);

24、 P0=0*00; /消隱 P2=0*df; P0=table20; delay(2); P0=0*00; /消隱 P2=0*ef; P0=tablen_min/10; delay(2); P0=0*00; /消隱 P2=0*f7; P0=tablen_min%10; delay(2); P0=0*00; /消隱 else if( keynum=6) temp=gettemp(); delay(2); P2=0*f7; P0=tabletemp/100; delay(2); P0=0*00; /消隱 P2=0*fb; P0=tabletemp%100/10+10; delay(2); P0=0

25、*00; /消隱 P2=0*fd; P0=tabletemp%10; delay(2); P0=0*00; /消隱 P2=0*fe; P0=table21;/ C delay(2); P0=0*00; /消隱 else if( keynum=7) unsigned int SUM;unsigned int i,j; j=ad0832(); SUM =SUM+j; if(i=0) /采集50次數(shù)據(jù)之后取平均值 d= SUM/n; SUM = 0; i =n;i-; P2=0*f7; P0=tabled/100; delay(2); P0=0*00; /消隱 P2=0*fb; P0=tabled%1

溫馨提示

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

評論

0/150

提交評論