版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、單片機課設報告-電子時鐘-單片機課程設計實驗報告 課題:電子時鐘姓名:學號:專業(yè)班級: 指導教師: 實驗時間:2014年6月5日一、設計目的通過電子時鐘綜合設計,使學生學會利用 8051 定時器時間計時處理功能,了解按鍵掃描及控制 LED 數碼管顯示原理,掌握單片機和按鍵以及 LED 數碼管硬件電路設計及控制程序的設計方法。思考按鍵消除抖動、LED 動態(tài)顯示與靜態(tài)顯示的特點,從而提高學生解決實際問題的能力。二、設計任務及要求利用實驗平臺上 4 個 LED 數碼管, 設計帶有鬧鈴功能的數字時鐘,要求: 1 在 4 位數碼管上顯示當前時間。顯示格式“時時分分” 2 由 LED 閃動做秒顯示。 3
2、利用按鍵可對時間及鬧玲進行設置,并可顯示鬧玲時間。當鬧玲時間到蜂鳴器發(fā)出聲響,按停止鍵使可使鬧玲聲停止。三、硬件設計1.顯示模塊為了將時間在LED數碼管上顯示,可采用靜態(tài)顯示法和動態(tài)顯示法,由于靜態(tài)顯示法需要數據鎖存器等較多硬件,可采用動態(tài)顯示法實現LED顯示。方法是將所有位的段選線相應并聯,由一個8位I/O口控制,從而形成段選線的多路復用,同時各位的公共端分別由相應的I/O線控制,實現分時選通。硬件電路圖如下,圖中10k電阻起到限流作用;三極管起到驅動數碼管的作用。若不使用三極管,數碼管發(fā)光微弱。2.鬧鈴模塊鬧鈴聲由交流蜂鳴器產生,電路圖如下。當P2.4輸出不同頻率的方波,.蜂鳴器便會發(fā)出不
3、同的聲音。3.整體硬件電路圖四、軟件設計1計時模塊利用單片機定時器0完成計時功能。定時器0計時中斷程序每隔1ms中斷一次并當作一個計數,每中斷一次計數加1,當計數1000次時,則表示1s到了,秒變量加1。當秒變量達到60時,秒變量清零同時分變量加1。分變量達到60時,分變量清零同時時變量加1。當時變量達到24時,時變量清零。由于實驗要求由LED閃動做秒顯示,因此每隔0.5s即計數500次時,P11(驅動LED燈)取反一次,從而實現LED燈閃動一次為1s,秒變量加1。該模塊流程圖如下:程序如下:void Delay(int m) /延時函數int y=m/10;while(-m);void In
4、it_Timer0()/計時器初始化函數TMOD=0x11; TH0=0xEE;TL0=0x00; ET0=1;TR0=1;EA=1;void Init_Timer1()/計時器初始化函數TMOD=0x11; ET1=1;TR1=0;EA=1;void time0(void) interrupt 1 /計時函數TH0=0xee;TL0=0x00;i+;if (i=199) P1=_cror_(P1,1); /循環(huán)位移second+;if(second=60) second=0;minute+;if(minute=60)minute=0;hour+;if(hour=24)hour=0;i=0;2
5、.顯示模塊為在各位LED上分別顯示不同的字符,需要采用循環(huán)掃描顯示的方法,即在某一時刻只選通一條位選線,并輸出該位的字段碼,其余位則處于關閉狀態(tài)。可見,各位LED顯示的字符并不是同時出現的,但由于人眼的視覺暫留及LED的余輝,可以達到同時顯示的效果。程序流程圖如下:采用動態(tài)顯示時,需要確定LED各位顯示的保持時間。由于LED從導通到發(fā)光有延時,時間太短會造成發(fā)光微弱,顯示不清晰;如果顯示時間太長,則會占用較多的CPU時間。程序如下:void display( uint x,uint y) /數碼管顯示函數qian = x/10;bai = x%10;shi = y/10;ge =y%10; s
6、1=0 ;if(j=1)/設置模式下調整位閃爍函數s_flag+;if(s_flag=20)P0=0xff; else P0 = digsegqian;if(s_flag=40)s_flag=0;else P0 = digsegqian;Delay(500);s1=1; s2 = 0;if(j=1)s_flag+;if(s_flag=20)P0=0xff; else P0 = digsegbai;if(s_flag=40)s_flag=0; else P0 = digsegbai;Delay(500); s2 = 1;s3 = 0;if(j=2)s_flag+;if(s_flag=20)P0=
7、0xff; else P0 = digsegshi;if(s_flag=40)s_flag=0; else P0 = digsegshi;Delay(500); s3 = 1;s4 = 0;if(j=2)s_flag+;if(s_flag=20)P0=0xff; else P0 = digsegge;if(s_flag=40)s_flag=0; else P0 = digsegge;Delay(500); s4 = 1;3按鍵判斷及處理程序按鍵的閉合與否,反映在電壓上就是呈現出高電平或低電平。由于機械觸點的彈性作用,在閉合及斷開的瞬間,電壓信號伴隨有一定時間的抖動,抖動時間與按鍵的機械特性有關
8、,一般是510ms。為了保證CPU確認一次按鍵動作,既不重復也不遺漏,必須消除抖動的影響。通過軟件消除抖動的方法為:在程序執(zhí)行過程中檢測到有按鍵按下時,調用一段延時(約10ms)子程序,然后判斷該按鍵的電平是否仍然保持在閉合狀態(tài),如果是,則確認有鍵按下。按鍵判斷流程圖如下:按鍵處理流程圖如下:程序如下:char check_K1(void) /按鍵檢測函數 if(KEY1=0)Delay(2000); /防抖動if(KEY1=0)while(KEY1=0) ;return 1;return 0;char check_K2(void) if(KEY2=0)Delay(2000);if(KEY2=
9、0)while(KEY2=0) ;return 1;return 0;char check_K3(void) if(KEY3=0)Delay(2000);if(KEY3=0)while(KEY3=0) ;return 1;return 0;char check_K4(void) if(KEY4=0)Delay(2000);if(KEY4=0)while(KEY4=0) ;return 1;return 0;4.音樂響鈴模塊音樂鬧鈴程序:單片機演奏一個音符,是通過引腳,周期性的輸出一個特定頻率的方波。這就需要單片機,在半個周期內輸出低電平、另外半個周期輸出高電平,周而復始。眾所周知,周期為頻率的
10、倒數,可以通過音符的頻率計算出周期;演奏時,要根據音符的不同,把對應的半個周期的定時時間初始值,送入定時器,再由定時器按時輸出高低電平。另外,音樂的節(jié)拍是由延時實現的。在單片機音樂演奏程序中,包括了兩個數據表,其中存放了事先算好的各種音符頻率所對應的半周期的定時時間初始值。有了這些數據,單片機就可以演奏低音、中音、高音,三個八度共21個音符。演奏樂曲時,就根據音符的不同數值,從表中找到定時時間初始值,送入定時器即可控制音調。通過調用延遲來實現節(jié)拍數。樂曲的數據,也要寫個數據表:表中每三個數字,說明了一個音符,它們分別代表:第一個數字是音符的數值;第二個數字是123之一,代表低音、中音、高音;第
11、三個數字是時間長度,以半拍為單位。樂曲數據表的結尾是三個0。音節(jié)與頻率的關系如下表所示音調X音調X音調X低音1F921中音1FC8F高音1FE47低音2F9E1中音2FCEE高音2FE77低音3FA8C中音3FD44高音3FEA2低音4FAD8中音4FD6B高音4FEB6低音5FB68中音5FDB4高音5FEDA低音6FBE9中音6FDF4高音6FEFA低音7FC5B中音7FE2D高音7FF16程序流程圖如下:程序如下:code unsigned char yinyue=1,1,5,5,6,6,5,0,4,4,3,3,2,2,1,0,5,5,4,4,3,3,2,0,5,5,4,4,3,3,2,
12、0;/蜂鳴器音樂音符表uint music1=0xf9,0xf9,0xfa,0xfa,0xfb,0xfb,0xfc,0xfc;/不同頻率對應計數器處初值(高八位)uint music2=0x21,0xe1,0x8c,0xd8,0x68,0xe9,0x5b,0x8f;/不同頻率對應計數器初值(低八位)for(y=0;y=32;y+) /音樂播放display(hour,minute); if(check_K2()TR1=0;beep=1;break;if(y=32) y=0;if(yinyuey=0)Delay(60000);elseTH1=music1yinyuey-1;TL1=music2y
13、inyuey-1;beep=0;TR1=1;Delay(20000);TR1=0;beep=1;Delay(40000);5.主函數流程圖void main()uint flag=0; P1=0x7f;Init_Timer0();Init_Timer1();display(hour,minute); while(1) if(check_K3() /顯示模式切換 flag+; if(flag=3)flag=0;if(setflag=0)if (flag=0)display(hour,minute);if (flag=1)display(minute,second);if(flag=2)if(al
14、armflag=1)s1=0;s2=0;s3=0;s4=0;P0=0xbf;Delay(500);s2=1;s2=1;s3=1;s4=1;if(alarmflag=-1)display(a_hour,a_minute);if(check_K4()alarmflag= -alarmflag;if(check_K1() setflag+;j=1;if(setflag=1|setflag=2)Set_timer();if(a_hour=hour&minute=a_minute&second2&alarmflag=-1) /鬧鐘時間判定for(y=0;y=32;y+) /音樂播放display(hou
15、r,minute); if(check_K2()TR1=0;beep=1;break;if(y=32) y=0;if(yinyuey=0)Delay(60000);elseTH1=music1yinyuey-1;TL1=music2yinyuey-1;beep=0;TR1=1;Delay(20000);TR1=0;beep=1;Delay(40000); 五、軟件實現功能1. 設置當前時間2. 設置時間時,顯示屏閃爍3. 采用“時時分分”或“分分秒秒”的形式顯示當前時間4. 以1s為間隔進行流水燈操作5. 開啟或關閉鬧鐘6. 設置鬧鐘時間7. 到達鬧鐘時間后,蜂鳴器響起,顯示屏閃爍鬧鐘時間,按
16、下指定鍵后,蜂鳴器關閉8. 蜂鳴器發(fā)出指定音樂的聲音六、實驗感想經過為期兩周的單片機課設,通進對兩個軟件學習和完成一個時鐘秒表設計并進行簡單調試,我學到了很多東西! 課程設計是培養(yǎng)學生綜合運用所學知識,發(fā)現,提出,分析和解決實際問題,鍛煉實踐能力的重要環(huán)節(jié),是對學生實際工作能力的具體訓練和考察過程.隨著科學技術發(fā)展的日新日異,單片機已經成為當今計算機應用中空前活躍的領域, 在生活中可以說得是無處不在。因此作為二十一世紀的大學來說掌握單片機的開發(fā)技術是十分重要的。 在我的課設時也遇到過這樣或那樣的問題,感謝同學們和助教的幫助,在他們的指導下,在自己的的努力下,我最終順利的完成了實驗。在整個的課設的過程中我學習了很多的東西,使我眼界打開,感受頗深。簡單的軟件與硬件學習使我了解到了人生學
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024家庭室內裝修合同書協議
- 2024木工班施工合同
- 2024新代理合同格式范文
- 2025屆高考歷史一輪復習模塊一政治文明歷程第一單元古代中國的政治制度第4講明清君主專制的加強學案含解析新人教版
- 2024-2025學年新教材高中地理第一章人口分布遷移與合理容量2人口遷移的特點及影響因素課時作業(yè)含解析中圖版必修2
- 初中語文后出師表的鹽閱讀答案
- 2024-2025學年高中英語閱讀素養(yǎng)提升一Unit1Livingwell含解析新人教版選修7
- 2024-2025學年高中數學第二章平面向量2.2.1向量加法運算及其幾何意義課時作業(yè)含解析新人教A版必修4
- 2024年工程項目資質共享合同
- 2024年城市公共交通車輛采購與運營合同
- 六年級上冊英語課件-Unit5 Signs 第1課時 |譯林版(三起) (共23張PPT)
- 輔助生殖技術課件
- 中考生物復習課件考點必背必記部分 八年級上冊
- 三年級上冊心理健康課件-綽號大家談 全國通用(共13張PPT)
- 新課標魯教版九年級化學上冊全套教案
- 國有企業(yè)職務犯罪懲治與預防
- 初中信息技術川教八年級上冊 我的視頻類數字故事制作視頻類數字故事教案李彥欣
- 《“探界者”鐘揚 》電子課件
- 部編初中歷史八年級上冊教案(全冊)
- GB∕T 33609-2017 軟質泡沫聚合材料 滯后損失試驗方法
- 【人才評估】如何繪制人才畫像
評論
0/150
提交評論