新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 作息鬧鈴控制器設計

        作息鬧鈴控制器設計

        作者: 時間:2013-11-01 來源:網絡 收藏

        系統軟件實現

        主程序流程

        本系統主程序在考慮可設置每天最多40個打鈴時間點,而時間點精確的分鐘,因此每個時間點信息包括時、分兩個字節存儲,共需80字節作為打鈴時間點存儲緩沖區,此緩沖區在內存中采用數組的形式定義,同時當打鈴時間點設置好時,將此數據保存到CAT24WC02串行芯片中以防止掉電丟失,在下次啟動首先從CAT24WC02芯片中讀取數據保存到對應數據緩沖區中。運行主程序是首先讀取時鐘芯片時間數據并在數碼管顯示相關信息,隨后將當前時間與各打鈴時間點相比較看是否需要打鈴,最后進行鍵盤信息處理,分別完成時間設定和打鈴時間點設定等相關操作,具體流程如圖4所示。

        作息鬧鈴控制器設計
        圖4 主程序流程圖

        鬧鈴時間設置程序設計

        本設計中共采用8個按鍵,其中時間設置按鍵和鬧鈴設置按鍵為復用鍵,由圖4可知當運行主程序時,按下相應鍵則程序進入時間設置或鬧鈴時間設置程序處理中,在鬧鈴時間設置程序中,此二鍵亦分別用于添加鬧鈴和刪除鬧鈴設置,當6位數碼管顯示信息均處于閃爍狀態時,此時按下添加鍵,則表示新添加一鬧鈴時間點,按下刪除鍵則表示刪除對應鬧鈴時間點,如6位數碼管顯示信息不全閃爍,則此二鍵不起作用。左移和右移按鍵則分別用來選擇所要設置數據位(時或分),選擇對應位后相應數據進入閃爍狀態,此時操作增加或減小鍵進入相應數值設置,當僅鬧鈴時間序號閃爍時,增加和減小鍵同時有依次進行查詢所有鬧鈴時間點的功能。信息設置完后當按下確認鍵則表示信息設置完成,此時所設置鬧鈴信息會統一進行從小到大排序(用于查詢時從小到大顯示),然后分別保存到單片機相應內存和CAT24WC02串行EEPROM中以防掉電丟失。如按下取消鍵,則表示放棄所設置信息,此時重新從CAT24WC02串行EEPROM中讀取原鬧鈴時間信息到單片機相應內存相應緩沖區。具體流程圖如圖5所示。

        作息鬧鈴控制器設計
        圖5 主程序流程圖

        鬧鈴時間信息顯示程序則由顯示程序void Display專門負責,鬧鈴設置時的數據分別放在臨時顯示緩沖區,結合其閃爍狀態值一起傳遞給顯示程序進一步處理,從而決定哪位數碼管顯示信息進行閃爍,閃爍狀態值FlagBit共有5個取值參數,分別為0、1、2、3、4,其中0表示不閃爍, 1表示鬧鈴時間分值閃爍,2表示鬧鈴時間時值閃爍,3表示鬧鈴時間序號閃爍,4表示全部顯示數值一起閃爍。具體閃爍控制則由定時中斷服務程序里對閃爍標志不斷取反,顯示程序里根據此標志位的變化進行閃爍控制。

        時間設置處理程序則主要是通過按鍵設置好時間后對DS1302進行數據更新, 具體過程與鬧鈴設置程序類似,篇幅原因不在多述。

        結語

        實驗初期本設計主要通過仿真軟件完成,由于受實驗條件影響,數碼管顯示部分采用靜態顯示方法完成, 如考慮節約成本,在實際電路中本設計亦可采用動態顯示電路或串行顯示電路完成。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 阿荣旗| 新密市| 灌阳县| 霍林郭勒市| 沙雅县| 额尔古纳市| 四会市| 聊城市| 郑州市| 霍林郭勒市| 陈巴尔虎旗| 广宗县| 柳州市| 抚松县| 兴仁县| 舒城县| 阿拉尔市| 天峨县| 桃园市| 安丘市| 共和县| 柳河县| 新安县| 翁源县| 通江县| 美姑县| 万山特区| 措美县| 仁布县| 彭山县| 冕宁县| 和平县| 监利县| 邹城市| 辉南县| 元朗区| 荣昌县| 运城市| 尉犁县| 浠水县| 宁武县|