2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩26頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  畢業(yè)設(shè)計(jì)說(shuō)明書(shū)(論文)</p><p>  設(shè)計(jì)題目: 實(shí)用單片機(jī)電子鐘 </p><p>  專(zhuān) 業(yè): 應(yīng)用電子技術(shù) </p><p>  班 級(jí): 應(yīng)電07-2班 </p><p>  學(xué) 號(hào): </p>

2、<p>  姓 名: </p><p>  指導(dǎo)教師: </p><p>  二00九年十二月十一日</p><p>  畢業(yè)設(shè)計(jì)(論文)任務(wù)書(shū)</p><p><b>  目 錄</b></p><p><

3、;b>  摘 要1</b></p><p>  第1章 緒 論2</p><p>  第2章 電子鐘系統(tǒng)組成及設(shè)計(jì)流程3</p><p>  第3章 單元電路設(shè)計(jì)4</p><p>  3.1單片機(jī)介紹4</p><p>  3.2晶振電路設(shè)計(jì)5</p><p>

4、;<b>  3.3控制電路6</b></p><p>  3.4輸出電路設(shè)計(jì)7</p><p>  3.5總電路原理圖設(shè)計(jì)8</p><p>  3.6 PROTEUS電路圖設(shè)計(jì)9</p><p>  第4章 軟件設(shè)計(jì)10</p><p>  4.1 程序流程圖設(shè)計(jì)10</p&

5、gt;<p>  4.2源程序設(shè)計(jì)11</p><p>  4.3 KEILC51進(jìn)行程序調(diào)試17</p><p>  第5章 系統(tǒng)調(diào)試與仿真18</p><p>  5.1 PROTEUS中HEX文件選擇18</p><p>  5.2 PROTEUS進(jìn)行電子鐘系統(tǒng)仿真18</p><p>&

6、lt;b>  總 結(jié)20</b></p><p><b>  參考文獻(xiàn)22</b></p><p>  附 錄 元器件明細(xì)表23</p><p><b>  摘 要</b></p><p>  隨著人類(lèi)科技文明的發(fā)展,人們對(duì)于時(shí)鐘的要求在不斷地提高。時(shí)鐘作為一種顯示時(shí)

7、間的工具,在很多實(shí)際應(yīng)用中它還需要能夠?qū)崿F(xiàn)更多其它的功能。高精度、多功能、小體積、低功耗,是現(xiàn)代時(shí)鐘發(fā)展的趨勢(shì)。在這種趨勢(shì)下,時(shí)鐘的數(shù)字化、多功能化已經(jīng)成為現(xiàn)代時(shí)鐘生產(chǎn)研究的主導(dǎo)設(shè)計(jì)方向。本文正是基于這種設(shè)計(jì)方向,以單片機(jī)為控制核心,設(shè)計(jì)制作一個(gè)符合指標(biāo)要求的多功能數(shù)字時(shí)鐘。</p><p>  本設(shè)計(jì)基于單片機(jī)技術(shù)原理,以單片機(jī)芯片AT89C51作為核心控制器,通過(guò)硬件電路的制作以及軟件程序的編制,設(shè)計(jì)制作出一

8、個(gè)多功能數(shù)字時(shí)鐘系統(tǒng)。該時(shí)鐘系統(tǒng)主要由時(shí)鐘模塊、鬧鐘模塊、數(shù)碼管顯示模塊、鍵盤(pán)控制模塊以及信號(hào)提示模塊組成。系統(tǒng)具有簡(jiǎn)單清晰的操作界面,能在+5V直流電源下正常工作。能夠準(zhǔn)確顯示時(shí)間(顯示格式為時(shí)時(shí)-分分-秒秒,24小時(shí)制),可隨時(shí)進(jìn)行時(shí)間調(diào)整,具有鬧鐘時(shí)間設(shè)置、鬧鐘開(kāi)/關(guān),并有止鬧功能,設(shè)計(jì)以硬件軟件化為指導(dǎo)思想,充分發(fā)揮單片機(jī)功能,大部分功能通過(guò)軟件編程來(lái)實(shí)現(xiàn),電路簡(jiǎn)單明了,系統(tǒng)穩(wěn)定性高。同時(shí),該時(shí)鐘系統(tǒng)還具有功耗小、成本低的特點(diǎn),

9、具有很強(qiáng)的實(shí)用性。由于系統(tǒng)所用元器件較少,單片機(jī)所被占用的I/O口不多,因此系統(tǒng)具有一定的可擴(kuò)展性。</p><p>  關(guān)鍵詞 單片機(jī)AT89C51;Proteus;功能模塊</p><p><b>  第1章 緒 論</b></p><p>  電子鐘是生活中常見(jiàn)的實(shí)用工具之一,沒(méi)有時(shí)鐘,便沒(méi)有時(shí)間的概念,那么人們的生活便會(huì)變得雜亂無(wú)章,

10、電子鐘通常用于碼頭、車(chē)站、家庭、廣場(chǎng)等地方,可見(jiàn)其用途廣泛。電子鐘的制作由模電電子鐘、數(shù)電電子鐘和單片機(jī)電子鐘三大類(lèi)組成,但隨著人們需求的提高,前兩大類(lèi)逐漸由于其可靠性差、計(jì)時(shí)不準(zhǔn)、電路復(fù)雜、成本高等缺點(diǎn)而面臨淘汰。而單片機(jī)電子鐘也由于其可靠性高、計(jì)時(shí)精準(zhǔn)、電路簡(jiǎn)單、成本低等優(yōu)點(diǎn)受到人們的喜愛(ài)。本電路利用單片機(jī)設(shè)計(jì)電子鐘,實(shí)現(xiàn)的基本功能有計(jì)時(shí)和校時(shí)功能,實(shí)用于各種需要計(jì)時(shí)的場(chǎng)合。在計(jì)時(shí)和校時(shí)的基礎(chǔ)功能上,更在此基礎(chǔ)上拓展了鬧鐘功能,當(dāng)計(jì)

11、時(shí)時(shí)間到達(dá)鬧鐘時(shí)間時(shí),蜂鳴器將鳴叫1分鐘(具有止鬧功能)。本次設(shè)計(jì)的主要鍛煉了我運(yùn)用所學(xué)專(zhuān)業(yè)知識(shí)的情況,訓(xùn)練我如何將運(yùn)用所學(xué)專(zhuān)業(yè)知識(shí)與實(shí)踐相結(jié)合。</p><p>  隨著半導(dǎo)體技術(shù)的飛速發(fā)展,以及移動(dòng)通信、網(wǎng)絡(luò)技術(shù)、多媒體技術(shù)在嵌入式系統(tǒng)設(shè)計(jì)中的應(yīng)用,單片機(jī)從4位、8位、16位到32位,其發(fā)展歷程一直受到廣大電子愛(ài)好者的極大關(guān)注。單片機(jī)功能越來(lái)越強(qiáng)大,價(jià)格卻不斷下降的優(yōu)勢(shì)無(wú)疑成為嵌入式系統(tǒng)方案設(shè)計(jì)的首選,同時(shí)單

12、片機(jī)應(yīng)用領(lǐng)域的擴(kuò)大也使得更多人加入到基于單片機(jī)系統(tǒng)的開(kāi)發(fā)行列中,推動(dòng)著單片機(jī)技術(shù)的創(chuàng)新進(jìn)步。</p><p>  PROTEUS軟件由Labcenter公司開(kāi)發(fā),是目前世界上最先進(jìn)、最完整的嵌入式系統(tǒng)設(shè)計(jì)與仿真平臺(tái),可以實(shí)現(xiàn)數(shù)字電路、模擬電路及微控制器系統(tǒng)與外設(shè)的混合電路系統(tǒng)的電路仿真、軟件仿真、系統(tǒng)協(xié)同仿真和PCB設(shè)計(jì)等功能微控制器系統(tǒng)相關(guān)的仿真需建立編譯和調(diào)試環(huán)境,可選擇Keil C51uVision2 軟件

13、。它的界面友好易學(xué),在調(diào)試程序、軟件仿真方面有很強(qiáng)大的功能。 其革命性的功能是:將電路仿真和微處理器仿真進(jìn)行協(xié)同,直接在基于原理圖的虛擬原型上進(jìn)行處理器編程調(diào)試,并進(jìn)行功能驗(yàn)證,通過(guò)動(dòng)態(tài)器件如電機(jī)、LED、LCD、開(kāi)關(guān)等,實(shí)時(shí)看到運(yùn)行后的輸入、輸出的效果,配合系統(tǒng)配置的虛擬儀器如示波器、邏輯分析儀等,通過(guò)軟件使用和硬件電路設(shè)計(jì),不僅讓我鞏固了所學(xué)知識(shí)并應(yīng)用于實(shí)踐,同時(shí)也讓我覺(jué)得所學(xué)知識(shí)能貢獻(xiàn)于社會(huì),所讀的這幾年書(shū)是沒(méi)有白念的。讓我有了一

14、個(gè)質(zhì)地的飛躍。</p><p>  第2章 電子鐘系統(tǒng)組成及設(shè)計(jì)流程</p><p>  電子鐘系統(tǒng)主要由AT89C51單片機(jī)、單片機(jī)晶振電路、按鍵電路、輸入電路組成,電子鐘系統(tǒng)電路組成框圖如圖2-1所示。</p><p>  圖2-1 電路組成框圖</p><p>  本設(shè)計(jì)在設(shè)計(jì)電路的基礎(chǔ)上,再編譯程序,最后將程序?qū)腚娐分袑?shí)現(xiàn)仿真。具體

15、步驟如圖2-2所示。</p><p>  圖2-4 基于Proteus的單片機(jī)系統(tǒng)設(shè)計(jì)流程</p><p>  第3章 單元電路設(shè)計(jì)</p><p>  電子鐘系統(tǒng)主要由單片機(jī)晶振電路、按鍵電路、輸出電路組成,下面對(duì)各個(gè)單元電路進(jìn)行設(shè)計(jì)。</p><p><b>  3.1單片機(jī)介紹</b></p><

16、;p>  本電路設(shè)計(jì)的核心器件是AT89C51單片機(jī),它是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS8位微處理器。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種

17、高效微控制器,AT89C2051是它的一種精簡(jiǎn)版本。AT89C51單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的設(shè)計(jì)方案。主要引腳如圖3-1所示。</p><p>  圖3-1 AT89C51單片機(jī)</p><p><b>  3.2晶振電路設(shè)計(jì)</b></p><p>  MCS-51單片機(jī)內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反相放大器,引

18、腳XTAL1和XTAL2分別是此放大器的輸出端和輸入端。這個(gè)放大器與作為反饋元件的片外晶體或陶瓷諧振器一起構(gòu)成一個(gè)自激振蕩器。雖然有內(nèi)部振蕩電路,但要形成時(shí)鐘,必須外接元件。圖3-2是單片機(jī)內(nèi)部時(shí)鐘方式的電路。</p><p>  圖3-2 內(nèi)部時(shí)鐘方式</p><p>  本設(shè)計(jì)中使用的晶體振蕩器為12MHz的石英晶體,由此我們可以算出:,因此該晶振可以為軟件計(jì)數(shù)提供1μs的機(jī)器周期的精

19、確的時(shí)間。</p><p><b>  3.3控制電路</b></p><p>  電子鐘的控制電路可以由獨(dú)立式鍵盤(pán)和矩陣式鍵盤(pán)組成,獨(dú)立式鍵盤(pán)相互獨(dú)立,每個(gè)按鍵占一個(gè)I/O口線,每根I/O口線上按鍵的工作狀態(tài)不會(huì)影響到其他按鍵的工作狀態(tài),主要特點(diǎn)是程序設(shè)計(jì)簡(jiǎn)單,占用I/O口較多。而矩陣式鍵盤(pán)分別由行線和列線組成,行和列的交匯處可以形成鍵盤(pán),與獨(dú)立式鍵盤(pán)相比,可以提高

20、I/O口的利用率。由于本設(shè)計(jì)只需要由控制電路實(shí)現(xiàn)校時(shí)、計(jì)時(shí)、鬧鐘設(shè)置、鬧鐘開(kāi)關(guān)功能,因此只需要四個(gè)按鍵即可實(shí)現(xiàn),因此選用獨(dú)立式鍵盤(pán)。具體電路如圖3-3所示。</p><p>  圖3-3 控制電路圖</p><p>  電子鐘初始工作時(shí)的模式為模式0(正常計(jì)數(shù)),鬧鐘狀態(tài)為關(guān)閉。具體工作方式如下述:當(dāng)按下模式按鍵時(shí),給P1.4一個(gè)低電平信號(hào)輸入,通過(guò)程序來(lái)記錄電子鐘的工作模式;而按下加1鍵

21、時(shí),給P1.5一個(gè)低電平信號(hào)輸入,再通過(guò)工作模式來(lái)控制具體哪一位實(shí)行加1運(yùn)算;減1按鍵和加1按鍵基本類(lèi)似,只是實(shí)行的運(yùn)算為減1;當(dāng)按下鬧鐘開(kāi)關(guān)按鍵時(shí),可以給P1.7一個(gè)低電平輸入信號(hào), 通過(guò)程序的取反來(lái)控制鬧鐘狀態(tài)為打開(kāi),再按一次,則再取反,鬧鐘狀態(tài)為關(guān)閉。由此可見(jiàn),利用單片機(jī)四個(gè)輸入口可方便地實(shí)現(xiàn)6種工作模式的不同控制。</p><p><b>  3.4輸出電路設(shè)計(jì)</b></p&

22、gt;<p>  輸出電路分為顯示輸出電路和鬧鐘輸出電路;顯示輸出電路由八個(gè)數(shù)碼管構(gòu)成,而數(shù)碼管又由八個(gè)發(fā)光二極管構(gòu)成,可以用來(lái)顯示數(shù)字、字符等,他在家電及工業(yè)控制中有著很廣泛的應(yīng)用,例如用來(lái)顯示溫度、數(shù)量、重量、日期、時(shí)間等,具有顯示醒目、直觀的優(yōu)點(diǎn)。鑒于本電子鐘顯示格式為00-00-00,一共需要八位八段數(shù)碼管來(lái)提供顯示,鬧鐘輸出電路蜂鳴器則連在P1.0口進(jìn)行輸出。顯示電路如圖3-4所示。</p><

23、;p><b>  圖3-4 輸出電路</b></p><p>  電子鐘通電后初始模式為模式0(正常計(jì)數(shù)),鬧鐘狀態(tài)為關(guān)閉。輸入電路的具體工作方式如下:當(dāng)模式按鍵按下后,工作模式更改為模式0(正常計(jì)數(shù))、模式1(計(jì)時(shí)調(diào)時(shí))、模式2(計(jì)時(shí)調(diào)分)、模式3(計(jì)時(shí)調(diào)秒)時(shí),數(shù)碼管顯示電路段位口輸出正常計(jì)時(shí)狀態(tài)的數(shù)據(jù),當(dāng)模式更改為模式4(鬧鐘調(diào)時(shí))、模式5(鬧鐘調(diào)分)時(shí),數(shù)碼管顯示電路的段位口輸

24、出鬧鐘狀態(tài)的數(shù)據(jù)。當(dāng)鬧鐘開(kāi)關(guān)按鍵被按下時(shí),鬧鐘狀態(tài)由關(guān)閉變?yōu)榇蜷_(kāi),隨著計(jì)時(shí)的不斷增加,當(dāng)計(jì)時(shí)的時(shí)和分等于鬧鐘設(shè)置的時(shí)和分時(shí),鬧鐘輸出P1.0口通過(guò)程序設(shè)置使該口為高電平,可使有源蜂鳴器發(fā)出聲音。</p><p>  3.5總電路原理圖設(shè)計(jì)</p><p>  由晶振電路、控制電路,以及由數(shù)碼管顯示和蜂鳴器所組成的輸出電路組成本次設(shè)計(jì)的總電路圖,如圖3-5所示。</p><

25、;p><b>  圖3-5 總電路圖</b></p><p>  其中晶振電路為單片機(jī)提供1μs的機(jī)器周期,為實(shí)現(xiàn)精確計(jì)時(shí)提供了先決條件;而鍵盤(pán)控制電路則實(shí)現(xiàn)了本時(shí)鐘六種模式的轉(zhuǎn)換和鬧鐘的開(kāi)或者關(guān)。 </p><p>  此次利用單片機(jī)設(shè)計(jì)的電子鐘電路由晶振電路、控制電路和輸出電路組成,性能好、功能多、價(jià)格低,充分體現(xiàn)了利用單片機(jī)設(shè)計(jì)的優(yōu)越性。在單片機(jī)的程序設(shè)計(jì)

26、中,采用了程序計(jì)數(shù),硬件計(jì)時(shí)的方法,其中時(shí)間秒加1通過(guò)中斷來(lái)實(shí)現(xiàn),單片機(jī)初始化設(shè)置之后,單片機(jī)就一直工作在死循環(huán)中,死循環(huán)則實(shí)現(xiàn)不斷地對(duì)控制電路的掃描,來(lái)改變工作模式或者調(diào)時(shí)調(diào)分等等。</p><p>  3.6 PROTEUS電路圖設(shè)計(jì)</p><p>  運(yùn)行Proteus的ISIS后出現(xiàn)程序主窗口界面,鼠標(biāo)左鍵單擊窗口左側(cè)的元器件工具欄的component按鈕, 接著再點(diǎn)擊窗口左側(cè)的

27、元器件選擇區(qū)的Pick Divices按鈕,彈出Pick Devices窗口,再在Categ欄里點(diǎn)擊MicroprocessorICs項(xiàng)后,在Results欄里會(huì)出現(xiàn)各種類(lèi)型的CPU器件,找到AT89C51后雙擊,AT89C51就被添加到當(dāng)前窗口左側(cè)的元器件列表區(qū)了。用同樣的方法依次把上拉電阻、數(shù)碼管、晶振以及多個(gè)電阻、電容、按鍵也添加到器件列表區(qū)里。然后再依次點(diǎn)擊列表區(qū)里的器件,單擊左鍵把他們放到繪圖區(qū),右鍵選中元件,并編輯其屬性,合

28、理布局后,進(jìn)行連線。連線時(shí)當(dāng)鼠標(biāo)的指針靠近一個(gè)對(duì)象的引腳時(shí),跟著鼠標(biāo)的指針就會(huì)出現(xiàn)一個(gè)“×”提示符號(hào),點(diǎn)擊鼠標(biāo)左鍵即可畫(huà)線了,需要拐彎時(shí)點(diǎn)擊一下即可,在終點(diǎn)再點(diǎn)擊確認(rèn)一下就畫(huà)出了一段導(dǎo)線,所有導(dǎo)線畫(huà)完后,點(diǎn)擊工具欄的Inter-sheeTerminal按鈕,添加上電源和接地符號(hào),原理圖的繪制就完成了。Proteus中設(shè)計(jì)的電子時(shí)鐘系統(tǒng)原理圖按圖3-5設(shè)計(jì)。</p><p><b>  第4章

29、軟件設(shè)計(jì)</b></p><p>  4.1 程序流程圖設(shè)計(jì)</p><p>  圖4-1 程序流程圖</p><p><b>  4.2源程序設(shè)計(jì)</b></p><p>  /*****************************************************************

30、*******</p><p>  名稱(chēng):功能完備的數(shù)字鐘</p><p>  共有6種工作模式:正常計(jì)時(shí)、按鍵調(diào)時(shí)、按鍵調(diào)分、按鍵調(diào)秒、鬧鐘調(diào)時(shí)、</p><p>  鬧鐘調(diào)秒,按設(shè)置鍵切換工作模式。</p><p>  ************************************************************

31、************/</p><p>  #include<reg51.h></p><p>  #define uint unsigned int</p><p>  #define uchar unsigned char</p><p>  Uchar code segcode[]=</p><p&g

32、t;  {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf};</p><p>  //0,1,2,3,4,5,6,7,8,9,-</p><p>  uchar code dispbit[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};</p><p><b&

33、gt;  //數(shù)碼管位選碼</b></p><p>  uchar buffer[]={0,0,0,0,0,0,0,0};</p><p>  uint hour,min,sec;</p><p>  uint ringhour,ringmin;</p><p>  uint status;</p><p>

34、;  sbit beep=P1^0;//鬧鐘</p><p>  bit ringoff;</p><p>  void keyprocess(unsigned char);</p><p>  /**********延時(shí)函數(shù)************/</p><p>  void delayMS(uint t) // 晶振頻率1

35、2M</p><p><b>  {</b></p><p><b>  uint i;</b></p><p>  while(t--)</p><p>  for(i=0;i<125;i++);</p><p><b>  }</b></

36、p><p>  void delay() //鬧鈴的延時(shí)</p><p><b>  {</b></p><p><b>  uint m,n;</b></p><p>  for(m=0;m<20;m++)</p><p>  for(n=0;n<20;n

37、++);</p><p><b>  }</b></p><p>  /************數(shù)碼管顯示函數(shù)****************/</p><p>  void display()</p><p><b>  {</b></p><p><b>  u

38、char i;</b></p><p>  if (status==4||status==5) //鬧鐘調(diào)時(shí)、調(diào)分狀態(tài)</p><p><b>  {</b></p><p>  buffer[0]=ringhour/10;</p><p>  buffer[1]=ringhour%10;<

39、/p><p>  buffer[3]=ringmin/10; // 顯示分的十位</p><p>  buffer[4]=ringmin%10; // 顯示分的個(gè)位</p><p>  for(i=0;i<8;i++)</p><p><b>  { </b></p>

40、<p>  P0=segcode[buffer[i]];</p><p>  P2=dispbit[i];</p><p>  delayMS(1); //防止數(shù)碼管顯示的時(shí)候閃動(dòng)</p><p><b>  P2=0x0;</b></p><p><b>  }</b></

41、p><p><b>  } </b></p><p>  else //正常計(jì)時(shí)顯示</p><p><b>  {</b></p><p>  buffer[0]=hour/10; // 顯示時(shí)的十位</p><p>  buffer[1]=hour%

42、10; // 顯示時(shí)的個(gè)位</p><p>  buffer[2]=10; // 顯示‘-’</p><p>  buffer[3]=min/10; // 顯示分的十位</p><p>  buffer[4]=min%10; // 顯示分的個(gè)位</p><p>  buffer[

43、5]=10; // 顯示‘-’</p><p>  buffer[6]=sec/10; // 顯示秒的十位</p><p>  buffer[7]=sec%10; // 顯示秒的個(gè)位</p><p>  for(i=0;i<8;i++)</p><p><b>  { <

44、/b></p><p>  P0=segcode[buffer[i]];</p><p>  P2=dispbit[i];</p><p>  delayMS(1); //防止數(shù)碼管顯示的時(shí)候閃動(dòng)</p><p><b>  P2=0x0;</b></p><p><b>

45、  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  main() //主函數(shù)</p><p><b>  { </b></p><p>  bit keyrele

46、ase;</p><p>  uchar buf;</p><p>  uchar keyinput;</p><p>  keyrelease=1;</p><p><b>  buf=0xff;</b></p><p>  ringoff=1;</p><p><

47、b>  beep=0;</b></p><p>  TMOD=0x01; //T0工作在方式1,16位計(jì)數(shù)器</p><p>  TH0=(65536-1000)/256; // 定時(shí)器0設(shè)置延時(shí)1ms中斷初始值</p><p>  TL0=(65536-1000)%256; </p><p>  T

48、R0=1; </p><p>  IE=0x82; //開(kāi)定時(shí)器0中斷</p><p><b>  status=0;</b></p><p>  while(1) //死巡環(huán)</p><p><b>  {</b></p><p&

49、gt;  /****************************************************</p><p>  鍵掃描程序,全掃描,逐行掃描。按鍵彈起后才處理</p><p>  *****************************************************/</p><p>  keyinput=P1&

50、0xf0;</p><p>  if(keyinput!=0xf0) </p><p><b>  { </b></p><p>  delayMS(10);</p><p>  if(keyinput!=0xf0)</p><p><b>  {</b></

51、p><p>  if(keyrelease==1)</p><p><b>  {</b></p><p>  keyrelease=0;</p><p>  buf = keyinput; //buf用來(lái)暫時(shí)存放鍵值</p><p><b>  }</b></p>

52、;<p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  keyrelease=1;</p><p>  keyprocess(buf); //調(diào)用按鍵處理函數(shù)</p>

53、;<p>  // display();</p><p>  buf = 0xff;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b&

54、gt;  {</b></p><p>  keyrelease=1;</p><p>  keyprocess(buf);</p><p>  // display();</p><p><b>  buf=0xff;</b></p><p><b>  }</b&g

55、t;</p><p>  if(ringoff==0&&hour==ringhour&&min==ringmin) </p><p>  //鬧鐘打開(kāi),定時(shí)報(bào)警,報(bào)警時(shí)長(zhǎng)1分鐘</p><p><b>  {</b></p><p><b>  beep=0;</b>

56、;</p><p><b>  delay();</b></p><p><b>  beep=1;</b></p><p><b>  }</b></p><p>  display();</p><p><b>  }</b>&

57、lt;/p><p><b>  }</b></p><p>  /***************定時(shí)器0中斷函數(shù)****************/</p><p>  void timer0() interrupt 1 using 2 </p><p><b>  { </b></p>

58、<p>  static uint count;</p><p>  TH0=(65536-1000)/256; // 定時(shí)器0設(shè)置初始值1ms中斷初始值</p><p>  TL0=(65536-1000)%256; </p><p><b>  TR0=1;</b></p><p>  cou

59、nt++; //正常計(jì)時(shí)</p><p>  if(count>=1000) // 定時(shí) 1S 到,以下為時(shí)鐘的正常走鐘邏輯</p><p>  { </p><p><b>  count=0;</b></p><p><b>  sec++;<

60、;/b></p><p>  if(sec>= 60)</p><p>  { </p><p>  sec=0; min++;</p><p>  if(min>= 60) </p><p>  { </p><p>  min

61、=0; hour++;</p><p>  if(hour>= 24) </p><p><b>  { </b></p><p><b>  hour=0; </b></p><p><b>  }</b></p><p><b>

62、;  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  /**************按鍵處理函數(shù)***************/ </p>

63、<p>  void keyprocess(unsigned char key) </p><p>  //鍵值處理,6種狀態(tài),正常計(jì)時(shí),設(shè)置時(shí)分秒,設(shè)置鬧鈴時(shí)分</p><p><b>  {</b></p><p>  switch (key)</p><p><b>  {</b&g

64、t;</p><p>  case 0xe0:status++; //按下設(shè)置鍵</p><p>  if (status>=6) status = 0; </p><p><b>  break;</b></p><p>  case 0xd0:switch(status) //按下加1鍵,5

65、種模式下加1</p><p><b>  {</b></p><p>  case 0x01:if(hour<23) hour++;</p><p>  else hour=0; break; </p><p>  case 0x02:if(min<59) min++;</p><p

66、>  else min=0; break;</p><p>  case 0x03:if(sec<59) sec++;</p><p>  else sec=0; break;</p><p>  case 0x04:if(ringhour<23) ringhour++;</p><p>  else ringhour

67、=0; break;</p><p>  case 0x05:if(ringmin<59) ringmin++;</p><p>  else ringmin=0; break;</p><p><b>  }</b></p><p><b>  break;</b></p>

68、<p>  case 0xb0:switch(status) //按下減1鍵</p><p><b>  {</b></p><p>  case 0x01:if(hour>0) hour--;</p><p>  else hour=23; break;</p><p>  case 0x02

69、:if(min>0) min--;</p><p>  else min=59; break;</p><p>  case 0x03:if(sec>0) sec--;</p><p>  else sec=59; break;</p><p>  case 0x04:if(ringhour>0) ringh

70、our--;</p><p>  else ringhour=23; break; </p><p>  case 0x05:if(ringmin>0) ringmin--;</p><p>  else ringmin=59; break;</p><p><b>  }</b></p>&l

71、t;p><b>  break;</b></p><p>  case 0x70: ringoff=~ringoff; //鬧鐘的開(kāi)和關(guān)</p><p><b>  break;</b></p><p>  default:break;</p><p><b>  }</b&

72、gt;</p><p><b>  }</b></p><p>  4.3 KEILC51進(jìn)行程序調(diào)試</p><p>  圖4-2 調(diào)試結(jié)果圖</p><p>  調(diào)試結(jié)果為0 Error(s),0 Warning(s)。表示程序生成.hex文件中沒(méi)有遇到錯(cuò)誤或者警告,即生成成功。</p><p&g

73、t;  第5章 系統(tǒng)調(diào)試與仿真</p><p>  5.1 PROTEUS中HEX文件選擇</p><p>  系統(tǒng)仿真分析電路原理圖在ISIS里設(shè)計(jì)完成,并將系統(tǒng)程序編譯成.Hex文件,再進(jìn)行電子時(shí)鐘的系統(tǒng)虛擬仿真 。</p><p> ?。?)在ISIS的原理圖中,右鍵單擊AT89C51將其選中,然后單擊左鍵打開(kāi)AT89C51的Edit Component對(duì)話框

74、,如圖5-1所示。</p><p>  圖5-1 Edit Component對(duì)話框</p><p> ?。?)選擇相應(yīng)的.Hex文件,再在Proteus ISIS編輯窗口的File菜單中選擇Save Design 選項(xiàng),保存設(shè)計(jì),生成.DSN文件。</p><p>  5.2 PROTEUS進(jìn)行電子鐘系統(tǒng)仿真</p><p>  在Prot

75、eus ISIS的調(diào)試菜單中選擇開(kāi)始調(diào)試,運(yùn)行程序,實(shí)現(xiàn)功能:開(kāi)始運(yùn)行時(shí)進(jìn)入模式一實(shí)現(xiàn)正常計(jì)時(shí),當(dāng)按一次K1,進(jìn)入模式二時(shí)鐘的時(shí)調(diào)節(jié),K2進(jìn)行加運(yùn)算,K3進(jìn)行減運(yùn)算。當(dāng)再按下第二和第三次K1,分別進(jìn)入時(shí)鐘的分調(diào)節(jié)和秒調(diào)節(jié),調(diào)節(jié)方式和時(shí)調(diào)節(jié)一樣。當(dāng)按下第四和第五次K1,分別進(jìn)去鬧鐘時(shí)調(diào)節(jié)和鬧鐘分調(diào)節(jié),調(diào)節(jié)方式和上述方法一樣。當(dāng)按下第六次K1時(shí),再次進(jìn)入正常計(jì)時(shí)。開(kāi)始運(yùn)行時(shí),時(shí)鐘的鬧鐘功能是關(guān)閉的,當(dāng)按下K4,可以打開(kāi)鬧鐘功能,當(dāng)計(jì)時(shí)器和設(shè)

76、置鬧鐘的時(shí)間一致時(shí),蜂鳴器就開(kāi)始鳴叫一分鐘。當(dāng)再次按下K4,可以關(guān)閉鬧鐘。時(shí)間顯示格式為:時(shí)-分-秒;Proteus系統(tǒng)仿真結(jié)果如圖5-2所示。</p><p>  圖5-2 Proteus系統(tǒng)仿真結(jié)果</p><p><b>  總 結(jié)</b></p><p>  2009年10月,我開(kāi)始了我的畢業(yè)論文工作,時(shí)至今日,論文基本完成。從最初的

77、茫然,到慢慢的進(jìn)入狀態(tài),再到對(duì)思路逐漸的清晰,整個(gè)寫(xiě)作過(guò)程難以用語(yǔ)言來(lái)表達(dá)。歷經(jīng)了幾個(gè)月的奮戰(zhàn),緊張而又充實(shí)的畢業(yè)設(shè)計(jì)終于落下了帷幕?;叵脒@段日子的經(jīng)歷和感受,我感慨萬(wàn)千,在這次畢業(yè)設(shè)計(jì)的過(guò)程中,我擁有了無(wú)數(shù)難忘的回憶和收獲。   10月初,在與導(dǎo)師的交流討論中我的題目定了下來(lái),是:實(shí)用單片機(jī)電子鐘的設(shè)計(jì)。當(dāng)選題報(bào)告,開(kāi)題報(bào)告定下來(lái)的時(shí)候,我當(dāng)時(shí)便立刻著手資料的收集工作中,當(dāng)時(shí)面對(duì)浩瀚的書(shū)海真是有些茫然,不知如何下手。我將這一困難告訴

78、了導(dǎo)師,在導(dǎo)師細(xì)心的指導(dǎo)下,終于使我對(duì)自己現(xiàn)在的工作方向和方法有了掌握。   在搜集資料的過(guò)程中,我認(rèn)真準(zhǔn)備了一個(gè)筆記本。我在學(xué)校圖書(shū)館,大工圖書(shū)館搜集資料,還在網(wǎng)上查找各類(lèi)相關(guān)資料,將這些寶貴的資料全部記在筆記本上,盡量使我的資料完整、精確、數(shù)量多,這有利于論文的撰寫(xiě)。然后我將收集到的資料仔細(xì)整理分類(lèi),及時(shí)拿給導(dǎo)師進(jìn)行溝通。 </p><p>  10月初,資料已經(jīng)查找完畢了,我開(kāi)始著手論文的寫(xiě)作。在寫(xiě)作過(guò)程

79、中遇到困難我就及時(shí)和導(dǎo)師聯(lián)系,并和同學(xué)互相交流,請(qǐng)教專(zhuān)業(yè)課老師。在大家的幫助下,困難一個(gè)一個(gè)解決掉,論文也慢慢成型。   10月底,論文的文字?jǐn)⑹鲆呀?jīng)完成。11月開(kāi)始進(jìn)行相關(guān)圖形的繪制工作和電路的設(shè)計(jì)工作。為了畫(huà)出自己滿意的電路圖,圖表等,我仔細(xì)學(xué)習(xí)了繪圖技術(shù)。在設(shè)計(jì)電路初期,由于沒(méi)有設(shè)計(jì)經(jīng)驗(yàn),覺(jué)得無(wú)從下手,空有很多設(shè)計(jì)思想,卻不知道應(yīng)該選哪個(gè),經(jīng)過(guò)導(dǎo)師的指導(dǎo),我的設(shè)計(jì)漸漸有了頭緒,通過(guò)查閱資料,逐漸確立系統(tǒng)方案。</p>

80、<p>  當(dāng)我終于完成了所有打字、繪圖、排版、校對(duì)的任務(wù)后整個(gè)人都很累,但同時(shí)看著電腦熒屏上的畢業(yè)設(shè)計(jì)稿件我的心里是甜的,我覺(jué)得這一切都值了。這次畢業(yè)論文的制作過(guò)程是我的一次再學(xué)習(xí),再提高的過(guò)程。在論文中我充分地運(yùn)用了大學(xué)期間所學(xué)到的知識(shí)。   我不會(huì)忘記這難忘的幾個(gè)月的時(shí)間。畢業(yè)論文的制作給了我難忘的回憶。在我徜徉書(shū)海查找資料的日子里,面對(duì)無(wú)數(shù)書(shū)本的羅列,最難忘的是每次找到資料時(shí)的激動(dòng)和興奮;親手設(shè)計(jì)電路圖的時(shí)間里,

81、記憶最深的是每一步小小思路實(shí)現(xiàn)時(shí)那幸福的心情;為了論文我曾趕稿到深夜,但看著親手打出的一字一句,心里滿滿的只有喜悅毫無(wú)疲憊。這段旅程看似荊棘密布,實(shí)則蘊(yùn)藏著無(wú)盡的寶藏。我從資料的收集中,掌握了很多單片機(jī)、軟件編程的知識(shí),讓我對(duì)我所學(xué)過(guò)的知識(shí)有所鞏固和提高,并且讓我對(duì)當(dāng)今單片機(jī)的最新發(fā)展技術(shù)有所了解。在整個(gè)過(guò)程中,我學(xué)到了新知識(shí),增長(zhǎng)了見(jiàn)識(shí)。在今后的日子里,我仍然要不斷地充實(shí)自己,爭(zhēng)取在所學(xué)領(lǐng)域有所作為。   腳踏實(shí)地,認(rèn)真嚴(yán)謹(jǐn),實(shí)事求

82、是的學(xué)習(xí)態(tài)度,不怕困難、堅(jiān)持不懈、吃苦耐勞的精神是我在這次設(shè)計(jì)中最大的收益。我想這是一次意志的磨練,是對(duì)我實(shí)際能力的一次提升,也會(huì)對(duì)我未來(lái)的學(xué)習(xí)和</p><p><b>  參考文獻(xiàn)</b></p><p>  [1] 代啟化.基于Proteus的電路設(shè)計(jì)與仿真[J].現(xiàn)代電子技術(shù),2006[2] 曹洪奎.基于Proteus單片機(jī)系統(tǒng)設(shè)計(jì)與仿真[J].遼寧工學(xué)院學(xué)

83、報(bào),2007</p><p>  [3] 侯玉寶.基于Proteus的51系列單片機(jī)設(shè)計(jì)與仿真[M].電子工業(yè)出版社,2008</p><p>  [4] 蔡希彪 曹洪奎.單片機(jī)電子時(shí)鐘系統(tǒng)設(shè)計(jì)與仿真[J].中國(guó)科技信息,2007</p><p>  [5] 方怡冰.單片機(jī)課程的教學(xué)與實(shí)驗(yàn)改革[J].電氣電子教學(xué)學(xué)報(bào),2006 </p><p&g

84、t;  [6] 劉文秀.單片機(jī)應(yīng)用系統(tǒng)仿真的研究[J].現(xiàn)代電子技術(shù),2005[7] 張友德.單片微型機(jī)原理、應(yīng)用與實(shí)驗(yàn)[M].復(fù)旦大學(xué)出版社,2003[8] 李光飛.單片機(jī)設(shè)計(jì)實(shí)例指導(dǎo)[M].北京航空航天大學(xué)出版社,2004[9] 胡漢才.單片機(jī)原理及其接口技術(shù)[M].清華大學(xué)出版社,1996[10] 楊立民.單片機(jī)技術(shù)及應(yīng)用[M].西安電子科技大學(xué)出版社,1997</p><p>  附 錄 元器

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論