

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 基于單片機的電子鐘的設計</p><p> 重慶XXX大學畢業(yè)論文</p><p><b> 學生姓名:</b></p><p><b> 指導教師: </b></p><p> ?! I(yè):機電一體化</p><p><b> 二O
2、一二年四月</b></p><p><b> 摘 要</b></p><p> 20世紀末電子技術(shù)獲得了飛速的發(fā)展,在其推動下,現(xiàn)代電子產(chǎn)品幾乎滲透了社會的各個領(lǐng)域,有力地推動了社會生產(chǎn)力的發(fā)展和社會信息化程度的提高,同時也使現(xiàn)代電子產(chǎn)品性能進一步提高,產(chǎn)品更新?lián)Q代的節(jié)奏也越來越快。</p><p> 現(xiàn)代生活的人們越來越
3、重視起了時間觀念,可以說是時間和金錢劃上了等號。對于那些對時間把握非常嚴格和準確的人或事來說,時間的不準確會帶來非常大的麻煩,所以以數(shù)碼管為顯示器的時鐘比指針式的時鐘表現(xiàn)出了很大的優(yōu)勢。數(shù)碼管顯示的時間簡單明了而且讀數(shù)快、時間準確顯示到秒。而機械式的依賴于晶體震蕩器,可能會導致誤差。</p><p> 數(shù)字鐘是采用數(shù)字電路實現(xiàn)對“時”、“分”、“秒”數(shù)字顯示的計時裝置。數(shù)字鐘的精度、穩(wěn)定度遠遠超過老式機械鐘。在
4、這次設計中,我們采用LED數(shù)碼管顯示時、分、秒,以24小時計時方式,根據(jù)數(shù)碼管動態(tài)顯示原理來進行顯示,利用AT89C51讀取DS1302時鐘芯片的信息。在此次設計中,電路具有顯示時間的其本功能,還可以實現(xiàn)對時間的調(diào)整。數(shù)字鐘是其小巧,價格低廉,走時度高,使用方便,功能多,便于集成化而受廣大消費的喜愛,因此得到了廣泛的使用。</p><p> 關(guān)鍵字:時鐘、單片機、精確</p><p>&
5、lt;b> 目 錄</b></p><p> 摘 要…………………………………………………………………………… 0</p><p> 1 緒 論……………………………………………………………………………… 1</p><p> 1.1數(shù)字電子鐘的背景1</p><p> 1.2數(shù)字電子鐘的意義1&l
6、t;/p><p> 1.3數(shù)字電子鐘的應用1</p><p> 1.4系統(tǒng)組成模塊2</p><p> 2 控制模塊…………………………………………………………………………… 3</p><p> 2.1 SCT89C52簡介3</p><p> 2.2管腳及功能3</p><p>
7、; 2.3單片機的最小系統(tǒng)5</p><p> 2.3.1時鐘電路5</p><p> 2.3.2復位及復位電路5</p><p> 2.4 內(nèi)存狀態(tài)7</p><p><b> 2.4應用領(lǐng)域7</b></p><p> 3時鐘模塊………………………………………………………
8、…………………… 9</p><p> 3.1 時鐘方法的論證與選擇9</p><p> 3.2 DS1302時鐘芯片9</p><p> 3.2.1 DS1302簡介9</p><p> 3.2.2 引腳功能及結(jié)構(gòu)9</p><p> 3.2.3 DS1302的控制字節(jié)10</p>
9、<p> 3.2.4 數(shù)據(jù)輸入輸出(I/O)10</p><p> 3.2.5 DS1302的寄存器10</p><p> 4 顯示模塊……………………………………………………………………………12</p><p> 4.1 顯示方法的論證與選擇12</p><p> 4.2 LED數(shù)碼管的結(jié)構(gòu)與工作原理12&
10、lt;/p><p> 4.3 7段數(shù)碼管驅(qū)動方法13</p><p> 5系統(tǒng)總體方案……………………………………………………………………… 15</p><p> 5.1系統(tǒng)框架15</p><p> 5.2系統(tǒng)原理圖及功能15</p><p> 5.2.1時鐘模塊原理圖設計15</p>
11、<p> 5.2.2顯示模塊原理圖設計16</p><p> 5.2.3調(diào)整模塊原理圖設計16</p><p> 附錄1:電路原理圖……………………………………………………………………18</p><p> 附錄2:程序代碼…………………………………………………………………… 19</p><p> 致 謝……………
12、…………………………………………………………………25</p><p> 參考文獻………………………………………………………………………………26</p><p><b> 1 緒 論</b></p><p> 1.1數(shù)字電子鐘的背景 </p><p> 20世紀末電子技術(shù)獲得了飛速的發(fā)展,在其推動下,
13、現(xiàn)代電子產(chǎn)品幾乎滲透了社會的各個領(lǐng)域,有力地推動了社會生產(chǎn)力的發(fā)展和社會信息化程度的提高,同時也使現(xiàn)代電子產(chǎn)品性能進一步提高,產(chǎn)品更新?lián)Q代的節(jié)奏也越來越快。 時間對人們來說總是那么寶貴,工作的忙碌性和繁雜性容易使人忘記當前的時間。忘記了要做的事情,當事情不是很重要的時候,這種遺忘無傷大雅。但是,一旦重要事情,一時的耽誤可能釀成大禍。</p><p> 目前,單片機正朝著高性能和多品種方向發(fā)展趨勢將是進一步向著C
14、MOS化、低功耗、小體積、大容量、高性能、低價格和外圍電路內(nèi)裝化等幾個方面發(fā)展。下面是單片機的主要發(fā)展趨勢。單片機應用的重要意義還在于,它從根本上改變了傳統(tǒng)的控制系統(tǒng)設計思想和設計方法。從前必須由模擬電路或數(shù)字電路實現(xiàn)的大部分功能,現(xiàn)在已能用單片機通過軟件方法來實現(xiàn)了。這種軟件代替硬件的控制技術(shù)也稱為微控制技術(shù),是傳統(tǒng)控制技術(shù)的一次革命。</p><p> 單片機模塊中最常見的是數(shù)字鐘,數(shù)字鐘是一種用數(shù)字電路技
15、術(shù)實現(xiàn)時、分、秒計時的裝置,與機械式時鐘相比具有更高的準確性和直觀性,且無機械裝置,具有更更長的使用壽命,因此得到了廣泛的使用。</p><p> 1.2數(shù)字電子鐘的意義</p><p> 數(shù)字鐘是采用數(shù)字電路實現(xiàn)對時、分、秒數(shù)字顯示的計時裝置,廣泛用于個人、家庭、車站、碼頭辦公室等公共場所,成為人們?nèi)粘I钪胁豢缮俚谋匦杵?,由于?shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應用,使得數(shù)字鐘
16、的精度,遠遠超過老式鐘表, 鐘表的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便,而且大大地擴展了鐘表原先的報時功能。諸如定時自動報警、按時自動打鈴、時間程序自動控制、定時廣播、自動起閉路燈、定時開關(guān)烘箱、通斷動力設備、甚至各種定時電氣的自動啟用等,所有這些,都是以鐘表數(shù)字化為基礎的。因此,研究數(shù)字鐘及擴大其應用,有著非?,F(xiàn)實的意義。</p><p> 1.3數(shù)字電子鐘的應用 </p><p>
17、 數(shù)字鐘已成為人們?nèi)粘I钪斜夭豢缮俚谋匦杵?,廣泛用于個人家庭以及車站、碼頭、劇場、辦公室等公共場所,給人們的生活、學習、工作、娛樂帶來極大的方便。由于數(shù)字集成電路技術(shù)的發(fā)展和采用了先進的石英技術(shù),使數(shù)字鐘具有走時準確、性能穩(wěn)定、攜帶方便等優(yōu)點,它還用于計時、自動報時及自動控制等各個領(lǐng)域。</p><p><b> 1.4系統(tǒng)組成模塊</b></p><p>
18、根據(jù)功能要求及系統(tǒng)分析,此系統(tǒng)由四大模塊組成控制器模塊、顯示模塊、時鐘模塊、調(diào)整模塊組成,第一節(jié)將介紹控制模塊,以STC89C52為模板,第二節(jié)將對時鐘模塊進行介紹,第三節(jié)介紹顯示模塊,在現(xiàn)在的應用中的幾種常見的幾種顯示器件。第四節(jié)將進行本設計的具體功能和原理。</p><p><b> 2 控制模塊</b></p><p> 2.1 SCT89C52簡介<
19、/p><p> 單片機微型計算機是微型計算機的一個重要分支,也是頗具生命力的機種帶有AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS8位微處理器,俗稱單片機。單片機經(jīng)過1、2、3、3代的發(fā)展,正朝著多功能、高性能、低電壓、低功耗、低價格、大存儲容量、強I/O功能及較好的結(jié)
20、構(gòu)兼容性方向發(fā)展。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,STC 89C52是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。</p><p> 圖2.1 STC89C51外觀 圖2.2 管腳排列</p><p&g
21、t;<b> 2.2管腳及功能</b></p><p> STC89C52有兩種封裝形式,其中一種采用DIP40封裝形式(如圖2.2),其具體管腳功能如其下。</p><p> ① 主電源引腳(2根)</p><p> VCC(Pin40):電源輸入,接+5V電源</p><p> GND(Pin20):接地線
22、</p><p> ?、谕饨泳д褚_(2根)</p><p> XTAL1(Pin19):片內(nèi)振蕩電路的輸入端</p><p> XTAL2(Pin20):片內(nèi)振蕩電路的輸出端</p><p><b> ?、劭刂埔_(4根)</b></p><p> RST/VPP(Pin9):復位引腳,引
23、腳上出現(xiàn)2個機器周期的高電平將使單片機復位。</p><p> ALE/PROG(Pin30):地址鎖存允許信號</p><p> PSEN(Pin29):外部存儲器讀選通信號</p><p> EA/VPP(Pin31):程序存儲器的內(nèi)外部選通,接低電平從外部程序存儲器讀指令,如果接高電平則從內(nèi)部程序存儲器讀指令。</p><p>
24、?、芸删幊梯斎?輸出引腳(32根)</p><p> STC89C52單片機有4組8位的可編程I/O口,分別位P0、P1、P2、P3口,每個口有8位(8根引腳),共32根。</p><p> PO口(Pin39~Pin32):8位雙向I/O口線,名稱為P0.0~P0.7</p><p> P1口(Pin1~Pin8):8位準雙向I/O口線,名稱為P1.0~P1
25、.7 </p><p> P2口(Pin21~Pin28):8位準雙向I/O口線,名稱為P2.0~P2.7 </p><p> P3口(Pin10~Pin17):8位準雙向I/O口線,名稱為P3.0~P3.7</p><p> STC89C52主要功能如表2.1所示。</p><p> 表2.1 STC89C52主要功能</p&
26、gt;<p> 2.3單片機的最小系統(tǒng)</p><p><b> 2.3.1時鐘電路</b></p><p> STC89C52內(nèi)部有一個用于構(gòu)成振蕩器的高增益反相放大器,引腳RXD和TXD分別是此放大器的輸入端和輸出端。時鐘可以由內(nèi)部方式產(chǎn)生或外部方式產(chǎn)生。內(nèi)部方式的時鐘電路如圖2.3 (a) 所示,在RXD和TXD引腳上外接定時元件,內(nèi)部振蕩器
27、就產(chǎn)生自激振蕩。定時元件通常采用石英晶體和電容組成的并聯(lián)諧振回路。晶體振蕩頻率可以在1.2~12MHz之間選擇,電容值在5~30pF之間選擇,電容值的大小可對頻率起微調(diào)的作用。</p><p> 外部方式的時鐘電路如圖2.3(b)所示,RXD接地,TXD接外部振蕩器。對外部振蕩信號無特殊要求,只要求保證脈沖寬度,一般采用頻率低于12MHz的方波信號。片內(nèi)時鐘發(fā)生器把振蕩頻率兩分頻,產(chǎn)生一個兩相時鐘P1和P2,供
28、單片機使用。</p><p> 示,RXD接地,TXD接外部振蕩器。對外部振蕩信號無特殊要求,只要求保證脈沖寬度,一般采用頻率低于12MHz的方波信號。片內(nèi)時鐘發(fā)生器把振蕩頻率兩分頻,產(chǎn)生一個兩相時鐘P1和P2,供單片機使用。</p><p> RXD接地,TXD接外部振蕩器。對外部振蕩信號無特殊要求,只要求保證脈沖寬度,一般采用頻率低于12MHz的方波信號。片內(nèi)時鐘發(fā)生器把振蕩頻率兩
29、分頻,產(chǎn)生一個兩相時鐘P1和P2,供單片機使用。</p><p> ?。╝)內(nèi)部方式時鐘電路 (b)外部方式時鐘電路</p><p><b> 圖2.3時鐘電路</b></p><p> 2.3.2復位及復位電路</p><p><b> (1)復位操作</b></p>
30、;<p> 復位是單片機的初始化操作。其主要功能是把PC初始化為0000H,使單片機從0000H單元開始執(zhí)行程序。除了進入系統(tǒng)的正常初始化之外,當由于程序運行出錯或操作錯誤使系統(tǒng)處于死鎖狀態(tài)時,為擺脫困境,也需按復位鍵重新啟動。</p><p> ?。?)復位信號及其產(chǎn)生</p><p> RST引腳是復位信號的輸入端。復位信號是高電平有效,其有效時間應持續(xù)24個振蕩周期
31、(即二個機器周期)以上。若使用頗率為12MHz的晶振,則復位信號持續(xù)時間應超過2us才能完成復位操作。</p><p> 產(chǎn)生復位信號的電路邏輯如圖2.4所示:</p><p> 圖2.4 復位信號的電路邏輯圖</p><p> 整個復位電路包括芯片內(nèi)、外兩部分。外部電路產(chǎn)生的復位信號(RST)送至施密特觸發(fā)器,再由片內(nèi)復位電路在每個機器周期的S5P2時刻對
32、施密特觸發(fā)器的輸出進行采樣,然后才得到內(nèi)部復位操作所需要的信號。</p><p> 復位操作有上電自動復位相按鍵手動復位兩種方式。上電自動復位是通過外部復位電路的電容充電來實現(xiàn)的,其電路如圖2.5(a)所示。這佯,只要電源Vcc的上升時間不超過1ms,就可以實現(xiàn)自動上電復位,即接通電源就成了系統(tǒng)的復位初始化。</p><p> 按鍵手動復位有電平方式和脈沖方式兩種。其中,按鍵電平復位是
33、通過使復位端經(jīng)電阻與Vcc電源接通而實現(xiàn)的,其電路如圖2.5(b)所示;而按鍵脈沖復位則是利用RC微分電路產(chǎn)生的正脈沖來實現(xiàn)的,其電路如圖2.5(c)所示:</p><p> ?。╝)上電復位 (b)按鍵電平復位 (c)按鍵脈沖復位</p><p><b> 圖2.5復位電路</b></p><p> 上述電路圖中的電
34、阻、電容參數(shù)適用于12MHz晶振,能保證復位信號高電平持續(xù)時間大于2個機器周期。</p><p><b> 2.4 內(nèi)存狀態(tài)</b></p><p> 機算計的存儲器地址空間有兩種結(jié)構(gòu)形式:普林斯頓結(jié)構(gòu)和哈佛結(jié)構(gòu)。51單片機系列通常采用哈佛結(jié)構(gòu),其特點ROM和RAM被安排在兩個不同的地址空間,RO和MRAM可以有相同的地址,但CPU訪問ROM和RAM使用的是不同的
35、訪問指令。</p><p> 從物理地址上看,STC89C52單片機共有4個存儲空間,即片內(nèi)程序存儲器(簡稱片內(nèi)ROM),片外程序存儲器(簡稱片外ROM),片內(nèi)數(shù)據(jù)存儲器(簡稱片內(nèi)RAM),片外數(shù)據(jù)存儲器(簡稱片外RAM)。 </p><p> 由于片內(nèi)和片外程序存儲器是統(tǒng)一編址的,因此從邏輯的地址空間來看,STC89C52系列單片機只有三個存儲器空間:程序存儲器、片內(nèi)數(shù)據(jù)儲存器和片外
36、數(shù)據(jù)儲存器。</p><p> 為區(qū)別不同的存儲單元,需要使用不同的編程指令。其中MOV指令用于訪問片內(nèi)數(shù)據(jù)存儲器,MPVC指令用于訪問片外數(shù)據(jù)存儲器。</p><p> 片內(nèi)ROM地址空間為000H-0FFFH(共4KB),片外ROM地址空間為0000H-FFFFH(共64KB)。片內(nèi)RAM地址空間為00H-7符號(共128B),特殊功能寄存器占用片內(nèi)RAM的80H-FFH地址空間(
37、128B),片外RAM地址空間為0000H-FFFFH(64KB)。</p><p><b> 2.4應用領(lǐng)域</b></p><p><b> ?。?)家用電器領(lǐng)域</b></p><p> 用單片機控制系統(tǒng)取代傳統(tǒng)的模擬和數(shù)字控制電路,使家用電器(如洗衣機、空調(diào)、冰箱、微波爐、和電視機等)功能更完善,更加智能化和易
38、于使用。</p><p> (2)辦公自動化領(lǐng)域</p><p> 單片機作為嵌入式系統(tǒng)廣泛應用于現(xiàn)代辦公設備,如計算機的鍵盤、磁盤驅(qū)動、打印機、復印機、電話機和傳真機等。 </p><p><b> ?。?)工業(yè)自動化</b></p><p> 在工業(yè)控制和機電一體化控制系統(tǒng)中,除了采用工控計算機外,很多都是以單
39、片機為核心的單片機和多機系統(tǒng)。</p><p> (4)智能儀表與集成智能傳感器</p><p> 目前在各種電氣測量儀表中普遍采用了單片機應用系統(tǒng)來代替?zhèn)鹘y(tǒng)的測量系統(tǒng),使得測量系統(tǒng)具有存儲、數(shù)據(jù)處理、查詢及聯(lián)網(wǎng)等智能功能。將單片機和傳感器相結(jié)合,可以構(gòu)成新一代的智能傳感器。它將傳感器變換后的物理量作進一步的變化和處理,使其成為數(shù)字信號,可以遠距離傳輸并與計算機接口。</p>
40、;<p> ?。?)現(xiàn)代交通與航空航天領(lǐng)域</p><p> 通常應用于電子綜合顯示系統(tǒng)、動力監(jiān)控系統(tǒng)、自動駕駛系統(tǒng)、通信系統(tǒng)以及運行監(jiān)視系統(tǒng)等。這些領(lǐng)域?qū)w積、功耗、穩(wěn)定性和實時性的要求往往比商用系統(tǒng)還要高,因此采用單片機系統(tǒng)更加重要。</p><p><b> 3時鐘模塊</b></p><p> 3.1 時鐘方法的論證
41、與選擇</p><p> 案一:利用SCT89C52的定時中斷進行計時,但此方案的計時不精確,對于時間精度要求高的場合不太適用,所以此設計不選用該方案。</p><p> 方案二:利用DS1302時鐘芯片,利用CPU對其進行讀寫,此方案計時精度高,相比應用范圍廣,所以選用此方案。</p><p> 3.2 DS1302時鐘芯片</p><p
42、> 3.2.1 DS1302簡介</p><p> DS1302 是美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實時時鐘電路,它可以對年、月、日、周日、時、分、秒進行計時,具有閏年補償功能,工作電壓為2.5V~5.5V。采用三線接口與CPU進行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或RAM數(shù)據(jù)。DS1302內(nèi)部有一個31×8的用于臨時性存放數(shù)據(jù)的RAM寄存器。DS13
43、02是DS1202的升級產(chǎn)品,與DS1202兼容,但增加了主電源/后背電源雙電源引腳,同時提供了對后背電源進行涓細電流充電的能力。</p><p> 3.1 DS1302外觀</p><p> 3.2.2 引腳功能及結(jié)構(gòu)</p><p> DS1302的引腳排列,其中Vcc1為后備電源,VCC2為主電源。在主電源關(guān)閉的情況下,也能保持時鐘的連續(xù)運行。DS130
44、2由Vcc1或Vcc2兩者中的較大者供電。當Vcc2大于Vcc1+0.2V時,Vcc2給DS1302供電。當Vcc2小于Vcc1時,DS1302由Vcc1供電。X1和X2是振蕩源,外接32.768kHz晶振。RST是復位/片選線,通過把RST輸入驅(qū)動置高電平來啟動所有的數(shù)據(jù)傳送。RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當RST為高電平時,所有的數(shù)
45、據(jù)傳送被初始化,允許對DS1302進行操作。如果在傳送過程中RST置為低電平,則會終止此次數(shù)據(jù)傳送,I/O引腳變?yōu)楦咦钁B(tài)。上電運行時,在Vcc>2.0V之前,RST必須保持低電平。只有在SCLK為低電平時,才能將RST置為高電平。I/O為串行數(shù)據(jù)輸入輸出端(雙向),后面有詳細說明。SCLK為時鐘輸入端。 下圖為DS1302的引腳功能圖及外部電路的電路圖:</p><p> 3.2 DS1302管腳排列 &
46、lt;/p><p> 3.2.3 DS1302的控制字節(jié) </p><p> DS1302 的控制字如圖2所示??刂谱止?jié)的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入DS1302中,位6如果為0,則表示存取日歷時鐘數(shù)據(jù),為1表示存取RAM數(shù)據(jù);位5至位1指示操作單元的地址;最低有效位(位0)如為0表示要進行寫操作,為1表示進行讀操作,控制字節(jié)總是從最低位開始輸出。 <
47、/p><p> 3.2.4 數(shù)據(jù)輸入輸出(I/O) </p><p> 在控制指令字輸入后的下一個SCLK時鐘的上升沿時,數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入從低位即位0開始。同樣,在緊跟8位的控制指令字后的下一個SCLK脈沖的下降沿讀出DS1302的數(shù)據(jù),讀出數(shù)據(jù)時從低位0位到高位7。 </p><p> 3.2.5 DS1302的寄存器 </p>&
48、lt;p> DS1302有12個寄存器,其中有7個寄存器與日歷、時鐘相關(guān),存放的數(shù)據(jù)位為BCD碼形式,其日歷、時間寄存器及其控制字見表1。</p><p> 此外,DS1302 還有年份寄存器、控制寄存器、充電寄存器、時鐘突發(fā)寄存器及與RAM相關(guān)的寄存器等。時鐘突發(fā)寄存器可一次性順序讀寫除充電寄存器外的所有寄存器內(nèi)容。 DS1302與RAM相關(guān)的寄存器分為兩類:一類是單個RAM單元,共31個,每個單元組
49、態(tài)為一個8位的字節(jié),其命令控制字為C0H~FDH,其中奇數(shù)為讀操作,偶數(shù)為寫操作;另一類為突發(fā)方式下的RAM寄存器,此方式下可一次性讀寫所有的RAM的31個字節(jié),命令控制字為FEH(寫)、FFH(讀)。</p><p><b> 4 顯示模塊</b></p><p> 4.1 顯示方法的論證與選擇</p><p> 方案一:LED數(shù)碼管,
50、LED數(shù)碼管實際上是由七個發(fā)光管組成8字形構(gòu)成的,加上小數(shù)點就是8個。這些段分別由字母a,b,c,d,e,f,g,dp來表示。此方法實現(xiàn)簡單、顯示清楚,而且價格便宜題目所需功能的要求,因此此方案為最佳方案。</p><p> 方案二:LCD1602,應用極為廣泛的小型液晶,該模塊操作簡單、指令明確、控制方便,作為顯示完全可以滿足要求,但由于題目中要求簡單,因此無法選用。</p><p>
51、 方案三:LCD12864,12864是128*64點陣液晶模塊的點陣數(shù)簡稱,適用于各類儀器,小型設備的顯示領(lǐng)域,但結(jié)合題目而言,12864相比價格較貴,所以不必采用此方案。</p><p> 方案四:全彩LCD,全彩是目前的發(fā)展趨勢,但由于我們初定是采用單片機作為主控芯片,與主流彩屏所需的ARM控制器相比有很大差距,因此不予考慮。</p><p> 綜合以上因素,考慮采用方案一。
52、</p><p> 4.2 LED數(shù)碼管的結(jié)構(gòu)與工作原理</p><p> 7段數(shù)碼管一般由8個發(fā)光二極管組成,其中由7個細長的發(fā)光二極管組成數(shù)字顯示,另外一個圓形的發(fā)光二極管顯示小數(shù)點。</p><p><b> 共陰極</b></p><p><b> 共陽極</b></p>
53、<p> 圖4.1管腳排列圖 圖4.2 內(nèi)部結(jié)構(gòu)圖</p><p> 當發(fā)光二極管導通時,相應的一個點或一個筆畫發(fā)光??刂葡鄳亩O管導通,就能顯示出各種字符,盡管顯示的字符形狀有些失真,能顯示的數(shù)符數(shù)量也有限,但其控制簡單,使有也方便。發(fā)光二極管的陽極連在一起的稱為共陽極數(shù)碼管,陰極連在一起的稱為共陰極數(shù)碼管,如圖4.2所示。</p>&l
54、t;p> 4.3 7段數(shù)碼管驅(qū)動方法</p><p> 發(fā)光二極管(LED是一種由磷化鎵(GaP)等半導體材料制成的,能直接將電能轉(zhuǎn)變成光能的發(fā)光顯示器件。當其內(nèi)部有一一電流通過時,它就會發(fā)光。7段數(shù)碼管每段的驅(qū)動電流和其他單個LED發(fā)光二極管一樣,一般為5-10mA;正向電壓隨發(fā)光材料不同表現(xiàn)為1.8-2.5V不等。</p><p> 7段數(shù)碼管的顯示方法可分為靜態(tài)顯示與動
55、態(tài)顯示,下面分別介紹。</p><p><b> ?。?) 靜太顯示</b></p><p> 所謂靜態(tài)顯示,就是當顯示某一字符時,相應段的發(fā)光二極管恒定地尋能可截止。這種顯示方法為每一們都需要有一個8位輸出口控制。對于51單片機,可以在并行口上擴展多片鎖存74LS573作為靜態(tài)顯示器接口。</p><p> 靜態(tài)顯示器的優(yōu)點是顯示穩(wěn)定,在
56、發(fā)光二極管導通電注一定的情況下顯示器的亮度高,控制系統(tǒng)在運行過程中,僅僅在需要更新顯示內(nèi)容時,CPU才執(zhí)行一次顯示更新子程序,這樣大大節(jié)省了CPU的時間,提高了CPU的工作效率;缺點是位數(shù)較多時,所需I/O口太多,硬件開銷太大,因此常采用另外一種顯示方式——動態(tài)顯示。</p><p><b> (2)動態(tài)顯示</b></p><p> 所謂動態(tài)顯示就是一位一位地輪
57、流點亮各位顯示器(掃描),對于顯示器的每一位而言,每隔一段時間點亮一次。雖然在同一時刻只有一位顯示器在工作(點亮),但利用人眼的視覺暫留效應和發(fā)光二極管熄 滅時的余輝效應,看到的卻是多個字符“同時”顯示。顯示器亮度既與點亮時的導通電流有關(guān),也與點亮時間和間隔時間的比例有關(guān)。調(diào)整電流和時間參烽,可實現(xiàn)亮度較高較穩(wěn)定的顯示。若顯示器的位數(shù)不大于8位,則控制顯示器公共極電位只需一個8位I/O口(稱為掃描口或字位口),控制各位LED顯示器所顯示
58、的字形也需要一個8位口(稱為數(shù)據(jù)口或字形口)。</p><p> 動態(tài)顯示器的優(yōu)點是節(jié)省硬件資源,成本較低,但在控制系統(tǒng)運行過程中,要保證顯示器正常顯示,CPU必須每隔一段時間執(zhí)行一次顯示子程序,這占用了CPU的大量時間,降低了CPU工作效率,同時顯示亮度較靜態(tài)顯示器低。</p><p> 綜合以上考慮,由于時間顯示具有時、分、秒,故需要采用6個數(shù)碼管,又考慮到CPU工作效率與電源效率
59、,本畢業(yè)設計采用動態(tài)顯示。為共陽極顯示。</p><p><b> 5系統(tǒng)總體方案</b></p><p><b> 5.1系統(tǒng)框架 </b></p><p> 該項目選用STC89C52單片機作為控制器,完成數(shù)據(jù)采集、顯示控制功能。采用DS1302的時、分、秒計時功能計時,利用與單片機之間相互通信進行數(shù)據(jù)交換,達
60、到設定時間等功能。用六位數(shù)碼管動態(tài)顯示,分別顯示出時、分、秒。利用四位按鍵對時間進行調(diào)整,達到電子鐘的全部功能,其大體框圖如圖5.1所示:</p><p> 圖5.1 系統(tǒng)框架圖</p><p> 5.2系統(tǒng)原理圖及功能</p><p> 系統(tǒng)整體原理圖見 附錄1</p><p> 5.2.1時鐘模塊原理圖設計</p>
61、<p> 圖5.2時鐘模塊原理圖</p><p> 如圖5.2所示:將DS1302的1、4腳接5V的電源,是芯片不可缺少的條件2、3腳接一個32.768的石英晶振,晶振振蕩進行計數(shù)來達到計數(shù)效果。5腳與單片機的P1.6口相連,6腳與單片機的P1.5口相連,7腳與單片機的P1.4口相連。這就是時鐘芯片所需原理圖。在相應的軟件程序驅(qū)動下,DS1302與單片機就能達到讀寫時、分、秒的功能,實現(xiàn)系統(tǒng)的靈魂。
62、</p><p> 5.2.2顯示模塊原理圖設計</p><p> 如圖5.3:將所有數(shù)碼管的數(shù)據(jù)管腳分別連接到一起,然后接入單片機的P0口。其公共段分別接上一個三極管,在此三極管做開關(guān)功能,所有三極管的基極分別連接到P2.0 - P2.5口,當對應的三極管基極為高電平時,對應的數(shù)碼管就將顯示出來,這樣就達到流水顯示每位數(shù)碼管。前兩位顯示時范圍為0——23,3、4位顯示分0——59,
63、后兩位顯示秒0——59。</p><p> 圖5.3顯示模塊原理圖</p><p> 5.2.3調(diào)整模塊原理圖設計</p><p> 圖5.4調(diào)整模塊原理圖</p><p> 如圖5.4中的1、2、3、4分別接到單片機的P1.0-P1.3口,當?shù)谝淮伟聪耂1按鍵時,系統(tǒng)將進入調(diào)整模式,第二次按下S1時,系統(tǒng)將回到計時狀態(tài),并以調(diào)整模式
64、所調(diào)整的時間進行計時。當系統(tǒng)進入調(diào)整模式時,利用S2按鍵選擇調(diào)整時、分、秒。當選擇調(diào)整某位是,當按S4對應位將以1位單位增長,當按下S4時對應為將以1為單位減小。</p><p><b> 附錄1:電路原理圖</b></p><p><b> 附錄2:程序代碼</b></p><p> DS1302驅(qū)動程序<
65、/p><p><b> /*</b></p><p> * DS1302 突發(fā)方式,連讀,連寫</p><p> #include <reg52.h></p><p> #include <intrins.h></p><p> typedef unsigned ch
66、ar uchar;</p><p> typedef unsigned int uint;</p><p> sbit SCK = P1^4;//時鐘</p><p> sbit SDA = P1^5;//數(shù)據(jù)</p><p> sbit RST = P1^6; //DS1302復位(片選)</p><
67、;p> #define DS1302_W_ADDR 0xBE</p><p> #define DS1302_R_ADDR 0xBF</p><p> void delay(uint n)</p><p><b> {</b></p><p> while (n--);</p><p&
68、gt;<b> }</b></p><p><b> 寫一個字節(jié)</b></p><p> void write_ds1302_byte(uchar dat) </p><p><b> {</b></p><p><b> uchar i;</b&g
69、t;</p><p> for (i=0;i<8;i++) </p><p><b> { </b></p><p> SDA = dat & 0x01;</p><p><b> SCK = 1;</b></p><p> dat >>=
70、 1;</p><p><b> SCK = 0;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> 讀一個字節(jié)</b></p><p> uchar read_
71、ds1302_byte(void) </p><p><b> {</b></p><p> uchar i, dat=0;</p><p> for (i=0;i<8;i++)</p><p><b> {</b></p><p> dat >>
72、;= 1;</p><p><b> if (SDA)</b></p><p> dat |= 0x80;</p><p><b> SCK = 1;</b></p><p><b> SCK = 0;</b></p><p><b>
73、 } </b></p><p> return dat;</p><p><b> }</b></p><p> void reset_ds1302(void)</p><p><b> {</b></p><p><b> RST = 0;
74、</b></p><p><b> SCK = 0;</b></p><p><b> RST = 1;</b></p><p><b> }</b></p><p><b> 清除寫保護</b></p><p>
75、; void clear_ds1302_WP(void) </p><p><b> {</b></p><p> reset_ds1302();</p><p><b> RST = 1;</b></p><p> write_ds1302_byte(0x8E);</p>
76、<p> write_ds1302_byte(0);</p><p><b> SDA = 0;</b></p><p><b> RST = 0;</b></p><p><b> }</b></p><p><b> 設置寫保護</b&g
77、t;</p><p> void set_ds1302_WP(void) </p><p><b> {</b></p><p> reset_ds1302();</p><p><b> RST = 1;</b></p><p> write_ds1302_byt
78、e(0x8E);</p><p> write_ds1302_byte(0x80);</p><p><b> SDA = 0;</b></p><p><b> RST = 0;</b></p><p><b> }</b></p><p>&
79、lt;b> 設定時鐘數(shù)據(jù)</b></p><p> void set_time(uchar *timedata)</p><p><b> {</b></p><p> uchar i, tmp;</p><p> for (i=0; i<7; i++) // 轉(zhuǎn)化為BCD格式<
80、/p><p><b> {</b></p><p> tmp = timedata[i] / 10;</p><p> timedata[i] = timedata[i] % 10;</p><p> timedata[i] = timedata[i] + tmp*16;</p><p>&l
81、t;b> }</b></p><p> clear_ds1302_WP();</p><p> reset_ds1302();</p><p><b> RST = 1;</b></p><p> write_ds1302_byte(DS1302_W_ADDR);</p><
82、;p> for (i=0; i<7; i++)</p><p><b> {</b></p><p> write_ds1302_byte(timedata[i]);</p><p> delay(10);</p><p><b> }</b></p><p
83、> write_ds1302_byte(0);</p><p><b> SDA = 0;</b></p><p><b> RST = 0;</b></p><p> set_ds1302_WP();</p><p><b> }</b></p>
84、<p> 讀時鐘數(shù)據(jù)(BCD格式)</p><p> void read_time(uchar *timedata)</p><p><b> {</b></p><p><b> uchar i;</b></p><p> clear_ds1302_WP();</p&g
85、t;<p> reset_ds1302();</p><p><b> RST = 1;</b></p><p> write_ds1302_byte(DS1302_R_ADDR);</p><p> for (i=0; i<7; i++)</p><p><b> {</b
86、></p><p> timedata[i] = read_ds1302_byte();</p><p> delay(10);</p><p><b> }</b></p><p><b> SDA = 0;</b></p><p><b> RS
87、T = 0;</b></p><p> set_ds1302_WP();</p><p><b> }</b></p><p><b> 主程序</b></p><p> #include <reg52.h></p><p> #includ
88、e "wei.h"</p><p> typedef unsigned char uchar;</p><p> typedef unsigned intuint;</p><p> delay(uint n);</p><p> read_time(uchar *timedata);</p>&
89、lt;p> set_time(uchar *timedata);</p><p> uchar time[7]={00,00,00,28,2,7,10};//秒分時日月周年10-08-15 23:59:50</p><p> uchar timep[7];</p><p> uchar DC[10]={0xc0,0xf9,0xa4,0xb0,0x99,
90、0x92,0x82,0xf8,0x80,0x90};</p><p> uint wei,tmp,g,gg;</p><p><b> uint i=0;</b></p><p> bit lock=0;</p><p> bit lock1=0;</p><p> bit lock2=
91、0;</p><p> bit lock3=0;</p><p> bitkaiguan=0,e=0 ,m=0;</p><p> 進入調(diào)整或計時模式選擇</p><p> uchar Xuan()</p><p><b> {</b></p><p> if
92、(P1_0==0)</p><p><b> { </b></p><p> delay(1000);</p><p> if((P1_0==0)&&(lock==0))</p><p><b> {</b></p><p> kaiguan=!k
93、aiguan; </p><p><b> lock=1;</b></p><p><b> }</b></p><p><b> }</b></p><p> if(P1_0==1)lock=0;</p><p> return kai
94、guan;</p><p><b> }</b></p><p> 對相應的調(diào)整位加一或減一</p><p> bianliang(char ji)</p><p><b> {</b></p><p> if(P1_2==0)</p><p&g
95、t;<b> { </b></p><p> delay(1000);</p><p> if((P1_2==0)&&(lock2==0))</p><p><b> {</b></p><p> time[ji]++;</p><p&
96、gt;<b> lock2=1;</b></p><p><b> } </b></p><p><b> }</b></p><p> if(P1_2==1)lock2=0;</p><p> if(P1_3==0)</p><p>&l
97、t;b> { </b></p><p> delay(1000);</p><p> if((P1_3==0)&&(lock3==0))</p><p><b> {</b></p><p> time[ji]--;</p><p>&
98、lt;b> lock3=1;</b></p><p><b> } </b></p><p><b> }</b></p><p> if(P1_3==1)lock3=0;</p><p> for(gg=0;gg<7;gg++)</p><
99、p><b> {</b></p><p> tmp = time[gg] / 10;</p><p> timep[gg] = time[gg] % 10;</p><p> timep[gg] = timep[gg] + tmp*16;</p><p><b> }</b>&l
100、t;/p><p><b> }</b></p><p><b> MeShi()</b></p><p><b> {</b></p><p> if(Xuan()==0)</p><p><b> {</b></p&g
101、t;<p><b> if(e==1)</b></p><p><b> {</b></p><p> set_time(&time);</p><p><b> wei=0;</b></p><p><b> e=0;</b&
102、gt;</p><p><b> }</b></p><p> read_time( &time);</p><p><b> m=1;</b></p><p><b> }</b></p><p><b> else
103、 </b></p><p><b> {</b></p><p><b> e=1;</b></p><p><b> if(m==1)</b></p><p><b> {</b></p><p> for
104、(g=0;g<7;g++) </p><p><b> {</b></p><p> time[g]=10*(time[g]/16)+time[g]%16;</p><p><b> }</b></p><p><b> m=0;</b></p>
105、;<p><b> }</b></p><p> if(P1_1==0)</p><p><b> { </b></p><p> delay(1000);</p><p> if((P1_1==0)&&(lock1==0))</p><
106、p><b> {</b></p><p><b> wei++;</b></p><p> if(wei==2)wei=0;</p><p><b> lock1=1;</b></p><p><b> } </b></p>
107、<p><b> }</b></p><p> if(P1_1==1)lock1=0;</p><p> bianliang(wei);</p><p><b> }</b></p><p><b> }</b></p><p>
108、<b> 顯示程序</b></p><p> void liushui()</p><p><b> {</b></p><p><b> switch(i)</b></p><p><b> {</b></p><p>
109、; case 0: P2_0=1;P2_5=0;i++; P0=DC[time[2]/16];break;</p><p> case 1: P2_1=1;P2_0=0;i++; P0=DC[time[2]%16];break;</p><p> case 2: P2_2=1;P2_1=0;i++; P0=DC[time[1]/16];break;</p><
110、;p> case 3: P2_3=1;P2_2=0;i++; P0=DC[time[1]%16];break;</p><p> case 4: P2_4=1;P2_3=0;i++; P0=DC[time[0]/16];break;</p><p> case 5: P2_5=1;P2_4=0;i=0; P0=DC[time[0]%16];break;</p>
111、<p> default :break;</p><p><b> }</b></p><p><b> } </b></p><p><b> 主程序</b></p><p><b> main()</b></p>
112、<p><b> {</b></p><p> set_time(&time); //設定上電時間值</p><p> while ( 1 )</p><p><b> {</b></p><p><b> MeShi();</b></
113、p><p> liushui();</p><p><b> }</b></p><p><b> }</b></p><p><b> 致 謝</b></p><p> 在本論文的寫作過程中,我的指導老師xx老師傾注了大量的心血,從選題到開題報
114、告,從寫作提綱,到一遍又一遍地指出每稿中的具體問題,嚴格把關(guān),循循善誘,在此我表示衷心感謝。同時我還要感謝在我學習期間給我極大關(guān)心和支持的各位老師以及關(guān)心我的同學和朋友。</p><p> 寫作畢業(yè)論文是一次再系統(tǒng)學習的過程,畢業(yè)論文的完成,同樣也意味著新的學習生活的開始。</p><p><b> 參考文獻</b></p><p> [
115、1]李軍 51系列單片機高級實例開發(fā)指南[M]北京:北京航空航天大學出版社,2004</p><p> [2]王幸之 AT89系列單片機原理與接口技術(shù)[M] 北京:北京航空航天大學出版社,2004</p><p> [3]歐陽斌林 單片機原理及應用[M] 北京:中國水利水電出版社,2001</p><p> [4]潭浩強 C程
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于單片機的電子鐘設計畢業(yè)論文
- 基于單片機的電子鐘設計畢業(yè)論文
- 基于單片機的電子鐘的設計畢業(yè)論文
- 基于51單片機的電子鐘設計畢業(yè)論文
- 基于單片機的電子鐘設計畢業(yè)論文 (2)
- 基于單片機的lcd數(shù)字電子鐘畢業(yè)論文
- 【畢業(yè)論文】基于單片機系統(tǒng)的電子鐘設計與仿真
- 【畢業(yè)論文】基于單片機系統(tǒng)的電子鐘設計與仿真
- 單片機數(shù)字電子鐘的設計與研究畢業(yè)論文
- 單片機數(shù)字電子鐘的設計與研究畢業(yè)論文
- 單片機數(shù)字電子鐘的設計與研究畢業(yè)論文
- 電子鐘課程設計--基于單片機的電子鐘設計
- 基于單片機的電子鐘設計
- 畢業(yè)設計----基于單片機的電子鐘設計
- 畢業(yè)論文-基于單片機的數(shù)字電子鐘【精校排版】
- 畢業(yè)設計-----基于單片機的電子鐘的設計
- 畢業(yè)設計論文-基于51單片機的數(shù)字電子鐘設計
- 基于at89s52單片機的數(shù)字電子鐘設計畢業(yè)論文
- 單片機課程論文設計-電子鐘設計
- 單片機課程論文設計電子鐘設計
評論
0/150
提交評論