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