畢業設計(論文)基于單片機的智能電腦鐘_第1頁
畢業設計(論文)基于單片機的智能電腦鐘_第2頁
畢業設計(論文)基于單片機的智能電腦鐘_第3頁
畢業設計(論文)基于單片機的智能電腦鐘_第4頁
畢業設計(論文)基于單片機的智能電腦鐘_第5頁
已閱讀5頁,還剩37頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、東華理工大學長江學院畢業設計題 目: 基于單片機的智能電腦鐘英文題目: microcontroller-based intelligent computer clock學生姓名:學 號:08314314專 業: 電子信息工程系 別:機械與電子工程系指導老師: 二零一二年五月十六日摘 要基于在對單片機研究的基礎上,本文提出了一種以at89c51為核心的單片機構成數字電腦鐘的看法。at89c51芯片是美國atmel公司生產的低電壓、高性能8位單片機,片內含2kb的可反復擦寫的只讀程序存儲器128 bytes的隨機存儲數據存儲器(ram),器件采用高密度,非易失性存儲技術生產,兼容標準mcs-51指

2、令系統,片內置通用中央處理器和flash存儲單元。因此,在此基礎上進行了數字電腦鐘設計的工作,給出數字電腦鐘的軟件和硬件的設計。考慮到存在的各種干擾對系統的影響,從軟件和硬件設計方面進行分析,采用相應的措施以增強系統的抗干擾能力。該鐘的顯示電路采用led數碼管與at89c51的外部i/o引腳,即采用p0口為輸出口,p2口為位選,p1用來與外部輸入按鈕相連接,以用來控制數字鐘的各個功能。p0口要直接驅動8位led是不夠的,我們通過兩片74ls245對功率進行放大,如果沒有,led管將不能正常顯示。關鍵詞: 單片機、 數字鐘、 抗干擾、 定時器abstractbased on the resear

3、ch on single chips, through deep analysis on the digital clock, the thesis tried to probe into a realizing method of making a digital clock with at89c51 as the core-controlling chip. the chip, which is made by atmel inc. in the unite states, is a low voltage, high functional, 8 bit single chip. it c

4、ontains a 2kbytes rewritable rom and a 128 bytes ram. its parts are produced with atmens high density, non-easy-losing saving technology, and compatible with the standard mcs-51 instruction system. the chip encloses a currency 8bytes central processor and flash storage unit. it provides with a progr

5、am design of the digital clock both on hardware and software in this paper. considering the effect from various interferences on the system, the thesis analyze in software hardware and takes corresponding measures to enhance the anti-interference ability of the system.to design and application of th

6、e digital clock, the display part uses led. the led is joined with p0 and p2. obviously, it is not adequate for the i/o to drive 8-byte led. it needed to use two 74ls245 chips. it can enlarge the power. without it, the led cant display normally.key words: single chip、 digital clock、 anti-interferenc

7、e、 timer目 錄abstract緒 論1.1本課題研究的目的和意義1.2設計具體要求2系統總體設計2.1.1 單片機芯片的選擇方案和論證2.1.2 顯示模塊選擇方案和論證2.1.3 時鐘芯片的選擇方案和論證2.1.4總體方案及確定3系統硬件設計3.1 系統硬件框圖3.1.1主控制模塊3.1.2 時鐘電路模塊3.1.3顯示模塊3.1.4鍵盤接口模塊3.1.5電源模塊3.3 部分重要元器件的介紹3.3.1 at89c52芯片介紹3.1.2 ds1302時鐘芯片4其他芯片介紹3系統的軟件設計3.1 程序流程框圖3.1 軟件結構及流程顯示子程序程序流程圖陽歷程序流程圖4. 系統調試254.1 硬

8、件調試254.2 軟件調試25結 論26致 謝27參考文獻28附錄1 程序清單29附錄2 硬件圖30目 錄摘 要iabstractii緒 論11. 系統方案選擇和論證21.1 本設計的主要任務21.2 各模塊方案選擇和論證21.2.1 計時方案的選擇21.2.2 主控模塊的選擇21.2.3 顯示模塊的選擇31.2.4 控制按鍵的選擇31.2.5 系統各模塊的最終方案31.3 總體方案介紹41.3.1 總體設計框圖41.3.2 設計原理42. 系統硬件設計52.1 系統硬件概述52.2 主控制電路52.2.1 主要元件單片機at89c5162.2.2 at89c51芯片引腳圖62.2.3 at8

9、9c51主要特性62.2.4 at89c51管腳說明72.2.5 at89c51振蕩器特性82.2.6 at89c51芯片擦除82.2.7 at89c51結構特點92.3 顯示電路92.3.1 電路分析92.3.2 74ls245芯片介紹102.4 復位電路112.4.1 復位電路圖112.4.2 復位電路實現功能112.4.3 復位電路的工作原理122.5 電源電路142.5.1 電源電路功能142.5.2 電源電路芯片分析142.5.3 7805芯片142.5.4 橋式整流器153. 系統軟件設計173.1 系統軟件概述173.2 程序設計流程173.3 系統初始化和鍵盤處理程序183.4

10、 定時器t0中斷處理程序193.5 定時器t1中斷處理程序233.6 外部中斷0中斷處理程序254. 系統調試與脫機運行274.1 硬件調試274.1.1 脫機檢查274.1.2 聯機調試274.2 軟件調試274.3 脫機運行28結 論30致 謝31參考文獻32緒 論電子鐘是一種利用數字電路來顯示秒、分、時的計時裝置,與傳統的機械鐘相比,它具有走時準確、顯示直觀、無機械傳動裝置等優點,因而得到廣泛應用。隨著人們生活環境的不斷改善和美化,在許多場合可以看到數字電子鐘。在城市的主要營業場所、車站、碼頭等公共場所使用lcd數字電子鐘已經成為一種時尚。但目前市場上各式各樣的lcd數字電子鐘大多數用全

11、硬件電路實現,電路結構復雜,功率損耗大等缺點。因此有必要對數字電子鐘進行改進。隨著科技的進步、生活的提高、生活節奏的加快,人們對于時間的定時、報時等功能的要求越來越高。不僅要求時鐘能在要求的時間報時,而且還要求每天能夠按照一定順序、預先設置好的時間表進行多次報時;除了基本的一般時鐘的功能外,跑表功能也要包含在內,這樣要不的設計功能更齊全、更人性化的智能鐘。 這種智能鐘主要利用89c51單片機內部的定時器,再附加上一些其他資源來構成,其功能是很強的。智能鐘系統可靠性高、體積小、成本低、功能強,有著良好的人機對話功能,易于推廣,有著良好的應用前景。目前單片機已滲透到生活的各個領域,幾乎很難找到哪個

12、領域沒有單片機的足跡。導彈的導航裝置,飛機上各種儀表的控制,計算機的網絡通訊與數據傳輸,工業自動化過程的實時控制和數據處理,廣泛使用的各種智能ic卡,民用豪華轎車的安全保障系統,錄像機、攝像機、全自動洗衣機的控制,以及程控玩具、電子寵物等等,這些都離不開單片機。更不用說全自動控制領域的機器人、智能儀表、醫療器械了。因此,單片機的學習、開發與應用將造就一批計算機應用與智能化控制的工程師和科學家。科技越發達,智能化的東西就越多。基于單片機的智能電腦鐘,利用單片機內部的定時/計數器進行中斷定時,配合軟件延時實現時、分、秒的計時。除了基本的一般時鐘功能外,還能設計出功能更齊全、更人性化的智能鐘。單片機

13、即單片微型計算機,又稱為微控制器,它的體積小,功能強,可靠性好,價格又便宜,成為傳統工業技術改造和新產品更新換代的理想品種,具有廣闊的發展前景,其中最具有代表性的就是intel公司的89c51系列單片機。本文在對單片機研究的基礎上,以at89c51為核心控制芯片設計出的智能鐘具有更廣泛的前景。1. 系統方案選擇和論證1.1 本設計的主要任務這次設計的主要任務是使用單片機編程的方法很好的實現多功能電腦鐘的各項功能。(1) 能將用記時提供情報的作息時間表存入存儲器,控制作息時間的要求定時找鈴;(2) 具有定時功能;(3) 具有跑表功能;(4) 設置功能選擇開關和相應的操作按鍵,時鐘用6位數碼管分別

14、顯示時、分、秒。作跑表時顯示分、十秒、秒、十毫秒和毫秒。其要求:(1) 單片機采用89c51為主控制器;(2) 時鐘可設置報時、校時; (3) 作定時可設置定時時間的啟動; (4) 作跑表時可設置清零、啟動和停止。1.2 各模塊方案選擇和論證1.2.1 計時方案的選擇方案一:直接采用單片機定時計數器提供秒信號,使用程序實現年、月、日、星期、時、分、秒計數。采用此種方案雖然減少芯片的使用,節約成本,但是,實現的時間誤差較大,所以不采用此方案。方案二:采用ds1302時鐘芯片實現時鐘,ds1302芯片是一種高性能的時鐘芯片,可自動對秒、分、時、日、周、月、年進行計數,而且精度高,位的ram做為數據

15、暫存區,工作電壓2.5v5.5v范圍內,2.5v時耗電小于300na。綜觀上述兩種方案的論證與比較,我們采用單片機軟件控制作為本設計的計時方案。1.2.2 主控模塊的選擇 方案一: 用可編程邏輯器件設計。可采用altera公司的flex10k系列pld器件。設計起來結構清晰,各個模塊,從硬件上設計起來相對簡單,控制與顯示的模塊間的連接也會比較方便。但是考慮到本設計的特點,eda在功能擴展上比較受局限,而且eda占用的資源也相對多一些。從成本上來講,用可編程邏輯器件來設計也沒有什么優勢。方案二:用凌陽16位單片機設計。凌陽16位單片機有豐富的中斷源和時基,方便本實驗的設計。它的準確度相當高,并且

16、c語言和匯編兼容的編程環境也很方便來實現一些遞歸調用。i/o口功能也比較強大,方便使用。用凌陽16位單片機做控制器最有特色的就是它的可編程音頻處理,可完成語音的錄制播放和識別。這些都方便對設計進行擴展,使設計更加完善。成本也相對低一些。但是,在控制與顯示的結合上有些復雜,顯示模組資源相對有限,而且單片機的穩定性不是很高。方案三:主控芯片使用51系列at89c51單片機。at89c51算術運算功能強,軟件編程靈活、自由度大,可用軟件編程實現各種算法和邏輯控制,并且由于其功耗低、體積小、技術成熟和成本低等優點,使其在各個領域應用廣泛。綜觀上述兩種方案的論證與比較,我們采用at89c51作為主控模塊

17、芯片。1.2.3 顯示模塊的選擇方案一:使用液晶顯示屏顯示時間數字。 液晶顯示屏(lcd)具有輕薄短小、低耗電量、無輻射危險,平面直角顯示以及影象穩定不閃爍等優勢,可視面積大,畫面效果好,分辨率高,抗干擾能力強等特點。但是在顯示時,特別是使用秒表功能時掃描速度跟不上,屏幕會有明顯的閃爍,另外由于液晶是以點陣的模式顯示各種符號,需要利用控制芯片創建字符庫,編程工作量大,控制器的資源占用較多,其成本也偏高。在使用時,不能有靜電干擾,否則易燒壞液晶的顯示芯片,不易維護。方案二:相比液晶顯示,8段數碼管雖然操作比液晶顯示略顯繁瑣,但可視范圍十分寬,而且經濟實惠,也不需要復雜的驅動程序。所以最后選擇le

18、d數碼管顯示方案。使用傳統的led數碼管顯示。 數碼管具有:低能耗、低損耗、低壓、壽命長、耐老化、防曬、防潮、防火、防高(低)溫,對外界環境要求低,易于維護,同時其精度比較高,稱重輕,精確可靠,操作簡單。方案三:采用led數碼管動態掃描顯示,價格低廉,不僅減少了對i/o口的浪費,而且能夠同時驅動多個數碼管。其驅動程序容易編寫和理解。經過三種方案的比較,排除了前二種方案之后,最后選擇方案三:led數碼管動態掃描顯示。1.2.4 控制按鍵的選擇方案一:選取陣列式按鍵,減少了i/o口的使用,且掃描mn個按鍵只需占用m+n個i/o口即可實現,但給編程帶來了一定的困難,雖然節省了很多的口線,降低了成本,

19、但在此設計中所用的按鍵要盡量少,因此排除此方案。方案二:獨立式按鍵,每個按鍵實現一個功能,易于控制且編寫程序簡單,容易理解,雖然會占用一定的單片機i/o口資源,但是題目中要求使用的按鍵要盡量少。通過以上兩種方案比較,采用方案二。1.2.5 系統各模塊的最終方案經過方案論證與比較,本設計主要由單片機電路來實現,選擇at89c51作為主控,采用獨立式按鍵控制,led數碼管動態掃描顯示。1.3 總體方案介紹按照系統設計功能的要求,初步確定系統由主控模塊、時控模塊、顯示模塊和鍵盤接口模塊共4個模塊組成,其中用at89c52作為系統的主控模塊,時鐘電路用時鐘芯片ds1302、顯示模塊用led數碼管。電路

20、系統構成框圖如圖所示。at89c51主控制器鍵盤掃描電路ds1302時鐘模塊數碼顯示電路智能電腦鐘系統構成框圖主 控 模 塊按鍵模塊電源模塊顯示模塊鬧鈴模塊計時模塊定時模塊圖1 總體設計框圖1.3.2 設計原理整個流程過程主要有顯示部分,定時部分,計時部分三大部分,電源用+5v,at89c51主控制器。利用89c51片內定時器0定時發出中斷,進行秒、分、時計時,并把計時時間送至顯示器;利用定時器1,定時1毫秒發出中斷,進行毫秒、秒、分計時。電腦鐘測試i/o上相應位的輸入信號,決定計時的啟、停。2. 系統硬件設計(少了鍵盤功能介紹)2.1 系統硬件概述本系統的主要功能包括報時功能、定時功能和跑表

21、功能。具體來講,報時是指按設定的時間表,到點時發出一個報時控制信號,去操作某一個裝置,經過一段時間后,自動撤銷報時控制信號,報結束。可以按照固定的時間表進行報時,也可以按照隨機存放的時間表報時1。這種隨機的時間表可由用戶通過鍵盤輸入到89c51片內ram中。定時功能與報時功能不同,定時控制信號是按照時間表交替起作用的。時間表上的某一個設定時間到,則系統發出一控制信號,去接通(斷開)某一設備;下一個設定的時間到,則系統再次發出控制信號,去斷開(接通)上述設備。本系統的跑表功能是通過操作相應的按鍵,實現清零、啟動計時和停止計時,同時顯示累計時間。計時分辨率達1毫秒。2.2 主控制電路主控制部分采用

22、at89c51為控制芯片。其每個端口的功能分別如下:本次設計輸入都采用檢測p1口的引腳電位的變化來實現的,其每個引腳的功能分別如下:(s1)p1.0:調整按鈕,用來調整時間的。每按下一次,可改變調整時間的位選,循環一周后回到顯示時間界面。p1.1:加按鈕,在調整時間或在設置定時過程中向上調整。在秒表過程中,用來啟動秒表。p1.2:減按鈕,在調整時間或在設置定時過程中向下調整。在秒表過程中,用來停止秒表。p1.3:顯示日期按鈕,當按下后顯示當前日期,彈起回到顯示時間界面。p1.4:定時按鈕,按下后跳到調節定時時間界面,每按下一次,可改變定時時間的位選,循環一周后回到顯示時間界面。p1.5:顯示秒

23、表按鈕。當按下后跳到顯示秒表界面,當秒表停下后,再次按下此按鈕回到顯示時間界面。本次設計采用p0口作為顯示數據的輸出口,p0口輸出8位的顯示數據送給74ls245進行功率放大后,再送給數碼管顯示。p2口位位選口,同一時間只能一位位低電平,對應的該位顯示輸出。每位輪流顯示輸出,在高速輪流反復顯示下,根據視角暫留,就可以看到連續的顯示。p3.0和p3.1分別作為整點報時和定時時間到報警的鬧鈴驅動端7。2.2.1 主要元件單片機at89c51本設計主要運用的是單片機at89c51作為核心原件以及外圍電路構成,由于采用單片機,使得外圍電路結構非常的簡單,但功能并不比一般的時鐘少。89c51是一種帶4k

24、字節閃爍可編程可擦除只讀存儲器的低電壓,高性能cmos8位微處理器,俗稱單片機。89c51是一種帶2k字節閃爍可編程可擦除只讀存儲器的單片機。單片機的可擦除只讀存儲器可以反復擦除100次。該器件采用atmel高密度非易失存儲器制造技術制造,與工業標準的mcs-51指令集和輸出管腳相兼容。由于將多功能8位cpu和閃爍存儲器組合在單個芯片中,atmel的89c51是一種高效微控制器,89c51是它的一種精簡版本。89c51單片機為很多嵌入式控制系統提供了一種靈活性高且價廉的方案。 2.2.2 at89c51芯片引腳圖圖2 at89c51芯片引腳圖2.2.3 at89c51主要特性 與mcs-51

25、兼容 4k字節可編程閃爍存儲器 壽命:1000寫/擦循環 數據保留時間:10年 全靜態工作:0hz-24hz 三級程序存儲器鎖定 128*8位內部ram 32可編程i/o線 兩個16位定時器/計數器 5個中斷源 可編程串行通道 低功耗的閑置和掉電模式 片內振蕩器和時鐘電路 2.2.4 at89c51管腳說明 vcc:供電電壓。 gnd:接地。 p0口:p0口為一個8位漏級開路雙向i/o口,每腳可吸收8ttl門電流。當p1口的管腳第一次寫1時,被定義為高阻輸入。p0能夠用于外部程序數據存儲器,它可以被定義為數據/地址的第八位。在fiash編程時,p0 口作為原碼輸入口,當fiash進行校驗時,p

26、0輸出原碼,此時p0外部必須被拉高。 p1口:p1口是一個內部提供上拉電阻的8位雙向i/o口,p1口緩沖器能接收輸出4ttl門電流。p1口管腳寫入1后,被內部上拉為高,可用作輸入,p1口被外部下拉為低電平時,將輸出電流,這是由于內部上拉的緣故。在flash編程和校驗時,p1口作為第八位地址接收。 p2口:p2口為一個內部上拉電阻的8位雙向i/o口,p2口緩沖器可接收,輸出4個ttl門電流,當p2口被寫“1”時,其管腳被內部上拉電阻拉高,且作為輸入。并因此作為輸入時,p2口的管腳被外部拉低,將輸出電流。這是由于內部上拉的緣故。p2口當用于外部程序存儲器或16位地址外部數據存儲器進行存取時,p2口

27、輸出地址的高八位。在給出地址“1”時,它利用內部上拉優勢,當對外部八位地址數據存儲器進行讀寫時,p2口輸出其特殊功能寄存器的內容。p2口在flash編程和校驗時接收高八位地址信號和控制信號。 p3口:p3口管腳是8個帶內部上拉電阻的雙向i/o口,可接收輸出4個ttl門電流。當p3口寫入“1”后,它們被內部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,p3口將輸出電流(ill)這是由于上拉的緣故。 p3口也可作為at89c51的一些特殊功能口,如下表所示: 口管腳 備選功能 p3.0 rxd(串行輸入口) p3.1 txd(串行輸出口) p3.2 /int0(外部中斷0) p3.3

28、/int1(外部中斷1) p3.4 t0(記時器0外部輸入) p3.5 t1(記時器1外部輸入) p3.6 /wr(外部數據存儲器寫選通) p3.7 /rd(外部數據存儲器讀選通) p3口同時為閃爍編程和編程校驗接收一些控制信號。 rst:復位輸入。當振蕩器復位器件時,要保持rst腳兩個機器周期的高電平時間。 ale/prog:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節。在flash編程期間,此引腳用于輸入編程脈沖。在平時,ale端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數據存儲器

29、時,將跳過一個ale脈沖。如想禁止ale的輸出可在sfr8eh地址上置0。此時, ale只有在執行movx,movc指令是ale才起作用。另外,該引腳被略微拉高。如果微處理器在外部執行狀態ale禁止,置位無效。 /psen:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/psen有效。但在訪問外部數據存儲器時,這兩次有效的/psen信號將不出現。 /ea/vpp:當/ea保持低電平時,則在此期間外部程序存儲器(0000h-ffffh),不管是否有內部程序存儲器。注意加密方式1時,/ea將內部鎖定為reset;當/ea端保持高電平時,此間內部程序存儲器。在flash編程期

30、間,此引腳也用于施加12v編程電源(vpp)。 xtal1:反向振蕩放大器的輸入及內部時鐘工作電路的輸入。 xtal2:來自反向振蕩器的輸出。 2.2.5 at89c51振蕩器特性 xtal1和xtal2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時鐘源驅動器件,xtal2應不接。有余輸入至內部時鐘信號要通過一個二分頻觸發器,因此對外部時鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。 2.2.6 at89c51芯片擦除 整個perom陣列和三個鎖定位的電擦除可通過正確的控制信號組合,并保持ale管腳處于低電平10ms 來完

31、成。在芯片擦操作中,代碼陣列全被寫“1”且在任何非空存儲字節被重復編程以前,該操作必須被執行。 此外,at89c51設有穩態邏輯,可以在低到零頻率的條件下靜態邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,cpu停止工作。但ram,定時器,計數器,串口和中斷系統仍在工作。在掉電模式下,保存ram的內容并且凍結振蕩器,禁止所用其他芯片功能,直到下一個硬件復位為止。 2.2.7 at89c51結構特點8位cpu;片內振蕩器和時鐘電路;32根i/o線;外部存貯器尋址范圍rom、ram64k;2個16位的定時器/計數器;5個中斷源,兩個中斷優先級;全雙工串行口;布爾處理器;2.3 顯示電路電腦鐘的時鐘

32、時間在六位數碼管上進行顯示,因此,在內部ram中設置顯示緩沖區共8個單元。 led8led7led6led5led4led3led2led137h36h35h34h33h32h31h30h時十位時個位分隔分十位分個位分隔秒十位秒個位顯示部分采用兩片4位七段數碼管8,共顯示8位。在顯示時間時,時、分、秒分別占兩位,他們中間用“”隔開。顯示數據由p0口輸出后不足以驅動數碼管8,故采用兩片74ls245以增強其驅動能力。2.3.1 電路分析鍵盤顯示電路通過74ls245芯片與8051芯片來連接的,在硬件電路中采用p0口作為6位led數碼管的驅動接口,這是由于p0口輸出驅動電路工作處于開漏狀態,它的驅

33、動能力強,故只需外接上拉電阻便可以把led數碼管點亮。因為共陰的led數碼管它的驅動電流是分開的,在單片機進行動態掃描的時候不會影響彼此的電流,故該電路中的6位led數碼管均用共陰極的數碼管。復位、時鐘等電路按鈕電路6位數碼管顯示電路鬧鈴聲指示電路電源系統圖3 顯示框圖分析2.3.2 74ls245芯片介紹74ls245芯片引腳圖圖4 74ls245芯片引腳圖74ls245還具有雙向三態功能,既可以輸出,也可以輸入數據。當8051單片機的p0口總線負載達到或超過p0最大負載能力時,必須接入74ls245等總線驅動器。當片選端/ce低電平有效時,dir=“0”,信號由 b 向 a 傳輸;(接收)

34、dir=“1”,信號由 a 向 b 傳輸;(發送)當/ce為高電平時,a、b均為高阻態。由于p2口始終輸出地址的高8位,接口時74ls245的三態控制端/1g和/2g接地,p2口與驅動器輸入線對應相連。p0口與74ls245輸入端相連,/e端接地,保證數據現暢通。8051的/rd和/psen相與后接dir,使得/rd或/psen有效時,74ls245輸入(p0.idi),其它時間處于輸出(p0.idi)。dir傳送方向00ba01ab1x高阻狀態圖5 74ls245真值表2.4 復位電路復位電路采用按鈕電平復位電路2.4.1 復位電路圖圖6 復位電路圖圖7 復位原理圖2.4.2 復位電路實現功

35、能為確保微機系統中電路穩定可靠工作,復位電路是必不可少的一部分,復位電路的第一功能是上電復位。一般微機電路正常工作需要供電電源為5v5%,即4.755.25v。由于微機電路是時序數字電路,它需要穩定的時鐘信號,因此在電源上電時,只有當vcc超過4.75v低于5.25v以及晶體振蕩器穩定工作時,復位信號才被撤除,微機電路開始正常工作。目前為止,單片機復位電路主要有四種類型:(1)微分型復位電路;(2)積分型復位電路;(3)比較器型復位電路;(4)看門狗型復位電路2.4.3 復位電路的工作原理當mcs-5l系列單片機的復位引腳rst(全稱reset)出現2個機器周期以上的高電平時,單片機就執行復位

36、操作。如果rst持續為高電平,單片機就處于循環復位狀態。圖8 復位電路圖根據應用的要求,復位操作通常有兩種基本形式:上電復位和上電或開關復位。上電復位要求接通電源后,自動實現復位操作。上電后,保持rst一段高電平時間,由于單片機內的等效電阻的作用,也能達到上電復位的操作功能,如上電或開關復位要求電源接通后,單片機自動復位,并且在單片機運行期間,用開關操作也能使單片機復位。常用的上電或開關復位電路。上電后,由于電容的充電和反相門的作用,使rst持續一段時間的高電平。當單片機已在運行當中時,按下復位鍵k后松開,也能使rst為一段時間的高電平,從而實現上電或開關復位的操作。單片機復位后的狀態:單片機

37、的復位操作使單片機進入初始化狀態,其中包括使程序計數器pc0000h,這表明程序從0000h地址單元開始執行。單片機冷啟動后,片內ram為隨機值,運行中的復位操作不改變片內ram區中的內容,21個特殊功能寄存器復位后的狀態為確定值,見下表。值得指出的是,記住一些特殊功能寄存器復位后的主要狀態,對于了解單片機的初態,減少應用程序中的韌始化部分是十分必要的。說明:表中符號*為隨機狀態;a00h,表明累加器已被清零;特殊功能寄存器 初始狀態 特殊功能寄存器 初始狀態 a 00h tmod 00h b 00h tcon 00h psw 00h th0 00h sp 07h tl0 00h dpl 00

38、h th1 00h dph 00h tl1 00h p0p3 ffh sbuf 不定 ip *00000b scon 00h ie 0*00000b pcon 0*b 圖9 真值表psw00h,表明選寄存器0組為工作寄存器組;sp07h,表明堆棧指針指向片內ram 07h字節單元,根據堆棧操作的先加后壓法則,第一個被壓入的內容寫入到08h單元中;po-p3ffh,表明已向各端口線寫入1,此時,各端口既可用于輸入又可用于輸出;ip00000b,表明各個中斷源處于低優先級;ie000000b,表明各個中斷均被關斷;系統復位是任何微機系統執行的第一步,使整個控制芯片回到默認的硬件狀態下。51單片機的

39、復位是由reset引腳來控制的,此引腳與高電平相接超過24個振蕩周期后,51單片機即進入芯片內部復位狀態,而且一直在此狀態下等待,直到reset引腳轉為低電平后,才檢查ea引腳是高電平或低電平,若為高電平則執行芯片內部的程序代碼,若為低電平便會執行外部程序。51單片機在系統復位時,將其內部的一些重要寄存器設置為特定的值,(在特殊寄存器介紹時再做詳細說明)至于內部ram內部的數據則不變。2.5 電源電路本文設計的電源電路采用電容降壓橋式整流穩壓電路. 圖10 電源電路圖 電源電路原理:由220v交流電經過變壓器變為15v交流電,然后通過橋式整流電路和濾波電容后得到近似為直流的電信號,并將直流電信

40、號經過一個穩壓管7805得到一個穩定的5v電壓。2.5.1 電源電路功能電源采用整流穩壓來獲取。由變壓器t、橋式整流器、三段穩壓器7805組成,輸出5v的直流電壓。變壓器選用6w、單9v的;橋式整流器中的二極管采用選用的in4001硅整流二極管;三端穩壓器7805接線較簡單,連接時注意方向。有文字的面向自己,左邊的輸入接整流器輸出的正電壓,中間的是公共地(負極),右邊是輸出是+5v電壓輸出。2.5.2 電源電路芯片分析電源電路部分主要運用了7805芯片和橋式整流方式,下面做具體的介紹。2.5.3 7805芯片 7805是我們最常用到的穩壓芯片了,它的使用方便,用很簡單的電路即可以輸入一個直流穩

41、壓電源,它的輸出電壓恰好為5v,剛好是51系列單片機運行所需的電壓。下面我簡單的介紹一下它的3個引腳以及用它來構成的穩壓電路的資料。圖11 7805芯片其中1接整流器輸出的+電壓,2為公共地(也就是負極),3就是我們需要的正5v輸出電壓。2.5.4 橋式整流器橋式整流器是利用二極管的單向導通性進行整流的最常用的電路,常用來將交流電轉變為直流電9。橋式整流是對二極管半波整流的一種改進。半波整流利用二極管單向導通特性,在輸入為標準正弦波的情況下,輸出獲得正弦波的正半部分,負半部分則損失掉。橋式整流器利用四個二極管,兩兩對接。輸入正弦波的正半部分是兩只管導通,得到正的輸出;輸入正弦波的負半部分時,另

42、兩只管導通,由于這兩只管是反接的,所以輸出還是得到正弦波的正半部分。橋式整流器對輸入正弦波的利用效率比半波整流高一倍。橋式整流是交流電轉換成直流電的第一個步驟。3. 系統軟件設計3.1 系統軟件概述該電腦鐘的軟件由監控程序,報時、定時控制程序,跑表程序三個模塊組成。監控程序的功能是掃描鍵盤、鍵值判斷、數字鍵、命令鍵處理、顯示輸入數據等。報時、定時控制程序由主程序和中斷服務程序二部分組成。主程序完成對輸入的初始值是否合法的判斷和對定時器0的初始化,并對計時時間進行顯示。中斷服務程序完成秒、分、時計時,查時間表并在要求的時間發出控制信號。跑表功能的計時程序除給定時器1送初值不同且不發控制信號外,其

43、他與報時、定時控制程序大體相同6。則本系統的軟件部分總體上可分為四個部分,系統主程序:包括初始化和鍵盤處理程序;定時器0和中斷服務程序;定時器1中斷服務程序;外部中斷0中斷服務程序。3.2 程序設計流程軟件系統的功能的主要任務是完成電腦鐘的顯示調時、定時、秒表等功能。電腦鐘的主要流程圖如圖12。開始初始化 讀日期、時間 寫日期、時間 顯示子程序 時間修改子程序 日期修改子程序顯示結果返回 開關控制子程序 主程序流程圖圖12 流程圖主程序start: mov r0,#70h ;清70h-7ah共11個內存單元 mov r7,#0bh ; cleardisp: mov r0,#00h ; inc

44、r0 ; djnz r7,cleardisp ; mov 20h,#00h ;清20h(標志用) mov 7ah,#0ah ;放入熄滅符數據 mov tmod,#11h ;設t0、t1為16位定時器 mov tl0,#0b0h ;50ms定時初值(t0計時用) mov th0,#3ch ;50ms定時初值 mov tl1,#0b0h ;50ms定時初值(t1閃爍定時用) mov th1,#3ch ;50ms定時初值 setb ea ;總中斷開放 setb et0 ;允許t0中斷 setb tr0 ;開啟t0定時器 mov r4,#14h ;1秒定時用初值(50ms20) start1: lca

45、ll display ;調用顯示子程序 jnb p3.7,setmm1 ;p3.7口為0時轉時間調整程序 sjmp start1 ;p3.7口為1時跳回start1 setmm1: ljmp setmm ;轉到時間調整程序setmm3.3 系統初始化和鍵盤處理程序初始化程序主要完成對系統各部分的狀態和參數的設置,在初始化過程中,系統禁止任何中斷。初始化的部分包括:定時器1和定時器0的工作方式,設置初值、串口工作方式、堆棧,中斷優先級的設置等。其中堆棧設置的深度應考慮到系統中子程序嵌套調用和中斷嵌套情況,本系統設置為16個字節。 鍵盤處理程序是整個系統中最復雜的部分。采用定時器t0產生1ms中斷

46、讀取鍵盤,中斷程序只完成讀取鍵值的任務,以免影響別的中斷的響應。本系統的操作鍵是組合鍵,不是簡單的一鍵一義。在系統不同的狀態,按下同一鍵就會有不同的解釋,執行不同的處理程序,在這里鍵操作是作為狀態的轉換條件。為了簡單起見,把系統劃分為若干個狀態,給予編號,利用這些狀態號編寫程序就比較容易了。初始化程序org 0000h ;程序執行開始地址 ljmp start ;跳到標號start執行 org 0003h ;外中斷0中斷程序入口 reti ;外中斷0中斷返回 org 000bh ;定時器t0中斷程序入口 ljmp intt0 ;跳至intto執行 org 0013h ;外中斷1中斷程序入口 r

47、eti ;外中斷1中斷返回 org 001bh ;定時器t1中斷程序入口 ljmp intt1 ;跳至intt1執行 org 0023h ;串行中斷程序入口地址 reti ;串行中斷程序返回 顯示程序display: mov r1,#70h ;指向顯示數據首址 mov r5,#0feh ;掃描控制字初值 play: mov a,r5 ;掃描字放入a mov p3,a ;從p3口輸出 mov a,r1 ;取顯示數據到a mov dptr,#tab ;取段碼表地址 movc a,a+dptr ;查顯示數據對應段碼 mov p1,a ;段碼放入p1口 lcall dl1ms ;顯示1ms inc r

48、1 ;指向下一地址 mov a,r5 ;掃描控制字放入a jnb acc.5,endout ;acc.5=0時一次顯示結束 rl a ;a中數據循環左移 mov r5,a ;放回r5內 ajmp play ;跳回play循環 endout: setb p3.5 ;一次顯示結束,p3口復位 mov p1,#0ffh ;p1口復位 ret ;子程序返回3.4 定時器t0中斷處理程序定時器t0的中斷程序流程圖如圖13所示。(100ms)=10?(ms)=10?(10ms)=10?保護現場禁止中斷送t0初值允許中斷ms(ms)+1100ms10sec0(sec)+1恢復現場(10sec0)=6?(se

49、c0)=10?sec0010sec0(10sec0)+1ms010ms0(10ms)+110ms010ms0(100ms)+1讀鍵值送顯示段碼掃描控制字送串行口動態掃描控制字循環右移1位10sec00min0(min0)+1 ny y n n 返回 nn 返回 圖13 t0中斷處理程序上半段是跑表計時程序,下半段是動態掃描顯示和讀鍵程序。這里有一點需要注意,就是關于中斷延遲的處理問題。延遲的時間取決于其他中斷服務程序的執行情況,不是一個固定的值,所以這就很難保證2次中斷的時間間隔為1ms。這里作者采用了一種補償的辦法,可以使相鄰2次中斷響應的間隔相差不超過1個機器周期。這種方法的原理可簡單描述

50、為:在定時器溢出中斷得到響應時,停止定時器計數,讀出計數值,這個計數值反映了中斷響應的延遲時間,根據這個計數值算出到下一次中斷時,需要多長時間,據此來重新裝載和啟動定時器。這一段程序如下:t0中斷服務程序 intt0: push acc ;累加器入棧保護 push psw ;狀態字入棧保護 clr et0 ;關t0中斷允許 clr tr0 ;關閉定時器t0 mov a,#0b7h ;中斷響應時間同步修正 add a,tl0 ;低8位初值修正 mov tl0,a ;重裝初值(低8位修正值) mov a,#3ch ;高8位初值修正 addc a,th0 ; mov th0,a ;重裝初值(高8位修

51、正值) setb tr0 ;開啟定時器t0 djnz r4, outt0 ;20次中斷未到中斷退出 addss: mov r4,#14h ;20次中斷到(1秒)重賦初值 mov r0,#71h ;指向秒計時單元(71h-72h) acall add1 ;調用加1程序(加1秒操作) mov a,r3 ;秒數據放入a(r3為2位十進制數組合) clr c ;清進位標志 cjne a,#60h,addmm ; addmm: jc outt0 ;小于60秒時中斷退出 acall clr0 ;大于或等于60秒時對秒計時單元清0 mov r0,#77h ;指向分計時單元(76h-77h) acall ad

52、d1 ;分計時單元加1分鐘 mov a,r3 ;分數據放入a clr c ;清進位標志 cjne a,#60h,addhh ; addhh: jc outt0 ;小于60分時中斷退出 acall clr0 ;大于或等于60分時分計時單元清0 mov r0,#79h ;指向小時計時單元(78h-79h) acall add1 ;小時計時單元加1小時 mov a,r3 ;時數據放入a clr c ;清進位標志 cjne a,#24h,hour ; hour: jc outt0 ;小于24小時中斷退出 acall clr0 ;大于或等于24小時小時計時單元清0 outt0: mov 72h,76h

53、;中斷退出時將分、時計時單元數據移 mov 73h,77h ;入對應顯示單元 mov 74h,78h ; mov 75h,79h ; pop psw ;恢復狀態字(出棧) pop acc ;恢復累加器 setb et0 ;開放t0中斷 reti ;中斷返回3.5 定時器t1中斷處理程序定時器t1中斷處理程序的流程圖如圖14所示。要求t1每隔0.05s溢出一次中斷,它的上半段是實時時鐘計時程序,下半段是定時或報時控制程序。(sec1)0min1(min1)+1(0.05s)0sec1(sec1)+10.05s(0.05s)+1送t1初值保護現場開中斷定時時間到?定時控制?報時否?min10h1(h1)+1h10day(day)+1恢復現場發送定時時間定時查表day=1關報時定時控制報時控制查報時表(day)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論