




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、摘要本課程設(shè)計(jì)介紹了多功能數(shù)字鐘的系統(tǒng)設(shè)計(jì)。系統(tǒng)具有時(shí)間設(shè)置及顯示、鬧鐘等功能。系統(tǒng)以AT89S52為核心,主要進(jìn)行基于AT89S52低功耗MCU的字符型數(shù)字鐘及其系統(tǒng)的研究。系統(tǒng)帶有液晶顯示器,配合按鍵提供友好的用戶界面,操作簡(jiǎn)單,該數(shù)字鐘能長(zhǎng)期、連續(xù)、可靠、穩(wěn)定的工作。系統(tǒng)軟件設(shè)計(jì)包括單片機(jī)計(jì)算機(jī)兩部分的編程。計(jì)算機(jī)軟件編程主要實(shí)現(xiàn)參數(shù)設(shè)置、串行口數(shù)據(jù)接收、指令發(fā)送以及數(shù)據(jù)的顯示和存儲(chǔ)。單片機(jī)軟件編程主要實(shí)現(xiàn)鍵盤(pán)、液晶顯示等各模塊的功能,采用匯編語(yǔ)言編程。關(guān)鍵詞數(shù)字鐘;單片機(jī);液晶顯示ABSTRACTThis paper describes the design of a multi-fu
2、nctiond digital clock system.It as displaying and setting time for clock.The core part of the system is based on a king of advanced MCU,AT89S52,this system mainly carries on low power consume MCU the character list type the research of the digital clock and its system according to the AT89 S52.The s
3、ystem takes liquid crystal display,matching with a key to provide amity of customer interface,the operation is simple.consecution,credibility,stable work;Still have a physical volume in the meantime small,the power consume a low etc.characteristics,easy to take,the usage convenience.Single lice the
4、machine software plait distance,LCD manifestation,adoption the Compilation language plait distance.Key words digital clock;Single-chip Microcomputer;LCD目錄1設(shè)計(jì)任務(wù)及要求 (31.1設(shè)計(jì)任務(wù) (31.2功能要求 (31.3總體方案及工作原理 (32硬件系統(tǒng)的設(shè)計(jì) (42.1硬件系統(tǒng)的模塊 (42.2系統(tǒng)的原理圖及PCB (72.3數(shù)字電子鐘的原件清單 (73軟件系統(tǒng)的設(shè)計(jì) (83.1單片機(jī)資源使用情況 (83.2軟件系統(tǒng)的模塊 (83.3程序
5、流程圖 (103.4程序清單 (134仿真測(cè)試及結(jié)果 (254.1設(shè)計(jì)結(jié)論及使用說(shuō)明 (254.2仿真結(jié)果 (264.3誤差分析 (284.4設(shè)計(jì)體會(huì) (284.5教學(xué)建議 (29參考文獻(xiàn) (30致謝 (31附錄 (321設(shè)計(jì)任務(wù)及要求我們的生活離不開(kāi)時(shí)間,可以說(shuō)時(shí)鐘就是我們生存的一部分。此次設(shè)計(jì)數(shù)字鐘就是為了了解數(shù)字鐘的原理,從而學(xué)會(huì)制作數(shù)字鐘。本次課程設(shè)計(jì)通過(guò)理論設(shè)計(jì)和實(shí)物制作解決相應(yīng)的實(shí)際問(wèn)題,鞏固和運(yùn)用在單片機(jī)技術(shù)中所學(xué)的理論知識(shí)和實(shí)驗(yàn)技能,掌握單片機(jī)應(yīng)用系統(tǒng)的一般設(shè)計(jì)方法,提高設(shè)計(jì)能力和實(shí)踐動(dòng)手能力,為以后從事電子電路設(shè)計(jì)、研發(fā)電子產(chǎn)品打下良好的基礎(chǔ)。設(shè)計(jì)一個(gè)具有特定功能的電子鐘,該
6、電子鐘上電或按鍵復(fù)位后能自動(dòng)顯示系統(tǒng)提示符“P.”,進(jìn)入時(shí)鐘準(zhǔn)備狀態(tài);小時(shí)的循環(huán)按12進(jìn)制進(jìn)行;可以顯示年月日,且能區(qū)分閏年;第一次按電子鐘的開(kāi)關(guān)鍵,電子鐘從上午12時(shí)00分00秒開(kāi)始運(yùn)行,進(jìn)入時(shí)鐘運(yùn)行狀態(tài);再次按電子鐘系統(tǒng)調(diào)整鍵,則電子鐘進(jìn)入時(shí)鐘調(diào)整狀態(tài),此時(shí)可以進(jìn)行時(shí)間的加減調(diào)整;繼續(xù)按系統(tǒng)調(diào)整鍵可以進(jìn)行相關(guān)項(xiàng)目的調(diào)整,等調(diào)整完畢之后繼續(xù)按調(diào)整鍵即可跳出調(diào)整狀態(tài)再次進(jìn)入時(shí)鐘運(yùn)行狀態(tài)。本設(shè)計(jì)中采用AT89S52芯片及LCD1602液晶顯示器,一些獨(dú)立式按鍵構(gòu)成一個(gè)簡(jiǎn)單的數(shù)字電子鐘。設(shè)計(jì)中是采用單片機(jī)的內(nèi)部定時(shí)器進(jìn)行定時(shí),沒(méi)有用到專門的時(shí)鐘芯片,因此具有一定的難度,總設(shè)計(jì)框圖如圖1.1所示。整
7、個(gè)電子鐘的工作原理是:在正常的供電狀態(tài)下,首先利用單片機(jī)定時(shí),到了相應(yīng)的時(shí)間由單片機(jī)將所需要顯示的數(shù)據(jù)送到液晶顯示器的輸入口,當(dāng)有鍵按下時(shí)則進(jìn)入相應(yīng)的按鍵調(diào)整狀態(tài),進(jìn)行按鍵調(diào)整。 2硬件系統(tǒng)的設(shè)計(jì)本課程設(shè)計(jì)中硬件電路主要由單片機(jī)最小系統(tǒng),外部擴(kuò)展鍵盤(pán),工作電源,液晶顯示及蜂鳴器構(gòu)成,下面就具體介紹其各部分的功能。(1時(shí)鐘電路單片機(jī)的時(shí)鐘電路由振蕩電路和分頻電路組成。其中振蕩電路由反相器以及并聯(lián)外接的石英晶體和電容構(gòu)成,用于產(chǎn)生振蕩脈沖。而分頻電路則用于把振蕩脈沖分頻,以得到所需要的時(shí)鐘信號(hào)。時(shí)鐘電路是單片機(jī)系統(tǒng)的心臟,它控制著單片機(jī)的工作節(jié)奏。本設(shè)計(jì)采用內(nèi)部時(shí)鐘方式,12MHz的石英晶體振蕩器
8、。(2復(fù)位電路復(fù)位電路用于產(chǎn)生復(fù)位信號(hào),通過(guò)RST引腳送入單片機(jī),進(jìn)行復(fù)位。復(fù)位電路的好壞直接影響單片機(jī)系統(tǒng)工作的可靠性,因此,要重視復(fù)位電路的設(shè)計(jì)和研究。只要RST端保持10ms以上的高電平,就能使單片機(jī)有效地復(fù)位,本設(shè)計(jì)采用上電復(fù)位和手動(dòng)復(fù)位兩種方式。(3AT89S52單片機(jī)AT89S52是一種帶8K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器(FPEROMFalsh Programmable and Erasable Read Only Memory的低電壓,高性能CMOS8位微處理器,俗稱單片機(jī)。AT89S單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。此鍵盤(pán)是為設(shè)置時(shí)間而設(shè)計(jì)的人機(jī)交互裝
9、置。雖然矩陣鍵盤(pán)操作方便,但其硬件電路和軟件都較復(fù)雜,考慮各方面因素,最終決定采用獨(dú)立鍵盤(pán),這樣的話只需四個(gè)按鍵即可。其中,按下SET鍵進(jìn)入時(shí)間設(shè)置方式,此時(shí)默認(rèn)設(shè)置秒,按ADD鍵進(jìn)行加1設(shè)置,按DEC鍵進(jìn)行減1設(shè)置,再次按下SET鍵進(jìn)入分設(shè)置,以此類推,直至年設(shè)置完成后再次按下SET鍵,進(jìn)入正常模式。ONOFF為開(kāi)關(guān)鍵,可進(jìn)行電子鐘的開(kāi)關(guān)操作。LCD1602字符型通常有14條引腳線或16條引腳線的LCD,多出來(lái)的2條線是背光電源線VCC(15腳和地線GND(16腳。在本設(shè)計(jì)里面所用到的是16腳的LCD,其引腳的定義及功能如表2.1所示。引腳號(hào)引腳名電平輸入/輸出作用1Vss電源地2Vcc電源
10、(+5V3Vee對(duì)比度調(diào)節(jié)電壓4RS0/1輸入0=輸入指令1=輸入數(shù)據(jù)5R/W0/1輸入0=向LCD寫(xiě)入指令或數(shù)據(jù)1=從LCD讀取信息6E1,10輸入使能信號(hào),1時(shí)讀取信息,10(下降沿執(zhí)行指令7DB00/1輸入/輸出數(shù)據(jù)總線line0(最低位8DB10/1輸入/輸出數(shù)據(jù)總線line19DB20/1輸入/輸出數(shù)據(jù)總線line210DB30/1輸入/輸出數(shù)據(jù)總線line311DB40/1輸入/輸出數(shù)據(jù)總線line412DB50/1輸入/輸出數(shù)據(jù)總線line513DB60/1輸入/輸出數(shù)據(jù)總線line614DB70/1輸入/輸出數(shù)據(jù)總線line7(最高位15A+Vcc LCD背光源正極16K接地L
11、CD背光源負(fù)極其中,單片機(jī)的P0口與LCD1602的8個(gè)數(shù)據(jù)口相連,P3.0,P3.1,P3.2分別接LCD1602的RS,R/W,E端相連,由于單片機(jī)芯片的P0口一般沒(méi)有加上拉電阻,因此當(dāng)液晶顯示器的數(shù)據(jù)口線接在單片機(jī)89S52芯片的P0口時(shí)需要在P0口加上拉,以確保P0口剛開(kāi)始是高電平。如果要使LCD1602有背光源,則需要將LCD1602的16引腳接地,將LCD1602的15引腳接VCC,此時(shí)液晶顯示器則在有背光源的情況下工作。本次設(shè)計(jì)中要是此LCD1602顯示兩行,第一行顯示年、月、日等信息,第二行顯示電子時(shí)鐘的時(shí)、分、秒等。在本設(shè)計(jì)中設(shè)計(jì)了鬧鐘因此需要一個(gè)發(fā)聲裝置,這里選用了一個(gè)蜂鳴
12、器作為發(fā)聲裝置,在此發(fā)聲裝置中我采用了一個(gè)三極管做為蜂鳴器的驅(qū)動(dòng)器,將揚(yáng)聲器連至一個(gè)三極管,然后通過(guò)三極管的基極連至單片機(jī)的P2.1。單片機(jī)正常工作時(shí)的,需要外部電源提供正常的工作電源這里我所采用的是利用USB接口技術(shù),從電子計(jì)算機(jī)的USB接口提供給單片機(jī)正常工作所需要的外部電源。在本次課程設(shè)計(jì)中,所繪制的PCB板圖和原理圖時(shí)采用的是Protel軟件, Protel99SE是Protel公司近10年來(lái)致力于Windows平臺(tái)開(kāi)發(fā)的最新結(jié)晶,能實(shí)現(xiàn)從電學(xué)概念設(shè)計(jì)到輸出物理生產(chǎn)數(shù)據(jù),以及這之間的所有分析、驗(yàn)證和設(shè)計(jì)數(shù)據(jù)管理。因而今天的Protel最新產(chǎn)品已不是單純的PCB(印制電路板設(shè)計(jì)工具,而是
13、一個(gè)系統(tǒng)工具,覆蓋了以PCB為核心的整個(gè)物理設(shè)計(jì)。Protel設(shè)計(jì)系統(tǒng)是一套建立在IBM兼容PC環(huán)境下的EDA電路集成設(shè)計(jì)系統(tǒng),由于其高度的集成性與擴(kuò)展性,一經(jīng)推出,立即為廣大用戶所接受,很快就成為世界PC平臺(tái)上最流行的電子設(shè)計(jì)自動(dòng)化軟件。其數(shù)字電子鐘的原理圖及其PCB板圖見(jiàn)附錄該數(shù)字電子鐘用到的元器件清單見(jiàn)附錄3軟件系統(tǒng)的設(shè)計(jì)本設(shè)計(jì)用到了單片機(jī)的定時(shí)器的功能,此外用到了單片機(jī)的中斷功能,在數(shù)據(jù)的顯示時(shí)所采用的是查表的方法,因此需要將表格、數(shù)據(jù)存到單片機(jī)的程序存儲(chǔ)器中去。由于電子鐘需要可以進(jìn)行調(diào)節(jié),因此,需要在單片機(jī)的P口上加上按鍵,本設(shè)計(jì)采用獨(dú)立式鍵盤(pán),直接接在P1口上。用到的液晶顯示器接到
14、了單片機(jī)的P0口線上,此外用到了一個(gè)蜂鳴器接到了單片機(jī)的P2.1口線上。在本設(shè)計(jì)中用到了幾個(gè)定時(shí)模塊,第一個(gè)定時(shí)是用于定時(shí)一秒的,用到了單片機(jī)的定時(shí)器TR0,在定時(shí)的過(guò)程中采用的是查詢的方式,查詢定時(shí)時(shí)間是否到的。定時(shí)器所采用第二個(gè)定時(shí)是用于定時(shí)按鍵的抖動(dòng)時(shí)間,因?yàn)楫?dāng)按鍵時(shí)都會(huì)出現(xiàn)電壓抖動(dòng),但對(duì)鍵盤(pán)工作有影響的是鍵閉合時(shí)的抖動(dòng),所以為了確保鍵掃描的正確性,每當(dāng)掃描到有閉合鍵時(shí),都要進(jìn)行去抖動(dòng)處理。本設(shè)計(jì)中采用的是軟件去抖動(dòng)的方法,抖動(dòng)的定時(shí)采用的軟件的延時(shí)進(jìn)行定時(shí)的。第三個(gè)定時(shí)的功能是在液晶顯示時(shí)的延時(shí)時(shí)間,即在液晶顯示時(shí)是采用查表的方法進(jìn)行顯示的,因此需要用到一定的延時(shí),使得我們能夠看的清楚
15、所顯示的內(nèi)容,在這里用到的延時(shí)也是采用軟件的延時(shí)。在本次課程設(shè)計(jì)中,我用到了四個(gè)獨(dú)立式鍵盤(pán)進(jìn)行按鍵的操作。因?yàn)楸緮?shù)字電子鐘的功能比較多,而只用到了四個(gè)鍵,因此在鍵盤(pán)的操作時(shí)采用的是層層遞進(jìn)的方法,一步一步往下操作的,設(shè)置了鍵的名稱為SET鍵、ADD鍵、DEC鍵、ON/OFF鍵,在軟件設(shè)計(jì)中是在SET鍵按下了之后才會(huì)有ADD鍵、DEC鍵的操作,鍵與鍵之間的功能采用層層套用使得程序看起來(lái)更加清晰明了。在按鍵的程序掃描中是采用查詢的方法對(duì)按鍵進(jìn)行操作的,當(dāng)查詢到按鍵有動(dòng)作時(shí),則執(zhí)行相應(yīng)的操作。獨(dú)立式鍵盤(pán)的程序設(shè)計(jì)一般把鍵盤(pán)掃描程序設(shè)計(jì)成子程序,以便其它各程序調(diào)用。本設(shè)計(jì)中的鍵盤(pán)掃描子程序的名稱為KE
16、Y,則鍵盤(pán)掃描子程序KEY應(yīng)具有以下功能:判定有無(wú)按鍵動(dòng)作;去抖動(dòng);確認(rèn)是否真正有閉合鍵;計(jì)算并保存閉合鍵鍵碼;判定閉合鍵是否釋放;恢復(fù)閉合鍵鍵碼。序號(hào)指令RS R/W D7D6D5D4D3D2D1D0 1清顯示0000000001 2光標(biāo)返回000000001* 3置輸入模式00000001I/D S 4顯示開(kāi)關(guān)控制0000001D C B 5光標(biāo)或字符移位000001S/L R/L* 6置功能00001DL N F* 7置字符發(fā)生存貯器地址0001字符發(fā)生存貯器地址8置數(shù)據(jù)存貯器地址001顯示數(shù)據(jù)存貯器地址9讀忙標(biāo)志或地址01BF計(jì)數(shù)器地址10寫(xiě)數(shù)到CGRAM或DDRAM10要寫(xiě)的數(shù)據(jù)內(nèi)容
17、11從CGRAM或DDRAM讀數(shù)11讀出的數(shù)據(jù)內(nèi)容1602的液晶模塊的讀寫(xiě)操作、屏幕和光標(biāo)的操作都是通過(guò)指令編程來(lái)實(shí)現(xiàn)的,其中表格中的“1”為高電平,“0”為低電平。指令1是清顯示,指令碼01H,光標(biāo)復(fù)位到地址00H位置;指令2是光標(biāo)復(fù)位,光標(biāo)返回到地址00H;指令3是光標(biāo)和顯示模塊設(shè)置I/D,光標(biāo)移動(dòng)方向,高電平右移,低電平左移,其中S表示所有文字是否左移或者右移,當(dāng)S為高電平則表示有效,為低電平表示無(wú)效;指令4是顯示開(kāi)關(guān)控制,當(dāng)D為高電平時(shí)表示開(kāi)顯示,低電平則表示關(guān)顯示,當(dāng)C為高電平時(shí)表示有光標(biāo),低電平是則無(wú)光標(biāo),當(dāng)D為高電平時(shí)表示光標(biāo)閃爍,為低電平時(shí)表示光標(biāo)不閃爍;指令5是光標(biāo)或顯示移位
18、,當(dāng)為高電平時(shí)表示移動(dòng)顯示文字,低電平時(shí)表示移動(dòng)光標(biāo);指令6是功能設(shè)置命令,當(dāng)DL為高電平時(shí)表示4位總線,為低電平時(shí)表示8位總線,當(dāng)N 為低電平時(shí)表示單行顯示,為高電平時(shí)表示雙行顯示,當(dāng)F為低電平時(shí)表示5×7的點(diǎn)陣字符,為高電平時(shí)表示5×10的點(diǎn)陣字符;指令7是字符發(fā)生器RAM地址設(shè)置;指令8是DDRAM地址設(shè)置;指令9是讀忙信號(hào)和光標(biāo)地址,當(dāng)BF為高電平時(shí)表示忙,此時(shí)不能接受命令或者數(shù)據(jù),為低電平時(shí)則表示不忙;指令10是寫(xiě)數(shù)據(jù);指令11是讀數(shù)據(jù)。讀狀態(tài)輸入RS=L,R/W=H,E=H輸出D0-D7=狀態(tài)字寫(xiě)指令輸入RS=L,R/W=L,D0-D7=指令碼,E=高脈沖輸出無(wú)
19、讀數(shù)據(jù)輸入RS=H,R/W=H,E=H輸出D0-D7=數(shù)據(jù)寫(xiě)數(shù)據(jù)輸入RS=H,R/W=L,D0-D7=數(shù)據(jù),E=高脈沖輸出無(wú)在本設(shè)計(jì)中用到了液晶顯示器的雙行顯示,這個(gè)數(shù)字電子鐘能夠顯示年、月、日,還能顯示時(shí)、分、秒。在液晶顯示時(shí),我采用的是先將光標(biāo)定位到要送數(shù)據(jù)的地址,然后將數(shù)據(jù)送到要顯示的地方。在整個(gè)顯示過(guò)程中,有開(kāi)機(jī)時(shí)要顯示歡迎語(yǔ),結(jié)束時(shí)要顯示結(jié)束語(yǔ),我所采用的都是應(yīng)用查表的方法,然后將光標(biāo)逐次右移,將數(shù)據(jù)依次送到液晶顯示口線上,然后逐次顯示。當(dāng)關(guān)機(jī)時(shí),我調(diào)用了一個(gè)清屏的指令。該數(shù)字電子鐘具有調(diào)節(jié)鬧鈴的功能,在按鍵時(shí)設(shè)置了鬧鐘按鍵,當(dāng)液晶顯示器上顯示ON時(shí),則可以進(jìn)行鬧鐘的設(shè)置,如果液晶顯
20、示器上顯示的是OFF,則表示不能進(jìn)行鬧鐘的調(diào)節(jié)。在調(diào)好鬧鐘之后,當(dāng)?shù)搅硕〞r(shí)的時(shí)間之后,蜂鳴器會(huì)鳴叫,名叫一分鐘之后后停止鳴叫。在程序中,我運(yùn)用到的是采用比較的方法,如果鬧鐘的標(biāo)志顯示ON,則進(jìn)入鬧鐘的比較程序,如果顯示的是OFF,則不需要進(jìn)入鬧鐘的比較程序。在此次設(shè)計(jì)的過(guò)程中,我是采用模塊的設(shè)計(jì)方法,一個(gè)一個(gè)實(shí)現(xiàn)功能,可以說(shuō)如果完成了一個(gè)任務(wù)的程序框圖,就是完成了整個(gè)設(shè)計(jì)任務(wù)的百分之三十左右,在本次課程設(shè)計(jì)的過(guò)程中,我都是采用這種思想進(jìn)行數(shù)字電子鐘的設(shè)計(jì)的。因此,在設(shè)計(jì)的過(guò)程,讓我能夠很輕易的就抓住了主要的設(shè)計(jì)核心。 在本次程序設(shè)計(jì)中對(duì)于鍵盤(pán)的設(shè)計(jì),我專門設(shè)計(jì)了一個(gè)鍵盤(pán)掃描子程序,它所完成的功
21、能是,首先對(duì)鍵盤(pán)進(jìn)行處理,給每一個(gè)鍵都設(shè)置了一個(gè)鍵碼,那么只要判斷鍵盤(pán)的鍵碼就可以知道是否有鍵按下,如若有鍵按下也可以判斷是哪一個(gè)鍵按下了。這次設(shè)計(jì)中,鍵盤(pán)掃描子程序的代號(hào)為KEY,其鍵盤(pán)掃描程序設(shè)計(jì)的流程框圖如圖3.3所示。對(duì)于鍵盤(pán)的功能設(shè)計(jì)在上面我已經(jīng)做了簡(jiǎn)單的介紹,其按鍵的操作的程序設(shè)計(jì)流程圖如圖3.2所示。 因?yàn)樗玫降氖且壕э@示器,不同于數(shù)碼管顯示,數(shù)碼管顯示是采用將數(shù)碼管的位控端接在單片機(jī)上,然后采用軟件的方法就可以將要顯示的數(shù)據(jù)送入數(shù)碼管的數(shù)據(jù)顯示口即可以顯示。而此數(shù)字電子鐘設(shè)計(jì)中采用的是LCD1602的顯示,LCD1602本身就有11條控制指令,因此相對(duì)于數(shù)碼管顯示難度就大一點(diǎn)
22、,在設(shè)計(jì)中顯示程序設(shè)計(jì)的流程框圖如圖3.4所示。 4仿真測(cè)試及結(jié)果通過(guò)本次對(duì)數(shù)字電子鐘的設(shè)計(jì),了解了利用單片機(jī)處理之后,進(jìn)行電子鐘的顯示。本次設(shè)計(jì)比較成功,在按鍵操作中能夠按照預(yù)先給定的功能進(jìn)行操縱,按了復(fù)位鍵之后,液晶顯示屏上也能顯示“P.",調(diào)節(jié)好鬧鐘之后,到了定時(shí)的時(shí)間,蜂鳴器能夠鳴叫,鳴叫一分鐘之后,蜂鳴器停止鳴叫。本數(shù)字電子鐘設(shè)計(jì)了四個(gè)鍵,按鍵的名字分別叫做SET鍵、ADD鍵、DEC鍵、ON/OFF 鍵。具體的操作為:當(dāng)給電子鐘上電之后,液晶顯示屏?xí)@示“P.”,此時(shí)按下按鍵ON/OFF鍵,即可以打開(kāi)數(shù)字電子鐘,此時(shí)液晶顯示屏上會(huì)出現(xiàn)“WELCOME TO HERE”的英文
23、字符,兩秒之后就會(huì)進(jìn)入電子鐘的正常運(yùn)行狀態(tài)。該數(shù)字電子鐘的起始狀態(tài)為2009-01-01,AM12:00:00,此時(shí)只要按下SET鍵即可以進(jìn)行數(shù)字電子鐘的操作界面,首先是調(diào)節(jié)年,按ADD鍵就可以增加一年,按DEC鍵就可以減少一年;再按SET鍵就可以進(jìn)入月的調(diào)節(jié),按ADD鍵就可以增加一月,按DEC鍵就可以進(jìn)行減的操作;再按SET鍵就可以進(jìn)入日的調(diào)節(jié),ADD鍵可以進(jìn)行加的操作,DEC鍵可以進(jìn)行減的操作;再按SET鍵就可以進(jìn)入時(shí)的調(diào)節(jié),ADD鍵可以進(jìn)行加的操作,DEC鍵可以進(jìn)行減的操作,同時(shí)可以觀察上下午的變化;再按SET鍵就可以進(jìn)入分的調(diào)節(jié),ADD鍵可以進(jìn)行加的操作,DEC鍵可以進(jìn)行減的操作;再按
24、SET 鍵就可以進(jìn)入秒的調(diào)節(jié),ADD鍵可以進(jìn)行加的操作,DEC鍵可以進(jìn)行減的操作;再按SET鍵就可以進(jìn)入鬧鐘的調(diào)節(jié),ADD鍵可以進(jìn)行關(guān)的操作,DEC鍵可以進(jìn)行開(kāi)的操作;如果鬧鐘的顯示標(biāo)志位OFF,則再按下調(diào)節(jié)鍵就可以推出調(diào)節(jié),如果鬧鐘的顯示標(biāo)志位ON,則再按下調(diào)節(jié)鍵就可以進(jìn)入鬧鐘的調(diào)節(jié),首先調(diào)節(jié)的是鬧鐘的時(shí),ADD鍵可以加,DEC則是減,在調(diào)節(jié)的同時(shí)可以觀察顯示器的上下午變化,即可以對(duì)上午下午進(jìn)行定時(shí),再按SET鍵就可以進(jìn)入鬧鐘的分的操作,ADD鍵是假的操作,DEC鍵是減的操作,當(dāng)調(diào)節(jié)完鬧鐘之后,再按下SET鍵就會(huì)推出設(shè)置狀態(tài)。在數(shù)字電子鐘正常工作的狀態(tài)下,如果按下ON/OFF鍵就可以對(duì)數(shù)字電
25、子鐘進(jìn)行關(guān)機(jī)的操作,此時(shí)會(huì)顯示“BYE BYE”的英文字符。接著就會(huì)清屏,只要再按下ON/OFF 鍵就可以打開(kāi)數(shù)字電子鐘,使它正常工作。在仿真時(shí)用到了兩個(gè)軟件,第一個(gè)是Keil,第二個(gè)是Protues,本次仿真是將兩個(gè)軟件結(jié)合起來(lái)進(jìn)行的。Proteus軟件所提供了30多個(gè)元件庫(kù),數(shù)千種元件。元件涉及到數(shù)字和模擬、交流和直流等。對(duì)于一個(gè)仿真軟件或?qū)嶒?yàn)室,測(cè)試的儀器儀表的數(shù)量、類型和質(zhì)量,是衡量實(shí)驗(yàn)室是否合格的一個(gè)關(guān)鍵因素。在Proteus軟件包中,不存在同類儀表使用數(shù)量的問(wèn)題。Proteus還提供了一個(gè)圖形顯示功能,可以將線路上變化的信號(hào),以圖形的方式實(shí)時(shí)地顯示出來(lái),其作用與示波器相似但功能更多
26、。Proteus ISIS是英國(guó)Labcenter公司開(kāi)發(fā)的電路分析與實(shí)物仿真軟件。它運(yùn)行于Windows操作系統(tǒng)上,可以仿真、分析(SPICE各種模擬器件和集成電路,該軟件的特點(diǎn)是:實(shí)現(xiàn)了單片機(jī)仿真和SPICE電路仿真相結(jié)合。具有模擬電路仿真、數(shù)字電路仿真、單片機(jī)及其外圍電路組成的系統(tǒng)的仿真、RS232動(dòng)態(tài)仿真、I2C調(diào)試器、SPI調(diào)試器、鍵盤(pán)和LCD 系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號(hào)發(fā)生器等。支持主流單片機(jī)系統(tǒng)的仿真。目前支持的單片機(jī)類型有:68000系列、8051系列、AVR 系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各種
27、外圍芯片。提供軟件調(diào)試功能。在硬件仿真系統(tǒng)中具有全速、單步、設(shè)置斷點(diǎn)等調(diào)試功能,同時(shí)可以觀察各個(gè)變量、寄存器等的當(dāng)前狀態(tài),因此在該軟件仿真系統(tǒng)中,也必須具有這些功能;同時(shí)支持第三方的軟件編譯和調(diào)試環(huán)境,如Keil C51uVision2等軟件。具有強(qiáng)大的原理圖繪制功能??傊?該軟件是一款集單片機(jī)和SPICE分析于一身的仿真軟件,功能極其強(qiáng)大。單片機(jī)電路的模擬調(diào)試選中單片機(jī)AT89S52,左鍵點(diǎn)擊AT89S52,在出現(xiàn)的對(duì)話框里點(diǎn)擊Program File按鈕,找到剛才編譯得到的HEX文件,然后點(diǎn)擊“OK”按鈕就可以模擬了。點(diǎn)擊模擬調(diào)試按鈕的運(yùn)行按鈕,進(jìn)人調(diào)試狀態(tài)。我們還可以單步模擬調(diào)試,點(diǎn)擊按
28、鈕,進(jìn)人單步調(diào)試狀態(tài),在單步模擬調(diào)試狀態(tài)下,點(diǎn)擊菜單欄的“Debug”,點(diǎn)擊Simulation Log會(huì)出現(xiàn)和模擬調(diào)試有關(guān)的信息。總之,利用此兩軟件的有效結(jié)合使得數(shù)字電子鐘能夠在模擬的環(huán)境下進(jìn)行。因此,可以讓我在制作實(shí)物時(shí),先進(jìn)行軟件的調(diào)試和模擬,使得制作實(shí)物時(shí)能夠更加有效的減少錯(cuò)誤。 數(shù)字電子鐘正常工作時(shí),仿真的液晶顯示器顯示如圖4.2所示,當(dāng)按下設(shè)置鍵時(shí),數(shù)字電子鐘進(jìn)入設(shè)置界面,此時(shí)液晶顯示器的顯示如圖4.3所示。 本數(shù)字電子鐘在跟標(biāo)準(zhǔn)的電子鐘比較時(shí),時(shí)間稍微慢一點(diǎn),產(chǎn)生此種情況的原因有:其一是在執(zhí)行程序指令時(shí),由于需要耗費(fèi)一定的時(shí)間,因此會(huì)比標(biāo)準(zhǔn)的電子鐘要慢一點(diǎn)。其二是晶振不夠標(biāo)準(zhǔn),使
29、得定時(shí)器定時(shí)時(shí)不夠精準(zhǔn)。在按鍵調(diào)節(jié)數(shù)字電子鐘的設(shè)置時(shí),第一次調(diào)節(jié)好之后,如果第二次在進(jìn)行調(diào)節(jié),前一次調(diào)節(jié)是3月的話,調(diào)節(jié)的時(shí)間是30天,而第二次繼續(xù)去調(diào)節(jié),把月份調(diào)成2月的話就會(huì)出現(xiàn)有30天的情況,這是不可能的情況,這主要是軟件設(shè)置里面只進(jìn)行依次行的校正,沒(méi)有進(jìn)行第二次的校正,因此會(huì)出現(xiàn)上述的問(wèn)題。在本次數(shù)字電子鐘的設(shè)計(jì)過(guò)程中,有許多感觸,首先對(duì)匯編這門語(yǔ)言,我覺(jué)得這是一門邏輯性很強(qiáng)的語(yǔ)言,但同時(shí)也是一門比較容易掌握的語(yǔ)言。這門語(yǔ)言和我們的實(shí)際聯(lián)系很機(jī)密,比如說(shuō)里面很多傳送指令,都是根據(jù)實(shí)際存在的硬件而存在的,還有你面的與或指令、乘法、除法指令,其實(shí)都是和我們從小就學(xué)的數(shù)學(xué)息息相關(guān)的。就匯編語(yǔ)
30、言而言,對(duì)于同一種效果可以采用不同的匯編指令完成,也可以采用相同的匯編指令完成,但因?yàn)槟闼x用的方案不同使得所產(chǎn)生的效果也就有所不同,因此這也鍛煉了我們?cè)谒伎纪粋€(gè)問(wèn)題,如果能夠采用發(fā)散思維的話,往往會(huì)得到意想不到的結(jié)果。談完基本的工具之后,我要談的就是這次的主題,電子鐘可以說(shuō)是我們非常熟悉的東西,但是沒(méi)有學(xué)單片機(jī)這門功課時(shí),誰(shuí)也不會(huì)想它是怎么工作的,又是怎么做成的。在我自己動(dòng)手完成了這次課程設(shè)計(jì)之后,我才發(fā)現(xiàn)其實(shí)在我們身邊有好多東西是要我們自己去研究的,如果只在原地踏步的話,就會(huì)落后,隨著社會(huì)的不斷進(jìn)步,我們身邊的東西越來(lái)越高科技話,那么要我們學(xué)習(xí)的東西也就越來(lái)越多。我覺(jué)得在這次設(shè)計(jì)過(guò)程中,
31、我學(xué)到了很多,不僅僅是對(duì)匯編語(yǔ)言有了自己的想法,更重要的是培養(yǎng)了一種用于面對(duì)問(wèn)題,解決問(wèn)題的精神,在我們以后走向社會(huì)的道路上還不知道會(huì)遇到多少問(wèn)題,如果有了這種精神的話,我相信無(wú)論多么困難的問(wèn)題,都會(huì)迎刃而解的。對(duì)于單片機(jī)這門功課,首先我覺(jué)得王老師采用“培養(yǎng)動(dòng)手”這種的觀念是非常好,單片機(jī)技術(shù)本身就是一門技術(shù)性的學(xué)科,如果只是學(xué)些理論知識(shí),而不去進(jìn)行一些實(shí)質(zhì)性的操作的話無(wú)疑是紙上談兵,最終還是學(xué)不到什么東西。因此我覺(jué)得要使大家能夠喜歡動(dòng)手,首先還是要使大家對(duì)單片機(jī)產(chǎn)生一點(diǎn)興趣,所以在開(kāi)始的學(xué)習(xí)時(shí),不能讓大家學(xué)起來(lái)就好像有一座大山擺在前面,讓人有一種不敢往前越的感覺(jué)。學(xué)習(xí)了這么多年,我深深的體會(huì)
32、到了一點(diǎn)就是如果老師能夠采用換位的思想進(jìn)行教學(xué)的話,會(huì)使得教學(xué)更加容易。比如有些老師在教學(xué)時(shí)采用囫圇吞棗式的講述,該重點(diǎn)講述的不能講清楚,而就那些抽象的東西講來(lái)講去,這是很多學(xué)生所不能接受的。當(dāng)然要把一個(gè)問(wèn)題完完全全的講述清楚是要花費(fèi)很多時(shí)間的,那么短短的一堂課又能講幾個(gè)問(wèn)題呢?我覺(jué)得對(duì)于一個(gè)經(jīng)典的問(wèn)題如果能夠讓大家完完全全弄懂是很有收獲的。也就是說(shuō)并不是說(shuō)每一個(gè)問(wèn)題都要給大家講清楚的,只要把那些經(jīng)典的問(wèn)題講清楚,然后進(jìn)行一下拓展的話,這將是一筆巨大的收獲。講了這么多還是要回到單片機(jī)技術(shù)中的“技術(shù)”兩個(gè)字上來(lái),我覺(jué)得現(xiàn)在的大學(xué)生學(xué)習(xí)東西之后,不知道學(xué)了這個(gè)東西應(yīng)該去干什么。就這一門課,首先它是
33、一門技術(shù),因此是應(yīng)用到我們的實(shí)際生活中去的,而對(duì)于我們學(xué)習(xí)自動(dòng)化的學(xué)生,又具體到了哪一方面呢?如果能夠讓大家明白學(xué)習(xí)這門技術(shù)之后的走向,可以使得大家學(xué)習(xí)得更有目的性。在這里我覺(jué)得王老師的教學(xué)還是比較有目的性的,而且給我們布置任務(wù)的要求也寫(xiě)得很清楚,這就使得我們能夠更好更準(zhǔn)確的完成所布置的任務(wù)??傊?我覺(jué)得更重要是理論與實(shí)際的結(jié)合,更何況是一門技術(shù)性的學(xué)科,就更加離不開(kāi)實(shí)踐。以認(rèn)知應(yīng)用開(kāi)發(fā)過(guò)程為先導(dǎo),先動(dòng)手實(shí)踐、再理論學(xué)習(xí)、以一個(gè)完整的單片機(jī)應(yīng)用電路來(lái)打開(kāi)單片機(jī)的學(xué)習(xí)之門。號(hào)召同學(xué)們購(gòu)買實(shí)驗(yàn)板,強(qiáng)化單片機(jī)訓(xùn)練,在我們的日常作業(yè)多做一些動(dòng)手的作業(yè)時(shí)很有好處的,像對(duì)Protel、Keil、Protu
34、es軟件的操作時(shí)非常必要的。不過(guò)我覺(jué)得在這些實(shí)際作業(yè)中也不要限制大家的思維,這樣更有利用大家對(duì)軟件的操作空間,也就更加能夠提高大家對(duì)軟件的掌握能力。對(duì)于我們這一代人創(chuàng)新的能力可以說(shuō)幾乎是看不到的,這主要是我們從小就被固定化,無(wú)論什么東西都是要按照一個(gè)固定的模塊來(lái)進(jìn)行,雖然說(shuō)這樣可以是大家少走彎路,但是這就使得思維固定化了。本人語(yǔ)言能力有限,就只能講這么多了,希望王老師以后的工作順順利利。參考文獻(xiàn)1唐俊瞿,許雷,張群瞻.單片機(jī)原理與應(yīng)用M.北京:冶金工業(yè)出版社,2003Tang Junju,permits the thunder,Zhang Qunzhan.The monolithic inte
35、grated circuit principlewithapplies theM.Beijing:Metallurgical industry publishing house,20032李廣弟,朱月秀,冷祖祁.單片機(jī)基礎(chǔ)M.北京:北京航空航天大學(xué)出版社,2007Li Guangdi,Zhu Yue Xiu,Leng Zuqi.Monolithic integrated circuit foundationM.Beijing:Beijing University of Aeronautics and Astronautics Publishing house,2007Li Guangfei.T
36、he monolithic integrated circuit curriculum designs the example to instruct the M.Zhang Hong Run,blue Qinghua.Monolithic integrated circuit application technology course M.5李華.MCS51系列單片機(jī)實(shí)用接口技術(shù)M.北京:北京航空航天大學(xué)出版社,1993Li Hua.MCS-51series monolithic integrated circuit practical connection technologyM. Bei
37、jing:Beijing University of Aeronautics and Astronautics Publishing house,19936李朝青.單片機(jī)原理及接口技術(shù)M.北京:北京航空航天大學(xué)出版社,1998Li ChaoQing.Monolithic integrated circuit principle and connection technologyM.Beijing:Beijing University of Aeronautics and Astronautics Publishing house,1998Zhao Xiuzhen,Shan Yonglei.Th
38、e monolithic microcomputer principle and appliesM.致謝本課題在選題及進(jìn)行過(guò)程中得到王韌老師的悉心指導(dǎo)。論文行文過(guò)程中,王老師多次幫助我分析思路,開(kāi)拓視角。王老師嚴(yán)謹(jǐn)求實(shí)的治學(xué)態(tài)度,踏實(shí)堅(jiān)韌的工作精神,將使我終生受益。再多華麗的言語(yǔ)也顯蒼白,在此,謹(jǐn)向王老師致以誠(chéng)摯的謝意和崇高的敬意。在這次課程設(shè)計(jì)的撰寫(xiě)過(guò)程中,我得到了許多人的幫助,首先我要感謝我的老師在課程設(shè)計(jì)上給予我的指導(dǎo)、提供給我的支持和幫助,這是我能順利完成這次報(bào)告的主要原因,更重要的是老師幫我解決了許多技術(shù)上的難題,讓我能把系統(tǒng)做得更加完善。在此期間,我不僅學(xué)到了許多新的知識(shí),而且也開(kāi)
39、闊了視野,提高了自己的設(shè)計(jì)能力。其次,我要感謝幫助過(guò)我的同學(xué),他們也為我解決了不少我不太明白的設(shè)計(jì)商的難題。同時(shí)也感謝學(xué)院為我提供良好的做畢業(yè)設(shè)計(jì)的環(huán)境。最后再一次感謝所有在設(shè)計(jì)中曾經(jīng)幫助過(guò)我的良師益友和同學(xué)在這次課程設(shè)計(jì)作業(yè)的過(guò)程中由于在設(shè)計(jì)方面我們沒(méi)有經(jīng)驗(yàn),理論基礎(chǔ)知識(shí)掌握得不牢固,在設(shè)計(jì)中難免會(huì)出現(xiàn)這樣那樣的問(wèn)題,但這也培養(yǎng)了我綜合應(yīng)用設(shè)計(jì)課程及其他課程的理論知識(shí)和理論聯(lián)系實(shí)際,應(yīng)用生產(chǎn)實(shí)際知識(shí)解決工程實(shí)際問(wèn)題的能力;在設(shè)計(jì)的過(guò)程中還培養(yǎng)出了我們的團(tuán)隊(duì)精神,同學(xué)們共同協(xié)作,解決了許多個(gè)人無(wú)法解決的問(wèn)題;在今后的學(xué)習(xí)過(guò)程中我們會(huì)更加努力和團(tuán)結(jié)。但是由于水平有限,難免會(huì)有錯(cuò)誤,還望老師批評(píng)指
40、正附錄程序清單:YEAR EQU30HMONTH EQU31HDAY EQU32HHOUR EQU33HMINUTE EQU34HSECOND EQU35HTDAO EQU36HTIME EQU37HNAOZHONG EQU38HNAOHOUR EQU39HNAOMINUTE EQU40HNAOTIME EQU4AHORG0000HSJMP STARTSTART1:LCALL DIR2LCALL KEY/調(diào)用鍵掃子程序JB20H.3,MAIN1/判斷開(kāi)機(jī)鍵是否按下?LCALL DELAY2/開(kāi)機(jī)鍵內(nèi)按下繼續(xù)顯示P.AJMP START1QINGPING:LCALL DIR1/關(guān)機(jī)鍵按下調(diào)用清屏
41、MOV R0,#10GOODBYE:LCALL DIR4/調(diào)用關(guān)機(jī)語(yǔ)"BEY BEY"LCALL DELAY2DJNZ R0,GOODBYEMOV P0,#01HLCALL ENABLESAO:LCALL KEY/調(diào)用鍵掃子程序JB20H.3,OPEN/判斷開(kāi)機(jī)鍵是否按下?LCALL DELAY2/無(wú)鍵按下繼續(xù)執(zhí)行鍵掃AJMP SAOOPEN:JMP MAIN1/開(kāi)機(jī)鍵按下執(zhí)行開(kāi)機(jī)子程序MAIN1:MOV SP,#60HMOV YEAR,#09/年月日時(shí)分秒初始化MOV MONTH,#01MOV DAY,#01MOV HOUR,#12MOV TIME,#41HMOV MIN
42、UTE,#00MOV SECOND,#00MOV TDAO,#00MOV IE,#00H/中斷及定時(shí)器初始化MOV TMOD,#01HMOV NAOZHONG,#00/鬧鐘標(biāo)志等初始化MOV NAOHOUR,#12MOV NAOMINUTE,#00MOV NAOTIME,#41HLCALL DIR1WELCOME:MOV R0,#10WELCOME1:LCALL DIR3/調(diào)用開(kāi)機(jī)歡迎語(yǔ)LCALL DELAY2/“WELCOME TO HERE"DJNZ R0,WELCOME1MOV P0,#01HLCALL ENABLEJMP MAIN2*;按鍵控制及其功能操作子程序*KEYAA:
43、MOV P0,#0FH/定義光標(biāo)開(kāi)啟及閃爍LCALL ENABLEMOV P0,#0CAH/定義光標(biāo)位置LCALL ENABLELCALL KEY/調(diào)用鍵掃子程序JB20H.0,TNEXT7/判斷哪個(gè)鍵按下JB20H.1,KEYBAJB20H.2,KEYCALCALL DELAY2LJMP KEYAA/無(wú)鍵按下繼續(xù)執(zhí)行鍵掃TNEXT7:LJMP KEYAIKEYBA:INC SECOND/秒增鍵按下執(zhí)行增一MOV A,SECONDCJNE A,#60,ZANXIAN1/判斷是否到60秒?MOV SECOND,#0/秒清零JMP ZANXIAN1/調(diào)用顯示程序ZANXIAN1:MOV P0,#0
44、CH/關(guān)光標(biāo)及其閃爍LCALL ENABLELCALL XIANSHIJMP KEYAA/跳至秒鍵掃子程序位置KEYCA:MOV A,SECOND/秒減一子程序CJNE A,#0,KEJIAN1/是否到了零秒?MOV SECOND,#59/秒初始化JMP ZANXIAN1KEJIAN1:DEC SECOND/沒(méi)到了零秒MOV A,SECONDCJNE A,#0,ZANXIAN1/到了零秒MOV SECOND,#59/秒初始化JMP ZANXIAN1KEYAC:MOV P0,#0FH/定義光標(biāo)開(kāi)啟及閃爍LCALL ENABLEMOV P0,#0C7H/光標(biāo)定位到分的位置LCALL ENABLEL
45、CALL KEY/調(diào)用鍵掃子程序JB20H.0,TNEXT6/判斷哪個(gè)鍵按下JB20H.1,KEYBBJB20H.2,KEYCBLCALL DELAY2LJMP KEYAC/無(wú)鍵按下繼續(xù)執(zhí)行鍵掃TNEXT6:JMP KEYAA/分加一子程序KEYBB:INC MINUTEMOV A,MINUTECJNE A,#60,ZANXIAN2/到了60分MOV MINUTE,#0/分初始化JMP ZANXIAN2ZANXIAN2:MOV P0,#0CH/關(guān)光標(biāo)及其閃爍LCALL ENABLELCALL XIANSHI/調(diào)用顯示子程序JMP KEYACKEYCB:MOV A,MINUTECJNE A,#0
46、,KEJIAN2/判斷分是否到了零MOV MINUTE,#59JMP ZANXIAN2KEJIAN2:DEC MINUTE/分減一子程序MOV A,MINUTECJNE A,#0,ZANXIAN2/判斷分是否到了零MOV MINUTE,#59JMP ZANXIAN2KEYAD:MOV P0,#0FH/開(kāi)光標(biāo)顯示及閃爍LCALL ENABLEMOV P0,#0C4H/光標(biāo)定位到時(shí)的位置LCALL ENABLELCALL KEY/調(diào)用鍵掃子程序JB20H.0,TNEXT5/判斷是哪個(gè)鍵按下JB20H.1,KEYBCJB20H.2,KEYCCLCALL DELAY2LJMP KEYAD;TNEXT5
47、:JMP KEYACKEYBC:INC HOUR/時(shí)增一子程序MOV A,HOURCJNE A,#13,ZANXIAN3/判斷是否到了13小時(shí)MOV HOUR,#01/時(shí)初始化MOV A,TIMECJNE A,#41H,PM/上下午賦值MOV TIME,#50HJMP ZANXIAN3PM:MOV TIME,#41HJMP ZANXIAN3ZANXIAN3:MOV P0,#0CH/關(guān)光標(biāo)顯示及閃爍LCALL ENABLELCALL XIANSHIJMP KEYADKEYCC:DEC HOUR/時(shí)減一子程序MOV A,HOURCJNE A,#0,ZANXIAN3/比較是否到了零時(shí)MOV HOUR
48、,#12/時(shí)初始化MOV A,TIMECJNE A,#41H,PM1MOV TIME,#50HJMP ZANXIAN3PM1:MOV TIME,#41HJMP ZANXIAN3KEYAE:MOV P0,#0FH/開(kāi)光標(biāo)顯示及閃爍LCALL ENABLEMOV P0,#8CH/光標(biāo)定位到日的位置LCALL ENABLELCALL KEY/調(diào)用鍵掃子程序JB20H.0,ZHUAN1/判斷是哪個(gè)鍵按下JB20H.1,KEYBDJB20H.2,ZHUAN2LCALL DELAY2LJMP KEYAEZHUAN1:LJMP KEYADZHUAN2:LJMP KEYCDKEYBD:MOV A,MONTH/
49、比較是哪個(gè)月份CJNE A,#04,BJ6JMP TD30BJ6:CJNE A,#06,BJ7JMP TD30BJ7:CJNE A,#09,BJ8JMP TD30BJ8:CJNE A,#11,BJ9JMP TD30BJ9:CJNE A,#02,TD31JMP BJ10TD30:INC DAY/30天月份加一子程序MOV A,DAYCJNE A,#31,ZANXIAN4/是否到了31天MOV DAY,#01JMP ZANXIAN4TD31:INC DAY/31天月份加一子程序MOV A,DAYCJNE A,#32,ZANXIAN4/是否到了32天MOV DAY,#01JMP ZANXIAN4ZA
50、NXIAN4:MOV P0,#0CH/關(guān)光標(biāo)顯示及閃爍LCALL ENABLELCALL XIANSHI/調(diào)用顯示子程序JMP KEYAEKEYCD:MOV A,MONTH/比較是哪個(gè)月份CJNE A,#04,BJ11JMP DTD30BJ11:CJNE A,#06,BJ12JMP DTD30BJ12:CJNE A,#09,BJ13JMP DTD30BJ13:CJNE A,#11,BJ14JMP DTD30BJ14:CJNE A,#02,DTD31JMP BJ15DTD30:DEC DAY/30天減一子程序MOV A,DAYCJNE A,#0,ZANXIAN4/是否到了0MOV DAY,#30
51、/30天重新賦值JMP ZANXIAN4DTD31:DEC DAY/31天減一子程序MOV A,DAYCJNE A,#0,ZANXIAN4/是否到了0MOV DAY,#31/30天重新賦值JMP ZANXIAN4BJ10:MOV A,YEAR/比較是否到了閏年MOV B,#04DIV ABMOV A,BCJNE A,#00,PINNIAN1/比較是否到了平年INC DAYMOV A,DAYCJNE A,#30,ZHUAN3/2月30天是否到?MOV DAY,#01/2月初始化ZHUAN3:LJMP ZANXIAN4PINNIAN1:INC DAY/平年2月增一子程序MOV A,DAYCJNE
52、A,#29,ZANXIAN4/2月29天是否到了MOV DAY,#01JMP ZANXIAN4BJ15:MOV A,YEARMOV B,#04DIV ABMOV A,BCJNE A,#00,PINNIAN2/比較是否到了平年DEC DAYMOV A,DAYCJNE A,#00,ZHUAN4/2月閏年減一子程序MOV DAY,#29ZHUAN4:LJMP ZANXIAN4PINNIAN2:DEC DAY/2月平年減一子程序MOV A,DAYCJNE A,#00,ZANXIAN4MOV DAY,#28JMP ZANXIAN4KEYAF:MOV P0,#0FH/開(kāi)光標(biāo)顯示及閃爍LCALL ENABL
53、EMOV P0,#89H/光標(biāo)定位到月的位置LCALL ENABLELCALL KEY/調(diào)用鍵掃子程序JB20H.0,TNEXT3/判斷是哪個(gè)鍵按下JB20H.1,KEYBEJB20H.2,KEYCELCALL DELAY2LJMP KEYAFTNEXT3:LJMP KEYAEKEYBE:INC MONTH/月增一子程序MOV A,MONTHCJNE A,#13,ZANXIAN5/是否到了13月MOV MONTH,#01/月初始化JMP ZANXIAN5ZANXIAN5:MOV P0,#0CH/關(guān)光標(biāo)顯示及閃爍LCALL ENABLELCALL XIANSHIJMP KEYAFKEYCE:DE
54、C MONTH/月減一子程序MOV A,MONTHCJNE A,#0,ZANXIAN5/比較月份是否到了0月MOV MONTH,#12JMP ZANXIAN5KEYAG:MOV P0,#0FH/開(kāi)光標(biāo)顯示及閃爍LCALL ENABLEMOV P0,#86H/光標(biāo)定義到年的位置LCALL ENABLELCALL KEY/調(diào)用鍵掃子程序JB20H.0,TNEXT2/判斷是哪個(gè)鍵按下JB20H.1,KEYBFJB20H.2,KEYCFLCALL DELAY2JMP KEYAGTNEXT2:LJMP KEYAFKEYAH:MOV P0,#0CH/關(guān)光標(biāo)顯示及閃爍LJMP MAIN2KEYBF:INC YEAR/年加一子程序MOV A,YEARCJNE A,#99,ZANXIAN6/比較是否到了2098年MOV YEAR,#09JMP ZANXIAN6ZANXIAN6:MOV P0,#0CH/關(guān)光標(biāo)顯示及閃爍LCALL ENABLELCALL XIANSHIJMP KEYAGKEYCF:DEC YEAR/年減一子程序MOV A,YEARCJNE A,#08,ZANXIAN6/比較是否到了2009年MOV YEAR,#98JMP ZANXIAN6KEYAI:MOV DPTR,#TABLE6/定義鬧鐘表格首地址MOV P0,#0CF
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 美容行業(yè)中的團(tuán)隊(duì)合作與協(xié)調(diào)技巧試題及答案
- 防學(xué)校欺凌課件
- 食品檢驗(yàn)實(shí)驗(yàn)室的設(shè)備與試題及答案
- 公共事業(yè)管理考點(diǎn)分析試題及答案
- 2024-2025學(xué)年河南省駐馬店新蔡一高高一下學(xué)期2月月考物理試題及答案
- 計(jì)算機(jī)基礎(chǔ)考試技巧與實(shí)例試題及答案
- 大學(xué)古代文學(xué)史的評(píng)估試題及答案
- 拼寫(xiě)誤差影響的分析試題及答案
- 2024年CPBA商業(yè)分析師模擬考試題目及答案
- 2024年汽車美容師市場(chǎng)需求分析試題及答案
- 《光伏發(fā)電工程預(yù)可行性研究報(bào)告編制規(guī)程》(NB/T32044-2018)中文版
- 老人夏季腹瀉預(yù)防和治療
- 安全警示教育護(hù)理課件
- 類風(fēng)濕關(guān)節(jié)炎病情活動(dòng)度評(píng)價(jià)表(DAS28)
- A4紙筆記本橫格線條打印模板
- 【施工組織設(shè)計(jì)】?jī)?nèi)容完整性和編制水平
- 2023公路橋梁鋼結(jié)構(gòu)防腐涂裝技術(shù)條件
- (13)-2.7科學(xué)把握理想與現(xiàn)實(shí)的辯證統(tǒng)一
- Unit5Poems單元分析講義高中英語(yǔ)人教版選擇性
- 青島版六年級(jí)數(shù)學(xué)上冊(cè) (完美的圖形)教學(xué)課件(第1課時(shí))
- 2022新能源光伏發(fā)電工程竣工決算報(bào)告模板
評(píng)論
0/150
提交評(píng)論