




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
PAGE多語言網(wǎng)站解決方案多語言網(wǎng)站開發(fā),重點(diǎn)的還是在解決語言之間的問題。那如何解決這個問題呢?大概就分三步走:1.頁面多語言2.數(shù)據(jù)庫多語言3.用戶訪問語言統(tǒng)一1.頁面多語言需要考慮的問題:A.用戶登陸時候,自動識別字符,調(diào)用不同的語言包?B.用戶切換不同語言時候,調(diào)用不同的語言包?C.增加多語言后的目錄結(jié)構(gòu)?頁面多語言也就是外觀的多語言化,這里可以采用靜態(tài)的語言包的方式。設(shè)計時候就應(yīng)該包括language的目錄,針對不同語言有獨(dú)立的子目錄。如英文language/en,簡體中文language/gb,繁體中文language/b5(可以擴(kuò)展其他語言)每個目錄下就包含了對每個頁面的語言版本。選擇語言版本時候就可以調(diào)用相應(yīng)版本的語言包。具體做法:0.利用js語言,識別瀏覽器語言,在調(diào)用不同的語言包.1.language/en/global.ln是針對英文版的全局語言包。2.global.ln內(nèi)容為:$title="Englishwebstie";$charset="UTF-8";3.index.php調(diào)用:<?phprequire_once()?>;<html>;<head>;<title>;$title<title>;<metahttp-equiv="content-type"content="text/html;charset=$charset">;</head>;<body>;</body>;</html>;這樣通過擴(kuò)展就可以實現(xiàn)頁面的多語言化.2.數(shù)據(jù)庫多語言這個考慮的問題:A.后臺錄入數(shù)據(jù)的多語言化?B.用戶在不同版本下,提交的內(nèi)容,如何保存?C.提供三種語言包,還是提供英文和簡體,簡體通過轉(zhuǎn)化提供繁體?數(shù)據(jù)庫多語言就是達(dá)到多語言在數(shù)據(jù)庫里面的統(tǒng)一。就需要采用utf-8統(tǒng)一編碼。無論什么語言的文字,都統(tǒng)一使用utf-8來存放到數(shù)據(jù)庫里面。采用表字段來表識屬于什么語言版本的文字。具體:A.對于后臺添加的問題:1.后臺添加時候,就需要多語言化的錄入。先建立一個以utf-8編碼的數(shù)據(jù)庫,錄入英文/簡體,簡體在通過轉(zhuǎn)化為繁體,再以utf-8編碼方式存于數(shù)據(jù)庫中。2.建立以utf-8為編碼的表結(jié)構(gòu),importlanguage標(biāo)識屬于什么語言版本但在某個版本下,就搜索屬于這個版本的文字來顯示。其他文字不顯示。DROPTABLEIFEXISTS`zz_importer`;CREATETABLEIFNOTEXISTS`zz_importer`(`importID`int(11)NOTNULLauto_increment,`importTime`dateNOTNULLdefault'0000-00-00',`improtfile`varchar(100)NOTNULLdefault'',`importlanguage`varchar(100)NOTNULLdefault''PRIMARYKEY(`importID`))ENGINE=MyISAMDEFAULTCHARSET=uft-8;3.簡體轉(zhuǎn)化的繁體。利用php的iconv.此過程對于linux/unix有效,對于windows無效。iconv("GB2312","BIG5",$text);4.因為,charset="utf-8",數(shù)據(jù)就都是以utf-8編碼方式存在,添加數(shù)據(jù)時候,要分別用en/gb/big5來標(biāo)識語言版本.INSERTINTO`zz_importer`VALUES(,'','','en');INSERTINTO`zz_importer`VALUES(,'','','gb');INSERTINTO`zz_importer`VALUES(,'','','big5');B.對于用戶添加的問題:1.假設(shè)下簡體中文下.用戶因為頁面頭為UTF-8.則用戶瀏覽器會以utf-8編碼方式瀏覽頁面。2.添加的數(shù)據(jù)庫本身以utf-8方式存在。3.添加數(shù)據(jù)時候,要分別用gb來標(biāo)識語言版本INSERTINTO`zz_importer`VALUES(,'','','gb');C.對于簡體和繁體是單獨(dú)提供還是轉(zhuǎn)化問題單獨(dú)提供-比較符合多語言的標(biāo)準(zhǔn),靈活性大,對ISP沒有特別的要求。轉(zhuǎn)化提供-提交速度會受影響,同時要ISP提供iconv的函數(shù)支持。3.用戶訪問語言統(tǒng)一A.假設(shè)用戶簡體中文版時候:<metahttp-equiv="content-type"content="text/html;charset=UTF-8">;所有語言版本都是這樣。B.調(diào)用language/gb的語言包。C.搜索數(shù)據(jù)庫有語言字段為gb的數(shù)據(jù),并顯示D.當(dāng)用戶提交信息,參照上面數(shù)據(jù)庫多語言的B問題。多語言網(wǎng)站解決方案數(shù)據(jù)庫存放可以有幾種方式的:A.不同數(shù)據(jù)庫來存放B.同一數(shù)據(jù)庫不同表存放C.同一數(shù)據(jù)庫同一表不同字段來存放A.種方式,每種語言都建立一個數(shù)據(jù)庫感覺就有點(diǎn)浪費(fèi)了。B種方式可能是比較多人采用的?;臼枪灿械木徒⒁粋€表來存放。每種語言私有的,就放到各自的表里面。C種方式,感覺對于數(shù)據(jù)量不大的,也是好的方式。數(shù)據(jù)量太大,給單表的增大更快。造成負(fù)擔(dān)。湖南工程學(xué)院課程設(shè)計課程名稱單片機(jī)原理與應(yīng)用課題名稱電子表專業(yè)自動化班級學(xué)號姓名指導(dǎo)教師20年6月21日
湖南工程學(xué)院課程設(shè)計任務(wù)書課程名稱單片機(jī)原理與應(yīng)用課題電子表專業(yè)班級自動化班學(xué)生姓名學(xué)號指導(dǎo)老師審批任務(wù)書下達(dá)日期20**年6月11日任務(wù)完成日期20**年6月21日設(shè)計內(nèi)容與設(shè)計要求設(shè)計內(nèi)容:以51系列單片機(jī)為核心,以開發(fā)板為平臺;設(shè)計一個多功能電子表,具有電子時鐘、時鐘設(shè)置和跑表功能。做時鐘時在6位LED顯示器上顯示分、秒、時,做跑表時顯示范圍000.0秒~999.9秒,并具有時鐘啟動、時鐘停止、跑表啟動、跑表復(fù)位、時鐘調(diào)整功能鍵。設(shè)計任務(wù)包括控制系統(tǒng)硬件設(shè)計和應(yīng)用程序設(shè)計。設(shè)計要求:1)確定系統(tǒng)設(shè)計方案; 2)進(jìn)行系統(tǒng)的硬件設(shè)計;3)完成必要元器件選擇;4)開發(fā)板焊接及測試5)系統(tǒng)軟件設(shè)計及調(diào)試;6)系統(tǒng)聯(lián)調(diào)及操作說明7)寫說明書主要設(shè)計條件MCS-51單片機(jī)實驗操作臺1臺;PC機(jī)及單片機(jī)調(diào)試軟件,仿真軟件proteus;開發(fā)板1塊;制作工具1套;5、系統(tǒng)設(shè)計所需的元器件。說明書格式課程設(shè)計任務(wù)書目錄說明書內(nèi)容1)課題的設(shè)計要求、目的、意義2)系統(tǒng)總體方案選擇與說明3)系統(tǒng)結(jié)構(gòu)框圖與工作原理4)各單元硬件設(shè)計說明及計算方法5)軟件設(shè)計與說明(包括流程圖)6)調(diào)試結(jié)果與必要的調(diào)試說明7)使用說明8)程序清單9)總結(jié)10)參考文獻(xiàn)附錄A系統(tǒng)原理圖附錄B程序清單評分表進(jìn)度安排設(shè)計時間分為二周第一周星期一、上午:布置課題任務(wù),課題介紹及講課。下午:借閱有關(guān)資料,總體方案討論。星期二、分班級焊接開發(fā)板星期三、確定總體方案,學(xué)習(xí)與設(shè)計相關(guān)內(nèi)容。星期四、各部分方案設(shè)計,各部分設(shè)計。星期五、設(shè)計及上機(jī)調(diào)試。星期六、設(shè)計并調(diào)試第二周星期一:設(shè)計及上機(jī)調(diào)試。星期二:調(diào)試,中期檢查。星期三:調(diào)試、寫說明書。星期四--星期五上午:寫說明書、完成電子版并打印成稿。星期五下午:答辯。參考文獻(xiàn)王迎旭編.《單片機(jī)原理與應(yīng)用》[M].機(jī)械工業(yè)出版社.樓然苗編.《51系列單片機(jī)設(shè)計實例》[M].北京航空航天大學(xué)出版社.黃勤編.《計算機(jī)硬件技術(shù)基礎(chǔ)實驗教程》[M].重慶大學(xué)出版社4、劉樂善編.《微型計算機(jī)接口技術(shù)及應(yīng)用》[M].華中科技大學(xué)出版社.5、陳光東編.《單片微型計算機(jī)原理及接口技術(shù)》[M].華中科技大學(xué)出版社.目錄TOC\o"1-3"\h\u24618第1章概述 291931.1設(shè)計內(nèi)容及要求 2221531.2本設(shè)計實現(xiàn)的功能 2116441.3附加功能 225311第2章系統(tǒng)總體方案設(shè)計 3163752.1系統(tǒng)方案設(shè)計 3279302.2系統(tǒng)總體方案框圖 325277第三章硬件設(shè)計 4254803.1時間顯示電路的設(shè)計 4133403.2按鍵電路的設(shè)計 5164903.3跑表電路的設(shè)計和按鍵 5279063.4雙鬧鈴電路的設(shè)計 643233.4內(nèi)部時鐘電路的設(shè)計 7281543.5復(fù)位電路的設(shè)計 780493.6單片機(jī)硬件資源分配 827142第4章開發(fā)板焊接及其測試 84584.1焊接步驟及注意事項 8221864.2調(diào)試及檢測步驟 915218第5章軟件設(shè)計與說明 10315065.1系統(tǒng)軟件設(shè)計思路 10270675.2模塊程序的設(shè)計 10283695.2.1時鐘模塊 1080155.2.2跑表模塊 11301495.2.3鬧鐘模塊 12195.3顯示和鍵盤的設(shè)計 13129075.3.1顯示模塊 1358965.3.2矩陣鍵盤模塊 14948第6章調(diào)試步驟、結(jié)果、使用說明 1414966.1調(diào)試步驟和過程 1481616.3調(diào)試結(jié)果 16178206.2使用說明 1614683第7章設(shè)計總結(jié) 1611772第八章參考文獻(xiàn) 179320附錄A 1714440附錄B 19第1章概述1.1設(shè)計內(nèi)容及要求本課主要是以單片機(jī)為核心設(shè)計一個多功能電子表,具有電子時鐘、時鐘設(shè)置和跑表功能。做時鐘時在4位LED顯示器上顯示分、秒,做跑表時顯示范圍000.0秒~999.9秒,并具有時鐘啟動、時鐘停止、跑表啟動、跑表。1.2本設(shè)計實現(xiàn)的功能(1)時間使用LED顯示,分別為時,分,秒(其中時分秒之間用橫杠“—”隔開,一共用到8個LED數(shù)碼管;(2)時,分,秒都可以分別設(shè)置,通過加減可以快速定位到需要設(shè)定的時間,在設(shè)置是可停止時鐘,也可時鐘邊走邊設(shè)置;(3)跑表功能,可以清零,啟動,實現(xiàn)隨停隨加;(4)時鐘和跑表之間可實現(xiàn)自由切換,當(dāng)進(jìn)入跑表模式時時鐘繼續(xù)進(jìn)行,當(dāng)進(jìn)入時鐘模式時,跑表停止;第2章系統(tǒng)總體方案設(shè)計2.1系統(tǒng)方案設(shè)計本設(shè)計用52單片機(jī)為核心,其功能主要有軟件來實現(xiàn),以及矩陣鍵盤加LED數(shù)碼管顯示,所以降低了硬件電路的復(fù)雜性,也相應(yīng)的降低了其成本。根據(jù)設(shè)計要求,總電路分為鍵盤接口電路、單片機(jī)時鐘電路、復(fù)位電路、LED顯示電路、響鈴電路、電源電路六個部分。其中鍵盤接口電路采用矩陣鍵盤,分別實現(xiàn)對時鐘,分鐘,秒鐘的加一功能、減一功能,時鐘電路,在本系統(tǒng)中采用內(nèi)部時鐘電路,由一個石英晶體管振蕩器和兩個微調(diào)電容組成;復(fù)位電路中給給RST引腳連續(xù)輸入2個機(jī)器周期(即24個時鐘振蕩周期)以上高電平,就可完成初始化操作;顯示電路采用8段8位LED顯示管顯示時間,其中前兩位顯示小時,中間兩位顯示分鐘,后兩位顯示秒鐘,時,分,秒間通過橫杠“—”顯示;跑表部分通過4個LED數(shù)碼管顯示,第二個通過帶點(diǎn)數(shù)碼管來顯示,區(qū)別于秒單位,鬧鈴電路中由P2.4口輸出電平,經(jīng)三極管驅(qū)動蜂鳴器鈴?fù)瓿婶[鈴;電源電路,本設(shè)計由外部電源對其供電,通過整流和濾波,再通過7805穩(wěn)壓。2.2系統(tǒng)總體方案框圖第三章硬件設(shè)計3.1時間顯示電路的設(shè)計LED數(shù)碼管顯示方式有靜態(tài)顯示方式和動態(tài)顯示方式兩種。靜態(tài)顯示方式雖然占用CPU較少,接口簡單,但其硬件電路比較復(fù)雜,成本較高,所以本設(shè)計中采用動態(tài)顯示方式。動態(tài)顯示方式是指輪流電量各位LED數(shù)碼管,利用定時掃描的方式輪流點(diǎn)亮各位數(shù)碼管。LED公用一個8位的I/O,即P0口,3位LED的位選線通過74LS138輸出,來選中對應(yīng)的LED數(shù)碼管,由于采用的是8位LED數(shù)碼管顯示,所以前兩位LED顯示“時針”,中間兩位顯示“分針”,后面兩位顯示秒針間隔有橫杠顯示“—”。同時可通過按鍵切換到跑表模式,然后還有鬧鐘模塊,通過按鍵來切換顯示模式,同時還可通過對應(yīng)的按鍵對其進(jìn)行時間設(shè)定。對于三個顯示直接的切換,可通過按鍵自由切換。時間顯示電路圖:圖3.1時間顯示電路設(shè)計圖3.2按鍵電路的設(shè)計因考慮節(jié)省I/O線數(shù)量,方便操作,本設(shè)計采用矩陣式鍵盤。矩陣式鍵盤由I/O線組成行、列結(jié)構(gòu),行、列線不相通,通過一個設(shè)置在行、列交叉點(diǎn)上的按鍵來連通。本設(shè)計中采用16個按鍵,具體功能如下:S1:時間調(diào)整按鈕:使硬件處于時鐘調(diào)整模式;S2:小時加按鍵;S3:小時減按鍵同時,本設(shè)計通過調(diào)用一個延時函數(shù),消除鍵盤的抖動問題,提高了時間調(diào)整額精度。圖3.2按鍵電路設(shè)計圖3.3跑表電路的設(shè)計和按鍵因為跑表是基于時鐘的顯示及矩陣鍵盤,所以其電路一樣的,只是有些按鍵用來實現(xiàn)跑表的功能。其通過4個LED來顯示跑表時間,還有按鍵對其控制停止和啟動,還有對顯示清0。其余數(shù)碼管不用,其按鍵用的是下面3個按鍵:S4:跑表啟動暫停清零按鈕S5:對時鐘跑表進(jìn)行切換按鈕3.4內(nèi)部時鐘電路設(shè)計單片機(jī)內(nèi)部有一個用于構(gòu)成振蕩器的高增益反相放大器,它的輸入端為XTAL1引腳,輸出端為XTAL2引腳。這兩個引腳跨接石英晶體振蕩器和微調(diào)電容,構(gòu)成一個穩(wěn)定的自己振蕩器,形成內(nèi)部時鐘方式的電路。其中微調(diào)電容選擇C1=C2=30uF。內(nèi)部時鐘電路設(shè)計圖如下:圖3.4內(nèi)部時鐘電路設(shè)計圖3.5復(fù)位電路的設(shè)計可靠的復(fù)位電路是保證單片機(jī)正常運(yùn)行的關(guān)鍵因素。將RST引腳連續(xù)輸入2個機(jī)器周期(即24個時鐘振蕩期間)以上高電平,即可以完成單片機(jī)的初始化操作。本設(shè)計采用按鈕復(fù)位方式。復(fù)位電路設(shè)計圖如下:圖3.5復(fù)位電路設(shè)計圖3.6單片機(jī)硬件資源分配P0口P0.0LED數(shù)碼管A段P1口P1.0矩陣鍵盤的S1行選端P0.1LED數(shù)碼管B段P1.1矩陣鍵盤的S2行選端P0.2LED數(shù)碼管C段P1.2矩陣鍵盤的S3行選端P0.3LED數(shù)碼管D段P1.3矩陣鍵盤的S4行選端P0.4LED數(shù)碼管E段P1.4矩陣鍵盤的W1列選端P0.5LED數(shù)碼管F段P1.5矩陣鍵盤的W2列選端P0.6LED數(shù)碼管G段P16矩陣鍵盤的W3列選端P0.7LED數(shù)碼管DP段P1.7矩陣鍵盤的W4列選端P2.074LS138的A地址端P2.174LS138的B地址端P2.274LS138的C地址端P2.4蜂鳴器表3.6I/O口分配表第4章開發(fā)板焊接及其測試4.1焊接步驟及注意事項在焊接板子過程中,以“由低到高”為原則依次對其進(jìn)行焊接。電烙鐵是最常用的焊接工具。先整理元器件(電阻、輕觸按鍵、電容、排阻、芯片插座、三極管、蜂鳴器等等)我們使用20W內(nèi)熱式電烙鐵。新烙鐵使用前,應(yīng)用細(xì)砂紙將烙鐵頭打光亮,通電燒熱,蘸上松香后用烙鐵頭刃面接觸焊錫絲,使烙鐵頭上均勻地鍍上一層錫。這樣做,可以便于焊接和防止烙鐵頭表面氧化。舊的烙鐵頭如嚴(yán)重氧化而發(fā)黑,可用鋼挫挫去表層氧化物,使其露出金屬光澤后,重新鍍錫,才能使用。電烙鐵要用220V交流電源,使用時要特別注意安全。應(yīng)認(rèn)真做到以下幾點(diǎn):
(1)電烙鐵插頭最好使用三極插頭。要使外殼妥善接地;
(2)使用前,應(yīng)認(rèn)真檢查電源插頭、電源線有無損壞。并檢查烙鐵頭是否松動;
(3)電烙鐵使用中,不能用力敲擊。要防止跌落。烙鐵頭上焊錫過多時,可用布擦掉。不可亂甩,以防燙傷他人;
(4)焊接過程中,烙鐵不能到處亂放。不焊時,應(yīng)放在烙鐵架上。注意電源線不可搭在烙鐵頭上,以防燙壞絕緣層而發(fā)生事故;
(5)使用結(jié)束后,應(yīng)及時切斷電源,拔下電源插頭,冷卻后,再將電烙鐵收回工具箱;4.2調(diào)試及檢測步驟首先:我們焊好板子之后,檢查下板子的焊接質(zhì)量,如:(1)焊接時,要保證每個焊點(diǎn)焊接牢固、接觸良好。要保證焊接質(zhì)量。(2)所示應(yīng)是錫點(diǎn)光亮,圓滑而無毛刺,錫量適中。錫和被焊物融合牢固。不應(yīng)有虛焊和假焊。(3)虛焊是焊點(diǎn)處只有少量錫焊住,造成接觸不良,時通時斷。假焊是指表面上好像焊住了,但實際上并沒有焊上,有時用手一拔,引線就可以從焊點(diǎn)中拔出。這兩種情況將給電子制作的調(diào)試和檢修帶來極大的困難。只有經(jīng)過大量的、認(rèn)真的焊接實踐,才能避免這兩種情況。
焊接電路板時,一定要控制好時間。太長,電路板將被燒焦,或造成銅箔脫落。從電路板上拆卸元件時,可將電烙鐵頭貼在焊點(diǎn)上,待焊點(diǎn)上的錫熔化后,將元件拔出。然后:檢測焊接板是有順序的,操作不當(dāng)可能會燒壞芯片,其步驟:(1):在沒插芯片之前,先檢測芯片插槽電源管腳的電壓是否在規(guī)定的范圍內(nèi);(2:):然后插上芯片,再老師的幫助下,將編好程序在KeiluVision4中調(diào)試完成,程序沒有錯誤的時候,通過STC_ISP_480下載到單片機(jī)中,然后進(jìn)行調(diào)試,看是否運(yùn)行正常,如程序能正常運(yùn)行,則表明焊接成功了。第5章軟件設(shè)計與說明5.1系統(tǒng)軟件設(shè)計思路程序?qū)崿F(xiàn)了模塊化,程序結(jié)構(gòu)簡單,任務(wù)明確,易于編寫、調(diào)試和修改;程序可讀性好,對程序的修改可局部進(jìn)行,其他部分可以保持不變,便于功能的擴(kuò)從和版本的升級;便于多個模塊調(diào)用;便于分工合作,多個程序員同時進(jìn)行程序的編寫和修改調(diào)試工作??傑浖绦蚩驁D:矩陣鍵盤掃描模塊當(dāng)前時鐘調(diào)整模塊矩陣鍵盤掃描模塊當(dāng)前時鐘調(diào)整模塊主程序模塊主程序模塊鬧鐘1、2設(shè)定模塊鬧鐘1、2設(shè)定模塊數(shù)碼管掃描顯示模塊數(shù)碼管掃描顯示模塊 跑表調(diào)整及顯示模塊跑表調(diào)整及顯示模塊圖5.1軟件主程序設(shè)計圖5.2模塊程序的設(shè)計5.2.1時鐘模塊本系軟件設(shè)計中,首先是時鐘:主程序的初始化內(nèi)容:所謂初始化,是對將要用到的51系列單片機(jī)內(nèi)部部件或擴(kuò)展芯片進(jìn)行初始工作設(shè)定。利用單片機(jī)定時器設(shè)計時間計時處理,采用單片機(jī)內(nèi)部的T0定時器溢出中斷來實現(xiàn),工作在方式1下,定時50毫秒,則連續(xù)中斷20次即為一秒,得到了我們所需時間的最小單位。在主程序循環(huán)中while(1)中掃描是否有鍵按下,如有鍵按下,則做出相應(yīng)的功能處理,同時掃描顯示時間、跑表、鬧鐘數(shù)據(jù),并檢查時候到達(dá)鬧鈴設(shè)置時間,響鈴。若無按鍵,則繼續(xù)執(zhí)行主程序。時鐘設(shè)計主框圖如下:開始開始重置初值,啟動下一個50ms重置初值,啟動下一個50ms是50ms計數(shù)器=20?是50ms計數(shù)器=20?否秒單元加1,50ms計數(shù)器清零秒單元加1,50ms計數(shù)器清零否否秒單元=60?否秒單元=60?否否分單元加1,秒單元清零分單元加1,秒單元清零否分單元=60?否分單元=60?時單元加1,分單元清零否時單元加1,分單元清零否時單元=24?否時單元=24?時、分、秒單元清零否時、分、秒單元清零中斷返回中斷返回圖5-2時鐘服務(wù)程序流程圖5.2.2跑表模塊其次的跑表:因為跑表最小單位是0.1秒,而且要與時鐘分開計時,跑表停止時,時鐘要繼續(xù)按正常時間走,我利用定時器T1,實現(xiàn)分開定時,定時為10ms,連續(xù)中斷10次即為0.1s。兩個定時互不干涉,但進(jìn)入時鐘模式時,為跑表計時的定時器T1的啟動為TR1置0,而停止計時。跑表設(shè)計主框圖如下:圖5-3跑表服務(wù)程序流程圖5.2.3鬧鐘模塊還有就是鬧鐘:其也是利用時鐘的定時時間,也使用T0,有切換鍵使其進(jìn)入鬧鐘模式,然后可對其進(jìn)行設(shè)置等。鬧鐘設(shè)計主框圖如下:是蜂鳴器響是否與時鐘相同?設(shè)定鬧鈴1、2的時間按下鍵后進(jìn)入鬧鐘模式圖4-3鬧鐘程序流程圖否開始結(jié)束是蜂鳴器響是否與時鐘相同?設(shè)定鬧鈴1、2的時間按下鍵后進(jìn)入鬧鐘模式圖4-3鬧鐘程序流程圖否開始結(jié)束5.3顯示和鍵盤的設(shè)計5.3.1顯示模塊LED顯示器的選擇,在我的設(shè)計中,選擇2個4位一體的時鐘型共陽LED顯示器。8位8段共陽顯示器:六位是同時顯示六位阿拉伯?dāng)?shù)字,而每一個數(shù)字又是七段碼顯示的;七段是指一個數(shù)碼顯示的阿拉伯?dāng)?shù)字是由8位二進(jìn)制數(shù)控制的,共陰是指相應(yīng)的二進(jìn)制為0時不亮,為1時亮。其分析流程圖:圖4-3顯示程序流程圖5.3.2矩陣鍵盤模塊鍵盤程序是完成對時鐘的調(diào)整,跑表的啟動、清零,鬧鈴的時間調(diào)整以及各個模塊之間的相互切換。軟件實現(xiàn)是通過軟件掃描法,鍵盤掃描函數(shù),使用行列反轉(zhuǎn)掃描法,行列值中間變量、、行線輸出全為0、讀入列線值先檢測有無按鍵按、下具體每個按鍵的功能如上所述。程序通過.h后綴的文件給出。第6章調(diào)試步驟、結(jié)果、使用說明6.1調(diào)試步驟和過程調(diào)試步驟一般一步一步來,先實現(xiàn)一部分功能,然后將整個程序在整合起來,在將程序模塊化。(1)我先調(diào)試出顯示模塊,達(dá)到自己想要的顯示結(jié)果,比如動態(tài)顯示,得到對應(yīng)的顯示代碼,LED帶點(diǎn)的數(shù)碼管代碼。(2)調(diào)試時間,使其達(dá)到精確的時間,不如我要測試跑10分鐘,看看他的誤差是多少,然后調(diào)節(jié)其定時器初值TH0、1和TL0、1。(3)然后是調(diào)節(jié)跑表,使其在時鐘與跑表之間的切換,并運(yùn)行穩(wěn)定,整理程序。(4)鬧鐘模塊,首先要調(diào)用時鐘的定時時間,然后通過按鍵去控制。(5)最后將各個模塊拼接接起來統(tǒng)一調(diào)試,直達(dá)穩(wěn)定達(dá)到想要的效果。當(dāng)然在調(diào)的過程中會遇到很多問題比如:如響鈴時蜂鳴器聲音非常小,經(jīng)過增大聲音函數(shù)中的延時時長,該問題得以解決;在設(shè)置減一功能按鍵時,時鐘自動提高其上限,如在24:00時對時針進(jìn)行加一,會跳轉(zhuǎn)至24:00:01,超出了時鐘上限,后經(jīng)過調(diào)整鍵盤函數(shù)中減一功能只能夠if條件語句中的條件值,如if(minute>60),即將其值有重新賦值為0,其分鐘會出現(xiàn)60這個實際時間中不應(yīng)該出現(xiàn)的時間。后面給成if(minute>59)就可以了。圖6.1顯示設(shè)置時針加減圖6.2鬧鐘顯示設(shè)置圖6.3跑表顯示設(shè)置 6.3調(diào)試結(jié)果(1)實現(xiàn)了全部要求功能,本來有4個LED數(shù)碼管顯示的,我用自己買的開發(fā)板有8個顯示,克服了本來那開發(fā)板只有4個LED不能顯示全部的時分秒的缺陷,另外我加了一個鬧鐘模塊,使其更加接近電子表的功能,并有可設(shè)置兩個鬧鐘模式,兩個的定時時間可任意設(shè)置。到達(dá)固定設(shè)定時間就有蜂鳴器發(fā)出鈴聲,設(shè)定時間為10s。6.2使用說明 作品按照要求,在通了電源后,我自己設(shè)定為09:00:00,按下啟動鍵(K8)后開始記時,可隨時按下(K15)切換到跑表模式,同時可對其進(jìn)行停止啟動、和復(fù)位??赏ㄟ^(K12)切換到鬧鐘模塊,默認(rèn)為6:30響鈴,并通過對應(yīng)按鍵對其定時。第7章設(shè)計總結(jié)兩周的課程設(shè)計已經(jīng)接近尾聲了,終于完成了電子表的設(shè)計。在這一次課程設(shè)計當(dāng)中,在這里我要我指導(dǎo)老師——周向紅老師對我的指導(dǎo),從拿到課題時不知所措,經(jīng)過網(wǎng)上查閱相關(guān),查閱教材、課程設(shè)計指導(dǎo)書及各類參考文獻(xiàn),向老師請教,與同學(xué)交流,最終確定了我的設(shè)計方案。雖然我以前學(xué)過單片機(jī),參加過一次額電子設(shè)計競賽,跟老師做過個一些項目,但是在本次設(shè)計的過程中,我任然發(fā)現(xiàn)很多的問題,也學(xué)到了很多知識與技巧。這次設(shè)計讓我有了長足的進(jìn)步,真正實現(xiàn)了對單片機(jī)硬件與軟件的兼顧與融會貫通。也對C51編程有了跟一步的加深和了解。這次課程設(shè)計給我深刻的印象,還記得星期2的我一個顯示切換,一直沒成功,真的和糾結(jié),后面我一直在調(diào)試,最后調(diào)到晚上1點(diǎn)我才調(diào)試成功,當(dāng)顯示成功的那一刻,我突然大喊一聲,我室友還以為我怎么了呢?那成功的喜悅我永遠(yuǎn)會記得。單片機(jī)課程設(shè)計重點(diǎn)就在于軟件算法的設(shè)計,需要有很巧妙的程序算法,雖然以前寫過程序,但我覺的寫好一個程序并不是一件簡單的事。如矩陣鍵盤函數(shù)中,之前通過以分別行掃描和列掃描,相比我這次采用了同時行列掃描即(行掃描的值加列掃描值)精簡了程序,也提高了52單片機(jī)的效率。這個程序中還有一些可以改進(jìn)與完善的地方。如可通過24C02鎖存器對調(diào)整好的鬧鈴時間進(jìn)行鎖存,實現(xiàn)斷電保護(hù)功能;并實現(xiàn)記憶功能;還可以通過對所鬧鈴聲進(jìn)行編輯,模擬各種聲音來達(dá)到鬧鈴的效果,以顯示各種特點(diǎn)。在做軟件設(shè)計的時候深刻的體會到了子程序功能實現(xiàn)方法的重要性。在顯示和按鍵等子程序的設(shè)計過程中往往只是針對某個系統(tǒng)功能實用來編寫,很少考慮以后程序的兼容性和可擴(kuò)展性。經(jīng)過本次設(shè)計對自己分析整個系統(tǒng)結(jié)構(gòu)和設(shè)計方案有了很大的提高。在這次課程設(shè)計中,感謝同組同學(xué)的鼓勵與配合。通過本次課程設(shè)計,我認(rèn)識到了自己的許多缺點(diǎn)和不足,體會到了實踐是檢驗真理的唯一標(biāo)準(zhǔn)以及實踐出真知的道理。在以后的學(xué)習(xí)生活中,我會努力將學(xué)習(xí)知識要看做是自己的興趣愛好,要主動學(xué)習(xí)。不僅要學(xué)會書本上的知識,更要掌握學(xué)好知識的方法和技巧,這樣才能使自己在今后的科技道路上越走越遠(yuǎn)!在此,我要再一次感謝周向紅老師和給過我?guī)椭母魑恢笇?dǎo)老師和所有同學(xué),謝謝你們的的辛勤指導(dǎo)。第八章參考文獻(xiàn)周向紅編《51系列單片機(jī)應(yīng)用與實踐教程》[M].北航出版社王迎旭編.《單片機(jī)原理與應(yīng)用》[M].機(jī)械工業(yè)出版社.黃勤編.《計算機(jī)硬件技術(shù)基礎(chǔ)實驗教程》[M].重慶大學(xué)出版社4、劉樂善編.《微型計算機(jī)接口技術(shù)及應(yīng)用》[M].華中科技大學(xué)出版社.5、陳光東編.《單片微型計算機(jī)原理及接口技術(shù)》[M].華中科技大學(xué)出版社.6、樓然苗編.《51系列單片機(jī)設(shè)計實例》[M].北京航空航天大學(xué)出版社.附錄A附錄B#include<reg52.h>#defineucharunsignedcharuchartime1,time2;time3;time4=12;/////////////////////////////////////////////////////定義時鐘變量uchars,m,h; /////////////////////////////////////////////////////定義秒表變量ucharcodexianshi_w[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdF,0xbF,0x7F};/////////////////////////顯示位碼ucharcodexianshi_d[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};/////////顯示段碼ucharxianshi_sj[8]={0,1,10,0,0,10,0,0};//////////////////////////定義按鍵sbitkey=P1^2;////////時鐘調(diào)整按鍵sbitkey1=P1^3;/////////時鐘加按鍵sbitkey2=P1^4;/////////時鐘減按鍵sbitkey3=P1^5;///////////啟動按鍵sbitkey4=P1^6;///////////切換按鍵ucharkey_z,key_x,key_m,key_s; /////////////////定義按鍵變量//////////////////////////軟件延時voiddelay(){unsignedinti;for(i=0;i<200;i++);}//////////////////////////中斷函數(shù)bitmiao;voidzhongD_T0()interrupt1{TH0=(65535-10000)/256;TL0=(65535-10000)%256;/////////////////////////////////////秒表中斷if(key_s==1&&key_x==1)s++;if(s>99){s=0;m++;miao=~miao;}if(m>99){m=0;h++;}if(h>99){s=0;m=0;h=0;}if(key_x==1&&key_s==0){s=0;m=0;h=0;}/////////////////////////////////////時鐘中斷if(key_m==1)time1++;if(time1>99){time1=0;time2++;miao=~miao;}if(time2>59){time2=0;time3++;}if(time3>59){time2=0;time4++;}if(time4>24){time1=0;time2=0;time3=0;time4=0;}}////////////////////////////按鍵小時加一voidxiaoshi_jia(){if(key1==0){delay();if(key1==0){time4++;if(time4>23)time4=0;while(key1==0);}}}/////////////////////////////按鍵小時減一voidxiaoshi_jian(){if(key2==0){delay();if(key2==0){time4--;if(time4<1)time4=0;while(key2==0);}}}/////////////////////////////按鍵分鐘加一voidfenzhong_jia(){if(key1==0){delay();if(key1==0){time3++;if(time3>59)time3=0;while(key1==0);}}}//////////////////////////////按鍵分鐘減一voidfenzhong_jian(){if(key2==0){delay();if(key2==0){time3--;if(time3<1)time3=0;while(key2==0);}}}/////////////////////////////顯示函數(shù)voidxianshi_hs(){uchari;for(i=0;i<8;i++){P2=xianshi_w[i];P0=xianshi_d[xianshi_sj[i]];if(miao==1&&(i==0||i==1)&&(key_z==1)&&(key_x==0))P0=0xff;if(miao==1&&(i==3||i==4)&&(key_z==2)&&(key_x==0))P0=0xff;delay();}}////////////////////////////////////主函數(shù)voidzh_hs(){if(key_x==1) /////////////////////顯示秒表{xianshi_sj[0]=h/10;xianshi_sj[1]=h%10;xianshi_sj[3]=m/10;xianshi_sj[4]=m%10;xianshi_sj[6]=s/10;xianshi_sj[7]=s%10;}if(key_x==0)//////////////////////顯示時鐘{xianshi_sj[0]=time4/10;xianshi_sj[1]=time4%10;xianshi_sj[3]=time3/10;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 大潤發(fā)蔬菜培訓(xùn)課件
- 2025年數(shù)控臥式鏜銑床項目可行性研究報告
- 2025年室內(nèi)濕度計項目可行性研究報告
- 感染控制措施試題及答案
- 2025年圖文動畫創(chuàng)作系統(tǒng)項目可行性研究報告
- 公共營養(yǎng)師考試?yán)碚撆c實踐結(jié)合的探索試題及答案
- 嬰幼兒健康飲食的科學(xué)構(gòu)建試題及答案
- 2024年圖書管理員考試的結(jié)束與反思試題及答案
- 2024年圖書管理員考試備考心得分享試題及答案
- 2024年網(wǎng)絡(luò)規(guī)劃設(shè)計師考試主要參考書目試題及答案
- 建筑工地“一懂三會”消防安全知識講座
- 中華民族共同體概論課程第十一講 中華一家與中華民族格局底定(清前中期)教案
- 北師大版初中數(shù)學(xué)全部公式
- 2024數(shù)智化綠色低碳評價管理體系
- 【年產(chǎn)30萬噸尿素生產(chǎn)工藝計算及流程設(shè)計9000字(論文)】
- 【基于PLC智能照明控制系統(tǒng)設(shè)計10000字(論文)】
- 污水處理廠尾水人工濕地及循環(huán)利用項目可行性研究報告寫作模板-拿地申報
- 格力電器采購合同范本
- 養(yǎng)老機(jī)構(gòu)績效考核及獎勵制度
- 2024浙江省嘉興市中考初三二模英語試題及答案
- 大連市2023-2024學(xué)年七年級下學(xué)期語文試題【帶答案】
評論
0/150
提交評論