單片機(jī)數(shù)字時(shí)鐘課程設(shè)計(jì)論文_第1頁
單片機(jī)數(shù)字時(shí)鐘課程設(shè)計(jì)論文_第2頁
單片機(jī)數(shù)字時(shí)鐘課程設(shè)計(jì)論文_第3頁
單片機(jī)數(shù)字時(shí)鐘課程設(shè)計(jì)論文_第4頁
單片機(jī)數(shù)字時(shí)鐘課程設(shè)計(jì)論文_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 單片機(jī)原理及應(yīng)用課程設(shè)計(jì)題 目 單片機(jī)多功能電子鐘設(shè)計(jì) 學(xué)院名稱 電氣工程學(xué)院 指導(dǎo)教師 汪普林 班 級(jí) 電力三班 學(xué) 號(hào) 20114450310 學(xué)生姓名 陳彪 2014年 月 日 南華大學(xué)電氣工程學(xué)院課程設(shè)計(jì)(論文) 單片機(jī)課程設(shè)計(jì)任務(wù)書1課程設(shè)計(jì)的內(nèi)容和要求(包括原始數(shù)據(jù)、技術(shù)要求、工作要求等):(1) 設(shè)計(jì)內(nèi)容 利用單片機(jī)實(shí)現(xiàn)具有計(jì)時(shí)、校時(shí)等功能的數(shù)字時(shí)鐘,是以單片機(jī)AT89C51為核心元件 同時(shí)采用LED數(shù)碼管顯示器動(dòng)態(tài)顯示“時(shí)”、“分”、“秒”的計(jì)時(shí)裝置。顯示的數(shù)據(jù)為12:00:00,然后電路會(huì)自動(dòng)開始計(jì)時(shí)。電路中有時(shí)、分、秒各自單獨(dú)的調(diào)整按鈕,時(shí)間調(diào)整按鈕每按一次,相應(yīng)的顯示時(shí)

2、間加1。實(shí)現(xiàn)時(shí)分秒和的調(diào)時(shí)功能。 (2) 設(shè)計(jì)要求 硬件電路設(shè)計(jì)。 根據(jù)設(shè)計(jì)任務(wù)選擇合適的單片機(jī),根據(jù)控制功能要求,設(shè)計(jì)各單元模塊電路,設(shè)計(jì)的單元電路必須有設(shè)計(jì)原理分析,器件的選擇與作用,參數(shù)計(jì)算過程。 編寫程序。 根據(jù)電路工作過程,畫出軟件流程圖,根據(jù)流程圖編寫相應(yīng)的程序,進(jìn)行調(diào)試并打印程序清單。 利用仿真器進(jìn)行系統(tǒng)整體仿真調(diào)試、運(yùn)行程序,并分析仿真結(jié)果。 完成硬件電路的制作與調(diào)試。 使用PROTEL繪制系統(tǒng)電路原理圖。 編寫設(shè)計(jì)論文說明書。要求條理清楚,重點(diǎn)突出,結(jié)構(gòu)合理。對(duì)電路有詳細(xì)分析,所用芯片詳細(xì)介紹,并附有完整電路圖(A3)及帶有注釋說明的完整的軟件源程序清單,格式符合設(shè)計(jì)論文規(guī)范

3、。2對(duì)課程設(shè)計(jì)成果的要求包括圖表(或?qū)嵨铮┑扔布螅涸O(shè)計(jì)電路與程序,安裝調(diào)試或仿真,分析實(shí)驗(yàn)結(jié)果,并寫出設(shè)計(jì)說明書,語言流暢簡(jiǎn)潔,文字不得少于3500字。要求圖紙布局合理,符合工程要求,使用Altium Designer (Protel)軟件繪出原理圖(SCH),使用Proteus軟件平臺(tái)仿真,器件的選擇要有計(jì)算依據(jù)。3主要參考文獻(xiàn):1張洪潤(rùn),易濤.單片機(jī)應(yīng)用技術(shù)教程M.清華大學(xué)出版社.20062康華光.電子技術(shù)基礎(chǔ)M.高等教育出版社.20003閻石.模擬電子技術(shù)基礎(chǔ)M.華中科技大學(xué)出版社.20054劉樂善.微型計(jì)算機(jī)接口技術(shù)及應(yīng)用M.華中科技大學(xué)出版社.20055張毅剛.MCS-51單片機(jī)

4、應(yīng)用設(shè)計(jì)M.哈爾濱工業(yè)大學(xué)出版社.20054課程設(shè)計(jì)工作進(jìn)度計(jì)劃:序號(hào)起 迄 日 期工 作 內(nèi) 容12014.8.25-2014.8.30分析設(shè)計(jì)任務(wù),查閱相關(guān)資料,確定設(shè)計(jì)方案22014.8.31-2014.9.4完成硬件電路設(shè)計(jì)及調(diào)試32014.9.5-2014.9.10編寫程序、錄入程序、軟件編譯調(diào)試、仿真。42014.9.11-2014.9.16硬件電路制作與調(diào)試,編寫設(shè)計(jì)論文說明書52014.9.17完成設(shè)計(jì)論文說明書,準(zhǔn)備答辯62014.9.19提交設(shè)計(jì)成果,答辯主指導(dǎo)教師汪普林日期: 2014年 9 月 25 日摘要:本文為基于單片機(jī)的數(shù)字電子時(shí)鐘的設(shè)計(jì)。單片機(jī)是集CPU、RAM

5、、ROM、定時(shí)器/計(jì)數(shù)器和多種接口于一體的微控制器。它體積小、成本低、功能強(qiáng),廣泛應(yīng)用于智能產(chǎn)品和工業(yè)自動(dòng)化上。而51系列的單片機(jī)是各單片機(jī)中最為典型和最有代表性的一種。,本次設(shè)計(jì)提出了系統(tǒng)總體設(shè)計(jì)方案,并設(shè)計(jì)了各部分硬件模塊和軟件流程,在用C語言設(shè)計(jì)了具體軟件程序后,將各個(gè)模塊完全編譯通過過后,結(jié)果證明了該設(shè)計(jì)系統(tǒng)的可行性。通過運(yùn)用所學(xué)的知識(shí)及查閱參考大量資料,按照課程設(shè)計(jì)的基本要求完成了設(shè)計(jì)。隨著科學(xué)技術(shù)的不斷發(fā)展,人們對(duì)時(shí)間計(jì)量的精度要求越來越高。數(shù)字式電子鐘用集成電路計(jì)時(shí)時(shí),譯碼代替機(jī)械式傳動(dòng),用LED顯示器代替指針顯示進(jìn)而顯示時(shí)間,減小了計(jì)時(shí)誤差.這種表具有時(shí)、分、秒、顯示時(shí)間的功能

6、, 還可以進(jìn)行時(shí)、分的校對(duì)。片選的靈活性好。傳統(tǒng)的數(shù)字電子時(shí)鐘采用了較多的分立元器件,不僅占用了很大的空間而且利用率也比很低,隨著系統(tǒng)設(shè)計(jì)復(fù)雜度的不斷提高,用傳統(tǒng)時(shí)鐘系統(tǒng)設(shè)計(jì)方法很難滿足設(shè)計(jì)需求。該設(shè)計(jì)利用單片機(jī)的運(yùn)算和控制功能,并采用系統(tǒng)化LED顯示模塊實(shí)時(shí)顯示數(shù)字的設(shè)計(jì)方案,適當(dāng)?shù)亟鉀Q了實(shí)際生產(chǎn)和日常生活中對(duì)計(jì)時(shí)高精確度的要求,因此該設(shè)計(jì)在現(xiàn)代社會(huì)中具有廣泛的應(yīng)用性。關(guān)鍵字:51單片機(jī) ;電子時(shí)鐘 ; 數(shù)碼管顯示 ; C程序目錄引言81 概述9 1.1設(shè)計(jì)目的9 1.2設(shè)計(jì)要求92 設(shè)計(jì)流程圖103 電子原件介紹11 3.1 AT89C51介紹11 3.1.1AT89C51標(biāo)準(zhǔn)功

7、能11 3.1.2AT89C51主要特性124 電路設(shè)計(jì)13 4.1數(shù)字時(shí)鐘構(gòu)成13 4.2數(shù)字鐘的工作原理13 4.3各部分電路分析14 4.3.1顯示模塊14 4.3.2運(yùn)算模塊14 4.3.3校時(shí)模塊14 4.3.4電路仿真圖145 軟件設(shè)計(jì)17 5.1 C語言在單片機(jī)中的應(yīng)用17 5.2 程序設(shè)計(jì)18結(jié)束語19參考文獻(xiàn)12附錄一 C語言程序21附錄二 原理圖27引言1957年,Ventura發(fā)明了世界上第一個(gè)電子表,從而奠定了電子時(shí)鐘的基礎(chǔ),電子時(shí)鐘開始迅速發(fā)展起來?,F(xiàn)代的電子時(shí)鐘是基于單片機(jī)的一種計(jì)時(shí)工具,采用延時(shí)程序產(chǎn)生一定的時(shí)間中斷,用于一秒的定義,通過計(jì)數(shù)方式進(jìn)行滿六十秒分鐘進(jìn)

8、一,滿六十分小時(shí)進(jìn)一,滿二十四小時(shí)小時(shí)清零。從而達(dá)到計(jì)時(shí)的功能,是人民日常生活補(bǔ)課缺少的工具?,F(xiàn)在高精度的計(jì)時(shí)工具大多數(shù)都使用了石英晶體振蕩器,由于電子鐘、石英鐘、石英表都采用了石英技術(shù),因此走時(shí)精度高,穩(wěn)定性好,使用方便,不需要經(jīng)常調(diào)試,數(shù)字式電子鐘用集成電路計(jì)時(shí)時(shí),譯碼代替機(jī)械式傳動(dòng),用LED顯示器代替指針顯示進(jìn)而顯示時(shí)間,減小了計(jì)時(shí)誤差,這種表具有時(shí)、分、秒顯示時(shí)間的功能,還可以進(jìn)行時(shí)和分的校對(duì),片選的靈活性好。1 概論1.1設(shè)計(jì)目的   單片機(jī)以其功能強(qiáng),體積小,功耗低,易開發(fā)等很多優(yōu)勢(shì)被廣泛應(yīng)用。本次數(shù)字時(shí)鐘的設(shè)計(jì)就是需要通過選擇合適的單片機(jī)來進(jìn)行主控,

9、再結(jié)合電路的知識(shí),同時(shí)在軟件的設(shè)計(jì)過程中用到液晶顯示驅(qū)動(dòng)、模數(shù)轉(zhuǎn)換程序及漢字庫的的設(shè)計(jì),做到對(duì)我們所學(xué)數(shù)電、模電、單片機(jī)等知識(shí)的綜合應(yīng)用,最終實(shí)現(xiàn)所設(shè)計(jì)數(shù)字電子秤的各項(xiàng)功能,達(dá)到“鞏固知識(shí),培養(yǎng)技能,學(xué)而用之”的實(shí)踐目的。通過這次課程設(shè)計(jì),不但要提高我們?cè)诠ぷ髦械膶W(xué)習(xí)能力、探究能力、應(yīng)用能力和動(dòng)手能力,還要?dú)v練我們不畏艱難、不懂便學(xué)、有漏必補(bǔ)的認(rèn)真嚴(yán)謹(jǐn)?shù)墓ぷ鲬B(tài)度,強(qiáng)化我們的社會(huì)適應(yīng)力和社會(huì)競(jìng)爭(zhēng)力,為走向社會(huì)提前試水,完善自我。1.2 設(shè)計(jì)要求 設(shè)計(jì)應(yīng)包括以下基本功能:(1)應(yīng)用AT89C51單片機(jī)設(shè)計(jì)實(shí)現(xiàn)數(shù)字時(shí)鐘電路。(2)顯示的數(shù)據(jù)為12:00:00,然后電路會(huì)自動(dòng)開始計(jì)時(shí)。(3)電路中有時(shí)

10、、分、秒各自單獨(dú)的調(diào)整按鈕,時(shí)間調(diào)整按鈕每按一次,相應(yīng)的顯示時(shí)間加1。(4)實(shí)現(xiàn)時(shí)分秒和的調(diào)時(shí)功能。 (5) 采用C語言編寫程序并調(diào)試。 分按鍵了?2 設(shè)計(jì)流程圖 開始分寄存器值加1定時(shí)器TO初始化 秒寄存器值=60?設(shè)置顯示初始值為12:00:00 NN使分寄存器清0設(shè)置定時(shí)4ms初值分按鍵松開了?設(shè)置中斷允許N設(shè)置中斷250次是按鍵了?啟動(dòng)T0中斷時(shí)寄存器值加1秒按鍵了?N時(shí)寄存器值=24?秒寄存器值加1N秒寄存器值=60?NY使時(shí)寄存器清0使秒寄存器清0秒按鍵松開了?N秒按鍵松開了?NYY 圖2 設(shè)計(jì)流程圖3 電子元件介紹3.1 AT89C51介紹高AT89C51是一種帶4K字

11、節(jié)閃爍可編程可擦除只讀存儲(chǔ)器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低電壓,高性能、CMOS、8位單片機(jī)。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。AT89C51的管腳圖如圖3.1所示:圖3.1 AT89C51管腳圖 3.1.1 AT89C51標(biāo)準(zhǔn)功能 4k 字節(jié)FLASH閃速存儲(chǔ)器,128字節(jié)內(nèi)部RAM,32個(gè)I/O口線,2個(gè)16位定時(shí)/計(jì)數(shù)器,一個(gè)5向量?jī)杉?jí)中斷結(jié)構(gòu),一個(gè)全雙工串行通信口,片內(nèi)振蕩器及時(shí)鐘電路。同時(shí),AT89C51降至0Hz的靜態(tài)邏輯操作,并支

12、持兩種可選的節(jié)電工作模式??臻e方式體制CPU的工作,但允許RAM,定時(shí)/計(jì)數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM中的內(nèi)容,但振蕩器體制工作并禁止其他所有不見工作直到下一個(gè)硬件復(fù)位。3.1.2 AT89C51主要特性1、與MCS-51 兼容2、4K字節(jié)可編程閃爍存儲(chǔ)器3、壽命:1000寫/擦循環(huán)4、數(shù)據(jù)保留時(shí)間:10年5、全靜態(tài)工作:0Hz-24Hz6、三級(jí)程序存儲(chǔ)器鎖定7、128*8位內(nèi)部RAM8、32可編程I/O線9、兩個(gè)16位定時(shí)器/計(jì)數(shù)器10、5個(gè)中斷源11、可編程串行通道12、片內(nèi)振蕩器和時(shí)鐘電路 4 電路設(shè)計(jì)4.1數(shù)字鐘的構(gòu)成 數(shù)字鐘實(shí)際上是一個(gè)對(duì)標(biāo)準(zhǔn)頻率(1HZ)進(jìn)

13、行計(jì)數(shù)的計(jì)數(shù)電路.由于計(jì)數(shù)的起始時(shí)間不可能與標(biāo)準(zhǔn)時(shí)間一致,故需要在電路上加一個(gè)校時(shí)電路,同時(shí)標(biāo)準(zhǔn)的1HZ時(shí)間信號(hào)必須做到準(zhǔn)確穩(wěn)定.通常使用石英晶體振蕩器電路構(gòu)成數(shù)字鐘. 晶體振蕩器電路 晶體振蕩器電路給數(shù)字鐘提供一個(gè)頻率穩(wěn)定準(zhǔn)確的32768Hz的方波信號(hào),可保證數(shù)字鐘的走時(shí)準(zhǔn)確及穩(wěn)定.不管是指針式的電子鐘還是數(shù)字顯示的電子鐘都使用了晶體振蕩器電路. 分頻器電路 分頻器電路將32768Hz的高頻方波信號(hào)經(jīng)32768()次分頻后得到1Hz的方波信號(hào)供秒計(jì)數(shù)器進(jìn)行計(jì)數(shù).分頻器實(shí)際上也就是計(jì)數(shù)器. 時(shí)間計(jì)數(shù)器電路 時(shí)間計(jì)數(shù)電路由秒個(gè)位和秒十位計(jì)數(shù)器,分個(gè)位和分十位計(jì)數(shù)器及時(shí)個(gè)位和時(shí)十位計(jì)數(shù)器電路構(gòu)成,

14、其中秒個(gè)位和秒十位計(jì)數(shù)器,分個(gè)位和分十位計(jì)數(shù)器為60進(jìn)制計(jì)數(shù)器,而根據(jù)設(shè)計(jì)要求,時(shí)個(gè)位和時(shí)十位計(jì)數(shù)器為24進(jìn)制計(jì)數(shù)器. 譯碼驅(qū)動(dòng)電路 譯碼驅(qū)動(dòng)電路將計(jì)數(shù)器輸出的8421BCD碼轉(zhuǎn)換為數(shù)碼管需要的邏輯狀態(tài),并且為保證數(shù)碼管正常工作提供足夠的工作電流. 數(shù)碼管 數(shù)碼管通常有發(fā)光二極管(LED)數(shù)碼管和液晶(LCD)數(shù)碼管,本設(shè)計(jì)提供的為L(zhǎng)ED數(shù)碼管.4.2數(shù)字鐘的工作原理 設(shè)計(jì)原理主要利用AT89C51單片機(jī),由單片機(jī)的p2口控制數(shù)碼管的位顯示,p1口控制數(shù)碼管的段顯示,p3.0p3.2與按鍵相接用于時(shí)間校正。整個(gè)系統(tǒng)工作時(shí),秒信號(hào)產(chǎn)生器是整個(gè)系統(tǒng)的時(shí)基信號(hào),他直接決定計(jì)時(shí)系統(tǒng)的精度,將標(biāo)準(zhǔn)信號(hào)送

15、入計(jì)數(shù)器的時(shí)鐘脈沖。分計(jì)數(shù)器也采用60進(jìn)制計(jì)數(shù)器,每累計(jì)60分鐘,發(fā)出一個(gè)“分脈沖”信號(hào),該信號(hào)將被送到時(shí)計(jì)數(shù)器。時(shí)計(jì)數(shù)器采用24進(jìn)制計(jì)數(shù)器,可以實(shí)現(xiàn)對(duì)一天24小時(shí)的累計(jì)。顯示電路將“時(shí)”“分”“秒”計(jì)數(shù)器的輸出,通過六個(gè)八段led顯示器現(xiàn)出來。校時(shí)電路是直接加一個(gè)脈沖信號(hào)到時(shí)計(jì)數(shù)器或者分計(jì)數(shù)器或者秒計(jì)數(shù)器來對(duì)“時(shí)”“分”“秒”顯示數(shù)字進(jìn)行校對(duì)調(diào)整。4.3各部分電路分析 此實(shí)時(shí)時(shí)鐘的設(shè)計(jì)與實(shí)現(xiàn),主要采用了6只LED數(shù)碼管,89C51內(nèi)部二進(jìn)制16位定時(shí)器/計(jì)數(shù)器,可編程中斷控制器89C51等芯片,包括顯示模塊,運(yùn)算模塊和校時(shí)模塊三大功能模塊。4.3.1顯示模塊 用89C51控制,用數(shù)碼管的顯示

16、功能來設(shè)計(jì)。顯示部分硬件用六只LED為顯示管,這些LED發(fā)光二極管的陰極是互相連接在一起的,所以稱為共陰極數(shù)碼管。通過在這8只發(fā)光二極管的陽極加+5 V或0 V的電壓使不同的二極管發(fā)光,形成不同的數(shù)字。該模塊主要是將運(yùn)算模塊和校時(shí)模塊運(yùn)算出來并存放在內(nèi)存單元里的十六進(jìn)制表示的時(shí)位、分位和秒位數(shù)值轉(zhuǎn)化為十進(jìn)制,并通過8只數(shù)碼管顯示出來。CPU直接往LED輸出八段代碼,省去了硬件譯碼器。P1口作為8段數(shù)據(jù)輸出口,經(jīng)74LS04驅(qū)動(dòng)后到達(dá)各LED。只要做到每送一次段選碼時(shí)也送一次位掃描碼,并且每送一次位掃描碼后,位碼中的0右移一位作為下一次的位掃描碼,即可實(shí)現(xiàn)由左向右使6只LED依次出現(xiàn)數(shù)字顯示。4

17、.3.2運(yùn)算模塊該模塊的主要功能是對(duì)時(shí)、分、秒的運(yùn)算,并把運(yùn)算出的最終結(jié)果存到事先已經(jīng)開辟的內(nèi)存單元里,以便顯示模塊即時(shí)地顯示出來。該模塊可以細(xì)分為秒定時(shí)模塊和運(yùn)算模塊。秒定時(shí)模塊負(fù)責(zé)提供中斷信號(hào),由于CPU運(yùn)算模塊中的指令消耗一定的時(shí)間,所以中斷信號(hào)最好通過硬件來實(shí)現(xiàn)。本實(shí)驗(yàn)中用89C51定時(shí)器/計(jì)數(shù)器,但因?yàn)?9C51供的信號(hào)的周期是毫秒級(jí)的,因此必須通過軟件的方法在運(yùn)算模塊中設(shè)置一個(gè)統(tǒng)計(jì)中斷次數(shù)的變量,并且這一變量必須事先在內(nèi)存里開辟存儲(chǔ)單元。中斷信號(hào)是89C51工作方式為方式1,產(chǎn)生一個(gè)50ms的脈沖信號(hào)。運(yùn)算模塊負(fù)責(zé)時(shí)、分、秒的計(jì)算,該模塊主要通過89C51的IR1號(hào)中斷來實(shí)現(xiàn),但由

18、于每50ms一次中斷請(qǐng)求,所以在中斷服務(wù)程序必須利用已申請(qǐng)內(nèi)存單元35H來統(tǒng)計(jì)中斷請(qǐng)求的次數(shù),只有當(dāng)35H的值為20時(shí),才能讓秒單元內(nèi)的數(shù)值加1。在中斷服務(wù)程序里,必須對(duì)秒、分和時(shí)的單元內(nèi)的數(shù)值進(jìn)行判斷,當(dāng)秒加到60時(shí),分必須加1 、秒清零;當(dāng)分加到60時(shí),時(shí)加1、分清零。當(dāng)時(shí)加到24時(shí),直接清零。然后轉(zhuǎn)到調(diào)用處。4.3.3校時(shí)模塊 該模塊主要功能是修改時(shí)、分、秒內(nèi)存單元的數(shù)值。每按一次鍵,對(duì)應(yīng)的顯示值便加1。分、 秒加到59后變?yōu)?0;小時(shí)加到23后再按鍵即變?yōu)?0.再調(diào)校時(shí)均不向上一單位進(jìn)位(例如分加到59后變?yōu)?0;但小時(shí)不發(fā)生改變)。注意:在主程序中對(duì)時(shí)間進(jìn)行調(diào)校前應(yīng)關(guān)閉中斷,以防在調(diào)

19、校過程中定時(shí)中斷服務(wù)程序也對(duì)時(shí)間進(jìn)行修改而造成混淆。4.3.4電路仿真圖 在6塊LED數(shù)碼管上能實(shí)現(xiàn)數(shù)字時(shí)鐘的時(shí)、分、秒顯示,并能對(duì)時(shí)、分、秒進(jìn)行加1校對(duì)、減1校對(duì)和清零。本實(shí)驗(yàn)中陪。P3.0鍵、P3.1鍵、P3.2鍵是分別對(duì)時(shí)、分、秒的加1校對(duì)。并且開機(jī)時(shí)時(shí)鐘時(shí)從120000開始計(jì)時(shí)的,到235959時(shí)在回到000000. 圖4.3.4電路仿真圖5 軟件設(shè)計(jì) 在單片機(jī)應(yīng)用系統(tǒng)的開發(fā)中,軟件的設(shè)計(jì)是最復(fù)雜和困難的,大部分情況下工作量都較大,特別是對(duì)那些控制系統(tǒng)比較復(fù)雜的情況。如果是機(jī)電一體化的設(shè)計(jì)人員,往往需要同時(shí)考慮單片機(jī)的軟硬件資源分配。本系統(tǒng)的軟件設(shè)計(jì)主要分為系統(tǒng)初始化、按鍵、顯示處理及

20、信號(hào)頻率輸入處理。程序設(shè)計(jì)是一件復(fù)雜的工作,為了把復(fù)雜的工作條理化,就要有相應(yīng)的步驟和方法。其步驟可概括為以下三點(diǎn): (1)分析系統(tǒng)控制要求,確定算法:對(duì)復(fù)雜的問題進(jìn)行具體的分析,找出合理的計(jì)算方法及適當(dāng)?shù)臄?shù)據(jù)結(jié)構(gòu),從而確定編寫程序的步驟。這是能否編制出高質(zhì)量程序的關(guān)鍵。(2) 根據(jù)算法畫流程圖:畫程序框圖可以把算法和解題步驟逐步具體化,以減少出錯(cuò)的可能性。(3)編寫程序:根據(jù)程序框圖所表示的算法和步驟,選用適當(dāng)?shù)闹噶钆帕衅饋恚瑯?gòu)成一個(gè)有機(jī)的整體,即程序。程序數(shù)據(jù)的一種理想方法是結(jié)構(gòu)化程序設(shè)計(jì)方法。結(jié)構(gòu)化程序設(shè)計(jì)是對(duì)利用到的控制結(jié)構(gòu)類程序做適當(dāng)?shù)南拗?,特別是限制轉(zhuǎn)向語句(或指令)的使用,從而控

21、制了程序的復(fù)雜性,力求程序的上、下文順序與執(zhí)行流程保持一致性,使程序易讀易理解,減少邏輯錯(cuò)誤和易于修改、調(diào)試。根據(jù)系統(tǒng)的控制任務(wù),本系統(tǒng)的軟件設(shè)計(jì)主要由主程序、初始化程序、顯示子程序、數(shù)據(jù)采集子程序和延時(shí)程序等組成。5.1 C語言在單片機(jī)中的應(yīng)用C語言是一種通用的計(jì)算機(jī)程序設(shè)計(jì)語言,在國(guó)際上非常流行。它既可以用來編寫計(jì)算機(jī)的系統(tǒng)程序,也可以用來編寫一般的應(yīng)用程序。以前計(jì)算機(jī)的系統(tǒng)軟件主要用匯編語言編寫,單片機(jī)應(yīng)用系統(tǒng)更是如此。C語言是當(dāng)前最流行的程序設(shè)計(jì)語言,它像其它高級(jí)語言一樣,面向用戶,面向解題的過程,編程者不必熟悉具體的計(jì)算機(jī)內(nèi)部結(jié)構(gòu)和指令;C語言又像匯編語言一樣,可以對(duì)機(jī)器硬件進(jìn)行操作

22、。如進(jìn)行端口I,0操作、位操作、地址操作,并可內(nèi)嵌匯編指令,將匯編指令當(dāng)作它的語句一樣。我們知道,匯編語言將涉及計(jì)算機(jī)硬件,所以C語言又像低級(jí)語言一樣,可以對(duì)計(jì)算機(jī)硬件進(jìn)行控制,因此人們把它稱為介于高級(jí)語言與低級(jí)語言之間的一種中級(jí)語言。正是因?yàn)镃語言具有這樣的特性,所以很適合編寫要對(duì)硬件進(jìn)行操作的軟件程序。本文采用C語言進(jìn)行編寫因?yàn)榇讼到y(tǒng)軟件比較,其存儲(chǔ)量較大,因此必須應(yīng)用C語言編程。5.2程序設(shè)計(jì)結(jié)束語  第三學(xué)期的單片機(jī)課程設(shè)計(jì)到目前為止可以說是告一段落了,我也順利的完成了自己的課題簡(jiǎn)易電子時(shí)鐘的設(shè)計(jì),由于自己一心準(zhǔn)備考研在這次課程設(shè)計(jì)上除了那些必要的時(shí)間其余也么有花太多的時(shí)間,

23、本想著是做實(shí)物的,但在程序上出了點(diǎn)問題就沒花時(shí)間去做了,所以這次設(shè)計(jì)還不算很完美。剛開始被拿到這個(gè)課題的,感覺挺迷茫的,當(dāng)時(shí)就只知道軟件編程要用到定時(shí)器,自己也就在這方面懂一點(diǎn),其余的關(guān)于硬件電路,液晶顯示電路的驅(qū)動(dòng)的什么都不知道,后來回來之后就看了一下51單片機(jī)課程設(shè)計(jì)那本書,自己還學(xué)過這門專業(yè)可,加上在網(wǎng)上找了一些資料對(duì)硬件電路的設(shè)計(jì)有了一定的了解。在大腦里面有了一個(gè)大致的思路了,于是就把仿真軟件裝好開始了我的課設(shè)。本次課設(shè)讓我對(duì)單片機(jī)有了更深入的認(rèn)識(shí),現(xiàn)代社會(huì)中幾乎處處都有單片機(jī)的影子,電子產(chǎn)品離不開它。課設(shè)提高了我的單片機(jī)實(shí)際運(yùn)用能力,也發(fā)現(xiàn)了自己以前學(xué)習(xí)的不扎實(shí),對(duì)問題不求甚解?,F(xiàn)在

24、才知道“書到用時(shí)方少”?。W(xué)習(xí)還是得扎實(shí)。本次課設(shè)能順利完成,甚是感謝指導(dǎo)老師的幫助。參考文獻(xiàn)1張洪潤(rùn),易濤.單片機(jī)應(yīng)用技術(shù)教程M.清華大學(xué)出版社.20062康華光.電子技術(shù)基礎(chǔ)M.高等教育出版社.20003閻石.模擬電子技術(shù)基礎(chǔ)M.華中科技大學(xué)出版社.20054劉樂善.微型計(jì)算機(jī)接口技術(shù)及應(yīng)用M.華中科技大學(xué)出版社.20055張毅剛.MCS-51單片機(jī)應(yīng)用設(shè)計(jì)M.哈爾濱工業(yè)大學(xué)出版社.2005附錄一 C語言程序#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit rs=P33;sbit

25、rw=P34;sbit lcden=P35;unsigned int a,b,c;uchar count,k;uchar shi,fen,miao;uchar code table="12:00:00"void delay(uint z) uint x,y;for(x=0;x<z;x+)for(y=0;y<110;y+);void w_com(uchar com)rs=0;lcden=0;P1=com;delay(5);lcden=1;/給高脈沖delay(5);lcden=0;/*寫指令*/void w_data(uchar date)rs=1;lcden=0

26、;P1=date;delay(5);lcden=1;delay(5);lcden=0;/*寫數(shù)據(jù)*/*初始化函數(shù)*/void w_sfm(uchar add,uchar date)/時(shí)分秒uchar shi,ge;shi=date/10;ge=date%10; w_com(0x80+add);w_data(0x30+shi);w_data(0x30+ge); void init()uchar num;lcden=0;/初始化使能為0fen=00;miao=00;shi=00;w_com(0x30);/寫入顯示模式指令碼w_com(0x0c);/寫入顯示開/關(guān)及光標(biāo)指令碼w_com(0x06);

27、/當(dāng)寫一個(gè)字符后,地址指針加一,光標(biāo)加一,不動(dòng)光標(biāo)不閃爍w_com(0x01); /清零作w_com(0x00);/代表第一位for(num=0;num<8;num+)w_data(tablenum);delay(5); w_sfm(0,shi); w_sfm(3,fen); w_sfm(6,miao); TMOD=0x01; TH0=(65536-50000)/256;/50毫秒產(chǎn)生一次中斷 TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1;void key()P2=0x0f;/,a=P2; /先對(duì)P2置數(shù) 行掃描if(P2!=0x0f) /判斷是否有鍵按下delay(100); /延時(shí),軟件去干擾if(P2!=0x0f) /確認(rèn)按鍵按下a=P2;P2=0x0f0;if(P2!=0x0f0)b=P2;c=a&b;elsec=P2;void keyscan()key();if(c=0x88)/閃爍位置/選擇要調(diào)整的項(xiàng)目,左移 k+;if(k=1)/k鍵按一下依次向

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(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)論