下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、設計報告課目:學院:班級:姓名:指導教師:1 設計要求1.1 功能需求1.2 設計要求2 硬件設計及描述2.1 總體描述2.2 系統(tǒng)總體框圖2.3 Proteus 仿真電路圖3 軟件設計流程及描述3.1 程序流程圖3.2 函數模塊及功能4 心得體會附:源程序1 設計要求1.1 功能需求(1) 實現數字時鐘準確實時的計時與顯示功能;(2) 實現鬧鐘功能,即系統(tǒng)時間到達鬧鐘時間時鬧鈴響;(3) 實現時間和鬧鐘時間的調時功能;(4) 剛啟動系統(tǒng)的時候在數碼管上滾動顯示數字串(學號)。1.2 設計要求(1) 應用 MCS-51單片機設計實現數字時鐘電路;(2) 使用定時器/計數器中斷實現計時;(3)
2、選用8 個數碼管顯示時間;(4) 使用3 個按鈕實現調時間和鬧鐘時間的功能。按鈕 1:更換模式 (模式 0:正常顯示時間;模式1:調當前時間的小時;模式2;調當前時間的分鐘;模式3:調鬧鐘時間的小時;模式4:調鬧鐘時間的分鐘);按鈕2:在非模式0 下給需要調節(jié)的時間數加一,但不溢出;按鈕3:在非模式 0下給需要調節(jié)的時間數減一,但不小于零;(5) 在非0 模式下,給正在調節(jié)的時間閃爍提示;(6) 使用揚聲器實現鬧鐘功能;(7) 采用C語言編寫程序并調試。2 硬件設計及描述2.1 總體描述( 1) 單片機采用AT89C51型;( 2) 時間顯示電路:采用8 個共陰極數碼管,P1 口驅動顯示數字,
3、P2口作為掃描信號;( 3) 時間設置電路:P3.0、 P3.1 、 P3.2 分別連接3個按鍵, 實現調模式,時間加和時間減;( 4) 鬧鐘: P3.3 口接揚聲器。2.2 系統(tǒng)總體框圖2.3Proteus 仿真電路圖3 軟件設計流程及描述3.1 程序流程圖3.2 函數模塊及功能1) void display_led()學號的滾動顯示函數;2) void display()顯示時間以及顯示調節(jié)時間和鬧鐘時間的閃爍;( 3) void key_prc()鍵盤功能函數,實現3 個按鍵有關的模式轉換以及數字加一減一;( 4) void init()初始化設置中斷;( 5) void time1()
4、 interrupt 3定時器 1 中斷函數,實現計時功能。4 心得體會首先在做本次課程設計的過程中,我感觸最深的當屬查閱大量的設計資料了。 為了讓自己的設計更加完善,查閱這方面的設計資料是十分必要的,同時也是必不可少的。我們是在做單片機實習,我們一切都要有據可依,有理可尋,不切實際的構想永遠只能是構想,永遠無法升級為設計。其次,在這次課程設計中,我們運用到了以前所學的專業(yè)課知識,如:C語言、 模擬和數字電路知識等。雖然過去從未獨立應用過它們,但在學習的過程中帶著問題去學我發(fā)現效率很高,這是我做這次課程設計的又一收獲。最后, 在設計之前,我們要對所用單片機的內部結構有一個系統(tǒng)的了解,知道該單片
5、機內有哪些資源;要有一個清晰的思路和一個完整的的軟件流程圖;在設計程序時,不能妄想一次就將整個程序設計好,反復修改、不斷改進是程序設計的必經之路;要養(yǎng)成注釋程序的好習慣,一個程序的完美與否不僅僅是實現功能, 而應該讓人一看就能明白你的思路,這樣也為資料的保存和交流提供了方便;在實習過程中遇到問題是很正常的,但我們應該將每次遇到的問題記錄下來,并分析清楚,以免下次再碰到同樣的問題。但是從中學到的知識會讓我受益終身。發(fā)現、提出、分析、解決問題和實踐能力提高都會受益于我在以后的學習、工作和生活中。附:源程序/ 用一#include <reg51.h> unsigned char led1
6、2=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40,0x00;維數組定義-9、橫杠、全滅unsigned char num10=2,0,0,8,0,1,1,6,6,8 ;unsigned char a8;unsigned char second=0,minute=0,hour=0;unsigned char minute1=0,hour1=0;unsigned char b8=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;/ 掃描unsigned char k=0;unsigned int temp
7、; / 記錄毫秒為秒的變量unsigned char M,S_flag; /M 是模式,更新時間的種模式加上正常模式S_flag 閃爍標志sbit K1=P30;sbit K2=P31;sbit K3=P32;/0.2 毫秒sbit BEEP=P33;void delay( unsigned n)int x,y;for (x=0;x<n;x+)for (y=0;y<24;y+); void init()M=0;S_flag=0; / 閃爍標志位TMOD=0x10; / 定時器以方式定時TH1=0xfc;TL1=0x18;EA=1;/ 打開總中斷ET1=1;/ 允許定時器中斷TR1=
8、1;/ 開啟定時器( 開始定時計數)void display_led()int x;char l,a,m;for (a=0;a<26;a+)x=a-8;for (l=0;l<50;l+)for (m=0;m<8;m+)P2=bm;if (x>=0&&x<10) P1=lednumx;else P1=led11;delay(10);x+;x-=8;void time1() interrupt 3/ 定時器中斷函數TH1=0xfc;/ 定時 msTL1=0x18;temp+;if (temp=1000)/ 配合定時器定時s temp=0;second+
9、;if (second=59) second=0;if (minute<59)minute+;else minute=0;hour+;hour%=24;/ 鬧鐘時間到if (hour1=hour&&minute1=minute&&second<10)BEEP=!BEEP;if (temp%250=0)/ 每 msS_flag=!S_flag;/ 閃爍標志位取反if (k=8) k=0;P1=ak;P2=bk+;delay(1);P2=0xff;void display()switch (M)case 0:a0=ledhour/10;a1=ledhou
10、r%10;a2=led10;a3=ledminute/10;a4=ledminute%10;a5=led10;a6=ledsecond/10;a7=ledsecond%10; break ;case 1:if (S_flag=1)a0=ledhour/10;a1=ledhour%10; elsea0=led11;a1=led11;a2=led10;a3=ledminute/10;a4=ledminute%10;a5=led10;a6=ledsecond/10;a7=ledsecond%10; break ;case 2:a0=ledhour/10;a1=ledhour%10;a2=led10;
11、if (S_flag=1)a3=ledminute/10;a4=ledminute%10;elsea3=led11;a4=led11;a5=led10;a6=ledsecond/10;a7=ledsecond%10; break ;case 3:if (S_flag=1)a0=ledhour1/10;a1=ledhour1%10;elsea0=led11;a1=led11;a2=led10;a3=ledminute1/10;a4=ledminute1%10;a5=led10;a6=led11;a7=led11; break ;case 4:a0=ledhour1/10;a1=ledhour1%
12、10;a2=led10;if (S_flag=1)a3=ledminute1/10;a4=ledminute1%10; elsea3=led11;a4=led11;a5=led10;a6=led11;a7=led11;void key_prc()if (K1=0)delay(10);/ 延時去抖if (K1=0)/ 按 K1進行模式切換 M+;if (M=5)M=0;while (!K1); / 等待按鍵釋放switch (M)case 1: / 模式調時if (K2=0)delay(10);/ 延時去抖if (K2=0)/ 加鍵按下if (hour<23) hour+;else hou
13、r=0;while (!K2);/ 等待按鍵釋放if (K3=0) delay(10);if (K3=0) if (hour> 0) hour-;else hour=23; while (!K3); break;case 2: / 模式調分if (K2=0)delay(10);if (K2=0) if (minute<59) minute+; else minute=0; while (!K2);if (K3=0) delay(10);if (K3=0)if (minute>0) minute-;else minute=59;while (!K3); break ;case 3: / 模式鬧鐘調時if (K2=0)delay(10);if (K2=0)if (hour1<23)hour1+;else hour1=0; while (!K2);if (K3=0)delay(10);if (K3=0)if (hour1>0)hour1-;else hour1=23;while (!K3); break ;case 4: / 模式鬧鐘調分if (K2=0)delay(10);if (K2=0)e
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 養(yǎng)老院入住老人福利待遇保障制度
- 企業(yè)內部信息傳播制度
- 公共交通應急預案管理制度
- 2026年法學專業(yè)知識進階考試題目及答案
- 2026年財務會計專業(yè)知識模擬考試試題
- 2026年汽車制造質量監(jiān)督執(zhí)紀模擬測試題
- 2026年圍棋培訓協(xié)議
- 母嬰護理質量控制與安全管理
- 化驗樓抗爆安全改造項目環(huán)境影響報告表
- 河南省許昌市襄城縣玉成學校2025-2026學年第一學期期末教學質量檢測七年級生物(含答案)
- 2026年山東省威海市單招職業(yè)傾向性測試題庫附答案解析
- 2026新疆伊犁州新源縣總工會面向社會招聘工會社會工作者3人考試備考試題及答案解析
- 2026年《必背60題》抖音本地生活BD經理高頻面試題包含詳細解答
- 駱駝祥子劇本殺課件
- 2025首都文化科技集團有限公司招聘9人考試筆試備考題庫及答案解析
- 《經典常談》導讀課件教學
- 盤口暗語及盤口數字語言
- QC-提高衛(wèi)生間防水一次驗收合格率
- 彈藥庫防火防爆消防演示
- 大地測量控制點坐標轉換技術規(guī)程
- 食材配送服務方投標方案(技術標)
評論
0/150
提交評論