目錄
摘要 1
關鍵詞
第一章 引 言
1.1 課題背景
1.1.1 選題背景
第二章 設計方案論證
設計要求
設計方案選擇
方案一:數字電路設計的作息時間控制器系統
方案二:基于單片機的作息時間控制器系統設計
方案確定
基本方案
設計課題簡要概述
系統軟硬件劃分
單片機選型
3.2.2 DS1302
3.3.2 鍵盤接口電路設計
4.1.2 顯示程序設計和按鍵判斷與按鍵處理程序設計
系統主程序流程圖
系統定時中斷流程圖
第五章 系統程序設計
程序設計概要
源程序清單
第六章 作息時間器硬件原理圖
第七章 實訓總結
參考文獻
附錄
附錄 1 原理電路圖
附錄 2 元件清單
附錄 3 實物圖
基于單片機的作息時間控制器系統設計
重慶三峽學院電子與信息工程學院
摘要
基于單片機的作息時間器系統, 是以一片 8 位單片機為核心的實時時鐘及控制系統。我們知道單片機的外接石英晶體振蕩器能提供穩定、準確的基準頻率, 并經 12 分頻后向內部定時器提供實時基準頻率信號,設定定時器工作在中斷方式下,連續對此頻率信號進行分頻計數, 便可得秒信號, 再對秒信號進行計數便
可得到分、時等實時時鐘信息。如果石英晶體振蕩器的頻率信號為 6MHZ,設定定時器定時工作方式 1 下,定時器為 3CBO,H 則定時器每 100ms產生 1 次中斷,在定時器的中斷定時處理程序中,每 10 次中斷,則向秒計數器加 1,秒計數器計數到 60 則向分計數器進位(并建立分進位標志) ,分計數器計數到 60,則向時計數器進位,如此周而復始的連續計數,便可獲得時、分、秒的信號,建立一
個實時時鐘。 接下來便可以進行定時處理和打鈴輸出, 當主程序檢測到有分進位標志時,便開始比較當前時間(小時與分、存放在 RAM中)與信息時間表上的作息時間(小時與分,存放在 ROM)是否相同,如有相同者,則進行報時處理并控制打鈴,如有不相同則返回主程序,如此便實現 了報時控制的要求。
關鍵詞
單片機、時間設置電路、計時電路、顯示電路、定時打鈴控制電路
第一章 引言
1.1 課題背景
1.1.1 選題背景
隨著科技的不斷發展, 各種芯片都得到了很好的發展, 80C51 同樣如此, 從開始的無人問津到現在的隨處可見,紅綠燈,記分牌,電子秒表,遙控器,電飯
煲,電視等只要是電子產品, 都會和芯片有關, 其實芯片并不是什么神秘的高科技,它只是里面裝了一些己編好的程序而己. 而這里要介紹的是用匯編語言來編程的一個系統, 它能夠讓一個學校或企業集團實現打鈴自動化, 總之,一個需要時間系統的機構實現自動提醒功能。
當今時代是一個新技術層出不窮的時代, 在電子領域尤其是自動化智能控制領域,傳統的分立元件或數字邏輯電路構成的控制系統, 正以前所未有的速度被單片機智能控制系統所取代。單片機具有體積小、功能強、成本低、應用面廣等 優點,可以說,智能控制與自動控制的核心就是單片機。目前,一個學習與應用
單片機的高潮正在工廠、 學校及企事業單位大規模地興起。 而本文是用 STC89C52
單片機設計的一個自動打鈴系統。
第二章 設計方案論證
2.1 設計要求
它可以作為時鐘電路來顯示時間,進行設置, 定時打鈴。 按照自頂向下設計方法劃分自動打鈴系統的功能?煞譃椋簳r間設置電路,計時電路,顯示電路和 定時打鈴控制電路等。
以江蘇信息職業技術學院的打鈴情況設計
方案一:數字電路設計的作息時間控制器系統
利用函數信號發生器來進行脈沖信號輸出,利用74160N來設置十進制和六進制的進位輸出。 利用數碼顯示器來顯示時間, 利用或門、 與門、非門、與非門、等電路元件進行組合實現打鈴的控制。
方案二:基于單片機的作息時間控制器系統設計
單片機內部存儲器設三個字節分別存放時鐘的時、分、秒信息。利用定時器與軟件結合實現1 秒定時中斷,沒產生一次中斷,存儲器內相應的秒值加 1;若秒值達到 60,則將其清零,并將相應的分字節值加 1;若分值達到 60,則清零分字節,并將時字節值加 1;若時值達到 24,則將時字節清零。建立完一個實時時鐘后接下來進行定時處理和打鈴輸出, 當主程序檢測到有分進位標志時, 便開始比較當前時間與信息時間表上的作息時間是否相同, 相同者,則進行報時處理并控制打鈴,不相同則返回主程序。
方案確定
方案一的設計只能事先設定打鈴時間不能完全自動打鈴,且在修改打鈴時間上存在一定的困難。 而方案二中的設計能完全實現自動化, 詮釋了我們這次設計的主題。 并在修改打鈴時間上有了很大的方便, 只需修改一部分程序便能實現不同的需要。
因此我選擇方案二進行設計。
基本方案
設計課題簡要概述
作息時間控制器系統裝置用于工廠、 學校等地的時間控制, 本設計是按照學校作息時問設定的,模擬了電了鐘顯示時、分、秒。還根據學校的作息時間按時 打鈴,本系統有 4 個按鈕,分別用來調時、調分、秒和強制打鈴及強制關鈴, 以保證始終與標準時間相吻合。
首先設計出本系統的硬件基本框圖, 根據框圖設計電氣原理圖, 簡要概述基本原理,按照設計技術參數設計出各部分程序。
系統軟硬件劃分
由于需要最小系統設計, 因此, 極大地介于系統的硬件成本, 所有能用軟件實現的功能都用軟件完成,如按鍵的去抖,采用延時,顯示部分用動態顯示等, 這樣硬件部分的設計可以采用單片機最小系統, 所謂最小系統時僅有程序存儲器和時鐘及復位電路的單片機系統。
單片機選型
根據課題的具體內容,任務要求,計時、校時、定時、鍵盤顯示等功能,經 多方面考慮,所選系統選項用.與MSC-51單片機完全兼容的 STC89C52低功耗單片機。
總體設計框圖
顯示部分采用 2 塊 4 位數碼管,即 8 位共陽數碼顯示,由 STC89C52芯片對該數碼管傳送數據。而在 P2 口接入 8 個三極管對數碼管的位控進行控制。該顯示采用的是動態顯示, 段控和位控都經過反相器,顯示的字形代碼是共陽的顯示代碼,位控信號輸出時是高電平有效, 在校時時, 采用的是點亮小數點信位調節器標志,哪位小數點亮表示調整的是該位的值。 由于鍵盤只有四個,采用獨立式按鈕,用查詢法完成讀健功能。 圖五 按鍵電路 各鍵功能已寫入程序, 在使用按鍵的時候, 根據有無按鍵否, 一一進行判斷,軟件中采用 if 嵌套模式,因此使各按鍵的功能具有多樣性和課重復使用性。因 本次實訓的課題,為實現,年月日,時分秒等時間的調試,系統使用 5 只按鍵, 4 只按鍵用來調整時間, 且其中一只在不設置時間的情況下可為強制打鈴, 另一只單獨連接, 可實行復位和強制結束打鈴。 通過選擇鍵選擇調整位, 選中位閃爍, 按增加鍵為選中位加 1,按減少鍵為選中位減 1。按強制打鈴按鈕是實現強制打 鈴或者強制關閉打鈴。 響鈴電路用到了蜂鳴器、三極管、 1K 電阻。蜂鳴器兩端分別接地和三極管。三極管一段電源另一端與電阻相連并接入 STC89C52的 P3.7 接口。
圖六 響鈴電路
首先實現 24 小時制電子鐘,在 8 位數碼管顯示,顯示為時分秒,實現的格式為: 23-59-59 。到達預定時間啟動蜂鳴器開始打鈴,打鈴的方式分為起床、熄燈和上下課鈴兩種。 系統使用 5 只按鍵, 4 只按鍵用來調整時間, 且其中一只在不設置時間的情況下可為強制打鈴, 另一只單獨連接,可實行復位和強制結束打鈴。通過選擇鍵選擇調整位,選中位閃爍,按增加鍵為選中位加 1,按減少鍵為選中位減 1。按強制打鈴按鈕是實現強制打鈴或者強制關閉打鈴。 第四章 軟件電路設計及流程圖
主程序首先是初始化部分, 主要是計時單元清零, 中斷初始化, 堆棧指針初始化,啟動定時器工作, 然后是調用顯示子程序。 主程序的起始存儲地址是 0000H 單元,但由于本系統用了定時器 T0 的中斷,中斷服務程序入口地址為 000BH, 因此從0000H單元起存放一條短調轉指令 AJMP,使真正的主程序從 0300H單元開始存放。 單片機內部的定時 / 計數器 T0 定時 100ms,即 0.1s ,10 次中斷即為 1 秒, 60 秒為 1 分, 60 分為 1 小時, 24 小時為一天,如此循環,從而實現計時功能。 編寫中斷服務程序關鍵要注意: 1. 現場保護, 本系統中是累加器 A 和程序狀態字 PSW值的保護。 2. 計時處理時采用的確十進制,因此時,分,秒單元加 1 后要進行十進制調整,即要執行 DAA指令,還要注意的是時計到 24 就回零,分 和秒計到 60 就回零。 3. 中斷返回前的現場恢復。 顯示采用的是動態顯示, 段控和位控都經過反相器, 顯示的字形代碼是共陽的顯示代碼, 位控信號輸出時是高電平有效, 在校時時, 采用的是點亮小數點信位調節器標志,哪位小數點亮表示調整的是該位的值。 顯示子程序的第一部分是拆字,顯示緩沖區是 2FH—2AH;第二部分是查字型碼,輸出段控和位控信號, 由于采用的是動態顯示, 所以每出輸出一位的段控和位控信號要延時一定的時間,使 LED顯示器顯示的字符時穩定的。 按鍵判斷程序有編寫時應注意按鍵的去抖動, 該系統采用的是延時去抖動的方法,延時是通過調用子程序來實現的, 每個按鍵按下后都要等待釋放后再返回。 按鍵處理程序中的按鍵式校時的,所以進入按鍵處理程序后就關閉定時中斷,對于動能鍵注意設置顯示標志。
圖 7 主程序流程圖
圖 8 中斷流程圖
第五章 系統程序設計 5.1 程序設計概要 程序名稱:基于單片機的作息時間器系統設計 說明:實現 24 小時制電子鐘, 8 位數碼管顯示,顯示時分秒顯示格式: 23-59-59(小時十位如果為 0 則不顯示)。 到預定時問啟動蜂鳴器模擬打鈴,蜂鳴器 BEEP: P3.7。打鈴方式分起床、熄幻鈴和上、下課鈴兩種。 系統使用 5 只按鍵,4 只按鍵用來調整時間, 且其中一只在不設置時間的情況下可為強制打鈴,另一只單獨連接,可實行復位和強制結束打鈴。 鍵 SET_KFY: PI.0 ;通過選擇鍵選擇要調的時間,選中位閃爍?烧{整年月日,時分秒,周期和預設鬧鐘時間。 鍵 SET_KFY:PI.1 ;通過選擇鍵選擇調整位,選中位閃爍,且在 1 鍵選擇到設置鬧鐘時間時可跳出預設鬧鐘時間。 增加鍵 ADD_KEY : PI.2;按一次使選中位加 1。 減少鍵 DEC_KEY: PI.3 ;按一次使選中位位。 1,且具有強制打鈴效果
第六章 作息時間器硬件原理圖
第七章 實訓總結 完成作息時間器設計的實訓我能綜合運用電子技術中的所學到的理論 知識來完成自動打鈴機的設計和分析電路, 學會了在虛擬的環境下創建電路, 計算和調整參數,我能靈活的應用 AltiumDesign 軟件畫圖,并且掌握了一定的 單片片機知識,通過這門課的設計我還有以下幾點收獲: 1、有利于基礎知識的掌握 通過這次設計我親手做, 自己思考, 將理論知識上升到實踐的高度, 從而進一步打破了單片機的神秘面紗。 2、有利于邏輯思維的鍛煉。 在許多常規可生的日常學習中我們不難發現這樣一個現象, 不少學生的思維常處于混亂的狀態, 寫作文來前言不搭后語, 解起數學題來步驟混亂, 這些都是缺乏思維訓練的結果, 程序設計是公認的, 最能直接有效的訓練學生的創造思維, 培養分析問題解決問題的能力的方法之一。即使見到陌生的程序,從任務分析, 確定算法界面布局,縮寫代碼到調試運行,都能順利完成。 整個過程需要我們有條理的構思, 這之間有猜測設計, 判斷思維的抽象思維訓練,又有分析問題解決問題,預測日標等能力的培養。
以上圖文的Word格式文檔下載(內容和本網頁上的一模一樣,方便保存)::
基于單片機的作息時間控制器系統設計.docx
(737.52 KB, 下載次數: 49)
2018-9-15 15:11 上傳
點擊文件名下載附件
|