版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、微機控制系統(tǒng)應(yīng)用方向?qū)W年設(shè)計任務(wù)書 學(xué) 院計算機與信息工程學(xué)院專 業(yè)計算機科學(xué)與技術(shù)課程名稱微機控制系統(tǒng)應(yīng)用方向題 目基于單片機控制的教學(xué)打鈴系統(tǒng)的設(shè)計與實現(xiàn) 完成期限2013年7月3日2013年8月29日共8周內(nèi)容及任務(wù)一、項目的目的1. 利用單片機設(shè)計簡單的教學(xué)打鈴系統(tǒng);2. 掌握設(shè)計文檔的撰寫技巧。二、項目任務(wù)的主要內(nèi)容和要求1. 能夠用7段數(shù)碼管或者lcd顯示時間;2. 能夠?qū)Ξ?dāng)前的時間設(shè)置進行校正;3. 能夠按照學(xué)校當(dāng)前的作息時間進行打鈴;4. 完成系統(tǒng)設(shè)計說明文稿。3、 項目設(shè)計(研究)思路1.7月3號到7月8號這段時間組織組員討論和分析本系統(tǒng)所需的功能,所需的硬件器件,并搭建電路
2、;2.7月9號到8月21號這段時間進行本系統(tǒng)的程序設(shè)計,完成該系統(tǒng)所需的功能模塊;3.8月22號到8月27號這段時間完成整個系統(tǒng)程序并進行系統(tǒng)測試;4.8月28號8月29號編寫學(xué)年設(shè)計報告文檔。四、具體成果形式和要求1.本系統(tǒng)是在proteus仿真軟件里進行測試;2.能通過7段數(shù)碼管顯示當(dāng)前時間;3.能利用蜂鳴器按照學(xué)校當(dāng)前的作息時間進行打鈴;4.通過按鍵可以進行當(dāng)前時間的校正以及作息時間的修改。進度安排起止日期工作內(nèi)容12013年7月3日2013年7月8日全組人討論硬件環(huán)境設(shè)計的思路以及軟件設(shè)計的思路22013年7月9日2013年7月15日能夠在數(shù)碼管中顯示電子鐘并且到一定時間時自動打鈴22
3、013年7月16日2013年8月21日實現(xiàn)能夠?qū)Ξ?dāng)前時間進行校正以及對作息時間進行修改32013年8月22日2013年8月27日完成整個打鈴程序的運行42013年8月28日2013年8月29日編寫學(xué)年設(shè)計文檔主要參考資料1 張鳳言.電子電路基礎(chǔ)m.北京:高等教育出版社,1995.2 戴佳.51單片機c語言應(yīng)用程序設(shè)計實例精講m.北京:電子工業(yè)出版社,2008.3 孫江宏. protel 99 電路設(shè)計與應(yīng)用m.北京:機械工業(yè)出版社,2001.4 王水富.基于8051的自動打鈴系統(tǒng)設(shè)計j.電腦編程技巧與維護,2009,1(17):23-26.5 王書杰.基于校園網(wǎng)絡(luò)的自動打鈴系統(tǒng)設(shè)計j.科學(xué)技術(shù)
4、與工程,2011,11(31):204-207. 6 王娟.基于單片機的多功能定時打鈴鐘設(shè)計j.湖南農(nóng)機,2011,4(5):85-86.7 于永51單片機c語言常用模塊與綜合系統(tǒng)設(shè)計實例精講m北京:電子工業(yè)出版社,2007.指導(dǎo)教師意見(簽字): 年月日系(教研室)主任意見(簽字): 年月日 基于單片機控制的教學(xué)打鈴系統(tǒng)的設(shè)計與實現(xiàn)設(shè)計說明書(封面) 學(xué)院名稱: 滁州學(xué)院 班級名稱: 計算機科學(xué)與技術(shù)專業(yè)10級(2)班 學(xué)生姓名: 方紀(jì)鋒、貝興芝、陳文君、陳丹丹、陳競 學(xué) 號: 2010211081、2010211066、2010211073、2010211068、2010211070 題
5、目: 基于單片機控制的教學(xué)打鈴系統(tǒng)的設(shè)計與實現(xiàn) 指導(dǎo)教師 姓 名: 姚光順 起止日期: 2013年7月3日2013年8月29日 目錄第一部分:正文部分1一、緒論11 設(shè)計背景12 主要工作和方法13 本文結(jié)構(gòu)2二、相關(guān)知識21 單片機介紹22 顯示器簡介43 蜂鳴器簡介5三、系統(tǒng)設(shè)計51 需求分析52 系統(tǒng)硬件電路設(shè)計63 軟件設(shè)計流程圖94 顯示程序設(shè)計105 按鍵設(shè)定程序設(shè)計10四、系統(tǒng)實現(xiàn)111 功能模塊11五、系統(tǒng)測試與數(shù)據(jù)分析181 元件清單182 調(diào)試過程18六、結(jié)論19第二部分:參考文獻20第三部分: 指導(dǎo)教師評語21第四部分:成績評定21附錄22基于單片機控制的教學(xué)打鈴系統(tǒng)的設(shè)
6、計與實現(xiàn)第一部分:正文部分一、緒論1 設(shè)計背景目前自動打鈴系統(tǒng)廣泛應(yīng)用于生活、工作等方方面面,在人們的日常生活中起到重要作用。例如,在學(xué)校生活中,每天上下課都離不開打鈴器的使用。打鈴器可以為上下課的學(xué)生和老師們提供時間提醒,同時,也可作為一個提醒學(xué)生們作息時間的時間表,讓大家有一個時間意識,形成規(guī)律的生物鐘,對自身的健康也有很大的好處的。對于那些上課精力過于集中、知識面拓展比較廣的老師的拖堂現(xiàn)象也給了一個下課時間提醒,以免耽誤學(xué)生們下一節(jié)課的上課時間。最原始的打鈴器是人工根據(jù)時間通過敲鐘來提醒,隨著技術(shù)的發(fā)展,開始有了機械式打鈴器。隨著二十世紀(jì)電子技術(shù)的發(fā)展和二十一世紀(jì)半導(dǎo)體技術(shù)和集成電路的發(fā)
7、展,電子技術(shù)開始滲入到各行各業(yè),打鈴器也更多的向著智能型轉(zhuǎn)變。設(shè)備的智能化離不開單片機的使用?;谝陨显?,本學(xué)年設(shè)計了一款基于單片機的自動打鈴系統(tǒng),使用簡單方便。2 主要工作和方法 本系統(tǒng)主要完成以下工作: 能夠通過7段數(shù)碼管顯示時間; 能夠通過按鍵對當(dāng)前的時間設(shè)置進行校正; 能夠按照學(xué)校當(dāng)前的作息時間進行打鈴; 能夠通過按鍵對學(xué)校當(dāng)前的作息時間進行修改。3 本文結(jié)構(gòu)本文第1部分緒論主要說明了本文的設(shè)計背景、主要工作和實現(xiàn)方法。第2部分相關(guān)知識介紹了單片機的概念、結(jié)構(gòu),數(shù)碼管的相關(guān)知識,蜂鳴器的相關(guān)知識。第3部分系統(tǒng)設(shè)計,闡述了需求分析、系統(tǒng)硬件設(shè)計和系統(tǒng)工作流程設(shè)計。第4部分系統(tǒng)實現(xiàn)介紹了
8、系統(tǒng)各個功能模塊。第5部分系統(tǒng)測試與數(shù)據(jù)分析,介紹了所用元件和調(diào)試過程。二、相關(guān)知識1 單片機介紹 單片機概念本系統(tǒng)采用at89c51系列單片機。at89c51是一種帶4k字節(jié) flash存儲器(fperomflash programmable and erasable read only memory)的低電壓、高性能cmos 8位微處理器,俗稱單片機。該器件采用atmel高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的mcs-51指令集和輸出管腳相兼容。由于將多功能8位cpu和閃爍存儲器組合在單個芯片中,atmel的at89c51是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉
9、的方案。 單片機結(jié)構(gòu)at89c51的結(jié)構(gòu)如圖2-1所示:圖2-1 at89c51管腳圖at89c51的管腳說明如下: vcc:供電電壓。 gnd:接地。 p0口:p0口為一個8位漏級開路雙向i/o口,每腳可吸收8ttl門電流。當(dāng)p0口的管腳第一次寫1時,被定義為高阻輸入。p0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在fiash編程時,p0 口作為原碼輸入口,當(dāng)fiash進行校驗時,p0輸出原碼,此時p0外部必須被拉高。 p1口:p1口是一個內(nèi)部提供上拉電阻的8位雙向i/o口,p1口緩沖器能接收輸出4ttl門電流。p1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,p1口被外部
10、下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在flash編程和校驗時,p1口作為第八位地址接收。 p2口:p2口為一個內(nèi)部上拉電阻的8位雙向i/o口,p2口緩沖器可接收,輸出4個ttl門電流,當(dāng)p2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,p2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。p2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,p2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進行讀寫時,p2口輸出其特殊功能寄存器的內(nèi)容。p2口在flash編程和校驗時接收高八位地址信號和控制信號。
11、p3口:p3口管腳是8個帶內(nèi)部上拉電阻的雙向i/o口,可接收輸出4個ttl門電流。當(dāng)p3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,p3口將輸出電流(ill)這是由于上拉的緣故。p3口同時為閃爍編程和編程校驗接收一些控制信號。p3口也可作為at89c51的一些特殊功能口,如表2-1所示:表2-1 at89c51特殊功能表管腳備選功能p3.0rxd(串行輸入口)p3.1txd(串行輸出口)p3.2/int0(外部中斷0)p3.3/int1(外部中斷1)p3.4t0(計時器0外部輸入)p3.5t1(計時器1外部輸入)p3.6/wr(外部數(shù)據(jù)存儲器寫選通)p3
12、.7/rd(外部數(shù)據(jù)存儲器讀選通) rst:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,要保持rst腳兩個機器周期的高電平時間。 ale/prog:當(dāng)訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在flash編程期間,此引腳用于輸入編程脈沖。在平時,ale端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器時,將跳過一個ale脈沖。如想禁止ale的輸出可在sfr8eh地址上置0。此時,ale只有在執(zhí)行movx,movc指令是ale才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ale禁止
13、,置位無效。 /psen:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/psen有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/psen信號將不出現(xiàn)。 /ea/vpp:當(dāng)/ea保持低電平時,則在此期間外部程序存儲器(0000h-ffffh),不管是否有內(nèi)部程序存儲器。注意加密方式1時,/ea將內(nèi)部鎖定為reset;當(dāng)/ea端保持高電平時,此間內(nèi)部程序存儲器。在flash編程期間,此引腳也用于施加12v編程電源(vpp)。 xtal1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入;xtal2:來自反向振蕩器的輸出。2 顯示器件簡介本系統(tǒng)的顯示時間功能是按照一般電子表的顯示
14、進行設(shè)計的,讓其顯示6為數(shù)字時間信息即顯示時、分、秒,再加上成本等因素,所以我們選擇用7段數(shù)碼管進行顯示。一般的七段數(shù)碼管擁有八個發(fā)光二極管用以顯示十進制0至9的數(shù)字,也可以顯示英文字母,包括十六進制和二十進制中的英文至(a至f)。七段數(shù)碼管由四個直向、三個橫向及上右下角一點的發(fā)光二極管組成,由以上向條發(fā)光體組合出不同的數(shù)字。除七段數(shù)碼管外,還有十四及十六劃的顯示器,但現(xiàn)時已被點陣顯示器所取代。七段數(shù)碼管分為共陽極及共陰極,共陽極的七段數(shù)碼管的正極(或陽極)為八個發(fā)光二極管的共有正極,其他接點為獨立發(fā)光二極管的負極(或陰極),使用者只需把正極接電,不同的負極接地就能控制七段數(shù)碼管顯示不同的數(shù)字
15、。3 蜂鳴器簡介蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,采用直流電壓供電,廣泛應(yīng)用于電子產(chǎn)品中作發(fā)聲器件。蜂鳴器主要分為壓電式蜂鳴器和電磁式蜂鳴器兩種類型。壓電式蜂鳴器工作原理:當(dāng)接通電源后(1.515v直流工作電壓),多諧振蕩器起振,輸出1.52.5khz的音頻信號,阻抗匹配器推動壓電蜂鳴片發(fā)聲。電磁式蜂鳴器工作原理:接通電源后,振蕩器產(chǎn)生的音頻信號電流通過電磁線圈,使電磁線圈產(chǎn)生磁場。振動膜片在電磁線圈和磁鐵的相互作用下,周期性地振動發(fā)聲。三、系統(tǒng)設(shè)計1 需求分析 設(shè)計任務(wù) 能夠通過7段數(shù)碼管顯示時間; 能夠通過按鍵對當(dāng)前的時間設(shè)置進行校正; 能夠按照學(xué)校當(dāng)前的作息時間進行打鈴; 能夠通過按鍵
16、對學(xué)校當(dāng)前的作息時間進行修改。 基本要求該系統(tǒng)具備以下幾點基本要求: 基本計時和顯示功能(用24小時制進行顯示)。 能夠設(shè)置當(dāng)前時間。 能夠?qū)崿F(xiàn)基本打鈴功能, 按照表3-1顯示的時間進行打鈴。表3-1 作息時間表上午下午晚上7:50預(yù)備鈴14:10預(yù)備鈴19:20預(yù)備鈴8:00第一節(jié)課上14:20第五節(jié)課上19:30第九節(jié)課上8:45第一節(jié)課下15:05第五節(jié)課下20:15第九節(jié)課下8:55第二節(jié)課上15:15第六節(jié)課上20:25第十節(jié)課上9:40第二節(jié)課下16:00第六節(jié)課下21:10第十節(jié)課下10:00第三節(jié)課上16:20第七節(jié)課上10:45第三節(jié)課下17:05第七節(jié)課下10:55第四節(jié)課
17、上17:15第八節(jié)課上11:40第四節(jié)課下18:00第八節(jié)課下 性能指標(biāo)該系統(tǒng)具備以下性能指標(biāo): 時鐘:時(2位)、分(2位)、秒(2位),時分秒用“-”分開。 校對鍵:設(shè)置鍵,左移/右移鍵,加減鍵,確定/取消鍵,添加鍵。 響鈴:蜂鳴器。2 系統(tǒng)硬件電路設(shè)計分析完單片機教學(xué)打鈴系統(tǒng)原理及特點后,設(shè)計了以下硬件系統(tǒng)。 總體方案設(shè)計本系統(tǒng)是基于單片機at89c51的教學(xué)打鈴系統(tǒng)。系統(tǒng)硬件電路包括:at89c51單片機的最小系統(tǒng)硬件電路、時鐘電路、顯示電路、打鈴電路。本系統(tǒng)的結(jié)構(gòu)框圖如圖3-1所示:圖3-1 系統(tǒng)結(jié)構(gòu)圖 硬件電路圖 該系統(tǒng)的硬件電路如圖3-2所示:圖3-2 硬件電路圖 按鍵電路本系統(tǒng)
18、接有8個按鍵,按鍵的一端接地。另一端分別單片機的p1.0p1.7口。按鍵從上到下的功能分別是:設(shè)置按鍵、加按鍵、減按鍵,左移按鍵、右移按鍵、確定按鍵、取消按鍵和修改鬧鈴按鍵。按鍵電路模塊如圖3-3所示:圖3-3 按鍵電路模塊圖 顯示電路根據(jù)設(shè)計要求,該系統(tǒng)采用共陰極數(shù)碼管,其公共端接單片機的p0口。數(shù)碼管顯示電路使用at89c51的動態(tài)顯示功能,數(shù)碼管的八段(a、b、c、d、e、f、g、dp)接入單片機的p2口,數(shù)碼管分別顯示:“時”、“”、“分”、“”、“秒”。數(shù)碼管顯示電路如圖3-4所示:圖3-4 顯示電路圖 打鈴電路打鈴電路(接p3.7):當(dāng)前時間與程序設(shè)定時間相同時,p3.7端輸出高電
19、平的方波,即打鈴。打鈴電路模塊如圖3-5所示:圖3-5 打鈴電路圖3 軟件設(shè)計流程圖圖3-6 主程序流程圖4 顯示程序設(shè)計利用12mhz中斷做時鐘源進行計時,每20次中斷秒加1。流程圖如圖3-7 所示:s圖3-7 定時中斷程序流程圖5 按鍵設(shè)定程序設(shè)計本系統(tǒng)接有8個按鍵從上到下的功能分別是:設(shè)置按鍵、加按鍵、減按鍵,左移按鍵、右移按鍵、確定按鍵、取消按鍵和修改鬧鈴按鍵。當(dāng)p1口輸出低電平時,按鍵被按下,執(zhí)行校正時鐘操作和修改作息時間操作。 校正時鐘程序流程圖圖3-8 校正時鐘程序流程圖 修改作息時間流程圖圖3-9 修改作息時間流程圖四、系統(tǒng)實現(xiàn)1 功能模塊 時鐘顯示模塊設(shè)置確定時鐘是利用定時器
20、t0 溢出中斷方式,通過設(shè)置t0參數(shù)確定計時的基數(shù),再對基數(shù)的計數(shù)確定出秒數(shù),分鐘數(shù)和時數(shù)。再用數(shù)碼管將時間顯示出來,其模塊程序如下:/電子鐘中斷處理函數(shù)void time()interrupt 1 /定時器0中斷 th0=(65536-50000)/256; /設(shè)置t0參數(shù),定時50ms tl0=(65536-50000)%256; if(temp19)/定時20次,50ms*20=1s temp=0; second+; /秒加加if(second59) second=0; minute+; /分加加if(minute59) minute=0; hour+; /時加加 if(hour23)
21、hour=0; else temp+; /數(shù)碼管顯示函數(shù)void show() p0=dis0; p2=dis1second%10; delay(40); /顯示秒p0=dis1; p2=dis1second/10; delay(40);p0=dis2; p2=dis110; delay(40);p0=dis3; p2=dis1minute%10; delay(40); /顯示分p0=dis4; p2=dis1minute/10; delay(40);p0=dis5; p2=dis110; delay(40); p0=dis6; p2=dis1hour%10; delay(40); /顯示時p
22、0=dis7; p2=dis1hour/10; delay(40);中斷處理函數(shù)采用方式1,最大能計時65536次,所以在該函數(shù)中最大能定時50ms;由于顯示是按秒進行顯示的,所以需要定時20次才能到達1s。然后再顯示函數(shù)中顯示當(dāng)前時間,其中p0口是用來選擇用哪個數(shù)碼管顯示,p2口是用來顯示當(dāng)前數(shù)碼管的數(shù)值。 時鐘校正模塊設(shè)置當(dāng)數(shù)碼管顯示的時間與實際時間不符時,可對其數(shù)碼管顯示的時間進行校正,點擊設(shè)置鍵進入時間調(diào)整的狀態(tài),可用加減鍵,左移右移鍵對秒,分,時進行調(diào)整。最后點擊確定或取消鍵完成時間校正。其模塊程序如下:/加時間void add() if(setflag0) if(lr=0) /修改
23、秒的個位 second+; if(second=60) second=0; if(lr=1) /修改秒的十位 second=second+10; if(second=60) second=0; if(lr=3) /修改分的個位 minute+; if(minute=60) minute=0; if(lr=4) /修改分的十位 minute=minute+10; if(minute=60) minute=0; if(lr=6) /修改時的個位 hour+; if(hour=24) hour=0; if(lr=7) /修改時的十位 hour=hour+10; if(hour=24) hour=0;
24、 /減時間void reduce() if(setflag0) if(lr=0) /修改秒的個位 second-;if(second0) second=0; if(lr=1) /修改秒的十位 second=second-10; if(second0) second=0; if(lr=3) /修改分的個位 minute-; if(minute0) minute=0; if(lr=4) /修改分的十位 minute=minute-10; if(minute0) minute=0; if(lr=6) /修改時的個位 hour-; if(hour0) hour=0; if(lr=7) /修改分的十位
25、hour=hour-10; if(hour7)lr=0; break; /左移加case 0xef:lr-; if(lr19)/定時20次 temp=0;second+;if(second59) second=0; minute+;if(minute59)minute=0; hour+; if(hour23) hour=0; else temp+; if(second=0) /用于判斷該時間是否為打鈴時間 flag1=1; if(t=0) /找到第一個打鈴的時間 for(i=t;i0) /找到第一個鬧鈴后其他的鬧鈴按如下處理 if(bell_minutet=0&bell_hourt=0) kk
26、=1; if(minute=bell_minutet) flag2=1; if(hour=bell_hourt) flag3=1; if(flag1=1&flag2=1&flag3=1&kk=0) /當(dāng)前時間與打鈴時間相等t+; bell_time=1;flag1=0;flag2=0;flag3=0;if(kk=1) t=0;為了更精確的控制打鈴的時間,此模塊利用定時器控制打鈴的時間,每加一秒就進行判斷當(dāng)前時間是否與打鈴時間相等,若相等,這讓蜂鳴器響。五、系統(tǒng)測試與數(shù)據(jù)分析1 元件清單元件清單如表5-1所示:表5-1 元件清單表元件名稱個數(shù)at89c5117seg-mpx8-cc-blue1s
27、ounder1button82 調(diào)試過程 時鐘顯示模塊 系統(tǒng)運行時如圖5-1所示:圖5-1 時鐘顯示效果圖 校正時鐘模塊當(dāng)顯示時間與當(dāng)前時間不相符時,需要校正時鐘。例如,系統(tǒng)顯示時間如圖5.2.1所示,當(dāng)前時間為8:00,調(diào)試過程如下: 按下設(shè)置鍵,時鐘停止,進入校正狀態(tài); 按下左移/右移鍵,選擇對時、分或秒的校正; 按下加/減鍵,校正時鐘到當(dāng)前的時間; 按下確定鍵,校正成功; 按取消鍵回到原本顯示時間。經(jīng)過以上調(diào)試過程,可以校正成功,此時系統(tǒng)如圖5-2所示:圖5-2 校正后顯示效果圖 修改作息時間模塊若需要修改作息時間,按照如下調(diào)試過程: 按下修改鍵,時鐘顯示第一個打鈴時間; 按下左移/右移
28、鍵,選擇要修改的打鈴時間; 按下設(shè)置鍵,進入修改打鈴時間狀態(tài)(此過程和校正時鐘過程相同); 按下確定鍵,修改打鈴時間成功,顯示當(dāng)前時間; 按下取消鍵,顯示當(dāng)前時間。經(jīng)過以上調(diào)試過程,可以修改成功。 打鈴模塊當(dāng)系統(tǒng)顯示時間與設(shè)定打鈴時間相同時,打鈴。六、結(jié)論本文闡述了自動打鈴系統(tǒng)的工作原理、體系結(jié)構(gòu)等。并設(shè)計實現(xiàn)了一個自動打鈴系統(tǒng),能夠校對當(dāng)前時間,選擇合適的打鈴時間,適合學(xué)校、工廠等管理機構(gòu)。為了更好的實現(xiàn)自動打鈴系統(tǒng),我們首先對本系統(tǒng)的功能需求進行了分析并搭建了模擬電路;然后開始分模塊進行軟件設(shè)計,第一步我們是實現(xiàn)時鐘顯示模塊即能夠在數(shù)碼管中顯示當(dāng)前的時間,第二步是實現(xiàn)打鈴模塊即按照作息時間
29、表依次打鈴,第三步是實現(xiàn)校正當(dāng)前時鐘模塊,第四步是實現(xiàn)作息時間修改模塊;當(dāng)全部模塊都完成后,開始對實現(xiàn)的系統(tǒng)進行測試,通過測試數(shù)據(jù)的分析,系統(tǒng)能夠很好的實現(xiàn)設(shè)計需求中的各種功能,但是程序還沒有達到最優(yōu),需要進一步的優(yōu)化和開發(fā)。通過本次設(shè)計,我們對所學(xué)的專業(yè)知識有了很好的回顧和實踐,提高了自己的動手和思考能力,這對我們自身的發(fā)展有了很大的幫助,同時在此期間,我們查閱了很多的書籍和資料,從中我們學(xué)到了很多課本上沒有的知識,拓展了自己的知識面,如果沒有前期的準(zhǔn)備工作是沒法很好的完成此次設(shè)計的,所以多學(xué)、多看、多想、多動手才是學(xué)好知識的必要素質(zhì),這對我們未來的發(fā)展和進步有著至關(guān)重要的作用。第二部分:參
30、考文獻1 張鳳言.電子電路基礎(chǔ)m.北京:高等教育出版社,1995.2 戴佳.51單片機c語言應(yīng)用程序設(shè)計實例精講m.北京:電子工業(yè)出版社,2008.3 孫江宏. protel 99 電路設(shè)計與應(yīng)用m.北京:機械工業(yè)出版社,2001.4 王水富.基于8051的自動打鈴系統(tǒng)設(shè)計j.電腦編程技巧與維護,2009,1(17):23-26.5 王書杰.基于校園網(wǎng)絡(luò)的自動打鈴系統(tǒng)設(shè)計j.科學(xué)技術(shù)與工程,2011,11(31):204-207. 6 王娟.基于單片機的多功能定時打鈴鐘設(shè)計j.湖南農(nóng)機,2011,4(5):85-86.7 于永51單片機c語言常用模塊與綜合系統(tǒng)設(shè)計實例精講m北京:電子工業(yè)出版社
31、,2007.學(xué)生簽名: 填表日期: 年 月 日第三部分: 指導(dǎo)教師評語第四部分:成績評定指導(dǎo)教師簽名: 填表日期: 年 月 附錄/打鈴系統(tǒng)#includereg51.h#define uchar unsigned char#define uint unsigned intsbit spk=p37;/蜂鳴器bit bell_time=0;/到打鈴時間標(biāo)志uchar temp=0;/記錄電子鐘的計數(shù)次數(shù)uint time_count=0;/記錄打鈴時間的計數(shù)次數(shù)char second,minute,hour;/記錄時間uchar seconds,minutes,hours; /用于保存按下設(shè)置按鈕
32、時的時間值uchar secondu,minuteu,houru;/ 用于保存按下修改按鈕時的時間值uchar flag1,flag2,flag3,t;/標(biāo)記是否可以打鈴uint code dis1=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40;/共陰數(shù)碼管0-9,0xbf為“-”,1表示點亮uchar code dis=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;/選擇哪個數(shù)碼管,0表示選中uchar bell_hour=7,8,8,8,9,10,10,10,11,14,14,15,15,16
33、,16,17,17,18,19,19,20,20,21,0; /小時的時間uchar bell_minute=50,0,45,55,40,0,45,55,40,10,20,5,15,0,20,5,15,0,20,30,15,25,10,0; /分的時間,秒的時間都為0 char lr;/記錄左右移動的位置uchar flag=0;/用于記錄點擊移動按鈕后移到第一位讓其閃動uchar lr1=0;/設(shè)置第一位的閃動標(biāo)志uchar flag4=1; /用于記錄點擊取消按鈕后第一位不閃uchar ff=0;/用于判斷第一次是右移后再次左移閃uchar key_code;/用于按鍵去抖時賦予p1口的值
34、char chance,t1; /chance表示選擇哪個打鈴時間修改,t1用于標(biāo)志變量uchar setflag=0; /在使用加,減,保存,取消按鈕時,用于和修改打鈴時間相區(qū)別uchar updateflag=0; uchar kk=0; /用于標(biāo)志到數(shù)組的0:0:0/延遲函數(shù)void delay(uint tt) uchar i,j;for(i=0;itt;i+) for(j=0;j=1) lr1=0; flag=1;/用于記錄點擊移動按鈕后再移到第一位讓其閃動else/點擊移動按鈕,當(dāng)lr7,則lr=0;即第一位閃 if(flag=1&flag4=1) lr1=1; if(flag=1
35、&flag4=1&ff=1) lr1=1; p0=dis0;p2=dis1second%10;if(lr1=1) delay(7);else delay(40);p0=dis1;p2=dis1second/10; if(lr=1)delay(7);else delay(40);p0=dis2;p2=dis110;delay(40);p0=dis3;p2=dis1minute%10;if(lr=3)delay(7);else delay(40);p0=dis4;p2=dis1minute/10;if(lr=4)delay(7); else delay(40);p0=dis5;p2=dis110;
36、delay(40);p0=dis6;p2=dis1hour%10;if(lr=6)delay(7);else delay(40);p0=dis7;p2=dis1hour/10;if(lr=7)delay(7);else delay(40);/定時器1控制打鈴時間void belltime()interrupt 3 th1=(65536-50000)/256; tl1=(65536-50000)%256; spk=!spk; if(+time_count=400) /響鈴時間 time_count=0; bell_time=0; /到時間后關(guān)閉響鈴 /電子鐘中斷處理void time()inte
37、rrupt 1 /定時器0中斷 uchar i; flag1=0;flag2=0;flag3=0; th0=(65536-50000)/256; tl0=(65536-50000)%256; if(temp19)/定時20次 temp=0;second+;if(second59) second=0;minute+;if(minute59)minute=0; hour+; if(hour23) hour=0; else temp+; if(second=0) /用于判斷該時間是否為打鈴時間 flag1=1; if(t=0) /找到第一個鬧鈴的時間,可能不是數(shù)組里的第一個值for(i=t;i0)
38、/找到第一個鬧鈴后其他的鬧鈴按如下處理 if(bell_minutet=0&bell_hourt=0) kk=1; if(minute=bell_minutet) flag2=1; if(hour=bell_hourt) flag3=1; if(flag1=1&flag2=1&flag3=1&kk=0)t+; bell_time=1;flag1=0;flag2=0;flag3=0;if(kk=1) /如果到0:0:0時,將從第一個鬧鈴開始 t=0;/設(shè)置時間函數(shù)void set() tr0=0; lr1=1; seconds=second;minutes=minute;hours=hour;/
39、取消時回到原來的時間/修改作息時間函數(shù)void update() tr0=0; secondu=second;minuteu=minute;houru=hour; /用于點擊修改后回到點擊時的時間 hour=bell_hourchance;minute=bell_minutechance;second=0;/加時間函數(shù)void add() if(setflag0) if(lr=0) second+; if(second=60) second=0; if(lr=1) second=second+10; if(second=60) second=0; if(lr=3) minute+; if(mi
40、nute=60) minute=0; if(lr=4) minute=minute+10; if(minute=60) minute=0; if(lr=6) hour+; if(hour=24) hour=0; if(lr=7) hour=hour+10; if(hour=24) hour=0; /減時間函數(shù)void reduce() if(setflag0) if(lr=0) second-; if(second0) second=0; if(lr=1) second=second-10; if(second0) second=0; if(lr=3) minute-; if(minute0) minute=0; if(lr=4) minute=minute-10; if(m
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 24276-2025通過計算進行低壓成套開關(guān)設(shè)備和控制設(shè)備溫升驗證的一種方法
- 2025年中職煙草栽培與加工(煙草技術(shù)專題)試題及答案
- 2025年大學(xué)交通運輸(物流運輸規(guī)劃)試題及答案
- 2025年大學(xué)農(nóng)村電氣技術(shù)(農(nóng)村新能源利用)試題及答案
- 2026年生物科技(基因編輯技術(shù))試題及答案
- 2025年高職獸醫(yī)服務(wù)(服務(wù)技術(shù))試題及答案
- 2025年高職(野生動植物資源保護與利用)野生動物監(jiān)測試題及答案
- 2025年中職護理(老年護理)試題及答案
- 2025年高職電網(wǎng)監(jiān)控技術(shù)(電網(wǎng)監(jiān)控操作)試題及答案
- 2025年高職(中藥購銷員)中藥銷售綜合測試題及答案
- 商超信息系統(tǒng)操作規(guī)定
- 如何做好一名護理帶教老師
- 房地產(chǎn)項目回款策略與現(xiàn)金流管理
- 花溪區(qū)高坡苗族鄉(xiāng)國土空間總體規(guī)劃 (2021-2035)
- 非連續(xù)性文本閱讀(中考試題20篇)-2024年中考語文重難點復(fù)習(xí)攻略(解析版)
- 專題13 三角函數(shù)中的最值模型之胡不歸模型(原卷版)
- 門診藥房西藥管理制度
- 新能源汽車生產(chǎn)代工合同
- 2025年中煤科工集團重慶研究院有限公司招聘筆試參考題庫含答案解析
- 消防救援預(yù)防職務(wù)犯罪
- 一體化泵站安裝施工方案
評論
0/150
提交評論