2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p>  電氣與電子信息工程學院</p><p>  單片機原理與應用課程設計報告</p><p>  設計題目: 多功能數(shù)字電子鐘 </p><p>  專業(yè)班級:電子信息科學與技術082</p><p><b>  一、摘要</b></p><p>  該課程設計為數(shù)字電子

2、鐘的設計。以AT89S52為核心,配合液晶顯示器和按鍵為用戶提供長期、連續(xù)、可靠、穩(wěn)定的工作環(huán)境。該數(shù)字電子鐘有時分秒顯示和日期顯示以及時間和日期調整的功能。系統(tǒng)軟件設計包括單片機計算機兩部分的編程。計算機軟件編程主要實現(xiàn)參數(shù)設置、串行口數(shù)據(jù)接收、指令發(fā)送以及數(shù)據(jù)的顯示和存儲。單片機軟件編程主要實現(xiàn)鍵盤、液晶顯示器等各模塊的功能,采用匯編語言編程。</p><p>  關鍵詞: 數(shù)字電子鐘 單片機 液晶顯示 &l

3、t;/p><p><b>  二、課程設計目的</b></p><p>  通過《單片機原理與應用》課程設計,使學生掌握單片機及其擴展系統(tǒng)設計的方法和設計原則及相應的硬件調試的方法。進一步加深單片機及其擴展系統(tǒng)設計和應用的理解。</p><p><b>  三、課程設計題目</b></p><p>  

4、多功能數(shù)字電子鐘設計</p><p>  四、課程設計內容及要求</p><p><b>  1、設計內容:</b></p><p><b>  1)有上電指示燈;</b></p><p>  2)能正確手動復位;</p><p>  3)有4位數(shù)碼管顯示,能按照分秒進制顯示

5、時間;</p><p>  4)自定義的擴展功能。</p><p><b>  2、設計要求:</b></p><p>  1)獨立設計原理圖及相應的硬件電路。</p><p>  2)針對選擇的設計題目,設計系統(tǒng)軟件。軟件要做到:操作方便,實用性強,穩(wěn)定可靠。</p><p>  3)設計說明書

6、格式規(guī)范,層次合理,重點突出。并附上設計原理圖及相應的源程序。</p><p><b>  五、電路工作原理</b></p><p><b>  設計思路</b></p><p>  單片機的接口信號是數(shù)字信號。要想用單片機獲取時間這類非電信號的信息,必須使用時間芯片,將時間信息轉換為電流或電壓輸出。如果轉換后的電流或電壓

7、輸出是模擬信號,還必須進行A/D轉換,以滿足單片機接口的需要。如果是數(shù)字信號就可以直接送往單片機進行數(shù)據(jù)處理。</p><p>  在傳統(tǒng)的基于單片機的數(shù)字時鐘設計的基礎上經(jīng)過一些改進,引入12887時間芯片,將電路的控制部分和計時部分分開,電路的控制部分為單片機,計時部分為12887時間芯片。12887芯片是獨立計時,并且具有掉電保護功能,內部自帶鋰電池,能夠在斷電的情況下繼續(xù)計時,主電路恢復供電之后能夠不必調

8、整時間,為時鐘的日常操作省去了很大的麻煩,而且這種設計更節(jié)能,在需要觀察時間的時候比如白天就可以給主電路通電。而在夜晚不需要觀察時鐘的時候就可以給主電路斷電,這樣可以節(jié)約大量能量。</p><p>  時間芯片12887采用了內部集成晶振的電路,并且具有內部溫漂補償電路設計。能夠準確計時,提供精確的時間,這樣就簡化了電路的器件選擇,另外也使程序的設計更加簡潔。在硬件設計方面,由于只增加了一個12887時間芯片,因

9、此并不是特別復雜,而且這種獨立計時的設計使得產(chǎn)品排故更加方便。</p><p>  采用LCD液晶顯示器顯示。而LCD液晶顯示則耗能少,能夠顯示年、月、日、星期等漢字,在顯示方面更加靈活,而且改變顯示時只要改變軟件設計就可以,不用改變硬件電路的設計,易于電路的功能擴展。電路的軟件設計也很簡單。另外,這種設計硬件更加簡潔。采用LCD液晶顯示方案的缺點是在顯示位數(shù)比較少時,價格略顯昂貴。</p><

10、;p>  綜上所述,本設計采用獨立計時, 主控芯片使用51系列STC89C52單片機,時鐘芯片使用美國DALLAS公司推出的一種高性能、低功耗、帶RAM和內置電池的實時時鐘DS12887。采用DS12887作為主要計時芯片,可以做到計時準確。更重要的是,DS12887可以在外部電源斷電的情況下繼續(xù)計時,在沒有外部供電的情況下,DS12887可以連續(xù)計時10年以上。系統(tǒng)由主控制器STC89C52、時鐘芯片DS12887、LCD液晶顯

11、示電路、鍵盤掃描電路和通信系統(tǒng)模塊電路組成。系統(tǒng)硬件設計框圖如圖2-1所示。</p><p>  圖2-1 系統(tǒng)硬件設計框圖</p><p>  單片機STC89C52</p><p>  STC89C52 是低電壓,高性能 CMOS 8 位單片機,片內含 8k bytes 的可反復擦寫的Flash只讀程序存儲器和256 bytes 的隨機存取數(shù)據(jù)存儲器(RAM),

12、器件采用高密度、非易失性存儲技術生產(chǎn),與標準 MCS-51 指令系統(tǒng)及8052產(chǎn)品引腳兼容,片內置通用8位中央處理器(CPU)和 Flash 存儲單元,功能強大 STC89C52 單片機適合于許多較為復雜控制應用場合。STC89C52單片機為40引腳雙列直插芯片,有四個I/O口P0、P1、P2、P3,每一條I/O線都能獨立地作輸出或輸入。STC89C52 PDIP管腳封裝,如圖2-2所示。</p><p>  圖

13、2-2 STC89C52 PDIP管腳封裝</p><p>  STC89c52包含以下部分,其結構圖如圖2-3所示</p><p>  圖2-3 STC89c52內部結構圖</p><p> ?。?)一個8位微處理器CPU</p><p> ?。?)片內數(shù)據(jù)存儲器RAM和特殊功能寄存器SFR</p><p>  

14、(3)片內程序存儲器ROM</p><p> ?。?)兩個定時/計數(shù)器T0、T1,可用作定時器,也可用以對外部脈沖進行計 數(shù)</p><p> ?。?)四個8位可編程的并行I/O端口,每個端口既可作輸入,也可作輸出</p><p> ?。?)一個串行端口,用于數(shù)據(jù)的串行通信</p><p><b> ?。?)中斷控制系統(tǒng)</b

15、></p><p><b> ?。?)內部時鐘電路</b></p><p>  功能特性概述:STC89C52 提供以下標準功能:8k字節(jié) Flash 閃速存儲器,256字節(jié)內部 RAM,32 個 I/O 口線,3 個 16 位定時/計數(shù)器,一個 6 向量兩級中斷結構,一個全雙工串行通信口,片內振蕩器及時鐘電路。同時,STC89C52 可降至 0Hz的靜態(tài)邏輯操

16、作,并支持兩種軟件可選的節(jié)電工作模式。空閑方式停止 CPU 的工作,但允許 RAM,定時/計數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存 RAM 中的內容,但振蕩器停止工作并禁止其它所有部件工作直到下一個硬件復位。</p><p>  單片機STC89C52的P0口作為輸入口。P0與DS12887的AD相連,進行時間圖2-3數(shù)據(jù)的采集;P3.7(RD)與DS12887的17腳DS相連,P3.3與DS12887

17、的19腳IRQ相連,P2.7與DS12887的13腳CS相連;30腳ALE與DS12887的14腳AS相連。單片機的第18引腳和19引腳接時鐘電路,XTAL1接外部晶振和微調電容的一端,XTAL2接外部晶振和微調電容的另一端。對外接電容的值雖然沒</p><p>  圖2-4 主控電路及其最小系統(tǒng)電路圖</p><p>  有嚴格的要求,但電容的大小會影響震蕩器頻率的高低、震蕩器的穩(wěn)定性

18、、起振的快速性和溫度的穩(wěn)定性。因此,此系統(tǒng)電路的晶體振蕩器的值為11.0592MHz,電容應盡可能的選擇陶瓷電容,電容值約為22μF。第9引腳為復位輸入端,接上電容,電阻后構成上電復位電路。20引腳為接地端,40引腳為電源端。/EA端(31引腳)接+5V電壓。由此就構成了單片機主控模塊的最小系統(tǒng),如圖2-4所示。</p><p>  DS12887時鐘芯片簡介</p><p>  DS12

19、887是美國DALLAS公司生產(chǎn)的時鐘日歷芯片,具有24個引腳。DS12887和MC146818B及DS1287管腳兼容。內部自帶鋰電池,在沒有外部電源的情況下可工作十年。它有內部集成晶振??捎嬎愕?100年前的時、分、秒、星期、日、月、年七種日歷信息,并帶閏年補償。用2進制或BCD碼代表日歷或鬧鐘信息??蛇x用夏令時模式??梢赃x用MOTOROLA和INTEL兩種總線模式。它采用數(shù)據(jù)地址總線復用模式。內鍵128字節(jié)RAM,這128字節(jié)RA

20、M中前14字節(jié)是時鐘控制寄存器。其余為通用RAM。它可以輸出可編程方波。它可以產(chǎn)生3種可編程中斷;一,時間中斷,可產(chǎn)生每秒一次直到每天一次中斷;二,周期性中斷,可產(chǎn)生122ms到500ms周期性中斷;三,時間更新結束中斷。DS12887有24個引腳,其引腳如圖2-5所示。</p><p>  圖2-5DS12887引腳圖</p><p>  MOT是總線類型選擇管腳,當此腳接在VCC上時選

21、擇MOTOROLA總線方式,如果此腳接在電源地上或者不接時選擇的是INTEL總線模式。</p><p>  AD0-AD7是數(shù)據(jù)復用總線。</p><p><b>  GND是電源地。</b></p><p><b>  CS是片選信號。</b></p><p>  AS是ALE信號管教。</

22、p><p>  R/W在INTEL總線模式下是WR。</p><p>  DS在INTEL總線模式下是RD,當它有效時表示DS12887正在往總線輸出數(shù)據(jù)。RD信號在貯存器芯片上被稱為OE信號線。</p><p>  RESET是復位信號,復位信號對日歷、時間、RAM無效,系統(tǒng)上電時,復位信號要保持200ms以上DS12887芯片才能正常工作。當復位引腳電平為低并且VC

23、C高于4.5V時,以下情況發(fā)生。周期中斷允許位清零,鬧鐘中斷允許位清零,更新完成中斷標志位清零,中斷請求狀態(tài)標志位清零,周期中斷標志位清零,DS12887不可以操作,鬧鐘中斷標志位清零,IRQ呈高阻狀態(tài),方波輸出允許位清零,更新完成中斷允許位清零。</p><p>  IRQ是中斷請求輸出,當中斷狀態(tài)位和中斷允許位有效時,IRQ保持低電平。復位和讀C寄存器都可以清除中斷信號。沒有中斷時IRQ保持高阻狀態(tài),其它中斷

24、源還可以接到中斷上。另外由于IRQ是漏極輸出,因此需要外接上拉電阻。</p><p>  SQW是方波輸出引腳,當電源電壓低于4.25V時此腳沒有作用。</p><p><b>  VCC是電源引腳。</b></p><p><b>  NC是空引腳。</b></p><p>  DS12887由晶

25、振,周期中斷/方波選擇器,方波輸出,寄存器ABCD,時鐘/日歷/鬧鐘RAM,114字節(jié)通用RAM,BCD/二進制數(shù)碼累加器,時鐘/日歷更新,總線選擇,電源開關和寫保護這些部分組成。當VCC高于4.25V 200ms之后,芯片可以被外部程序操作。當VCC低于4.25V時,芯片處于寫保護狀態(tài),所有的輸入均無效,同時所有輸出呈高阻狀態(tài),當VCC低于3V時,DS12887自動將供電方式改為由內部電池供電。</p><p>

26、;  DS12887地址包括114字節(jié)通用RAM,10字節(jié)用于記錄時間,日歷,鬧鐘信息的RAM和4字節(jié)的控制、狀態(tài)RAM.所有的字節(jié)都可以在除以下的情況下直接讀寫。1,寄存器C、D為只讀,寄存器A的第七位為只讀,秒字節(jié)的高位為只讀。</p><p>  時間,日歷,鬧鐘的信息所在的寄存器的詳細分布圖如表2-1所示</p><p>  表2-1,時間,日歷,鬧鐘寄存器地址分布表</p&

27、gt;<p>  控制、狀態(tài)寄存器及其功能描述:</p><p><b>  寄存器 A </b></p><p>  UIP:更新進行標志。</p><p>  DV2- DV0:為 010 時晶振工作,其他組合停止。</p><p>  RS3- RS0:頻率選擇。</p><p&g

28、t;<b>  寄存器B</b></p><p>  SET:為 1 時禁止更新。為 0 時正常。</p><p>  PIE:為 1 時周期中斷允許。</p><p>  AIE:為 1 時警報中斷允許。</p><p>  UIE:為 1 時更新結束中斷允許。</p><p>  SQWE:為

29、 1 時方波輸出允許。</p><p>  DM:為 0 時時間為 BCD 碼,為 1 時為二進制。</p><p>  24/12:為 1 時是 24 小時進制。為 0 時是 12 小時進制。</p><p><b>  DSE:置 0。</b></p><p><b>  寄存器C</b><

30、;/p><p>  IRQF:中斷申請標志。</p><p>  PF:周期中斷標志。</p><p>  AF:警報中斷標志。</p><p>  UF:更新結束中斷標志。</p><p><b>  寄存器D</b></p><p>  VRT:為 0 時表示內部鋰電池耗盡

31、。</p><p><b>  時鐘模塊</b></p><p>  時鐘模塊DS12887的AD口與單片機的P0口相連,進行時間、日歷數(shù)據(jù)輸出。其它各功能端口的連接在主控電路中已有描述,不在贅述。另外DS12887的12腳與電源地相連,24腳與電源相連??偩€選擇端口MOT端與電源地相連。電路圖如圖2-8所示。</p><p>  圖2-8

32、時鐘模塊電路</p><p><b>  按鍵電路的設計</b></p><p>  根據(jù)設計要求,系統(tǒng)的按鍵電路用4個按鍵和一個撥碼開關就可以進行對時間的調整,按鍵就采用最簡單的點動式按鈕,由單片機的I/O進行掃描,來實現(xiàn)掃描按鍵功能。其中,時間調整按鈕與單片機STC89C52的P3.5相連,其功能是當按下此鍵時,開始調整年、月、日、星期、時、分、秒,沒按一次就改變

33、一個相應的要改變的位;鬧鐘調整按鈕與單片機STC89C52的P3.4相連,其功能是當按下此鍵時開始進行鬧鐘調整,并且每按一次就改變一次要調整的位;加法按鈕與單片機STC89C52的P2.5連,其功能是每按一次此鍵就將相應的要改變的位的數(shù)值加一;減法按鈕與單片機STC89C52的P2.6連,其功能是每按下一次此鍵就將要改變的位的數(shù)值減一;近遠程選擇按鈕與STC89C52的P2.4相連。電路圖如圖2-9所示。</p><

34、p>  圖2-9 按鍵電路</p><p>  圖形點陣液晶顯示器12864簡介</p><p>  點陣LCD的顯示原理:在數(shù)字電路中,所有的數(shù)據(jù)都是以0和1保存的,對LCD控制器進行不同的數(shù)據(jù)操作,可以得到不同的結果。對于顯示英文操作,由于英文字母種類很少,只需要8位(一字節(jié))即可。而對于中文,常用卻有6000以上,于是我們的DOS前輩想了一個辦法,就是將ASCII表的高128

35、個很少用到的數(shù)值以兩個為一組來表示漢字,即漢字的內碼。而剩下的低128位則留給英文字符使用,即英文的內碼[15]。</p><p>  那么,得到了漢字的內碼后,還僅是一組數(shù)字,那又如何在屏幕上去顯示呢?這就涉及到文字的字模,字模雖然也是一組數(shù)字,但它的意義卻與數(shù)字的意義有了根本的變化,它是用數(shù)字的各位信息來記載英文或漢字的形狀。</p><p>  12864是一種圖形點陣液晶顯示器,它

36、主要由行驅動器/列驅動器及128×64全點陣液晶顯示器組成??赏瓿蓤D形顯示,也可以顯示8×4個(16×16點陣)漢字。</p><p>  12864LCD的引腳說明如表2-2所示。</p><p>  表2-2 液晶模塊12864的管腳說明</p><p>  液晶顯示模塊的特殊寄存器說明:</p><p>

37、  在使用12864LCD前先必須了解以下功能器件才能進行編程。12864內部功能器件及相關功能如下:</p><p><b>  指令寄存器(IR)</b></p><p>  IR是用于寄存指令碼,與數(shù)據(jù)寄存器數(shù)據(jù)相對應。當D/I=0時,在E信號下降沿的作用下,指令碼寫入IR。</p><p>  2.數(shù)據(jù)寄存器(DR)</p>

38、<p>  DR是用于寄存數(shù)據(jù)的,與指令寄存器寄存指令相對應。當D/I=1時,在下降沿作用下,圖形顯示數(shù)據(jù)寫入DR,或在E信號高電平作用下由DR讀到DB7∽DB0數(shù)據(jù)總線。DR和DDRAM之間的數(shù)據(jù)傳輸是模塊內部自動執(zhí)行的。</p><p><b>  3.忙標志:BF</b></p><p>  BF標志提供內部工作情況。BF=1表示模塊在內部操作,此

39、時模塊不接受外部指令和數(shù)據(jù)。BF=0時,模塊為準備狀態(tài),隨時可接受外部指令和數(shù)據(jù)。</p><p>  利用STATUS READ指令,可以將BF讀到DB7總線,從檢驗模塊之工作狀態(tài)。</p><p>  4.顯示控制觸發(fā)器DFF</p><p>  此觸發(fā)器是用于模塊屏幕顯示開和關的控制。DFF=1為開顯示(DISPLAY OFF),DDRAM的內容就顯示在屏幕上

40、,DFF=0為關顯示(DISPLAY OFF)。</p><p>  DDF的狀態(tài)是指令DISPLAY ON/OFF和RST信號控制的。</p><p><b>  5.XY地址計數(shù)器</b></p><p>  XY地址計數(shù)器是一個9位計數(shù)器。高3位是X地址計數(shù)器,低6位為Y地址計數(shù)器,XY地址計數(shù)器實際上是作為DDRAM的地址指針,X地址計

41、數(shù)器為DDRAM的頁指針,Y地址計數(shù)器為DDRAM的Y地址指針。</p><p>  X地址計數(shù)器是沒有記數(shù)功能的,只能用指令設置。</p><p>  Y地址計數(shù)器具有循環(huán)記數(shù)功能,各顯示數(shù)據(jù)寫入后,Y地址自動加1,Y地址指針從0到63。</p><p>  6.顯示數(shù)據(jù)RAM(DDRAM)</p><p>  DDRAM是存儲圖形顯示數(shù)據(jù)

42、的。數(shù)據(jù)為1表示顯示選擇,數(shù)據(jù)為0表示顯示非選擇。DDRAM與地址和顯示位置的關系見DDRAM地址表。</p><p><b>  7.Z地址計數(shù)器</b></p><p>  Z地址計數(shù)器是一個6位計數(shù)器,此計數(shù)器具備循環(huán)記數(shù)功能,它是用于顯示行掃描同步。當一行掃描完成,此地址計數(shù)器自動加1,指向下一行掃描數(shù)據(jù),RST復位后Z地址計數(shù)器為0。</p>

43、<p>  Z地址計數(shù)器可以用指令DISPLAY START LINE預置。因此,顯示屏幕的起始行就由此指令控制,即DDRAM的數(shù)據(jù)從哪一行開始顯示在屏幕的第一行。此模塊的DDRAM共64行,屏幕可以循環(huán)滾動顯示64行。</p><p><b>  8. 字符顯示</b></p><p>  FYD12864-0402B每屏可顯示4行8列共32個16

44、5;16點陣的漢字,每個顯示RAM可顯示1個中文字符或2個16×8點陣全高ASCII碼字符,即每屏最多可實現(xiàn)32個中文字符或64個ASCII碼字符的顯示。FYD12864-0402B內部提供128×2字節(jié)的字符顯示RAM緩沖區(qū)(DDRAM)。字符顯示是通過將字符顯示編碼寫入該字符顯示RAM實現(xiàn)的。根據(jù)寫入內容的不同,可分別在液晶屏上顯示CGROM(中文字庫)、HCGROM(ASCII碼字庫)及CGRAM(自定義字形)

45、的內容。三種不同字符/字型的選擇編碼范圍為:0000~0006H(其代碼分別是0000、0002、0004、0006共4個)顯示自定義字型,02H~7FH顯示半寬ASCII碼字符,A1A0H~F7FFH顯示8192種GB2312中文字庫字形。字符顯示RAM在液晶模塊中的地址80H~9FH。字符顯示的RAM的地址與32個字符顯示區(qū)域有著一一對應的關系,其對應關系如表2-3所示。</p><p>  表2-3 字符

46、顯示RAM在液晶模塊中的地址表</p><p><b>  顯示模塊電路</b></p><p>  顯示模塊電路如圖2-10所示,液晶模塊的1管腳接電源地,15管腳用于接電源地,19管腳用于接電源地。2管腳接電源給液晶顯示器供電,3管腳接電源用于提供液晶顯示器顯示驅動電壓,17管腳接電源,20管腳接電源用與提供背景光。4管腳接單片機的P1.3用于接收數(shù)據(jù)或者指令,5

47、管腳接單片機的P1.4選擇數(shù)據(jù)被讀寫到什么位置,6管腳接單片機的P1.5用于提供鎖存信號。</p><p>  圖2-10 顯示模塊</p><p>  六、系統(tǒng)軟件設計框圖</p><p>  軟件是系統(tǒng)的主要組成部分,也是整個調試的重點和難點工作。本設計采用了匯編語言,因為匯編語言更接近機器語言,可以直接存取寄存器和I/O,編寫的代碼可以非常精確的被執(zhí)行,可以

48、編寫出比一般編譯系統(tǒng)高效的代碼,可以作為不同語言或不同標準的接口。因此,依據(jù)課題設計的要求,采用匯編語言進行軟件編程,用模塊化程序設計思想,將軟件劃分成若干模塊單元;包括:DS12887時鐘顯示模塊、延時等模塊,鍵盤掃描子程序,按鍵處理子程序模塊,通信中斷子程序,</p><p>  主程序的主要功能是顯示日期時間信息。在主程序中,系統(tǒng)上電自動復位以后首先進行系統(tǒng)的液晶顯示、時鐘芯片DS12887初始化,然后讀寫

49、日期、時間等信息,待數(shù)據(jù)讀寫結束后顯示時鐘。主程序流程如圖3-1所示。</p><p>  圖3-1 主程序流程圖</p><p>  主程序說明,當主程序運行時,先將液晶顯示器清屏,然后將單片機和時鐘日歷芯片DS12887初始化,即將時鐘的初始時間設定為2005年月日</p><p>  首先對時鐘芯片DS12887初始化,經(jīng)過對狀態(tài)寄存器判斷之后,對DS128

50、87進行讀操作,讀操作時利用時鐘日歷地址相鄰的特點,直接使地址增加,隨后判斷數(shù)據(jù)是否讀完了。若讀完了,則返回主程序;若沒有讀完,則繼續(xù)增加地址,直到讀數(shù)據(jù)完成為止。如圖3-2所示。</p><p>  圖3-2 DS12887時鐘芯片的讀操作流程圖</p><p>  本設計用的液晶模塊是12864液晶模塊,這個模塊可以進行串口通信也可以進行并口通信,由于單片機口線限制,在這里采用了串口設

51、計思路。本設計采用了分屏顯示的原理,在時間顯示時顯示屏一,在時間調整時顯示屏二,其流程圖分別如圖3-3、3-4所示。</p><p>  圖3-3 時間顯示,屏一顯示流程圖</p><p>  在屏一顯示流程圖中,顯示設置液晶顯示設置為全屏顯示,顯示界面沒有光標顯示,年月日的顯示從第二行第一個字符開始,時分秒的顯示從第三行第一個字符開始。</p><p>  圖3-

52、4 時間調整顯示,屏二顯示流程圖</p><p>  在顯示屏二時應先判斷是否有調整時間的請求,如果有時間調整的要求即有按鍵按下則顯示此屏,顯示此屏時先進行顯示設置,因為要調整時間因此要用光標表示出要調整的位,因此顯示設置中要調整出光標,調整時間時先調出當前時間,從當前時間開始調整,然后判斷按鍵,根據(jù)按鍵來調整時間,調整完成之后再返回時間顯示即顯示屏一。</p><p>  按鍵調整程序模

53、塊是用來調整時間的,當P3.4按鍵按下時進入時間調整界面,再按P3.4就會依次改變要調整的參量,依次調整的參量為年、月、日、時、分、秒。當選擇好了要調整的位后再按P3.5就會實現(xiàn)相應位的加一操作,按P2.6就會實現(xiàn)相應位的減一操作。當調整完畢之后,再按P3.4鍵就會返回時間顯示界面,從剛才調整好的時間開始顯示、計時。其流程圖如圖3-5所示</p><p>  圖3-5 按鍵調整模塊流程圖</p>

54、<p><b>  七、心得體會</b></p><p>  1、本文的主要工作和成果</p><p>  系統(tǒng)采用了以廣泛使用的單片機STC89C52為核心,配合時鐘芯片DS12887,并采用LCD顯示電路,鍵盤掃描電路所設計的一款可以進行遠程調控的時鐘電路。主要工作和成果如下:</p><p>  (1)介紹基于單片機的時鐘電路的

55、設計方法,并對基于單片機的時鐘的應用進行了初步探討。</p><p> ?。?)介紹了時鐘芯片DS12887的基本原理、特性及使用方法。對單片機軟硬件資源和接口擴展都有了深入的學習。</p><p> ?。?)在系統(tǒng)的軟件仿真調試中,運用了PROTEL、WAVE等軟件;學習了他們的基本操作,掌握了程序的編譯過程、電路圖的繪制過程。</p><p>  2、課題設計中

56、不足及其展望</p><p>  本設計重點研究實現(xiàn)了基于單片機與時鐘芯片這種模式的時鐘,從原理上對單片機和時鐘芯片有了深一步的認識。但是,時鐘除了能夠顯示基本日期時間功能外,還可以顯示、設置鬧鐘并可在工業(yè)測量控制系統(tǒng)中起到定時、監(jiān)控作用,以及對某些影像數(shù)據(jù)的實時記錄功能等。所以說,實時時鐘在工農業(yè)的監(jiān)控中,它能發(fā)揮的作用會更多更大!它的這些功能還沒有完善,希望以后有機會可繼續(xù)完善其相應的功能。 </p&g

57、t;<p>  在基于單片機的數(shù)字時鐘電路設計過程中,我學到了很多重要的東西,其中最重要的是如何將實踐和理論相聯(lián)系,怎樣將我所學到的知識運用到我以后的工作中去。大學的課堂的學習只是在給我們灌輸專業(yè)知識,而我們應把所學的用到我們現(xiàn)實的生活中去,此次的時鐘設計給我奠定了一個實踐基礎。</p><p>  這次課程設計為使我得到了很大收獲:不僅學到了許多了關于單片機方面的知識,熟悉了與單片機相關的兩款軟件

58、WAVE和STC-ISP V35,提高了實驗技能;而且也使我的動手能力和電路設計能力得到了極大的提高。在此次設計中,我的難點是程序的調試,由于以前僅僅學了一點匯編語言的皮毛,所以編一個完整的程序很是吃力!但是經(jīng)過這一段時間的學習,我還是解決了一些問題。軟件調試中也出現(xiàn)了一些問題,就是程序在編譯中仿真器的設置出現(xiàn)了錯誤,從而使系統(tǒng)的編譯通不過,給系統(tǒng)的調試帶來了極大的不便,所以對軟件的使用還須更進一步的熟練掌握。由于時間比較倉促,我只能做

59、到達到現(xiàn)在這樣的水平;其他的希望以后的工作中,再做深刻地研究。</p><p><b>  附錄A:電路原理圖</b></p><p><b>  附錄B:程序清單</b></p><p><b>  //主程序</b></p><p><b>  ORG0000H

60、</b></p><p><b>  AJMPMAIN</b></p><p><b>  ORG000BH</b></p><p><b>  AJMPTZP</b></p><p><b>  ORG0030H</b></p&

61、gt;<p>  MAIN:MOVSP,#60H</p><p>  MOVR4,#00H</p><p>  MOVTMOD,#02h</p><p>  MOVTH0,#06H</p><p>  MOVTL0,#06H</p><p><b>  SETBEA</b&g

62、t;</p><p><b>  SETBET0</b></p><p><b>  SETBTR0</b></p><p><b>  //初始化</b></p><p><b>  MOVR2,#3</b></p><p>

63、;  MOVR1,#30H</p><p>  LOOP:MOV@R1,#00H</p><p><b>  INCR1</b></p><p>  DJNZR2,LOOP</p><p>  LCALLRINGPI</p><p><b>  //</b><

64、;/p><p>  LOOP2:MOVR2,#6</p><p>  MOVR1,#30H</p><p>  LCALLDPZP</p><p><b>  //開啟節(jié)能功能</b></p><p>  JBP1.0,XWJN</p><p>  JBP

65、1.0,$</p><p><b>  //</b></p><p><b>  // 鬧鐘設置入口</b></p><p>  ZWJN:JBP1.1,XPP1</p><p>  LCALLRINGP</p><p>  LCALLRELAY</p>

66、<p><b>  //</b></p><p><b>  //調時入口</b></p><p>  XPP1:JBP1.3,XPP2</p><p>  LCALLZPP1</p><p>  XPP2:JBP1.2,ZPP</p><p> 

67、 LCALLZPP2</p><p>  ZPP:AJMPLOOP2//</p><p>  //定時器0中斷</p><p>  TZP:PUSH00H</p><p><b>  PUSH03H</b></p><p>  INC R4 // 軟件-硬件延時1秒

68、</p><p>  CJNER4,#40,ENDI</p><p>  MOVR4,#0</p><p><b>  INCR5</b></p><p>  CJNER5,#100,ENDI //結束</p><p><b>  MOVR5,#0</b>&l

69、t;/p><p>  ZP:MOVR0,#30H</p><p><b>  MOVR3,#3</b></p><p>  MOVDPTR,#TCOUNT</p><p>  LCALLTTZP</p><p>  LCALLRING</p><p>  ENDI

70、:POP03H</p><p><b>  POP00H</b></p><p><b>  RETI</b></p><p>  //定時器0中斷返回</p><p><b>  //軟中斷1</b></p><p>  ZPP1:MOV

71、A,31H</p><p><b>  ADDA,#1</b></p><p><b>  DA A</b></p><p><b>  MOV31H,A</b></p><p>  CJNEA,#60H,END1</p><p>  MOV

72、31H,#00H</p><p>  END1:LCALLRELAY</p><p><b>  RET</b></p><p><b>  //</b></p><p><b>  //軟中斷2</b></p><p>  ZPP2:MOV

73、A,32H</p><p><b>  ADDA,#1</b></p><p><b>  DAA</b></p><p><b>  MOV32H,A</b></p><p>  CJNEA,#24H,END2</p><p>  MOV3

74、2H,#00H</p><p>  END2:LCALLRELAY</p><p><b>  RET</b></p><p><b>  //</b></p><p><b>  //延時顯示程序</b></p><p>  RELAY:MOV

75、R6,#255</p><p>  REP:MOVR7,#4</p><p>  REEE:MOVR2,#6</p><p>  MOVR1,#30H</p><p>  LCALLDPZP</p><p>  DJNZR7,REEE</p><p>  DJNZR6,R

76、EP</p><p><b>  RET</b></p><p>  //延時顯示程序結束</p><p><b>  //顯示子程序</b></p><p>  DPZP:MOVP0,#0FFH // 顯示橫杠</p><p>  MOVP2,#0DBH&l

77、t;/p><p>  MOVP0,#0BFH // END</p><p>  DPZP1:MOVP0,#0FFH</p><p>  MOVDPTR,#CHART //P3part</p><p>  MOVA,R2</p><p>  MOVCA,@A+DPTR</p>&l

78、t;p>  MOVP2,A //</p><p>  MOVDPTR,#LED</p><p>  MOVA,@R1</p><p>  JNBF0,DPZPS</p><p><b>  INCR1 </b></p><p><b>  SWAPA<

79、/b></p><p>  DPZPS:ANLA,#0FH</p><p>  MOVCA,@A+DPTR</p><p><b>  MOVP0,A</b></p><p><b>  CPLF0</b></p><p>  DJNZR2,DPZP1

80、</p><p><b>  RET</b></p><p><b>  //顯示子程序結束</b></p><p>  //不規(guī)則循環(huán)加一子程序</p><p>  TTZP:MOVA,@R0</p><p><b>  ADDA,#1</b>

81、;</p><p><b>  DAA</b></p><p>  MOV@R0,A</p><p><b>  MOVA,R3</b></p><p>  MOVCA,@A+DPTR</p><p><b>  CLRC</b><

82、;/p><p>  SUBBA,@R0</p><p>  JNCRTTZP</p><p>  MOV@R0,#0</p><p><b>  INCR0</b></p><p>  DJNZR3,TTZP</p><p>  RTTZP:RET</

83、p><p><b>  //響鈴程序</b></p><p>  RING:MOVR0,#34H</p><p>  MOV24H,#6</p><p>  RRING:MOVA,31H</p><p>  SUBBA,@R0</p><p>  JNZER

84、ING</p><p><b>  INCR0</b></p><p>  MOVA,32H</p><p>  SUBBA,@R0</p><p><b>  DECR0</b></p><p>  JNZERING</p><p>

85、;<b>  CPLP1.7</b></p><p><b>  RET</b></p><p>  ERING:MOVA,R0</p><p><b>  ADDA,#3</b></p><p><b>  MOVR0,A</b><

86、;/p><p>  DJNZ24H,RRING</p><p><b>  SETBP2.1</b></p><p><b>  RET</b></p><p><b>  //</b></p><p><b>  //鬧鐘調整程序<

87、/b></p><p>  RINGP: MOV20H,#33H</p><p>  MOV21H,#6</p><p>  MOVR3,#20</p><p>  MOV22H,#5</p><p>  LPRP:LCALLRELAY1</p><p>  JB

88、P1.1,LPRP1</p><p>  MOVR3,#20</p><p>  MOVA,20H</p><p><b>  ADDA,#3</b></p><p>  MOV20H,A</p><p>  DJNZ22H,LPRP</p><p>&

89、lt;b>  RET</b></p><p>  LPRP1:JBP1.3,LPRP2</p><p>  MOVR3,#20H</p><p><b>  MOVA,20H</b></p><p><b>  ADDA,#1</b></p><p

90、><b>  MOVR0,A</b></p><p><b>  MOVA,@R0</b></p><p><b>  ADDA,#1</b></p><p><b>  MOV@R0,A</b></p><p><b>  DA

91、A</b></p><p>  CJNEA,#60H,LPRP21</p><p>  MOV@R0,#00H</p><p>  LPRP21:LCALLRELAY1</p><p>  LPRP2:JBP1.2,LPRP3</p><p>  MOVR3,#20H</p>

92、;<p><b>  MOVA,20H</b></p><p><b>  ADDA,#2</b></p><p><b>  MOVR0,A</b></p><p><b>  MOVA,@R0</b></p><p><b&

93、gt;  ADDA,#1</b></p><p><b>  DAA</b></p><p><b>  MOV@R0,A</b></p><p>  CJNEA,#24H,LPRP31</p><p>  MOV@R0,#00H</p><p> 

94、 LPRP31:LCALLRELAY1</p><p>  LPRP3:DJNZR3,LPRP</p><p>  LPRPEND:RET</p><p><b>  //</b></p><p>  //鬧鐘組初始化程序(共5組)</p><p>  RINGPI:MOVR2,

95、#5</p><p>  MOVR1,#41H</p><p>  LPRPI:MOV@R1,#00H</p><p><b>  DECR1</b></p><p>  MOV@R1,#00H</p><p><b>  DECR1</b></p

96、><p>  MOVA,#00H</p><p>  ORLA,#0A0H</p><p><b>  ADDA,R2</b></p><p>  MOV@R1,A</p><p><b>  DECR1</b></p><p>  D

97、JNZR2,LPRPI</p><p><b>  RET</b></p><p><b>  //</b></p><p><b>  //延時顯示程序1</b></p><p>  RELAY1:MOVR6,#255</p><p>  REP

98、1:MOVR7,#4</p><p>  REEE1:MOVR2,21H</p><p>  MOVR1,20H</p><p>  LCALLDPZP</p><p>  DJNZR7,REEE1</p><p>  DJNZR6,REP1</p><p><b&g

99、t;  RET</b></p><p>  //延時顯示程序結束</p><p><b>  //數(shù)據(jù)表</b></p><p>  LED:DB0c0H,0f9H,0a4H,0b0H,099H,092H,82H,0f8H,80H,90H,8EH,0A8H//0,1,2,3,4,5,6,7,8,9,F,n</p>

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論