電腦自動(dòng)打鈴器設(shè)計(jì)與實(shí)現(xiàn)1_第1頁(yè)
電腦自動(dòng)打鈴器設(shè)計(jì)與實(shí)現(xiàn)1_第2頁(yè)
電腦自動(dòng)打鈴器設(shè)計(jì)與實(shí)現(xiàn)1_第3頁(yè)
電腦自動(dòng)打鈴器設(shè)計(jì)與實(shí)現(xiàn)1_第4頁(yè)
電腦自動(dòng)打鈴器設(shè)計(jì)與實(shí)現(xiàn)1_第5頁(yè)
已閱讀5頁(yè),還剩29頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第第7章章電腦自動(dòng)打鈴器設(shè)計(jì)與實(shí)現(xiàn)電腦自動(dòng)打鈴器設(shè)計(jì)與實(shí)現(xiàn) 通 過(guò) 對(duì) A R M 7 T D M I 體 系 結(jié) 構(gòu) 、LPC2000系列ARM、C/OS-II微小內(nèi)核分析與程序設(shè)計(jì)基礎(chǔ)的深入學(xué)習(xí)之后,我們已經(jīng)對(duì)嵌入式系統(tǒng)有了比較清晰的了解。本章將結(jié)合一個(gè)具體的實(shí)例電腦自動(dòng)打鈴器來(lái)闡述嵌入式應(yīng)用系統(tǒng)的工程設(shè)計(jì)方法。緒論緒論設(shè)計(jì)要求設(shè)計(jì)要求任務(wù)設(shè)計(jì)任務(wù)設(shè)計(jì)硬件設(shè)計(jì)硬件設(shè)計(jì)程序設(shè)計(jì)程序設(shè)計(jì)1234目錄目錄系統(tǒng)功能系統(tǒng)功能系統(tǒng)框圖系統(tǒng)框圖127.1 設(shè)計(jì)要求設(shè)計(jì)要求設(shè)計(jì)要求設(shè)計(jì)要求| 電腦自動(dòng)打鈴器設(shè)計(jì)與實(shí)現(xiàn)電腦自動(dòng)打鈴器設(shè)計(jì)與實(shí)現(xiàn)系統(tǒng)功能系統(tǒng)功能l具有實(shí)時(shí)時(shí)鐘功能,能顯示時(shí)分秒,年月日星期(采用

2、8位數(shù)碼管顯示)l具有 鍵盤(pán) 輸入功能 l可以設(shè)置若干個(gè)鬧鐘,以及鬧鐘的禁止與使能l可設(shè)置每個(gè)鬧鐘發(fā)生時(shí)的輸出動(dòng)作(一共四路輸出,可獨(dú)立設(shè)置每路輸出的時(shí)間和電平狀態(tài))設(shè)計(jì)要求設(shè)計(jì)要求| 電腦自動(dòng)打鈴器設(shè)計(jì)與實(shí)現(xiàn)電腦自動(dòng)打鈴器設(shè)計(jì)與實(shí)現(xiàn)系統(tǒng)框圖系統(tǒng)框圖 LPC2000系列ARM具有RTC功能,RTC掉電后仍可使用電池繼續(xù)運(yùn)行,從而保證了系統(tǒng)掉電后時(shí)鐘的準(zhǔn)確性。ZLG7290是一款鍵盤(pán)和LED驅(qū)動(dòng)芯片,最多支持64個(gè)按鍵和8個(gè)共陰極數(shù)碼管。LPC2000ZLG7290Vcc鍵盤(pán)輸入數(shù)碼管顯示SDASCLINT輸出控制鍵盤(pán)顯示電路鍵盤(pán)顯示電路輸出控制電路輸出控制電路127.2 硬件設(shè)計(jì)硬件設(shè)計(jì)硬件設(shè)

3、計(jì)硬件設(shè)計(jì)| 電腦自動(dòng)打鈴器設(shè)計(jì)與實(shí)現(xiàn)電腦自動(dòng)打鈴器設(shè)計(jì)與實(shí)現(xiàn)鍵盤(pán)顯示電路鍵盤(pán)顯示電路 本設(shè)計(jì)實(shí)例基于SmartARM2200A工控開(kāi)發(fā)平臺(tái)實(shí)現(xiàn)。SmartARM2200A工控開(kāi)發(fā)平臺(tái)提供I2C0接口,可以和PACK板“Panel Module ZYPM7290”連接,組成鍵盤(pán)顯示電路,硬件電路及連接方法請(qǐng)參考配套教材。硬件設(shè)計(jì)硬件設(shè)計(jì)| 電腦自動(dòng)打鈴器設(shè)計(jì)與實(shí)現(xiàn)電腦自動(dòng)打鈴器設(shè)計(jì)與實(shí)現(xiàn)輸出控制電路輸出控制電路 圖示為輸出控制模擬電路,在實(shí)際應(yīng)用中,可能需要控制繼電器等。任務(wù)的劃分任務(wù)的劃分 任務(wù)的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)任務(wù)的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)任務(wù)的優(yōu)先級(jí)設(shè)計(jì)任務(wù)的優(yōu)先級(jí)設(shè)計(jì) 123多任務(wù)之間的同步與互斥多任

4、務(wù)之間的同步與互斥多任務(wù)之間的信息傳遞多任務(wù)之間的信息傳遞 457.3 任務(wù)設(shè)計(jì)任務(wù)設(shè)計(jì)任務(wù)設(shè)計(jì)任務(wù)設(shè)計(jì)| 電腦自動(dòng)打鈴器設(shè)計(jì)與實(shí)現(xiàn)電腦自動(dòng)打鈴器設(shè)計(jì)與實(shí)現(xiàn)任務(wù)的劃分任務(wù)的劃分 對(duì)一個(gè)嵌入式應(yīng)用系統(tǒng)進(jìn)行“任務(wù)劃分”,是實(shí)時(shí)操作系統(tǒng)應(yīng)用軟件設(shè)計(jì)的關(guān)鍵,任務(wù)劃分是否合理將直接影響軟件設(shè)計(jì)的質(zhì)量。以以CPU為中心為中心“關(guān)鍵關(guān)鍵”功功能能“緊迫緊迫”功能功能消耗機(jī)時(shí)消耗機(jī)時(shí)關(guān)系密切關(guān)系密切相同事件觸發(fā)相同事件觸發(fā)運(yùn)行周期相同運(yùn)行周期相同任務(wù)劃分固定順序執(zhí)行固定順序執(zhí)行 任務(wù)劃分原則如下:首先,以CPU為中心,將與各種輸入/輸出設(shè)備(或端口)相關(guān)的功能分別劃分為獨(dú)立的任務(wù)發(fā)現(xiàn)“關(guān)鍵”功能,將其最“關(guān)鍵

5、”部分“剝離”出來(lái),用一個(gè)獨(dú)立任務(wù)(或ISR)完成,剩余部分用另外一個(gè)任務(wù)實(shí)現(xiàn),兩者之間通過(guò)通信機(jī)制溝通發(fā)現(xiàn)“緊迫”功能,將其最“緊迫”部分“剝離”出來(lái),用一個(gè)獨(dú)立的高優(yōu)先級(jí)任務(wù)(或ISR)完成,剩余部分用另外一個(gè)任務(wù)實(shí)現(xiàn),兩者之間通過(guò)通信機(jī)制溝通將消耗機(jī)時(shí)較多的數(shù)據(jù)處理功能劃分出來(lái),封裝為低優(yōu)先級(jí)任務(wù)對(duì)于既“關(guān)鍵”又“緊迫”的功能,按“緊迫”功能處理將關(guān)系密切的若干功能組合成為一個(gè)任務(wù),達(dá)到功能聚合的效果將由相同事件觸發(fā)的若干功能組合成為一個(gè)任務(wù),從而免除事件分發(fā)機(jī)制將運(yùn)行周期相同的功能組合成為一個(gè)任務(wù),從而免除時(shí)間事件分發(fā)機(jī)制將若干按固定順序執(zhí)行的功能組合成為一個(gè)任務(wù),從而免除同步接力通信

6、的麻煩任務(wù)設(shè)計(jì)任務(wù)設(shè)計(jì)| 電腦自動(dòng)打鈴器設(shè)計(jì)與實(shí)現(xiàn)電腦自動(dòng)打鈴器設(shè)計(jì)與實(shí)現(xiàn)任務(wù)的劃分任務(wù)的劃分 電腦自動(dòng)打鈴器任務(wù)劃分如下:RTC中斷中斷顯示任務(wù)顯示任務(wù)鍵盤(pán)任務(wù)鍵盤(pán)任務(wù)輸出控制任務(wù)輸出控制任務(wù)電腦打鈴器電腦打鈴器 電腦自動(dòng)打鈴器具有鍵盤(pán)輸入功能,用于設(shè)置時(shí)鐘和鬧鐘,因此需要一個(gè)鍵盤(pán)任務(wù)。 電腦自動(dòng)打鈴器需要有顯示功能,用來(lái)顯示時(shí)鐘和鬧鐘,因此需要一個(gè)顯示任務(wù)。 電腦自動(dòng)打鈴器需要一個(gè)輸出控制任務(wù),用來(lái)控制鬧鐘時(shí)間到后各路的輸出。 電腦自動(dòng)打鈴器具有實(shí)時(shí)時(shí)鐘功能,需要一個(gè)RTC中斷。任務(wù)設(shè)計(jì)任務(wù)設(shè)計(jì)| 電腦自動(dòng)打鈴器設(shè)計(jì)與實(shí)現(xiàn)電腦自動(dòng)打鈴器設(shè)計(jì)與實(shí)現(xiàn)任務(wù)的優(yōu)先級(jí)設(shè)計(jì)任務(wù)的優(yōu)先級(jí)設(shè)計(jì)人機(jī)接口,實(shí)

7、時(shí)性低鍵盤(pán)任務(wù)鍵盤(pán)任務(wù)1輸出控制任務(wù)輸出控制任務(wù)3顯示任務(wù)顯示任務(wù)2RTC中斷中斷4電電腦腦自自動(dòng)動(dòng)打打鈴鈴器器控制接口,實(shí)時(shí)性高任務(wù)設(shè)計(jì)任務(wù)設(shè)計(jì)| 電腦自動(dòng)打鈴器設(shè)計(jì)與實(shí)現(xiàn)電腦自動(dòng)打鈴器設(shè)計(jì)與實(shí)現(xiàn)任務(wù)的優(yōu)先級(jí)設(shè)計(jì)任務(wù)的優(yōu)先級(jí)設(shè)計(jì)鍵盤(pán)任務(wù)鍵盤(pán)任務(wù)1輸出控制任務(wù)輸出控制任務(wù)3顯示任務(wù)顯示任務(wù)2RTC中斷中斷4電電腦腦自自動(dòng)動(dòng)打打鈴鈴器器優(yōu)先級(jí):6優(yōu)先級(jí):12優(yōu)先級(jí):13任務(wù)設(shè)計(jì)任務(wù)設(shè)計(jì)| 電腦自動(dòng)打鈴器設(shè)計(jì)與實(shí)現(xiàn)電腦自動(dòng)打鈴器設(shè)計(jì)與實(shí)現(xiàn)任務(wù)的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)任務(wù)的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì) 對(duì)于一個(gè)任務(wù),除了它的代碼(任務(wù)函數(shù))外,還有相關(guān)的信息。為保存這些信息,必須為任務(wù)設(shè)計(jì)對(duì)應(yīng)的若干數(shù)據(jù)結(jié)構(gòu)。任務(wù)需要配備的數(shù)

8、據(jù)結(jié)構(gòu)分為兩類:一類是與操作系統(tǒng)有關(guān)的數(shù)據(jù)結(jié)構(gòu);另外一類是與操作系統(tǒng)無(wú)關(guān)的數(shù)據(jù)結(jié)構(gòu)。任務(wù)設(shè)計(jì)任務(wù)設(shè)計(jì)| 電腦自動(dòng)打鈴器設(shè)計(jì)與實(shí)現(xiàn)電腦自動(dòng)打鈴器設(shè)計(jì)與實(shí)現(xiàn)任務(wù)的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)任務(wù)的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)與操作系統(tǒng)有關(guān)的數(shù)據(jù)結(jié)構(gòu) 一個(gè)任務(wù)要想在操作系統(tǒng)的管理下工作,必須首先被創(chuàng)建。在C/OS-II中,任務(wù)的創(chuàng)建函數(shù)原型如下:任務(wù)函數(shù)指針任務(wù)參數(shù)指針,一般設(shè)為 (void *)0任務(wù)堆棧棧頂指針任務(wù)優(yōu)先級(jí)任務(wù)ID,一般設(shè)為prio任務(wù)堆棧棧底指針任務(wù)堆棧大小任務(wù)附加數(shù)據(jù)指針,一般設(shè)為(void *)0創(chuàng)建任務(wù)選項(xiàng)INT8U OSTaskCreateExt(void (*task)(void *pd),void

9、*pdata,OS_STK *ptos, INT8U prio, INT16U id, OS_STK *pbos, INT32U stk_size, void *pext, INT16U opt);任務(wù)設(shè)計(jì)任務(wù)設(shè)計(jì)| 電腦自動(dòng)打鈴器設(shè)計(jì)與實(shí)現(xiàn)電腦自動(dòng)打鈴器設(shè)計(jì)與實(shí)現(xiàn)任務(wù)的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)任務(wù)的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì) 在電腦自動(dòng)打鈴器應(yīng)用中,我們?cè)O(shè)計(jì)了3個(gè)任務(wù)(鍵盤(pán)任務(wù)、顯示任務(wù)和輸出控制任務(wù)),與操作系統(tǒng)有關(guān)的數(shù)據(jù)結(jié)構(gòu)定義如下:#define TASKKEY_ID12/定義鍵盤(pán)任務(wù)的ID#define TASKKEY_PRIOTASKKEY_ID/定義鍵盤(pán)任務(wù)的優(yōu)先級(jí)#define TASKKEY_STAC

10、K_SIZE512/定義鍵盤(pán)任務(wù)堆棧的大小#define TASKDISP_ID13/定義顯示任務(wù)的ID#define TASKDISP_PRIO TASKDISP_ID/定義顯示任務(wù)的優(yōu)先級(jí)#define TASKDISP_STACK_SIZE512/定義顯示任務(wù)堆棧的大小#define TASKCTRL_ID6/定義控制任務(wù)的ID#define TASKCTRL_PRIO TASKCTRL_ID/定義控制任務(wù)的優(yōu)先級(jí)#define TASKCTRL_STACK_SIZE 512/定義控制任務(wù)堆棧的大小OS_STK TaskKeyStkTASKKEY_STACK_SIZE; /定義鍵盤(pán)任務(wù)的

11、堆棧OS_STK TaskDispStkTASKDISP_STACK_SIZE; /定義顯示任務(wù)的堆棧OS_STK TaskCtrlStkTASKCTRL_STACK_SIZE; /定義控制任務(wù)的堆棧void TaskKey(void *pdata); /鍵盤(pán)任務(wù)聲明void TaskDisp(void *pdata); /顯示任務(wù)聲明void TaskCtrl(void *pdata); /控制任務(wù)聲明任務(wù)設(shè)計(jì)任務(wù)設(shè)計(jì)| 電腦自動(dòng)打鈴器設(shè)計(jì)與實(shí)現(xiàn)電腦自動(dòng)打鈴器設(shè)計(jì)與實(shí)現(xiàn)任務(wù)的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)任務(wù)的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)與操作系統(tǒng)無(wú)關(guān)的數(shù)據(jù)結(jié)構(gòu) 電腦自動(dòng)打鈴器具有時(shí)鐘和鬧鐘功能,那么我們首先就要構(gòu)造這兩個(gè)數(shù)

12、據(jù)結(jié)構(gòu),定義如下:時(shí)鐘結(jié)構(gòu)定義struct time unsigned charucHour;/ 時(shí) unsigned charucMin;/ 分 unsigned charucSec;/ 秒 unsigned charucWeek;/ 星期 unsigned shortusYear;/ 年 unsigned charucMon;/ 月 unsigned charucDay;/ 日;typedef struct timeTIME;typedef TIME*PTIME;鬧鐘結(jié)構(gòu)定義struct alarm unsigned charucHour;/ 時(shí) unsigned charucMin;/

13、分 unsigned charucSec;/ 秒 unsigned charucEnable;/ 鬧鐘使能控制 struct unsigned shortusLevel;/ 輸出電平控制 unsigned shortusTime;/ 輸出時(shí)間控制 c4;/ 4路輸出控制;typedef struct alarmALARM;typedef ALARM*PALARM;定義時(shí)鐘和鬧鐘全局變量#define MAX_ALARM 4/ 最大鬧鐘個(gè)數(shù)TIMEGtimeCurrentTime;/ 時(shí)鐘全局變量ALARM GalarmRingTimeMAX_ALARM;/ 鬧鐘全局變量任務(wù)設(shè)計(jì)任務(wù)設(shè)計(jì)| 電腦

14、自動(dòng)打鈴器設(shè)計(jì)與實(shí)現(xiàn)電腦自動(dòng)打鈴器設(shè)計(jì)與實(shí)現(xiàn)多任務(wù)之間的同步與互斥多任務(wù)之間的同步與互斥 為了說(shuō)明問(wèn)題,我們?cè)谶@里將鍵盤(pán)任務(wù)拆分成為兩個(gè)任務(wù),一個(gè)是鍵盤(pán)掃描任務(wù),另一個(gè)是鍵盤(pán)處理任務(wù),二者之間使用消息郵箱進(jìn)行同步。行為同步發(fā)送鍵值消息接收鍵值消息鍵盤(pán)掃描任務(wù)鍵盤(pán)處理任務(wù)消息郵箱l 鍵盤(pán)掃描任務(wù)掃描到按鍵,就向消息郵箱發(fā)送鍵值消息;l 鍵盤(pán)處理任務(wù)應(yīng)及時(shí)處理鍵值消息,二者之間是同步接力的關(guān)系。任務(wù)設(shè)計(jì)任務(wù)設(shè)計(jì)| 電腦自動(dòng)打鈴器設(shè)計(jì)與實(shí)現(xiàn)電腦自動(dòng)打鈴器設(shè)計(jì)與實(shí)現(xiàn)多任務(wù)之間的同步與互斥多任務(wù)之間的同步與互斥資源互斥 在電腦自動(dòng)打鈴器的設(shè)計(jì)中,ZLG7290是通過(guò)I2C總線與LPC2000連接的,I2

15、C總線是鍵盤(pán)任務(wù)和顯示任務(wù)的共享資源,必須遵循資源互斥的原則進(jìn)行訪問(wèn),二者之間使用信號(hào)量進(jìn)行資源互斥。鍵盤(pán)任務(wù)顯示任務(wù)信號(hào)量申請(qǐng)I2C資源釋放I2C資源申請(qǐng)I2C資源釋放I2C資源任務(wù)設(shè)計(jì)任務(wù)設(shè)計(jì)| 電腦自動(dòng)打鈴器設(shè)計(jì)與實(shí)現(xiàn)電腦自動(dòng)打鈴器設(shè)計(jì)與實(shí)現(xiàn)多任務(wù)之間的信息傳遞多任務(wù)之間的信息傳遞全局變量 在任務(wù)的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)中,我們?cè)O(shè)計(jì)了時(shí)鐘和鬧鐘兩個(gè)數(shù)據(jù)結(jié)構(gòu),并定義了時(shí)鐘和鬧鐘兩個(gè)全局變量。鍵盤(pán)任務(wù),顯示任務(wù)和RTC中斷通過(guò)它們傳遞信息。全局變量(時(shí)鐘和鬧鐘)鍵盤(pán)任務(wù)顯示任務(wù)RTC中斷更新時(shí)鐘檢測(cè)鬧鐘設(shè)置時(shí)鐘和鬧鐘顯示時(shí)鐘和鬧鐘任務(wù)設(shè)計(jì)任務(wù)設(shè)計(jì)| 電腦自動(dòng)打鈴器設(shè)計(jì)與實(shí)現(xiàn)電腦自動(dòng)打鈴器設(shè)計(jì)與實(shí)現(xiàn)多任

16、務(wù)之間的信息傳遞多任務(wù)之間的信息傳遞消息郵箱 RTC中斷檢測(cè)鬧鐘,鬧鐘到就向輸出控制任務(wù)發(fā)送控制信息,在本設(shè)計(jì)實(shí)例中使用消息郵箱。 RTC中斷輸出控制任務(wù)消息郵箱發(fā)送控制消息接收控制消息人機(jī)界面設(shè)計(jì)人機(jī)界面設(shè)計(jì) 鍵盤(pán)任務(wù)鍵盤(pán)任務(wù)主函數(shù)主函數(shù) 123顯示任務(wù)顯示任務(wù)RTC中斷中斷輸出控制任務(wù)輸出控制任務(wù) 4567.4 程序設(shè)計(jì)程序設(shè)計(jì)程序設(shè)計(jì)程序設(shè)計(jì)| 電腦自動(dòng)打鈴器設(shè)計(jì)與實(shí)現(xiàn)電腦自動(dòng)打鈴器設(shè)計(jì)與實(shí)現(xiàn)人機(jī)界面設(shè)計(jì)人機(jī)界面設(shè)計(jì) 對(duì)于一個(gè)具有人機(jī)界面的應(yīng)用系統(tǒng)來(lái)說(shuō),首先應(yīng)該考慮的是人機(jī)界面如何設(shè)計(jì)。 8位數(shù)碼管顯示力度有限,只能通過(guò)按鍵分屏顯示,顯示界面定義如下:時(shí)鐘模式:12時(shí) 59分 59秒 星

17、期一星期時(shí)十位時(shí)個(gè)位分十位分個(gè)位秒十位秒個(gè)位0125959程序設(shè)計(jì)程序設(shè)計(jì)| 電腦自動(dòng)打鈴器設(shè)計(jì)與實(shí)現(xiàn)電腦自動(dòng)打鈴器設(shè)計(jì)與實(shí)現(xiàn)人機(jī)界面設(shè)計(jì)人機(jī)界面設(shè)計(jì) 對(duì)于一個(gè)具有人機(jī)界面的應(yīng)用系統(tǒng)來(lái)說(shuō),首先應(yīng)該考慮的是人機(jī)界面如何設(shè)計(jì)。 8位數(shù)碼管顯示力度有限,只能通過(guò)按鍵分屏顯示,顯示界面定義如下:時(shí)鐘模式:2007年 12月 12日固定固定年十位年個(gè)位月十位月個(gè)位日十位日個(gè)位20071212程序設(shè)計(jì)程序設(shè)計(jì)| 電腦自動(dòng)打鈴器設(shè)計(jì)與實(shí)現(xiàn)電腦自動(dòng)打鈴器設(shè)計(jì)與實(shí)現(xiàn)人機(jī)界面設(shè)計(jì)人機(jī)界面設(shè)計(jì) 對(duì)于一個(gè)具有人機(jī)界面的應(yīng)用系統(tǒng)來(lái)說(shuō),首先應(yīng)該考慮的是人機(jī)界面如何設(shè)計(jì)。 8位數(shù)碼管顯示力度有限,只能通過(guò)按鍵分屏顯示,顯示

18、界面定義如下:鬧鐘模式:A表示鬧鐘,0表示第一個(gè)鬧鐘,鬧鐘時(shí)間08:30:00固定索引時(shí)十位時(shí)個(gè)位分十位分個(gè)位秒十位秒個(gè)位A0083000程序設(shè)計(jì)程序設(shè)計(jì)| 電腦自動(dòng)打鈴器設(shè)計(jì)與實(shí)現(xiàn)電腦自動(dòng)打鈴器設(shè)計(jì)與實(shí)現(xiàn)人機(jī)界面設(shè)計(jì)人機(jī)界面設(shè)計(jì) 對(duì)于一個(gè)具有人機(jī)界面的應(yīng)用系統(tǒng)來(lái)說(shuō),首先應(yīng)該考慮的是人機(jī)界面如何設(shè)計(jì)。 8位數(shù)碼管顯示力度有限,只能通過(guò)按鍵分屏顯示,顯示界面定義如下:鬧鐘模式:鬧鐘使能控制(E使能,d禁能),從左至右,第一個(gè)是總開(kāi)關(guān),接著是星期60(分別對(duì)應(yīng)星期日星期一)的開(kāi)關(guān)。E/dE/dE/dE/dE/dE/dE/dE/dEEEEEEEE程序設(shè)計(jì)程序設(shè)計(jì)| 電腦自動(dòng)打鈴器設(shè)計(jì)與實(shí)現(xiàn)電腦自動(dòng)打

19、鈴器設(shè)計(jì)與實(shí)現(xiàn)人機(jī)界面設(shè)計(jì)人機(jī)界面設(shè)計(jì) 對(duì)于一個(gè)具有人機(jī)界面的應(yīng)用系統(tǒng)來(lái)說(shuō),首先應(yīng)該考慮的是人機(jī)界面如何設(shè)計(jì)。 8位數(shù)碼管顯示力度有限,只能通過(guò)按鍵分屏顯示,顯示界面定義如下:鬧鐘模式:C表示通道,0表示第一個(gè)通道(每個(gè)鬧鐘有4個(gè)通道),H/L表示輸出高低電平控制,接著是輸出時(shí)間控制,最大為9999秒。固定通道H/L秒千位秒百位秒十位秒個(gè)位C0H9999程序設(shè)計(jì)程序設(shè)計(jì)| 電腦自動(dòng)打鈴器設(shè)計(jì)與實(shí)現(xiàn)電腦自動(dòng)打鈴器設(shè)計(jì)與實(shí)現(xiàn)人機(jī)界面設(shè)計(jì)人機(jī)界面設(shè)計(jì) 根據(jù)上述分析,電腦自動(dòng)打鈴器具有時(shí)鐘和鬧鐘模式,時(shí)鐘和鬧鐘模式都分別有不同的顯示內(nèi)容,鬧鐘模式還有若干不同的鬧鐘,為了修改時(shí)鐘和鬧鐘的設(shè)置,還需要一個(gè)

20、光標(biāo)閃爍來(lái)提示用戶進(jìn)行修改,為此定義了如下全局變量:unsigned int GuiMode= 0;/ 模式(時(shí)鐘和鬧鐘模式)unsigned int GuiCursor = 8;/ 光標(biāo)(閃爍位置提示)unsigned int GuiIndex= 0;/ 索引(不同的鬧鐘)unsigned int GuiItem= 0;/ 條目(時(shí)鐘或鬧鐘的不同內(nèi)容) 按鍵的處理比較靈活,可自行設(shè)計(jì)。程序設(shè)計(jì)程序設(shè)計(jì)| 電腦自動(dòng)打鈴器設(shè)計(jì)與實(shí)現(xiàn)電腦自動(dòng)打鈴器設(shè)計(jì)與實(shí)現(xiàn)主函數(shù)主函數(shù) 在程序設(shè)計(jì)的講解中,首先講一下主函數(shù)。在主函數(shù)中,進(jìn)行了操作系統(tǒng)的初始化,創(chuàng)建了一個(gè)鍵盤(pán)任務(wù),最后,啟動(dòng)多任務(wù)操作系統(tǒng)。程序如下所示:int main(void) OSInit();/ 初始化uC/OS-II 創(chuàng)建鍵盤(pán)任務(wù);/ 代碼可參考配套教材 OSStart();/ 啟動(dòng)多任務(wù)操作系統(tǒng) return (0);程序設(shè)計(jì)程序設(shè)計(jì)| 電腦自動(dòng)打鈴器設(shè)計(jì)與實(shí)現(xiàn)電腦自動(dòng)打鈴器設(shè)計(jì)與實(shí)現(xiàn)鍵盤(pán)任務(wù)鍵盤(pán)任務(wù)l 鍵盤(pán)任務(wù)首先進(jìn)行目標(biāo)板的初始化,主要完成系統(tǒng)時(shí)鐘中斷的設(shè)置;l 然后初始化I2C0總線接口并設(shè)置中斷;l 然后創(chuàng)建消息郵箱GmboxRingCtrl,用于鬧鐘觸發(fā)輸出控制任務(wù);l 接著初始化RTC并設(shè)置中斷;l 最后創(chuàng)建了顯示任務(wù)和輸出控制任務(wù),就進(jìn)入

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論