多功能數(shù)字鐘的設(shè)計--電子技術(shù)課程設(shè)計.doc
《多功能數(shù)字鐘的設(shè)計--電子技術(shù)課程設(shè)計.doc》由會員分享,可在線閱讀,更多相關(guān)《多功能數(shù)字鐘的設(shè)計--電子技術(shù)課程設(shè)計.doc(22頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、電子技術(shù)課程設(shè)計題目名稱:多功能數(shù)字鐘的設(shè)計 班 級: 學(xué) 號: 姓 名: 指導(dǎo)教師: 日 期: 二零一五年六月二十日 多功能數(shù)字鐘的設(shè)計一、 設(shè)計任務(wù)及要求設(shè)計任務(wù):設(shè)計一個多功能的數(shù)字鐘。設(shè)計要求:內(nèi)容要求: 說明設(shè)計題目及要求。 剖析題目并提出設(shè)計構(gòu)想。 提出設(shè)計實現(xiàn)方案。 根據(jù)確定的設(shè)計方案進行細致構(gòu)思和實現(xiàn)。畫出總體原理圖。 對總體原理圖進行深入剖析及定量計算,詳盡說明各部分電路的原理并求出必要的參數(shù)值。 對電路進行仿真,給出仿真結(jié)果。 對本次課程設(shè)計進行總結(jié)1以數(shù)字形式顯示時、分、秒的時間。2小時的計時要求為24進制,分鐘和秒的計時要求為60進制。3能手動快速校時、校分。4具有整點
2、報時功能。5. 具有秒表計數(shù)功能。6. 具有鬧鐘功能。7. 電路中所需的直流電源需自行設(shè)計。整體設(shè)計及原理框圖整體設(shè)計: 本實驗為多功能數(shù)字鐘的設(shè)計,小時為24進制,分鐘和秒為60進制,具有校時校分,整點報時,秒表計數(shù),鬧鐘功能,數(shù)字以液晶屏顯示出來。時鐘秒分鐘小時的產(chǎn)生,10ms信號,計100次夠1s,夠60s計分鐘,夠60分鐘小時,夠24小時清零。以ms定義毫秒,以s定義秒,m定義分鐘,h定義小時。鬧鐘設(shè)計的小時與分鐘與定時器的小時和分鐘返回單片機進行比較,如果相等則傳給蜂鳴器,蜂鳴器響,不相等則不執(zhí)行,修改時間有單片機檢測按鍵來進行時間的修改。秒表由單片機給秒表信號開始計數(shù)每10ms顯示
3、一次。設(shè)計的讀取和指令的發(fā)出都由單片機來實現(xiàn)。數(shù)字時鐘功能齊全,而且操作方便,符合現(xiàn)實要求。原理框圖: ms定義 s定義秒 m定義分鐘 h定義小時定時器 產(chǎn)生10ms 1s 60s 1h 24小時清零 比較是否相等 清零 比較是否相等 單片機 液晶屏 清零秒表 10ms 1s 60s 1h 24小時清零 相 等 清零鬧鐘 小時 分鐘 按鍵 蜂鳴器二、 各模塊設(shè)計原理時鐘信號的產(chǎn)生51單片機定時器T0原理:定時器/計數(shù)器簡稱定時器,其作用主要包括產(chǎn)生各種時標間隔、記錄外部事件的數(shù)量等,是微機中最常用、最基本的部件之一。803l單片機有2個16位的定時器/計數(shù)器:定時器0(T0)和定時器1(T1)
4、。 T0由2個定時寄存器TH0和TL0構(gòu)成,T1則由TH1和TL1構(gòu)成,它們都分別映射在特殊功能寄存器中,從而可以通過對特殊功能寄存器中這些寄存器的讀寫來實現(xiàn)對這兩個定時器的操作。作定時器時,每一個機器周期定時寄存器自動加l,所以定時器也可看作是計量機器周期的計數(shù)器。由于每個機器周期為12個時鐘振蕩周期,所以定時的分辨率是時鐘振蕩頻率的1/12。作計數(shù)器時,只要在單片機外部引腳T0(或T1)有從1到0電平的負跳變,計數(shù)器就自動加1。計數(shù)的最高頻率一般為振蕩頻率的l/24。工作方式:T0或T1無論用作定時器或計數(shù)器都有4種工作方式:方式0、方式1、方式2和方式3。除方式3外,T0和T1有完全相同
5、的工作狀態(tài)。下面以T1為例,分述各種工作方式的特點和用法。工作方式0:13位方式由TL1的低5位和TH1的8位構(gòu)成13位計數(shù)器(TL1的高3位無效)。工作方式0的結(jié)構(gòu)見下圖:圖中,C/T為定時/計數(shù)選擇:C/T=0,T1為定時器,定時信號為振蕩周期12分頻后的脈沖;C/T=l,T1為計數(shù)器,計數(shù)信號來自引腳T1的外部信號。定時器T1能否啟動工作,還受到了R1、GATE和引腳信號INT1的控制。由圖中的邏輯電路可知,當GATE=0時,只要TR1=1就可打開控制門,使定時器工作;當GATE=1時,只有TR1=1且INT1=1,才可打開控制門。GATE,TR1,C/T的狀態(tài)選擇由定時器的控制寄存器T
6、MOD,TCON中相應(yīng)位狀態(tài)確定,INT1則是外部引腳上的信號。在一般的應(yīng)用中,通常使GATE=0,從而由TRl的狀態(tài)控制Tl的開閉:TRl=1,打開T1;TRl=0,關(guān)閉T1。在特殊的應(yīng)用場合,例如利用定時器測量接于INT1引腳上的外部脈沖高電平的寬度時,可使GATE=1,TRl=1。當外部脈沖出現(xiàn)上升沿,亦即INT1由0變1電平時,啟動T1定時,測量開始;一旦外部脈沖出現(xiàn)下降沿,亦即INT1由l變O時就關(guān)閉了T1。定時器啟動后,定時或計數(shù)脈沖加到TLl的低5位,從預(yù)先設(shè)置的初值(時間常數(shù))開始不斷增1。TL1計滿后,向THl進位。當TL1和THl都計滿之后,置位T1的定時器回零標志TFl,
7、以此表明定時時間或計數(shù)次數(shù)已到,以供查詢或在打開中斷的條件下,可向CPU請求中斷。如需進一步定時/計數(shù),需用指令重置時間常數(shù)。時鐘的秒,分鐘,小時的產(chǎn)生模塊:10ms計100次夠1s,夠60s計分鐘,夠60分鐘小時,夠24小時清零。秒表:單片機給秒表信號,從零開始計數(shù),從10ms開始顯示,10ms計100次夠1s,夠60s計分鐘,夠60分鐘小時,夠24小時清零。鬧鐘的設(shè)定模塊:設(shè)置鬧鐘變量,單片機檢測按鍵,通過鬧鐘變量給小時,分鐘賦值。修改時間模塊:通過單片機檢測按鍵來給時鐘小時分鐘進行修改,并且不改變鬧鐘設(shè)定的時間。按鍵控制模塊:單片機對按鍵掃描,當檢測到按鍵的變化時執(zhí)行相應(yīng)操作。一共有三個
8、按鍵和兩個開關(guān)。總體電路設(shè)計圖設(shè)計程序:#include#define uchar unsigned char #define uint unsigned int#define dataport P2 /1602數(shù)據(jù)端sbit rs=P17; /寫命令數(shù)據(jù)控制端 sbit lcden=P15; /1602使能端sbit hadd=P16;sbit madd=P14;sbit jishi=P13;sbit turn=P12;sbit sounder=P11;uchar h=10,m,s_1,count,count_1,ms,flag,h_1,m_1,s_2,ms_1,h_2,m_2,s_3,ms
9、_2,flag_1=3,ms_3,m_3,s_4,h_3,nm,nh;code char C110=0123456789;/定義一個數(shù)組用來裝載本實驗所需要的十進制數(shù)字code unsigned char C2=00:00:00:00;code char name6=M:PYAN;void delay(us); /延時子函數(shù)void write_com(uchar com);void write_data(uchar dat);void jishi_1();void init1602()write_com(0 x38);/顯示模式設(shè)置write_com(0 x08);/顯示打開write_co
10、m(0 x01);/顯示清屏write_com(0 x06);/顯示光標移動設(shè)置write_com(0 x0c);/顯示開及光標設(shè)置void delay(us)unsigned int j;while(us-)for(j=80;j0;j-);void shijian()write_com(0 x80+0X40);write_data(C1h/10);write_com(0 x80+0X41);write_data(C1h%10);write_com(0 x80+0X42);write_data(:);write_com(0 x80+0X43);write_data(C1m/10);write_
11、com(0 x80+0X44);write_data(C1m%10);write_com(0 x80+0X45);write_data(:);write_com(0 x80+0X46);write_data(C1s_1/10);write_com(0 x80+0X47);write_data(C1s_1%10);void jishi_1()write_com(0 x80);write_data(C1h_1/10);write_com(0 x80+0X01);write_data(C1h_1%10);write_com(0 x80+0X02);write_data(:);write_com(0
12、x80+0X03);write_data(C1m_1/10);write_com(0 x80+0X04);write_data(C1m_1%10);write_com(0 x80+0X05);write_data(:);write_com(0 x80+0X06);write_data(C1s_2/10);write_com(0 x80+0X07);write_data(C1s_2%10);write_com(0 x80+0X08);write_data(:);write_com(0 x80+0X09);write_data(C1ms_1/10);write_com(0 x80+0X0a);wr
13、ite_data(C1ms_1%10);void jishi_3()write_com(0 x80);write_data(C1h_3/10);write_com(0 x80+0X01);write_data(C1h_3%10);write_com(0 x80+0X02);write_data(:);write_com(0 x80+0X03);write_data(C1m_3/10);write_com(0 x80+0X04);write_data(C1m_3%10);write_com(0 x80+0X05);write_data(:);write_com(0 x80+0X06);write
14、_data(C1s_4/10);write_com(0 x80+0X07);write_data(C1s_4%10);write_com(0 x80+0X08);write_data(:);write_com(0 x80+0X09);write_data(C1ms_3/10);write_com(0 x80+0X0a);write_data(C1ms_3/10); void jishi_2()write_com(0 x80);write_data(C1h_2/10);write_com(0 x80+0X01);write_data(C1h_2%10);write_com(0 x80+0X02)
15、;write_data(:);write_com(0 x80+0X03);write_data(C1m_2/10);write_com(0 x80+0X04);write_data(C1m_2%10);write_com(0 x80+0X05);write_data(:);write_com(0 x80+0X06);write_data(C1s_3/10);write_com(0 x80+0X07);write_data(C1s_3%10);write_com(0 x80+0X08);write_data(:);write_com(0 x80+0X09);write_data(C1ms_2/1
16、0);write_com(0 x80+0X0a);write_data(C1ms_2%10); void play_nz()/鬧鐘函數(shù)write_com(0 x80+0X49);write_data(N);write_com(0 x80+0X4A);write_data(:);write_com(0 x80+0X4B);write_data(C1nh/10);write_com(0 x80+0X4C);write_data(C1nh%10);write_com(0 x80+0X4D);write_data(-);write_com(0 x80+0X4E);write_data(C1nm/10)
17、;write_com(0 x80+0X4F);write_data(C1nm%10);void nz()if(nm=m&nh=h)sounder=0;delay(100);delay(100);sounder=1;/*/*寫數(shù)據(jù)函數(shù)*/void write_data(uchar dat)rs=1; /選擇寫數(shù)據(jù)lcden=0;P2=dat;lcden=1;delay(1);lcden=0;/*/*寫命令*/void write_com(uchar com)/寫命令子函數(shù)rs=0; /為0則為寫命令,為1則為寫數(shù)據(jù)lcden=0;P2=com;lcden=1;delay(1);lcden=0;v
18、oid init()TMOD=0X01; /定時器0的工作方式1TH0 = 0 x0FF; TL0 = 0 x9C; /初始化計數(shù)器值TR0=1; /定時器0的中斷控制位EA=1;ET0=1; /定時器0的中斷控制位IE0=1; /EX0=1; /外部中斷0的標志位IT0=1; /外部中斷0的方式選擇位,本實驗選擇底電平觸發(fā) /開啟總中斷init1602();void zhengdian()if(m=0&s_1=0)sounder=0;delay(100);sounder=1;delay(100);sounder=0;delay(100);sounder=1;delay(100);sounde
19、r=0;delay(100);sounder=1;delay(100);void keyscan_1()if(jishi=1)/init_jishi();h_3=0;m_3=0;s_4=0;ms_3=0;jishi_3();elseif(flag=0)jishi_2();if(flag=1)jishi_1(); void keyscan_2() if(turn=0) /修改時間 if(hadd=0)while(!hadd);h+;if(h=24)h=0;if(madd=0)while(!madd);m+;if(m=60)m=0;if(turn=1) /設(shè)置鬧鐘if(hadd=0)while(!
20、hadd);nh+;if(nh=24)nh=0;if(madd=0)while(!madd);nm+;if(nm=60)nm=0;void student_name()uchar i;write_com(0 x80+0 x0b);/選擇顯示的地址for(i=0;i=24)h=0;if(ms_1=100)ms_1=0;s_2+;if(s_2=60) /減到0之后停止s_2=0;m_1+;if(m_1=60)m_1=0;h_1+;if(h_1=24)h_1=0;void I0_test() interrupt 0if(flag=1)h_2=h_1;m_2=m_1;s_3=s_2;ms_2=ms_1
21、;if(flag=0)h_1=0;m_1=0;s_2=0;ms_1=0;flag=!flag; 三、 電路仿真液晶屏的工作:1602LCD內(nèi)置HD44780專用液晶顯示控制器,分為帶背光和不帶背光兩種,帶背光的比不帶背光的厚,在應(yīng)用中并無差別。顯示容量為16*2個字符。芯片工作電壓:4.5-5.5V:最佳工作電壓為5V。工作電流:2.0mA。各引腳功能:VSS:電源地 VDD:電源正極 VEE:液晶顯示偏壓,為對比度調(diào)整端,接正電源時對比度最弱,接地時對比度最高,對比度過高會產(chǎn)生鬼影,使用時可以通過一個10k的電位器調(diào)整對比度。 RS:數(shù)據(jù)/命令選擇信號,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指
22、令寄存器。 RW:讀/寫控制信號,高電平時進行讀操作,低電平時進行寫操作。 E:使能端,為1時讀取信息,當E端由高電平跳變成低電平時液晶模塊執(zhí)行命令。 D0D7:8位雙向數(shù)據(jù)線 BLA:背光源正極 BLK:背光源負極。仿真后從十點開始計時。閉合開關(guān)開始調(diào)節(jié)時間。(上面按鍵調(diào)節(jié)分鐘,下面按鍵調(diào)節(jié)小時)。調(diào)節(jié)后時間顯示,與當時時間一致。鬧鐘的調(diào)節(jié)斷開開關(guān)調(diào)節(jié)鬧鐘,上面按鍵調(diào)節(jié)分鐘,下面按鍵調(diào)節(jié)小時,調(diào)節(jié)鬧鐘到12點。當鬧鐘時間與顯示時間一致時,蜂鳴器響,響鈴時間為一分鐘蜂鳴器的工作原理(蜂鳴器)秒表計時右邊開關(guān)閉合,左邊按鍵按下開始計時,再次按下左邊按鍵暫停,右邊開關(guān)斷開這計時清零。重復(fù)開始操作則
23、可重新計時。四、 設(shè)計心得及體會本次數(shù)數(shù)字時鐘的設(shè)計過程比較漫長,主要是設(shè)計功能較多,有些功能的設(shè)計遇到不少難題,主要是秒表的設(shè)計,通過查閱資料,最終也是解決。本次設(shè)計主要運用到了單片機和1602液晶顯示屏來實現(xiàn)數(shù)字時鐘計時,校準,鬧鐘,秒表等功能。這次電子設(shè)計收獲很多,主要是對單片機和電子設(shè)計有了更深的了解,本次也不是第一次使用protues進行仿真,所以進展還比較順利,最終成功實現(xiàn)報告所要求的全部內(nèi)容,也是非常的欣慰。單片機的設(shè)計一直是個難題,因為沒有專門上過這方面的課程,許多東西只能自學(xué)和請教學(xué)習(xí)過的同學(xué),可以說是費了很多心思。其實設(shè)計中,較大的問題是程序的編寫,平常很少實現(xiàn)這么多功能的
24、設(shè)計,所以c語言編程也相應(yīng)比較復(fù)雜,重新參考了c語言程序設(shè)計和相應(yīng)資料,程序長所以中間出現(xiàn)錯誤也很多,有些是疏忽造成,有些是語法錯誤,所以修改了較長時間。費的心思越多,學(xué)的也越多,學(xué)到這里,我也體會到單片機的強大和重要性,在以后的學(xué)習(xí)中一定要多多練習(xí),更多的使用和了解其功能,做出更好更強大的設(shè)計。參考文獻:1康華光.電子技術(shù)基礎(chǔ) 高等教育出版社 出版日期:2006.1(2014.1重?。?吳建國、張彥.數(shù)字電子技術(shù) 華中科技大學(xué)出版社 出版日期:2010.8 3孫煥銘、趙會成、王金 51單片機C程序應(yīng)用實例講解 北京航空航天大學(xué)出版社 出版日期:2011.3 4譚浩強 C程序設(shè)計 清華大學(xué)出版社 出版日期:2010.6(2013.11重印)5李亮 51單片機定時器/計數(shù)器的結(jié)構(gòu)和原理 電氣自動化技術(shù)網(wǎng) 時間2013-03-03 6網(wǎng)址http:/ 1602液晶顯示原理
- 溫馨提示:
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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。