


版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、單片機課程設計題目:1602LCD顯示的秒表系別/班級:信息工程系11級嵌入式技術與應用專業目錄1單片機原理32課程設計的任務與要求33課程設計目的44芯片資料54.1AT89C5154.21602LCD85電路分析166代碼分析217設計分析298調試成功與否319參考文獻3610附錄1602LCD秒表的顯示源代碼371602LC®表的顯示原理圖43、單片機原理單片機控制秒表是集于單片機技術、模擬電子技術、數字技術為一體的機電一體化高科技產品,具有功耗低,安全性高,使用方便等優點。它是一種在線式實時控制計算機,需要有較強的抗干擾能力,較低的成本。本次設計內容為以8051單片機為核心
2、的秒表,采用數碼管顯示,單片機技術控制。利用單片機的定時器/計數器定時和技術的原理,用集成電路芯片、LCD數碼管以及按鍵來設計計時器。將軟、硬件有機地結合起來,使它擁有正確的計時、暫停、清零、并同時可以用數碼管顯示,在現實生活中應用廣泛。二、課程設計的任務與要求設計任務:利用AT89C51單片機結合1602LCDM示器設計一個秒表設計要求:1. 本設計實現一個1602LCD®示秒表利用AT89C5有空制整個電路來實現秒表的顯示。大體上可以講1602LCD#表的顯示主要包括硬件和軟件兩部分。重點就是各部分硬件的連接設計以及程序的編寫。本章講述的就是系統硬件的設計,其中包括各模塊的器件選
3、擇和電路設計。三、課程設計目的«MCS-51單片機原理及應用課的課程設計是四個學生一組完成一個老師給的一個題目,叫1602LCE&示的秒表。為了讓我們能夠綜合運用白己學的課程的基本知識,能夠進行單片機的應用,掌握單片機程序設計調試和應用電路設計、分析及調試檢測。通過這個實驗:1、使我們增進對單片機知識的進一步認識,也同時加深對單片機理論知識的理解。2、使我們掌握單片機的內部功能模塊的應用,3、使我們了解和掌握單片機應用系統的軟硬件設計過程,方法即實現,為了以后設計和實現單片機應用系統打下基礎。四、芯片資料4、1AT89C51(«XPI(TXPjUNT34T01mbA
4、DO二尸。一IfADV)iAD>)ij*a*<AM)O_S1AD5>二#。a二EKTJ點M)ALE7PROQ2,2(AtO|FIf(A*)#*|Aftb<T1>P»»*WW»P3fi匚mmP37S=XTAL2JXTAlICG*iOL772。AA1C<.艮AT89C51AT89C51是128字節內部RAM,4K的編程Flash存儲器(可擦寫1000次),三級程序存儲器保密,靜態工作頻率:0Hz-24MHz,2個16位定時/計數器,一個串行通訊口,6個中斷源,32條I/O引線,有片內時種振蕩器。輸入輸出引腳資料:(1) P0端口P0
5、.0-P0.7P0是一個8位漏極開路型雙向I/O端口,端口置1(對端口寫1)時作高阻抗輸入端。作為輸出口時能驅動8個TTL。在訪問外部程序和外部數據存儲器時,P0口是分時轉換的地址(低8位)/數據總線,訪問期間內部的上拉電阻起作用。P1端口P1.0P1.7P1是一個帶有內部上拉電阻的8位雙向I/0端口。輸出時可驅動4個TTL端口置1時,內部上拉電阻將端口拉到高電平,作輸入用。(2) P2端口P2.0P2.7P2是一個帶有內部上拉電阻的8位雙向I/0端口。輸出時可驅動4個TTL端口置1時,內部上拉電阻將端口拉到高電平,作輸入用。在訪問外部程序和16位外部數據存儲器時,P2口送出高8位地址。而在訪
6、問8位地址的外部數據存儲器時其引腳上的內容在此期間不會改變。(3) P3端口P3.0P3.7P2是一個帶有內部上拉電阻的8位雙向I/0端口。輸出時可驅動4個TTL端口置1時,內部上拉電阻將端口拉到高電平,作輸入用。其它控制或復用引腳:(1)ALE/PROG30訪問外部存儲器時,ALE(地址鎖存允許)的輸出用于鎖存地址的低位字節。即使不訪問外部存儲器,ALE端仍以不變的頻率輸出脈沖信號(此頻率是振蕩器頻率的1/6)。在訪問外部數據存儲器時,出現一個ALE脈沖。(2)PSEN29該引是外部程序存儲器的選通信號輸出端。當AT89C51由外部程序存儲器取指令或常數時,每個機器周期輸出2個脈沖即兩次有效
7、。但訪問外部數據存儲器時,將不會有脈沖輸出。(3)EA/Vpp31外部訪問允許端。當該引腳訪問外部程序存儲器時,應輸入低電平。要使AT89C51只訪問外部程序存儲器(地址為0000H-FFFFH,這時該引腳必須保持低電平。AT89C51特殊功能寄存器列表(適用丁同一架構的芯片)符號地址注釋*ACCE0H累加器*BF0H乘法寄存器*PSWD0H程序狀態字SP81H堆棧指針DPL82H數據存儲器指針低8位DPH83H數據存儲器指針高8位*IEA8H中斷允許控制器*IPD8H中斷優先控制器*P080H端口0*P190H端口1*P2A0H端口2*P3B0H端口3PCON87H電源控制及波特率選擇*SC
8、ON98H串行口控制器SBUF99H串行數據緩沖器*TCON88H定時器控制TMOD89H定時器方式選擇TL08AH定時器0低8位TL18BH定時器1低8位TH08CH定時器0低8位TH18DH定時器1高8位帶*號的特殊功能寄存器都是可以位尋址的寄存器4.11602LCD1602字符型LCD®介:字符型液晶顯示模塊是一種專門用于顯示字母、數字、符號等點陣式LCD目前常用16*1,16*2,20*2和40*2行等的模塊。1602LCD分為帶背光和不帶背光兩種,基控制器大部分為HD44780.1602LCM要技術參數:顯示容量:16X2個字符芯片工作電壓:4.55.5V工作電流:2.0m
9、A(5.0V)模塊最佳工作電壓:5.0V字符尺寸:2.95x4.35(WXH)mm引腳功能說明:1602LCD采用標準的14腳(無背光)或16腳(帶背光)接口,各引腳接口說明如下表1所示:編勺符號引腳說明編勺符號引腳說明1VSS電源地9D2數據2VDD電源正極10D3數據3VL"晶顯示偏壓11D4數據4RS數據/命令選擇12D5數據5R/W讀/寫選擇13D6數據6E使能信號14D7數據7D0n據15BLA背光源正極8D1n據16BLK背光源負極表1:引腳接口說明第1腳:VSS為地電源。第2腳:VD戒5V正電源。第3腳:VL為液晶顯示器對比度調整端,接正電源時對比度最弱,接地時對比度最
10、高,對比度過高時會產生“鬼影”,使用時可以通過一個10K的電位器調整對比度。第4腳:RS為寄存器選擇,高電平時選擇數據寄存器、低電平時選擇指令寄存器。第5腳:R/W為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。當RS和R/W共同為低電平時可以寫入指令或者顯示地址,當RS為低電平R/W為高電平時可以讀忙信號,當RS為高電平R/W為低電平時可以寫入數據。第6腳:E端為使能端,當E端由高電平跳變成低電平時,液晶模塊執行命令。第714腳:D(HD7為8位雙向數據線。第15腳:背光源正極。第16腳:背光源負極。1602LCD勺指令說明及時序:1602液晶模塊內部的控制器共有11條控制指令,如下表
11、2所示:序號”令RSR/WD7D6D5D4D3D2D1D01清顯示00000000012光標返回000000001*3置輸入模式00000001I/DS4顯示開/關控制0000001DCB5光標或字符移位000001S/CR/L*6置功能00001DLNF*7置字符發生存貯器地址0001字符發生存貯器地址8置數據存貯器地址001顯示數據存貯器地址9讀忙標志或地址01BF計數器地址10寫數到CGRA喉DDRAM10要寫的數據內容11從CGRA喊DDRA糠數11讀出的數據內容表2:控制命令表1602液晶模塊的讀寫操作、屏幕和光標的操作都是通過指令編程來實現的。(說明:1為高電平、0為低電平)指令1
12、:清顯示,指令碼01H,光標復位到地址00H位置。指令2:光標復位,光標返回到地址00H指令3:光標和顯示模式設置I/D:光標移動方向,高電平右移,低電平左移S:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無效。指令4:顯示開關控制。D:控制整體顯示的開與關,高電平表示開顯示,低電平表示關顯示C:控制光標的開與關,高電平表示有光標,低電平表示無光標B:控制光標是否閃爍,高電平閃爍,低電平不閃爍。指令5:光標或顯示移位S/C:高電平時移動顯示的文字,低電平時移動光標。指令6:功能設置命令DL:高電平時為4位總線,低電平時為8位總線N:低電平時為單行顯示,高電平時雙行顯示F:低電平時顯
13、示5x7的點陣字符,高電平時顯示5x10的點陣字符。指令7:字符發生器RA觀址設置。指令8:DDRA岫址設置。指令9:讀忙信號和光標地址BF:為忙標志位,高電平表示忙,此時模塊不能接收命令或者數據,如果為低電平表示不忙指令10:寫數據。指令11:讀數據。與HD4478砰目兼容的芯片時序下表3如下:讀狀態|俞入RS=LR/W=HE=H輸出D卜D7=犬態字寫指令|俞入RS=LR/W=LD0D7可旨令碼,E=高脈沖輸出無讀數據|俞入RS=HR/W=HE=H輸出D卜。7啜據寫數據諭入RS=HR/W=LD0-D7啜據,E=高脈沖輸出無表3:基本操作時序表讀寫操作時序如圖2和3所示:圖2讀操作時序圖3寫操
14、作時序1602LC麗勺RA觀址映射及標準字庫表:液晶顯示模塊是一個慢顯示器件,所以在執行每條指令之前一定要確認模塊的忙標志為低電平,表示不忙,否則此指令失效。要顯示字符時要先輸入顯示字符地址,圖4是1602的內部顯示地址UCD1亍IOOO10203I040506;2oa09OAOE£ocODOE2740!414乏43言4454自|4743494A40404E4F50.67圖41602LCD內部顯示地址例如第二行第一個字符的地址是40H,因為寫入顯示地址時要求最高位D7恒定為高電平1所以實際寫入的數據應該是01000000B(40H+10000000B(80H)=11000000B(C
15、0H)在對液晶模塊的初始化中要先設置其顯示模式,在液晶模塊顯示字符時光標是白動右移的,無需人工干預。每次輸入指令前都要判斷液晶模塊是否處于忙的狀態。1602液晶模塊內部的字符發生存儲器(CGRQM已經存儲了160個不同的點陣字符圖形,如圖5所示,這些字符有:阿拉伯數字、英文字母的大小寫、常用的符號、和日文假名等,每一個字符都有一個固定的代碼襄13CGROM0CCRAM中字轉代Eft與字符圖對成美累<KX>00010OO1)OlOG0)01Olio,cntd1O1Otoilnoo11011110111!XXXXQOOflCGRAM(l>0pP三.PxxxX0001<2&g
16、t;91AQ.qn廣AqXXXxooio<3)2BRrrPIXA_eXXXX0O11<4>3CSv毛,xxxXOJOO4D_TdtX工卜*ClXXXXO101KSEu.un才H0XXXxonoCt>§FVfV爐A3PXXXxX0111>TGwftwT*«XXXXlOOO<l><eHXhXM率*)IXXXX1M1J91YIy->1XXXX1010<3).1ziA工3Ai千XXXX1011C41+1Ktk才0址XXXX118<s)<L¥1ift防?7aXXXX1)0)<«>一
17、MJm<31X、*+XXXX1110CT>1AN一n4:AftXXXXtillC8)/too-1/一od|我藉A圖5字符代碼與圖形對應圖1602LC麗勺一般初始化(復位)過程延時15mS寫指令38H(不檢測忙信號)延時5mS寫指令38H(不檢測忙信號)延時5mS寫指令38H(不檢測忙信號)以后每次寫指令、讀/寫數據操作均需要檢測忙信號寫指令38H:顯示模式設置寫指令08H:顯示關閉寫指令01H:顯示清屏寫指令06H:顯示光標移動設置寫指令0CH顯示開及光標設置五、電路分析總體設計分析本系統中,硬件電路主要有電源電路,晶振電路,復位電路,顯示電路以及一些按鍵電路等,本系統采用AT89
18、C51單片機為中心器件,利用定時器計數器定時和記數的原理,結合硬件電路如電源電路,晶振電路,復位電路,顯示電路,蜂鳴器電路以及一些按鍵電路等來設計計數器,將軟、硬件有機地結合起來。硬件系統采用PROTEUS功能來實現,簡單且易于觀察,在仿真中就可以觀察到實際的工作狀態。5.1電源電路電源電路是系統最基本的部分,任何電路都離不開電源部分,隨著半導體工藝的發展,穩壓電路也采用集成電路器件來制成。可采用獨立的穩壓電源。這種供電方式的優點是穩壓可靠,且有各種成熟電路可供選擇。由集成穩壓器具有體積小,外界線路簡單,使用方便,工作可靠等優點。因此,在各種電子設備中應用十分普遍,為了跟上時代的發展,可采用W
19、780源列三端穩壓器,主要利用它的輸出電壓是固定的在使用中不能進行調整等優點。5.2晶振電路AT89C51內部的振蕩電路是一個高增益反相放大器,引腳RXDffiTXD分別是此反向振蕩放大器的輸入端和輸出端。該反向放大器可以配置為內部方式的片內振蕩器。如圖所示,這里選用12MHE勺內部振蕩方式,電路如下:電容器C1,C2起穩定振蕩頻率,快速起振的作用,C1,C2可在20100PF之間取,這里取30PF,接線時要使晶振振蕩器盡可能接近單片機。弓二也二30pf30FXICRYSTAL5.3復位電路采用上電+按鍵復位電路,上電后,由于電容充電,使RST持續一段時間高電平時間。當單片機已在運行之中時,按
20、下復位按鍵也能使RST持續一段時間的高電平,從而實現上電加開關復位的操作。這不僅能時單片機復位,而且還能使單片機的外圍芯片也同時復位,當程序出現錯誤時,可以隨時使電路復位。復位是單片機的初始化操作。其主要功能是把PC初始化為0000H,使單片機從0000H單元開始執行程序。除了進入系統的正常初始化之外,當由于程序運行出錯或操作錯誤使系統處于死鎖狀態時,為擺脫困境,也需按復位鍵重新啟動。除PC之外,復位操作還對其他一些寄存器有影響,它們的復位狀態如表1所示。復位狀態PC0000HTCON00HACC00HTL000HPSW00HTH000HSP07HTL100HDPTR0000HTH100HP0
21、-P3FFHSCON00HIPXX000000BSBUF不定IE0X000000BPCON0XXX0000BTMOD00H表1一些寄存器的復位狀態因STC89C5字片機需高電平(3.75.5V)復位,且復位時流入單片機的電流不能超過10mA具體參數:根據所需要的復位參數可得當按下SV鍵時出現兩個機器周期的高電平在單片機RES端產生的壓降等于:VCCRiR25V(1K0.2K)'J10K"-4.17VTccVtc圖復位電路5.4顯示電路顯示電路既可以選用液晶顯示器,也可以選用數碼管顯示,我們米用液晶顯示電路1602LCEI腳接口說明編P符號引腳說明編p符號引腳說明1VSS電源地
22、9D2DataI/O2VDD電源正極10D3DataI/O3VL液晶顯示偏壓信號11D4DataI/O4RS數據命令選擇端口(H/L)12D5DataI/O5R/W讀/寫選擇端(H/L)13D6DataI/O6E使能信號14D7DataI/O7D1DataI/O15BLA背光源正極8D1DataI/O16BLK背光源負極顯示電路部分引腳分析:3腳:VL,液晶顯示偏壓信號,用于調整LCD160矛勺顯示對比度,一般會外接電位器用以調整偏壓信號,此腳電壓為0時可以得到最強的對比度。4腳:R§數據/命令選擇端,當此腳為高電平時,可以對1602進行數據字節的傳輸操作,而為低電平時,則是進行命令
23、字節的傳輸操作。命令字節,即是用來對LCD160矛勺一些工作方式作設置的字節;數據字節,即使用以在1602上顯示字節。5腳:R/VV讀寫選擇端。當此腳為高電平可對LCD1602進行讀數據操作,反之進行寫數據操作。6腳:E,使能信號,其實是LCD1602的數據控制時鐘信號,利用該信號的上升沿實現對LCD160矛勺數據傳輸。714腳:8位并行數據口,使得對LCD1602的數據讀寫大為方便。基本操作時序:(1) 讀狀態:輸入:RS=L,RW=H,EH輸出:D0D7狀態字(2) 寫指令:輸入:RS=L,RW=L,D0D才旨令碼,E=ft脈沖;輸出:無(3) 讀數據:輸入:RS=H,RW=H,E=晌出:
24、D0D7數據(4) 寫數據:輸入:RS=H,RW=L,D0D7,E福脈沖;輸出:無需要兩個寫時序: 當我們要寫指令字,設置LCD160矛勺工作方式時:需要把RS置為低電平,RW置為低電平,然后將數據送到數據口D0D7最后E引腳一個高脈沖將數據寫入。 當我們要寫入數據字,在1602上實現顯示時:需要把RS置為高電平,RW置為低電平,然后將數據送到數據口D0D7最后E引腳一個高脈沖將數據寫入。LM016L.寸卜LLL79r-j29._6POO;ADOP01/AD1P0.2/AD2P03AD3P0.4;AD4P0.5/AD5P0.6/AD6P07;AD7P20/A6P2.VA9P22/A10P23/
25、A1139d0>38373S_i35d4734d5731dey32d7>21Rsy22FW23-21coRP1respac'k-s六、代碼分析#include<reg51.h>,#include<intrins.h>皆屬于頭文件,前者是定義51單片機特殊功能寄存器和位寄存器的,后者包含特殊指令例如:crol(),cror()。#defineucharunsignedchar,#defineuintunsignedint,definedelayNOP()nop();nop();nop()皆屬于宏定義,后者是將三個延時周期定義在一起,用一個delayNO
26、P()表示。VoidLCD_intialize,voidLCD_Set_POS(uchar),voidDisplay_String(char*,char);皆為調用函數,第一個是調用LCD初始化函數;第二個是調用LCD的顯示位置函數;第三個是調用LCD寫數據函數;第四個是調用LC驢旨定行上顯示字符串函數。SbitK1=P1A0,sbitK2=P2A1,sbitBEEP=3A0,sbitLCD_RS=P2A0,sbitLCD_RW=P2A1,sbitLCD_EN=P2A2皆為個函數接口聲明,定義K1、K2為兩個控制開關;定義BEEF揚聲器接口;RS為寄存器選擇高電平(1)時選擇數據寄存器、低電平
27、(0)時選擇指令寄存器;RS為讀寫信號,高電平(1)時驚醒讀操作,低電平(0)時進行寫操作;E(或EN)端為使能端(enable),將單片機與LCD1602顯示器連接。UcharKeyCount=0;KeyCount為按鍵計數變量,用于累計按鍵的次數。定義其為無符號整型,并且付初值為0.ucharcodemsg1="SecondWatch0",ucharcodemsg2=">>>>"定義兩個一維數組,在protues仿真軟件中,當按下play鍵后,1602LCD顯示屏是會出現這兩個數組中的字符。ucharcodePrompts16
28、=":1->",":2->:2",":1->2:3->",":1->2:3->4"定義一個二維數組,將其中的一維顯示于1602LCU。K1為啟停控制按鈕,第一次按下時開始計數,顯示“::1-”;當第二次按下時停止計數,顯示":2->:2"ucharTime_Buffer=(0,0,0,0,ucharLCD_Display_Buffer="00:00:00:00"定義兩個數組,一個用于計時緩沖,一個用于顯示時間緩沖。voidBeeP()
29、uchari,j=70;for(i=0;i<180;i+)while(-j);BEEP=BEEP;BEEP=0;定義一個調用蜂鳴器的子函數。For(i=0;i<180;i+)用于控制蜂鳴器響的時間,BEEP=BEEPg于使蜂鳴器進行短暫的響一下又不響的效果。因為蜂鳴器接地,只有當P3.0接入高電平(即1)時,蜂鳴器才工作。所以在響了一聲過后,級(執行完成之后)將BEEPK值為0,讓它處于不導通狀態,蜂鳴器不響。voidDelayX(uintms)uchari;while(ms-)for(i=0;i<120;i+);定義一個延時子函數voidShow_Second()uchar
30、i;LCD_Set_POS(0X45);設置LCD顯示起點for(i=3;i!=0xff;i-)將兩位整數的1、100s,秒,分,時轉換為8位數字字符LCD_Display_Buffer2*i+1=Time_Bufferi/10+'0'LCD_Display_Buffer2*i=Time_Bufferi%10+'0'在i=3,2,1,0時分別顯示時,分,秒,1/100sLCD_Write_Data(LCD_Display_Buffer2*i+1);LCD_Write_Data(LCD_Display_Buffer2*i);LCD_Write_Data('
31、:');定義顯示計時函數LCD_Set_POS(0X45),調用函數,用于調用設置顯示位置函數,在此子函數中又嵌套了一個函數調用,LCD_Write_Command(Position|0X80)(即LCD_Write_Command(0X45|0X80)函數。進行或操作:45010001018010000000C511000101或操作后得到結果C5,即LCD_Write_Command(0XC5調用該函數(即向LCD寫指令函數)。LCD_Busy_Check()用于檢測LCD否處于忙狀態,假如處于忙狀態,RS為0(選擇指令寄存器),RVW1(進行讀操作),EN為1(寄存器使能)。De
32、layNOP()表示延時四個機器周期。Result=(bit)(P0&0X80),P0的初始狀態是FF.進行與操作:FF1111111180100000008010000000與操作后得到的結果80,即return為80(10000000)將EN賦值為0,即寄存器使能端禁止用。返回至LCD寫指令子程序,RS=0批擇指令寄存器),RW=0進行寫操作),EN=0(使能端禁止使用)。延時兩個機器周期,將cmd(0XC5的值賦給P0口,延時四個空白機器周期。使能端置1,延時四個空白機器周期。EN=C存器禁止使用。voidTime0()interrupt1using0(TH0=-10000/25
33、6;TL0=-10000%256;Time_Buffer0+;if(Time_Buffer0=100)Time_Buffer0=0;Time_Buffer1+;if(Time_Buffer1=60)/秒Time_Buffer1=0;Time_Buffer2+;if(Time_Buffer2=60)/分Time_Buffer2=0;Time_Buffer3+;if(Time_Buffer3=24)/為定時器T0工作于0號Time_Buffer3=0;此函數為中斷函數,interrupt1using0寄存器,TH0=-10000/256,TL0=-10000%25§用于計算定時器的初值,
34、除得的放在高八位,余的的放在第八位。接下來的代碼用于控制在1602LCD®示屏中秒表白動進位換算的的效果,(1小時=60分鐘,1分鐘=60秒,1秒=100毫秒)當小時到達24時,清零。voidmain()uchari;IE=0x82;TMOD=0X01;TH0=-10000/256;TL0=-10000%256;LCD_Initialize();Display_String(msg1,0x00);Display_String(msg2,0x40);While(1)if(K1=0)DelayX(100);i=+KeyCount;switch(i)Case1:Case3:TR0=1;Di
35、splay_String(Promtsi-1,0);break;Case2:Case4:TR0=0;Display_String(Promtsi-1,0);break;default:TR0=0;break;while(K1=0);Beep();elseif(K2=0)TR0=0;KeyCount=0;for(i=0;i<4;i+)Time_Bufferi=0;Display_String(msg1,0);Beep();DelayX(100);While(K2=0);Show_Second();主函數,中斷允許寄存器IE,IE=0x82=10000010表示EA為1,CPLM放中斷;ET
36、0=1允許外部中斷1中斷。定時/計數器方式控制寄存器TMOD,TMOD=0x01=0000000表示在T0方式字段中工作方式為方式1,是定時器方式,定時器的技術不受外部引腳輸入電平的控制,而只受定時器運行控制位(TRQTR1)的控制。進行高低8為賦初值。接著調用初始化LC行函數,在其子函數中進行順序執行,每個都先延時5毫秒,接著調用寫指令函數。返回至主程序。接著調用顯示函數,在LCD指定行上顯示字符串,Display_String(msg1,0x00),msg1為一個一維數組(SecondWatch0),即Display_String(SecondWatch0,0x00),在該子函數中調用設置
37、顯示位置子函數,在該子函數中調用寫指令子函數進行或操作:000000000080100000008010000000與操作后得到結果為80,即LCD_Write_Command(0X80),調用該函數(即向LCD寫指令函數)。LCD_Busy_Check()用于檢測LC喝否處于忙狀態,假如處于忙狀態,RS為0(選擇指令寄存器),RW;1(進行讀操作),EN為1(寄存器使能)。DelayNOP()表示延時四個機器周期。Result=(bit)(P0&0X80),P0的初始狀態是FF.進行與操作:FF1111111180100000008010000000與操作后得到的結果80,即retu
38、rn為80(10000000)將EN賦值為0,即寄存器使能端禁止用。返回至LCD寫指令子程序,RS=0批擇指令寄存器),RW=0進行寫操作),EN=0(使能端禁止使用)。延時兩個機器周期,將cmd(0X80)的值賦給P0口,延時四個空白機器周期。使能端置1,延時四個空白機器周期。EN=C存器禁止使用。Display_String(msg2,0x40);該調用函數類似于上面所述。While(1)進入死循環。在里面進行著秒表的計數功能,以及蜂鳴器的工作。七、設計分析7、1系統設計分析設計的電路主要是能多次記時和查詢時間,記時的多少通過顯示電路顯示出來,每一次計時可以通過控制電路查詢出來。設計框圖如
39、圖2-1所示;用1602LCD設計的秒表系統框圖7、2顯示部分設計分析顯示部分是本次設計的重要部分,一般有以下兩種方案:方案一:采用LED顯示,在單片機應用系統中最常用的LED數碼管為7段數碼管,可利用LED顯示器靈活地構成所要求位數的顯示,分靜態顯示和動態顯示。對于靜態顯示方式,所需的譯碼驅動裝置很多,引線多而復雜,且可靠性也較低。而對于動態顯示方式,雖可以避免靜態顯示的問題,但設計上如果處理不當,易造成亮度低,有閃爍等問題。方案二:采用LCD顯示。是一種低功耗顯示器件,具有顯示內容豐富、體積小、重量輕、壽命長、使用方便、安全省電等優點,在計算器、萬用表、袖珍式儀表和低功耗微機應用系統中得到
40、廣泛使用。其顯示的質量高,每個顯示器每一點在收到信號后就一直保持那種彩色和亮度,恒定發光,而不像陽極射線管顯示器那樣刷新亮點,畫面質量高且不閃爍。鑒于上述原因,我們采用方案二。7、3軟件設計分析在軟件設計中,一般采用模塊化的程序設計方法,它具有明顯的優點。把一個多功能的復雜程序劃分為若干個簡單的、功能單一的程序模塊,有利于程序的設計和調試,有利于程序的優化和分工,提局了程序的閱讀性和可靠性,使程序的結構層次一目了然。總流程圖:八、調試成功與否L.LLJIUdOIdLSecondWalc-h0>>>>06明60胞C2V(啟停控制)|.KW(清零)60U1X1_IfiJCR
41、YSTALro.lADHPD.2W.E2XTA12PO.AMFO.SAMro.BADB叫響D7P2.a(seP2.1婭P3ENP2i/A10P2.3/A11IALEP2.4A12FTP2.fi/A13P2.6/A14P2.7/A15F3P1t1P2.UTX&P12P32/1NTDP13P3JMNT1P1.4ra.wjF叫51P1fiP3.&/WRP17P3.7/RDAT39C51CLO'CK=12MdO./d1y3736d3/353耳y33果嘰,£J、RP1RE3PACK321RSZ122W23EZ的站2B典LS11。十1-i5i::151BSOUNDER圖一
42、剛啟動時截圖IJJILW010L>>>>00!0e:05:8?20pFT卜fflpFX1_CRYSTALC2卜1(啟停控制J”ClIIX1CRYSTALXIALIPO.QMDOP0.1XAD1PDJ2/AD2XIAL2po.awmrFD4/AD4IP0:3/AMPOSAU1RGTP0.7tfkD7P2.WP0咬gP2!.2/A«>PGEHP2.3/A11ALEFS.WAt?EAF2.S婀3F2.0W*lP1DP3.O/RXUP1.1F3.irpq>PI2P3.Z/IIMTQ"3P3.3/IINU1P1.4P3.TDP15P3.5H1P1J
43、0P3.6WRP17P37/RDAI3OD51cuackoj29、3031an<*oy<11/d2/30d3/3Jd4y33d6y32d7.-ARP1RESPACke劇志田gESSSSSKU12OpFC22OfrFA皿20"91B_小"后停控利)1°2.KE(清零)22IWwaE/上2耳zza皿2§SOUNDERTS!017Z11怕圖二運行時截圖LLLJIUdOiaLSecondWalc-h>>>>OB明6090XTALIFO.OADOro.1W.D1lPO.2W.R2XTAL2FC.3?AK3FO.5ADflro.s
44、AMFOJ/AP7P2.0uOaeP2.1場P2i/A10商ENP2#aiALER.4/A1SEAP2.5/A13P2.6/A14P2.7/A15EF3P4,1lPS.iXtP12P32/11NTDP13P3J3/1NT1P1.4ra.wjPl5作的P1fiP3.fi/WRP17P3.7/RDgAT39C51CL0'CK12M36dO/3Bd1E38點35f3耳45/33dB'21RSZ12223EZ252BZ27衛B1011而JJ3ilS151B17WP.i略幻0Ku珂J®a節瑁fJ.'戲毛一arffihCfwECMiLS1RP1RE5PACK-Bu、SOU
45、NDER圖三按下清零后截圖調試成功,調試結果如上圖所示。KeilC51軟件是目前最流行的開發8051系列的單片機的軟件工具。KeilC51提供了包括C語言編譯器,宏匯編,連接器,庫管理和一個功能強大的仿真調試器等在內的完整開發方案,通過一個集成開發環境uVision3IDE將這些部分結合起來。打開Keil軟件,將代碼輸入調試并在錯誤全被解決的情況下生成對應的hex文件;打開Proteus軟件,將對應的原理圖和生成的hex文件連接。在調試過程中我們出現了如下錯誤:1:a013函數014Vcz-dInalz-ze(i;015VodlCD_Ser_FOSfchari;DIEVoidLCD2wriEe
46、_Daca(car);017VoidDiSuring<'-Jcar,以:;JeIPl.,Fu.OTe.1ll;lI一3注二二技target1TargetL11602.c»«»1632,C(14:errorCL29:nr.iSBingr;rbefore1LCD_IniEaalizenetcreated單機錯誤信息,讓指針跳到錯誤行,一步步調試之后得知是代碼輸入時輸入法錯誤,把大寫”V'改寫為小寫”V”。2:16:-2:errorCLz3i'i=medifiakl-slvalue162:errorCL=3:Ival-e:errorCl=3
47、:uxLtrodifiak:l=lvalueL6:-2.C(93):errorCL=3i口二mediflvalue1632.C(93):errorCL;3:Ival-e1602*C(97):error01=3:二二mcidifzik:L=lvalue1602.C(9?):errorCL=3i二medifL6:-2.3(12J):srrcrCISKr*T-l育m號-|_._!_ar_.1_|_'1F_,1rli678901207070707佛曲0851voidTrr.s:(iinterrupt1using當我們把上面的錯誤改了之后,又出現了以上錯誤,我們通過書籍、小組成員的共同努力,知道
48、了是由于我們修改代碼中一些不能修改和覆蓋的變量,導致出現了以上錯誤。在我們細心尋找下發現時少了一個分號3:*123牛gi:124Caae3:TRO=1;125Dz-3pa.yStringiPr126break;127Case2:128Case£:TRO-:-;129Displa7_5trin(Fr130break;1J1default:TRO=Z;132break;trrIlTlH1Pe,Fu,(J+Te.ccir.pili16:2,c,.1602.C(123>:errorC202:1Case1:undefinedidentifier1602.C(2j)error01413Ti
49、r=xerror1111602,C(L23)errerC141myn匕己xerrornear1:11602-C(124)errerC141syeaxerrornear1:*1602X(125)errorC2jz1Prcir.ts*:口二d已f二二已萬ler1602,C(12)errerC2?2TC*se':ur.defiedider.±fier1602-C(127)errorC141syntaxerrornear12*1602.C(12*)errorC14Lstaxerz:ornear1:'當我們把分號加上了之后,又出現了如上圖所示的錯誤。我們全組成員齊心協力,根據錯
50、誤提示,將一個一個的錯誤改正4:T£Jcase1:124爹case3;TR0=l;i=125|Display5tzig(Frirxsi-'f'126Bbreak;127Mcase2:12SRcase4:TR0=0;129,DispLay_S.ngiFmrrmi-l,0;130 卷break;131 default:TR0-0;132 break;E,NLI國Pt.,(Fli.IJTe.3ildtarget'Target1*zcrr.piligIE”*。.*-602,C(125:errorC2Q2:'Frcirts':-Tidefi-edider
51、tifier602(129):erznEC202:1Promts1:undefinedidentifierlaxetr;口匚created當我們再次運行時,又出現以上的兩個錯誤。通過我們全組同學的努力以及其他同學的幫忙,我們得知是由于輸入時的馬虎,我們在前面定義的是propts,而這里出現了promts,所以導致了錯誤。根據錯誤,一步一步的檢查、調試之后,我們把錯誤全部解決,如圖:K二二LKBbim1Uif巳XL二5YM3OL:_NCPMODULE:1602.Ctj(1602ADDSS:*,WAfUJITS12:IdADETOUWRE5CLTDEXTERNA5YM3OL:_NCPMODULE:
52、1602.obj(1602ADDRESS:C2ASHFrcgrair.5ize:iaua-32.1xdata-jccde=,11602"-0Error(3)f23Warning(s)<1 九、參考文獻張大明.單片機控制實訓指導及綜合應用實訓M.北京:機械工業出版社陳益飛.單片機原理及應用技術.北京M:國防工業出版社,2011張偉.張杰編著.單片機原理及應用.北京M:機械工業出版社,孫余凱.精選實用電子電路260例M.北京:電子工業出版社.,郭天祥51單片機C語言教程.北京:電子工業出版社閆玉德俞虹.MCS-單片機原理與應用北京:機械工業出版社陳益飛.單片機原理及應用技術M.北京:國防工
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 監理工作(告知)交底記錄
- 九年級化學上冊 第五單元 化學方程式 課題2 如何正確書寫化學方程式教學設計 (新版)新人教版
- 一年級語文下冊 識字(一)4猜字謎教學設計 新人教版
- 初中英語人教新目標 (Go for it) 版七年級上冊Unit 4 Wheres my schoolbagSection A第1課時教案設計
- 二年級美術下冊教案-《第13課 怪獸》教學設計人美版
- 人教版九年級美術上冊教學設計:2.1 剪 紙
- 2024臺州市黃巖國有資本投資運營集團有限公司下屬公司公開招聘7名工作人員筆試參考題庫附帶答案詳解
- 九年級化學下冊 第六章 金屬6.3 金屬礦物與冶煉教學設計 科粵版
- 房地產開發管理流程培訓
- 七年級生物上冊 3.2.3植物的開花結果教學設計 (新版)新人教版
- (一模)桂林市、來賓市2025屆高考第一次跨市聯合模擬考試生物試卷(含答案詳解)
- 四川省宜賓市第三中學2024-2025學年高二下學期3月月考語文試題(含答案)
- 2024年鄭州工業應用技術學院單招職業適應性測試題庫附答案
- 北京市消防條例解讀
- 農業合作社管理與運營模式試題及答案
- 2025年版中等職業教育專業教學標準 710205 大數據技術應用
- 項目燃油供給系統檢修廣東交通汽車技術系課件
- 2025榆林定邊縣國有企業財務會計人員招聘(10人)筆試參考題庫附帶答案詳解
- 2024年公務員考試中財務知識的考察試題及答案
- 治理鹽堿可行性報告
- 醫院檢驗科實驗室生物安全程序文件SOP
評論
0/150
提交評論