版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 單片機(jī)原理及應(yīng)用</b></p><p><b> 課程設(shè)計(jì)</b></p><p> 題 目 單片機(jī)多功能電子鐘設(shè)計(jì) </p><p> 學(xué)院名稱 電氣工程學(xué)院 <
2、/p><p> 指導(dǎo)教師 </p><p> 班 級(jí) 電力三班 </p><p> 學(xué) 號(hào) </p><p> 學(xué)生姓名
3、 </p><p> 2014年 月 日</p><p> 《單片機(jī)課程設(shè)計(jì)》任務(wù)書</p><p> 摘要:本文為基于單片機(jī)的數(shù)字電子時(shí)鐘的設(shè)計(jì)。單片機(jī)是集CPU、RAM、ROM、定時(shí)器/計(jì)數(shù)器和多種接口于一體的微控制器。它體積小、成本低、功能強(qiáng),廣泛應(yīng)用于智能產(chǎn)品和工業(yè)自動(dòng)化上。而51系列的單片機(jī)是各單片機(jī)中最為典
4、型和最有代表性的一種。,本次設(shè)計(jì)提出了系統(tǒng)總體設(shè)計(jì)方案,并設(shè)計(jì)了各部分硬件模塊和軟件流程,在用C語(yǔ)言設(shè)計(jì)了具體軟件程序后,將各個(gè)模塊完全編譯通過(guò)過(guò)后,結(jié)果證明了該設(shè)計(jì)系統(tǒng)的可行性。通過(guò)運(yùn)用所學(xué)的知識(shí)及查閱參考大量資料,按照課程設(shè)計(jì)的基本要求完成了設(shè)計(jì)。隨著科學(xué)技術(shù)的不斷發(fā)展,人們對(duì)時(shí)間計(jì)量的精度要求越來(lái)越高。數(shù)字式電子鐘用集成電路計(jì)時(shí)時(shí),譯碼代替機(jī)械式傳動(dòng),用LED顯示器代替指針顯示進(jìn)而顯示時(shí)間,減小了計(jì)時(shí)誤差.這種表具有時(shí)、分、秒、顯
5、示時(shí)間的功能, 還可以進(jìn)行時(shí)、分的校對(duì)。片選的靈活性好。傳統(tǒng)的數(shù)字電子時(shí)鐘采用了較多的分立元器件,不僅占用了很大的空間而且利用率也比很低,隨著系統(tǒng)設(shè)計(jì)復(fù)雜度的不斷提高,用傳統(tǒng)時(shí)鐘系統(tǒng)設(shè)計(jì)方法很難滿足設(shè)計(jì)需求。</p><p> 該設(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)用性
6、。</p><p> 關(guān)鍵字:51單片機(jī) ;電子時(shí)鐘 ; 數(shù)碼管顯示 ; C程序</p><p><b> 目錄</b></p><p><b> 引言8</b></p><p><b> 1 概述9</b></p><p><
7、b> 1.1設(shè)計(jì)目的9</b></p><p><b> 1.2設(shè)計(jì)要求9</b></p><p> 2 設(shè)計(jì)流程圖10</p><p> 3 電子原件介紹11</p><p> 3.1 AT89C51介紹11</p><p> 3.1.1AT89C
8、51標(biāo)準(zhǔn)功能11</p><p> 3.1.2AT89C51主要特性12</p><p> 4 電路設(shè)計(jì)13</p><p> 4.1數(shù)字時(shí)鐘構(gòu)成13</p><p> 4.2數(shù)字鐘的工作原理13</p><p> 4.3各部分電路分析14</p><p> 4.3.
9、1顯示模塊14</p><p> 4.3.2運(yùn)算模塊14</p><p> 4.3.3校時(shí)模塊14</p><p> 4.3.4電路仿真圖14</p><p> 5 軟件設(shè)計(jì)17</p><p> 5.1 C語(yǔ)言在單片機(jī)中的應(yīng)用17</p><p> 5.2 程序設(shè)計(jì)
10、18</p><p><b> 結(jié)束語(yǔ)19</b></p><p><b> 參考文獻(xiàn)12</b></p><p> 附錄一 C語(yǔ)言程序21</p><p> 附錄二 原理圖27</p><p><b> 引言</b></p
11、><p> 1957年,Ventura發(fā)明了世界上第一個(gè)電子表,從而奠定了電子時(shí)鐘的基礎(chǔ),電子時(shí)鐘開(kāi)始迅速發(fā)展起來(lái)。現(xiàn)代的電子時(shí)鐘是基于單片機(jī)的一種計(jì)時(shí)工具,采用延時(shí)程序產(chǎn)生一定的時(shí)間中斷,用于一秒的定義,通過(guò)計(jì)數(shù)方式進(jìn)行滿六十秒分鐘進(jìn)一,滿六十分小時(shí)進(jìn)一,滿二十四小時(shí)小時(shí)清零。從而達(dá)到計(jì)時(shí)的功能,是人民日常生活補(bǔ)課缺少的工具?,F(xiàn)在高精度的計(jì)時(shí)工具大多數(shù)都使用了石英晶體振蕩器,由于電子鐘、石英鐘、石英表都采用了石英
12、技術(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ì),片選的靈活性好。</p><p><b> 1 概論</b></p><p><b> 1.1設(shè)計(jì)目的 </b>
13、;</p><p> 單片機(jī)以其功能強(qiáng),體積小,功耗低,易開(kāi)發(fā)等很多優(yōu)勢(shì)被廣泛應(yīng)用。本次數(shù)字時(shí)鐘的設(shè)計(jì)就是需要通過(guò)選擇合適的單片機(jī)來(lái)進(jìn)行主控,再結(jié)合電路的知識(shí),同時(shí)在軟件的設(shè)計(jì)過(guò)程中用到液晶顯示驅(qū)動(dòng)、模數(shù)轉(zhuǎn)換程序及漢字庫(kù)的的設(shè)計(jì),做到對(duì)我們所學(xué)數(shù)電、模電、單片機(jī)等知識(shí)的綜合應(yīng)用,最終實(shí)現(xiàn)所設(shè)計(jì)數(shù)字電子秤的各項(xiàng)功能,達(dá)到“鞏固知識(shí),培養(yǎng)技能,學(xué)而用之”的實(shí)踐目的。通過(guò)這次課程設(shè)計(jì),不但要提高我們?cè)诠ぷ髦械膶W(xué)習(xí)能力
14、、探究能力、應(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ì)提前試水,完善自我。</p><p><b> 1.2 設(shè)計(jì)要求</b></p><p> 設(shè)計(jì)應(yīng)包括以下基本功能:</p><p> (1)應(yīng)用AT89C51單片機(jī)設(shè)計(jì)實(shí)現(xiàn)數(shù)字時(shí)鐘電路。</p&
15、gt;<p> (2)顯示的數(shù)據(jù)為12:00:00,然后電路會(huì)自動(dòng)開(kāi)始計(jì)時(shí)。</p><p> (3)電路中有時(shí)、分、秒各自單獨(dú)的調(diào)整按鈕,時(shí)間調(diào)整按鈕每按一次,相應(yīng)的顯示時(shí)間加1。</p><p> (4)實(shí)現(xiàn)時(shí)分秒和的調(diào)時(shí)功能。</p><p> (5) 采用C語(yǔ)言編寫程序并調(diào)試。</p><p><b>
16、 2 設(shè)計(jì)流程圖</b></p><p><b> NN</b></p><p><b> N</b></p><p><b> N</b></p><p><b> N</b></p><p><b&
17、gt; N</b></p><p><b> Y</b></p><p><b> N</b></p><p><b> NYY</b></p><p><b> 圖2 設(shè)計(jì)流程圖</b></p><p>
18、;<b> 3 電子元件介紹</b></p><p> 3.1 AT89C51介紹</p><p> 高AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低電壓,高性能、CMOS、8位單片機(jī)。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制
19、造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。AT89C51的管腳圖如圖3.1所示:</p><p> 圖3.1 AT89C51管腳圖</p><p> 3.1.1 AT89C51標(biāo)準(zhǔn)功能</p><p> 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)
20、振蕩器及時(shí)鐘電路。同時(shí),AT89C51降至0Hz的靜態(tài)邏輯操作,并支持兩種可選的節(jié)電工作模式??臻e方式體制CPU的工作,但允許RAM,定時(shí)/計(jì)數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM中的內(nèi)容,但振蕩器體制工作并禁止其他所有不見(jiàn)工作直到下一個(gè)硬件復(fù)位。</p><p> 3.1.2 AT89C51主要特性</p><p> 1、與MCS-51 兼容</p>
21、<p> 2、4K字節(jié)可編程閃爍存儲(chǔ)器</p><p> 3、壽命:1000寫/擦循環(huán)</p><p> 4、數(shù)據(jù)保留時(shí)間:10年</p><p> 5、全靜態(tài)工作:0Hz-24Hz</p><p> 6、三級(jí)程序存儲(chǔ)器鎖定</p><p> 7、128*8位內(nèi)部RAM</p>&l
22、t;p> 8、32可編程I/O線</p><p> 9、兩個(gè)16位定時(shí)器/計(jì)數(shù)器</p><p><b> 10、5個(gè)中斷源</b></p><p> 11、可編程串行通道</p><p> 12、片內(nèi)振蕩器和時(shí)鐘電路 </p><p><b> 4 電路設(shè)計(jì)&
23、lt;/b></p><p><b> 4.1數(shù)字鐘的構(gòu)成</b></p><p> 數(shù)字鐘實(shí)際上是一個(gè)對(duì)標(biāo)準(zhǔn)頻率(1HZ)進(jìn)行計(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ù)字鐘.</p><p><b> ?、?/p>
24、晶體振蕩器電路</b></p><p> 晶體振蕩器電路給數(shù)字鐘提供一個(gè)頻率穩(wěn)定準(zhǔn)確的32768Hz的方波信號(hào),可保證數(shù)字鐘的走時(shí)準(zhǔn)確及穩(wěn)定.不管是指針式的電子鐘還是數(shù)字顯示的電子鐘都使用了晶體振蕩器電路.</p><p><b> ?、品诸l器電路</b></p><p> 分頻器電路將32768Hz的高頻方波信號(hào)經(jīng)32768(
25、)次分頻后得到1Hz的方波信號(hào)供秒計(jì)數(shù)器進(jìn)行計(jì)數(shù).分頻器實(shí)際上也就是計(jì)數(shù)器.</p><p><b> ?、菚r(shí)間計(jì)數(shù)器電路</b></p><p> 時(shí)間計(jì)數(shù)電路由秒個(gè)位和秒十位計(jì)數(shù)器,分個(gè)位和分十位計(jì)數(shù)器及時(shí)個(gè)位和時(shí)十位計(jì)數(shù)器電路構(gòu)成,其中秒個(gè)位和秒十位計(jì)數(shù)器,分個(gè)位和分十位計(jì)數(shù)器為60進(jìn)制計(jì)數(shù)器,而根據(jù)設(shè)計(jì)要求,時(shí)個(gè)位和時(shí)十位計(jì)數(shù)器為24進(jìn)制計(jì)數(shù)器.</p
26、><p><b> ?、茸g碼驅(qū)動(dòng)電路</b></p><p> 譯碼驅(qū)動(dòng)電路將計(jì)數(shù)器輸出的8421BCD碼轉(zhuǎn)換為數(shù)碼管需要的邏輯狀態(tài),并且為保證數(shù)碼管正常工作提供足夠的工作電流.</p><p><b> ?、蓴?shù)碼管</b></p><p> 數(shù)碼管通常有發(fā)光二極管(LED)數(shù)碼管和液晶(LCD)數(shù)
27、碼管,本設(shè)計(jì)提供的為L(zhǎng)ED數(shù)碼管.</p><p> 4.2數(shù)字鐘的工作原理</p><p> 設(shè)計(jì)原理主要利用AT89C51單片機(jī),由單片機(jī)的p2口控制數(shù)碼管的位顯示,p1口控制數(shù)碼管的段顯示,p3.0——p3.2與按鍵相接用于時(shí)間校正。</p><p> 整個(gè)系統(tǒng)工作時(shí),秒信號(hào)產(chǎn)生器是整個(gè)系統(tǒng)的時(shí)基信號(hào),他直接決定計(jì)時(shí)系統(tǒng)的精度,將標(biāo)準(zhǔn)信號(hào)送入計(jì)數(shù)器的時(shí)鐘
28、脈沖。分計(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ù)器的輸出,通過(guò)六個(gè)八段led顯示器現(xiàn)出來(lái)。校時(shí)電路是直接加一個(gè)脈沖信號(hào)到時(shí)計(jì)數(shù)器或者分計(jì)數(shù)器或者秒計(jì)數(shù)器來(lái)對(duì)“時(shí)”“分”“秒”顯示數(shù)字進(jìn)行校對(duì)調(diào)整。</p><p> 4.3各部分電路分析</p><p&
29、gt; 此實(shí)時(shí)時(shí)鐘的設(shè)計(jì)與實(shí)現(xiàn),主要采用了6只LED數(shù)碼管,89C51內(nèi)部二進(jìn)制16位定時(shí)器/計(jì)數(shù)器,可編程中斷控制器89C51等芯片,包括顯示模塊,運(yùn)算模塊和校時(shí)模塊三大功能模塊。</p><p><b> 4.3.1顯示模塊</b></p><p> 用89C51控制,用數(shù)碼管的顯示功能來(lái)設(shè)計(jì)。顯示部分硬件用六只LED為顯示管,這些LED發(fā)光二極管的陰極是互
30、相連接在一起的,所以稱為共陰極數(shù)碼管。通過(guò)在這8只發(fā)光二極管的陽(yáng)極加+5 V或0 V的電壓使不同的二極管發(fā)光,形成不同的數(shù)字。該模塊主要是將運(yùn)算模塊和校時(shí)模塊運(yùn)算出來(lái)并存放在內(nèi)存單元里的十六進(jìn)制表示的時(shí)位、分位和秒位數(shù)值轉(zhuǎn)化為十進(jìn)制,并通過(guò)8只數(shù)碼管顯示出來(lái)。CPU直接往LED輸出八段代碼,省去了硬件譯碼器。P1口作為8段數(shù)據(jù)輸出口,經(jīng)74LS04驅(qū)動(dòng)后到達(dá)各LED。只要做到每送一次段選碼時(shí)也送一次位掃描碼,并且每送一次位掃描碼后,位碼
31、中的0右移一位作為下一次的位掃描碼,即可實(shí)現(xiàn)由左向右使6只LED依次出現(xiàn)數(shù)字顯示。</p><p><b> 4.3.2運(yùn)算模塊</b></p><p> 該模塊的主要功能是對(duì)時(shí)、分、秒的運(yùn)算,并把運(yùn)算出的最終結(jié)果存到事先已經(jīng)開(kāi)辟的內(nèi)存單元里,以便顯示模塊即時(shí)地顯示出來(lái)。該模塊可以細(xì)分為秒定時(shí)模塊和運(yùn)算模塊。秒定時(shí)模塊負(fù)責(zé)提供中斷信號(hào),由于CPU運(yùn)算模塊中的指令消
32、耗一定的時(shí)間,所以中斷信號(hào)最好通過(guò)硬件來(lái)實(shí)現(xiàn)。本實(shí)驗(yàn)中用89C51定時(shí)器/計(jì)數(shù)器,但因?yàn)?9C51供的信號(hào)的周期是毫秒級(jí)的,因此必須通過(guò)軟件的方法在運(yùn)算模塊中設(shè)置一個(gè)統(tǒng)計(jì)中斷次數(shù)的變量,并且這一變量必須事先在內(nèi)存里開(kāi)辟存儲(chǔ)單元。中斷信號(hào)是89C51工作方式為方式1,產(chǎn)生一個(gè)50ms的脈沖信號(hào)。運(yùn)算模塊負(fù)責(zé)時(shí)、分、秒的計(jì)算,該模塊主要通過(guò)89C51的IR1號(hào)中斷來(lái)實(shí)現(xiàn),但由于每50ms一次中斷請(qǐng)求,所以在中斷服務(wù)程序必須利用已申請(qǐng)內(nèi)存單元
33、35H來(lái)統(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)用處。</p><p><b> 4.3.3校時(shí)模塊</b></p><p> 該模塊主要功能是修改時(shí)、分、秒內(nèi)存單元的數(shù)
34、值。每按一次鍵,對(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)校過(guò)程中定時(shí)中斷服務(wù)程序也對(duì)時(shí)間進(jìn)行修改而造成混淆。</p><p> 4.3.4電路仿真圖</p><p> 在6塊LED數(shù)碼管上能實(shí)現(xiàn)數(shù)字時(shí)鐘的時(shí)、分、秒顯示,并
35、能對(duì)時(shí)、分、秒進(jìn)行加1校對(duì)、減1校對(duì)和清零。本實(shí)驗(yàn)中陪。P3.0鍵、P3.1鍵、P3.2鍵是分別對(duì)時(shí)、分、秒的加1校對(duì)。并且開(kāi)機(jī)時(shí)時(shí)鐘時(shí)從120000開(kāi)始計(jì)時(shí)的,到235959時(shí)在回到000000.</p><p> 圖4.3.4電路仿真圖</p><p><b> 5 軟件設(shè)計(jì)</b></p><p> 在單片機(jī)應(yīng)用系統(tǒng)的開(kāi)發(fā)中,軟件的
36、設(shè)計(jì)是最復(fù)雜和困難的,大部分情況下工作量都較大,特別是對(duì)那些控制系統(tǒng)比較復(fù)雜的情況。如果是機(jī)電一體化的設(shè)計(jì)人員,往往需要同時(shí)考慮單片機(jī)的軟硬件資源分配。本系統(tǒng)的軟件設(shè)計(jì)主要分為系統(tǒng)初始化、按鍵、顯示處理及信號(hào)頻率輸入處理。</p><p> 程序設(shè)計(jì)是一件復(fù)雜的工作,為了把復(fù)雜的工作條理化,就要有相應(yīng)的步驟和方法。其步驟可概括為以下三點(diǎn):</p><p> ?。?)分析系統(tǒng)控制要求,確定
37、算法:對(duì)復(fù)雜的問(wèn)題進(jìn)行具體的分析,找出合理的計(jì)算方法及適當(dāng)?shù)臄?shù)據(jù)結(jié)構(gòu),從而確定編寫程序的步驟。這是能否編制出高質(zhì)量程序的關(guān)鍵。</p><p> ?。?) 根據(jù)算法畫流程圖:畫程序框圖可以把算法和解題步驟逐步具體化,以減少出錯(cuò)的可能性。</p><p> ?。?)編寫程序:根據(jù)程序框圖所表示的算法和步驟,選用適當(dāng)?shù)闹噶钆帕衅饋?lái),構(gòu)成一個(gè)有機(jī)的整體,即程序。</p><p
38、> 程序數(shù)據(jù)的一種理想方法是結(jié)構(gòu)化程序設(shè)計(jì)方法。結(jié)構(gòu)化程序設(shè)計(jì)是對(duì)利用到的控制結(jié)構(gòu)類程序做適當(dāng)?shù)南拗疲貏e是限制轉(zhuǎn)向語(yǔ)句(或指令)的使用,從而控制了程序的復(fù)雜性,力求程序的上、下文順序與執(zhí)行流程保持一致性,使程序易讀易理解,減少邏輯錯(cuò)誤和易于修改、調(diào)試。根據(jù)系統(tǒng)的控制任務(wù),本系統(tǒng)的軟件設(shè)計(jì)主要由主程序、初始化程序、顯示子程序、數(shù)據(jù)采集子程序和延時(shí)程序等組成。</p><p> 5.1 C語(yǔ)言在單片機(jī)中
39、的應(yīng)用</p><p> C語(yǔ)言是一種通用的計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言,在國(guó)際上非常流行。它既可以用來(lái)編寫計(jì)算機(jī)的系統(tǒng)程序,也可以用來(lái)編寫一般的應(yīng)用程序。以前計(jì)算機(jī)的系統(tǒng)軟件主要用匯編語(yǔ)言編寫,單片機(jī)應(yīng)用系統(tǒng)更是如此。C語(yǔ)言是當(dāng)前最流行的程序設(shè)計(jì)語(yǔ)言,它像其它高級(jí)語(yǔ)言一樣,面向用戶,面向解題的過(guò)程,編程者不必熟悉具體的計(jì)算機(jī)內(nèi)部結(jié)構(gòu)和指令;C語(yǔ)言又像匯編語(yǔ)言一樣,可以對(duì)機(jī)器硬件進(jìn)行操作。如進(jìn)行端口I,0操作、位操作、地
40、址操作,并可內(nèi)嵌匯編指令,將匯編指令當(dāng)作它的語(yǔ)句一樣。我們知道,匯編語(yǔ)言將涉及計(jì)算機(jī)硬件,所以C語(yǔ)言又像低級(jí)語(yǔ)言一樣,可以對(duì)計(jì)算機(jī)硬件進(jìn)行控制,因此人們把它稱為介于高級(jí)語(yǔ)言與低級(jí)語(yǔ)言之間的一種中級(jí)語(yǔ)言。正是因?yàn)镃語(yǔ)言具有這樣的特性,所以很適合編寫要對(duì)硬件進(jìn)行操作的軟件程序。本文采用C語(yǔ)言進(jìn)行編寫.因?yàn)榇讼到y(tǒng)軟件比較,其存儲(chǔ)量較大,因此必須應(yīng)用C語(yǔ)言編程。</p><p><b> 5.2程序設(shè)計(jì)<
41、;/b></p><p><b> 結(jié)束語(yǔ)</b></p><p> 第三學(xué)期的單片機(jī)課程設(shè)計(jì)到目前為止可以說(shuō)是告一段落了,我也順利的完成了自己的課題簡(jiǎn)易電子時(shí)鐘的設(shè)計(jì),由于自己一心準(zhǔn)備考研在這次課程設(shè)計(jì)上除了那些必要的時(shí)間其余也么有花太多的時(shí)間,本想著是做實(shí)物的,但在程序上出了點(diǎn)問(wèn)題就沒(méi)花時(shí)間去做了,所以這次設(shè)計(jì)還不算很完美。</p><
42、;p> 剛開(kāi)始被拿到這個(gè)課題的,感覺(jué)挺迷茫的,當(dāng)時(shí)就只知道軟件編程要用到定時(shí)器,自己也就在這方面懂一點(diǎn),其余的關(guān)于硬件電路,液晶顯示電路的驅(qū)動(dòng)的什么都不知道,后來(lái)回來(lái)之后就看了一下51單片機(jī)課程設(shè)計(jì)那本書,自己還學(xué)過(guò)這門專業(yè)可,加上在網(wǎng)上找了一些資料對(duì)硬件電路的設(shè)計(jì)有了一定的了解。在大腦里面有了一個(gè)大致的思路了,于是就把仿真軟件裝好開(kāi)始了我的課設(shè)。</p><p> 本次課設(shè)讓我對(duì)單片機(jī)有了更深入的認(rèn)識(shí)
43、,現(xiàn)代社會(huì)中幾乎處處都有單片機(jī)的影子,電子產(chǎn)品離不開(kāi)它。課設(shè)提高了我的單片機(jī)實(shí)際運(yùn)用能力,也發(fā)現(xiàn)了自己以前學(xué)習(xí)的不扎實(shí),對(duì)問(wèn)題不求甚解?,F(xiàn)在才知道“書到用時(shí)方少”??!學(xué)習(xí)還是得扎實(shí)。本次課設(shè)能順利完成,甚是感謝指導(dǎo)老師的幫助。</p><p><b> 參考文獻(xiàn)</b></p><p> [1]張洪潤(rùn),易濤.單片機(jī)應(yīng)用技術(shù)教程[M].清華大學(xué)出版社.2006<
44、;/p><p> [2]康華光.電子技術(shù)基礎(chǔ)[M].高等教育出版社.2000</p><p> [3]閻石.模擬電子技術(shù)基礎(chǔ)[M].華中科技大學(xué)出版社.2005</p><p> [4]劉樂(lè)善.微型計(jì)算機(jī)接口技術(shù)及應(yīng)用[M].華中科技大學(xué)出版社.2005</p><p> [5]張毅剛.MCS-51單片機(jī)應(yīng)用設(shè)計(jì)[M].哈爾濱工業(yè)大學(xué)出版
45、社.2005</p><p> 附錄一 C語(yǔ)言程序</p><p> #include<reg51.h></p><p> #define uchar unsigned char</p><p> #define uint unsigned int</p><p> sbit rs=P3^3;&
46、lt;/p><p> sbit rw=P3^4;</p><p> sbit lcden=P3^5;</p><p> unsigned int a,b,c;</p><p> uchar count,k;</p><p> uchar shi,fen,miao;</p><p> uc
47、har code table[]="12:00:00";</p><p> void delay(uint z) </p><p><b> {</b></p><p><b> uint x,y;</b></p><p> for(x=0;x<z;x++)&
48、lt;/p><p> for(y=0;y<110;y++);</p><p><b> }</b></p><p> void w_com(uchar com)</p><p><b> {</b></p><p><b> rs=0;</b>
49、;</p><p><b> lcden=0;</b></p><p><b> P1=com;</b></p><p><b> delay(5);</b></p><p> lcden=1;//給高脈沖</p><p><b>
50、delay(5);</b></p><p><b> lcden=0;</b></p><p><b> }</b></p><p> /*********************************</p><p><b> 寫指令</b></p
51、><p> *********************************/</p><p> void w_data(uchar date)</p><p><b> {</b></p><p><b> rs=1;</b></p><p><b> l
52、cden=0;</b></p><p><b> P1=date;</b></p><p><b> delay(5);</b></p><p><b> lcden=1;</b></p><p><b> delay(5);</b>&
53、lt;/p><p><b> lcden=0;</b></p><p><b> }</b></p><p> /*********************************</p><p><b> 寫數(shù)據(jù)</b></p><p> ***
54、******************************/</p><p> /*********************************</p><p><b> 初始化函數(shù)</b></p><p> *********************************/</p><p> void
55、w_sfm(uchar add,uchar date)//時(shí)分秒</p><p><b> {</b></p><p> uchar shi,ge;</p><p> shi=date/10;</p><p> ge=date%10; </p><p> w_com
56、(0x80+add);</p><p> w_data(0x30+shi);</p><p> w_data(0x30+ge); </p><p><b> }</b></p><p> void init()</p><p><b> {</b></
57、p><p> uchar num;</p><p> lcden=0;//初始化使能為0</p><p><b> fen=00;</b></p><p><b> miao=00;</b></p><p><b> shi=00;</b><
58、/p><p> w_com(0x30);//寫入顯示模式指令碼</p><p> w_com(0x0c);//寫入顯示開(kāi)/關(guān)及光標(biāo)指令碼</p><p> w_com(0x06);//當(dāng)寫一個(gè)字符后,地址指針加一,光標(biāo)加一,不動(dòng)光標(biāo)不閃爍</p><p> w_com(0x01); //清零作</p><p>
59、w_com(0x00);//代表第一位</p><p> for(num=0;num<8;num++)</p><p><b> {</b></p><p> w_data(table[num]);</p><p><b> delay(5);</b></p><
60、p><b> }</b></p><p> w_sfm(0,shi);</p><p> w_sfm(3,fen);</p><p> w_sfm(6,miao);</p><p> TMOD=0x01;</p><p> TH0=(65536-50000)/256;//50毫
61、秒產(chǎn)生一次中斷</p><p> TL0=(65536-50000)%256;</p><p><b> EA=1;</b></p><p><b> ET0=1;</b></p><p><b> TR0=1;</b></p><p><
62、b> }</b></p><p> void key()</p><p><b> {</b></p><p> P2=0x0f;//,a=P2; //先對(duì)P2置數(shù) 行掃描</p><p> if(P2!=0x0f) //判斷是否有鍵按下</p><p><b&g
63、t; {</b></p><p> delay(100); //延時(shí),軟件去干擾</p><p> if(P2!=0x0f) //確認(rèn)按鍵按下</p><p><b> {</b></p><p><b> a=P2;</b></p><p><b
64、> P2=0x0f0;</b></p><p> if(P2!=0x0f0)</p><p><b> {</b></p><p><b> b=P2;</b></p><p><b> c=a&b;</b></p><p
65、><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> else</b></p><p><b> c=P2;</b></p><
66、;p><b> }</b></p><p> void keyscan()</p><p><b> {</b></p><p><b> key();</b></p><p> if(c==0x88)//閃爍位置//選擇要調(diào)整的項(xiàng)目,左移</p>
67、<p><b> { </b></p><p><b> k++;</b></p><p> if(k==1)//k鍵按一下依次向左移</p><p><b> {</b></p><p><b> TR0=0;</b>
68、</p><p> delay(100);</p><p> w_com(0x80+0x07);</p><p> w_com(0x0f);//左移光標(biāo)開(kāi)始閃爍</p><p><b> }</b></p><p><b> if(k==2)</b></p&g
69、t;<p><b> {</b></p><p> delay(100);</p><p> w_com(0x80+0x04);</p><p> w_com(0x0f);//左移光標(biāo)開(kāi)始閃爍</p><p><b> }</b></p><p>&l
70、t;b> if(k==3)</b></p><p><b> {</b></p><p> delay(100);</p><p> w_com(0x80+0x01);</p><p> w_com(0x0f);//光標(biāo)恢復(fù)原樣,不閃爍</p><p><b&
71、gt; }</b></p><p><b> if(k==4)</b></p><p><b> {</b></p><p><b> k=0;</b></p><p> delay(100);</p><p> w_com(0x
72、0c);</p><p><b> TR0=1;</b></p><p><b> }</b></p><p><b> }</b></p><p> if(c==0x84)</p><p><b> {</b></
73、p><p> if(k==1)//秒升調(diào)節(jié)</p><p><b> {</b></p><p><b> miao++;</b></p><p> if(miao==60)</p><p><b> miao=0;</b></p>
74、<p> w_sfm(6,miao);</p><p> w_com(0x80+0x07);</p><p><b> }</b></p><p> if(k==2)//分升調(diào)節(jié)</p><p><b> {</b></p><p><b>
75、fen++;</b></p><p> if(fen==60)</p><p><b> fen=0;</b></p><p> w_sfm(3,fen);</p><p> w_com(0x80+0x04);</p><p><b> }</b><
76、;/p><p> if(k==3)//時(shí)升調(diào)節(jié)</p><p><b> {</b></p><p><b> shi++;</b></p><p> if(shi==24)</p><p><b> shi=0;</b></p>&
77、lt;p> w_sfm(0,shi);</p><p> w_com(0x80+0x01);</p><p><b> }</b></p><p><b> }</b></p><p> if(c==0x82)</p><p><b> {&l
78、t;/b></p><p> if(k==1)//秒降調(diào)節(jié)</p><p><b> {</b></p><p><b> miao--;</b></p><p> if(miao==-1)</p><p><b> miao=59;</b&g
79、t;</p><p> w_sfm(6,miao);</p><p> w_com(0x80+0x07);</p><p><b> }</b></p><p> if(k==2)//分降調(diào)節(jié)</p><p><b> {</b></p><p&
80、gt;<b> fen--;</b></p><p> if(fen==-1)</p><p><b> fen=59;</b></p><p> w_sfm(3,fen);</p><p> w_com(0x80+0x04);</p><p><b>
81、 }</b></p><p> if(k==3)//時(shí)降調(diào)節(jié)</p><p><b> {</b></p><p><b> shi--;</b></p><p> if(shi==-1)</p><p><b> shi=23;</b&
82、gt;</p><p> w_sfm(0,shi);</p><p> w_com(0x80+0x01);</p><p><b> }</b></p><p><b> }</b></p><p><b> } </b></p>
83、<p> void main()</p><p><b> {</b></p><p><b> rw=0;</b></p><p><b> init();</b></p><p><b> while(1)</b></p&g
84、t;<p><b> {</b></p><p> keyscan();</p><p> if(count==20)//20*50毫秒=1000毫秒=1秒</p><p><b> {</b></p><p><b> count=0;</b><
85、/p><p><b> miao++;</b></p><p> if(miao==60)</p><p><b> {</b></p><p><b> miao=0;</b></p><p><b> fen++;</b>
86、</p><p> if(fen==60)</p><p><b> {</b></p><p><b> fen=0;</b></p><p><b> shi++;</b></p><p> if(shi==24)</p>&
87、lt;p><b> {</b></p><p><b> shi=0;</b></p><p><b> }</b></p><p> w_sfm(0,shi);</p><p><b> }</b></p><p>
88、; w_sfm(3,fen);</p><p><b> }</b></p><p> w_sfm(6,miao);</p><p><b> }</b></p><p><b> }</b></p><p><b> }</
89、b></p><p> void timer0() interrupt 1</p><p><b> {</b></p><p> TH0=(65536-50000)/256;//50毫秒產(chǎn)生一次中斷</p><p> TL0=(65536-50000)%256;</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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)課程設(shè)計(jì)--多功能數(shù)字電子鐘
- 單片機(jī)課程設(shè)計(jì)— 多功能數(shù)字電子鐘
- 電子時(shí)鐘數(shù)字電子鐘單片機(jī)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)-基于單片機(jī)的多功能電子鐘的設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)報(bào)告---多功能電子鐘
- 單片機(jī)課程設(shè)計(jì)——數(shù)字電子鐘
- 單片機(jī)課程設(shè)計(jì)--數(shù)字電子鐘
- 單片機(jī)課程設(shè)計(jì)--數(shù)字電子鐘
- 單片機(jī)數(shù)字電子鐘課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--基于單片機(jī)的數(shù)字電子鐘
- 單片機(jī)課程設(shè)計(jì)--數(shù)字電子鐘
- 單片機(jī)微型機(jī)課程設(shè)計(jì)---多功能電子鐘
- 單片機(jī)課程設(shè)計(jì)--數(shù)字電子鐘設(shè)計(jì)
- 基于單片機(jī)的多功能電子鐘課程設(shè)計(jì)
- 多功能數(shù)字時(shí)鐘 單片機(jī)課程設(shè)計(jì)
- 《單片機(jī)技術(shù)》電子鐘課程設(shè)計(jì)---數(shù)字電子鐘
- 單片機(jī)課程設(shè)計(jì)--數(shù)字鐘電子鐘
- 電子鐘單片機(jī)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--電子鐘
- 單片機(jī)課程設(shè)計(jì)(電子鐘)
評(píng)論
0/150
提交評(píng)論