期刊VIP學術指導 符合學術規范和道德
保障品質 保證專業,沒有后顧之憂
【摘要】本文介紹了一種基于Windows CE 6.0操作系統的模擬時鐘的設計方法,該設計以三星公司的S3C2440為核心,基于MFC編程,實現了鐘面上時分秒針的實時顯示。本設計編譯生成的.exe文件可做為Windows CE系統的一個應用程序使用。
【關鍵詞】ARM;S3C2440;Windows CE;模擬時鐘
1.引言
隨著科學技術的發展,嵌入式設備廣泛應用于商業管理和工業控制等領域。本設計以ARM9嵌入式微處理器S3C2440為核心,基于MFC編程,在開發板的液晶顯示屏上顯示模擬時鐘,實現了時分秒針的實時顯示。
2.硬件平臺
本設計以ARM9嵌入式微處理器S3C2440開發板為核心,主要利用S3C2440內置的RTC模塊,通過讀取系統時間來實時繪制時針,實現模擬時鐘的實時走動。
3.軟件設計
3.1 對話框設計
建立工程之后,在Resource View中設計模擬時鐘的界面,選定一個與S3C2440觸摸屏相符的對話框界面。模擬時鐘的顯示用程序實現,在對話框下方放置從Toolbox中選擇的控件。本設計總共用到九個控件:對話框控件,顯示時分秒的靜態文本控件,用于顯示數字的動態控件,更改時間的控件和確定控件等。
3.2 程序設計
首先添加一個OnTimer()函數讀取系統時間并用作計時器的消息處理函數,用于通知moniDlg類中的畫表盤刻度和指針的函數重新繪圖。添加設置時間按鈕函數,用于導出軟鍵盤,設置時間;確認按鈕函數用于關閉軟鍵盤,此時屏幕刷新。
3.2.1 表盤刻度畫法
在moniDlg類中添加畫表盤刻度的函數。程序創建兩種畫筆,設置不同的顏色和粗細,來區分整點時刻和分點時刻。
由于S3C2440開發板顯示屏默認的原點在左上角,根據S3C2440觸摸屏的大小確定圓心位置,這樣就確定了表盤的位置,表盤上的刻度都在以圓心為中心的圓環上。其坐標可以通過三角函數推導出來。設圓心坐標為(X,Y),半徑為R,表盤上其他點的坐標為(X1,Y1),該點與圓心X軸夾角為A(0~360度),該點坐標為(X1=X+RcosA,Y1=Y+RsinA)。
由于我們習慣上使用逆時針的角度,而表針是順時針轉動,即在S3C2440上,坐標跟我們實際用到的坐標方向不同,所以我們應先算出從12點開始的每個刻度的正余弦值,即有60個數組元素的正余弦數組,為計算每個刻度跟時分秒針在表盤中的位置做準備。
3.2.2 指針畫法
在moniDlg類中添加刻畫指針的函數。時分秒針主要用長短和粗細區分,亦可設置指針顏色。繪制指針以角度值為控制變量,根據前面畫表盤計算出的校正后的角度值及定義的時分秒針的長度,算出時分秒針起始的坐標值。利用讀取的系統時間算出坐標,用函數MoveTo(x1,y1)和LineTo(x2,y2)實現指針的連接并實時顯示。為了讓模擬時鐘看起來更加平滑美觀,本文設計每2分鐘,時針移動1度;每10秒鐘,分針移動1度;秒針則是每秒移動一格即6度。因此要計算時分秒針的坐標位置,還需在校正后角度的三角函數正余弦數組中加入一定的數組元素,構成新的三角函數正余弦數組:
(1)時針的取值只有1~12這12個數字,本文設計每2分鐘,時針移動1度。此處用讀取的分鐘數和小時數來計算時針的頂點和終點坐標。設讀取系統時間的小時數為st.wHour,分鐘數為st.wMinute,時針移動的度數為H。由于S3C2440系統時間采用24小時制,當讀取系統小時數小于等于12,則H=st.wHour*30+st.wMinute/2;當系統小時數大于12,則H=(st.wHour—12)*30+st.wMinute/2。若得到的H=360,則取H為0;若H<360,則H取式中算出的值。將算出的H代入下列公式,即可算出時針的頂點和終點坐標。其中x和y為表盤圓心坐標,下同。
(2)分針的取值是60個數字,本設計為每10秒分針移動1度。用讀取的分鐘數和秒鐘數來計算分針的頂點和終點坐標。設讀取的分鐘數為st.wMinute,秒鐘數為st.wSecond,分針移動的度數為M。由于要使得每10秒分針移動1度,因此計算時要加上st.wSecond/10。M=st.wMinute*6+st.wSecond/10,當計算后M=360,則取M為0。將算出的M代入下列公式,即可算出分針的頂點和終點坐標。
(3)秒針的取值亦為60個數字,本設計為每過1秒鐘,秒針移動1格。設讀取系統的秒鐘數為st.wSecond,秒針移動的度數為S。S=st.wSecond*6,當計算出的S=360時,S取0;否則取計算出的值。將算出的S代入下列公式,即可算出秒針的頂點和終點坐標。
程序界面設計結構為上方顯示模擬鐘,下方顯示數字鐘和時間調整按鈕。本設計程序在一個顯示界面下實現了模擬鐘、數字鐘和時間調整的功能。程序運行效果如圖3所示。指針和刻度顏色可根據個人喜好設定,筆者設置為黑色。
5.結語
本文的設計在Windows CE操作系統下,實現了模擬鐘的全部顯示功能,同時還具有數字鐘的顯示和時間調整功能。編譯形成的可執行文件,可用于智能手機、PDA、帶觸屏的開發板等具有Windows CE系統的微型設備中,對嵌入式初學者也有很大的幫助。
參考文獻
[1]blogercn的專欄 一個模擬時鐘[EB/OL],2009—8—9/2012—9—20.
作者簡介:
侯秋華(1986—),女,碩士研究生,主要研究方向:信號檢測與信息處理。
劉煒(1963—),男,副教授,碩士生導師,主要研究方向:智能儀器。