多功能數(shù)字時鐘設(shè)計_第1頁
多功能數(shù)字時鐘設(shè)計_第2頁
多功能數(shù)字時鐘設(shè)計_第3頁
多功能數(shù)字時鐘設(shè)計_第4頁
多功能數(shù)字時鐘設(shè)計_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、引言2硬件系統(tǒng)方案設(shè)計2一二2.1撥號防盜器硬件系統(tǒng)方案22.1.1 硬件系統(tǒng)方案設(shè)計22.1.2 脈沖撥號原理32.1.3 脈沖撥號實現(xiàn)過程42.1.4 AT89S2052 單片機的功能特點52.2 時鐘計時器的硬件設(shè)計方案論證分析82.2.1 功能要求82.2.2 方案論證82.2.3 系統(tǒng)硬件電路設(shè)計84.1.2 時鐘計時器的硬件電路設(shè)計描述9系統(tǒng)的軟件設(shè)計10三3.1撥號防盜器程序設(shè)計103.1.1 主程序設(shè)計113.2 時鐘顯示程序設(shè)計123.2.1 主函數(shù)123.2.2 LED 顯示子函數(shù).43.2.5定時器 T0 中斷函數(shù)13中斷函數(shù)14功能函數(shù)14四系統(tǒng)的調(diào)

2、試部分154.1 時鐘系統(tǒng)的調(diào)試. 撥號時鐘系統(tǒng)的硬件調(diào)試15時鐘系統(tǒng)的軟件調(diào)試15性能分析15器功能調(diào)試15五總結(jié)16參考文獻17附錄19附錄 1附錄 2附錄 3附錄 4程序19系統(tǒng)使用說明19英文資料19系統(tǒng) PCB 板圖19附錄 1:程序.20附錄 2:系統(tǒng)使用說明37- 1 - 引言隨著人們生活水平的不斷提高,大家對住宅和辦公室的安全意識也日益增加。因此,研究和開發(fā)防盜裝置引起了科研和生產(chǎn)廠家的重視,特別是面對普通居民、價格低、運行可靠的自動系統(tǒng)。長期以來,一些介紹的廉價防盜均無撥號功能,而市售的可自動撥號的材又價格高昂。這里介紹的撥號防盜器可在這

3、兩者之間找到平衡,即兼具高性能和低價位。低成本實現(xiàn)高性能,設(shè)計時利用了電信局的交換機支持脈沖撥號方式來實現(xiàn)撥號,這樣可利用單片機直接發(fā)出撥號脈沖,精簡了電路,降低了成本。撥號防盜器作為家庭防盜器材的一員,非常實用。它進入工作警戒后,主控 CPU 不斷檢查觸發(fā)開關(guān)的狀態(tài),當(dāng)盜賊入室觸發(fā)開關(guān)時,立即啟動撥號程序向告警(當(dāng)然也可以通過修改軟件使其在現(xiàn)場發(fā)出高分貝音)。實踐證明,該系統(tǒng)快速、準(zhǔn)確。由于該系統(tǒng)電路簡單,而且利用的是公共通信網(wǎng),因此不存在建立的系統(tǒng)網(wǎng)絡(luò)問題,具有成本低、體積小、能耗極低、體積小、能耗極低且不影響正常打等突出優(yōu)點??梢宰鳛闀r鐘計時器來使用,真是一舉兩得。二 硬件系統(tǒng)方案設(shè)計2

4、.1撥號防盜器硬件系統(tǒng)方案2.1.1 硬件系統(tǒng)方案設(shè)計圖 2.1 為撥號器的系統(tǒng)方框圖,由單片機器、鍵盤輸入、數(shù)碼管顯示、觸發(fā)電路、撥號電路及電源等 6 部分組成。,負責(zé)檢測輸入/輸出顯示、模擬摘機、單片機器是整個系統(tǒng)的撥號摘機、撥號、等一系列的程序動作。這里使用了小引腳、高性能、低價位的 AT89S2052。- 2 -鍵盤輸入電路負責(zé)輸入電片機中一系列工作參數(shù)及功能設(shè)定。發(fā)光二極管數(shù)碼管顯示器在整個系統(tǒng)工作過程中充當(dāng)一個簡單的人機界面,用以顯示工作狀況及輸入/輸出的數(shù)據(jù)等。撥號防盜器的觸發(fā)電路用磁性開關(guān)(門磁開關(guān)),簡單可靠,也可用紅外探測器或無線門磁,以實現(xiàn)全方位遠距離監(jiān)測。器應(yīng)采用隱蔽安

5、裝,防止小偷發(fā)現(xiàn)。撥號及電路用來完成模擬摘機、撥號、發(fā)出音、等工作過程,它的工作由單片機。電源部分負責(zé)對整個系統(tǒng)供電由線上取得工作電流并對后備電池充電,撥號后備電池供電。圖 2.1撥號防盜器方框圖2.1.2 脈沖撥號原理脈沖撥號是目前機兩種撥號方式中的一種,另一種為雙音多頻撥號方式。脈沖撥號就是指在機上撥入的號碼以脈沖個數(shù)的形式發(fā)出,也就是說,在已經(jīng)通以直流電流的回路上,利用撥號盤及發(fā)號電路將回路斷開、再接通號碼的。在操作中,若用戶撥 1,則送而形成的脈沖信號,來完成輸入出 1 個脈沖,回路中斷一次、接通一次;撥 2,則發(fā)出 2 個脈沖,回路斷一次、接通一次、再斷一次;而撥 0 時,則發(fā)出 1

6、0 個脈沖,回路斷、接通輪流10 次。圖 2.2 為號碼“32”的脈沖波形。- 3 -顯示模塊撥號電路單片機器觸發(fā)開關(guān)電源鍵盤通斷時間號碼 2 的脈沖號字間碼間隔號碼 3的脈沖時間圖 2.2號碼“32”的脈沖波形正常撥號時,電路電流中斷的時間一般在 5865ms 之間,視斷續(xù)比的不同而不同??焖贀芴枙r,只要取一半時間即可。電路電流接通的時間(即在同一位號碼中的 2 個斷脈沖之間的接通電流時間)約在 3242ms 之間,視斷續(xù)比的不同而不同??焖贀芴枙r,只要取一半時間即可。顯然脈沖周期等于脈沖中斷時間和脈沖接通時間之和,每一個周期的時間為 100ms 左右。快速撥號時,在 50ms 左右。2 位

7、號碼(即 2 組脈沖串)之間的最小時間間隔,通常為 800ms 左右;而快速撥號時,其值減半,為 400ms 左右。我國目前采用的脈沖撥號的速率是 10PPS(每秒的脈沖數(shù)),即每秒發(fā)出 10 個脈沖,因此上述各參數(shù)不存在快速撥號時的值。為了提高撥號的可靠性及穩(wěn)定性,這里設(shè)計時選定更低的脈沖撥號速率:1個脈沖代表1,2 個脈沖代表撥出 2,10 個脈沖代表撥出 0,每個脈沖的寬度和間隔為 100ms。工作時首先進行模擬摘機,然后開始脈沖撥號,撥出1 位號碼后停頓 500ms(保持接通)再撥下一位,直至全部撥再發(fā)音,最后。2.1.3脈沖撥號實現(xiàn)過程圖 2.3 為脈沖撥號的實現(xiàn)電路。線上的電壓約為

8、 5060V 左右。未撥號時電片機的 P3.0、P3.1 均輸出低電平。撥號過程如下:- 4 -單片機的 P3.0 輸出高電平,使 TR1 導(dǎo)通,由于線路上接入了負載 R1,這樣線的電壓下降,模擬摘機。單片機的 P3.0 開始輸出撥號脈沖,使線的電壓(電平)也呈高、低變化。1 個脈沖代表撥出 1,2 個脈沖代表撥出 2,10 個脈沖代表撥出 0,每個脈沖的寬度和間隔均為 100ms。撥出 1 位號碼后停頓 500ms(保持 P3.0 高電平)再撥下一位,直至全部撥完。P3.0 保持高電平(保持線路接通),P3.1 輸出1KHz 的音脈沖驅(qū)動TR2,以 2Hz 進行調(diào)制(即接通 1kHz 信號

9、0.5s、斷開 1kHz 信號 0.5s),這樣從接聽方的中就會聽到“嘟、嘟”的聲。音的時間根據(jù)設(shè)計為 60s。60 后,P3.1 輸出低電平,TR2 截止,停止。隨后 P3.0 也輸出低電平,模擬。完成一次過程。VCCR1R2R5C1TR1TR2R6ZND單片機BD1C2D1線圖 2.3脈沖撥號實現(xiàn)電路2.1.4AT89S2052 單片機的功能特點撥號防盜器的器是單片機 AT89S2052。AT89S2052 是美國ATMEL 半導(dǎo)體公司生產(chǎn)的一種高性能單片機。該單片機以與 MCS-51 系列單片機高度兼容、低功耗、可以在接近零頻率下工作等諸多優(yōu)點,而廣泛應(yīng)用于各類計算機系統(tǒng)、工業(yè)、電信設(shè)備

10、、消費類中。由于 ATMEL 是全球最大的 FLASH和 EEPROM 生產(chǎn)制造公司之一,加之以其 EEPROM 技術(shù)與 INTEL 的 80C51 內(nèi)核技術(shù)交換,使 ATMEL 擁有了 80C51 內(nèi)核的使用權(quán),其生產(chǎn)的 AT89 系列電片機不僅與80C51 有極好的兼容性,而且具有極高的性能價格比。- 5 -P3.0 P3.11. AT89S2051 的主要性能特點指令與 MCS-51 完全兼容;內(nèi)帶 2KB 可編程器(FLASH MEMORY)可重復(fù)擦寫 1000 次;數(shù)據(jù)保留 10 年;工作電壓范圍 2.76V;工作頻率 024MHZ;兩極程序加密鎖定;128B 內(nèi)部 RAM;15 條

11、可編程雙向 I/O 口線;2 個 16 位定時器/計時器;5 個中斷源;可編程串行 UART 通道;輸出口可直接驅(qū)動 LED;片內(nèi)含模擬比較器;低功耗的閑置和掉電模式。AT89S2052 是 AT89 系列電片機種的一種精簡。它是將 TA89C52 的 P0口、P2 口、EA/Vpp、ALE/PROG、PSEN 口線省去后,形成的一種僅 20 個引腳的單片機,相當(dāng)于早期 INTEL8031 的最小應(yīng)用系統(tǒng)。這對于一些不太復(fù)雜的場合,僅用一片 AT89S2052 就足夠了,是真正意義上的“單片機”。由于將多功能 8 位 CPU 和 2KB 的器集成在單個中,使其成為一種高效的微器。AT89S20

12、52 的出現(xiàn)為很多規(guī)模不太大的系統(tǒng)提供了一種極佳的選擇方案,使傳統(tǒng)的 51 系列單片機的體積大、功耗大、可選模式少等諸多困擾設(shè)計工程師們的致命弱點不復(fù)存在。2. 引腳功能介紹AT89S2052 引腳外形。Vcc:電源端。GND:接地。P1 口(P1.0P1.7):是一個 8 位雙向 I/O 口,其中 P1.2 至 P1.7 提供內(nèi)部上拉電阻,P1.0 和 P1.1 需外接上拉電阻。P1.0 和 P1.1 也可作為片內(nèi)精確模擬比較器的正向輸入(AINO)和反向輸入(AINI)。P1 口輸出緩沖器能提供 20mA 的灌電流,可直接驅(qū)動 LED。P1 口寫入“1”后可用作輸入。P3 口:引腳 P3.

13、0 至 P3.7(P3.5 除外)是 7 個帶內(nèi)部上拉電阻的雙向 I/O 口線。原 P3.6 不能使用,已連接片內(nèi)比較器輸出端。與 P1 口相同,P3 口也能提供 20mA的灌電流,并可直接驅(qū)動 LED 顯示器。與 80C51 相同,P3 口也有第 2 功能,P3.0作為串行數(shù)據(jù)接收 RXD;P3.1 作為串行數(shù)據(jù)TXD;P3.2 為外部中斷 0 申請INT0;P3.3 為外部中斷 1 申請 INT1;P3.4 為定時器/計時器 0 輸入;P3.5 位定時器/計數(shù)器 1 輸入;P3.7 無第 2 功能 RD。- 6 -RST:輸入。要使可靠復(fù)位,要保持 RST 引腳 2 個周期的高電平。XTA

14、L1:反向振蕩放大的輸入及內(nèi)部時鐘電路的殊榮。XTAL2:來自反向振蕩放大器的輸出。3. 特殊功能寄存器(SFR)與 80C51 完全相同4. 程序器鎖定AT89S2052 片內(nèi)有 2 個鎖,可以不編程(U),也可以編程(P),以獲得一些附加的特性,如表 2.1 所示。表 2.1程序器鎖定5、閑置模式在閑置模式下,CPU 自身處于休眠狀態(tài),而片內(nèi)所有其他設(shè)備保持工作狀態(tài)。該模式是軟件生成的。在該模式期間,片內(nèi) RAM 和所有特殊功能寄存器的內(nèi)容保持不變。閑置模式可以由中斷或硬件復(fù)位終止。如果不采用外部上拉,P1.0 和 P1.1 應(yīng)置 0;如果采用外部上拉,則置 1。應(yīng)注意的是,當(dāng)閑置模式被硬

15、件復(fù)位中止時,器件要從閑置處恢復(fù)程序的執(zhí)行,執(zhí)行 2 個周期后,內(nèi)部復(fù)位算法才起作用。此時,硬件內(nèi)部 RAM,但端口引腳。為了排除閑置被復(fù)位中止端口意外寫入的可能性,跟在生成閑置模式后的指令不應(yīng)是對端口引腳的讀/寫操作。6.掉電模式在掉電模式下,振蕩器停止工作,生成掉電狀態(tài)的指令是最后執(zhí)行的一條指令。片內(nèi) RAM 和特殊功能寄存器保持其值不變直到掉電模式終止。從掉電模式退出的唯一辦法是硬件復(fù)位。復(fù)位將重新定義特殊功能寄存器(SFR),但影響片內(nèi) RAM。在 Vcc 沒有恢復(fù)到其正常工作電壓之前,不應(yīng)進行復(fù)位,且復(fù)位的保持時間應(yīng)足夠長,使振蕩器能重新開始工作并穩(wěn)定下來。同樣,如果不采用外部- 7

16、 -編程鎖LB1LB2保護模式1UU沒有編程鎖定特性2PU對器進一步編程3PP同模式 2,同時校驗下拉,P1.0 和 P1.1 應(yīng)置 0,如果采用外部上拉,則置 1。2.2 時鐘計時器的硬件設(shè)計方案論證分析2.2.1 功能要求時鐘計時器要求用六位 LED 數(shù)碼管顯示時、分、秒、以二十四小時行,使用按鍵開關(guān)實現(xiàn)時,分調(diào)整功能。2.2.2方案論證為實現(xiàn) LED 顯示器的數(shù)字顯示,可以采用靜態(tài)顯示法和動態(tài)顯示法。由于靜態(tài)顯示法需要數(shù)據(jù)鎖存器等硬件,接口復(fù)雜一些,考慮到時鐘顯示只有六位,且系統(tǒng)沒有其它復(fù)雜的處理任務(wù),所以決定用動態(tài)掃描實現(xiàn) LED 顯示。單片機采用易購的AT89S52 系列,這種單片機

17、可具有足夠的空余硬件,以實現(xiàn)其它的擴充功能。若使用電池供電,可采用低電壓的 LV 系列單片機時鐘計時器電路系統(tǒng)的總體設(shè)計框架如圖 3.1 所示。圖 3.1 硬件系統(tǒng)的總體設(shè)計框架2.2.3 系統(tǒng)硬件電路設(shè)計撥號防盜器的硬件電路設(shè)計描述為了發(fā)揮電片機強大的計算、能力,充分發(fā)揮軟件的優(yōu)勢,這里極大地簡化了電路,但可實現(xiàn)以前需要幾片甚至十幾片小規(guī)模數(shù)字電路才能完成的任- 8 -AT89S52列驅(qū)動6 位 LED 顯示器單片機控制器務(wù)。電路原理,共有 4 個按鍵,即 rst、ok、up、set。rst:系統(tǒng)復(fù)位鍵。ok:輸入數(shù)據(jù)確認鍵。up:顯示的數(shù)字增加鍵。set:工作模式設(shè)定鍵,可設(shè)定、工作、輸入

18、時間 t1、輸入時間 t2 及輸入號碼 5 種模式。磁性開關(guān)即為裝于窗口的防盜感應(yīng)開關(guān),門關(guān)閉時常開,門打開時閉合接通。當(dāng)然也可改用其他的感應(yīng)器件,如激光探測、超聲波感應(yīng)、熱釋電感應(yīng)、主動紅外線探測或無線門磁等,以實現(xiàn)全方位遠距離檢測。為了防止磁性開關(guān)離器較遠而產(chǎn)生引入干擾,使用了光耦作信號傳遞,效果良好。LED 數(shù)碼管用于工作狀態(tài)指示或輸入數(shù)據(jù)指示。L1、L2 接線,ZND 為擊穿電壓 120V 的壓敏二極管,防止電路受雷電干擾。系統(tǒng)處于低功耗待機狀態(tài)(此時耗電僅2mA 左右),由線上取電工作,并對 3.6V/60mA 鎳鉻電池充電,當(dāng)輸入數(shù)據(jù)進行設(shè)定或進行撥號時,耗電會達到 10mA,這時

19、主要由鎳鉻電池供電。由于有鎳鉻電池后備供電,即使線斷電也使已輸入的數(shù)據(jù)丟失。該機除用于防盜外,若對軟件進行一些修改,也可通過線進行數(shù)據(jù)傳遞。三極管 T1、T2 及電阻 R1、R2撥號及電路,其工作原理前面已作詳細介紹。4.1.2 時鐘計時器的硬件電路設(shè)計描述時鐘計時器的硬件電路,采用AT89S52 單片機最小化應(yīng)用設(shè)計,顯示采用共陽七段 LED 顯示器,P0 口輸出段數(shù)碼數(shù)據(jù),P2.0P2.5 口作列掃描輸出,P1.0,P1.1 和P1.2 口接三個按鈕開關(guān)用以實現(xiàn)調(diào)時,調(diào)分功能.為了提供共陽 LED 數(shù)碼管的驅(qū)動電壓,用三極管 8550 作電源驅(qū)動輸出。采用 12MHZ 晶振有利于提高秒計時

20、的精確性。硬件電路圖如圖 3.2 示。- 9 -1234561234561234561234561234561234567878787878784.7K*3124039P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 RST RXD TXD INT0 INT1 T0 T1 WR RDXTAL2 XTAL1 VSSVCC P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 EA ALE PSEN P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0343837567891036353433323130111251

21、0*82928272625131415161718192423222112204.7K*8數(shù)據(jù)輸入線DS69DS59+5vDS494.7KDS34.7K9DS24.7K94.7KDS19VCC4.7KC1010uF/10vC90 1uFC3JZ47uF4.7K3.6v/60m A DZ3244C20.01uF4.7v/1w+5v+5vR.75KC8uF/16vAT89C52R8KDZ2IN4007 R3060 J1 T2D1C530pF R3050IN4007 T1 4 7K T2Y1 12MHZC430pF4 7K +5vT1 4 7K T0BD1R02K 1A/400VC01uFT4T5T

22、6T3+5vC6C7U1 0 022uF/250V 0.022uF/250V R471K R9ZNDPC817R04K R03K圖 3.2具有時鐘功能的器原理圖三 系統(tǒng)的軟件設(shè)計3.1撥號防盜器程序設(shè)計- 10 -a b fNC b acd ef e cgdpdp GNDgda b fNC b acd ef e cgdpdp GNDgda b fNC b acd ef e cgdpdp GNDgda b fNC b acd ef e cgdpdp GNDgda b fNC b acd ef e cgdpdp GNDgda b fNC b acd ef e cgdpdp GNDgd3.1.1 主

23、程序設(shè)計主程序的工作過程為:先進行初始化工作,隨后根據(jù)輸入的鍵值分別散轉(zhuǎn)輸入的鍵值分別散轉(zhuǎn)至對應(yīng)的子程序(、警戒工作、輸入時間 t1、輸入時間t2、輸入號碼)循環(huán)工作。T0 為 100ms 定時中斷服務(wù)子程序,它實現(xiàn)精確的撥號脈沖時序。INT0 外中斷服務(wù)子函數(shù)用于實現(xiàn)功能選擇;而 INT1 外中斷服務(wù)子函數(shù)則檢測防盜觸發(fā)開關(guān)的狀態(tài)。主程序狀態(tài)流程圖如圖 3.6 所示。INT0 外中斷服務(wù)子函數(shù)狀態(tài)流程圖及 INT1外中斷服務(wù)子函數(shù)的狀態(tài)流程圖分別如圖 3.7、圖示。開始圖 3.6 主程序狀態(tài)流程- 11 -輸 入號碼輸入t2輸入t1工作關(guān)機根據(jù) set 鍵值散轉(zhuǎn)關(guān)閉撥號、線路定時器 T0 初

24、始化圖 3.7 INT0 外中斷服務(wù)子函數(shù)狀態(tài)流程INT1 外中斷服務(wù)子函數(shù)開始INT1 外中斷服務(wù)子函數(shù)結(jié)束圖 3.8 INT1 外中斷服務(wù)子函數(shù)結(jié)束3.2 時鐘顯示程序設(shè)計3.2.1 主函數(shù)本設(shè)計中計時采用定時器 T0 中斷完成,其余狀態(tài)循環(huán)調(diào)用顯示子函數(shù)及鍵掃描子函數(shù),當(dāng)端口開關(guān)按下時,轉(zhuǎn)入相應(yīng)調(diào)時功能。其主函數(shù)執(zhí)行流程如圖3.3 所示。- 12 -門控開關(guān)共 10 次INT0 外中斷服務(wù)子函數(shù)結(jié)束系統(tǒng)進入低功耗待機狀態(tài)如鍵值大于 5,則鍵值回 0如 set 鍵按下,則 set 鍵值加 1INT0 外中斷服務(wù)子函數(shù)開始開始N鍵按下?進入調(diào)時功能圖 3.3 主函數(shù)流程圖3.2.2 LED

25、顯示子函數(shù)數(shù)碼管顯示的數(shù)據(jù)存放在內(nèi)存單元 dis0dis5中,其中 dis0dis1存放秒數(shù)據(jù),dis2dis3存放分?jǐn)?shù)據(jù),dis4dis5存放時數(shù)據(jù),每一單元內(nèi)均為十進制 BCD 碼。由于采用軟件動態(tài)掃描實現(xiàn)數(shù)據(jù)顯示功能,顯示用的十進制 BCD 碼數(shù)據(jù)的對應(yīng)段碼存放在 ROM 表(dis711)中,顯示時,先取出 dis0dis5 中的某一數(shù)據(jù),然后查得對應(yīng)得顯示段碼從 P0 口輸出,P2 口將對應(yīng)得數(shù)碼管選中供電,就能顯示該地址單元的數(shù)據(jù)值。3.2.3 定時器 T0 中斷函數(shù)定時器 T0 用于時間計時。定時溢出中斷周期可設(shè)為 50ms,中斷進入后先判- 13 -調(diào)用顯示子函數(shù)T0 中斷T0

26、、T1 設(shè)為 16 位計數(shù)器模式顯示單元清 0斷,中斷計時累計 20 次(即 1ms)妙計數(shù)單元進行加 1 操作。時鐘計數(shù)單元在 義的 6 個單元(timedata6)中。timedata0timedata1存放秒數(shù)據(jù), timedata2timedata3存放分?jǐn)?shù)據(jù),timedata4timedata5存放時數(shù)據(jù)。最大計時值為 23 小時 59 分 59 秒。在計數(shù)單元中采用十進制 BCD 碼計數(shù),秒,分、時之間滿 60 進位。T0 中斷服務(wù)程序執(zhí)行流程如圖 3.4 所示。1s 到?圖 3.4 T0中斷函數(shù)3.2.4 中斷函數(shù)T1 中斷服務(wù)程序用于指示調(diào)整數(shù)字單元的亮閃,在時間調(diào)整狀態(tài)下,每

27、過0.4s,將對應(yīng)單元的顯示數(shù)據(jù)換成“熄滅符”數(shù)據(jù)(0x0a)。這樣,在調(diào)整時間時,對應(yīng)調(diào)整單元的顯示數(shù)據(jù)會間隔閃亮。3.2.5 功能函數(shù)- 14 -恢復(fù)現(xiàn)場,中斷返回加 1 處理保護現(xiàn)場T0 中斷調(diào)時功能函數(shù)的設(shè)計方法是:按下 T0 鍵,進入調(diào)分狀態(tài),時鐘停止走動;按 T1 或 T2 鍵可進行加 1 或減 1 操作 ;繼續(xù)按 T0 鍵可分別進行分十位、時個調(diào)整;最后按 T0 建將位和調(diào)整狀態(tài),時鐘開始計時運行。四 系統(tǒng)的調(diào)試部分4.1 時鐘系統(tǒng)的調(diào)試4.1.1 時鐘系統(tǒng)的硬件調(diào)試硬件調(diào)試時可先檢查印制板及焊接的質(zhì)量情況,在檢查無誤后可通電檢查LED 顯示器的點亮狀況。若亮度不理想,可以調(diào)整

28、P0 口的電阻大小,一般情況下取 200 歐姆電阻即可獲得滿意的亮度效果。4.1.2 時鐘系統(tǒng)的軟件調(diào)試軟件調(diào)試 Keil C51 編譯器,源程序編譯及位一個個地進行,最后可結(jié)合硬件實時運行調(diào)試。調(diào)試應(yīng)分段或以子函數(shù)為單4.1.3 性能分析按照設(shè)計程序分析,LED 顯示器動態(tài)掃描頻率約為 167Hz,實際使用觀察時完全沒有閃爍,實際計時時精度較高,可滿足一般場合的應(yīng)用需要。4.2 撥號器功能調(diào)試通電前應(yīng)檢查焊接質(zhì)量,確認無短路、虛焊等故障。將撥碼開關(guān) J2 指向下側(cè),即斷開 3.6V 鎳鉻電池與系統(tǒng)的連接。將外部直流可調(diào)穩(wěn)壓電源調(diào)整為 3.6V。接入系統(tǒng)的 Vcc 與地。如果系統(tǒng)耗電小于 15

29、mA 為正常,否則應(yīng)檢查是否有短 路、元器件不良或錯焊現(xiàn)象存在。隨后取下外接直流穩(wěn)壓電源,恢復(fù) 3.6V 鎳鉻電池與系統(tǒng)的連接,進行軟、硬件統(tǒng)調(diào)測試。由于 AT89S52 的 I/O 引腳有限,故數(shù)碼管只設(shè)一位,因此輸入數(shù)字時只能分階段一位一位輸入。假設(shè)需輸入 t1=061,t2=025,號碼=12345678,在此詳述如下:地 1 步:接上線(也即接上電源)后,數(shù)碼管顯示“E”,意為數(shù)據(jù)錯- 15 -誤,因為此時我們尚未輸入任何數(shù)據(jù)。第 2 步:點按一下 set 鍵,鍵值加 1,即此時 set=1.這時數(shù)碼管最下的一橫點亮,顯示“_”,意為可輸入時間 t1,點按 ok 鍵確認(小數(shù)點被同時點

30、亮)。然后數(shù)碼管顯示數(shù)字“0”。按下 up 鍵后,數(shù)字開始從 09 循環(huán)遞增,調(diào)至 0 后松開 up 鍵,點按 ok鍵確認(小數(shù)點被同時點亮)。此時百位數(shù)字“0”存入內(nèi)存。按下 up 鍵后,數(shù)字開始循環(huán)遞增,調(diào)至 1 后松開 up 鍵,點按 ok 鍵確認(小數(shù)點被同時點亮)。此數(shù)字“6”存入內(nèi)存。按下 up 鍵后,數(shù)字開始循環(huán)遞增,調(diào)至 1 后松開 up 鍵,點按 ok 鍵確認(小數(shù)點被同時點亮)。此時個位數(shù)字“6”存入內(nèi)存。這樣就完成了將 061(代表 t1=61s)存入內(nèi)存的過程。同時數(shù)碼管又恢復(fù)顯示“_”。第 3 步:點按一下 set 鍵,鍵值加 1,即此時 set=2。這時數(shù)碼管下面的

31、二橫點亮,顯示“二”,意為可輸入時間 t2,點按 ok 鍵確認(小數(shù)點被同時點亮)。然后數(shù)碼管顯示數(shù)字“0”。按下 up 鍵后,數(shù)字開始從從 09 循環(huán)遞增,調(diào)至 0 后松開 up 鍵,點按 ok 鍵確認(小數(shù)點被同時點亮)。此時百位數(shù)字“0”存入內(nèi)存。按下 up 鍵后,數(shù)字開始循環(huán)遞增,調(diào)至后松開 up 鍵,點按 ok 鍵確認(小數(shù)點被同時點亮)。此數(shù)字“”存入內(nèi)存。按下 up 鍵后,數(shù)字開始循環(huán)遞增,調(diào)至后松開 up 鍵,點按 ok 鍵確認(小數(shù)點被同時點亮)。此時個位數(shù)字“”存入內(nèi)存。這樣就完成了將(代表 t1=s)存入內(nèi)存的過程。同時數(shù)碼管又恢復(fù)顯示“二”以后的調(diào)試同前面的方法相同。五

32、 總結(jié)以單片機 89S52 作為部件,利用單片機實現(xiàn)了撥號、時- 16 -鐘顯示等功能,最終使系統(tǒng)完成設(shè)計要求的各項任務(wù)。在系統(tǒng)設(shè)計過程中,力求硬件線路簡單,并綜合運用了 C 語言、單片機等各種知識,采用了一些特別的方法使磁電檢測達到最佳的效果 ,充分發(fā)揮軟件編程方便靈活的特點,來滿足系統(tǒng)設(shè)計的要求。在設(shè)計過程中主要遇到幾個關(guān)鍵性問題。如檢測部分信號不穩(wěn)定,經(jīng)檢查該問題與周圍的干擾有密切相關(guān),將檢測部分的進行了合理,使檢測信號很準(zhǔn)確地檢測到。還有撥號電路模塊起初方案采用電橋和三極管進行,此設(shè)計采用單片機 I/O 口直接指示燈以及開關(guān)來進行。不僅節(jié)省了硬件,還提高了系統(tǒng)的穩(wěn)定性。變量定義及初始化

33、模塊參考文獻.電子報合訂本 2002 年上:26112電子世界,2004,9(167):81-823耿,.單片機創(chuàng)新開發(fā)與人制作.北京 :北京航空航天大學(xué),2005.3:85-1204吳祖峰,.傳感器個數(shù)及距離對盲分離影響的分析.電子科技大學(xué)學(xué)報,2006,4,35(2):186-1885,立,.基于智能功率模塊的無刷直流電機器.西北工業(yè)大學(xué)學(xué)報,2006,4,24(2):161-1646,黃玉水.一種改進型 PDM 調(diào)動方式.南昌大學(xué)學(xué)報,2006,3,28(1):99-1027.大學(xué)生電子設(shè)計競賽訓(xùn)練. 北京:電子工業(yè),2005.18閆志峰,.管道弧焊人系統(tǒng)設(shè)計.哈爾濱理工大學(xué)學(xué)報,9,.

34、單片機實驗與實踐(一).北京:北京航空航天大學(xué)社,2003.12:123-13110黃河,.Protel培訓(xùn).北京:,2004.9- 17 -致 謝How time flies!馬上就要畢業(yè)了。在院、系和的關(guān)心、教育和幫助下,經(jīng)過五年的努力,已經(jīng)使變成一個動手動腦的復(fù)合型。我將利用在校學(xué)習(xí)的專業(yè)知識投身職業(yè)教育事業(yè),為我國的職業(yè)教育發(fā)展做出的貢獻。五年來我學(xué)習(xí)到了大量的專業(yè)理論知識和動手實踐技能,畢業(yè)設(shè)計是對我這五年來學(xué)習(xí)的最好總結(jié)。在畢業(yè)設(shè)計過程中我遇到了很多,正是因為這些困難使我學(xué)習(xí)到了很多有用的實用知識,加深了書本理論知識和實踐的結(jié)合,這對我以后從事專業(yè)課教學(xué)工作是很有益處的。在大學(xué)的學(xué)

35、習(xí)期間,我了大學(xué)更重要的是教給我分析和解決問題的方法,這些必將對我以后的工作和生活產(chǎn)生深遠的影響。在畢業(yè)設(shè)計過程中,得到了曲的大力支持和幫助,請我向曲表示誠摯的感謝!五年來我了母校的發(fā)展壯大,希望母校再接再厲,健全體制,更加輝煌的明天。最后祝愿偉大的母校前程似錦!祝愿所有的身體健康,工作順利!- 18 -附錄附錄 1附錄 2附錄 3附錄 4程序系統(tǒng)使用說明英文資料系統(tǒng) PCB 板圖- 19 -附錄 1:程序(1)撥號程序程序設(shè)計時需要設(shè)立 3 個數(shù)組 DATA20、X3、Y3。DATA20用于存放電話號碼(最長 20 位),X3用于存放時間 t1(000999s),Y3用于存放時間 t2(00

36、0999s)。另外還要設(shè)立 3 個軟件計數(shù)器 data_flag、t1_flag、t2_flag。Data_flag 用于統(tǒng)計輸入的號碼位長,t1_flag 用于統(tǒng)計輸入的時間 t1 位長,t2 位長。uchar DATA20; uchar X3; uchar Y3;uchar flag;/*存放號碼的數(shù)組*/*存放時間 t1 數(shù)組*/*存放時間 t2 數(shù)組*/*RAM 區(qū)防干擾標(biāo)志*/uchar dataflag=0; /*輸入號碼計數(shù)器(最長 20 位)*/uchar set=0;uchar m=0;/*功能鍵值*/全局變量- 20 -uchar n=0; uint f;uchar t1f

37、lag=0;uchar t2flag=0; uchar cnt_1=0; uchar cnt_2=0;/*定時器 T0 初始化*/viod init_timer() TMOD=0x01;TH0=-(50000/256); TL0=-(50000%256); IE=0x82;/*輸入時間 t1 計數(shù)器(最長 3 位)*/*輸入時間 t2 計數(shù)器(最長 3 位)*/*時間 t1 單元數(shù)/*時間 t2 單元數(shù)算后暫存單元*/算后暫存單元*/定時器 T0 方式 1/裝載 100ms 定時初值/開中斷啟動器子程序模塊/*-啟動void work()uchar h; p1=0xdf; delay(1);i

38、f(set=1)器進入警戒-*/*數(shù)碼管左上角顯示“1”*/*進入時間 1 循環(huán)*/while(cnt<=x0*100+X1*10+X2)delay(1000);cnt_1+;/*計數(shù)器 cnt_1 累加*/if(set!=1)EX1=0;cnt_1=0;break;/*如按下 Set 鍵,則推出此循環(huán)*/else EX1=1;PCON=0x00;- 21 -if(set=1)if(cnt_1>=X0*100+X1*10+X2)EX1=1;cnt_1=0;/*時間 1 到,打開外中斷 1,計數(shù)器歸零*/*進入待機。若有 1s 以上開關(guān)動作,while(1)待機*/PCON=0x01

39、;if(f>=5PCON=0x00;break;)/*/EX1=0;if(set=1)/*關(guān)閉外中斷 1*/*進入時間 2 循環(huán)*/while(cnt_2<=Y0*100+Y1*10+Y2)delay(1000);cnt_2+;/*計時器 cnt_2 累加*/if(set!=1)cnt_2=0;break;/*如按下 Set 鍵,則此循環(huán)*/if(set=1)bh(); delay(3000); p3_7=0;/*時間 2 到,調(diào)用撥號子程序*/輸出端為低,可驅(qū)動蜂鳴器等for(h=0;h<60;h+)/*發(fā)出 60s 警音*/for(f=0;f<500;f+)f+;P

40、3_1=! P3_1;P1=0x5f;delay(1);P3_1=0;P1=0x7f;delay(500);- 22 -P3_7=1;/輸出端恢復(fù)高cnt_1=0;cnt_2=0;/*有關(guān)計數(shù)器、端口回到初始狀態(tài)*/P3_0=0;P3_1=0;P1_7=1;for(f=0;f<3;f+)delay(60000);/*關(guān)閉 3min,讓接警人進行或座機*/撥號脈沖子程序模塊/*-撥號-*/ void bh()data_flag=0; P3_0=1; p1_7=0;delay(1000);/*號碼計數(shù)器(20 位)歸零*/*接通線路*/*數(shù)碼管小數(shù)點亮*/while (DATAdata_fl

41、ag<10)/*號碼小于 10 進入循環(huán)撥號狀態(tài)*/if(DATAdata_flag=0)TR0=1;if(n=20)data_flag+; n=0;TR0=0; P3_0=1;P1_7=0;delay(500);/*若號碼為 0*/*啟動 T0 定時器*/*進行 20 次中斷,產(chǎn)生 10 個脈沖*/if(DATAdata_flag>0)TR=1;/*若號碼0 但<10*/*啟動 T0 定時器*/if(n=(DATAdata_flag*2)data_flag+;/*進行號碼 x2 次中斷,產(chǎn)生號碼個脈沖*/- 23 -n=0;TR0=0; P3_0=1;P1_7=0;dela

42、y(500); TR0=0;關(guān)機子程序模塊void stop()/*關(guān)機子程序if(flag=0x55)P1=0xfb; /*若標(biāo)志為 55H,說明內(nèi)存區(qū)未受干擾,數(shù)碼/管右下角顯示“1”else P1=0x86;delay(1);/否則數(shù)碼管顯示“E”/延時 1ms 再判if(flag=0x55)PCON=0x01; /進入低耗節(jié)電待機狀態(tài)delay(1);/延時 1ms完整代碼#include<AT89x052.H>/器件配置文件#define uchar unsigned char#define uint unsigned int/變量類型的宏定義uchar code DAT

43、A_7SEG10=0xC0,0xF9,0xA4,0xB0,0x990x92,0x82,0xF8,0x80,0x90,; /*09 數(shù)碼管段碼*/uchar DATA20; /*存放號碼的數(shù)組*/uchar x3;/*存放時間 t2 數(shù)組*/- 24 -uchar flag;/*RAM 區(qū)防干擾標(biāo)志*/uchar data_flag=0;/*輸入號碼計數(shù)器(最長 20 位)*/ uchar set=0;/* 功能鍵值*/uchar m=0;/全局變量uchar n=0;uint f;uchar t1_flag=0; uchar t2_flag=0; uchar cnt_1=0;uchar cnt

44、_2=0;/*輸入時間 1 計數(shù)器(最長 3 位)*/*輸入時間 2 計數(shù)器(最長 3 位)*/*時間 t1 單元數(shù)/*時間 t2 單元數(shù)算后暫存單元*/算后暫存單元*/*/void delay(uint k); void stop();void bh();/*延時子函數(shù)/*關(guān)機子函數(shù)/*撥號子函數(shù)*/*/*/*/*定時器 T0 初始化*/ void init_timer() TMOD=0x01;TH0=-(50000/256); TL0=-(50000%256); IE=0x82;/*/*100ms 定時中斷服務(wù)子函數(shù)*/ void zd0()interrupt 1P3_0=! P3_0;

45、P1_7=! P1_7;n+;/P3.0 每 100ms 取反一次,送出脈沖/數(shù)碼管小數(shù)點同步閃爍- 25 -TH0=-(50000/256); TL0=-(50000%256);/*/*100ms 定時中斷服務(wù)子函數(shù)*/ void zd0()interrupt 1p3_0=!P3_0;/P3.0 每 100ms 取反一次,送出脈沖P1_7=!P1_7;/數(shù)碼管小數(shù)點同步閃爍n+;TH0=-(50000/256); TL0=-(50000%256);/*/*INT0 中斷服務(wù)子函數(shù)*/ viod zd_int0()interrupt 0delay(10);if(P3_2=0)set+; if(

46、set>=5)set=0; if(set=1)flag=0x55;PCON=0x00;f=8;/功能鍵值遞增/鍵值的范圍 04/向 RAM 區(qū)的標(biāo)志 flag 寫入 55Hagain:if(P3_2=0)goto again;/若按鍵未/*/*INT1 中斷服務(wù)子函數(shù)*/ void zd_int1()interrupt 2uchar h;f=0;,則等待- 26 -for(h=0;h<10;h+)delay(100) if(P3_3=0)f+;/*檢查磁性開關(guān)(P3_3 狀態(tài))10 次,共 1s*/*/*-關(guān)機-*/ void stop()if(flag=0x55)P1=0xfb;

47、elsep1=0x86; delay(1);if(flag=0x55)PCON=0x01; delay(1);/數(shù)碼管右下角顯示“1”。/*進入節(jié)電待機狀態(tài)*/*/*延時 1ms*K 子函數(shù)*/ void delay(uint k)uint i,j; for(i=1;j<k;i+) for(j=0;j<60;j+);/*/*-輸入時間 t1*/viod in_time1()- 27 -P1=0xf7;delay(1); if(P3_5=0)delay(10);/*數(shù)碼管顯示“”*/*按下 OK 鍵確認并點亮小數(shù)點*/if(P3_5=0)P1=0x7f;m=0;t1_flag=0;delay(500); while(t1

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論