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

下載本文檔

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

文檔簡介

1、<p><b>  單片機(jī)課程設(shè)計(jì)論文</b></p><p>  題 目:基于STC89C52單片機(jī)的電子時鐘(日歷)</p><p>  學(xué) 院: 材料與光電物理學(xué)院</p><p>  專 業(yè): 測控技術(shù)與儀器二班 </p><p>  完成日期: 2011年9月7日 </p

2、><p><b>  目 錄</b></p><p>  目錄------------------------------------------------------------------------------1</p><p>  摘要--------------------------------------------------

3、----------------------------2</p><p>  實(shí)驗(yàn)要求----------------------------------------------------------------2</p><p>  實(shí)驗(yàn)主要元器件介紹-------------------------------------------------3</p><p

4、>  2.1 STC89C52單片機(jī)簡介---------------------------------------------3</p><p>  2.2 LCD1602簡介-------------------------------------------------------6</p><p>  2.3 軟件平臺-------------------------

5、-------------------------------------7</p><p>  實(shí)驗(yàn)原理與設(shè)計(jì)內(nèi)容-------------------------------------------------7</p><p>  3.1 實(shí)驗(yàn)原理--------------------------------------------------------------7</

6、p><p>  3.2 三個組成部分--------------------------------------------------------7</p><p>  3.3 鍵盤控制模塊--------------------------------------------------------8</p><p>  調(diào)試過程----------------

7、------------------------------------------------8</p><p>  4.1 硬件調(diào)試--------------------------------------------------------------8</p><p>  4.2 軟件調(diào)試--------------------------------------------

8、------------------9</p><p>  4.3 測試數(shù)據(jù)與數(shù)據(jù)分析-----------------------------------------------9</p><p>  程序流程圖-------------------------------------------------------------10</p><p>  任務(wù)

9、分工與成果展示-------------------------------------------------11</p><p>  前期準(zhǔn)備--------------------------------------------------------------11</p><p>  課程設(shè)計(jì)過程------------------------------------------

10、--------------11</p><p>  個人主要工作及遇到問題-----------------------------------------11</p><p>  成果展示--------------------------------------------------------------12</p><p>  課程設(shè)計(jì)總結(jié)思考與致謝--

11、-----------------------------------------13</p><p>  參考文獻(xiàn)----------------------------------------------------------------14</p><p>  附錄一:(程序)-----------------------------------------------------

12、--------15</p><p>  附錄二:(原理圖)----------------------------------------------------------25</p><p>  附錄三:(實(shí)物圖)----------------------------------------------------------25</p><p>  附錄四

13、:(元件清單)-------------------------------------------------------26</p><p>  摘要:數(shù)字電子鐘系統(tǒng)設(shè)計(jì)已經(jīng)成熟,但是目前系統(tǒng)設(shè)計(jì)時基本都是采用LED作為顯示電路,造成硬件電路復(fù)雜、功耗高、產(chǎn)品體積龐大等特點(diǎn);液晶顯示模塊由于具有低功耗、壽命長、體積小、顯示內(nèi)容豐富、價格低、接口控制方便等優(yōu)點(diǎn),因此在各類電子產(chǎn)品中被極廣泛地推廣和應(yīng)用。字符型液

14、晶顯示模塊是一類專門用于顯示字母、數(shù)字、符號等點(diǎn)陣式液晶顯示模塊。本系統(tǒng)設(shè)計(jì)采用字符型液品顯示模塊LCD1602作為顯示器件,這樣不僅簡化了系統(tǒng)的硬件設(shè)計(jì),而且極大地提高了系統(tǒng)的可靠性。</p><p>  本文詳細(xì)介紹了以液晶顯示器LCD1602作為系統(tǒng)輸出的數(shù)字電子鐘設(shè)計(jì)方案,其中包括LCD原理及接口方法、硬件電路設(shè)計(jì)、軟件程序編制等內(nèi)容,并在Proteus中進(jìn)行了仿真驗(yàn)證。</p><p

15、>  關(guān)鍵詞:STC89C52單片機(jī)、電子時鐘、鍵盤控制、Proteus仿真。</p><p><b>  一、實(shí)驗(yàn)要求</b></p><p>  課題名稱:基于單片機(jī)STC89C52的電子時鐘(附加日歷功能)。</p><p>  設(shè)計(jì)要求:本設(shè)計(jì)基于單片機(jī)技術(shù)原理,以單片機(jī)芯片STC89C52作為核心控制器,通過硬件電路的制作以及軟

16、件程序的編制,設(shè)計(jì)制作出一個多功能數(shù)字時鐘系統(tǒng)。單片機(jī)擴(kuò)展的LCD顯示器用來顯示秒、分、時、日、月、年、星期七個計(jì)數(shù)單元中的值。</p><p>  目的及意義:隨著計(jì)算機(jī)科學(xué)與技術(shù)的飛速發(fā)展,計(jì)算機(jī)的應(yīng)用已經(jīng)滲透到國民經(jīng)濟(jì)與人們生活的各個角落,正在日益改變著傳統(tǒng)的人類工作方式和生活方式, 而單片機(jī)技術(shù)又作為計(jì)算機(jī)技術(shù)中的一個獨(dú)立分支,有著性價比高,集成度高,體積小,可靠性高,控制功能強(qiáng)大,低功耗,低電壓,便于生

17、產(chǎn),便于攜帶等特點(diǎn),所以得到越來越廣泛的應(yīng)用,特別是在工業(yè)控制和儀表儀器智能化中起極其重要的作用.本文利用單片機(jī)強(qiáng)大的控制功能和內(nèi)部定時器重要部件,設(shè)計(jì)了一款自行對時間進(jìn)行調(diào)整以及把時、分、秒用LCD顯示的電子鐘。</p><p>  二、實(shí)驗(yàn)主要元器件介紹</p><p>  STC89C52單片機(jī)簡介</p><p>  STC89C52是一種帶8K字節(jié)閃爍可編

18、程可檫除只讀存儲器(FPEROM-Flash Programable and Erasable Read Only Memory )的低電壓,高性能COMOS8的微處理器,俗稱單片機(jī)。該器件采用ATMEL搞密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。</p><p>  單片機(jī)總控制電路如下圖1:</p><p>  圖4—1單片機(jī)總控制電路</p&

19、gt;<p><b> ?。▓D一)</b></p><p><b>  主要特性如下:</b></p><p>  工作電壓:5.5v ~3.3v(5v單片機(jī))/3.8v ~2.0v(3v單片機(jī))</p><p>  工作頻率范圍:0~40MHZ,相當(dāng)于8051的0~80MHZ,實(shí)際工作頻率可大48MHZ。&

20、lt;/p><p>  用戶應(yīng)用程序空間為8K字節(jié)</p><p>  片上集成512字節(jié)RAM</p><p>  通用I/O口(32個),復(fù)位后為:P1/P2/P3/P4是準(zhǔn)雙向口/弱上拉,P0是漏極開路輸出,作為總線擴(kuò)展用時,不用加上拉電阻,作為I/O口使用時,需加上拉電阻。</p><p>  具有EEPROM功能與看門狗功能</p

21、><p>  具有3個16位的定時器/計(jì)數(shù)器。及定時器T0.T1.T2。</p><p><b>  工作模式:</b></p><p>  掉電模式:典型功耗小于0.1uA,可由外部中斷喚醒,中斷返回后,繼續(xù)執(zhí)行原程序。</p><p>  正常工作模式:典型功耗4mA~7mA</p><p>  

22、空閑模式:典型功耗2mA</p><p>  P0口:是一組8 位漏極開路型雙向I/O 口,也即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口用時,每位能吸收電流的方式驅(qū)動8個TTL邏輯門電路,對端口寫“1”可作為高阻抗輸入端用。在訪問外部數(shù)據(jù)存儲器或程序存儲器時,這組口線分時轉(zhuǎn)換地址(低8位)和數(shù)據(jù)總線復(fù)用,在訪問期間激活內(nèi)部上拉電阻。在FIash編程時,P0口接收指令字節(jié),而在程序校驗(yàn)時,輸出指令字節(jié),校驗(yàn)時,要求外接上拉

23、電阻。</p><p>  P1口:是一個帶內(nèi)部上拉電阻的8位雙向I/O口,P1的輸出緩沖級可驅(qū)動(吸收或輸出電流)4個TTL邏輯門電路。對端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,因?yàn)閮?nèi)部存在上拉</p><p>  電阻,某個引腳被外部信號拉低時會輸出一個電流(IIL)。</p><p>  FIash編程和程序校驗(yàn)期間,

24、P1接收低8位地址。</p><p>  P2口:是一個帶有內(nèi)部上拉電阻的8位雙向I/O口,P2的輸出緩沖級可驅(qū)動(吸收或輸出電流)4個TTL邏輯門電路。對端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口,作輸入口使用時,因?yàn)閮?nèi)部存在上</p><p>  拉電阻,某個引腳被外部信號拉低時會輸出一個電流(IIL)。在訪問外部程序存儲器或16位地址的外部數(shù)據(jù)存儲器(例如執(zhí)行M

25、OVX@DPTR指令)時,P2口送出高8位地址數(shù)據(jù)。在訪問8 位地址的外部數(shù)據(jù)存儲器(如執(zhí)行MOVX@RI 指令)時,P2 口線上的內(nèi)容(也即特殊功能寄存器(SFR)區(qū)中R2寄存器的內(nèi)容),在整個訪問期間不改變。Flash編程或校驗(yàn)時,P2亦接收高位地址和其它控制信號。</p><p>  P3口:是一組帶有內(nèi)部上拉電阻的8 位雙向I/O 口。P3 口輸出緩沖級可驅(qū)動(吸收或輸出電流)4 個TTL邏輯門電路。對P

26、3 口寫入“1”時,它們被內(nèi)部上拉電阻拉高并可作為輸入端口。作輸入端時,被外部拉低的P3 口將用上拉電阻輸出電流(IIL)。P3口除了作為一般的I/O口線外,更重要的用途是它的第二功能,如下表所示:</p><p>  P3口還接收一些用于Flash閃速存儲器編程和程序校驗(yàn)的控制信號。</p><p>  RST 復(fù)位輸入。當(dāng)振蕩器工作時,RST引腳出現(xiàn)兩個機(jī)器周期以上高電平將使單片機(jī)復(fù)位

27、。</p><p>  ALE/PROG: 當(dāng)訪問外部程序存儲器或數(shù)據(jù)存儲器時,ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。即使不訪問外部存儲器,ALE 仍以時鐘振蕩頻率的l/6 輸出固定的正脈沖信號,因此它可對外輸出時鐘或用于定時</p><p>  目的。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲器時將跳過一個ALE脈沖。</p><p>  2.2、 LC

28、D1602簡介 </p><p>  液晶顯示屏LCD1602(如圖3)以其微功耗、體積小、顯示內(nèi)容豐富、超薄輕巧的諸多優(yōu)點(diǎn)在袖珍式儀表和低功耗應(yīng)用系統(tǒng)中得到越來越來廣泛的應(yīng)用。</p><p>  這里介紹的是字符型液晶模塊是一種5*7點(diǎn)陣圖形來顯示字符的液晶顯示器,根據(jù)顯示內(nèi)容可分為1行16個字、2行16個字、2行20個字等等,本設(shè)計(jì)用

29、的是常用的2行16個 圖2 </p><p>  字的1602液晶模塊。主要用于顯示時間和定時時間,并且具有字符對比度調(diào)節(jié)和背光功能。 </p><p><b>  其引腳功能如下:</b></p><p>  第1腳:VSS為地電源 </p&g

30、t;<p>  第2腳:VDD接5V正電源 </p><p>  第3腳:V0為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地電源時對比度最高,對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調(diào)整對比度 </p><p>  第4腳:RS為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器。 </p><p>  第5腳:RW為

31、讀寫信號線,高電平時進(jìn)行讀操作,低電平時進(jìn)行寫操作。當(dāng)RS和RW共同為低電平時可以寫入指令或者顯示地址,當(dāng)RS為低電平RW為高電平時可以讀忙信號,當(dāng)RS為高電平RW為低電平時可以寫入數(shù)據(jù)。 </p><p>  第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。 </p><p>  第7~14腳:D0~D7為8位雙向數(shù)據(jù)線。</p><p> 

32、 第15~16腳:空腳</p><p><b>  2.3軟件平臺</b></p><p><b>  1)Keil 編程</b></p><p>  Keil 的開發(fā)工具的使用的基本過程: 1 ○創(chuàng)建 C 或匯編語言的源程序; 2 ○編譯或匯編源文件; 3 ○糾正源文件中的錯誤; 4 ○從編譯器和匯編器連接目標(biāo)文件; 5

33、 ○測試連接的應(yīng)用程序。</p><p>  2)Proteus 仿真</p><p>  Proteus 軟件不僅具有其它 EDA 工具軟件的仿真功能,還能仿真單片機(jī)及外圍器 件。 它是目前最好的仿真單片機(jī)及外圍器件的工具。 在編譯方面, 它也支持 IAR, Keil, PLAB 等多種編譯器。</p><p>  三、實(shí)驗(yàn)原理與設(shè)計(jì)內(nèi)容</p>&

34、lt;p><b>  3.1 實(shí)驗(yàn)原理</b></p><p>  電子鐘從原理上講是一種典型的數(shù)字電路,其中包括了組合邏輯電路和時序電路。因此,我們此次設(shè)計(jì)與制做數(shù)字鐘就是為了了解數(shù)字鐘的原理,從而學(xué)會制作數(shù)字鐘.而且通過數(shù)字鐘的制作進(jìn)一步的了解各種在制作中用到的中小規(guī)模集成電路的作用及實(shí)用方法.且由于數(shù)字鐘包括組合邏輯電路和時敘電路.通過它可以進(jìn)一步學(xué)習(xí)與掌握各種組合邏輯電路與時序

35、電路的原理與使用方法。</p><p>  本設(shè)計(jì)基于單片機(jī)技術(shù)原理,以單片機(jī)芯片AT89C52作為核心控制器,通過硬件電路的制作以及軟件程序的編制,設(shè)計(jì)制作出一個多功能數(shù)字時鐘系統(tǒng)。單片機(jī)擴(kuò)展的LCD顯示器用來顯示秒、分、時計(jì)數(shù)單元中的值。整個設(shè)計(jì)包括兩大部分: 硬件部分和軟件部分,以單片機(jī)為核心, 配以一定的外圍電路和軟件。硬件是整個系統(tǒng)的基礎(chǔ), 軟件部分則要合理、充分地支持和使用系統(tǒng)的硬件, 從而完成系統(tǒng)所

36、要完成的任務(wù)。</p><p>  3.2 三個組成部分</p><p>  該時鐘系統(tǒng)主要由時鐘模塊、液晶顯示模塊、鍵盤控制模塊以及信號提示模塊組成。能夠準(zhǔn)確顯示時間(顯示格式為時時:分分:秒秒,24小時制),可隨時進(jìn)行時間調(diào)整。設(shè)計(jì)以硬件軟件化為指導(dǎo)思想,充分發(fā)揮單片機(jī)功能,大部分功能通過軟件編程來實(shí)現(xiàn),電路簡單明了,系統(tǒng)穩(wěn)定性高。單片機(jī)在這種情況下誕生了基于單片機(jī)電子時鐘。</

37、p><p>  3.3 鍵盤控制模塊</p><p>  按鍵中有一個復(fù)位鍵及定時鍵、調(diào)時鍵加一鍵和減一鍵,一個按鍵接在復(fù)位電路上,另外四個按鍵接在P0——P4口,低電平表示有按鈕按下;按鈕沒有接防抖電路,需要設(shè)計(jì)軟件防抖。</p><p>  1、定時。按下定時鍵后可以開始定時,過程如下:定時---〉小時加/減---〉按定時---分鐘加/減---按定時。</p&

38、gt;<p>  2、調(diào)時。按下調(diào)時鍵后可以調(diào)時,過程如下:調(diào)時---年加/減---調(diào)時--月加/減---調(diào)時---日加/減---調(diào)時---時加/減---調(diào)時---分加/減---調(diào)時---秒加/減 ---調(diào)時。</p><p><b>  四、調(diào)試過程</b></p><p>  調(diào)試的主要過程包括硬件調(diào)試和軟件調(diào)試,其中軟件調(diào)試,也即程序編譯與仿真過程

39、處于本次設(shè)計(jì)調(diào)試過程的核心環(huán)節(jié)。由于本設(shè)計(jì)已經(jīng)制作出液晶顯示電子鐘,所以硬件調(diào)試也很重要。兩種調(diào)試過程并非孤立或者分開的,而是緊密相關(guān)。在此我們用到的開發(fā)工具是仿真器。</p><p><b>  4.1 硬件調(diào)試</b></p><p>  完成仿真器軟件仿真后,就要連接上硬件也即液晶顯示電子鐘成品板進(jìn)行硬件調(diào)試。</p><p>  將仿真

40、器通過串行電纜連接計(jì)算機(jī)上,將仿真頭接到仿真器,檢查接線是否有誤,確信沒有接錯后,接上電源,打開仿真器的電源開關(guān)。再進(jìn)行仿真器和通信設(shè)置。</p><p>  仿真器和仿真頭設(shè)置正確,并且硬件連接沒有錯誤,出現(xiàn) “硬件仿真”的對話框,并顯示仿真器、仿真頭的型號及仿真器的序列號。表明仿真器初始化正確。</p><p>  硬件調(diào)試很重要也很麻煩,由于本次設(shè)計(jì)硬件非PCB制板,而是手工焊板,焊

41、點(diǎn)質(zhì)量、布線是否合理等對系統(tǒng)的影響比較大,這無疑增加硬件調(diào)試的難度。由于此前沒有很多的練習(xí),本次設(shè)計(jì)我所制作的液晶顯示電子鐘在質(zhì)量工藝上很難達(dá)到滿意程度,不過在調(diào)試中還算穩(wěn)定,基本功能都能較穩(wěn)定地實(shí)現(xiàn)。</p><p>  難達(dá)到滿意程度,不過在調(diào)試中還算穩(wěn)定,基本功能都能較穩(wěn)定地實(shí)現(xiàn)。</p><p><b>  4.2 軟件調(diào)試</b></p>&l

42、t;p>  系統(tǒng)仿真分析電路原理圖在ISIS里設(shè)計(jì)完成,并將系統(tǒng)軟件編譯成.Hex文件,再進(jìn)行電子時鐘的系統(tǒng)虛擬仿真。</p><p>  (1)在ISIS的原理圖中,右鍵單擊AT89C51將其選中,然后單擊左鍵打開AT89C51的Edit Component 對話框,如下圖所示。(2)選擇相應(yīng)的.Hex文件,再在Proteus ISIS 編輯窗口的File菜單中選擇Save Design 選項(xiàng),保存設(shè)計(jì),

43、生成.DSN文件。</p><p>  4.3 測試數(shù)據(jù)與數(shù)據(jù)分析</p><p>  在Proteus ISIS的Debug菜單中選擇Execute,運(yùn)行程序,系統(tǒng)仿真結(jié)果如下圖所示。</p><p><b>  (圖三) </b></p><p>  實(shí)現(xiàn)功能的具體方法:當(dāng)進(jìn)入調(diào)整功能時,按第一個鍵K1進(jìn)行減運(yùn)算,

44、按第二個鍵K2進(jìn)行加運(yùn)算。</p><p>  按下第三個鍵K3,實(shí)現(xiàn)日期\時間調(diào)整及\定時功能,等數(shù)字閃爍后,按一二鍵進(jìn)行加減,從而可以進(jìn)行具體日期時間調(diào)整。按下第四個鍵K4,可以進(jìn)行時間\日期切換,將顯示時間或日期,采用24小時制。時間顯示格式為:時-分-秒;日期顯示格式為:日-月-年。具有顯示時間和日期的功能</p><p><b>  五、程序流程圖</b>&

45、lt;/p><p><b>  流程圖如下:</b></p><p><b>  (圖四)</b></p><p>  六、任務(wù)分工與成果展示</p><p><b>  6.1 前期準(zhǔn)備:</b></p><p>  在課程設(shè)計(jì)前期,我和小江分好任務(wù),便開

46、始著手查閱資料、調(diào)研,通過查閱有關(guān)書籍、論文,最終確定課題為基于STC89C52單片機(jī)的電子時鐘。</p><p>  6.2 課程設(shè)計(jì)過程</p><p>  設(shè)計(jì)電路圖,并根據(jù)所設(shè)計(jì)電路圖和單片機(jī)工作原理,為實(shí)現(xiàn)電子鐘附帶日歷及復(fù)位功能,在書上查找資料程序,并自己進(jìn)行編程。經(jīng)反復(fù)調(diào)試和修改,最終編譯通過,proteus仿真成功,LCD顯示器能根據(jù)程序要求來顯示時間并可通過開關(guān)進(jìn)行顯示位

47、的選擇和時間的加減,而且按復(fù)位鍵可以回到初始設(shè)置,即程序中設(shè)計(jì)的2011-5-18 WED 23:59:20。</p><p>  將所編程序置入單片機(jī)內(nèi),并按照所設(shè)計(jì)電路圖在面包板上連線。經(jīng)反復(fù)連線、檢查元件、檢查線路、檢驗(yàn)程序,最終終于演示通過。</p><p>  按照電路圖,將各元器件焊接在電路板上,再用萬用表檢驗(yàn)線路是否有空焊、短路等情況,進(jìn)一步處理。顯示器正常顯示時間,并能達(dá)到

48、預(yù)期目標(biāo)。課程設(shè)計(jì)完成。</p><p>  6.3 個人主要工作及遇到問題</p><p>  在本次課程設(shè)計(jì)中我主要負(fù)責(zé)軟件方面的程序的查找修改和硬件方面的焊接工作。</p><p>  過程中遇到了各種問題。程序的主體是查找資料得出的,中間加入了自己的修改。但是在改動過程中,幾次運(yùn)行不成功。經(jīng)多次檢查和修改,向同學(xué)請教,最終編譯通過。Proteus仿真過程是另

49、一同學(xué)完成的。</p><p>  在硬件方面,另一同學(xué)負(fù)責(zé)排線布局,我負(fù)責(zé)手工焊接。在面包板上幾次調(diào)試都不成功,顯示器亮的卻不顯示數(shù)字。曾懷疑線路連錯、元器件有損壞、背光沒有調(diào)好等問題,后經(jīng)一一排除。接著就用萬用表測每條線路是否正常,終于發(fā)現(xiàn)有些應(yīng)該是高電平卻不是,經(jīng)過分析討論,認(rèn)為可能是有接觸不良。后借了其他組的面包板嘗試,幾經(jīng)波折,終于演示成功。焊接過程也是很容易出錯。焊好后接通電源,顯示屏不亮,經(jīng)檢查,發(fā)

50、現(xiàn)有一處短路。稍作處理后,我們努力了一個星期的電子時鐘就成功了。</p><p><b>  6.4 成果展示</b></p><p> ?。ê附庸に嚺c排線布局)</p><p>  七、課程設(shè)計(jì)總結(jié)思考與致謝</p><p>  我們進(jìn)行了為期兩周的課程設(shè)計(jì)成功結(jié)束了,時間雖短,但收獲頗多。</p>&l

51、t;p>  這次的課程設(shè)計(jì),是一個嶄新的體驗(yàn),是一個學(xué)習(xí)的平臺,是一次興趣的啟迪,是嘗試著自己動手實(shí)踐的開始,是現(xiàn)實(shí)與需求之間差距的體現(xiàn),也是一個認(rèn)識與改變的過程。</p><p>  安排課程設(shè)計(jì)的基本目的,是在于通過理論與實(shí)際的結(jié)合、人與人的溝通,進(jìn)一步提高思想覺悟和領(lǐng)悟力。尤其是觀察、分析和解決問題的實(shí)際工作能力。作為整個學(xué)習(xí)體系的有機(jī)組成部分,課程設(shè)計(jì)雖然安排在兩周進(jìn)行,但并不具有絕對獨(dú)立的意義。它

52、的一個重要功能,在于運(yùn)用學(xué)習(xí)成果,檢驗(yàn)學(xué)習(xí)成果。運(yùn)用學(xué)習(xí)成果,把課堂上學(xué)到的系統(tǒng)化的理論知識,嘗試性地應(yīng)用于實(shí)際設(shè)計(jì)工作,并從理論的高度對設(shè)計(jì)工作的現(xiàn)代化提出一些有針對性的建議和設(shè)想。檢驗(yàn)學(xué)習(xí)成果,看一看課堂學(xué)習(xí)與實(shí)際工作到底有多大距離,并通過綜合分析,找出學(xué)習(xí)中存在的不足,以便為完善學(xué)習(xí)計(jì)劃,改變學(xué)習(xí)內(nèi)容與方法提供實(shí)踐依據(jù)。</p><p>  對于我們理工類的本科生來說,實(shí)踐能力如何是至關(guān)重要的。而這種能力在

53、課堂上是學(xué)習(xí)不到的,必須從書本走向?qū)嵺`。無論課本上的原理如何經(jīng)典,課文中的描述如何生動,我們都只能理解,只能想象。可是這次的課程設(shè)計(jì)讓我們擁有了一個全新的體驗(yàn),與課堂完全不同,是一種耳目一新的感覺。許多人見看那些小小的元器件會說出:“原來這就是電容啊”“原來電阻這么小”“原來這又四十個引腳的小芯片就是我們所學(xué)的單片機(jī)啊”。有人說興趣是最好的老師。那么我想,在那一刻,許多人的興趣都被激發(fā)出來了。</p><p> 

54、 課程設(shè)計(jì)過程中,我們也遇到了各種各樣問題,在面包板上幾次調(diào)試都不成功,顯示器亮的卻不顯示數(shù)字。曾懷疑線路連錯、元器件有損壞、背光沒有調(diào)好等問題,后經(jīng)一一排除。接著用萬用表測每條線路是否正常,終于發(fā)現(xiàn)有些應(yīng)該是高電平卻不是,有些該有電壓差卻沒有,經(jīng)過分析討論,認(rèn)為可能是有接觸不良。后借了其他組的面包板嘗試,幾經(jīng)波折,終于演示成功。</p><p>  在設(shè)計(jì)中我主要負(fù)責(zé)的是硬件布線、焊接工作。無論是布線還是焊接都

55、是精細(xì)的活,且他們的重要性是相當(dāng)?shù)?。布線布的好,焊接起來不但整體布局美觀,同時能省時省力,而且減少空焊、落焊的幾率。焊接確實(shí)要精中有細(xì)。在其他的組中都是男生在焊接,因?yàn)橐苍S他們認(rèn)為拿著烙鐵焊東西不適合女生做,我卻不這么認(rèn)為。男生粗手粗腳,不細(xì)心,這樣的活交給他們很可能會焊成一片,在我的自告奮勇下,帶著組員的信任,我把事先布好的導(dǎo)線與引腳一個一個的焊好。不只要細(xì),還要精、穩(wěn),每次焊接結(jié)束時抬手要果斷迅速。我覺得只要心細(xì)、手穩(wěn),焊接一點(diǎn)都不

56、難。焊好后接電源,起初不亮,經(jīng)檢查有一處短路,稍作處理,我們的顯示就正常了。成功的心情自然愉快,我焊好的板子在班級里幾乎是最漂亮、問題最少的,為此我也竊喜了一下。</p><p>  課程設(shè)計(jì)達(dá)到了專業(yè)學(xué)習(xí)的預(yù)期目的。在一個多星期的課程設(shè)計(jì)之后,我們普遍感到不僅實(shí)際動手能力有所提高,而且掌握單片機(jī)開發(fā)編程設(shè)計(jì)的基本流程,了解 Keil 及 Proteus 軟件的基本使用,了解 LCD 的基本使用,并且學(xué)習(xí)了單片機(jī)

57、硬件制作。在課程實(shí)際和制作過程中進(jìn)一步激發(fā)了我們對專業(yè)知識的興趣,并能夠結(jié)合實(shí)際存在的問題在專業(yè)領(lǐng)域內(nèi)進(jìn)行更深入的學(xué)習(xí)。通過這次課程設(shè)計(jì),我們也看到了自身狀況與現(xiàn)實(shí)需要的差距,有了這樣的認(rèn)識,便于我們在今后的學(xué)習(xí)中及時補(bǔ)充和調(diào)整。</p><p>  我相信這次課程設(shè)計(jì)會對我以后的工作會有很大程度的益處,在此還要感謝學(xué)院為我們提供這次機(jī)會,感謝王子涵老師的用心指導(dǎo)!</p><p><

58、;b>  八、參考文獻(xiàn)</b></p><p><b>  附錄1:(程序)</b></p><p>  #include<reg51.h></p><p>  #define uchar unsigned char</p><p>  void write_hms(uchar,uchar)

59、;</p><p>  void time_setup();</p><p>  uchar a,count,hh,mm,ss,year,year0=20,year1=11,mon=5,day=18,flagy,flagw=3,flagk;</p><p>  uchar code table0[]=" 2011-05-18 WED";</

60、p><p>  uchar code table1[]=" 00:00:00";</p><p>  sbit RS=P2^0; // 數(shù)據(jù)/命令選擇端(H/L)</p><p>  sbit LE=P2^1; // 使能信號</p><p>  sbit kfun=P2^2; //功能鍵</p&

61、gt;<p>  sbit kadd=P2^3; //增加</p><p>  sbit ksub=P2^4; //減少</p><p>  void delay(uchar z) </p><p>  {uchar x,y;</p><p>  for(x=z;x>0;x--)</p><p

62、>  for(y=110;y>0;y--);</p><p><b>  }</b></p><p>  void write_com(uchar com) </p><p>  {RS=0; //寫命令</p><p><b>  P0=com;</b></p>

63、<p><b>  delay(5);</b></p><p><b>  LE=1;</b></p><p><b>  delay(5);</b></p><p><b>  LE=0;</b></p><p><b>  }&l

64、t;/b></p><p>  void write_data(uchar Data) </p><p>  {RS=1; //寫數(shù)據(jù)</p><p><b>  P0=Data;</b></p><p><b>  delay(5);</b></p><p>

65、;<b>  LE=1;</b></p><p><b>  delay(5);</b></p><p><b>  LE=0;</b></p><p><b>  }</b></p><p>  void init()</p><p&

66、gt;  {LE=0;//初始化使能信號</p><p>  write_com(0x38);//設(shè)置顯示模式</p><p>  write_com(0x0c);//顯示開關(guān)、光標(biāo)設(shè)置</p><p>  write_com(0x06);//屏幕移動操作</p><p>  write_com(0x80);//寫入數(shù)據(jù)地址&l

67、t;/p><p>  write_com(0x01);//清屏</p><p>  //寫入初始化顯示值</p><p>  write_com(0x80);</p><p>  for(a=0;a<15;a++)</p><p>  {write_data(table0[a]);</p><p

68、><b>  delay(5);</b></p><p><b>  }</b></p><p>  write_com(0x80+0x40);</p><p>  for(a=0;a<12;a++)</p><p>  {write_data(table1[a]);</p>

69、<p><b>  delay(5);</b></p><p><b>  }</b></p><p>  TMOD=0x01; //開啟定時器T0中斷</p><p>  TH0=(65536-50000)/256;</p><p>  TL0=(65536-50000)%2

70、56;</p><p><b>  EA=1;</b></p><p><b>  ET0=1;</b></p><p><b>  TR0=1;</b></p><p><b>  hh=23;</b></p><p><b

71、>  mm=58;</b></p><p><b>  ss=56;</b></p><p>  year=year0*100+year1;</p><p>  flagy=(year%4==0&&year%100!=0)||(year%400==0);</p><p>  write_

72、hms(0x40+3,hh);</p><p>  write_hms(0x40+6,mm);</p><p>  write_hms(0x40+9,ss);</p><p><b>  }</b></p><p>  void write_hms(uchar addr,uchar Data) //顯示:年、月、日、十

73、、分、秒</p><p>  {uchar shi,ge; </p><p>  shi=Data/10;</p><p>  ge=Data%10;</p><p>  write_com(0x80+addr);</p><p>  write_data(0x30+shi);</p><

74、p>  write_data(0x30+ge);</p><p>  write_com(0x80+addr);</p><p><b>  }</b></p><p>  void time0() interrupt 1//定時器T0中斷函數(shù)</p><p>  {TH0=(65536-50000)/256;

75、</p><p>  TL0=(65536-50000)%256;</p><p><b>  count++;</b></p><p>  if(count==20)</p><p><b>  {count=0;</b></p><p>  time_setup();&l

76、t;/p><p><b>  }</b></p><p><b>  }</b></p><p>  void week_setup(uchar fl)//顯示星期</p><p>  {switch(fl)</p><p><b>  {case 0:<

77、;/b></p><p>  {write_com(0x80+12);</p><p>  write_data('S');</p><p>  write_data('U');</p><p>  write_data('N');</p><p>  write_

78、com(0x80);</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  case 1:</b></p><p>  {write_com(0x80+12);</p><p>  writ

79、e_data('M');</p><p>  write_data('O');</p><p>  write_data('N');</p><p>  write_com(0x80);</p><p><b>  break;</b></p><p&g

80、t;<b>  }</b></p><p><b>  case 2:</b></p><p>  {write_com(0x80+12);</p><p>  write_data('T');</p><p>  write_data('U');</p>

81、<p>  write_data('E');</p><p>  write_com(0x80);</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  case 3:</b><

82、/p><p>  {write_com(0x80+12);</p><p>  write_data('W');</p><p>  write_data('E');</p><p>  write_data('D');</p><p>  write_com(0x80);&

83、lt;/p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  case 4:</b></p><p>  {write_com(0x80+12);</p><p>  write_data('

84、;T');</p><p>  write_data('H');</p><p>  write_data('U');</p><p>  write_com(0x80);</p><p><b>  break;</b></p><p><b>

85、  }</b></p><p><b>  case 5:</b></p><p>  {write_com(0x80+12);</p><p>  write_data('F');</p><p>  write_data('R');</p><p>

86、  write_data('I');</p><p>  write_com(0x80);</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  case 6: </b></p>&l

87、t;p>  {write_com(0x80+12);</p><p>  write_data('S');</p><p>  write_data('A');</p><p>  write_data('T');</p><p>  write_com(0x80);</p>

88、<p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void time_setup() //時間調(diào)整、設(shè)置函數(shù)

89、xxxx-xx-xx XXX</p><p>  { ss++; // xx:xx:xx</p><p>  if(ss==60)</p><p><b>  {ss=0;</b></p><p><b>  mm++;</b></p><p>  if(m

90、m==60)</p><p><b>  {hh++;</b></p><p><b>  mm=0;</b></p><p>  if(hh==24)</p><p><b>  {hh=0;</b></p><p><b>  day++;

91、</b></p><p><b>  flagw++;</b></p><p>  if(flagw==7){flagw=0;}</p><p>  week_setup(flagw);</p><p>  if(((day>31)&&(mon==1||mon==3||mon==5||m

92、on==7||mon==8||mon==10||mon==12))</p><p>  ||((day>30)&&(mon==4||mon==6||mon==9||mon==11))||((day>29)&&(mon==2)&&(flagy==1))</p><p>  ||((day>28)&&(mon==

93、2)&&(flagy==0)))</p><p><b>  {day=1;</b></p><p><b>  mon++;</b></p><p>  if(mon==12)</p><p><b>  {mon=1;</b></p><

94、p><b>  year1++;</b></p><p>  if(year1==100) </p><p><b>  {year0++;</b></p><p><b>  year1=0;</b></p><p>  if(year0==100) {year0=20

95、;year1=8;}</p><p><b>  }</b></p><p>  year=year0*100+year1;</p><p>  flagy=(year%4==0&&year%100!=0)||(year%400==0);</p><p>  write_hms(1,year0);<

96、/p><p>  write_hms(3,year1);</p><p><b>  }</b></p><p>  write_hms(6,mon);</p><p><b>  }</b></p><p>  write_hms(9,day);</p><

97、p><b>  }</b></p><p>  write_hms(0x40+3,hh);</p><p><b>  }</b></p><p>  write_hms(0x40+6,mm);</p><p><b>  }</b></p><p&g

98、t;  write_hms(0x40+9,ss);</p><p><b>  }</b></p><p>  void keysan()</p><p>  {if(kfun==0)</p><p>  {delay(5);</p><p>  if(kfun==0)</p>&l

99、t;p>  {while(!kfun);</p><p><b>  flagk++;</b></p><p><b>  TR0=0;</b></p><p><b>  }</b></p><p><b>  }</b></p>&

100、lt;p>  switch(flagk)</p><p>  {case 0: break; //等待中...</p><p>  case 1: //設(shè)置秒</p><p>  {write_com(0x80+0x40+10);</p><p>  write_com(0x0d);</p>

101、<p>  if(kadd==0)</p><p>  {delay(5);</p><p>  if(kadd==0)</p><p>  {while(!kadd);</p><p><b>  ss++;</b></p><p>  if(ss==60) ss=0;</p&g

102、t;<p>  write_hms(0x40+9,ss);</p><p>  write_com(0x80+0x40+10);</p><p><b>  }</b></p><p><b>  }</b></p><p>  else if(ksub==0)</p>

103、<p>  {delay(5);</p><p>  if(ksub==0)</p><p>  {while(!ksub);</p><p><b>  ss--;</b></p><p>  if(ss==255) ss=59;</p><p>  write_hms(0x40+9,

104、ss);</p><p>  write_com(0x80+0x40+10);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  break;</b></p><p><b>  }&l

105、t;/b></p><p>  case 2://設(shè)置分</p><p>  {write_com(0x80+0x40+7);</p><p>  write_com(0x0d);</p><p>  if(kadd==0)</p><p>  {delay(5);</p><p

106、>  if(kadd==0)</p><p>  {while(!kadd);</p><p><b>  mm++;</b></p><p>  if(mm==60) mm=0;</p><p>  write_hms(0x40+6,mm);</p><p>  write_com(0x8

107、0+0x40+7);</p><p><b>  }</b></p><p><b>  }</b></p><p>  else if(ksub==0)</p><p>  {delay(5);</p><p>  if(ksub==0)</p><p&

108、gt;  {while(!ksub);</p><p><b>  mm--;</b></p><p>  if(mm==255) mm=59;</p><p>  write_hms(0x40+6,mm);</p><p>  write_com(0x80+0x40+7);</p><p>&l

109、t;b>  }</b></p><p><b>  }</b></p><p><b>  break;</b></p><p><b>  }</b></p><p>  case 3://設(shè)置時</p><p>  {w

110、rite_com(0x80+0x40+4);</p><p>  write_com(0x0d);</p><p>  if(kadd==0)</p><p>  {delay(5);</p><p>  if(kadd==0)</p><p>  {while(!kadd);</p><p>

111、<b>  hh++;</b></p><p>  if(hh==24) hh=0;</p><p>  write_hms(0x40+3,hh);</p><p>  write_com(0x80+0x40+4);</p><p><b>  }</b></p><p>&

112、lt;b>  }</b></p><p>  else if(ksub==0)</p><p>  {delay(5);</p><p>  if(ksub==0)</p><p>  {while(!ksub);</p><p><b>  hh--;</b></p>

113、;<p>  if(hh==255) hh=23;</p><p>  write_hms(0x40+3,hh);</p><p>  write_com(0x80+0x40+4);</p><p><b>  }</b></p><p><b>  }</b></p>

114、<p><b>  break;</b></p><p><b>  }</b></p><p>  case 4: //設(shè)置日</p><p>  {write_com(0x80+10);</p><p>  write_com(0x0d);</p><

115、p>  if(kadd==0)</p><p>  {delay(5);</p><p>  if(kadd==0)</p><p>  {while(!kadd);</p><p><b>  day++;</b></p><p>  if(((day>31)&&(m

116、on==1||mon==3||mon==5||mon==7||mon==8||mon==10||mon==12))</p><p>  ||((day>30)&&(mon==4||mon==6||mon==9||mon==11))||((day>29)&&(mon==2)&&(flagy==1))</p><p>  ||((da

117、y>28)&&(mon==2)&&(flagy==0))) day=1;</p><p>  write_hms(9,day);</p><p>  write_com(0x80+10);</p><p><b>  }</b></p><p><b>  }</b&

118、gt;</p><p>  else if(ksub==0)</p><p>  {delay(5);</p><p>  if(ksub==0)</p><p>  {while(!ksub);</p><p><b>  day--;</b></p><p>  if(

119、day==0)</p><p>  {switch(mon)</p><p><b>  {case 1:</b></p><p><b>  case 3:</b></p><p><b>  case 5:</b></p><p><b>

120、  case 7:</b></p><p><b>  case 8:</b></p><p><b>  case 10:</b></p><p>  case 12:day=31;break;</p><p><b>  case 4:</b></p>

121、;<p><b>  case 6:</b></p><p><b>  case 9:</b></p><p>  case 11:day=30;break;</p><p>  case 2: if(flagy==1) {day=29;break;}</p><p>  else{

122、day=28;break;}</p><p><b>  }</b></p><p><b>  }</b></p><p>  write_hms(9,day);</p><p>  write_com(10);</p><p><b>  }</b>

123、</p><p><b>  }</b></p><p><b>  break;</b></p><p><b>  }</b></p><p>  case 5: //設(shè)置月</p><p>  {write_com(0x80+7);&

124、lt;/p><p>  write_com(0x0d);</p><p>  if(kadd==0)</p><p>  {delay(5);</p><p>  if(kadd==0)</p><p>  {while(!kadd);</p><p><b>  mon++;</b

125、></p><p>  if(mon==13) mon=1;</p><p>  write_hms(6,mon);</p><p>  write_com(0x80+7);</p><p><b>  }</b></p><p><b>  }</b></p&g

126、t;<p>  else if(ksub==0)</p><p>  {delay(5);</p><p>  if(ksub==0)</p><p>  {while(!ksub);</p><p><b>  mon--;</b></p><p>  if(mon==0) mon

127、=12;</p><p>  write_hms(6,mon);</p><p>  write_com(0x80+7);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  break;</b>&

128、lt;/p><p><b>  }</b></p><p>  case 6: //設(shè)置年</p><p>  {write_com(0x80+4);</p><p>  write_com(0x0d);</p><p>  if(kadd==0)</p><p>

129、;  {delay(5);</p><p>  if(kadd==0)</p><p>  {while(!kadd);</p><p><b>  year1++;</b></p><p>  if(year1==100)</p><p><b>  {year0++;</b&g

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論