plc自動報(bào)時畢業(yè)設(shè)計(jì)_第1頁
plc自動報(bào)時畢業(yè)設(shè)計(jì)_第2頁
plc自動報(bào)時畢業(yè)設(shè)計(jì)_第3頁
plc自動報(bào)時畢業(yè)設(shè)計(jì)_第4頁
plc自動報(bào)時畢業(yè)設(shè)計(jì)_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 電子與電氣工程學(xué)院 畢業(yè)設(shè)計(jì)論文畢業(yè)設(shè)計(jì)(論文)任務(wù)書專業(yè) 電氣自動化 班級 一、課題名稱:自動報(bào)時系統(tǒng)設(shè)計(jì)(單片機(jī)) 二、主要技術(shù)指標(biāo): 1、與mcs-51 兼容 2、4k字節(jié)可編程閃爍存儲器 3、壽命:1000寫/擦循環(huán) 4、數(shù)據(jù)保留時間:10年 5、全靜態(tài)工作:0hz-24hz 6、三級程序存儲器鎖定 7、128*8位內(nèi)部ram 三、工作內(nèi)容和要求: 1. 查找、搜集資料,確定設(shè)計(jì)題目 2.在老師的幫助下查找資料,設(shè)計(jì)硬件電路,進(jìn)行軟件電路的設(shè)計(jì) 3. 連接試驗(yàn)箱進(jìn)行程序調(diào)試,修改錯誤,制作電子稿 4. 在老師的幫助下,修改電子稿,讓老師批閱 5. 打印電子稿,進(jìn)行畢業(yè)答辯 四、主要參

2、考文獻(xiàn):1 李傳軍.單片機(jī)原理及應(yīng)用.鄭州.河南科技出版社,2006 2 華羅庚.王元.論一致分布與近似分析.北京.中國科學(xué),1973 3 朱善軍等.單片機(jī)接口技術(shù)與應(yīng)用.北京.清華大學(xué)出版社,2005 4 饒慶.89c51單片機(jī)實(shí)用技術(shù).北京.人民郵電出版社,2003 5 楊西明.朱騏.單片機(jī)編程與入門.北京.機(jī)械工業(yè)出版社,2004 學(xué) 生(簽名) 年 月 日 指 導(dǎo) 教師(簽名) 年 月 日 教研室主任(簽名) 年 月 日 系 主 任(簽名) 年 月 日畢業(yè)設(shè)計(jì)(論文)開題報(bào)告設(shè)計(jì)(論文)題目自動報(bào)時系統(tǒng)一、 選題的背景和意義:選擇不同的單片機(jī),可以組成具有較強(qiáng)抗干擾能力和運(yùn)行可靠性的產(chǎn)

3、品,其抗干擾能力雖然不如plc,但plc價(jià)格較貴,用單片機(jī)運(yùn)行效果仍然令人滿意,同時證明了本方案的正確性。本電子時鐘系統(tǒng)簡單,實(shí)用性強(qiáng),成本低,使用維護(hù)方便,軟件功能強(qiáng),運(yùn)行穩(wěn)定可靠等優(yōu)點(diǎn)。二、 課題研究的主要內(nèi)容: 本設(shè)計(jì)采用at89c51單片機(jī)的設(shè)計(jì),計(jì)以單片機(jī)為核心部件的自動報(bào)時系統(tǒng),利用74ls244作為斷碼驅(qū)動器,74ls07作為位碼驅(qū)動,led六斷數(shù)碼管作為計(jì)時顯示用,用發(fā)光二極管指示計(jì)時,用按鍵進(jìn)行校時調(diào)整鬧鈴時間,使時間得到調(diào)整和使鬧鈴開啟和關(guān)閉。依據(jù)本論文設(shè)計(jì)以89c51單片機(jī)為核心的電子時鐘,經(jīng)過設(shè)計(jì),最后按設(shè)計(jì)要求終于在單片機(jī)實(shí)驗(yàn)箱上試驗(yàn),選擇不同的單片機(jī),可以組成具有較

4、強(qiáng)抗干擾能力和運(yùn)行可靠性的產(chǎn)品。三、 主要研究(設(shè)計(jì))方法論述:1. 討論研究法:通過對設(shè)計(jì)中研究內(nèi)容實(shí)現(xiàn)方法的討論,來確定本設(shè)計(jì)實(shí)現(xiàn)的最佳方法。2. 文獻(xiàn)資料法:學(xué)習(xí)已有的文獻(xiàn)資料,進(jìn)行借鑒,并適當(dāng)加以深化。3. 經(jīng)驗(yàn)總結(jié)法:通過對設(shè)計(jì)歸納和小結(jié),深化本設(shè)計(jì)研究的意義和目的。4. 實(shí)驗(yàn)法:用單片機(jī)做自動報(bào)時系統(tǒng),進(jìn)行調(diào)試。四、設(shè)計(jì)(論文)進(jìn)度安排:時間(迄止日期)工 作 內(nèi) 容2010.5.102010.5.15查找、搜集資料,確定設(shè)計(jì)題目2010.5.152010.5.20在老師的幫助下查找資料,設(shè)計(jì)硬件電路,進(jìn)行軟件電路的設(shè)計(jì)2010.5.202010.5.31完成基本框架,搜集信息,寫

5、好草稿2010.5.312010.6.05整理文章,不斷修改2010.6.052010.6.10填寫中期檢查2010.6.102010.6.20檢查論文格式以及注意其中細(xì)節(jié)方面的問題2010.6.202010.6.30修改并打印五、指導(dǎo)教師意見: 指導(dǎo)教師簽名: 年 月 日六、系部意見: 系主任簽名: 年 月 日目 錄設(shè)計(jì)任務(wù)書i1 前言12 硬件系統(tǒng)設(shè)計(jì)22.1 總體框圖設(shè)計(jì)22.2 單片機(jī)選型22.3 獨(dú)立式按鍵控制電路52.4 led動態(tài)顯示電路72.5 時鐘芯片ds1302112.6 電路原理143 軟件設(shè)計(jì)153.1 設(shè)計(jì)思路153.2主程序模塊153.3顯示程序模塊173.4 ds

6、1302的寫時鐘程序模塊183.5按鍵程序模塊193.6 定時器程序模塊204 系 統(tǒng) 調(diào) 試22結(jié) 論25致 謝26參考文獻(xiàn)27附 錄a28摘 要本設(shè)計(jì)是利用單片機(jī)原理設(shè)計(jì)的自動報(bào)時系統(tǒng)。其中,自動報(bào)時系統(tǒng)以at89c51單片機(jī)為核心,采用4個獨(dú)立式按鍵來調(diào)整時間和設(shè)置鬧鈴,用共陰極動態(tài)六段led動態(tài)顯示來顯示時間,計(jì)時方案采用時鐘芯片ds1302。以8路反向動態(tài)緩沖器74ls240作為led的動態(tài)掃描的段碼控制驅(qū)動信號,用p2.02.5外接一片集電極開路反向門電路7406(oc門)做6位led的位選信號驅(qū)動口,6個數(shù)碼管的8根段選線分別接74ls240的輸出,led共陰極端與7406的輸出

7、端相連,從左到右依次來顯示時,分,秒。正文中首先簡單描述了硬件系統(tǒng)的工作原理,且附以硬件系統(tǒng)的設(shè)計(jì)框圖,論述了本次畢業(yè)設(shè)計(jì)所應(yīng)用的各種硬件接口技術(shù)和各個接口模塊的功能及工作過程, 并具體描述了外接電路接口的軟、硬件調(diào)試。本文撰寫的主導(dǎo)思想是軟、硬件相結(jié)合,以硬件為基礎(chǔ),來進(jìn)行各功能模塊的編寫。關(guān)鍵詞:單片機(jī),自動報(bào)時系統(tǒng),位碼,段碼,顯示abstractthis design principle is to use single chip design of the automatic timekeeping system. among them, the automatic timekeep

8、ing system with at89c51 microcontroller as the core, with four stand-alone buttons to adjust the time and set the alarm, dynamic liuduan with common cathode led dynamic display to show time, time clock chip program using ds1302. to reverse the dynamic buffer 74ls240 8 as the led section of the dynam

9、ic scan code control drive signal, with the p2.0-2.5 add an open-collector reverse gate 7406 (oc doors) do 6 bit select signal led driver i, 6 of 8 digital tube were connected 74ls240 paragraph alignment output, led common cathode is connected with the output of 7406, from left to right to display t

10、he hours, minutes, seconds.first of all, the text simply describes the working principle of the hardware system, and attached to the design of the hardware system block diagram, discussed the application of this graduation design techniques and a variety of hardware interface functions of each inter

11、face module and the work process, and specific description of the external circuit interface software and hardware debugging.this article is written by the leading ideas of hardware and software combination of hardware-based, to the preparation of various functional modules.keywords: microcontroller

12、, automatic timekeeping system, the bit code, segment code, display1 前言隨著半導(dǎo)體集成工藝的不斷發(fā)展,單片機(jī)的集成度將更高、體積將更小、功能將更強(qiáng)。在單片機(jī)家族中,80c51系列是其中的佼佼者,加之intel公司將其mcs 51系列中的80c51內(nèi)核使用權(quán)以專利互換或出售形式轉(zhuǎn)讓給全世界許多著名ic制造廠商,如philips、 nec、atmel、amd、華邦等,這些公司都在保持與80c51單片機(jī)兼容的基礎(chǔ)上改善了80c51的許多特性。這樣,80c51就變成有眾多制造廠商支持的、發(fā)展出上百品種的大家族,現(xiàn)統(tǒng)稱為80c51系列

13、。80c51單片機(jī)已成為單片機(jī)發(fā)展的主流。專家認(rèn)為,雖然世界上的mcu品種繁多,功能各異,開發(fā)裝置也互不兼容,但是客觀發(fā)展表明,80c51可能最終形成事實(shí)上的標(biāo)準(zhǔn)mcu芯片。本設(shè)計(jì)采用的是atmel公司的at89c51芯片,此芯片根據(jù)了充分的靜止cmos 控制器與三級節(jié)目記憶鎖,共有:32 條i/o 線, 2 定時計(jì)數(shù)器, 6 個中斷來源,4 k 閃存, 128 個字節(jié)在芯片ram。由于本設(shè)計(jì)所做的是一個自動報(bào)時系統(tǒng)簡單,所以要用到單片機(jī)的最小應(yīng)用系統(tǒng)模塊1,還需要用獨(dú)立式鍵盤和動態(tài)顯示模塊。而我的硬件設(shè)計(jì)詳見第二章,主要介紹了需要哪幾部分硬件電路和硬件系統(tǒng)的概敘。在2.1節(jié)介紹了主要的硬件框

14、架;2.2節(jié)簡單的介紹了單片機(jī)最小應(yīng)用系統(tǒng)的性能和附屬電路;2.3節(jié)詳細(xì)介紹了鍵盤控制電路;2.4節(jié)介紹了動態(tài)顯示電路。2.5介紹了ds1302芯片。在第三章中我們詳細(xì)的解說了軟件系統(tǒng)的設(shè)計(jì)。3.1節(jié)介紹了我們做這個設(shè)計(jì)的程序設(shè)計(jì)思路;3.2節(jié)介紹了主程序模塊及其框圖;3.3節(jié)介紹了顯示程序模塊及其框圖。第四章是我對此設(shè)計(jì)的調(diào)試過程和結(jié)果顯示。第五章就是我對此設(shè)計(jì)的總體概括,體會和心得。我所設(shè)計(jì)的這個自動報(bào)時系統(tǒng)簡單,實(shí)用性強(qiáng),成本低,使用維護(hù)方便,軟件功能強(qiáng),運(yùn)行穩(wěn)定可靠等優(yōu)點(diǎn)。2 硬件系統(tǒng)設(shè)計(jì)2.1 總體框圖設(shè)計(jì)我所設(shè)計(jì)的是一個自動報(bào)時系統(tǒng),自動報(bào)時系統(tǒng)用到的單片機(jī)芯片是at89c51芯片

15、,除此之外還包括:晶振電路和復(fù)位電路構(gòu)成單片機(jī)最小應(yīng)用系統(tǒng);還有獨(dú)立式按鍵電路;動態(tài)顯示電路等等;總體設(shè)計(jì)框圖如圖2.1所示。at89c51led動態(tài)顯示蜂鳴器按鍵電路路晶振電路ds130芯片電路復(fù)位電路圖2.1總體設(shè)計(jì)框圖2.2 單片機(jī)選型2.2.1 at89c51的特點(diǎn)at89c51是一種帶4k字節(jié)閃爍可編程可擦除只讀存儲器(fperomfalsh programmable and erasable read only memory)的低電壓,高性能、cmos、8位單片機(jī)。該器件采用atmel高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的mcs-51指令集和輸出管腳相兼容。at89c51的管

16、腳圖如圖2.2所示。圖2.2 at89c51管腳圖主要特性:1、與mcs-51 兼容 2、4k字節(jié)可編程閃爍存儲器3、壽命:1000寫/擦循環(huán)4、數(shù)據(jù)保留時間:10年5、全靜態(tài)工作:0hz-24hz6、三級程序存儲器鎖定7、128*8位內(nèi)部ram8、32可編程i/o線9、兩個16位定時器/計(jì)數(shù)器10、5個中斷源11、可編程串行通道12、低功耗的閑置和掉電模式13、片內(nèi)振蕩器和時鐘電路2.2.2 單片機(jī)附屬電路單片機(jī)附屬電路主要有晶體振蕩電路和復(fù)位電路。一、晶體振蕩電路1晶體振蕩器的作用 石英晶體振蕩器也稱石英晶體諧振器,它用來穩(wěn)定頻率和選擇頻率,是一種可以取代lc諧振回路的晶體諧振元件。 2本

17、設(shè)計(jì)所用的晶體振蕩電路如圖2.3所示: 圖2.3 晶體振蕩電路此晶振電路所選用的石英晶振頻率為12mhz。時鐘周期就是單片機(jī)外接晶振的倒數(shù),例如12m的晶振,它的時間周期就是1/12 us),是計(jì)算機(jī)中最基本的、最小的時間單位。在一個時鐘周期內(nèi),cpu僅完成一個最基本的動作。對于某種單片機(jī),若采用了1mhz的時鐘頻率,則時鐘周期為1us;若采用4mhz的時鐘頻率,則時鐘周期為0.25us。由于時鐘脈沖是單片機(jī)的基本工作脈沖,它控制著單片機(jī)的工作節(jié)奏(使單片機(jī)的每一步都統(tǒng)一到它的步調(diào)上來)。顯然,對同一種機(jī)型的單片機(jī),時鐘頻率越高,單片機(jī)的工作速度就越快。但是,由于不同的單片機(jī)的硬件電路和器件不

18、完全相同,所以其需要的時鐘頻率范圍也不相同。我們學(xué)習(xí)的51系列單片機(jī)的時鐘范圍是1.2mhz-12mhz。二、復(fù)位電路單片機(jī)復(fù)位是使cpu和系統(tǒng)中的其他功能部件都處在一個確定的初始狀態(tài),并從這個狀態(tài)開始工作,例如復(fù)位后pc0000h,使單片機(jī)從第個單元取指令。無論是在單片機(jī)剛開始接上電源時,還是斷電后或者發(fā)生故障后都要復(fù)位,所以我們必須弄清楚mcs-51型單片機(jī)復(fù)位的條件、復(fù)位電路和復(fù)位后狀態(tài)。單片機(jī)復(fù)位的條件是:必須使rst/vpd或rst引腳加上持續(xù)兩個機(jī)器周期(即24個振蕩周期)的高電平。例如,若時鐘頻率為12mhz,每機(jī)器周期為1us,則只需2us以上時間的高電平,在rst引腳出現(xiàn)高電

19、平后的第二個機(jī)器周期執(zhí)行復(fù)位。單片機(jī)常用的復(fù)位電路如圖2.4(a)和圖2.4(b)所示: 圖2.4(a) 復(fù)位電路 圖2.4(b) 與單片機(jī)相連的復(fù)位電路圖2.4(a) 復(fù)位電路,其電阻阻值的選擇和電容容量的選擇都是經(jīng)過計(jì)算的,而最后計(jì)算的結(jié)果時間常數(shù)可以滿足我們的需求。其計(jì)算過程如下:=0.7rc=0.710001010-6=0.7ms此值遠(yuǎn)遠(yuǎn)大于2us,所以此復(fù)位電路可用。圖2.4(b)是我設(shè)計(jì)中用到的復(fù)位單路,為按鍵復(fù)位電路。該電路除具有上電復(fù)位功能外,若要復(fù)位,只需按圖中的reset鍵,此時電源vcc經(jīng)電阻r1、r2分壓,在reset端產(chǎn)生復(fù)位高電平。2.3 獨(dú)立式按鍵控制電路獨(dú)立式鍵

20、盤的接口電路:在單片機(jī)應(yīng)用系統(tǒng)中,有時只需要幾個簡單的按鍵向系統(tǒng)輸入信息。這時,可將每個按鍵直接接在一根i/o接口線上,這種連接方式的鍵盤稱為獨(dú)立式鍵盤。如圖2.5所示,每個獨(dú)立按鍵單獨(dú)占有一根i/o接口線,每根i/o接口線的工作狀態(tài)不會影響到其他i/o接口線。這種按鍵接口電路配置靈活,硬件結(jié)構(gòu)簡單,但每個按鍵必須占用一根i/o線,i/o接口線浪費(fèi)較大。故只在按鍵數(shù)量不多時采用這種按鍵電路。在此電路中,按鍵輸入都采用低電平有效。上拉電阻保證了按鍵斷開時,i/o接口線有確定的高電平。當(dāng)i/o接口內(nèi)部有上拉電阻時,外電路可以不配置上拉電阻。獨(dú)立式按鍵具體在自動報(bào)時系統(tǒng)中的應(yīng)用,在2.3.1中有詳細(xì)

21、介紹。.圖2.5 獨(dú)立式鍵盤電路2.3.1 自動報(bào)時系統(tǒng)的按鍵接口及功能工作原理在自動報(bào)時系統(tǒng)中采用4個獨(dú)立的鍵盤,其中一個為功能鍵;一個為數(shù)字調(diào)整鍵;一個為取消設(shè)置鍵,用來設(shè)定時間;一個為alm鍵,用來設(shè)定定時時間。按鍵的接口由p1.7、p1.6、p1.5、p1.5、p1.4來完成。1時間調(diào)整:按下功能鍵,系統(tǒng)停止計(jì)時顯示,進(jìn)入時間設(shè)定狀態(tài),系統(tǒng)只顯示小時的內(nèi)容,其余4位led處于全暗狀態(tài),等待按鍵設(shè)置。此時按動數(shù)字調(diào)整鍵后小時將會加1,按動取消鍵后又重新回到原來的時間顯示狀態(tài);若再按動功能鍵則用來調(diào)整分鐘,此時小時和秒的4位led指示全暗,按數(shù)字調(diào)整鍵后可以對分鐘增1調(diào)整,按動取消鍵后又重

22、新回到原來的時間顯示狀態(tài);再按動功能鍵則用來調(diào)整秒,此時小時和分鐘的4位led指示全暗,秒顯示當(dāng)前的秒數(shù),暗數(shù)字調(diào)整鍵可以對秒進(jìn)行增1調(diào)整,按動取消鍵后又重新回到原來的時間顯示狀態(tài),按動功能鍵后系統(tǒng)將自動由設(shè)定后的時間開始計(jì)時顯示。2鬧鐘設(shè)置/啟鬧:按下alm鍵,系統(tǒng)繼續(xù)計(jì)時,但顯示為00:00:00,此時再按動功能鍵后進(jìn)入鬧鐘設(shè)置狀態(tài),設(shè)置過程和時間調(diào)整相同,但是最后按功能鍵確定后顯示定時時間30s后自動啟動定時鬧鐘功能,并恢復(fù)時間顯示。定時時間到,蜂鳴器鳴叫1min后自動停鬧,每次設(shè)置時只能定一次,下次需重新設(shè)置。2.3.2 按鍵開關(guān)的去除抖動功能目前,mcs51單片機(jī)應(yīng)用系統(tǒng)上的按鍵常采

23、用機(jī)械觸點(diǎn)式按鍵,它在斷開、閉合時輸入電壓波形如圖2.6所示.可以看出機(jī)械觸點(diǎn)在閉合及斷開瞬間均有抖動過程,時間長短與開關(guān)的機(jī)械特性有關(guān),一般為510ms。由于抖動,會造成被查詢的開關(guān)狀態(tài)無法準(zhǔn)確讀出。例如,一次按鍵產(chǎn)生的正確開關(guān)狀態(tài),由于鍵的抖動,cpu多次采集到底電平信號,會被誤認(rèn)為按鍵被多次按下,就會多次進(jìn)行鍵輸入操作,這是不允許的。為了保證cpu對鍵的一次閉合僅在按鍵穩(wěn)定時作一次鍵輸入處理,必須消除產(chǎn)生的前沿(后沿)抖動影響。所以我在軟件設(shè)計(jì)中作了相應(yīng)設(shè)計(jì)。 圖2.6 按鍵過程2.4 led動態(tài)顯示電路2.4.1 數(shù)碼管簡介1 數(shù)碼管結(jié)構(gòu)數(shù)碼管由8個發(fā)光二極管(以下簡稱字段)構(gòu)成,通過

24、不同的組合可用來顯示數(shù)字0 9、字符a f及小數(shù)點(diǎn)“”。數(shù)碼管的外形結(jié)構(gòu)如圖2.7(a)所示。數(shù)碼管又分為共陰極和共陽極兩種結(jié)構(gòu),分別如圖2.7(b)和圖2.7(c)所示。(a) 外型結(jié)構(gòu);(b) 共陰極;(c)共陽極圖2.7 數(shù)碼管結(jié)構(gòu)圖2 數(shù)碼管工作原理由于我們采用的是共陰極數(shù)碼管,所以介紹共陰極數(shù)碼管的工作原理如下: 共陰極數(shù)碼管的8個發(fā)光二極管的陰極(二極管負(fù)端)連接在一起。通常,公共陰極接低電平(一般接地),其它管腳接段驅(qū)動電路輸出端。當(dāng)某段驅(qū)動電路的輸出端為高電平時,則該端所連接的字段導(dǎo)通并點(diǎn)亮。根據(jù)發(fā)光字段的不同組合可顯示出各種數(shù)字或字符。此時,要求段驅(qū)動電路能吸收額定的段導(dǎo)通電

25、流,還需根據(jù)外接電源及額定段導(dǎo)通電流來確定相應(yīng)的限流電阻。共陽極數(shù)碼管的工作原理與共陰極的正好相反。3 數(shù)碼管字形編碼 要使數(shù)碼管顯示出相應(yīng)的數(shù)字或字符,必須使段數(shù)據(jù)口輸出相應(yīng)的字形編碼。led顯示字型碼表見表2.1:表2.1 led顯示字型碼表顯示字符共陰極共陽極顯示字符共陰極共陽極03fhc0h96fh90h106hf9ha77h88h25bha4hb7ch83h34fhb0hc39hc6h466h99hd5eha1h56dh92he79h86h67dh82hf71h8eh707hf8h87fh80h2.4.2 顯示的種類1 靜態(tài)顯示概念 靜態(tài)顯示是指數(shù)碼管顯示某一字符時,相應(yīng)的發(fā)光二極管

26、恒定導(dǎo)通或恒定截止。這種顯示方式的各位數(shù)碼管相互獨(dú)立,公共端恒定接地(共陰極)或接正電源(共陽極)。每個數(shù)碼管的8個字段分別與一個8位i/o口地址相連,i/o口只要有段碼輸出,相應(yīng)字符即顯示出來,并保持不變,直到i/o口輸出新的段碼。采用靜態(tài)顯示方式的優(yōu)點(diǎn):較小的電流即可獲得較高的亮度,且占用cpu時間少,編程簡單,顯示便于監(jiān)測和控制,但其占用的接口線多,硬件電路復(fù)雜,成本高,只適合于顯示位數(shù)較少的場合。2 動態(tài)顯示概念 動態(tài)顯示是一位一位地輪流點(diǎn)亮各位數(shù)碼管,這種逐位點(diǎn)亮顯示器的方式稱為位掃描。通常,各位數(shù)碼管的段選線相應(yīng)并聯(lián)在一起,由一個8位的i/o口控制;各位的位選線(公共陰極或陽極)由

27、另外的i/o口線控制。動態(tài)方式顯示時,各數(shù)碼管分時輪流選通,要使其穩(wěn)定顯示,必須采用掃描方式,即在某一時刻只選通一位數(shù)碼管,并送出相應(yīng)的段碼,在另一時刻選通另一位數(shù)碼管,并送出相應(yīng)的段碼。依此規(guī)律循環(huán),即可使各位數(shù)碼管顯示將要顯示的字符。雖然這些字符是在不同的時刻分別顯示,但由于人眼存在視覺暫留效應(yīng),只要每位顯示間隔足夠短就可以給人以同時顯示的感覺。采用動態(tài)顯示方式比較節(jié)省i/o口,硬件電路也較靜態(tài)顯示方式簡單,但其亮度不如靜態(tài)顯示方式,而且在顯示位數(shù)較多時,cpu要依次掃描,占用cpu較多的時間。我們這個設(shè)計(jì)所使用的顯示屬于動態(tài)顯示,其顯示電路圖形如圖2.8所示:.圖2.8 動態(tài)顯示電路顯示

28、器由6個共陰極數(shù)碼管組成。同時采用動態(tài)掃描方式依次循環(huán)點(diǎn)亮數(shù)碼管,即構(gòu)成多位動態(tài)顯示電路。圖中,6位數(shù)碼管均采用共陰極led,p0接口外接8路反相三態(tài)緩沖器74ls240作led動態(tài)掃描的段碼控制驅(qū)動信號,用p1接口的p1.0-p1.3外接一片集電極開路反相門電路74ls07做為8位led的位選信號驅(qū)動口, led共陰極端與74ls06的輸出端相連。74ls240的功能74ls240是原碼三態(tài)輸出的8緩沖數(shù)碼驅(qū)動器,其管腳分布圖如圖2.9所示,g為控制端,又稱為使能端其工作原理如下: 當(dāng)g=0時,a輸入為低電平時,y輸出也為低電平。當(dāng)g=0時,a輸入為高電平時, y輸出為高電平。當(dāng)g=1時,a

29、不論輸入高電平還是低電平y(tǒng)為高阻狀態(tài)。圖2.9 74ls240管腳圖 74ls06的功能74ls06是六緩沖的數(shù)碼驅(qū)動器,它是有6個集電極開路的非門所組成,當(dāng)使能端為低電平時,輸入為高電平時輸出也為高電平,當(dāng)輸入為低電平時輸出也為低電平,其邏輯表達(dá)式為:y=a 。2.5 時鐘芯片ds13022.5.1 ds1302芯片具有以下特點(diǎn)1、實(shí)時時鐘/日歷:實(shí)時時鐘/日歷提供秒、分、時日星期月和年等信息,每月天數(shù)以及閏年能自動調(diào)整,時鐘可以才用24h或am/pm的12h格式。2、31字節(jié)的靜態(tài)ram:用于存儲數(shù)據(jù)。3、帶慢速充電控制備份電源的充電特性。4、簡單的三線串行接口:該芯片使用同步串行通信。與

30、時鐘/ram通信供需3根線:復(fù)位、數(shù)據(jù)線、串行時鐘。數(shù)據(jù)可以以每次1個字節(jié)的形式傳送到時鐘/ram或從其讀出。2.5.2 它的引腳圖和引腳功能ds1302的引腳結(jié)構(gòu)見圖2.10,引腳功見表2.2。 圖2.10 ds1302引腳圖引腳號引腳名稱功能1vcc2主電源2、3x1、x232.768khz晶振接口4gnd地5rst復(fù)位兼片選端6i/o串行數(shù)據(jù)輸入/輸出7sclk串行時鐘輸入端8vcc1后備電源表2.2 ds1302的引腳功能2.5.3 ds1302的工作原理1、ds1302組成:串行時鐘芯片主要由移位寄存器、控制邏輯、振蕩器、實(shí)時時鐘、ram、電源組成,如圖2.11所示。圖2.11 ds

31、1302內(nèi)部結(jié)構(gòu)組成入移位寄存器;其2、復(fù)位時鐘:為了初始化任何的數(shù)據(jù)傳送,通過把rst輸入驅(qū)至高電平來啟動所有的數(shù)據(jù)傳送。rst有兩種功能,首先,rst接通控制邏輯,允許地址/命令序列送次,rst提供了單字節(jié)或多字節(jié)數(shù)據(jù)傳送的手段。時鐘sclk是上升沿后繼以下降沿的序列。數(shù)據(jù)輸入時,在時鐘的上升沿前必須有效,而數(shù)據(jù)位在時鐘的下降沿之后輸出。如果rst輸入為低電平,則i/o引腳變?yōu)楦咦锠顟B(tài),終止數(shù)據(jù)傳輸。通電時,vcc2.5v,rst由0至1狀態(tài)時,sckl必須為邏輯0。3、操作方式:芯片的操作受地址/命令字節(jié)控制,每一組數(shù)據(jù)的傳送由命令字節(jié)初始化。地址/命令字節(jié)格式如圖2.12所示。位7必須

32、為邏輯1,如果它是0,禁止寫ds1302;位6邏輯0,指定為時鐘/日歷數(shù)據(jù),為邏輯1,指定為ram數(shù)據(jù);位15指定輸入或輸出的寄存器單元地址;位0指定輸入/輸出數(shù)據(jù)。命令字節(jié)總是從最低有效位開始輸入。4、數(shù)據(jù)輸入:當(dāng)命令字節(jié)為寫命令時,最低位為0,在下8個sclk周期的上升沿輸入字節(jié),數(shù)據(jù)從最低位開始輸入;數(shù)據(jù)輸出:當(dāng)命令字節(jié)為讀命令時,最低位為1,在下8個sclk周期的下降沿輸出數(shù)據(jù)字節(jié)。這時被傳送的第一數(shù)據(jù)為發(fā)生在命令字節(jié)的最后一位之后的第一個下降沿,所以,在非多字節(jié)方式,每次讀或?qū)懙拿}沖個數(shù)為16個,前8個為命令脈沖,后8個為讀或?qū)懙拿}沖。這樣在單字節(jié)傳送數(shù)據(jù)時,每次命令為16個脈沖即可

33、完成,多余的脈沖將忽略不計(jì)。通過對地址31尋址,可以把時鐘/日歷或ram寄存器規(guī)定為多字節(jié)讀寫方式,讀或?qū)懭詮牡刂?單元的最低位開始。當(dāng)以多字節(jié)方式寫時鐘寄存器時,必須按數(shù)據(jù)的次序?qū)懽钕鹊?個寄存器。這樣8個時鐘字節(jié)的讀或?qū)懝残?2個脈沖時鐘,31個ram的讀或?qū)懝残?56脈沖時鐘。其時序如圖2.13所示:圖2.13 ds1302的時序2.6 電路原理電路的核心是89c51單片機(jī),其內(nèi)部帶有4kb的flashrom,無須擴(kuò)展程序存儲器;電腦沒有大量的運(yùn)算和暫存數(shù)據(jù),現(xiàn)有的128b片內(nèi)ram已能滿足要求,也不必?cái)U(kuò)展片外ram。系統(tǒng)配備6位led顯示和4個單接口鍵盤,采用p0接口外接8路反相三態(tài)緩

34、沖器74ls240作led動態(tài)掃描的段碼控制驅(qū)動信號,用p2接口的p2.0-p2.5外接一片集電極開路反相門電路74ls06做為6位led的位選信號驅(qū)動口, 6個數(shù)碼管的8根段選線分別與74ls06的輸出端相連;led共陰極端與7406的輸出端相連;按鍵接口由p1.7、p1.6、p1.5、p1.4來完成。ds1302實(shí)時時鐘芯片接口由p1.0、p1.1、p1.2來控制,p3口接鬧鐘小喇叭。其硬件原理總圖見附錄a。3 軟件設(shè)計(jì)3.1 設(shè)計(jì)思路因?yàn)槲易龅氖亲詣訄?bào)時系統(tǒng),它需要具有校時,調(diào)時,定時,鬧鐘,等功能,而且用到了ds1302芯片,此芯片具有自動記時功能所以編寫程序簡單。所以我們考慮到用單片

35、機(jī)語言來做我們的設(shè)計(jì)。對于程序我們的設(shè)計(jì)思路是:1在此設(shè)計(jì)中用定時器來完成動態(tài)掃描顯示。用定時器t0定2ms的時間間隔,每次定時時間到時就輸出一個led信號,即顯示一位。定時器每中斷6次后循環(huán)到第一位led顯示。這樣動態(tài)顯示占用cpu的時間只有輸出段碼和輸出位碼的有限時間,提高了cpu的工作效率。2. 要有主程序程序。3本設(shè)計(jì)使用按鍵來對ds1302寫入時間校時,對時,設(shè)定時間的,所以要有ds1302的寫時鐘程序。4系統(tǒng)資源分配:1)定時器:定時器t0用做顯示定時,按方式1工作,每隔2ms溢出中斷一次。2)片內(nèi)ram及標(biāo)志位的分配:a)顯示緩沖區(qū):使用(30h35h)6個ram作led的顯示緩

36、沖區(qū),每一個緩沖區(qū)對應(yīng)一個led,在定時時間到時就把6個緩沖區(qū)中的數(shù)送給相應(yīng)的led顯示。b)時間緩沖區(qū):使用(36h3bh)6個ram來保存當(dāng)前從ds1302中讀出來的時間,在主程序運(yùn)行時大約每一秒鐘把其中的數(shù)據(jù)更新到顯示緩沖區(qū)用以顯示。c)定時緩沖區(qū):使用(40h45h)6個ram保存設(shè)定的定時時間,并在時間緩沖區(qū)的內(nèi)容更新的同時進(jìn)行比較,若相同則表明定時時間到了,開始調(diào)用報(bào)時子程序。3.2主程序模塊主程序與按鍵控制,讀時間并對定時時間進(jìn)行判斷。主程序初始化后,就開始進(jìn)行對ds1302的讀時間;讀完后送顯示緩沖區(qū),同時并對定時時間進(jìn)行判斷比較;然后開始依次掃描4個按鍵來判別是否進(jìn)入相應(yīng)的按

37、鍵子程序中;再對ds1302讀時間完成主循環(huán)程序。流程圖如下:圖3.1主程序流程圖lcall key-setlcall alm- setlcall almmov addr-1302,#85hlcall read-clockmov a,data-1302anl a,#10hmov 36h,amov a,data-1302anl a,#0fhmov 37h,amov addr-1302,#83hlcall read-clockmov a,data-1302anl a,#0f0hmov 38h,amov a,data-1302anl a,#0fhmov 39h,amov addr-1302,#81h

38、lcall read-clockmov a,data-1302anl a,#70hmov 3ah,amov a,data-1302anl a,#ofhmov 3bh,amov r4,#63.3顯示程序模塊顯示程序采用動態(tài)顯示,由位碼控制那一個數(shù)碼管顯示,由段碼控制數(shù)碼管顯示什么數(shù)值,根據(jù)中斷程序顯示時間來查表顯示數(shù)值,從第一位到第六位逐個點(diǎn)亮,同時每顯示一位判斷一次六位顯示完了嗎?沒有顯示完進(jìn)行顯示下一位,顯示完了從頭開始再循環(huán)。顯示子程序的流程圖如圖3.2所示: 圖3.2 顯示子程序流程圖 desplay:mov r2 ,#01h ;將位碼送r2mov r0,#30 ;將段碼送r0next3

39、:mov a,r0 mov dptr,#tab2movc a,a+dptrmov p0,a ;將段碼送r0mov p1,r2 ;將位碼送r2lcall delay1 ;調(diào)用延時程序mov a,r2jb acc.3,u2 ;顯示完轉(zhuǎn)u2rl a ;未顯示完,將未碼左移mov r2,a ;將位碼重送、r2中inc r0 ;指向31hljmp next3 u2:ret ;顯示返回3.4 ds1302的寫時鐘程序模塊ds1302的寫時程序:write-clock: nop ;ds1302的寫時鐘程序,入口:addr-1302作地址 :data-1302作數(shù)據(jù);功能:在addr地址單元中寫入data數(shù)據(jù)

40、clr clkclk rst; nopsetb rstmov r3,addr-1302 lcall clock-outmov r3,data-1302lcall clock-outclr rstsetb clkrst3.5按鍵程序模塊進(jìn)入按鍵程序,判斷有鍵按下嗎?沒有,則調(diào)用延時重新判斷,如果到了,調(diào)用延時去抖程序,再次判斷有鍵按下否,沒有則返回延時程序,如果有按鍵,則判斷鍵號,堆棧,判斷鍵是否釋放,沒有,繼續(xù)判斷,釋放了,則輸入鍵號送往累加器,然后返回主程序。圖3.3按鍵程序流程圖key: acall ks ;調(diào)用ks判斷有鍵按下嗎jnz k1 ;有鍵按下則轉(zhuǎn)移acall dl6ms ;無鍵

41、按下則調(diào)用延時子程序ajmp key ;延時返回k1:acall dl6ms ;調(diào)用延時程序、3.6 定時器程序模塊為定時器t0中斷服務(wù)子程序,主要是完成循環(huán)顯示。定時器t0每隔2ms溢出中斷一次,則循環(huán)中斷6次,循環(huán)點(diǎn)亮6個led數(shù)碼管各一次。系統(tǒng)使用12mhz的晶振,定時器0工作方式1,則2ms定時對應(yīng)的定時器初值可有下式計(jì)算得到:定時時間=(216定時器t0初值)(12/振蕩周期)因此,定時器t0初值=0f830h,即th0=0f8h,tl0=30h,當(dāng)系統(tǒng)使用其他頻率的晶振時,也可以由以上式計(jì)算相應(yīng)的定時器t0處治。如單片機(jī)的主脈沖頻率為,經(jīng)過分頻方式0定時時間213 1微秒8.192

42、毫秒方式1定時時間216 1微秒65.536毫秒秒鐘已經(jīng)超過了計(jì)數(shù)器的最大定時間,所以我們只有采用定時器和軟件相結(jié)合的辦法才能解決這個問題,定時器需定時50毫秒,故0工作于方式1,定時20次,就可定時一秒。定時器程序:t0-timer:noppush accpush pswsetb rs0djnz dis-count,t0-timer1mov dis- count ,#6mov duan-addr,#30hmov wei ma,#00100000bt0-timer1:nopmov r0,duan-addrmov p2,#0mov a,r0mov dptr,#tabmovc a,a+dptrmo

43、v p0,amov p2,wei-mainc r0mov a,wei-marr amov wei-ma,amov th0,#0f8hmov tl1,#30hpop pswpop acc4 系 統(tǒng) 調(diào) 試完成了硬件的設(shè)計(jì)、制作和軟件編程之后,要使系統(tǒng)能夠按設(shè)計(jì)意圖正常運(yùn)行,必須進(jìn)行系統(tǒng)調(diào)試。系統(tǒng)調(diào)試包括硬件調(diào)試和軟件調(diào)試兩個部分。不過,作為一個單片機(jī)系統(tǒng),其運(yùn)行是軟硬件相結(jié)合的,因此,軟硬件的調(diào)試也是絕對不可能分開的。 程序的調(diào)式應(yīng)一個模塊一個模塊地進(jìn)行,單獨(dú)調(diào)試各功能子程序,檢驗(yàn)程序是否能夠?qū)崿F(xiàn)預(yù)期的功能,接口電路的控制是否正常等;最后逐步將各個子程序連接起來總調(diào)。聯(lián)調(diào)需要注意的是,各程序模塊

44、間能否正確傳遞參數(shù),特別要注意各子程序的現(xiàn)場保護(hù)與恢復(fù)。調(diào)試的基本步驟如下:1、通過偉福仿真軟件和keil軟件來驗(yàn)證程序。打開偉福軟件模擬器,首先進(jìn)行仿真器設(shè)置,如下圖4.1、4.2所示:選擇e6000/l仿真器pod-8isip仿真頭選擇8751cpu。然后再進(jìn)行通信設(shè)置、目標(biāo)文件以及語言的設(shè)置。最后點(diǎn)擊“好”,完成仿真器的設(shè)置。圖4.1圖4.22、在偉福軟件中輸入程序,進(jìn)行編譯,有好幾處錯誤程序沒有通過編譯,然后我就查找錯誤的所在,一一更改之后終于通過編譯,如下圖4.3所示:圖4.33、對編譯通過的程序進(jìn)行跟蹤執(zhí)行,看執(zhí)行結(jié)果,如下圖所示:圖4.44、在偉福內(nèi)調(diào)試通過以后,進(jìn)入keil軟件

45、編輯器,對程序進(jìn)行下載運(yùn)行,并連接試驗(yàn)箱,查看實(shí)驗(yàn)效果。在keil中下載到實(shí)驗(yàn)箱上進(jìn)行驗(yàn)證,顯現(xiàn)出所要求的效果。而在keil中也要進(jìn)行一些參數(shù)的設(shè)置,首先打開keil仿真軟件,首先要新建一個項(xiàng)目,點(diǎn)菜單projectnew project,在彈出的對話框中選擇保存的路徑并輸入項(xiàng)目名稱“qqqq”后保存,然后在彈出新的項(xiàng)目窗口中選擇參數(shù),其參數(shù)的設(shè)置如下,由于我們使用的是atmel公司的芯片,所以要選atmel后確定。如圖4.5所示:圖4.5在彈出的對話框中選擇at89c51這個芯片,確定。如圖4.6所示:圖4.6結(jié) 論經(jīng)過這段時間的設(shè)計(jì),終于完成了我的設(shè)計(jì),雖然只是一個非常簡單的自動報(bào)時系統(tǒng),我可是經(jīng)過了一翻很大的努力才完全達(dá)到設(shè)計(jì)要求的,從心底里說,還是挺高興的,畢竟這次設(shè)計(jì)所要求的東西都做了出來,然而高興之余不得不深思呀!本設(shè)計(jì)采用at89c51單片機(jī)的設(shè)計(jì),計(jì)以單片機(jī)為核心部件的自動報(bào)時系統(tǒng),利用74ls244作為斷碼驅(qū)動器,74ls07作為位碼驅(qū)動,led六斷數(shù)碼管作為計(jì)時顯示用,用發(fā)光二極管指示計(jì)時,用按鍵進(jìn)行校時調(diào)整鬧鈴時間,使時間得到調(diào)整和使鬧鈴開啟和關(guān)閉。依據(jù)本論文設(shè)計(jì)以89c51單片機(jī)為核心的電子時鐘,經(jīng)過近2個月的設(shè)計(jì),最后按設(shè)計(jì)要求終于在單片機(jī)實(shí)驗(yàn)箱上試驗(yàn)成功,選擇不同的單片機(jī),可以組成具有較強(qiáng)抗干擾能力和

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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

提交評論