




已閱讀5頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
安徽商貿(mào)職業(yè)技術(shù)學(xué)院 畢業(yè)設(shè)計(jì)(論文)安徽商貿(mào)職業(yè)技術(shù)學(xué)院畢 業(yè) 論 文 設(shè) 計(jì) 課題:基于at89c51單片機(jī)的數(shù)字時(shí)鐘設(shè)計(jì)系部:學(xué)制: 專業(yè):姓名: 學(xué)號: 2014 年xx月xx日 摘 要本設(shè)計(jì)以數(shù)字集成電路技術(shù)為基礎(chǔ)、單片機(jī)技術(shù)為核心。軟件設(shè)計(jì)模塊化結(jié)構(gòu)、c語言編程。系統(tǒng)通過帶字庫的lcd12864顯示數(shù)據(jù),通過4*4矩陣鍵盤控制顯示文字、公歷日期(年、月、日、星期)、時(shí)間(時(shí)、分、秒) 文字反白、自定義字符、圖片顯示,可以通過鍵盤調(diào)整時(shí)間、日期,溫度,同時(shí)按下鍵盤時(shí),七段數(shù)碼管顯示相應(yīng)鍵位的鍵位標(biāo)識。在內(nèi)容安排上首先描述系統(tǒng)硬件工作原理,著重介紹了各硬件接口技術(shù)和各個(gè)接口模塊的功能;其次,詳細(xì)闡述了程序的各個(gè)模塊和實(shí)現(xiàn)過程。關(guān)鍵詞:單片機(jī)、數(shù)字溫度日歷表設(shè)計(jì) 引言儀器儀表的鍵盤顯示系統(tǒng),是實(shí)現(xiàn)通過鍵盤的控制,使lcd屏幕有相應(yīng)的顯示,廣泛用于各個(gè)領(lǐng)域,如電腦、家電、數(shù)字儀器等,成為人們直觀了解和控制儀器、設(shè)備的運(yùn)行狀態(tài)的重要依據(jù),給人們的生活帶了方便,成為現(xiàn)代人們生活、工作的必需品。數(shù)字化顯示系統(tǒng)告別了以前老式的監(jiān)控和計(jì)算儀器、設(shè)置狀態(tài)方式,給人們帶來了極大的方便。本設(shè)計(jì)是儀器儀表的控制顯示模擬系統(tǒng),所有的儀器儀表的控制顯示系統(tǒng)都是以此為基礎(chǔ)而擴(kuò)展的。因此,研究儀器儀表的控制顯示系統(tǒng)及擴(kuò)大其應(yīng)用有著非?,F(xiàn)實(shí)的意義。本設(shè)計(jì)就是儀器儀表的控制顯示系統(tǒng)簡單的模擬和擴(kuò)展應(yīng)用。目 錄摘要1引言11 設(shè)計(jì)要求41.1 基本要求41.2 發(fā)揮部分42 方案設(shè)計(jì)與論證42.1 控制部分方案論證42.2 顯示部分方案論證53 系統(tǒng)框圖及工作原理53.1 系統(tǒng)框圖53.2 工作原理53.2.1硬件工作原理53.2.2軟件工作原理64 硬件原理分析及設(shè)計(jì)64.1 單片機(jī)時(shí)鐘電路64.2 單片機(jī)復(fù)位電路74.2.1復(fù)位電路的可靠性設(shè)計(jì)74.3 鍵盤電路84.4 顯示電路84.4.1 lcd顯示電路84.4.2七段數(shù)碼管顯示電路94.4 整體電路圖104.5 系統(tǒng)硬件設(shè)計(jì)所需的元件125 軟件設(shè)計(jì)125.1 軟件總體設(shè)計(jì)及框圖135.2 軟件重要子程序設(shè)計(jì)及框圖135.2.1顯示部分135.2.2鍵盤掃描部分155.2.3時(shí)鐘部分155.2.4延時(shí)部分176 硬件安裝制作186.1 pcb板制作186.2 元件焊接18結(jié) 論19參考文獻(xiàn)211 設(shè)計(jì)要求1.1 基本要求1)開機(jī)lcd液晶屏幕顯示“10級電子信息工程xxxx畢業(yè)設(shè)計(jì)”信息。2)設(shè)計(jì)4x4矩陣鍵盤,分別對應(yīng)鍵碼“0-f”。3)按下任意一個(gè)按鍵,lcd液晶屏幕顯示相應(yīng)按鍵的信息(不同按鍵的顯示內(nèi)容可以自行設(shè)計(jì))。1.2 發(fā)揮部分1)lcd液晶屏幕增加裝飾圖案。2)增加一個(gè)led數(shù)碼管同步顯示相應(yīng)鍵碼。3)增加一個(gè)led點(diǎn)陣同步顯示相應(yīng)鍵碼。2 方案設(shè)計(jì)與論證2.1 控制部分方案論證方案一:可采用altera公司的flex10k系列pld器件。設(shè)計(jì)起來結(jié)構(gòu)清晰,各個(gè)模塊,從硬件上設(shè)計(jì)起來相對簡單,控制與顯示的模塊間的連接也會比較方便。但是考慮到本設(shè)計(jì)的特點(diǎn),eda在功能擴(kuò)展上比較受局限,而且eda占用的資源也相對多一些。從成本上來講,用可編程邏輯器件來設(shè)計(jì)也沒有什么優(yōu)勢,而以我們目前的條件在硬件和軟件也無法實(shí)現(xiàn)本設(shè)計(jì)的各種要求。方案二:凌陽16位單片機(jī)有豐富的中斷源和時(shí)基。它的準(zhǔn)確度相當(dāng)高,并且c語言的編程環(huán)境也很方便來實(shí)現(xiàn)一些遞歸調(diào)用。i/o口功能也比較強(qiáng)大,方便使用。用凌陽16位單片機(jī)做控制器最有特色的就是它的可編程音頻處理,可完成語音的錄制播放和識別。這些都方便對設(shè)計(jì)進(jìn)行擴(kuò)展,使設(shè)計(jì)更加完善。成本也相對低一些。但是,在控制與顯示的結(jié)合上有些復(fù)雜,顯示模組資源相對有限,而且單片機(jī)的穩(wěn)定性不是很高,而且就需要完成這個(gè)儀器儀表的鍵盤顯示模擬系統(tǒng)不太復(fù)雜的設(shè)計(jì)可以不必用凌陽16位單片機(jī)來完成。方案三:at89s52是8位單片機(jī),提供的的四組8個(gè)i/o口能夠?qū)崿F(xiàn)既定功能,成本也不高。綜合考慮最后選擇用at89s52單片機(jī)來作為中心控制器件。2.2 顯示部分方案論證方案一:使用lcd1602成本低,程序控制簡單,但它只能顯示16x2個(gè)半寬字型符,不能顯示漢字,比較單調(diào)。方案二:帶字庫的由st7920控制的lcd12864硬件上提供8位,4位并行接口及串行接口供選擇,6416 位字符顯示 ram(ddram 最多 16 字符4 行,lcd 顯示范圍 162 行),2m 位中文字型 rom(cgrom),總共提供 8192 個(gè)中文字型(1616 點(diǎn)陣),16k 位半寬字型 rom(hcgrom),總共提供 126 個(gè)西文字型(168 點(diǎn)陣),6416 位字符產(chǎn)生 ram(cgram)。在軟件上提供文字與圖形混合顯示、畫面清除、光標(biāo)歸位、顯示開/關(guān) 、光標(biāo)顯示/隱藏、顯示字體閃爍、光標(biāo)移位功能、顯示移位、垂直畫面旋轉(zhuǎn)、反白顯示、休眠模式的功能,相對于lcd1602來說功能豐富,而且已內(nèi)建有g(shù)b碼簡體中文字型庫,方便編程。綜合以上方案,決定采用lcd12864(除非特殊說明,以下都簡稱lcd)作為顯示器件。3 系統(tǒng)框圖及工作原理3.1 系統(tǒng)框圖圖1 系統(tǒng)框圖3.2 工作原理3.2.1硬件工作原理硬件控制電路主要用了44矩陣鍵盤、at89s52芯片處理器、lcd和七段數(shù)碼管。由at89s52處理器處理從44鍵盤發(fā)出的指令,通過lcd和七段數(shù)碼管顯示出相應(yīng)按鍵的內(nèi)容。3.2.2軟件工作原理軟件控制程序主要有主控程序、時(shí)間程序、lcd控制程序、時(shí)間及日期顯示程序、鍵盤掃描程序等組成。主控程序中對整個(gè)程序進(jìn)行控制,進(jìn)行了時(shí)間和lcd初始化、lcd和數(shù)碼管顯示等控制。lcd顯示程序是整個(gè)顯示部分中的重要部分,包括寫入命令、初始化、寫入數(shù)據(jù)、數(shù)據(jù)顯示、自定義gdram顯示、繪圖顯示、反白顯示等。當(dāng)lcd的rs=rw= 0,同時(shí)en由1變0時(shí),可以對lcd寫入基本指令和擴(kuò)充指令;當(dāng)rs=1,rw=0,同時(shí)en由1變0時(shí),可以對lcd寫入數(shù)據(jù)。對lcd端口寫入不同的命令可以寫入和顯示不同的數(shù)據(jù),具體命令請參考lcd12864和數(shù)據(jù)手冊。lcd時(shí)間控制程序是時(shí)間程序重要的部分,時(shí)間控制程序體現(xiàn)了年、月、日、時(shí)、分、秒的計(jì)算方法。此設(shè)計(jì)采用at89s52自帶的t0計(jì)時(shí)器進(jìn)行計(jì)時(shí),中斷程序每隔50ms中斷一次當(dāng)作一個(gè)計(jì)數(shù),每中斷一次則計(jì)數(shù)加1,當(dāng)計(jì)數(shù)20次時(shí),則表示1秒到了,秒變量加1,同理再判斷是否1分鐘到了,再判斷是否1小時(shí)到了,再判斷是否1天到了,再判斷是否1月到了,再判斷是否1年到了,若計(jì)數(shù)到了則相關(guān)變量清除0。先給出一般年份的每月天數(shù)。如果是閏年,第2月天數(shù)為29天,非閏年則有28天。在我們的這個(gè)設(shè)計(jì)中只設(shè)有100年的范圍,判斷是否閏年就只需要用該年份除以4來判斷就行了。鍵盤掃描程序是整個(gè)設(shè)計(jì)的輸入控制程序,44鍵盤占用單片機(jī)的8個(gè)i/o口。本設(shè)計(jì)的鍵盤掃描程序采用行列反轉(zhuǎn)掃描法讀取按鍵鍵值。單片機(jī)先讓鍵盤行線輸出全為0,然后讀入列線值,再檢測有無按鍵按下,去抖,再讀入列線值,輸出當(dāng)前列線值,讀入行線值,最后組合行、列線值,得到鍵盤的碼值供調(diào)用。4 硬件原理分析及設(shè)計(jì)4.1 單片機(jī)時(shí)鐘電路內(nèi)部時(shí)鐘電路如圖所示,在xtal1和xtal2引腳上外接定時(shí)元件,內(nèi)部振蕩電路就產(chǎn)生自激振蕩。定時(shí)元件通常石英晶體和電容組成的并聯(lián)諧振回路,晶體振蕩器選擇12mhz,電容采用30pf。圖2 時(shí)鐘電路4.2 單片機(jī)復(fù)位電路 影響單片機(jī)系統(tǒng)運(yùn)行穩(wěn)定性的因素可大體分為外因和內(nèi)因兩部分: (1)外因射頻干擾,它是以空間電磁場的形式傳遞在機(jī)器內(nèi)部的導(dǎo)體(引線或零件引腳)感生出相應(yīng)的干擾,可通過電磁屏蔽和合理的布線/器件布局衰減該類干擾; 電源線或電源內(nèi)部產(chǎn)生的干擾,它是通過電源線或電源內(nèi)的部件耦合或直接傳導(dǎo),可通過電源濾波、隔離等措施來衰減該類干擾。(2)內(nèi)因振蕩源的穩(wěn)定性,主要由起振時(shí)間頻率穩(wěn)定度和占空比穩(wěn)定度決定 起振時(shí)間可由電路參數(shù)整定穩(wěn)定度受振蕩器類型溫度和電壓等參數(shù)影響復(fù)位電路的可靠性。4.2.1復(fù)位電路的可靠性設(shè)計(jì)復(fù)位是單片機(jī)的初始化操作。單片機(jī)啟動運(yùn)行時(shí),都需要先復(fù)位,其作用是使cpu和系統(tǒng)中其他部件處于一個(gè)確定的初始狀態(tài),并從這個(gè)狀態(tài)開始工作。因而,復(fù)位是一個(gè)很重要的操作方式。但單片機(jī)本身是不能自動進(jìn)行復(fù)位的,必須配合相應(yīng)的外部電路才能實(shí)現(xiàn)。復(fù)位電路的基本功能是:系統(tǒng)上電時(shí)提供復(fù)位信號,直至系統(tǒng)電源穩(wěn)定后,撤銷復(fù)位信號。為可靠起見,電源穩(wěn)定后還要經(jīng)一定的延時(shí)才撤銷復(fù)位信號,以防電源開 關(guān)或電源插頭分-合過程中引起的抖動而影響復(fù)位。如圖3所示。圖3 復(fù)位電路4.3 鍵盤電路44鍵盤電路由44=16個(gè)按鍵組成,其中4列經(jīng)過4個(gè)10k電阻接入vcc上拉,接入單片機(jī)的p3口的高4位口,4行直接接入單片機(jī)低4位,當(dāng)有按鍵按下時(shí),由單片機(jī)控制8個(gè)i/o口讀取出當(dāng)前鍵值。圖4 鍵盤電路 4.4 顯示電路4.4.1 lcd顯示電路lcd12864一共有20個(gè)引腳,其中4-15、17腳接入單片機(jī)的p0全部i/o口和p2的三個(gè)i/o口,是lcd與單片機(jī)通訊的橋梁。16號腳是空腳,1和20腳接地,2和19腳接vcc,其中3、18、19三個(gè)腳接可調(diào)電位器和電阻,組成調(diào)節(jié)lcd對比度電路。圖4.4.1 lcd顯示電路如圖5所示。4.4.2七段數(shù)碼管顯示電路采用的是共陽數(shù)碼管,它的8個(gè)腳接入p1全部i/o口,pnp三極管的發(fā)射極接vcc,集電極經(jīng)過一個(gè)電阻限流接入數(shù)碼管的公共端,基極接單片機(jī)的p2.0口,由單片機(jī)給一個(gè)基極電流使三極管三極管導(dǎo)通,驅(qū)動數(shù)碼管顯示。如圖6所示。21 圖5 lcd顯示電路 圖4.4.2 數(shù)碼管顯示電路 圖6 數(shù)碼管顯示電路 4.4 整體電路圖根據(jù)以上各模塊的功能互相連接成為此設(shè)計(jì)的整體電路, 圖7 整體電路圖4.5 系統(tǒng)硬件設(shè)計(jì)所需的元件表1 元件列表元件名稱數(shù)量(個(gè))元件名稱數(shù)量(個(gè))lcd12864112m晶振1at89s52芯片130pf瓷片電容2七段數(shù)碼管110uf電解電容11k電阻5按鍵開關(guān)172k電阻1發(fā)光二極管251k電阻1排針1(排)10k電阻4插針1(排)10k電位器1自鎖開關(guān)1103*8排阻15v電源15 軟件設(shè)計(jì)此設(shè)計(jì)名為儀器儀表的鍵盤顯示模擬系統(tǒng),顧名思義軟件占很大比例。整個(gè)設(shè)計(jì)硬件比較簡單,主要就是程序的寫法,而軟件的調(diào)試也是此設(shè)計(jì)的重點(diǎn)和難點(diǎn)。整個(gè)軟件結(jié)構(gòu)分為主控程序、顯示部分程序、鍵盤掃描部分程序、時(shí)鐘部分程序和延時(shí)程序。5.1 軟件總體設(shè)計(jì)及框圖圖8 軟件設(shè)計(jì)總體框圖開機(jī)后,主控程序先讓單片機(jī)給p2.0一個(gè)低電平,開啟數(shù)碼管顯示,然后初始化lcd包括設(shè)置基本指令集、設(shè)置光標(biāo)、設(shè)置顯示模式等,接下來是時(shí)鐘的初始化,包括開啟定時(shí)和中斷、時(shí)間的走時(shí)(秒、分、時(shí)、日、月、年、星期),最后就顯示開機(jī)畫面并開始掃描鍵盤,若有按鍵按下則lcd和數(shù)碼管顯示相應(yīng)的內(nèi)容,8號鍵作為設(shè)置日期和時(shí)間的閥門,按下第一次時(shí)進(jìn)入調(diào)整日期狀態(tài),第二次是調(diào)整時(shí)間,第三次調(diào)整溫度,第四次返回。5.2 軟件重要子程序設(shè)計(jì)及框圖主控程序是建立在各子程序的基礎(chǔ)上,各子程序?qū)懞煤?,由主程序調(diào)用。5.2.1顯示部分顯示部分的大體框圖如下:圖9 顯示部分流程圖為了區(qū)別調(diào)整時(shí)間和日期的按鍵與其他顯示內(nèi)容沖突,在這里給了8號鍵一個(gè)變量key_flag,未按下8號鍵時(shí)key_flag=0,程序執(zhí)行圖9框圖所示的內(nèi)容,當(dāng)按下8號第一次時(shí)key_flag=1進(jìn)入調(diào)整日期狀態(tài),當(dāng)按下8號鍵第二次時(shí)key_flag=2,進(jìn)入調(diào)整時(shí)間狀態(tài),當(dāng)按下第三次時(shí)顯示開機(jī)畫面并讓key_flag=0執(zhí)行圖9所示內(nèi)容。顯示部分程序涉及到lcd的初始化、寫入命令和數(shù)據(jù),寫命令和數(shù)據(jù)的通訊方式已經(jīng)在上文提到,這里不再闡述。此設(shè)計(jì)用到的lcd是帶有字庫的,要讓lcd顯示中文只需要往lcd寫入ddram地址,再寫入中文。ddram的0x800x87,0x900x97,0x880x8f,0x980x9f分別對應(yīng)lcd的第一、二、三、四行,一行可以寫入8個(gè)中文字符對應(yīng)每行的8個(gè)地址。有的中文在字符沒有,lcd顯示就會是亂碼,這時(shí)需要查詢該字的16進(jìn)制編碼,再寫入lcd。要讓lcd顯示圖片,需要給lcd寫入命令0x36,以開啟繪圖模式。此設(shè)計(jì)的圖片取模方式是逐行自上而下顯示,先寫上半屏再寫下半屏,屏幕x/y軸的起點(diǎn)為0x80,寫完上半屏后令x=0x88接著寫下半屏,本設(shè)計(jì)用到的三張圖片都是自己畫的。6號按鍵用到的自定義字符是通過取模寫入cgram,通過命令調(diào)取顯示。本設(shè)計(jì)還用到反白顯示、文字循環(huán)左移、文字向上滾動。反白顯示是lcd的擴(kuò)充指令集之一,只要寫入0x04可以實(shí)現(xiàn)第一、三行顯示,寫入0x05實(shí)現(xiàn)第二、第四行反白顯示,st7920 控制器的 12864 點(diǎn)陣液晶其實(shí)原理上等同 25632 點(diǎn)陣,第三行對應(yīng)的 ddram 地址緊接第一行;第四行對應(yīng)的 ddram 地址緊接第二行。 因此在使用行反白功能時(shí),第一行反白,第三行必然反白。第二行反白,第四行必然反白。文字循環(huán)左移只需要寫入擴(kuò)充指令0x18就可以實(shí)現(xiàn)。而文字向上滾動的實(shí)現(xiàn),本設(shè)計(jì)定義了8個(gè)變量aa,bb,cc,dd,j,k,l,m,其中aa,bb,cc,dd對應(yīng)lcd的四行ddram地址0x80,0x90,0x88,0x98,j,k,l,m四個(gè)變量用來實(shí)現(xiàn)ddram地址的變換,變換方法為:j=bb,bb=aa,k=cc,cc=j,l=dd,dd=k,m=aa,aa=l,運(yùn)行第一次后,第一行變?yōu)榈诙械膬?nèi)容,第二行變?yōu)榈谌械膬?nèi)容,第三行變?yōu)榈谒男械膬?nèi)容,而第四行則變?yōu)榈谝恍械膬?nèi)容,如此循環(huán)就實(shí)現(xiàn)文字向上滾動的效果。5.2.2鍵盤掃描部分本設(shè)計(jì)掃描鍵盤方式采用行列反轉(zhuǎn)掃描法讀取按鍵編碼。單片機(jī)先讓鍵盤行線輸出全為0,然后讀入列線值,再檢測有無按鍵按下,去抖,再讀入列線值,輸出當(dāng)前列線值,讀入行線值,最后組合行、列線值,得到鍵盤的碼值供調(diào)用,代碼如圖10所示。當(dāng)有按鍵按下單片機(jī)讀取出鍵值后,給主程序、調(diào)整時(shí)間和日期函數(shù)調(diào)用,同時(shí)送出編碼給p1,讓數(shù)碼管顯示當(dāng)前按鍵對應(yīng)的16進(jìn)制代碼0-f。 uc keyscan( ) /鍵盤掃描函數(shù),使用函數(shù)反轉(zhuǎn)掃描法uc cord_h,cord_1; /行量值中間變量 p3|=00f; /行線輸出全為零cord_h =p3&00f; /讀入列線值if (cord_h!=00f) /先檢查有無案件按下 delay(100); / 去抖 if(cord_h!=00f) cord_h=p3&00f; / 讀入列線值 p3=cord_h/0f0 ; / 輸出當(dāng)前列線值cord_1=p3&0f0; / 讀入行線值 return(cord_h+cord_1); / 鍵盤最后組合碼值 return(0ff); /返回該值 圖10 鍵盤掃描程序5.2.3時(shí)鐘部分本設(shè)計(jì)時(shí)鐘走時(shí)部分采用單片機(jī)內(nèi)置的t0定時(shí)器,at89s52單片機(jī)的定時(shí)器由兩個(gè)16位定時(shí)器t0、t1、方式寄存器tmod和定時(shí)器控制器tcon組成。其中t0、t1又可分成獨(dú)立的8位計(jì)數(shù)器即th0、tl0和th1、tl1,用于存儲定時(shí)器、計(jì)數(shù)器的初值;tmod為方式寄存器,主要用來設(shè)置定時(shí)器/計(jì)數(shù)器和方式;tcon為控制寄存器,用來控制定時(shí)器/計(jì)數(shù)器的啟動與停止。tmod是一個(gè)專用寄存器,用來控制定時(shí)器t0和t1的工作方式用操作模式,其中tmod的高4位用于對t1的控制,低4位用于對t0的控制,各位定義及格式如圖11所示。圖11工作模式控制寄存器tmod示意圖其中g(shù)ate為門控制,用來控制定時(shí)器啟動方式。當(dāng)gate=0時(shí),定時(shí)器由軟件控制位tr0或tr1來控制啟動。gate=1時(shí),定時(shí)器由外中斷請求信號來控制啟動。為定時(shí)或計(jì)數(shù)方式選擇位,當(dāng)為0時(shí)為定時(shí)工作方式,為1時(shí)計(jì)數(shù)工作方式。m1、m0為工作模式選擇位,兩個(gè)工作模式選擇位可以形成4種編碼,對應(yīng)4種工作模式:m1=m0=0時(shí)為模式0;m1=0,m0=1時(shí)為模式1;m1=1,m0=0時(shí)為模式2;m1=m0=0時(shí)為模式3。此設(shè)計(jì)用定時(shí)器0,工作模式1,所以對應(yīng)tmod=0x01。同時(shí)定時(shí)50ms,對應(yīng)的th0=(65536-50000)/10,tl0=(65536-50000)%10。tcon既參與中斷控制,又參與定時(shí)器/計(jì)數(shù)器控制,本設(shè)計(jì)只用到它的定時(shí)器/計(jì)數(shù)器功能。tcon各位定義如圖12所示,其中d0-d3與外部中斷有關(guān),此設(shè)計(jì)未用到。圖12 定時(shí)器控制寄存器tcon示意圖tr0為定時(shí)器/計(jì)數(shù)器t0的運(yùn)行控制位,為0時(shí)停止定時(shí)器/t0計(jì)數(shù)器t0;為1時(shí)啟動定時(shí)器/計(jì)數(shù)器t0。tr1為定時(shí)器/計(jì)數(shù)器t1的運(yùn)行控制位,功能與t0相同。tf0、tf1本設(shè)計(jì)用不到,不做說明。本設(shè)計(jì)只用到t0,當(dāng)設(shè)置好tmod后令tr0=1就啟動t0定時(shí)器/計(jì)數(shù)器開始工作。設(shè)置好tmod和tcon后,每過50ms定時(shí)器就會溢出產(chǎn)生中斷,同時(shí)令變量deda另,當(dāng)deda加到20后一秒鐘就到了,這里令秒變量sec加1,同時(shí)令deda0重新計(jì)數(shù);當(dāng)sec加到60,令sec0,同時(shí)分變量min加1;當(dāng)min60,令min0并讓小時(shí)變量hour加1, 如此就可以得到日、月、年的精確時(shí)間。當(dāng)一天到了,天加1時(shí),星期也隨著加1,當(dāng)加到星期天時(shí)令其回到星期一。每個(gè)月的天數(shù)不一樣,本設(shè)計(jì)采用switch-case語句讓大月為31天,小月為30天,但閏年的二月是不一樣的,這里對年進(jìn)行取余,當(dāng)判斷余為0時(shí),即為閏年,二月就有29天,其它年份為28天。時(shí)間調(diào)整部分比較簡單,當(dāng)按下8號鍵第一次后,進(jìn)入調(diào)整日期狀態(tài),按下9號鍵控制年減,13號鍵年加;10號鍵月減,14號鍵月加111號鍵日減115號鍵日加;12號鍵星期減,16號鍵星期加。當(dāng)按下8號鍵第二次后,進(jìn)入時(shí)間調(diào)整狀態(tài),9號鍵時(shí)減,13號鍵時(shí)加;10號鍵分減,14號鍵分加;15號鍵秒清零。當(dāng)?shù)谌伟聪?號鍵時(shí),回到顯示基本內(nèi)容狀態(tài),同時(shí)lcd顯示開機(jī)畫面。實(shí)現(xiàn)方式為單片機(jī)掃描到相應(yīng)按鍵時(shí),相應(yīng)的變量就是做出相應(yīng)的變化。5.2.4延時(shí)部分本設(shè)計(jì)的單片機(jī)采用12mhz晶振,那么單片機(jī)的周期t1us,單片機(jī)每運(yùn)行一次循環(huán)大概要10us,采用三層do-while語句來實(shí)現(xiàn)精確1ms延時(shí),如圖13所示。 vord delay (ui t) uc i , j; do j=2; do (i=165); do nop ( ) ;/n個(gè)nop while (-i); while (-j); 圖13 延時(shí)程序1計(jì)算公式為t總=3j+(n+2)ij+3t+5t,t為晶振周期。此延時(shí)是供其他函數(shù)調(diào)用,而lcd寫入命令、數(shù)據(jù)時(shí)若用上面的延時(shí)會出現(xiàn)“反應(yīng)慢”的問題,因?yàn)槊看螌懭胍粋€(gè)命令和數(shù)據(jù)都要經(jīng)過延時(shí),累加起來就多了,即使是只延時(shí)1ms也是一樣,所以本設(shè)計(jì)提供第二個(gè)延時(shí)函數(shù)delay1(),通過參考lcd的時(shí)序,證明使用這個(gè)延時(shí)函數(shù)沒有問題。 vord delay1(ui count) uc i,j; for(i=0 ;icount;i+) for (j=0;j電源線信號線。本設(shè)計(jì)的線寬為:地線2mm,電源線1.5mm,其他信號線0.8mm。6.1 pcb板制作畫好pcb圖后用轉(zhuǎn)印紙打印,再用轉(zhuǎn)印機(jī)將圖紙轉(zhuǎn)入覆銅板,接下來用油性筆對不清晰或斷的走線進(jìn)行彌補(bǔ),防止腐蝕的時(shí)候把電氣線路給腐蝕掉。之后就可以開始腐蝕了,腐蝕液用鹽酸:雙氧水:水3:1:2的比例兌。等銅板腐蝕好后用直徑0.8mm的鉆針鉆孔,鉆出插件元件引腳的插孔,然后用細(xì)砂紙擦掉炭粉后立即涂上松香液,防止銅層氧化。松香液是用松香和99%濃度的工業(yè)酒精按1:5的比例配制的。這樣pcb板就出來了。6.2 元件焊接焊接前準(zhǔn)備好電烙鐵、焊錫、吸錫器、剪線鉗、剝線鉗、鑷子等焊接工具,同時(shí)準(zhǔn)備好要焊接的元件和導(dǎo)線。在清理元器件時(shí),重點(diǎn)辯別認(rèn)清電阻器阻值及相應(yīng)代號,對電阻、電容、發(fā)光二極管、三極管等要用萬用表一一檢測是否是良品。焊接時(shí),先焊好跳線,再按從小到大、從臥到立的原則把元件焊好。電阻、昌振、插槽采用臥式插裝,并近貼電路板;瓷片電容、電解電容、三極管、排針、排阻等采用立式插裝,也要近貼電路板。發(fā)光二極管、電解電容、三極管、集成電路等必須按正確的極性插裝,否則電路不會正常工作,甚至通電后還會被燒壞。焊完元器件后,用剪線鉗剪掉多余元器件的引線。焊接完后,還要認(rèn)真對照電路原理圖,檢查電路板上有無漏焊、錯(cuò)焊、短路、斷路等錯(cuò)誤現(xiàn)象,確認(rèn)無誤后才能通電調(diào)試。 結(jié) 論從設(shè)計(jì)題目下來到現(xiàn)在歷時(shí)兩個(gè)多星期,克服了硬件和軟件上各種問題,實(shí)現(xiàn)大部分的功能。因?yàn)楸驹O(shè)計(jì)硬件比較簡單,在硬件上碰到的就是一個(gè)電解電容引起的不能燒錄程序的問題,其他功能都正常。而主要的難題是在軟件設(shè)計(jì)上,在軟件上碰到以下幾點(diǎn)問題:(1) 對lcd寫入命令和數(shù)據(jù)的格式、時(shí)序弄亂。(2) 對lcd基本指令集、擴(kuò)充指令集比較模糊,在顯示圖片部分時(shí)滯留了很久。(3) 對圖片的取模抓不住頭緒。(4) 在設(shè)計(jì)時(shí)鐘部分時(shí),單片機(jī)的定時(shí)器/計(jì)數(shù)器、中斷部分出錯(cuò)。而這些問題都是跟自己對單片機(jī)的掌握不夠深有關(guān),這也提醒了我們要抓好基礎(chǔ)功,基礎(chǔ)好了,對付起這些問題才會得心應(yīng)手。本設(shè)計(jì)到目前為止還不算“智能化”,功能還比較單一,發(fā)揮部分的功能還有點(diǎn)
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司年度工作總結(jié)范本
- 少兒培訓(xùn)機(jī)構(gòu)引流課件
- 有關(guān)幼兒園的教育教學(xué)論文
- 職稱論文畢業(yè)論文
- 論文的理論意義和實(shí)際意義怎么寫
- 護(hù)理專業(yè)法律案例分享
- 生鮮安全操作培訓(xùn)
- 肋骨骨折伴胸腔積液護(hù)理查房
- 幼兒園禮儀培訓(xùn)
- 治療腫瘤中醫(yī)護(hù)理方案
- 傳染病知識培訓(xùn)課件
- 2024-2025新入職員工安全培訓(xùn)考試試題及完整答案【一套】
- 人教版二年級數(shù)學(xué)下冊期末測試卷(5篇)
- 2025年湖南融通資源循環(huán)產(chǎn)業(yè)有限公司技能崗位招聘題庫帶答案分析
- CJ/T 340-2016綠化種植土壤
- 新能源汽車全生命周期碳足跡測算模型及減排策略
- 糧食加工消防安全管理規(guī)定
- 骨科器械的處理流程與清洗難點(diǎn)
- 小浣熊的課件
- 2024北京西城區(qū)五年級(下)期末語文試題及答案
- 屋頂樹脂瓦安裝合同協(xié)議
評論
0/150
提交評論