家用電器定時器的設計_第1頁
家用電器定時器的設計_第2頁
家用電器定時器的設計_第3頁
家用電器定時器的設計_第4頁
家用電器定時器的設計_第5頁
已閱讀5頁,還剩38頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、摘要 本文詳細介紹了對基于AT89C51單片機的家用定時器的設計。家用定時器在日常生活中有較為廣泛的應用,因此對于這一課題的研究有一定得實際應用價值。為了減少種類繁多的家用電器或辦公電子設備的控制裝置的數(shù)量,便于集中控制,方便實用人員的操作,這就需要一種功能更全的控制器。以單片機AT89S51為核心的多路定時控制器,可以對多路家用電器進行定時開關控制,實現(xiàn)一個控制器可以控制多路用電設備,同時還具有時鐘校準、時間顯示、報警等功能,為以后實現(xiàn)網(wǎng)絡控制的數(shù)字家庭提供一些基礎。本文通過按鍵調整當前時間并設定定時時間,再通過DS1307顯示當前時間,設定定時時間后,LED顯示倒計時,當定時時間到時,斷開

2、繼電器并發(fā)出報警。此定時器的特點具有:操作簡單,功能實用;應用范圍廣,可同時控制多個電器;電子式定時時間精確,定時時間長。關鍵詞: 單片機;DS1307時鐘芯片;定時器 目 錄摘要11 引言31.1設計要求41.2設計思路41.3硬件電路設計框圖52 定時器的硬件設計62.1單片機的選擇62.2.時鐘電路設計92.3復位電路設計92.4單片機最小應用系統(tǒng)102.5 LED顯示電路設計與器件選擇122.5.1 LED顯示器的選擇122.5.2 LED段驅動芯片的選擇132.5.3 LED位驅動芯片的選擇142.5.4 LED驅動電路與單片機的連接152.6蜂鳴器電路的設計162.7鍵盤電路設計與

3、器件選擇172.8串行接口RTC芯片DS1307及應用192.8.1 DS1307時鐘芯片的引腳功能192.8.2 DS1307時鐘格式和地址分配202.8.2.1 DS1307的內部寄存器與RAM地址分配202.8.2.2 時鐘和日歷格式212.8.2.3 DS1307芯片品與單片機的連接222.8.2.4 DS1307操作時序232.9控制輸出電路的設計.242.10硬件電路.25 3 定時器的軟件設計27 3.1定時控制器程序.27 附錄.28 1 初始化程序.28 2 主程序.29 3 二進制樹轉換成BCD碼子程序.30 4 調整當前時間子程序.31 5 數(shù)碼管掃描顯示子程序.34 6

4、 定時時間輸入程序.35結論.39致謝.39參考文獻.411 引言我們在日常生活中,經常碰到一些需要定時的事情,例如:空調可以定時開啟與關閉,可以定在任何時間,洗衣機洗滌衣物需要定在幾分鐘到幾十分鐘的時間,電風扇需要定在數(shù)十分鐘的時間。完成這種定時的定時器有多種多樣,在家用電器中采用機械定時器就是根據(jù)一般上弦鐘表原理設計的,這種定時器雖然結構簡單,成本低,維修也比較方便,但是它的觸頭頻繁接觸和斷開,大大的縮減了它的使用壽命,也不利于進一步全自動化。在電子技術突飛猛進的今天,電子定時器一定會逐步取而代之,這是不言而喻的。本課題是通過導師篩選提出的,電子設計課題不一定很大,只要通過親手做一遍全過程

5、,完成一個產品制作,收獲是很大的。 在生活和生產的各領域中,凡是有自動控制要求的地方都會有單片機的身影出現(xiàn);從簡單到復雜,從空中、地面到地下,凡是能想像到的地方幾乎都有使用單片的需求。現(xiàn)在盡管單片機的應用已經很普遍了,但仍有許多可以用單片機控制而尚未實現(xiàn)的項目,因此,單片機的應用大有想像和拓展空間。 單片機的應用有利于產品的小型化、多功能化和智能化,有助于提高勞動效率,減輕勞動強度,提高產品質量,改善勞動環(huán)境,減少能源和材料消耗,保證安全等。本課題的意義在于通過設計和制作本課題把在學校學習到的知識融會貫通并應用到實際當中。做到學有所成,學有所用。并且希望通過本設計為節(jié)能減排做出貢獻電子定時器在

6、家用電器中經常用于延時自動關機、定時。延時自動關機可用于:收音機、電視機、錄音機、催眠器、門燈、路燈、汽車頭燈、轉彎燈以及其他電器的延時斷電及延時自停電源等。定時可用于:照相定時曝光、定時閃光、定時放大、定時調速、定時烘箱、冰箱門開定時報警、水位定時報警、延時催眠器、延時電鈴、延時電子鎖、觸摸定時開關等。例如:空調中的定時器,在工作一段時間之后便能自動切斷電源停止工作。夏季夜間使用,入睡前先頂好時間,等睡熟后到了預定時間,空調自動關機。方便節(jié)能。定時器除了應用于家用電器外,還廣泛地用于工業(yè)農業(yè)生產和服務設施,甚至軍事等。 1.1 設計要求要求設計一個家庭定時控制器系統(tǒng),控制相應的家用器具,如電

7、燈、電視、錄音機、熱水器,空調,電飯煲等。要求控制準確,時間誤差小,主要考慮如何實現(xiàn)精確定時,及定時長度問題。1.2 設計思路根據(jù)設計要求,初步確定設計方案如下:1) 選擇DS1307芯片作為系統(tǒng)的時鐘/日歷,當前時間從DS1307芯片中讀出。其中SDA接P1.0引腳,SCL接P1.1引腳。2) 系統(tǒng)顯示采用4位LED數(shù)碼管。LED數(shù)碼管的段碼輸入由P0產生、位碼輸入由P2產生。3) 時間調整與定時時間的輸入通過接入鍵盤電路實現(xiàn)。設計4個按鍵,分別定義為: SET鍵(時間調整設置位):其功能是當該鍵按下時,進入時間調整功能。 ALM鍵(定時時間設置鍵):其功能是當該鍵按下時,進入定時時間輸入功

8、能。 +1鍵:其功能是當該鍵按下時,被調整位加一。 RET鍵:其功能是當該鍵按下時,指向下一個要調整的位。4) 按鍵的接入方式:SET鍵:通過P3口INT1引腳接入,中斷工作方式。 ALM鍵:通過P3口INT0引腳接入,中斷工作方式。 +1鍵:通過P3口P3.5引腳接入,查詢工作方式。 RET鍵:通過P3口P3.4引腳接入,查詢工作方式。5) 報警聲響用蜂鳴器產生,蜂鳴器接入P1口的P1.7腳。 6)外部電器電源的通斷用繼電器來完成,繼電器觸點的斷開與接通,通過P1口的某些引腳控制。1.3 硬件電路設計框圖根據(jù)設計要求與設計思路,硬件電路設計框圖如圖1.1所示。硬件電路結構由7個部分:按鍵輸入

9、電路、時鐘與復位電路、蜂鳴器電路、LED顯示器及驅動電路、繼電器電路、電源電路和時鐘/日歷電路組成。按鍵輸入電路時鐘電路復位電路蜂鳴器電路單片機LED顯示器驅動電路繼電器電路RTC DS13078位LED顯示器圖1.1 硬件電路設計框圖2 定時器的硬件設計2.1 單片機的選擇根據(jù)初步設計方案的分析,設計這樣一個簡單的應用程序,可以選擇帶有EPROM的單片機,應用程序直接存儲在片內,不用在外部擴展程序存儲器,電路可以簡化。 AT89S51是一個低功耗,高性能CMOS 8位單片機,如圖2.1所示,片內含4k Bytes ISP(In-system programmable)的可反復擦寫1000次的

10、Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術制造,兼容標準MCS-51指令系統(tǒng)及80C51引腳結構,芯片內集成了通用8位中央處理器和ISP Flash存儲單元,功能強大的微型計算機的AT89S51可為許多嵌入式控制應用系統(tǒng)提供高性價比的解決方案。AT89S51具有如下特點:40個引腳,4k Bytes Flash片內程序存儲器,128 bytes的隨機存取數(shù)據(jù)存儲器(RAM),32個外部雙向輸入/輸出(I/O)口,5個中斷優(yōu)先級2層中斷嵌套中斷,2個16位可編程定時計數(shù)器,2個全雙工串行通信口,看門狗(WDT)電路,片內時鐘振蕩器。此外,AT89S51設計和配置了

11、振蕩頻率可為0Hz并通過軟件設置節(jié)電模式??臻e模式下,CPU暫停工作,而RAM定時計數(shù)器,串行口,外中斷系統(tǒng)可繼續(xù)工作,掉電模式凍結振蕩器而保存RAM的數(shù)據(jù),停止芯片其他功能直至外中斷激活或硬件復位。同時該芯片還具有PDIP、TQFP和PLCC等三種封裝形式,以適合不同產品的需求。 圖2.1 AT89S51引腳配置圖AT89S51各引腳功能:VCC:AT89S51 電源正端輸入,接+5V。VSS:電源地端。XTAL1:單芯片系統(tǒng)時鐘的反相放大器輸入端。XTAL2:系統(tǒng)時鐘的反相放大器輸出端,一般在設計上只要在XTAL1和 XTAL2 上接上一只石英振蕩晶體系統(tǒng)就可以動作了,此外可以在兩引腳與地

12、之間加入一 30PF 的小電容,可以使系統(tǒng)更穩(wěn)定,避免噪聲干擾而死機。RESET:復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。EA/Vpp:EA為英文“External Access”的縮寫,表示存取外部程序代碼之意,低電平動作,也就是說當此引腳接低電平后,系統(tǒng)會取用外部的程序代碼(存于外部EPROM中)來執(zhí)行程序。不管是否有內部程序存儲器。注意加密方式1時,EA將內部鎖定為RESET。當EA端保持高電平時,此間內部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(Vpp)。ALE/PROG:ALE是英文“Address Latch Enable”的縮

13、寫,表示地址鎖存器啟用信號。AT89S51可以利用這支引腳來觸發(fā)外部的8位鎖存器(如74LS373),將端口0的地址總線(A0A7)鎖進鎖存器中,因為AT89S51是以多工的方式送出地址及數(shù)據(jù)。平時在程序執(zhí)行時ALE引腳的輸出頻率約是系統(tǒng)工作頻率的1/6,因此可以用來驅動其他周邊晶片的時基輸入。PSEN:此為“Program Store Enable”的縮寫,其意為程序儲存啟用,當8051被設成為讀取外部程序代碼工作模式時(EA=0),會送出此信號以便取得程序代碼,通常這支腳是接到EPROM的OE腳。AT89S51可以利用PSEN及RD引腳分別啟用存在外部的RAM與EPROM,使得數(shù)據(jù)存儲器與

14、程序存儲器可以合并在一起而共用64K的定址范圍。PORT0(P0.0P0.7):端口0是一個8位漏級開路雙向I/O口,P0.0表示位0,P0.1表示位1,P0在當作I/O用時可以推動8個LS的TTL負載。當EA引腳為低電平時(即取用外部程序代碼或數(shù)據(jù)存儲器),P0就以多工方式提供地址總線(A0A7)及數(shù)據(jù)總線(D0D7)。設計者必須外加一個鎖存器將端口0送出的地址鎖存成為A0A7,再配合端口2所送出的A8A15合成一個完整的16位地址總線,而定址到64K的外部存儲器空間。 PORT2(P2.0P2.7):端口2是一個內部提供上拉電阻的8位雙向I/O口,每一個引腳可以推動4個LS的TTL負載,若

15、將端口2的輸出設為高電平時,此端口便能當成輸入端口來使用。P2除了當作一般I/O端口使用外,若是在AT89S51擴充外接程序存儲器或數(shù)據(jù)存儲器時,也提供地址總線的高字節(jié)A8A15,這個時候P2便不能當作I/O來使用了。PORT1(P1.0P1.7):端口1也是一個內部提供上拉電阻的8位雙向I/O口,其輸出緩沖器可以推動4個LS TTL負載,同樣地若將端口1的輸出設為高電平,便是由此端口來輸入數(shù)據(jù)。如果是使用8052或是8032的話,P1.0又當作定時器2的外部脈沖輸入腳,而P1.1可以有T2EX功能,可以做外部中斷輸入的觸發(fā)腳位。PORT3(P3.0P3.7):端口3也具有一個內部提供上拉電阻

16、的8位雙向I/O口,其輸出緩沖器可以推動4個TTL負載,同時還具有其他的額外特殊功能,包括串行通信、外部中斷控制、計時計數(shù)控制及外部數(shù)據(jù)存儲器內容的讀取或寫入控制等功能。 其引腳分配如下:P3.0:RXD,串行通信輸入。P3.1:TXD,串行通信輸出。P3.2:INT0,外部中斷0輸入。P3.3:INT1,外部中斷1輸入。P3.4:T0,計時計數(shù)器0輸入。P3.5:T1,計時計數(shù)器1輸入。P3.6:WR,外部數(shù)據(jù)存儲器的寫入信號。P3.7:RD,外部數(shù)據(jù)存儲器的讀取信號。2.2 時鐘電路設計時鐘是單片機的心臟,單片機各功能部件的運行都是以時鐘頻率為基準,有條不紊的一拍一拍地工作。因此,時鐘頻率

17、直接影響單片機的速度,時鐘電路的質量也直接影響單片機系統(tǒng)的穩(wěn)定性。常用的時鐘電路有兩種方式:一種是內部時鐘方式,另一種為外部時鐘方式。本文用的是內部時鐘方式。電路圖如下:圖2.2 時鐘電路AT89S51單片機內部有一個用于構成振蕩器的高增益反相放大器,該高增益反向放大器的輸入端為芯片引腳XTAL1,輸出端為引腳XTAL2。這兩個引腳跨接石英晶體振蕩器和微調電容,就構成一個穩(wěn)定的自激振蕩器。2.3 復位電路設計 單片機的復位是由外部的復位電路來實現(xiàn)的。復位引腳RST通過一個斯密特觸發(fā)器與復位電路相連,斯密特觸發(fā)器用來抑制噪聲,在每個機器周期的S5P2,斯密特觸發(fā)器的輸出電平由復位電路采樣一次,然

18、后才能得到內部復位操作所需要的信號。復位電路通常采用上電自動復位。上電復位電路是種簡單的復位電路,只要在REST復位引腳接一個電容到VCC,接一個電阻到地就可以了。上電復位是指在給系統(tǒng)上電時,復位電路通過電容加到REST復位引腳一個短暫的高電平信號,這個復位信號隨著VCC對電容的充電過程而回落,所以REST引腳復位的高電平維持時間取決于電容的充電時間。為了保證系統(tǒng)安全可靠的復位,RST引腳的高電平信號必須維持足夠長的時間。電路圖如下:圖2.3 復位電路上電自動復位是通過外部復位電路的電容充電來實現(xiàn)的。只要Vcc的上升時間不超過1ms,就可以實現(xiàn)自動上電復位。2.4 單片機最小應用系統(tǒng)時鐘電路和

19、復位電路即用AT89S51芯片構成最小應用系統(tǒng)時,如圖2.4所示,只需將單片機接上可。圖2.4 單片機最小應用系統(tǒng)其應用特點是:(1)受集成度所限,只能用于小型控制單元。(2)有可供用戶使用的大量的I/O口線。因無外部寄存器擴展,這時EA接高電平,P0、P1、P2、P3都可作為用戶I/O口使用。(3)因僅有芯片內部的存儲器,故存儲器的容量有限。(4)應用系統(tǒng)的開發(fā)具有特殊性,P1、P2口的應用于開發(fā)環(huán)境差別較大,由于它的應用程序量不大,外電路簡單,所以采用模擬開發(fā)手段較好。(5)AT89S51的應用軟件要依靠半導體掩膜技術置入,因此比較適用于在大批量生產的應用系統(tǒng)中采用2.5 LED顯示電路設

20、計與器件選擇單片機應用系統(tǒng)中,通常都需要進行人-機對話。這包括人對應用系統(tǒng)的狀態(tài)干預與數(shù)據(jù)輸入,以及應用系統(tǒng)向人們顯示運行狀態(tài)與運行結果等。顯示器、鍵盤電路就是用來完成人-機對話活動的人-機通道。 LED顯示器的驅動是一個非常重要的問題,由系統(tǒng)硬件設計框圖可知,顯示電路由LED顯示器、段驅動電路和位驅動電路組成。由于單片機的并行口不能直接驅動LED顯示電路,必須采用專用的驅動電路芯片,使之產生足夠大的電流,顯示器才能夠正常工作。如果驅動能力差,即負載能力不夠時,顯示器亮度就低,而且驅動電路長期在超負荷下運行容易損壞。因此,在實際使用中必須接入LED驅動電路。數(shù)碼管是由8個發(fā)光二極管構成的顯示器

21、件。在數(shù)碼管中,若將二極管的陽極連在一起,稱為共陽極數(shù)碼管;若將二極管的陰極連在一起,稱為共陰極數(shù)碼管。本文用到的4個數(shù)碼管均是共陰極的。當發(fā)光二極管導通時,它就會發(fā)光。每個二極管就是一個筆劃,若干個二極管發(fā)光時,就構成了一個顯示字符。將單片機的I/O口控制相應的芯片與數(shù)碼管的a-g相連,高電平的位對應的發(fā)光二極管亮,這樣,由I/O口輸出不同的代碼,就可以控制數(shù)碼管顯示不同的字符。例如:當I/O口控制芯片輸出的代碼是00111111時,數(shù)碼管顯示的字符為0。這樣形成的顯示字符的代碼稱為顯示代碼或段選碼。LED顯示器的顯示控制方式分為靜態(tài)顯示和動態(tài)顯示兩種,因此在選擇LED驅動器時一定要先確定顯

22、示方式。若選擇靜態(tài)顯示,則LED驅動器的選擇較為簡單,只要驅動器的驅動能力與顯示器電流匹配即可。而且只須考慮段的驅動,因為共陽極接+5V,而共陰極接地,所以位的驅動不需要考慮。動態(tài)顯示則不同,由于一位數(shù)據(jù)的顯示是由段選和位選共同配合完成的,因此,要同時考慮段和位的驅動能力,而且段的驅動能力決定位的驅動能力。2.5.1 LED顯示器的選擇在應用系統(tǒng)中,由于設計要求不同,生產廠家就生產了位數(shù)、尺寸、型號不同的LED顯示器供選擇。在本設計中,選擇4位一體的時鐘型LED顯示器,簡稱“4-LED”,如圖2.5所示。用“:”前的2位顯示“分”的十位和個位,用“:”后的2位顯示“秒”的十位和個位。圖2.5

23、4-LED顯示器引腳4-LED顯示器引腳如圖所示,是一個共陰極接法的4位時鐘型LED顯示器。其中a、b、c、d、e、f、g為4位LED各段的公共引出端。D1、D2、D3、D4分別是每一個的共陰極輸出端,dp是小數(shù)點引出端。4位一體時鐘型LED顯示器的內部結構是由4個單獨的LED和一個“:”LED組成,每個LED的段輸出引腳在內部并聯(lián)后,引出到器件的外部。 對于這種結構的LED顯示器,它的體積和結構都符合設計要求,由于4位LED陰極的各段已經在內部接在一起,所以是用動態(tài)掃描方式。2.5.2 LED段驅動芯片的選擇LED的段驅動電路有很多種,在本設計中,可以選擇BCD-7段譯碼/驅動器作為段驅動電

24、路。這類芯片的型號有74LS47、74LS48、74LS247、74LS248等,該類芯片具有譯碼、驅動的功能。即在輸入端輸入要顯示字形的BCD碼,在輸出端可以得到具有一定驅動能力的7段顯示字形碼。 圖2.6 74LS48芯片引腳 圖7給出了74LS48的引腳圖和結構原理圖。引腳圖中大寫字母A、B、C、D為BCD碼的輸入端,小寫字母a、b、c、d、e、f、g為字形碼輸出端,LT測試輸入端,RBI為消隱輸入,RBO為消隱輸出。表給出了74LS48BCD-7段譯碼/驅動器的輸入與輸出信號的對應關系。在使用時,將該芯片的輸入端引腳A、B、C、D與單片機的P0口連接,該芯片的輸出端7個引腳,與LED顯

25、示器的7個段碼引腳相連接。74LS48的作用 是接受來自單片機的BCD碼型的輸入信號,經過譯碼和放大后,輸出7段字形碼到LED顯示器,完成對BCD碼到7段字形碼的譯碼和驅動的功能。表2.1 74LS48 BCD-7 段譯碼器輸入/輸出端信號對照表輸入端電平輸出端電平 顯示字形輸入端電平輸出端電平 顯示字形 D C B A gfedcba D C B A gfedcba 0 0 0 0011 1111 0 0 1 0 1110 1101 5 0 0 0 1000 0110 1 0 1 1 0111 1101 6 0 0 1 0101 1011 2 0 1 1 1000 0111 7 0 0 1

26、1100 1111 3 1 0 0 0111 1111 8 0 1 0 0110 0110 4 1 0 0 1110 1111 92.5.3 LED位驅動芯片的選擇LED的位驅動較常用的芯片有ULN2003A和ULN2803。前者是具有7個達林頓電路的集成芯片,后者是具有8個達林頓電路的集成芯片。此種芯片集電極可以收集最大達500mA的電流,耐壓為30V,能驅動常規(guī)的LED顯示器。圖2.7是ULN2803芯片的引腳圖和電路原理圖。2803芯片的電路原理和2003完全相同,只是在結構上2803比2003多一路驅動器。圖2.7 ULN2803芯片引腳圖 圖中的IN1IN8引腳是輸入端,OUT1OU

27、T8引腳是輸出端。在本設計中選用ULN2803作為位驅動電路,將該芯片的輸入端引腳IN1、IN2、IN3、IN4、IN5、IN6、IN7 與單片機的P2連接,該芯片的輸出端引腳OUT1、OUT2、OUT3、OU4與LED顯示器的4個位碼引腳D1D4相連接。ULN2803的作用是接受來自單片機的位碼輸入信號,經過反相放大后輸出,送到LED顯示器的位碼引腳,完成對位碼信號的反向和驅動的功能。2.5.4 LED驅動電路與單片機的連接可以采用單片機的P0口作為與LED的輸出接口,即P0口的低四位作為LED的段碼輸出信號,P2口的低四位作為LED位碼的輸出控制信號。硬件電路連接如圖9所示。R1是上拉電阻

28、,作用是保證LED可靠導通與截止,可以選擇8腳排電阻(7×100)。圖9 4-LED顯示器接口電路原理該電路的工作原理是:當P0口的低四位輸出段碼信號的BCD碼后,通過74LS48芯片的譯碼和驅動作用,在其輸出端輸出具有一定驅動能力的七段字形碼,由于4-LED的段碼輸入引腳是并聯(lián)在一起的,所以每一位LED的段碼輸入引腳都能獲得這個段碼信號。若要控制在每一時刻只有一位LED被點亮,必須靠位碼信號控制。P2口的低4位輸出位碼信號,經ULN2803A反向后接到LED的位碼控制端,因此P2口的位碼信號在每一時刻只有一位是“1”,其他位全為“0”,然后按時間順序改變輸出“1”的位置,控制在每一

29、時刻只有一位LED被點亮,達到動態(tài)顯示的目的。2.6 蜂鳴器電路的設計設計要求定時時間到時要有聲音提醒信號產生,可選擇一只蜂鳴器來實現(xiàn)這一功能。壓電式蜂鳴器(HA)工作時約需10mA的驅動電流,并設計一個相應的驅動及控制電路。電路設計如圖所示,蜂鳴器(HA)作為三極管VT1的集電極負載,當VT1導通時,蜂鳴器發(fā)出鳴叫聲音,VT1截止時,蜂鳴器不發(fā)聲。R3是限流電阻。圖2.9 蜂鳴器電路原理圖 蜂鳴器電路與單片機的接口:VT1的基極接到單片機P1口的P1.7引腳,P1.7引腳作為輸出口使用。當P1.7=0時,VT1導通,使蜂鳴器中有電流通過,而產生蜂鳴音。當P1.7=1時,VT1截止,蜂鳴器的兩

30、引腳間的直流電壓接近于0V,蜂鳴器不發(fā)生。 蜂鳴器有長聲和短聲兩種,可以根據(jù)需要進行選擇。本設計選擇短聲蜂鳴器,蜂鳴器報警時間的長短,通過軟件編程控制,請參看主程序設計。2.7 鍵盤電路設計與器件選擇按鍵是一組常開的按鍵開關,每個按鍵都被賦予一個代碼,稱為鍵碼.按鍵的開關狀態(tài)通過一定的電路轉換為高、低電平狀態(tài)。按鍵閉合過程在相應的I/O端口形成一個負脈沖。閉合和釋放過程都要經過一定的過程才能達到穩(wěn)定,這一過程是處于高、低電平之間的一種不穩(wěn)定狀態(tài),稱為抖動。抖動持續(xù)時間的長短與開關的機械特性有關,一般在5-10ms之間。為了避免CPU多次處理按鍵的一次閉合,應采用措施消除抖動。本文在軟件中采用了

31、相應的軟件程序來消除抖動。當發(fā)現(xiàn)有鍵按下時,延時10-20ms再查詢是否有鍵按下,若沒有鍵按下,說明上次查詢結果為干擾或抖動;若仍有鍵按下。則說明閉合鍵已穩(wěn)定。在單片機組成的測控系統(tǒng)及智能化儀器中,用得最多的是非編碼鍵盤。鍵盤結構可以分為獨立式鍵盤和行列式鍵盤(矩陣式)兩類。在本設計中需要4個按鍵,因此選擇獨立式鍵盤。如圖2.10所示,電路由按鍵和4個電阻組成,按鍵分別命名為SET、ALM、+1和RET鍵,按鍵可以采用輕觸開關,電阻可以采用5腳排電阻(4×1k)。圖2.10 鍵盤接口電路原理圖 如圖2.10所示,將鍵盤直接于單片機的P3.3、P3.2引腳通過兩個按鍵SET、ALM接入

32、兩個外部中斷的請求信號INT1、INT0;P3.5、P3.4引腳作為I/O口使用,通過兩個按鍵+1、RET接入兩個輸入信號。4個按鍵功能的設計思路如下:當SET鍵被按下時,在單片機的INT1引腳產生一個低電平觸發(fā)中斷請求信號,CPU響應中斷請求時,就轉移到INT1中斷服務程序入口地址,執(zhí)行INT1的中斷服務程序。設計INT1的中斷服務程序的功能是調整當前時間。即當電子時鐘的時間有誤差時,需要隨時對它進行調整,使用SET鍵與+1鍵、RET鍵配合來完成這一功能。 當ALM鍵被按下時,在單片機的INT0引腳產生一個低電平觸發(fā)中斷信號,CPU響應中斷請求時,就轉移到INT0中斷服務程序的入口地址,執(zhí)行

33、INT0的中斷服務程序。INT0的中斷服務程序的功能是輸入定時時間。即當需要電子時鐘進行定時服務時,可以通過該鍵的功能來輸入定時時間,使用ALM鍵與+1鍵、RET鍵配合來完成這一功能。 +1調整健功能:分別對時間值的分十位、分個位、秒的十位、秒的個位進行+1調整,即該鍵每按下一次,對應的時間調整位+1。 RET確認鍵功能:確認,即對+1調整位進行確認,該鍵按下時,說明被調整位的值已經確定,轉去調整下一位。2.8 串行接口RTC芯片DS1307及應用 DS1307串行實時時鐘芯片,是一種具有I2C總線接口的外圍器件,該芯片內部具有BCD碼時鐘/日歷和56個自己的非易失性SRAM的數(shù)據(jù)存儲器;兩線

34、串行接口和頻率可變的單方波輸出;自動的掉電保護和開關循環(huán)等功能。由于它具有可編程、低功耗、體積較小和引腳少的特點,特別適用于單片機應用系統(tǒng)中。2.8.1 DS1307時鐘芯片的引腳功能DS1307的封裝方式有8引腳DIP和16引腳SOIC方式,8引腳DIP封裝方式如圖2.11所示。圖2.11 DS1307引腳圖 圖2.12 DS1307內部結構各引腳功能如下:Vcc,GND:直流電源接入引腳。Vbat:電池接入端,電池電壓必須在2.0V和3.5V之間,能使DS1307再沒有電源的情況下工作十年。SCL:時鐘信號輸入端,使數(shù)據(jù)在串行接口的傳送同步進行,需外接上拉電阻。SDA:串行數(shù)據(jù)輸入/輸出的

35、引腳,需外接上拉電阻。SQW/OUT:頻率可變的方波輸出端,有4種頻率信號:1Hz,4kHz,8kHz和32kHz可以選擇。SQW/OUT引腳需要外部上拉電阻。X1,X2:外接晶振引腳,與標準32kHz晶振相連,可以修正時鐘的精確性。2.8.2 DS1307時鐘格式和地址分配2.8.2.1 DS1307的內部寄存器與RAM地址分配DS1307的內部有存儲器RAM與RTC時間寄存器兩部分組成,地址分配如圖2.13所示。RTC時間寄存器的地址從00H到07H。RAM有56個字節(jié),地址從08H到3FH。在多字節(jié)數(shù)據(jù)存取時,地址指針自動加一,當?shù)刂分羔樦傅絉AM最后一位3FH時,自動循環(huán)到00H地址。

36、使用時,只要在程序中規(guī)定好第一個字節(jié)地址及讀寫字節(jié)數(shù),讀寫N個字節(jié)與一個字節(jié)一樣方便。名稱秒分小時星期日月年控制寄存器存儲器RAMRAM 地址 00H 01H 02H 03H 04H 05H 06H 07H 08H 3FH 圖2.13地址分配2.8.2.2 時鐘和日歷格式時間和日期都以BCD碼形式分別存放在7個寄存器中,通過讀這些相應的寄存器字節(jié)可以得到時鐘和日期的信息。通過寫入相應寄存器字節(jié)可以設置時間和日期。1)秒寄存器(地址00H)。最高位CH(bit7)是時鐘工作控制位,CH=0,晶振工作,當CH=1時,晶振停止工作。其他7位是“秒”的時間值,bit6bit4三位是“秒”的個位數(shù)。數(shù)的

37、范圍:00H59H。最初上電時,寄存器的狀態(tài)沒有被定義。因此,在初始化時,首先將CH=0時振蕩器工作。2)分寄存器(地址01H)。最高位bit=0,其他7位的含義與秒寄存器相同。3)小時寄存器(地址02H)。DS1307可以選擇12小時或24小時兩種工作模式:小時寄存器的最高位bit=0,第6位(12/24)小時模式選擇位。若12/24位為1,選擇12小時模式。在12小時模式時,第5位是AM/PM設置位,高電平時為PM,第4位是小時的十數(shù)位;當12/24位為0時,DS1307工作在24小時模式。在24小時模式下,第5位和第4位是小時的十數(shù)位,低4位是小時的個位數(shù)。4)星期寄存器(地址03H)只

38、使用了后3位表示星期值。5)控制寄存器(地址07H)??刂萍拇嫫鞯墓δ苁窃O置SQW/OUT引腳的輸出方式以及輸出方波的頻率??刂萍拇嫫饔?位組成,其中有4位的設置如下: SQWE:SQW/OUT引腳輸出方波控制位,當SQWE=1時,SQW/OUT引腳的輸出固定頻率方波,方波頻率決定于RS1、RS0位的值。當SQWE=0時,SQW/OUT引腳的輸出由OUT位控制。當輸出方波的頻率為1Hz時,時鐘寄存器的值在方波下降沿時被更新。 OUT:當方波輸出無效時,控制SQW/OUT引腳的輸出。如果SQWE=0,當OUT=1時,SQW/OUT引腳輸出高電平,當OUT=0時,SQW/OUT引腳輸出低電平。RS

39、1、RS0:當方波輸出有效時,這兩位的值控制方波輸出頻率。表列出了輸出方波的頻率。表2.2 SQW/OUT引腳輸出方波的頻率與RS1、RS0的對應關系RS1 RS0輸出方波的頻率0 01Hz0 14.096kHz1 08.192kHz1 132.768kHz2.8.2.3 DS1307芯片品與單片機的連接DS1307芯片于單片機的接口如圖2.14所示,P1.0與SDA端連接,P1.1與SCL端連接,并接有3個上拉電阻。SQW/OUT接P1.2,設置讀時鐘的間隔時間。Vbat端接備用電池,X1、X2接32.768kHz的晶體振蕩器。SDA與SCL接點構成串行數(shù)據(jù)總線,在串行數(shù)據(jù)總線上還可以連接更

40、多的串行接口的外圍設備。DS1307支持全雙工、I2C總線和數(shù)據(jù)傳送協(xié)議。圖2.14 DS1307與單片機的連接2.8.2.4 DS1307操作時序 DS1307的操作時序是由起始信號START、停止信號STOP、器件尋址、讀/寫操作、應答信號ACK和非應答信號NACK等組成,可以概括的歸納為以下幾個步驟:1)發(fā)送起始信號START。2)發(fā)送DS1307的讀/寫命令字。3)發(fā)送DS1307的讀/寫地址。4)執(zhí)行讀寫數(shù)據(jù)操作。5)接受或發(fā)送應答信號。6)發(fā)送停止信號STOP。1.器件地址格式與讀寫命令 器件地址字含有2個部分。第一部分是高7位,它們稱為DS1307標識。第二部分是最低位,它是讀/

41、寫操作選擇位,并用R/表示。當R/=1時,執(zhí)行讀操作;當R/=0時,執(zhí)行寫操作。2.DS1307工作時有兩種工作模式,即DS1307寫操作和DS1307讀操作1)DS1307寫模式 串行數(shù)據(jù)和時鐘數(shù)據(jù)可通過SDA和SCL接受。在接受到每一字節(jié)后,發(fā)送一個ACK信號表示數(shù)據(jù)收到。在主機產生開始狀態(tài)后,第一個接收到的是設備地址與讀寫命令字節(jié),該字節(jié)包括兩部分內容:高7位是DS1307設備地址(1101000),最低位是讀寫操作選擇位(R/)。在寫操作時,該位R/=0,DS1307接受并譯碼設備地址后,對主機地址和寫位地址確認后,在SDA輸出一個確認信號ACK。接下來主機傳送一個DS1307寄存器地

42、址,使DS1307設置寄存器地址指針,然后主機開始傳送數(shù)據(jù)字節(jié)。DS1307在每個字節(jié)收到后,發(fā)出確認信號ACK,終止寫數(shù)據(jù)時由主機產生一個STOP信號來實現(xiàn)。2)DS1307讀模式 在主機傳送模式下,數(shù)據(jù)傳送方向將改變。在這個模式下,當串行時鐘從SCL引腳輸入時,串行數(shù)據(jù)從DS1307的SDA引腳被送出。第一個字節(jié)(設備尋址字節(jié))仍由7位DS1307地址1101000和讀寫標識位組成。在DS1307讀模式時,R/W=1,即DS1307的設備讀命令字位D1H。設備尋址完成后,DS1307從寄存器指針所指向的寄存器地址開始傳送數(shù)據(jù)。如果寄存器指針在讀模式初始化時沒有定義,則所讀第一個數(shù)據(jù)的地址將

43、由寄存器指針的當前值確定。DS1307收到一個NOT ACK(沒有確認)信號時將結束讀操作。2.9 控制輸出電路的設計外部電路采用繼電器控制,繼電器的觸點控制外部電源的通與斷,觸點閉合接通電源,觸點斷開切斷電源。三極管VT2電阻R4續(xù)流二極管VD1組成的繼電器的控制電路。當VT2的基極為低電平時,VT2導通,繼電器線圈通電,控制觸點閉合;當VT2的基極為高電平時,VT2截止,繼電器線圈斷電,控制觸點斷開。從而實現(xiàn)了外部電路控制。控制電路如下圖圖2.15 繼電器輸出電路圖2.10 硬件電路 在定時器設計中,選擇ATMEL公司生產的型號為AT89S51的單片機。該單片機與MCS-51系列又增加了W

44、TD、ISP等功能,物美價廉,經濟實用,并且使用起來更加方便。 定時器的硬件電路原理圖如圖2.16所示,與電子時鐘比較,多了4個LED數(shù)碼管,位驅動電路芯片采用8位驅動器的2803芯片,顯示器與單片機的接口是通過P0、P2二個并行端口與74LS48、UNL2803相連接組成。用P0口輸出段碼信號BCD碼,P2口輸出位碼信號值。 VT1、R3組成蜂鳴器控制電路。VT4、R6、R7組成DISP小數(shù)點驅動電路。由DS1307芯片產生標準時間,通過讀DS1307獲得。外部電路采用繼電器控制,多個繼電器并聯(lián)實現(xiàn)多路家用電器的控制。 圖2.16 硬件電路原理圖3 定時器的軟件設計3.1定時控制器程序定時控

45、制器程序設計包括主程序設計,當前時間調整子程序的設計,定時時間輸入子程序設計,LED動態(tài)掃描子程序設計,讀時鐘子程序設計等等。主程序流程圖如下圖所示:圖3.1 程序流程圖 附錄1 初始化程序ORG 0000H LJMPCHSH;設置主程序入口 ORG0003H LJMPINTA;設置INT0中斷服務程序入口ORG000BHLJMPT0_SEV;設置T0中斷服務程序入口ORG0013H LJMPINTB;設置INT1中斷服務程序入口ORG0030HCHSH: MOVSP,#60H;初始化程序,設置堆棧MOVA, #00H;A寄存器清0 MOV0H,A;存儲單元清0 MOV31H,A MOV32H

46、,A MOV33H, A MOV34H,A MOV35H,A CLR26H CLR27H CLR28H CLRRS0;設置0工作區(qū) CLRRS1 MOVTMOD, #01H;計數(shù)器初始化 MOVTH0, #0ECH MOVTL0, #78H MOVTCON, #10H MOVIE, #8FH;開中斷2 主程序MAIN: MOV22H,#04H MOV23H, #08H MOV25H,#01 MOV26H, #02 MOV27H, #05LP2: MOVR1, 22H MOVR2, 23H LCALLOSC_Q;啟動晶振RT:MOVR1, 22H MOVR2, 23HLCALLREAD;讀時間

47、LCALLBCDP26H: JNB26H, P28H JNB27H, RTNT: MOVR2, 34H CJNER2, #0, J34HMOVR2, 35H CJNER2, #0, J35H;判斷定時時間到否 SETBSDA ;時間到,斷開繼電器 SETB28H ;開蜂鳴器,發(fā)出報警 CLRSCL CLR26H SJMPBBJ34H: DEC34H;定時時間倒計時 SJMPBBJ35H: DEC35HMOV34H, #59SJMPBBP28H: JB8H, NT1 SJMPRTNT1: JB27H, SCLH SJMPRTP36H: MOVR2, 36H CJNER2, #59, J36H CLR28H SETBSCL MOV36H, #00H SJMPBBJ36H: INC36HBB: CLR27H LJMPRT3 二進制樹轉換成BCD碼子程序BCD: MOVR7,#03;二進制數(shù)轉換成BCD碼MOVR1,#40H MOVR0, #2AHBCD1: MOVA, R0 ANLA, #0F0H SWAPAMOVR1, A INCR1 MOVA, R0 A

溫馨提示

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

評論

0/150

提交評論