基于AT89C51單片機(jī)的數(shù)字時鐘設(shè)計.doc_第1頁
基于AT89C51單片機(jī)的數(shù)字時鐘設(shè)計.doc_第2頁
基于AT89C51單片機(jī)的數(shù)字時鐘設(shè)計.doc_第3頁
基于AT89C51單片機(jī)的數(shù)字時鐘設(shè)計.doc_第4頁
基于AT89C51單片機(jī)的數(shù)字時鐘設(shè)計.doc_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

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

評論

0/150

提交評論