版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
目錄1、引言·····················································32、總體設(shè)計(jì)···············································43、詳細(xì)設(shè)計(jì)············································5···········································5 ··········································104、實(shí)驗(yàn)結(jié)果分析············································265、心得體會(huì)·················································276、參考文獻(xiàn)·················································27摘
要
單片機(jī)自20世紀(jì)70年代問世以來,以其極高的性能價(jià)格比,受到人們的重視和關(guān)注,應(yīng)用很廣、開展很快。單片機(jī)體積小、重量輕、抗干擾能力強(qiáng)、環(huán)境要求不高、價(jià)格低廉、可靠性高、靈活性好、開發(fā)較為容易。由于具有上述優(yōu)點(diǎn),在我國(guó),單片機(jī)已廣泛地應(yīng)用在工業(yè)自動(dòng)化控制、自動(dòng)檢測(cè)、智能儀器儀表、家用電器、電力電子、機(jī)電一體化設(shè)備等各個(gè)方面,而51單片機(jī)是各單片機(jī)中最為典型和最有代表性的一種。這次畢業(yè)設(shè)計(jì)通過對(duì)它的學(xué)習(xí)、應(yīng)用,以AT89S51芯片為核心,輔以必要的電路,設(shè)計(jì)了一個(gè)簡(jiǎn)易的電子時(shí)鐘,它由4.5V直流電源供電,通過數(shù)碼管能夠準(zhǔn)確顯示時(shí)間,調(diào)整時(shí)間,從而到達(dá)學(xué)習(xí)、設(shè)計(jì)、開發(fā)軟、硬件的能力。
關(guān)鍵詞:?jiǎn)纹瑱C(jī)AT89C5120世紀(jì)末,電子技術(shù)獲得了飛速的開展,在其推動(dòng)下,現(xiàn)代電子產(chǎn)品幾乎滲透了社會(huì)的各個(gè)領(lǐng)域,有力地推動(dòng)了社會(huì)生產(chǎn)力的開展和社會(huì)信息化程度的提高,同時(shí)也使現(xiàn)代電子產(chǎn)品性能進(jìn)一步提高,產(chǎn)品更新?lián)Q代的節(jié)奏也越來越快。
時(shí)間對(duì)人們來說總是則珍貴,工作的忙碌性和繁雜性容易使人忘記當(dāng)前的時(shí)間。忘記了要做的事情,當(dāng)事情不是很重要的時(shí)候,這種遺忘無傷大雅。但是,一旦重要事情,一時(shí)的耽誤可能釀成大禍。
目前,單片機(jī)正朝著高性能和多品種方向開展趨勢(shì)將是進(jìn)一步向著CMOS化、低功耗、小體積、大容量、高性能、低價(jià)格和外圍電路內(nèi)裝化等幾個(gè)方面開展。下面是單片機(jī)的主要開展趨勢(shì)。單片機(jī)應(yīng)用的重要意義還在于,它從根本上改變了傳統(tǒng)的控制系統(tǒng)設(shè)計(jì)思想和設(shè)計(jì)方法。從前必須由模擬電路或數(shù)字電路實(shí)現(xiàn)的大局部功能,現(xiàn)在已能用單片機(jī)通過軟件方法來實(shí)現(xiàn)了。這種軟件代替硬件的控制技術(shù)也稱為微控制技術(shù),是傳統(tǒng)控制技術(shù)的一次革命。
單片機(jī)模塊中最常見的是數(shù)字鐘,數(shù)字鐘是一種用數(shù)字電路技術(shù)實(shí)現(xiàn)時(shí)、分、秒計(jì)時(shí)的裝置,與機(jī)械式時(shí)鐘相比具有更高的準(zhǔn)確性和直觀性,且無機(jī)械裝置,具有更更長(zhǎng)的使用壽命,因此得到了廣泛的使用.數(shù)字鐘是采用數(shù)字電路實(shí)現(xiàn)對(duì).時(shí),分,秒.數(shù)字顯示的計(jì)時(shí)裝置,廣泛用于個(gè)人家庭,車站,
碼頭辦公室等公共場(chǎng)所,成為人們?nèi)粘I钪胁豢缮俚谋匦杵?由于數(shù)字集成電路的開展和石英晶體振蕩器的廣泛應(yīng)用,使得數(shù)字鐘的精度,遠(yuǎn)遠(yuǎn)超過老式鐘表,
鐘表的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便。1、準(zhǔn)確計(jì)時(shí),以數(shù)字形式顯示時(shí)、分、秒的時(shí)間。2、小時(shí)以24小時(shí)計(jì)時(shí)形式,分秒計(jì)時(shí)為60進(jìn)位。3、校正時(shí)間功能,即能隨意設(shè)定走時(shí)時(shí)間。4、設(shè)計(jì)5V直流電源,系統(tǒng)時(shí)鐘電路、復(fù)位電路。本次設(shè)計(jì)時(shí)鐘電路,使用了ATC89C51單片機(jī)芯片控制電路,單片機(jī)控制電單且省去了很多復(fù)雜的線路,使得電路簡(jiǎn)明易懂,使用鍵盤鍵上的按鍵來調(diào)整時(shí)鐘的時(shí)、分、秒,采用實(shí)時(shí)時(shí)鐘芯片現(xiàn)在市場(chǎng)上有很多實(shí)時(shí)時(shí)鐘集成電路,如DS1287、DS12887、DS1302等。實(shí)時(shí)時(shí)芯片具備年、月、日、時(shí)、分、秒計(jì)時(shí)功能和多點(diǎn)定時(shí)功能,計(jì)時(shí)數(shù)據(jù)的更新每秒自動(dòng)進(jìn)展一次,不需要程序干預(yù)。因此,在工業(yè)實(shí)時(shí)測(cè)控系統(tǒng)中多采用這一類專用芯片來實(shí)現(xiàn)實(shí)時(shí)時(shí)鐘功能。總設(shè)計(jì)原理框圖如下列圖所示:微型控制器微型控制器時(shí)鐘電路時(shí)間可調(diào)時(shí)鐘芯片數(shù)據(jù)顯示3.詳細(xì)設(shè)計(jì)3.1.1、STC89C51單片機(jī)介紹STC89C51單片機(jī)內(nèi)部主要包括累加器ACC(有時(shí)也簡(jiǎn)稱為A)、程序狀態(tài)字PSW、地址指示器DPTR、只讀存儲(chǔ)器ROM、隨機(jī)存取存儲(chǔ)器RAM、存放器、并行I/O接口P0~P3、定時(shí)器/計(jì)數(shù)器、串行I/O接口以及定時(shí)控制邏輯電路等。這些部件通過內(nèi)部總線聯(lián)接起來,構(gòu)成一個(gè)完整的微型計(jì)算機(jī)。其管腳圖如圖STC89C51單片機(jī)管腳構(gòu)造圖VCC:電源。GND:接地。P0口:P0口為一個(gè)8位漏級(jí)開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0口作為原碼輸入口,當(dāng)FIASH進(jìn)展校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1〞時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)展存取時(shí),P2口輸出地址的高八位。在給出地址“1〞時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)展讀寫時(shí),P2口輸出其特殊功能存放器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1〞后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流〔ILL〕這是由于上拉的緣故。P3口也可作為AT89C51的一些特殊功能口,如下表所示:口管腳備選功能P3.0RXD〔串行輸入口〕P3.1TXD〔串行輸出口〕P3.2/INT0〔外部中斷0〕P3.3/INT1〔外部中斷1〕P3.4T0〔記時(shí)器0外部輸入〕P3.5T1〔記時(shí)器1外部輸入〕P3.6/WR〔外部數(shù)據(jù)存儲(chǔ)器寫選通〕P3.7/RD〔外部數(shù)據(jù)存儲(chǔ)器讀選通〕P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。ALE/PROG:當(dāng)訪問外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過一個(gè)ALE脈沖。如想制止ALE的輸出可在SFR8EH地址上置0。此時(shí),ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE制止,置位無效。PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。EA/VPP:當(dāng)/EA保持低電平時(shí),則在此期間外部程序存儲(chǔ)〔0000H-FFFFH〕,不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在FLASH編程期間,此引腳也用于施加12V編程電源〔VPP〕。3.1.2、上電按鈕復(fù)位電路本設(shè)計(jì)采用上電按鈕復(fù)位電路:首先經(jīng)過上電復(fù)位,當(dāng)按下按鍵時(shí),RST直接與VCC相連,為高電平形成復(fù)位,同時(shí)電解電容被電路放電;按鍵松開時(shí),VCC對(duì)電容充電,充電電流在電阻上,RST依然為高電平,仍然是復(fù)位,充電完成后,電容相當(dāng)于開路,RST為低電平,單片機(jī)芯片正常工作。其中電阻R2決定了電容充電的時(shí)間,R2越大則充電時(shí)間長(zhǎng),復(fù)位信號(hào)從VCC回落到0V的時(shí)間也長(zhǎng)。3.1.3、晶振電路本設(shè)計(jì)晶振電路采用12M的晶振。晶振的作用是給單片機(jī)正常工作提供穩(wěn)定的時(shí)鐘信號(hào)。單片機(jī)的晶振并不是只能用12M,只要不超過20M就行,在準(zhǔn)許的范圍內(nèi),晶振越大,單片機(jī)運(yùn)行越快,還有用12M的就是好算時(shí)間,因?yàn)橐粋€(gè)機(jī)器周期為1/12時(shí)鐘周期,所以這樣用12M的話,一個(gè)時(shí)鐘周期為12us,則定時(shí)器計(jì)一次數(shù)就是1us了,電容范圍在20-40pF之間,這里連接的是30pF的電容。機(jī)器周期=10*晶振周期=12*系統(tǒng)時(shí)鐘周期設(shè)計(jì)用到的STC89C52單片機(jī)芯片的ISP下載線是通過單片機(jī)的TXD,RXD引腳把程序燒進(jìn)去的。管腳TXD和RXD用于異步串行通信。其實(shí)STC89C52單片機(jī)的ISP下載線就是一個(gè)max232芯片連接STC和計(jì)算機(jī)的串行通信口。計(jì)算機(jī)把程序從九針串口送到max232芯片,電平轉(zhuǎn)換后送進(jìn)單片機(jī)的串行口,也就是TXD和RXD。然后單片機(jī)的串行模塊把數(shù)據(jù)送到程序區(qū)。3.1.5、顯示電路就時(shí)鐘而言,通常可采用液晶顯示或數(shù)碼管顯示。由于一般的段式液晶屏要專門的驅(qū)動(dòng)電路,而且液晶顯示具有亮度高、價(jià)格廉價(jià)等優(yōu)點(diǎn)。本設(shè)計(jì)利用按鍵開關(guān)來校正時(shí)鐘顯示的數(shù)字。當(dāng)按鈕按下時(shí),將在相應(yīng)的端口輸入一個(gè)低電平,通過相應(yīng)的程序來改變時(shí)鐘顯示。其中S1按鍵開關(guān)用來選擇要修改的數(shù)字;S2按鍵用來增加所選數(shù)字的數(shù)值;S3按鍵用來減少所選數(shù)字的數(shù)值。主程序主要用于系統(tǒng)初始化:設(shè)置計(jì)時(shí)緩沖區(qū)的位置及初值,設(shè)置8155的工作方式、定時(shí)器的工作方式和計(jì)數(shù)初值等參數(shù)。主程序流程如下列圖所示。開場(chǎng)定義堆棧區(qū)T0、數(shù)據(jù)緩沖區(qū)、標(biāo)志位初始化調(diào)用鍵盤掃描程序否是C/R鍵?是地址指針指向計(jì)時(shí)緩沖區(qū)調(diào)用時(shí)間設(shè)置程序主程序流程圖即定時(shí)器0中斷子程序,完成刷新計(jì)時(shí)緩沖區(qū)的功能。系統(tǒng)使用6MHz的晶振,假設(shè)定時(shí)器0工作在方式1,則定時(shí)器的最大定時(shí)時(shí)間為65.536ms,這個(gè)值遠(yuǎn)遠(yuǎn)小于1s。因此本系統(tǒng)采用定時(shí)器與軟件循環(huán)相結(jié)合的定時(shí)方法。設(shè)定時(shí)器0工作在方式1,每隔50ms溢出中斷一次,則循環(huán)中斷20次延時(shí)時(shí)間是1s,上述過程重復(fù)60次為1分,分計(jì)時(shí)60次為1小時(shí),小時(shí)計(jì)時(shí)24次則時(shí)間重新回到00:00:00。因定時(shí)器0工作在方式1,則50ms定時(shí)對(duì)應(yīng)的定時(shí)器初值為:65536-50ms/2us=40536=9E58H,即TH0=9EH,TH0=58H。但應(yīng)當(dāng)指出:CPU從響應(yīng)T0中斷到完成定時(shí)器初值重裝這段時(shí)間,定時(shí)器T0并不停頓工作,而是繼續(xù)計(jì)數(shù)。因此,為了確保T0能準(zhǔn)確定時(shí)50ms,重裝的定時(shí)器初值必須加以修正,修正的定時(shí)器初值必須考慮到從原定時(shí)器初值中扣除計(jì)數(shù)器多計(jì)的脈沖個(gè)數(shù)。由于定時(shí)器計(jì)數(shù)脈沖的周期恰好和機(jī)器周期吻合,因此修正量等于CPU從響應(yīng)中斷到重裝完TL0為止所用的機(jī)器周期數(shù)。CPU響應(yīng)中斷通常要3~8個(gè)機(jī)器周期。經(jīng)過測(cè)試,定時(shí)器0重裝的計(jì)數(shù)初值設(shè)為9E5FH~9E67H,可以滿足精度要求。另外,MCS-51單片機(jī)只有二進(jìn)制加法指令,而時(shí)間是按十進(jìn)制遞增,因此用加法指令后必須進(jìn)展二-十進(jìn)制轉(zhuǎn)換。計(jì)時(shí)模塊流程圖如下列圖所示。保護(hù)現(xiàn)場(chǎng)重裝定時(shí)器初值循環(huán)次數(shù)減1否滿20次?是秒單元加1否60s到?是秒單元清0,分單元加1否60分到?是分單元清0,時(shí)單元加1否24小時(shí)到?是時(shí)單元清0恢復(fù)現(xiàn)場(chǎng)返回該模塊由鍵盤輸入相應(yīng)的數(shù)據(jù)來設(shè)置當(dāng)前時(shí)間。程序通過調(diào)用一個(gè)鍵盤設(shè)置子程序通過鍵盤掃描將鍵入的6位時(shí)間值送入顯示緩沖區(qū)。設(shè)置時(shí)間后,時(shí)鐘要從這個(gè)時(shí)間開場(chǎng)計(jì)時(shí),而時(shí)分秒單元各占一個(gè)字節(jié),鍵盤占6個(gè)字節(jié)。因此程序中要調(diào)用一個(gè)合字子程序?qū)@示緩沖區(qū)中的6位BCD碼合并為3位壓縮BCD碼,并送入計(jì)時(shí)緩沖區(qū),作為當(dāng)前計(jì)時(shí)起始時(shí)間。該程序同時(shí)要檢測(cè)輸入時(shí)間值的合法性,假設(shè)鍵盤輸入的小時(shí)值大于23,分、秒值大于59,則不合法,將取消本次設(shè)置,清零重新開場(chǎng)計(jì)時(shí)。時(shí)間設(shè)置和鍵盤設(shè)置子程序的流程圖如下列圖所示。保護(hù)現(xiàn)場(chǎng)調(diào)用鍵盤設(shè)置子程序KETIN調(diào)用合字子程序COMB恢復(fù)現(xiàn)場(chǎng)返回時(shí)間設(shè)置流程圖保護(hù)現(xiàn)場(chǎng)顯示緩沖區(qū)首地址送R0鍵盤輸入次數(shù)送R7調(diào)用鍵盤掃描程序KEYSCAN鍵號(hào)送@R0顯示緩沖區(qū)地址加1循環(huán)次數(shù)減1否循環(huán)完畢?是恢復(fù)現(xiàn)場(chǎng)返回鍵盤設(shè)置子程序流程圖3.2.4顯示。連接電源后,調(diào)整時(shí)間,lcd屏上會(huì)顯示出年月日時(shí)分秒。顯示程序流程圖如下列圖所示。保護(hù)現(xiàn)場(chǎng)否允許顯示?調(diào)用拆字程序是動(dòng)態(tài)掃描顯示返回顯示程序流程圖掃描鍵盤否調(diào)用顯示程序有鍵按下?是調(diào)用顯示程序否有鍵按下?是求取鍵號(hào)返回鍵盤掃描程序流程圖3.2.5程序:#include<reg52.h>#include<intrins.h>#defineuintunsignedint#defineucharunsignedchar#definePINP0sbitLCDE=P2^7;sbitRW=P2^5;sbitRS=P2^6;sbitk1=P1^0;sbitk2=P1^1;sbitk3=P1^2;sbitsck=P3^6;sbitio=P3^4;sbitRST=P3^5;uintw[7]={0x80,0x82,0x84,0x86,0x88,0x8a,0x8c};//寫地址uintr[7]={0x81,0x83,0x85,0x87,0x89,0x8b,0x8d};//讀地址charnum1[10]="0123456789";unsignedchartime1[7]={0x50,0x59,0x23,0x04,0x11,0x02,0x14};uintsecond,hour,min,num,a,time[7];uintnian,yue,ri,shi,fen,miao,zhou;voiddelay(uintz) //延時(shí)程序 uintx,y; for(x=z;x>0;x--) for(y=110;y>0;y--);voidwritecom(ucharcom) //LCD寫命令 LCDE=0; RS=0; RW=0; PIN=com; delay(10); LCDE=1; delay(10); LCDE=0;voidwritedata(uchardat) //LCD寫數(shù)據(jù) LCDE=0; RS=1; RW=0; PIN=dat; delay(10); LCDE=1; delay(10); LCDE=0; RS=0;voidLCDINIT() //初始化LCD delay(1000); LCDE=0; RW=0; writecom(0x38);設(shè)置顯示模式 writecom(0x0c);不顯示光標(biāo),光標(biāo)不閃爍 writecom(0x06);寫一個(gè)指針加1 writecom(0x01);清屏 writecom(0x80);設(shè)置數(shù)據(jù)指針起點(diǎn)voidds1302writebyte(uintdat) //ds1302寫單個(gè)數(shù)據(jù) uinti; sck=0; _nop_(); _nop_(); for(i=0;i<8;i++) io=dat&0x01; dat>>=1; _nop_(); _nop_(); sck=1; _nop_(); _nop_(); sck=0; _nop_(); _nop_(); uintds1302readbyte() //1302讀單個(gè)數(shù)據(jù) uinti,value; sck=0; _nop_(); _nop_(); for(i=0;i<8;i++) value>>=1; if(io) value=value|0x80; sck=1; _nop_(); _nop_(); sck=0; _nop_(); _nop_(); returnvalue;voidds1302wr(uintadd,uintdat) //多個(gè)字節(jié)寫入 RST=0; _nop_(); sck=0; _nop_(); RST=1; _nop_(); ds1302writebyte(add); ds1302writebyte(dat); RST=0; _nop_();uintds1302rd(uintadd) //讀取多個(gè)數(shù)據(jù) uintks; RST=0; _nop_(); sck=0; _nop_(); RST=1; _nop_(); ds1302writebyte(add); ks=ds1302readbyte(); RST=0; _nop_(); io=0; //此條語(yǔ)句必不可少。如果少了這條語(yǔ)句的話,液晶顯示會(huì)不完全。 _nop_(); io=1; _nop_(); returnks;voidDs1302Init() unsignedcharn; ds1302wr(0x8E,0X00); //制止寫保護(hù),就是關(guān)閉寫保護(hù)功能 for(n=3;n<7;n++)//寫入7個(gè)字節(jié)的時(shí)鐘信號(hào):分秒時(shí)日月周年 ds1302wr(w[n],time1[n]); ds1302wr(0x8E,0x80); //翻開寫保護(hù)功能voidrdtime() //1302讀初始時(shí)間 miao=ds1302rd(r[0]); fen=ds1302rd(r[1]); shi=ds1302rd(r[2]); zhou=ds1302rd(r[5]); ri=ds1302rd(r[3]); yue=ds1302rd(r[4]); nian=ds1302rd(r[6]); voiddisplay() //顯示函數(shù) inti,j,a[8]; writecom(0x80); a[0]=(num1[(nian)/16]); // 年 a[1]=(num1[(nian)%16]); a[2]=0X3A; a[3]=num1[yue/16]; //月 a[4]=num1[yue%16]; a[5]=0X3A; a[6]=num1[ri/16]; //日 a[7]=num1[ri%16]; for(i=0;i<8;i++) writedata(a[i]); delay(10); writecom(0x80+0x40+7); a[0]=(num1[(shi)/16]); //小時(shí) a[1]=(num1[(shi)%16]); a[2]=0X3A; a[3]=num1[fen/16]; //分鐘 a[4]=num1[fen%16]; a[5]=0X3A; a[6]=num1[miao/16]; //秒鐘 a[7]=num1[miao%16]; for(j=0;j<8;j++) writedata(a[j]);voidshowtime(uintaddress,uinttime) delay(500); writedata(num1[time%16]); writecom(0x80+0x40+address); writedata(num1[time/16]); writecom(0x80+0x40+1+address); writecom(0x0f);voidkeyscan() //鍵盤掃描函數(shù) if(0==k1) //K1時(shí)間停頓 delay(10); if(0==k1) num++; while(num>0&&num<=8) if(0==k1) if(0==k1) { num++; while(!k1) switch(num) case2: uinti; num++; a=1; writecom(0x80+0x40+0x0e); writecom(0x0f); for(i=0;i<7;i++) time1[i]=ds1302rd(r[i]);; break; case4: num++; writecom(0x80+0x40+0x0b); writecom(0x0f); break; case6: num++; writecom(0x80+0x40+0x08); writecom(0x0f); break; case8: num=0; a=0; Ds1302Init(); delay(10); writecom(0x0c); break; if(0==k2) delay(5); if(0==k2) while(!k2) switch(num) //K2,時(shí),分,秒加數(shù) case3: if(9==time1[0]%16) time1[0]+=6; time1[0]++; if(time1[0]==0x60) time1[0]=0; showtime(0xd,time1[0]); break; case5: if(9==time1[1]%16) time1[1]+=6; ++time1[1]; while(0x60==time1[1]) time1[1]=0; showtime(0xa,time1[1]); break; case7: if(9==time1[2]%16) time1[2]+=6; ++time1[2]; while(0x24==time1[2]) time1[2]=0; Ds1302Init(); showtime(7,time1[2]); break; if(0==k3) delay(5); if(0==k3) while(!k3) switch(num) //K3,時(shí),分,秒減數(shù) case3: if(0==time1[0]%16) time1[0]-=6; if((0-6)==time1[0]) time1[0]=0x5a; --time1[0]; showtime(0x0d,time1[0]); break; case5: if(0==time1[1]%16) time1[1]-=6; if((0-6)==time1[1])
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 現(xiàn)代辦公環(huán)境下的健康與舒適
- 未來的工作環(huán)境科技與舒適性的平衡
- 現(xiàn)代辦公環(huán)境下的智能配送技術(shù)應(yīng)用實(shí)例
- 2024秋七年級(jí)數(shù)學(xué)上冊(cè) 第4章 一元一次方程4.2 解一元一次方程 3用合并同類項(xiàng)法解方程說課稿(新版)蘇科版001
- Unit 4 History And Traditions Reading for Writing 說課稿-2023-2024學(xué)年高中英語(yǔ)人教版(2019)必修第二冊(cè)
- Unit 4 Friends Forever Understanding ideas click for a friend 說課稿-2024-2025學(xué)年高中英語(yǔ)外研版必修第一冊(cè)
- 2024年五年級(jí)英語(yǔ)下冊(cè) Unit 2 How do you come to school第1課時(shí)說課稿 譯林牛津版
- 6 魯濱遜漂流記(節(jié)選)(說課稿)-2023-2024學(xué)年語(yǔ)文六年級(jí)下冊(cè)統(tǒng)編版
- 16《夏天里的成長(zhǎng)》(說課稿)2024-2025學(xué)年部編版語(yǔ)文六年級(jí)上冊(cè)001
- Unit 2 Wildlife Protection Reading and Thinking Language Focus 說課稿-2024-2025學(xué)年高一上學(xué)期英語(yǔ)人教版(2019)必修第二冊(cè)001
- 寧德時(shí)代筆試題庫(kù)
- 五年級(jí)下冊(cè)北京版英語(yǔ)單詞
- 康復(fù)醫(yī)院患者隱私保護(hù)管理制度
- 新課標(biāo)I、Ⅱ卷 (2024-2020) 近五年高考英語(yǔ)真題滿分作文
- 浙江省嘉興市2023-2024學(xué)年六年級(jí)(上)期末數(shù)學(xué)試卷
- 子宮脫垂手術(shù)指南
- 沈陽(yáng)理工大學(xué)《數(shù)》2022-2023學(xué)年第一學(xué)期期末試卷
- DB41T 2231-2022 水利工程生態(tài)護(hù)坡技術(shù)規(guī)范
- 共享單車安全知識(shí)
- 渤海大學(xué)《大數(shù)據(jù)分析與實(shí)踐》2023-2024學(xué)年期末試卷
- 2024版2024年《咚咚鏘》中班音樂教案
評(píng)論
0/150
提交評(píng)論