版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 自動(dòng)控制系統(tǒng)課程設(shè)計(jì)</p><p> 題 目 數(shù)字時(shí)鐘設(shè)計(jì) </p><p> 學(xué) 院 </p><p> 專業(yè)班級(jí) </p&
2、gt;<p> 姓 名 </p><p> 學(xué) 號(hào) </p><p> 指導(dǎo)老師 </p><p> 自動(dòng)化系統(tǒng)設(shè)計(jì)任務(wù)書(shū)</p&
3、gt;<p> 院(系) 專業(yè)班級(jí) 學(xué)生姓名 </p><p> 一、自動(dòng)化系統(tǒng)設(shè)計(jì)題目 數(shù)字時(shí)鐘設(shè)計(jì) </p><p> 二、課程設(shè)計(jì)工作自 2015_年_11_月_16日 起至__2015_年 12 月_16_日止</p><p>
4、; 三、設(shè)計(jì)進(jìn)行地點(diǎn): 實(shí)驗(yàn)室 </p><p><b> 四、設(shè)計(jì)內(nèi)容要求:</b></p><p> 設(shè)計(jì)目的與意義:在日常生活和工作中,我們常常用到定時(shí)控制,如擴(kuò)印過(guò)程中的曝光定時(shí)等。早期常用的一些時(shí)間控制單元都使用模擬電路設(shè)計(jì)制作的,其定時(shí)準(zhǔn)確性和
5、重復(fù)精度都不是很理想。本次設(shè)計(jì)要求學(xué)生根據(jù)所學(xué)知識(shí)完成帶溫度顯示的萬(wàn)年歷的設(shè)計(jì),提高學(xué)生的分析問(wèn)題,解決問(wèn)題的能力。 </p><p> 其具體要求如下: </p>&
6、lt;p> 1.要求采用單片機(jī)完成數(shù)字時(shí)鐘的設(shè)計(jì) </p><p> 2.實(shí)現(xiàn)24小時(shí)的時(shí)鐘顯示、校準(zhǔn)等功能 </p><p> 論文要求:
7、 </p><p> 1.撰寫(xiě)要求格式規(guī)范,設(shè)計(jì)思路清晰,條理清楚; </p><p> 2. 論文內(nèi)容準(zhǔn)確無(wú)誤,用A4紙張打印。 </p><p> 進(jìn)程安排如下:
8、 </p><p> 1 查資料,調(diào)研,確定方案。 </p><p> 2對(duì)系統(tǒng)硬件電路進(jìn)行模塊化設(shè)計(jì),采用編程語(yǔ)言進(jìn)行軟件編程,完成硬件電路的軟件仿真;</p><p> 3進(jìn)行系統(tǒng)硬件電路的搭建、調(diào)試和測(cè)試,完成設(shè)計(jì)驗(yàn)收。
9、 4完成自動(dòng)化系統(tǒng)設(shè)計(jì)任務(wù),并提交最終電子檔及論文。 </p><p> 指 導(dǎo) 教 師 系(教 研 室) </p><p> 系(教研室)主任簽名
10、 批準(zhǔn)日期 </p><p> 接受設(shè)計(jì)任務(wù)開(kāi)始執(zhí)行日期 學(xué)生簽名 </p><p><b> 摘要</b></p><p> 現(xiàn)代生活的人們非常的重視時(shí)間觀念,對(duì)于那些對(duì)時(shí)間把握非
11、常嚴(yán)格和準(zhǔn)確的人或事來(lái)說(shuō),時(shí)間的不準(zhǔn)確會(huì)帶來(lái)非常大的麻煩,所以以數(shù)碼管為顯示器的時(shí)鐘比指針式的時(shí)鐘表現(xiàn)出了很大的優(yōu)勢(shì)。數(shù)碼管顯示的時(shí)間簡(jiǎn)單明了而且讀數(shù)快、時(shí)間準(zhǔn)確顯示到秒。而機(jī)械式的依賴于晶體震蕩器,可能會(huì)導(dǎo)致誤差。數(shù)字鐘是采用數(shù)字電路實(shí)現(xiàn)對(duì)“時(shí)”、“分”、“秒”數(shù)字顯示的計(jì)時(shí)裝置。數(shù)字鐘的精度、穩(wěn)定度遠(yuǎn)遠(yuǎn)超過(guò)老式機(jī)械鐘。</p><p> 數(shù)字鐘是一種用數(shù)字電路技術(shù)實(shí)現(xiàn)時(shí)、分、秒計(jì)時(shí)的裝置,與機(jī)械式時(shí)鐘相比具
12、有更高的準(zhǔn)確性和直觀性,且無(wú)機(jī)械裝置,具有更更長(zhǎng)的使用壽命,因此得到了廣泛的使用。數(shù)字鐘從原理上講是一種典型的數(shù)字電路,其中包括了組合邏輯電路和時(shí)序電路。設(shè)計(jì)一個(gè)數(shù)字計(jì)時(shí)器,可以完成00:00:00到23:59:59的計(jì)時(shí)功能,并在控制電路的作用下具有快速校時(shí)、快速校準(zhǔn)功能。</p><p><b> 目錄</b></p><p><b> 1.緒論1
13、</b></p><p> 1.1 課題研究的背景1</p><p> 1.2 課題研究的意義2</p><p> 1.3 數(shù)字時(shí)鐘的應(yīng)用及發(fā)展前景2</p><p> 1.4 課題的研究?jī)?nèi)容及技術(shù)要求3</p><p> 2.系統(tǒng)的初步設(shè)計(jì)5</p><p>&
14、lt;b> 2.1設(shè)計(jì)目的5</b></p><p><b> 2.2設(shè)計(jì)要求5</b></p><p> 2.3.方案論證5</p><p> 2.3.1計(jì)時(shí)方案5</p><p> 2.3.2.顯示方案6</p><p> 2.4.系統(tǒng)框圖6</
15、p><p> 3.系統(tǒng)硬件設(shè)計(jì)7</p><p> 3.1 單片機(jī)最小系統(tǒng)7</p><p> 3.2 晶振電路8</p><p><b> 3.3復(fù)位電路8</b></p><p> 3.4 數(shù)碼顯示電路9</p><p> 3.4.1 LED的選擇9
16、</p><p> 3.4.2 LED的驅(qū)動(dòng)和顯示10</p><p> 3.5 按鍵電路11</p><p> 3.6校準(zhǔn)電路12</p><p> 4. 系統(tǒng)軟件設(shè)計(jì)13</p><p> 4.1主程序流程圖如下:13</p><p> 4.2按鍵流程圖如下:14&l
17、t;/p><p><b> 5.綜合調(diào)試15</b></p><p> 5.1秒信號(hào)的測(cè)試15</p><p> 5.2 時(shí)間設(shè)置功能的測(cè)試15</p><p><b> 6.總結(jié)17</b></p><p><b> 參考文獻(xiàn)18</b>
18、;</p><p><b> 1 緒論</b></p><p> 1.1 課題研究的背景</p><p> 加入世貿(mào)組織以后,中國(guó)會(huì)面臨激烈的競(jìng)爭(zhēng)。這種競(jìng)爭(zhēng)將是一場(chǎng)科技實(shí)力、管理水平和人才素質(zhì)的較量,風(fēng)險(xiǎn)和機(jī)遇共存,同時(shí)電子產(chǎn)品的研發(fā)日新月異,不僅是在通信技術(shù)方面數(shù)字化取代于模擬信號(hào),就連我們的日常生活也進(jìn)于讓數(shù)字化取締。說(shuō)明數(shù)字時(shí)代已經(jīng)
19、到來(lái),而且滲透于我們生活的方方面面?,F(xiàn)代生活的人們非常的重視時(shí)間觀念,對(duì)于那些對(duì)時(shí)間把握非常嚴(yán)格和準(zhǔn)確的人或事來(lái)說(shuō),時(shí)間的不準(zhǔn)確會(huì)帶來(lái)非常大的麻煩,所以以數(shù)碼管為顯示器的時(shí)鐘比指針式的時(shí)鐘表現(xiàn)出了很大的優(yōu)勢(shì)。數(shù)碼管顯示的時(shí)間簡(jiǎn)單明了而且讀數(shù)快、時(shí)間準(zhǔn)確顯示到秒。而機(jī)械式的依賴于晶體震蕩器,可能會(huì)導(dǎo)致誤差。數(shù)字鐘是采用數(shù)字電路實(shí)現(xiàn)對(duì)“時(shí)”、“分”、“秒”數(shù)字顯示的計(jì)時(shí)裝置。</p><p> 1.2 課題研究的意
20、義</p><p> 多功能數(shù)字時(shí)鐘的用途十分廣泛,只要有計(jì)時(shí)的存在,便要用到數(shù)字時(shí)鐘的原理及結(jié)構(gòu);同時(shí)在日期中,它以其小巧,價(jià)格低廉,走時(shí)精度高,使用方便,功能多,便于集成化而受廣大消費(fèi)者的喜愛(ài)。隨著人類科技文明的發(fā)展,人們對(duì)于時(shí)鐘的要求在不斷提高。時(shí)鐘已不僅僅被看出一種用來(lái)顯示時(shí)間的工具,在很多實(shí)際應(yīng)用中它還需要能夠?qū)崿F(xiàn)更多其它的功能。高精度、多功能、小體積、低功耗,是現(xiàn)代時(shí)鐘發(fā)展的趨勢(shì)。在這種趨勢(shì)下,時(shí)鐘
21、的數(shù)字化、多功能化已經(jīng)成為現(xiàn)在時(shí)鐘生產(chǎn)研究的主導(dǎo)設(shè)計(jì)方向。隨著電子技術(shù)的飛速發(fā)展,家用電器和辦公電子設(shè)備逐漸增多,不同的設(shè)備都有自己的控制器,使用起來(lái)很不方便。根據(jù)這種實(shí)際情況,設(shè)計(jì)了一個(gè)單片機(jī)多功能定時(shí)系統(tǒng)[15],它可以避免多種控制器的混淆,利用一個(gè)控制器對(duì)多路電器進(jìn)行控制,同時(shí)又可以進(jìn)行時(shí)鐘校準(zhǔn)和定點(diǎn)鬧鐘,可以任意設(shè)置時(shí)間。這種具有人們所需要的智能化特性的產(chǎn)品減輕了人的勞動(dòng),擴(kuò)大了數(shù)字化的范圍,為家庭數(shù)字化提供了可能。因此,研究數(shù)
22、字時(shí)鐘及擴(kuò)大其應(yīng)用,有著非?,F(xiàn)實(shí)的意義。</p><p> 1.3 數(shù)字時(shí)鐘的應(yīng)用及發(fā)展前景</p><p> 數(shù)字時(shí)鐘具有走時(shí)準(zhǔn)確,一鐘多用等特點(diǎn),在生活中已經(jīng)得到廣泛的應(yīng)用。雖然現(xiàn)在市場(chǎng)上已有現(xiàn)成的電子鐘集成電路芯片出售,價(jià)格便宜、使用也方便,但是人們對(duì)電子產(chǎn)品的應(yīng)用要求越來(lái)越高,數(shù)字鐘不但可以顯示當(dāng)前的時(shí)間,而且可以顯示日期、農(nóng)歷 、以及星期等,給人們的生活帶來(lái)了方便。另外數(shù)字
23、鐘還具備秒表和鬧鐘的功能,且鬧鐘鈴聲可自選,使一款電子鐘具備了多媒體的色彩。</p><p> 時(shí)間對(duì)人們來(lái)說(shuō)總是那么寶貴,工作的忙碌性和繁雜性容易使人忘記當(dāng)前的時(shí)間。忘記了要做的事情,當(dāng)事情不是很重要的時(shí)候,這種遺忘無(wú)傷大雅。但是,一旦重要事情,一時(shí)的耽誤可能釀成大禍。數(shù)字時(shí)鐘已成為人們?nèi)粘I钪斜夭豢缮俚谋匦杵罚瑥V泛用于個(gè)人家庭以及車站、碼頭、劇院、辦公室等公共場(chǎng)所,給人們的生活、學(xué)習(xí)、工作、娛樂(lè)帶來(lái)極大的
24、方便。由于數(shù)字集成電路技術(shù)的發(fā)展和采用了先進(jìn)的石英技術(shù),使電子時(shí)鐘具有走時(shí)準(zhǔn)確、性能穩(wěn)定、攜帶方便等優(yōu)點(diǎn),它還用于計(jì)時(shí)、自動(dòng)報(bào)時(shí)及自動(dòng)控制等各個(gè)領(lǐng)域[2]。</p><p> 數(shù)字時(shí)鐘[10]是采用單片機(jī)原理實(shí)現(xiàn)對(duì)時(shí)、分、秒,數(shù)字顯示及到時(shí)提醒的計(jì)時(shí)裝置,廣泛用于個(gè)人家庭,車站, 碼頭辦公室等公共場(chǎng)所,成為人們?nèi)粘I钪胁豢缮俚谋匦杵?由于數(shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應(yīng)用,使得數(shù)字鐘的精度,遠(yuǎn)遠(yuǎn)超過(guò)
25、老式鐘表, 鐘表的數(shù)字化給人們生產(chǎn)生活帶來(lái)了極大的方便,而且大大地?cái)U(kuò)展了鐘表原先的報(bào)時(shí)功能。諸如定時(shí)自動(dòng)報(bào)警、時(shí)間程序自動(dòng)控制、定時(shí)廣播、自動(dòng)起閉路燈、定時(shí)開(kāi)關(guān)烘箱、通斷動(dòng)力設(shè)備、甚至各種定時(shí)電氣的自動(dòng)啟用等,所有這些,都是以鐘表數(shù)字化為基礎(chǔ)的,所以數(shù)字時(shí)鐘有很大的發(fā)展前景。</p><p> 1.4 課題的研究?jī)?nèi)容及技術(shù)要求</p><p> 數(shù)字時(shí)鐘是采用單片機(jī)原理實(shí)現(xiàn)對(duì)“時(shí)”、“
26、分”、“秒”數(shù)字顯示的計(jì)時(shí)裝置。數(shù)字鐘的精度、穩(wěn)定度遠(yuǎn)遠(yuǎn)超過(guò)老式機(jī)械鐘的計(jì)時(shí)裝置,廣泛用于個(gè)人家庭,車站, 碼頭辦公室等公共場(chǎng)所,成為人們?nèi)粘I钪胁豢缮俚谋匦杵?由于數(shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應(yīng)用,使得數(shù)字鐘的精度,遠(yuǎn)遠(yuǎn)超過(guò)老式鐘表, 鐘表的數(shù)字化給人們生產(chǎn)生活帶來(lái)了極大的方便,而且大大地?cái)U(kuò)展了鐘表原先的報(bào)時(shí)功能。都是以鐘表數(shù)字化為基礎(chǔ)的,所以數(shù)字時(shí)鐘有很大的發(fā)展前景。數(shù)碼管顯示的時(shí)間簡(jiǎn)單明了而且讀數(shù)快、時(shí)間準(zhǔn)確顯示到秒
27、。而機(jī)械式的依賴于晶體震蕩器,可能會(huì)導(dǎo)致誤差。</p><p> 數(shù)字時(shí)鐘是一種用數(shù)字電路技術(shù)實(shí)現(xiàn)時(shí)、分、秒計(jì)時(shí)的裝置,與機(jī)械式時(shí)鐘相比具有更高的準(zhǔn)確性和直觀性,且無(wú)機(jī)械裝置,具有更更長(zhǎng)的使用壽命,因此得到了廣泛的使用。數(shù)字時(shí)鐘從原理上講是一種典型的數(shù)字電路,其中包括了組合邏輯電路和時(shí)序電路。目前,數(shù)字時(shí)鐘的功能越來(lái)越強(qiáng),并且有多種專門的大規(guī)模集成電路可供選擇。</p><p><
28、b> 2.系統(tǒng)的初步設(shè)計(jì)</b></p><p><b> 2.1設(shè)計(jì)目的</b></p><p> 設(shè)計(jì)一種多功能數(shù)字鐘,該數(shù)字鐘具有基本功能和擴(kuò)展功能兩部分。其中,基本功能部分的有準(zhǔn)確計(jì)時(shí),以數(shù)字形式顯示時(shí)、分、秒的時(shí)間和校時(shí)功能。在計(jì)時(shí)出現(xiàn)誤差時(shí)電路還可以進(jìn)行校時(shí)和校分,為了使電路簡(jiǎn)單所設(shè)計(jì)的電路不具備校秒的功能。并且要用數(shù)碼管顯示時(shí)、分
29、、秒,各位均為兩位顯示,擴(kuò)展部分要有相應(yīng)的響應(yīng)電路。</p><p><b> 2.2設(shè)計(jì)要求</b></p><p> 具體要求:實(shí)現(xiàn)24小時(shí)的時(shí)鐘顯示、校準(zhǔn)等功能。</p><p> (1)顯示功能:具有“時(shí)”、“分”、“秒”的數(shù)字顯示(“時(shí)”從0~23,分0~59,秒0~59)。</p><p> ?。?)復(fù)
30、位功能:當(dāng)數(shù)字時(shí)鐘有偏差時(shí),可以通過(guò)手動(dòng)的方式使其恢復(fù)初始零狀態(tài)。</p><p> ?。?)可以根據(jù)個(gè)人設(shè)想,適當(dāng)?shù)奶砑悠渌δ堋?lt;/p><p><b> 2.3.方案論證</b></p><p><b> 2.3.1計(jì)時(shí)方案</b></p><p> 數(shù)字鐘既可以通過(guò)純硬件實(shí)現(xiàn),也可以通
31、過(guò)軟硬結(jié)合實(shí)現(xiàn),根據(jù)電子時(shí)鐘的核心部件——秒信號(hào)的產(chǎn)生原理,通常有三鐘形式:</p><p> ?。?) 用NE555時(shí)基電路的形式</p><p> 采用NE555時(shí)基電路或其他震蕩電路產(chǎn)生秒脈沖信號(hào),作為秒加法電路的時(shí)鐘信號(hào)或微處理器的外部中斷輸入信號(hào),可構(gòu)成電子時(shí)鐘。由555構(gòu)成的秒脈沖發(fā)生器電路如圖2-1所示。輸出的脈沖信號(hào)V0的頻率F=1.443/(RA+2RB)×C
32、,可通過(guò)調(diào)節(jié)這3個(gè)參數(shù),使輸V0的頻率為精確的1Hz[3]。</p><p> 圖2-1: 555構(gòu)成的秒脈沖發(fā)生器電路</p><p> 利用555多諧振蕩器,優(yōu)點(diǎn):555內(nèi)部的比較器靈敏度較高,而且采用差</p><p> 分電路形式,它的振蕩頻率受電源電壓和溫度變化的影響很小。缺點(diǎn):要精確</p><p> 輸出1Hz脈沖,對(duì)電
33、容和電阻的數(shù)值精度要求很高,所以輸出脈沖既不夠準(zhǔn)確</p><p><b> 也不夠穩(wěn)定。 </b></p><p> ?。?) 采用石英鐘專用芯片的實(shí)現(xiàn)形式</p><p> 采用石英鐘專用計(jì)時(shí)芯片實(shí)現(xiàn)的電子鐘,具有實(shí)現(xiàn)簡(jiǎn)單、計(jì)時(shí)精度高的特點(diǎn)。石英計(jì)時(shí)芯片(簡(jiǎn)稱“機(jī)芯”)比較多,常見(jiàn)的有STP5512F、SM5546A和D60400等[4
34、]?,F(xiàn)基于5512F的2秒輸出信號(hào)作為秒加法電路的計(jì)時(shí)脈沖,可實(shí)現(xiàn)電子時(shí)鐘。5512F的引腳如圖2-2所示。</p><p> 其中,引腳7、8為外接晶振及振蕩電路,引腳1接電源正極,電源為1.5伏,引腳3、4原為指針用步進(jìn)電機(jī)線圈的輸出驅(qū)動(dòng)端,這里可用3腳作為脈沖輸出,頻率決定于外接晶振的頻率。</p><p> ?。?) 采用基于單片機(jī)的實(shí)現(xiàn)形式</p><p&g
35、t; 利用單片機(jī)的智能性,可方便的實(shí)現(xiàn)具有智能數(shù)字鐘的設(shè)計(jì)。而且,微處理系統(tǒng)具有時(shí)鐘振蕩系統(tǒng),利用系統(tǒng)時(shí)鐘并借助微處理器的定時(shí)/計(jì)數(shù)器功能可以實(shí)現(xiàn)數(shù)字鐘的功能。本設(shè)計(jì)采用AT89C2051單片機(jī)設(shè)計(jì)。</p><p> 由于考慮成本問(wèn)題,最終選擇方案三最為合適。</p><p> 2.3.2.顯示方案</p><p> 對(duì)于實(shí)時(shí)時(shí)鐘而言,顯示顯然是另一個(gè)重要
36、的環(huán)節(jié)。通常LED顯示有兩種方式:動(dòng)態(tài)顯示和靜態(tài)顯示。</p><p> 靜態(tài)顯示的優(yōu)點(diǎn)是程序簡(jiǎn)單、顯示亮度有保證、單片機(jī)CPU的開(kāi)銷小,節(jié)約CPU的工作時(shí)間。但占有I/O口線多,每一個(gè)LED都要占有一個(gè)I/O口,硬件開(kāi)銷大,電路復(fù)雜。需要幾個(gè)LED就必須占有幾個(gè)并行口,比較適用于LED數(shù)量較少的場(chǎng)合。當(dāng)然當(dāng)LED數(shù)量較多的時(shí)候,可以使用單片機(jī)的串行口通過(guò)移位寄存器的方式加以解決,但程序編寫(xiě)比較麻煩。</
37、p><p> LED動(dòng)態(tài)顯示硬件連接簡(jiǎn)單,但動(dòng)態(tài)掃描的顯示方式需要占有CPU較多的時(shí)間,在單片機(jī)沒(méi)有太多實(shí)時(shí)測(cè)控任務(wù)的情況下可以采用。</p><p> 本系統(tǒng)需要采用6位LED數(shù)碼管來(lái)分別顯示時(shí)、分、秒,因數(shù)碼管個(gè)數(shù)較多,故本系統(tǒng)選擇動(dòng)態(tài)顯示方式。</p><p><b> 2.4.系統(tǒng)框圖</b></p><p>
38、<b> 圖2-4 系統(tǒng)框圖</b></p><p> 說(shuō)明:系統(tǒng)由STC89C52、LED 數(shù)碼管、按鍵等部分構(gòu)成,能實(shí)現(xiàn)時(shí)間的調(diào)整、定時(shí)時(shí)間的設(shè)定,輸出等功能。系統(tǒng)的功能選擇由暫停和開(kāi)始鍵完成。其中暫停為時(shí)間校對(duì),定時(shí)器調(diào)整功能鍵,按暫停進(jìn)入調(diào)整狀態(tài)。當(dāng)按下暫停鍵后,可以按下數(shù)字鍵調(diào)節(jié)當(dāng)前時(shí)間;開(kāi)始鍵為退出調(diào)整模式,當(dāng)按下此按鍵時(shí),時(shí)鐘從設(shè)置好的時(shí)間處正常運(yùn)行;當(dāng)系統(tǒng)超出設(shè)置的24:
39、00時(shí),將自動(dòng)從00:00開(kāi)始運(yùn)行,直到暫停鍵按下為止。</p><p><b> 3.系統(tǒng)硬件設(shè)計(jì)</b></p><p> 3.1 單片機(jī)最小系統(tǒng)</p><p> 單片機(jī)中央處理系統(tǒng)的方案設(shè)計(jì),選用STC89C52單片機(jī)作為中央處理器,該單片機(jī)除了擁有MCS-51系列單片機(jī)的所有優(yōu)點(diǎn)外,內(nèi)部還具有8K的在系統(tǒng)可編程FLASH存儲(chǔ)器,
40、低功耗的空閑和掉電模式,極大的降低了電路的功耗,還包含了定時(shí)器、程序存儲(chǔ)器、數(shù)據(jù)存儲(chǔ)器等硬件,其硬件能符合整個(gè)控制系統(tǒng)的要求,不需要外接其他存儲(chǔ)器芯片和定時(shí)器件,方便地構(gòu)成一個(gè)最小系統(tǒng)。整個(gè)系統(tǒng)結(jié)構(gòu)緊湊,抗干擾能力強(qiáng),性價(jià)比高。</p><p> 本系統(tǒng)采用STC89C52作為核心的控制芯片,用緊鎖座安裝單片機(jī)方便更換,具體芯片的外部引腳圖3.1所示:</p><p><b>
41、 圖3.1</b></p><p><b> 3.2 晶振電路</b></p><p> 系統(tǒng)利用晶體振蕩器作為時(shí)鐘電路,根據(jù)晶振的不同使用要求及特點(diǎn),通常分為以下幾類:普通晶振、溫補(bǔ)晶振、壓控晶振、溫控晶振等。安裝晶振時(shí),應(yīng)根據(jù)其引腳功能標(biāo)識(shí)與應(yīng)用電路應(yīng)連接,避免電源引線與輸出引腳相接輸出。 </p><p> 本設(shè)計(jì)晶振
42、電路采用12M的晶振。晶振的作用是給單片機(jī)正常工作提供穩(wěn)定的時(shí)鐘信號(hào)。單片機(jī)的晶振并不是只能用12M,只要不超過(guò)20M就行,在準(zhǔn)許的范圍內(nèi),晶振越大,單片機(jī)運(yùn)行越快,還有用12M的就是好算時(shí)間,因?yàn)橐粋€(gè)機(jī)器周期為1/12時(shí)鐘周期,所以這樣用12M的話,一個(gè)時(shí)鐘周期為12us,那么定時(shí)器計(jì)一次數(shù)就是1us了,電容范圍在20-40pF之間,這里連接的是30pF的電容。</p><p><b> 3.3復(fù)位
43、電路</b></p><p><b> 圖3.3復(fù)位電路</b></p><p> 智能系統(tǒng)一般應(yīng)有手動(dòng)或上電復(fù)位電路。復(fù)位電路的實(shí)現(xiàn)通常有兩種形式:即專用µp監(jiān)控電路和RC復(fù)位電路。前者電路實(shí)現(xiàn)簡(jiǎn)單,成本低,但復(fù)位可靠性相對(duì)較低;后者成本較高,但復(fù)位可靠性高,尤其是高可靠重復(fù)復(fù)位。對(duì)于復(fù)位要求高,并對(duì)電源電壓進(jìn)行監(jiān)視的場(chǎng)合,大多采用這種方式
44、。</p><p> 本設(shè)計(jì)采用上電按鈕復(fù)位電路:首先經(jīng)過(guò)上電復(fù)位,當(dāng)按下按鍵時(shí),RST直接與VCC相連,為高電平形成復(fù)位,同時(shí)電解電容被電路放電;按鍵松開(kāi)時(shí),VCC對(duì)電容充電,充電電流在電阻上,RST依然為高電平,仍然是復(fù)位,充電完成后,電容相當(dāng)于開(kāi)路,RST為低電平,單片機(jī)芯片正常工作。其中電阻R2決定了電容充電的時(shí)間,R2越大則充電時(shí)間長(zhǎng),復(fù)位信號(hào)從VCC回落到0V的時(shí)間也長(zhǎng)。</p>&l
45、t;p> 3.4 數(shù)碼顯示電路</p><p> 3.4.1 LED的選擇</p><p> 單片機(jī)I/O的應(yīng)用最典型的是通過(guò)I/O口與7段LED數(shù)碼管構(gòu)成顯示電路,7段LED數(shù)碼管,在一定形狀的絕緣材料上,利用單只LED組合排列成“8”字型的數(shù)碼管,分別引出它們的電極,點(diǎn)亮相應(yīng)的點(diǎn)劃來(lái)顯示出0-9的數(shù)字。LED數(shù)碼管根據(jù)LED的接法不同分為共陰和共陽(yáng)兩類,了解LED的這些特性
46、,對(duì)編程是很重要的,因?yàn)椴煌愋偷臄?shù)碼管,除了它們的硬件電路有差異外 ,編程方法也是不同的。下圖3-10陰和共陽(yáng)極數(shù)碼管的內(nèi)部電路,它們的發(fā)光原理是一樣的,只是它們的電源極性不同而已。 </p><p> 將多只LED的陰極連在一起即為共陰式,而將多只LED的陽(yáng)極連在一起即為共陽(yáng)式。以共陰式為例,如把陰極接地,在相應(yīng)段的陽(yáng)極接上正電源,該段即會(huì)發(fā)光。當(dāng)然,LED的電
47、流通常較小,一般均需在回路中接上限流電阻。假如我們將"b"和"c"段接上正電源,其它端接地或懸空,那么"b"和"c"段發(fā)光,此時(shí),數(shù)碼管顯示將顯示數(shù)字“1”。而將"a"、"b"、"d"、"e"和"g"段都接上正電源,其它引腳懸空,此時(shí)數(shù)碼管將顯示“2”。其它字
48、符的顯示原理類同。</p><p> 圖3-5 數(shù)碼管電路</p><p> 用單片機(jī)驅(qū)動(dòng)LED數(shù)碼管有很多方法,按顯示方式分,有靜態(tài)顯示和動(dòng)態(tài)(掃描)顯示,按譯碼方式可分硬件譯碼和軟件譯碼之分。靜態(tài)顯示就是顯示驅(qū)動(dòng)電路具有輸出鎖存功能,單片機(jī)將所要顯示的數(shù)據(jù)送出后就不再控制LED,直到下一次顯示數(shù)據(jù)需要更新時(shí)再傳送一次新數(shù)據(jù),顯示數(shù)據(jù)穩(wěn)定,占用很少的CPU時(shí)間;動(dòng)態(tài)顯示需要CPU時(shí)刻
49、對(duì)顯示器件進(jìn)行數(shù)據(jù)刷新,顯示數(shù)據(jù)有閃爍感,占用的CPU時(shí)間多。</p><p> 這兩種顯示方式各有利弊:動(dòng)態(tài)顯示雖然有閃爍感,占用的CPU時(shí)間較多,但是用的硬件少,能節(jié)省線路板的空間。動(dòng)態(tài)掃描顯示接口是單片機(jī)種應(yīng)用最廣泛的一種顯示方式。其接口電路是把所有的LED顯示器的8個(gè)筆畫(huà)段A~G、DP的同名端連在一起,而每一個(gè)數(shù)碼管的公共端COM是各自獨(dú)立地受I/O線控制。CPU向字段輸出口送出字形碼時(shí),所有顯示器接收
50、到相同的字形碼,但究竟是哪個(gè)顯示器亮,則取決于COM端,而這一端由I/O控制的,可以自行決定何時(shí)顯示哪一位了。而所謂動(dòng)態(tài)掃描就是指我們采用分時(shí)的方法,輪流控制各個(gè)顯示器的COM端,使各個(gè)顯示器輪流點(diǎn)亮。在輪流點(diǎn)亮掃描過(guò)程中,每位顯示器的點(diǎn)亮?xí)r間是極為短暫的,約1ms左右,但是由于人的視覺(jué)暫留現(xiàn)象及發(fā)光余暉效應(yīng),盡管實(shí)際上各位顯示器并非同時(shí)點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會(huì)有閃爍感。</p>
51、<p> 靜態(tài)顯示雖然數(shù)據(jù)穩(wěn)定,占用很少的CPU時(shí)間,但每個(gè)顯示單元都需要單獨(dú)的顯示驅(qū)動(dòng)電路,使用的硬件較多,但是編程相對(duì)于動(dòng)態(tài)顯示比較簡(jiǎn)單,本設(shè)計(jì)采用的是靜態(tài)顯示方案。</p><p> 3.4.2 LED的驅(qū)動(dòng)和顯示</p><p> 單片機(jī)對(duì)LED數(shù)碼管的驅(qū)動(dòng)方法可以分為串行和并行兩種,分別適用于不同的使用場(chǎng)合,兩者的硬件電路和程序區(qū)別也很大。</p>
52、<p> 并行驅(qū)動(dòng):在一般情況下,單片機(jī)使用并行驅(qū)動(dòng)的方式進(jìn)行LED的顯示。并行驅(qū)動(dòng)的結(jié)構(gòu)較簡(jiǎn)單,并且非常適用于說(shuō)明地址和數(shù)據(jù)總線復(fù)用的情況。</p><p> LED并行驅(qū)動(dòng)的電路原理圖如圖3.4所示。</p><p> 圖 3.4最終的顯示原理圖</p><p> 圖中顯示的是使用STC89C52與LED顯示器的接口,STC89C52的P10
53、~P17作為段選碼口,經(jīng)過(guò)74HC573驅(qū)動(dòng)與LED的段相連;STC89C52的P10~P15作為位選碼口,經(jīng)過(guò)74HC573驅(qū)動(dòng)與LED的位相連。圖中的P2.6作為74HC573的段選信號(hào),P2.7作為74HC573的位選信號(hào)。</p><p><b> 3.5 按鍵電路</b></p><p> 按鍵電路由12個(gè)輕觸開(kāi)關(guān)組成,如圖2.5所示。按鍵用來(lái)調(diào)整時(shí)間
54、,其兩端分別接到單片機(jī)的端口,構(gòu)成3*4的矩陣鍵盤,當(dāng)按下按鍵時(shí),通過(guò)鍵盤掃描程序就可以知道哪個(gè)按鍵按下,從而執(zhí)行相應(yīng)的程序段。</p><p><b> 圖3.5按鍵電路</b></p><p> 鍵盤的操作,無(wú)論是按鍵或鍵盤都是利用機(jī)械觸點(diǎn)的合、斷作用。一個(gè)電壓信號(hào)通過(guò)機(jī)械觸點(diǎn)的閉合、斷開(kāi)過(guò)程。由于機(jī)械觸點(diǎn)的彈性作用,在閉合及斷開(kāi)瞬間均有抖動(dòng)過(guò)程,會(huì)出現(xiàn)一系列
55、負(fù)脈沖。抖動(dòng)時(shí)間的長(zhǎng)短,與開(kāi)關(guān)的機(jī)械特性有關(guān),一般為5—10ms。</p><p> 一組按鍵或鍵盤都要通過(guò)I/O口線查詢按鍵的開(kāi)關(guān)狀態(tài)。且獨(dú)立式按鍵電路配置靈活,</p><p> 軟件結(jié)構(gòu)簡(jiǎn)單,但每個(gè)按鍵必須占用一根I/O口線,在按鍵數(shù)量較時(shí),I/O口線浪費(fèi)較大。</p><p><b> 3.6校準(zhǔn)電路 </b></p>
56、<p> 數(shù)字鐘應(yīng)具有分校正和時(shí)校正功能,因此,應(yīng)截?cái)喾謧€(gè)位和時(shí)個(gè)位的直接計(jì)數(shù)通路,并采用正常計(jì)時(shí)信號(hào)與校正信號(hào)可以隨時(shí)切換的電路接入其中。校正信號(hào)可直接取自信號(hào)發(fā)生器產(chǎn)生的信號(hào);輸出端則與分或時(shí)個(gè)位計(jì)時(shí)輸入端相連。</p><p> 當(dāng)開(kāi)關(guān)打到一端時(shí),正常輸入信號(hào)可以順利通過(guò),故校時(shí)電路處于正常計(jì)時(shí)狀態(tài);當(dāng)開(kāi)關(guān)打到一端時(shí),信號(hào)產(chǎn)生校時(shí)電路處于校時(shí)狀態(tài)。</p><p>
57、<b> 4.系統(tǒng)軟件設(shè)計(jì)</b></p><p> 4.1主程序流程圖如下:</p><p><b> 控制過(guò)程描述:</b></p><p> 首先設(shè)置好單片機(jī)的初始模式,打開(kāi)定時(shí)器0,用定時(shí)器0產(chǎn)生秒信號(hào),程序正常運(yùn)行,當(dāng)秒信號(hào)達(dá)到60時(shí),分信號(hào)自動(dòng)加1,秒信號(hào)清0,;當(dāng)分信號(hào)到達(dá)60時(shí),時(shí)信號(hào)自動(dòng)加1,分信
58、號(hào)清0;當(dāng)時(shí)信號(hào)到達(dá)24時(shí),時(shí)、分、秒信號(hào)全部清0從頭開(kāi)始運(yùn)行。</p><p> 同時(shí),當(dāng)運(yùn)行中檢測(cè)到有暫停鍵按下,此時(shí)計(jì)數(shù)立即暫停,等待輸入數(shù)字鍵,調(diào)節(jié)當(dāng)前時(shí)間,取數(shù)字鍵前6個(gè)的鍵值作為設(shè)置的時(shí)間,然后等待開(kāi)始鍵按下繼續(xù)運(yùn)行</p><p> 4.2按鍵流程圖如下:</p><p><b> 圖4.2案件流程圖</b></p&g
59、t;<p><b> 控制過(guò)程描述:</b></p><p> 首先應(yīng)先按下暫停鍵,按鍵的功能才能啟動(dòng),然后按下一個(gè)數(shù)字鍵調(diào)節(jié)第一個(gè)數(shù)碼管時(shí)間,第一個(gè)數(shù)碼管代表小時(shí)的十位數(shù),只能設(shè)置為0、1、2,當(dāng)?shù)谝粋€(gè)鍵值是0或1時(shí),第二個(gè)鍵值可以在0~9之間任意選擇;當(dāng)?shù)谝粋€(gè)鍵值是2時(shí),第二個(gè)鍵值必須在0~4之間選擇;第三個(gè)鍵值代表分鐘的十位只能在0~5內(nèi)選擇,第四個(gè)鍵值可在0~9內(nèi)選
60、擇;第5個(gè)鍵值代表秒的十位,可在0~5內(nèi)選擇,第6個(gè)鍵值可在0~9內(nèi)選擇。選擇結(jié)束后等待開(kāi)始鍵按下,正常運(yùn)行。</p><p><b> 5.綜合調(diào)試</b></p><p><b> 5.1秒信號(hào)的測(cè)試</b></p><p> 用數(shù)字秒表測(cè)設(shè)定時(shí)間內(nèi)數(shù)字時(shí)鐘的計(jì)數(shù)個(gè)數(shù),每個(gè)計(jì)數(shù)值代表1S,結(jié)果如下:</p&
61、gt;<p><b> 誤差分析:</b></p><p> 測(cè)試時(shí)間為20s時(shí):error=20-20/20=0,此時(shí)無(wú)誤差</p><p> 測(cè)試時(shí)間為40s時(shí):error=40-((40+39+39)/3)/40=0.017</p><p> 測(cè)試時(shí)間為20s時(shí):error=60-59/60=0.017</p&
62、gt;<p> 綜上:信號(hào)的誤差很小,秒信號(hào)符合設(shè)計(jì)要求。</p><p> 5.2 時(shí)間設(shè)置功能的測(cè)試</p><p> 圖5.1 圖5.2</p><p> 圖5.3
63、 圖5.4</p><p> 說(shuō)明:數(shù)字時(shí)鐘開(kāi)機(jī)后如圖4.1所示從00:00:00開(kāi)始運(yùn)行,當(dāng)按下暫停鍵并依次按下鍵值為1,2,5,9,5,9設(shè)置時(shí)間為12:59:59,如圖4.2所示;當(dāng)按下開(kāi)始鍵后,從12:59:59處開(kāi)始運(yùn)行如圖4.3所示;當(dāng)達(dá)到23:59:59時(shí)自動(dòng)從圖4.3變?yōu)閳D4.1所示的時(shí)間。</p><p> 綜上:本設(shè)計(jì)滿足要求,能夠
64、實(shí)現(xiàn)數(shù)字時(shí)鐘的完整功能。</p><p> 由電路各個(gè)部分的子電路構(gòu)成的各個(gè)部分的功能,再由數(shù)字時(shí)鐘的系統(tǒng)原理框圖,可以清楚的知道了總體的電路情況。</p><p> 由總圖可以看出和清楚的整個(gè)數(shù)字時(shí)鐘的總體工作原理和整個(gè)工作過(guò)程:</p><p> 由555和RC構(gòu)成的振蕩器產(chǎn)生的秒脈沖信號(hào),進(jìn)入60進(jìn)制的“秒”計(jì)時(shí),“秒”的分位進(jìn)入60進(jìn)制的“分”計(jì)時(shí),由
65、分的“時(shí)”進(jìn)位進(jìn)入24進(jìn)制的“時(shí)”計(jì)時(shí)。</p><p> 在電路中,還有由門電路和開(kāi)關(guān)構(gòu)成的校時(shí)電路對(duì)電路的“時(shí)”,“分”進(jìn)行校時(shí),得到正確的時(shí)間。</p><p><b> 6.總結(jié)</b></p><p> 轉(zhuǎn)眼間,為期四周的課程設(shè)計(jì)就結(jié)束了。通過(guò)這四周的課程設(shè)計(jì),我拓寬了知識(shí)面,鍛煉了能力,綜合素質(zhì)得到較大提高。</p>
66、;<p> 課程設(shè)計(jì)的過(guò)程中,由于對(duì)理論掌握的不熟練,或者是操作過(guò)程中發(fā)生失誤,都會(huì)導(dǎo)致最后結(jié)果出不來(lái)。至善至美,是人類永恒的追求。但是,不從忘卻“金無(wú)足赤,人無(wú)完人”,我們換種思維方式,去惡亦是至善,改錯(cuò)亦為至美。在課程設(shè)計(jì)過(guò)程中,我們不斷發(fā)現(xiàn)錯(cuò)誤,不斷改正,不斷領(lǐng)悟,不斷獲取。最終的檢測(cè)調(diào)試環(huán)節(jié),本身就是在踐行“過(guò)而能改,善莫大焉”的知行觀。</p><p> 對(duì)我們自動(dòng)化專業(yè)的本科生來(lái)說(shuō),
67、實(shí)際能力的培養(yǎng)至關(guān)重要,而這種實(shí)際能力的培養(yǎng)單靠課堂教學(xué)是遠(yuǎn)遠(yuǎn)不夠的,必須從課堂走向?qū)嵺`。這也是一次預(yù)演和準(zhǔn)備畢業(yè)設(shè)計(jì)工作。通過(guò)課程設(shè)計(jì),讓我們找出自身狀況與實(shí)際需要的差距,并在以后的學(xué)習(xí)期間及時(shí)補(bǔ)充相關(guān)知識(shí),為求職與正式工作做好充分的知識(shí)、能力準(zhǔn)備,從而縮短從校園走向社會(huì)的心理轉(zhuǎn)型期。</p><p> 通過(guò)課程設(shè)計(jì),我更加明白了一個(gè)真理,“實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn)”。課程設(shè)計(jì)達(dá)到了專業(yè)學(xué)習(xí)的預(yù)期目的。課程設(shè)
68、計(jì)之后,我們普遍感到不僅實(shí)際動(dòng)手能力有所提高,更重要的是通過(guò)對(duì)設(shè)計(jì)過(guò)程的了解,進(jìn)一步激發(fā)了我們對(duì)專業(yè)知識(shí)的興趣,并能結(jié)合實(shí)際存在的問(wèn)題在專業(yè)領(lǐng)域內(nèi)進(jìn)行更深入的學(xué)習(xí)。</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 謝自美.電子線路設(shè)計(jì)·實(shí)驗(yàn)·測(cè)試[M].武漢:華中理工大學(xué)出版社,1992.</p><
69、p> [2] 何立民.單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,1993.</p><p> [3] 樓然笛.單片機(jī)開(kāi)發(fā)[M].北京:人民郵電出版社,1994.[4] 付家才.單片機(jī)控制工程實(shí)踐技術(shù)[M].北京:化學(xué)工業(yè)出版社 2004.3.[5] 李光才.單片機(jī)課程設(shè)計(jì)實(shí)例指導(dǎo)[M].北京:北京航空航天大學(xué)出版社2004.</p><p> [6]
70、 朱定華.單片機(jī)原理及接口技術(shù)實(shí)驗(yàn)[M].北京:北方交通大學(xué)出版社2002.11.</p><p> [7] 劉湘濤.江世明.單片機(jī)原理與應(yīng)用[M]. 北京:電子工業(yè)出版社,2006.</p><p> [8] 李廣弟,單片機(jī)基礎(chǔ),北京:北京航空航天大學(xué)出版社,2001</p><p> [9] 李朝青.單片機(jī)原理機(jī)接口技術(shù)[M],北京航空航天大學(xué)出版社
71、2005.1[10] 靳達(dá).單片機(jī)應(yīng)用系統(tǒng)開(kāi)發(fā)實(shí)力導(dǎo)航[M],人民郵電出版社2003.10</p><p> [11] 沈紅衛(wèi).基于單片機(jī)的智能系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[M],電子工業(yè)出版社2005.1</p><p><b> 致謝</b></p><p> 本課題在選題及進(jìn)行過(guò)程中得到張老師的悉心指導(dǎo)。論文行文過(guò)程中,張老師多次幫助我分析思路
72、,開(kāi)拓視角。張老師嚴(yán)謹(jǐn)求實(shí)的治學(xué)態(tài)度,踏實(shí)堅(jiān)韌的工作精神,將使我終生受益。在此,謹(jǐn)向張老師致以誠(chéng)摯的謝意和崇高的敬意。經(jīng)過(guò)一個(gè)月的時(shí)間,課程設(shè)計(jì)按照預(yù)期完成了,由于本人的知識(shí)水平有限,論文和設(shè)計(jì)中有遺漏和缺陷的地方懇請(qǐng)指正。</p><p> 感謝老師給了我莫大的幫助,在他悉心的指導(dǎo)和嚴(yán)格的要求下,作品和論文順利完成了。論文從選題和最終完成,凝結(jié)著導(dǎo)師的辛勤的汗水,他不辭勞苦的教導(dǎo)、嚴(yán)謹(jǐn)?shù)淖黠L(fēng)使我終生受益。在此
73、設(shè)計(jì)完成之際,謹(jǐn)向?qū)熀退袔椭^(guò)我的老師致以崇高的敬意和衷心的感謝。</p><p> 附錄:數(shù)字時(shí)鐘設(shè)計(jì)程序</p><p> #include<reg51.h></p><p> #include<intrins.h></p><p> #include<math.h></p>
74、<p> #define uchar unsigned char</p><p> #define uint unsigned int</p><p> sbit rs=P2^0;</p><p> sbit rw=P2^1;</p><p> sbit en=P2^2;</p><p> sbi
75、t reset=P1^5;</p><p> sbit sclk=P1^6;</p><p> sbit io=P1^7;</p><p> sbit DQ=P3^0;</p><p> uint tvalue;</p><p> uchar tflag;</p><p> uns
76、igned int disdata[4];</p><p> unsigned char led_seg[10]</p><p> ={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};//顯示段碼</p><p> uchar str1[]={"date: "};</p>
77、<p> uchar str2[]={"time: "};</p><p> uchar init[]={0x00,0x10,0x16,0x05,0x08,0x03,0x09};//秒,分,時(shí) </p><p> void delay()</p><p><b> {</b></p><
78、p><b> uchar j;</b></p><p> for(j=250;j>0;j--);</p><p><b> }</b></p><p> void en_toggle()</p><p><b> {</b></p><
79、p><b> en=0;</b></p><p> //_nop_();</p><p><b> delay();</b></p><p><b> en=1;</b></p><p><b> delay();</b></p>
80、;<p> // _nop_();</p><p><b> en=0;</b></p><p> } //注意必須加延時(shí),否則會(huì)出問(wèn)題的</p><p> void is_ready()</p><p><b> {</b></p>&
81、lt;p> P0=0x00;//設(shè)置為輸入口 //注意:現(xiàn)實(shí)中應(yīng)該送0xff</p><p><b> rs=0;</b></p><p><b> rw=1;</b></p><p><b> en=1;</b></p><p> while(P0&0
82、x80);</p><p><b> en=0;</b></p><p><b> }</b></p><p> void write_cmd(uchar cmd)//寫(xiě)指令//</p><p><b> {</b></p><p> is_r
83、eady();</p><p><b> rs=0;</b></p><p><b> rw=0;</b></p><p><b> P0=cmd;</b></p><p> en_toggle();</p><p><b> _no
84、p_();</b></p><p><b> }</b></p><p> void write_data(uchar indata)//寫(xiě)數(shù)據(jù)//</p><p><b> {</b></p><p> is_ready();</p><p><b
85、> rs=1;</b></p><p><b> rw=0;</b></p><p> P0=indata;</p><p> en_toggle();</p><p><b> _nop_();</b></p><p><b> }&
86、lt;/b></p><p> void write_str(uchar addr,uchar *p)</p><p><b> {</b></p><p><b> uchar i; </b></p><p> write_cmd(addr);</p><p>
87、; while(p[i]!='\0')</p><p> {write_data(p[i]);</p><p><b> i++;</b></p><p><b> }</b></p><p><b> }</b></p><p&g
88、t; void write_position(uchar row,uchar col)</p><p><b> {uchar p;</b></p><p> if(row==1)</p><p> {p=0x80+col-1;</p><p> write_cmd(p);}</p><p&
89、gt;<b> else</b></p><p> {p=0xc0+col-1;</p><p> write_cmd(p);</p><p><b> }</b></p><p><b> }</b></p><p> void init_
90、lcd()//初始化//</p><p><b> {</b></p><p> write_cmd(0x38);</p><p> write_cmd(0x0c);</p><p> write_cmd(0x06);</p><p> write_cmd(0x01);//清屏幕<
91、/p><p><b> }</b></p><p> void write_byte(uchar inbyte)</p><p><b> {</b></p><p><b> uchar i;</b></p><p> for(i=8;i>
92、0;i--)</p><p><b> {</b></p><p> sclk=0; //寫(xiě)的時(shí)候低電平改變數(shù)據(jù)</p><p> if(inbyte&0x01)</p><p><b> io=1;</b></p><p><b> else
93、</b></p><p><b> io=0; </b></p><p> sclk=1; //寫(xiě)的時(shí)候高電平,把數(shù)據(jù)寫(xiě)入ds1302</p><p><b> _nop_();</b></p><p> inbyte=inbyte>>1;</p>&
94、lt;p><b> }</b></p><p><b> }</b></p><p> void wr_com(unsigned char com)//寫(xiě)指令//</p><p> { is_ready();</p><p><b> rs=0;</b><
95、/p><p><b> rw=0;</b></p><p><b> P0=com;</b></p><p><b> delay();</b></p><p><b> en=1;</b></p><p><b>
96、 delay();</b></p><p><b> en=0;</b></p><p><b> }</b></p><p> void wr_dat(unsigned char dat)//寫(xiě)數(shù)據(jù)//</p><p> { delay();</p><p&
97、gt;<b> rs=1;</b></p><p><b> rw=0;</b></p><p><b> en=0;</b></p><p><b> P0=dat;</b></p><p> en_toggle();</p>&
98、lt;p><b> _nop_();</b></p><p><b> }</b></p><p> void display(unsigned char *p)//顯示//</p><p><b> {</b></p><p> while(*p!='
99、\0')</p><p><b> {</b></p><p> wr_dat(*p);</p><p><b> p++;</b></p><p><b> delay();</b></p><p><b> }</b
100、></p><p><b> }</b></p><p> init_play()//初始化顯示//</p><p> { init_lcd();</p><p> wr_com(0x80);</p><p> display(str1);</p><p>
101、 wr_com(0xc0);</p><p> display(str2);</p><p><b> }</b></p><p> //注意點(diǎn):sclk的上升沿輸入數(shù)據(jù),sclk的下跳沿輸出數(shù)據(jù)</p><p> //讀寫(xiě)時(shí)都是從第0位開(kāi)始</p><p> uchar read_b
102、yte() //sclk的下跳沿讀數(shù)據(jù)</p><p><b> {</b></p><p> uchar i,temp=0; </p><p> io=1; //設(shè)置為輸入口</p><p> for(i=7;i>0;i--)</p><p><b>
103、 {</b></p><p><b> sclk=0;</b></p><p><b> if(io==1)</b></p><p> temp=temp|0x80;</p><p><b> else</b></p><p> t
104、emp=temp&0x7f;</p><p> sclk=1; //產(chǎn)生下跳沿</p><p> temp=temp>>1;</p><p><b> }</b></p><p> return (temp);</p><p><b> }<
105、;/b></p><p> void write_ds1302(uchar cmd,uchar indata)</p><p><b> {</b></p><p><b> reset=1;</b></p><p> write_byte(cmd);</p><p
106、> write_byte(indata);</p><p><b> reset=0;</b></p><p><b> sclk=0;</b></p><p><b> }</b></p><p> uchar read_ds1302(uchar addr)&
107、lt;/p><p><b> {</b></p><p> uchar backdata;</p><p><b> reset=1;</b></p><p> write_byte(addr);</p><p> backdata=read_byte();//先寫(xiě)地址
108、,然后讀數(shù)據(jù)</p><p><b> reset=0;</b></p><p><b> sclk=0;</b></p><p> return (backdata);</p><p><b> }</b></p><p> //------
109、------設(shè)置初始時(shí)間-------------------</p><p> void set_ds1302(uchar addr,uchar *p,uchar n)//寫(xiě)入n個(gè)數(shù)據(jù)</p><p><b> {</b></p><p> write_ds1302(0x8e,0x00);//寫(xiě)控制字,允許寫(xiě)操作</p>
110、<p> for(;n>0;n--)</p><p> {write_ds1302(addr,*p);</p><p><b> p++;</b></p><p> addr=addr+2;</p><p><b> }</b></p><p>
111、write_ds1302(0x8e,0x80);//寫(xiě)保護(hù),不允許寫(xiě)</p><p><b> }</b></p><p> //----------- 讀取當(dāng)前時(shí)間-------------------</p><p> void read_nowtime(uchar addr,uchar *p,uchar n)</p>
112、<p><b> {</b></p><p> for(;n>0;n--)</p><p><b> {</b></p><p> *p=read_ds1302(addr);</p><p><b> p++;</b></p><p
113、> addr=addr+2;</p><p><b> } </b></p><p><b> }</b></p><p> void init_ds1302()</p><p><b> {</b></p><p><b
114、> reset=0;</b></p><p><b> sclk=0;</b></p><p> write_ds1302(0x80,0x00);//寫(xiě)控制字,允許寫(xiě)</p><p> write_ds1302(0x90,0x00); </p><p><b> }</b>
115、;</p><p> //-----------ds1302模塊結(jié)束-------------------</p><p> /******************************ds18b20*******************************/</p><p> void delay_18B20(unsigned int i)//延時(shí)1微
116、秒//</p><p><b> {</b></p><p> while(i--);</p><p><b> }</b></p><p> void ds1820rst() /*ds1820復(fù)位*/</p><p> { unsigned char x=0;&
117、lt;/p><p> DQ = 1; //DQ復(fù)位</p><p> delay_18B20(2); //延時(shí)</p><p> DQ = 0; //DQ拉低//</p><p> delay_18B20(50); //精確延時(shí)大于480us//</p><p> DQ = 1
118、; //拉高//</p><p> delay_18B20(20); </p><p><b> } </b></p><p> uchar ds1820rd() /*讀數(shù)據(jù)*/</p><p><b> { </b></p><p> unsi
119、gned char i=0;</p><p> unsigned char dat = 0;</p><p> for (i=8;i>0;i--)</p><p><b> { </b></p><p> DQ = 0; //給脈沖信號(hào)//</p><p><b>
120、dat>>=1;</b></p><p> DQ = 1; //給脈沖信號(hào)//</p><p><b> if(DQ)</b></p><p> dat|=0x80;</p><p> delay_18B20(5);</p><p><b> }<
121、/b></p><p> return(dat);</p><p><b> }</b></p><p> void ds1820wr(uchar wdata)/*寫(xiě)數(shù)據(jù)*/</p><p><b> {</b></p><p> unsigned char
122、i=0;</p><p> for (i=8; i>0; i--)</p><p><b> {</b></p><p><b> DQ = 0;</b></p><p> DQ = wdata&0x01;</p><p> delay_18B20(5
123、);</p><p><b> DQ = 1;</b></p><p> wdata>>=1;</p><p><b> }</b></p><p><b> }</b></p><p> read_temp()</p>
124、<p><b> {</b></p><p> uchar a,b;</p><p> ds1820rst(); </p><p> ds1820wr(0xcc);</p><p> ds1820wr(0x44);</p><p> ds1820rst();
125、 </p><p> ds1820wr(0xcc); </p><p> ds1820wr(0xbe); </p><p> a=ds1820rd();</p><p> b=ds1820rd();</p><p><b> tvalue=b;</b></p><p&
126、gt; tvalue<<=8;</p><p> tvalue=tvalue|a;</p><p> if(tvalue<0x0fff)</p><p> tflag=0; </p><p><b> else</b></p><p><b>
127、{</b></p><p> tvalue=~tvalue+1; </p><p><b> tflag=1;</b></p><p><b> }</b></p><p> tvalue*=6.25;</p><p> return(tvalue);
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)字時(shí)鐘課程設(shè)計(jì)
- 數(shù)字時(shí)鐘課程設(shè)計(jì)
- 課程設(shè)計(jì)--數(shù)字時(shí)鐘
- 數(shù)字時(shí)鐘課程設(shè)計(jì)
- 數(shù)字時(shí)鐘課程設(shè)計(jì)
- 數(shù)字時(shí)鐘課程設(shè)計(jì)
- 數(shù)字電子課程設(shè)計(jì)--數(shù)字時(shí)鐘
- 數(shù)字邏輯課程設(shè)計(jì)---數(shù)字時(shí)鐘
- eda數(shù)字時(shí)鐘課程設(shè)計(jì)
- eda數(shù)字時(shí)鐘課程設(shè)計(jì)
- 數(shù)字時(shí)鐘課程設(shè)計(jì)報(bào)告
- 數(shù)字時(shí)鐘課程設(shè)計(jì)論文
- 數(shù)字時(shí)鐘課程設(shè)計(jì)報(bào)告
- 數(shù)字時(shí)鐘課程設(shè)計(jì)報(bào)告
- 數(shù)字時(shí)鐘課程設(shè)計(jì)3
- 數(shù)字時(shí)鐘課程設(shè)計(jì)報(bào)告
- 數(shù)字時(shí)鐘課程設(shè)計(jì)--數(shù)字時(shí)鐘的設(shè)計(jì)與制作
- 硬件課程設(shè)計(jì)--數(shù)字時(shí)鐘設(shè)計(jì)
- 數(shù)字時(shí)鐘課程設(shè)計(jì)報(bào)告
- 數(shù)字時(shí)鐘課程設(shè)計(jì)全文
評(píng)論
0/150
提交評(píng)論