




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 學(xué) 院 單片機(jī)原理及應(yīng)用 課 程 設(shè) 計(jì) 題 目 電子萬年歷的設(shè)計(jì) 系 (部) 信息工程系 班 級 姓 名 學(xué) 號 指導(dǎo)教師 單片微機(jī)原理及應(yīng)用 課程設(shè)計(jì)任務(wù)書一、設(shè)計(jì)題目、內(nèi)容及要求設(shè)計(jì)題目:電子萬年歷的設(shè)計(jì) 設(shè)計(jì)內(nèi)容:要求使用51系列的89C51單片機(jī)設(shè)計(jì)實(shí)現(xiàn)電子萬年歷,可以顯示陽歷年、月、日、星期、時(shí)、分、秒和陰歷月、日,在顯示農(nóng)歷時(shí)間時(shí),能標(biāo)明是否是閏年。能夠利用鍵盤調(diào)整及切換顯示??梢允褂眉蓵r(shí)鐘芯片。 設(shè)計(jì)要求:1進(jìn)行系統(tǒng)總體設(shè)計(jì)。2完成系統(tǒng)硬件電路設(shè)計(jì)。3完成系統(tǒng)軟件設(shè)計(jì)及仿真。4撰寫設(shè)計(jì)說明書。二、設(shè)計(jì)原始資料Proteus 及KEIL仿真軟件,實(shí)驗(yàn)箱。三、要求的設(shè)計(jì)成果(課
2、程設(shè)計(jì)說明書、設(shè)計(jì)實(shí)物、圖紙等)設(shè)計(jì)結(jié)果能正確運(yùn)行設(shè)計(jì)說明書一份(要求有硬件設(shè)計(jì)原理圖,仿真結(jié)果圖,源程序代碼)四、進(jìn)程安排周一:查找資料,進(jìn)行方案論證和系統(tǒng)硬件設(shè)計(jì); 周二:系統(tǒng)軟件設(shè)計(jì)和編程實(shí)現(xiàn);周三:利用程序調(diào)試;周四:仿真實(shí)現(xiàn),檢查設(shè)計(jì)結(jié)果;周五:撰寫設(shè)計(jì)說明書、答辯。五、主要參考資料1 彭為等.單片機(jī)典型系統(tǒng)設(shè)計(jì)實(shí)例精講M.北京:電子工業(yè)出版社,20062 李群芳.單片機(jī)原理、接口及應(yīng)用M.北京:清華大學(xué)出版社,2005指導(dǎo)教師(簽名):張國旭教研室主任(簽名):課程設(shè)計(jì)成績評定表出勤情況出勤天數(shù) 缺勤天數(shù)成績評定出勤情況及設(shè)計(jì)過程表現(xiàn)(20分)課設(shè)答辯(20分)設(shè)計(jì)成果(60分)總
3、成績(100分)提問(答辯)問題情況綜合評定 指導(dǎo)教師簽名: 年 月 日目錄1 引言12 設(shè)計(jì)方案選擇22.1控制部分的方案選擇22.2 顯示模塊選擇方案和論證22.3時(shí)鐘芯片的選擇方案和論證22.4電路設(shè)計(jì)最終方案決定23系統(tǒng)的硬件設(shè)計(jì)與實(shí)現(xiàn)33.1 電路設(shè)計(jì)框圖33.2 系統(tǒng)硬件概述33.3 主要單元電路的器件3單片機(jī)主控制模塊3時(shí)鐘電路模塊的設(shè)計(jì)4顯示模塊的設(shè)計(jì)63.3.4 74LS164驅(qū)動(dòng)模塊64 系統(tǒng)的軟件設(shè)計(jì)84.1 主程序流程圖84.2 陽歷算法84.3 陰歷算法84.4 時(shí)間調(diào)整程序流程圖115 體會(huì)13參考文獻(xiàn)14附錄一:整體設(shè)計(jì)圖15附錄二:系統(tǒng)程序清單161 引言隨著微
4、電子技術(shù)的高速發(fā)展,單片機(jī)在國民經(jīng)濟(jì)的個(gè)人領(lǐng)域得到了廣泛的運(yùn)用。單片機(jī)以體積小、功能全、性價(jià)比高等諸多優(yōu)點(diǎn),在工業(yè)控制、家用電器、通信設(shè)備、信息處理、尖端武器等各種測控領(lǐng)域的應(yīng)用中獨(dú)占鰲頭,單片機(jī)開發(fā)技術(shù)已成為電子信息、電氣、通信、自動(dòng)化、機(jī)電一體化等專業(yè)技術(shù)人員必須掌握的技術(shù)。而電子萬年歷作為電子類小設(shè)計(jì)不僅是市場上的寵兒,也是是單片機(jī)實(shí)驗(yàn)中一個(gè)很常用的題目。因?yàn)樗挠泻芎玫拈_放性和可發(fā)揮性,因此對作者的要求比較高,不僅考察了對單片機(jī)的掌握能力更加強(qiáng)調(diào)了對單片機(jī)擴(kuò)展的應(yīng)用。而且在操作的設(shè)計(jì)上要力求簡潔,功能上盡量齊全,顯示界面也要出色。數(shù)字顯示的日歷鐘已經(jīng)越來越流行,特別是適合在家庭居室、辦
5、公室、大廳、會(huì)議室、車站和廣場等使用,壁掛式LED數(shù)碼管顯示的日歷鐘逐漸受到人們的歡迎。LED數(shù)字顯示的日歷鐘顯示清晰直觀、走時(shí)準(zhǔn)確、可以進(jìn)行夜視,并且還可以擴(kuò)展出多種功能。 所以,電子萬年歷無論作為比賽題目還是練習(xí)題目都是很有價(jià)值。本文通過對一個(gè)基于單片機(jī)的能實(shí)現(xiàn)萬年歷功能電子時(shí)鐘的設(shè)計(jì),從而達(dá)到學(xué)習(xí)、了解單片機(jī)相關(guān)指令在各方面的應(yīng)用。系統(tǒng)由主控制器AT89C51、時(shí)鐘電路DS1302、顯示電路、按鍵電路等部分構(gòu)成,能實(shí)現(xiàn)時(shí)鐘日歷顯示的功能。2 設(shè)計(jì)方案選擇2.1控制部分的方案選擇采用51系列的89C51單片機(jī),89C51單片機(jī)有豐富的中斷源和時(shí)基,方便本實(shí)驗(yàn)的設(shè)計(jì)。它的準(zhǔn)確度相當(dāng)高,并且C
6、語言和匯編兼容的編程環(huán)境也很方便來實(shí)現(xiàn)一些遞歸調(diào)用。I/O口功能也比較強(qiáng)大,方便使用。用89C51單片機(jī)做控制器最有特色的就是它的可編程音頻處理,可完成語音的錄制播放和識(shí)別。這些都方便對設(shè)計(jì)進(jìn)行擴(kuò)展,使設(shè)計(jì)更加完善。成本也相對低一些。2.2 顯示模塊選擇方案和論證方案一:采用LED液晶顯示屏,液晶顯示屏的顯示功能強(qiáng)大,可顯示大量文字、圖形、顯示多樣,清晰可見,但是價(jià)格昂貴,所用口線多,所以在此設(shè)計(jì)中不采用LED液晶顯示屏。方案二:采用點(diǎn)陣式數(shù)碼管顯示,點(diǎn)陣式數(shù)碼管是由八行八列的發(fā)光二極管組成,對于顯示文字比較適合,采用在顯示數(shù)字顯得太浪費(fèi),且價(jià)格也相對較高,所以也不用此種作為顯示。方案三:采用
7、LED數(shù)碼管動(dòng)態(tài)掃描,LED數(shù)碼管價(jià)格適中,對于顯示數(shù)字最合適,而且采用動(dòng)態(tài)掃描法與單片機(jī)連接時(shí),占用的單片機(jī)口線少。所以采用了LED數(shù)碼管作為顯示。2.3時(shí)鐘芯片的選擇方案和論證方案一:直接采用單片機(jī)定時(shí)計(jì)數(shù)器提供秒信號,使用程序?qū)崿F(xiàn)年、月、日、星期、時(shí)、分、秒計(jì)數(shù)。采用此種方案雖然減少芯片的使用,節(jié)約成本,但是,實(shí)現(xiàn)的時(shí)間誤差較大。所以不采用此方案。方案二:采用DS1302時(shí)鐘芯片實(shí)現(xiàn)時(shí)鐘,DS1302芯片是一種高性能的時(shí)鐘芯片,可自動(dòng)對秒、分、時(shí)、日、周、月、年以及閏年補(bǔ)償?shù)哪赀M(jìn)行計(jì)數(shù),而且精度高,位的RAM做為數(shù)據(jù)暫存區(qū),工作電壓2.5V5.5V范圍內(nèi),2.5V時(shí)耗電小于300nA。2
8、.4電路設(shè)計(jì)最終方案決定綜上各方案所述,對此次作品的方案選定: 采用AT89C51作為主控制系統(tǒng);DS1302提供時(shí)鐘;LED數(shù)碼管動(dòng)態(tài)掃描作為顯示。3系統(tǒng)的硬件設(shè)計(jì)與實(shí)現(xiàn)3.1 電路設(shè)計(jì)框圖按照系統(tǒng)設(shè)計(jì)功能的要求,初步確定設(shè)計(jì)系統(tǒng)由主控模塊、時(shí)鐘模塊、顯示模塊、鍵盤接口模塊共4個(gè)模塊組成,電路系統(tǒng)構(gòu)成框圖如圖3-1所示。主控芯片使用51系列AT89C51單片機(jī),時(shí)鐘芯片使用美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實(shí)時(shí)時(shí)鐘DSl302。采用DSl302作為主要計(jì)時(shí)芯片,可以做到計(jì)時(shí)準(zhǔn)確。更重要的是,DSl302可以在很小電流的后備電源(2.55.5V電源,在2.5V時(shí)耗電小于3
9、00 nA)下繼續(xù)計(jì)時(shí),并可編程選擇多種充電電流來對后備電源進(jìn)行慢速充電,可以保證后備電源基本不耗電。 顯示模塊采用普通的共陽LED數(shù)碼管,鍵輸入采用查詢法實(shí)現(xiàn)調(diào)整功能。AT89C51主控制模 塊DS1302時(shí)鐘模塊LED數(shù)碼管動(dòng)態(tài)掃描顯示模塊鍵盤模塊圖3-1 電路設(shè)計(jì)框圖3.2 系統(tǒng)硬件概述本電路是由AT89C52單片機(jī)為控制核心,具有在線編程功能,低功耗,能在3V超低壓工作;時(shí)鐘電路由DS1302提供,它是一種高性能、低功耗、帶RAM的實(shí)時(shí)時(shí)鐘電路,它可以對年、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí),具有閏年補(bǔ)償功能,工作電壓為2.5V5.5V。采用三線接口與CPU進(jìn)行同步通信,并可采用突發(fā)方式
10、一次傳送多個(gè)字節(jié)的時(shí)鐘信號或RAM數(shù)據(jù)。DS1302內(nèi)部有一個(gè)31*8的用于臨時(shí)性存放數(shù)據(jù)的RAM寄存器。可產(chǎn)生年、月、日、周日、時(shí)、分、秒,具有使用壽命長,精度高和低功耗等特點(diǎn),同時(shí)具有掉電自動(dòng)保存功能;顯示部份由19個(gè)數(shù)碼管。使用動(dòng)態(tài)掃描顯示方式對數(shù)字的顯示。3.3 主要單元電路的器件單片機(jī)主控制模塊AT89C51單片機(jī)為40引腳雙列直插芯片,有四個(gè)I/O口P0,P1,P2,P3, MCS-51單片機(jī)共有4個(gè)8位的I/O口(P0、P1、P2、P3),每一條I/O線都能獨(dú)立地作輸出或輸入。1. 內(nèi)部結(jié)構(gòu)按功能分為8部分:CUP,程序存儲(chǔ)器,數(shù)據(jù)存儲(chǔ)器,時(shí)鐘電路,串行口,并行I/O口,中斷系統(tǒng)
11、,定時(shí)/計(jì)數(shù)器。2. 控制引腳XTAL1和XTAL2:時(shí)鐘引腳,外接晶體引線端。當(dāng)使用芯片內(nèi)部時(shí)鐘時(shí),此兩引腳端用于外接石英晶體和微調(diào)電容;當(dāng)使用外部時(shí)鐘時(shí),用于接外部時(shí)鐘脈沖信號。RST/:RST是復(fù)位信號輸入端,是備用電源輸入端。當(dāng)RST輸入端保持2個(gè)機(jī)器周期以上高電平時(shí),單片機(jī)完成復(fù)位初始化操作。當(dāng)主電源發(fā)生故障而突然下降到一定低電壓或斷電時(shí),第2功能將為片內(nèi)RAM提供電源以保護(hù)片內(nèi)RAM中的信息不丟失。ALE/PROG:地址鎖存允許信號輸入端。在存取外存儲(chǔ)器時(shí),用于鎖存低8位地址信號。當(dāng)單片機(jī)正常工作后,ALE端就周期性地以時(shí)鐘振蕩頻率的1/6固定頻率向外輸出正脈沖信號。此引腳的第2功
12、能PROG是對片內(nèi)帶有4K字節(jié)EPROM的8751固外程序時(shí),作為編程脈沖輸入端。:程序存儲(chǔ)器允許輸出端。當(dāng)片外程序存儲(chǔ)器的讀選通信號,低電平有效。CPU從外部程序存儲(chǔ)器取指令時(shí),信號會(huì)自動(dòng)產(chǎn)生負(fù)脈沖,作為外部程序存儲(chǔ)器的選通信號。/:程序存儲(chǔ)器地址允許輸入端。當(dāng)為高電平時(shí),CPU執(zhí)行片內(nèi)程序存儲(chǔ)器指令,但當(dāng)PC中的值超過0FFFH時(shí),將自動(dòng)轉(zhuǎn)向執(zhí)行片外程序存儲(chǔ)器指令;當(dāng)/為低電平時(shí),CPU只執(zhí)行片外程序存儲(chǔ)器指令。3. I/O口引腳P0.0P0.7:P0口8位雙向I/O口;P1.0P1.7:P1口8位準(zhǔn)雙向I/O口;P2.0P2.7:P2口8位準(zhǔn)雙向I/O口;P3.0P3.7:P3口8位準(zhǔn)雙
13、向I/O口。4. 片外總線結(jié)構(gòu)分為三部分:數(shù)據(jù)總線 Data Bus(DB),地址總線 Address Bus (AB),控制總線 Control Bus(CB)。時(shí)鐘電路模塊的設(shè)計(jì)(1)時(shí)鐘芯片DS1302引腳及功能特點(diǎn)圖3-2示出DS1302的引腳排列,其中為后備電源,為主電源。在主電源關(guān)閉的情況下,也能保持時(shí)鐘的連續(xù)運(yùn)行。DS1302由或兩者中的較大者供電。當(dāng)大于+0.2V時(shí),給DS1302供電。當(dāng)小于時(shí),DS1302由供電。X1和X2是振蕩源,外接32.768KHz晶振。RST是復(fù)位/片選線,通過把RST輸入驅(qū)動(dòng)置高電平來啟動(dòng)所有的數(shù)據(jù)傳送。RST輸入有兩種功能:首先,RST接通控制邏
14、輯,允許地址/命令序列送入移位寄存器;其次,RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當(dāng)RST為高電平時(shí),所有的數(shù)據(jù)傳送被初始化,允許對DS1302進(jìn)行操作。如果在傳送過程中RST置為低電平,則會(huì)終止此次數(shù)據(jù)傳送,I/O引腳變?yōu)楦咦钁B(tài)。上電動(dòng)行時(shí),在大于等于2.5V之前,RST必須保持低電平。中有在SCLK 為低電平時(shí),才能將RST置為高電平,I/O為串行數(shù)據(jù)輸入端(雙向)。SCLK始終是輸入端。Vcc1X1X2GNDVcc2SCLKI/O12348765圖3-2 DS1302引腳排列 (2) 時(shí)鐘芯片DS1302的工作原理:DS1302在每次進(jìn)行讀、寫程序前都必須初始化,先把SCLK端置
15、“0”,接著把RST端置“1”,最后才給予SCLK脈沖。表3-1為DS1302的控制字,此控制字的位7必須置1,若為0則不能把對DS1302進(jìn)行讀寫數(shù)據(jù)。對于位6,若對程序進(jìn)行讀/寫時(shí)RAM=1,對時(shí)間進(jìn)行讀/寫時(shí),CK=0。位1至位5指操作單元的地址。位0是讀/寫操作位,進(jìn)行讀操作時(shí),該位為1;該位為0則表示進(jìn)行的是寫操作??刂谱止?jié)總是從最低位開始輸入/輸出的。表6為DS1302的日歷、時(shí)間寄存器內(nèi)容:“CH”是時(shí)鐘暫停標(biāo)志位,當(dāng)該位為1時(shí),時(shí)鐘振蕩器停止,DS1302處于低功耗狀態(tài);當(dāng)該位為0時(shí),時(shí)鐘開始運(yùn)行?!癢P”是寫保護(hù)位,在任何的對時(shí)鐘和RAM的寫操作之前,WP必須為0。當(dāng)“WP”
16、為1時(shí),寫保護(hù)位防止對任一寄存器的寫操作。表3-1 DS1302的控制字格式 RAM RD 1 A4 A3 A2 A1 A0 / CK /WR(3) 數(shù)據(jù)輸入輸出(I/O)在控制指令字輸入后的下一個(gè)SCLK時(shí)鐘的上升沿時(shí),數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入從低位即位0開始。同樣,在緊跟8位的控制指令字后的下一個(gè)SCLK脈沖的下降沿讀出DS1302的數(shù)據(jù),讀出數(shù)據(jù)時(shí)從低位0位到高位7。 (4) DS1302的寄存器DS1302有12個(gè)寄存器,其中有7個(gè)寄存器與日歷、時(shí)鐘相關(guān),存放的數(shù)據(jù)位為BCD碼形式,其日歷、時(shí)間寄存器及其控制字見表3-2。表3-2 DS1302的日歷、時(shí)間寄存器寄存器名命令字節(jié)
17、取值范圍寄存器內(nèi)容寫讀秒寄存器80H81H005976543210CH10sSEC分寄存器82H83H0059010minMIN小時(shí)寄存器84H85H0023或011212 24010 PHRHR日期寄存器86H87H0128,29,30,310010DATEDATE月份寄存器88H89H011200010MMONTH周寄存器8AH8BH010700000DAY年寄存器8CH8DH019910YEARYEAR此外,DS1302 還有年份寄存器、控制寄存器、充電寄存器、時(shí)鐘突發(fā)寄存器及與RAM相關(guān)的寄存器等。時(shí)鐘突發(fā)寄存器可一次性順序讀寫除充電寄存器外的所有寄存器內(nèi)容。 DS1302與RAM相關(guān)
18、的寄存器分為兩類:一類是單個(gè)RAM單元,共31個(gè),每個(gè)單元組態(tài)為一個(gè)8位的字節(jié),其命令控制字為C0HFDH,其中奇數(shù)為讀操作,偶數(shù)為寫操作;另一類為突發(fā)方式下的RAM寄存器,此方式下可一次性讀寫所有的RAM的31個(gè)字節(jié),命令控制字為FEH(寫)、FFH(讀)。 3.3.3顯示模塊的設(shè)計(jì)基本顯示原理:時(shí)鐘開始顯示為0時(shí)0分0秒,也就是數(shù)碼管顯示000000,然后每秒秒位加1 ,到9后,10秒位加1,秒位回0。10秒位到5后,即59秒,分鐘加1,10秒位回0。依次類推,時(shí)鐘最大的顯示值為23小時(shí)59分59秒。這里只要確定了1秒的定時(shí)時(shí)間, 其他位均以此為基準(zhǔn)往上累加。 同時(shí)時(shí)鐘達(dá)到最大值的時(shí)候天數(shù)
19、也增加一位,知道顯示了7后再變?yōu)?,同時(shí)陰歷和陽歷的天數(shù)也加1,根據(jù)不同的月份顯示的天數(shù)陽歷有28,29,30,31天,陰歷就要經(jīng)過計(jì)算得到,到了12個(gè)月后,年數(shù)自動(dòng)增加1,以此類推,顯示萬年歷的現(xiàn)實(shí)。如圖3-3所示,采用動(dòng)態(tài)掃描顯示,由19個(gè)數(shù)碼管,P2口接1K限流電阻,再接NPN型三極管接到共陽數(shù)碼管的COM端作為選通位碼,每位選擇相應(yīng)的列。74lS164接240限流電阻,再接共行的LED數(shù)碼管的斷碼。3.3.4 74LS164驅(qū)動(dòng)模塊74LS164內(nèi)部為8個(gè)D觸發(fā)器,用以實(shí)現(xiàn)數(shù)據(jù)的串行移位。74LS164的特性如表3-3所列。單片機(jī)以串行口方式0輸出數(shù)據(jù),3片74LS74作為3排共陽數(shù)碼
20、管的串/并轉(zhuǎn)換顯示接口。74LS164為TTL單向8為移位寄存器,可實(shí)現(xiàn)串行輸入,并行輸出。其中A、B(第1、2腳)為串行數(shù)據(jù)輸入端,兩個(gè)引腳按邏輯“與”運(yùn)算規(guī)律輸入信號,只有一個(gè)信號輸入時(shí)可并接,共同作為輸入腳。CP(第8腳)為時(shí)鐘輸入端,可連接到串行口的TXD端。每一個(gè)時(shí)鐘信號的上升沿加到CP端時(shí),移位寄存器移一位。8個(gè)時(shí)鐘脈沖過后,8為二進(jìn)制數(shù)全部移入74LS164中。3片74LS74首尾相連,而時(shí)鐘端接在一起。這樣當(dāng)輸入8個(gè)脈沖時(shí),從單片機(jī)RXD端輸出的第一字節(jié)數(shù)據(jù)就進(jìn)入到了第一片74LS164中,而當(dāng)?shù)诙€(gè)8個(gè)脈沖到來后,第一字節(jié)數(shù)據(jù)就進(jìn)入了第二片74LS164中,而隨后的第二字節(jié)的
21、數(shù)據(jù)則進(jìn)入了第一片74LS164。這樣當(dāng)?shù)谌?個(gè)脈沖完成后,首次送出的數(shù)據(jù)被送到了最上面的74LS164中,其他數(shù)據(jù)依次出現(xiàn)在第二、第一片74LS164中,實(shí)現(xiàn)了數(shù)據(jù)在74LS164中的串行輸入、并行輸出。圖3-3 顯示部分表3-3 74LS74特性表操作模式輸入輸出復(fù)位MRABQ0Q1Q7移位LXXLQ0Q6HLLLQ0Q6HLHLQ0Q6HHLLQ0Q6HHHHQ0Q64 系統(tǒng)的軟件設(shè)計(jì)4.1 主程序流程圖開始初始化讀、寫日期、時(shí)間顯示子程序農(nóng)歷自動(dòng)更新子程序日期、時(shí)間修改子程序閏月子程序定時(shí)鬧鈴子程序圖4-1 主程序流程圖4.2 陽歷算法陽歷的算法比較簡單,每十月的總的天數(shù)相對來說是固
22、定的。只有2月份,在閏年是29天,在非閏年是28天。每個(gè)月的日歷排法主要是確定每個(gè)月第一天是星期幾。我們知道1901年1月1日是星期二,星期的變化是7天一個(gè)周期,比如說要計(jì)算1901年2月1日是星期幾,可以這樣推算:從1901年1月1日到1901年2月1日總共經(jīng)過了31天(從表4-1可 看出),31對7取模是3,1901年1月1日是星期二,加三后,是星期五。因此1901年2月1日是星期五。同理,可以推算出從19012100年任何一天是星期幾。陽歷流程圖見圖4-2。4.3 陰歷算法陰歷的算法比較復(fù)雜,它包含兩個(gè)部分。一部分是陽歷日和陰歷日的對應(yīng)關(guān)系;另一部分則是陽歷日和農(nóng)歷節(jié)氣的對應(yīng)關(guān)系。下面只
23、介紹與設(shè)計(jì)有關(guān)的陰歷和陽歷的關(guān)系。開始置陽歷總天數(shù)當(dāng)前月加1總天數(shù)中加入該月天數(shù)當(dāng)前號數(shù)是總天數(shù)月加總天數(shù)中加入號與當(dāng)前月相同計(jì)算陽歷天數(shù)結(jié)束,總天數(shù)中的數(shù)據(jù)為當(dāng)前日期在陽歷中的第幾天圖4-2 計(jì)算機(jī)陽歷程序流程圖表4-1比特?cái)?shù)0123456789101112131415數(shù)據(jù)!1!1!1xxxx我們先要做一個(gè)數(shù)據(jù)表,這個(gè)數(shù)據(jù)表里面每2個(gè)字節(jié),表示T一個(gè)陰所年彝個(gè)月份的天教 2個(gè)字節(jié)(共16bit)的具體意義如表4-1。 其中“!(01)中“0”表示30天,“1”表示29天?!皒 x x x(4個(gè)比特可表示數(shù)值范圍015)”表示該年中是否有閏月,數(shù)值“0”表示無閏月,“ 112” 表示某一個(gè)閏月
24、。閏月一般是29天;在200年中(19012100年),閏月是30天的,可用一個(gè)特殊語句來解決。這里2OO年需要200 x 2=400個(gè)字節(jié),構(gòu)成陰歷壓縮數(shù)據(jù)表。有了陰歷的數(shù)據(jù)表后,主要是要確定陽歷日和胡歷日的對應(yīng)關(guān)系。我們知道陽歷年1901年1月1日,對應(yīng)的陰歷年是對應(yīng)的陰歷日,可用以下算法:(1)從陽歷年1901年1月1日到1901年2月1日,計(jì)算出經(jīng)過了31天;(2)根據(jù)陰歷數(shù)據(jù)表知道陰歷年1900年11月有29天,因此3129=2天。原來陽歷年1901年1月1日對應(yīng)的陰歷日是11日,則有11+1=13;(3)因?yàn)殛帤v1901年12月份有30天,而13<=30,所以陽歷年1901年
25、2月1日對應(yīng)的陰歷年是1900年12月13日。如果上一步相加得出的散大于當(dāng)前陰歷月的總的天敢,別應(yīng)該繼續(xù)減去當(dāng)前陰歷月的總的天數(shù),直到符合條件。 對于月份增加時(shí),還要通過數(shù)據(jù)表查看是否要經(jīng)過閏月。對于其他任何一個(gè)陽歷日和陰歷日的對應(yīng)關(guān)系,都可以通過以上算法求得結(jié)果。流程圖見圖4-3。程序入口R2減一個(gè)月天數(shù)夠減?下個(gè)月為閏月?減去閏月天數(shù)月加1R3=0?R2=R2+R3R3=0月份為當(dāng)前正在減的月份的前一個(gè)月的最后一天月份為當(dāng)前正在減的月份,號數(shù)為R2中的值R2=0?圖4-3 陰歷流程圖4.4 時(shí)間調(diào)整程序流程圖調(diào)整時(shí)間用3 個(gè)調(diào)整按鈕,1個(gè)作為移位、控制用,另外2個(gè)作為加和減用,分別定義為控
26、制按鈕、加按鈕、減按扭。在調(diào)整時(shí)間過程中,要調(diào)整的那位與別的位應(yīng)該有區(qū)別,所以增加了閃爍功能,即調(diào)整的那位一直在閃爍直到調(diào)整下一位,當(dāng)達(dá)到50ms溢出時(shí),就送給該位熄滅符,在下一次溢出時(shí),再送正常顯示的值,不斷交替,直到調(diào)整到該位結(jié)束,此時(shí)送正常顯示值給該位,再進(jìn)入下一位調(diào)整閃爍程序,時(shí)間調(diào)整程序流程圖如圖4-4。分鐘減1分鐘加1減鍵有效加鍵有效等待按鍵程序控制鍵有效,進(jìn)入分鐘調(diào)整程序星期減1星期加1減鍵有效加鍵有效等待按鍵程序控制鍵有效,進(jìn)入星期調(diào)整程序月減1月加1減鍵有效加鍵有效等待按鍵程序控制鍵有效,進(jìn)入月調(diào)整程序小時(shí)減1小時(shí)加1減鍵有效加鍵有效等待按鍵程序控制鍵有效,進(jìn)入小時(shí)調(diào)整程序日
27、減1日加1減鍵有效加鍵有效等待按鍵程序控制鍵有效,進(jìn)入日調(diào)整程序年減1年加1減鍵有效加鍵有效等待按鍵程序控制鍵有效,進(jìn)入年調(diào)整程序開始按鍵有效,跳出時(shí)間調(diào)整程序,進(jìn)入主循環(huán)程序圖4-4 時(shí)間調(diào)整程序流程圖5 體會(huì)在整個(gè)設(shè)計(jì)過程中,充分發(fā)揮人的主觀能動(dòng)性,自主學(xué)習(xí),學(xué)到了許多沒學(xué)到的知識(shí),完成了對萬年歷的設(shè)計(jì),達(dá)到了預(yù)期的目的。在最初的設(shè)計(jì)中,發(fā)揮“三個(gè)臭皮匠,頂個(gè)諸葛亮”的作用,相互學(xué)習(xí)、相互討論、研究,完成了最初的設(shè)想。對電路的設(shè)計(jì)、布局要先有一個(gè)好的構(gòu)思,才顯得電路板美觀、大方。程序編寫中,由于思路不清晰,開始時(shí)遇到了很多的問題,經(jīng)過靜下心來思考,理清了思路,終于能夠完成它。在此次設(shè)計(jì)中,
28、知道了做凡事要有一顆平常的心,不要想著走捷徑,一步一個(gè)腳印。也練就了我們的耐心,做什么事都在有耐心。此次設(shè)計(jì)中學(xué)到了很多很多東西,這是最重要的。做課程設(shè)計(jì)同時(shí)也是對課本知識(shí)的鞏固和加強(qiáng),由于課本上的知識(shí)太多,平時(shí)課間的學(xué)習(xí)并不能很好的理解和運(yùn)用各個(gè)元件的功能,而且考試內(nèi)容有限,所以在這次課程設(shè)計(jì)中,我們了解了很多元件的功能,并且對于其在電路中的使用有了更多的認(rèn)識(shí)。認(rèn)識(shí)來源于實(shí)踐,實(shí)踐是認(rèn)識(shí)的動(dòng)力和最終目的,實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn)。所以這個(gè)課程設(shè)計(jì)對我們的作用是非常大的,同時(shí)通過這次課程設(shè)計(jì)使我懂得了理論與實(shí)際結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐結(jié)合起來,從理論
29、中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考能力。此次課程設(shè)計(jì)學(xué)到了許多可能學(xué)不到的東西,比如多利思考解決問題的能力,出現(xiàn)差錯(cuò)的隨機(jī)應(yīng)變,和與人合作共同提高,我們都受益匪淺,今后的制作應(yīng)該更加輕松,自己都能扛得起并高質(zhì)量的完成項(xiàng)目。這次課設(shè)終于順利完成了,在課設(shè)中遇到了很多專業(yè)知識(shí)問,最后在老師的辛勤指導(dǎo)下,終于迎刃而解。同時(shí),在老師的身上我們也學(xué)到了很多實(shí)用的知識(shí),在此我們表示感謝!同時(shí),對給過我?guī)椭乃型瑢W(xué)和各位指導(dǎo)老師再次表示衷心的感謝!參考文獻(xiàn)1 畢滿清電子技術(shù)實(shí)驗(yàn)與課程設(shè)計(jì)北京:機(jī)械工業(yè)出版社,20012 閻石主編數(shù)字電子技術(shù)基礎(chǔ)(第五版)北京:高等教育出版
30、社,20092 樓然苗,李光飛. 單片機(jī)課程設(shè)計(jì). 北京航空航天大學(xué)出版社,20073 楊子文. 單片機(jī)原理及應(yīng)用 西安電子科技大學(xué)出版社,20064 王法能. 單片機(jī)原理及應(yīng)用 科學(xué)出版社,20045 曹琳琳. 單片機(jī)原理及接口技術(shù)M北京:國防科技大學(xué)出版社,2000年6 許惠民. 單片微型計(jì)算機(jī)原理、接口及應(yīng)用M 北京:北京郵電大學(xué)出版社,2000年7 肖看,李群芳. 單片機(jī)原理、接口及應(yīng)用嵌入式系統(tǒng)技術(shù)基礎(chǔ)(第2版)北京:清華大學(xué)出版社,2001年附錄一:整體設(shè)計(jì)圖附錄二:系統(tǒng)程序清單萬年歷程序67H(高兩位年)66H(低兩位年)65H(月)64H(星期);63H(日)62H(小時(shí))61
31、H(分)60H(秒)57H(農(nóng)歷月)56H(農(nóng)歷日);顯示緩沖單元7CH7BH(4CH4BH)年低位,7AH79H(4AH49H)月;78H(48H)星期,77H76H(47H46H)日,75H74H(45H44H)時(shí);73H72H(43H42H)分,71H70H(41H40H)秒,5EH5DH(55H54H)農(nóng)歷年;5CH5BH(53H52H)農(nóng)歷月,5AH59H(51H50H)農(nóng)歷日;閏年標(biāo)志為F0,定時(shí)器T1為調(diào)整時(shí)候閃爍用。 CONFIG12 EQU 7FH TEMPH EQU 21H TEMPL EQU 20H REG2 EQU 22H REG3 EQU 23H REG4 EQU 2
32、4H DAT EQU P0.7 SCLK EQU P3.2 IO EQU P3.3 RST EQU P3.4 year DATA 66H month DATA 65H week DATA 64H day DATA 63H hour DATA 62H mintue DATA 61H second DATA 60H ORG 0000H LJMP START ORG 001BH LJMP INTT1START: ;初值 LCALL ZJ SETB EA MOV SCON,#00H ; 串行輸出,方式0 MOV TMOD,#10H ;計(jì)數(shù)器1,方式1 MOV TL1,#00H MOV TH1,#00H
33、 MOV 32H,#8EH MOV 31H,#00H ;允許寫1302 LCALL WRITE MOV 32H,#90H MOV 31H,#0A6H ;1302充電,充電電流1.1MA LCALL WRITE ;主程序MAIN1: MOV 32H,#8DH ;讀出年 LCALL READ MOV year,31H MOV 32H,#8BH ;讀出星期 LCALL READ MOV week,31H MOV 32H,#89H ;讀出月 LCALL READ MOV month,31H MOV 32H,#87H ;讀出日 LCALL READ MOV day,31H MOV 32H,#85H ;讀
34、出小時(shí) LCALL READ MOV hour,31H MOV 32H,#83H ;讀出分鐘 LCALL READ MOV mintue,31H MOV 32H,#81H ;讀出秒 LCALL READ MOV second,31H ;分離緩存 MOV R0,year ;年分離,送顯示緩存 LCALL DIVIDE MOV 7BH,R1 MOV 4BH,R1 MOV 7CH,R2 MOV 4CH,R2 MOV 78H,week MOV 48H,week MOV R0,month;月分離,送顯示緩存 LCALL DIVIDE MOV 79H,R1 MOV 49H,R1 MOV 7AH,R2 MO
35、V 4AH,R2 MOV R0,day ;日分離,送顯示緩存 LCALL DIVIDE MOV 76H,R1 MOV 46H,R1 MOV 77H,R2 MOV 47H,R2 MOV R0,hour ;小時(shí)分離,送顯示緩存 LCALL DIVIDE MOV 74H,R1 MOV 44H,R1 MOV 75H,R2 MOV 45H,R2 MOV R0,mintue ;分鐘分離,送顯示緩存 LCALL DIVIDE MOV 72H,R1 MOV 42H,R1 MOV 73H,R2 MOV 43H,R2 MOV R0,second;秒分離,送顯示緩存 LCALL DIVIDE MOV 70H,R1
36、MOV 40H,R1 MOV 71H,R2 MOV 41H,R2 CLR EA LCALL TOUTOU SETB EA LCALL DISPLAY LCALL GENGXIAN ;更新農(nóng)歷程序 JNB P0.1,SETG111 JNB F0,SSS setb P0.4 ;非閏月,則p0.4清零,指示燈亮 LJMP MAIN1SETG111: LJMP SETGSSS: clr P0.4 ;閏月,則p0.4置位,指示燈不亮 LJMP MAIN1; 溫度TOUTOU: LCALL CHUSHI LCALL RDTEMP MOV A,TEMPL ANL A,#11110000B MOV TEMPL
37、,A MOV A,TEMPH ANL A,#00000111B ORL A,TEMPL SWAP A MOV 25H,A MOV A,25H MOV B,#64H DIV AB MOV A,B MOV B,#0AH DIV AB SWAP A ORL A,B MOV 10H,A RETCHUSHI: LCALL RESET MOV A,#0CCH LCALL WRITE111 MOV A,#4EH LCALL WRITE111 MOV A,#CONFIG12 LCALL WRITE111 RETRDTEMP: LCALL RESET MOV A,#0CCH LCALL WRITE111 MOV
38、 A,#44H LCALL WRITE111 LCALL DL1MS LCALL RESET MOV A,#0CCH LCALL WRITE111 MOV A,#0BEH LCALL WRITE111 LCALL ERAD111 MOV TEMPL,A LCALL ERAD111 MOV TEMPH,A RETRESET:LA:SETB DAT MOV 52H,#200LB:CLR DAT DJNZ 52H,LB SETB DAT MOV 52H,#30LC: DJNZ 52H,LC CLR C ORL C,DAT JC LB MOV 58H,#80LD: ORL C,DAT JC LP DJ
39、NZ 58H,LD SJMP LALP: MOV 52H,#250LF: DJNZ 52H,LF RETWRITE111: MOV 53H,#8W51HA: SETB DAT MOV 54H,#8 RRC A CLR DATW52HA: DJNZ 54H,W52HA MOV DAT,C MOV 54H,#30W53HA: DJNZ 54H,W53HA DJNZ 53H,W51HA SETB DAT RETERAD111: CLR EA MOV 58H,#8RD1A: CLR DAT MOV 54H,#6 NOP SETB DATRD2A: DJNZ 54H,RD2A MOV C,DAT RRC
40、 A MOV 55H,#30RD3A: DJNZ 55H,RD3A DJNZ 58H,RD1A SETB DAT RET;公歷設(shè)置程序SETG : SETB TR1 SETB ET1 MOV 32H,#8EH MOV 31H,#00H ;允許寫1302 LCALL WRITE MOV 32H,#80H MOV 31H,#80H ;1302停止振蕩 LCALL WRITEGWAIT: ; LCALL DISPLAY JNB P0.1,GWAITSETG1: LCALL DISPLAY JNB P0.1,SETG2 JNB P0.2,GADDYEAR JNB P0.3,JIANYEAR AJMP
41、SETG1GADDYEAR: MOV R7,66H ;年加一 LCALL ADD1 MOV 66H,A CJNE A,#51H,GADDYEAR1 MOV 66H,#00H AJMP GADDYEAR1JIANYEAR: MOV R7,66H ;年減一 LCALL JIAN1 MOV 66H,A CJNE A,#00H,GADDYEAR1 MOV 66H,#51HGADDYEAR1: MOV 32H,#8CH ;年值送人1302 MOV 31H,66H LCALL WRITE MOV R0,66H LCALL DIVIDE ;年分離送顯示緩存 MOV 4BH,R1 MOV 7BH,R1 MOV
42、 4CH,R2 MOV 7CH,R2WAITT1: ; LCALL DISPLAY JNB P0.2,WAITT1 JNB P0.3,WAITT1 AJMP SETG1SETG2: SETB 0AH ;調(diào)月時(shí)閃標(biāo)志GWAIT2: LCALL DISPLAY JNB P0.1,GWAIT2SETG3: LCALL DISPLAY JNB P0.1,SETG4 JNB P0.2,GADDMONTH JNB P0.3,JIANMONTH AJMP SETG3GADDMONTH: MOV R7,65H ;月加一 LCALL ADD1 MOV 65H,A CJNE A,#13H,GADDMONTH1 M
43、OV 65H,#01H AJMP GADDMONTH1JIANMONTH: MOV R7,65H ;月減一 LCALL JIAN1 MOV 65H,A CJNE A,#00H,GADDMONTH1 MOV 65H,#12HGADDMONTH1: MOV 32H,#88H ;月值送人1302 MOV 31H,65H LCALL WRITE MOV R0,65H LCALL DIVIDE ;月分離,送顯示緩存 MOV 79H,R1 MOV 49H,R1 MOV 7AH,R2 MOV 4AH,R2WAITT2: ; LCALL DISPLAY JNB P0.2,WAITT2 JNB P0.3,WAI
44、TT2 AJMP SETG3SETG4: SETB 0BH ;調(diào)日時(shí)閃標(biāo)志GWAIT4: LCALL DISPLAY JNB P0.1,GWAIT4SETG5: LCALL DISPLAY JNB P0.1,SETG6 JNB P0.2,GADDDAY JNB P0.3,JIANDAY AJMP SETG5GADDDAY: MOV R7,63H ;日加一 LCALL ADD1 MOV 63H,A CJNE A,#32H,GADDDAY1 MOV 63H,#01HJIANDAY: MOV R7,63H ;日減一 LCALL JIAN1 MOV 63H,A CJNE A,#00H,GADDDAY1
45、 MOV 63H,#31HGADDDAY1: MOV 32H,#86H ;日值送人1302 MOV 31H,63H LCALL WRITE MOV R0,63H LCALL DIVIDE;日分離,送顯示緩存 MOV 76H,R1 MOV 46H,R1 MOV 77H,R2 MOV 47H,R2WAITT3: ; LCALL DISPLAY JNB P0.2,WAITT3 JNB P0.3,WAITT3 AJMP SETG5SETG6: SETB 0CH ;調(diào)星期時(shí)閃標(biāo)志GWAIT6: LCALL DISPLAY JNB P0.1,GWAIT6SETG7: LCALL DISPLAY JNB P
46、0.1,SETG8 JNB P0.2,GADDWEEK JNB P0.3,JIANWEEK AJMP SETG7GADDWEEK: MOV R7,64H ;星期加一 LCALL ADD1 MOV 64H,A CJNE A,#07H,GADDWEEK1 MOV 64H,#00H AJMP GADDWEEK1JIANWEEK: MOV R7,64H ;星期減一 LCALL JIAN1 MOV 64H,A CJNE A,#00H,GADDWEEK1 MOV 64H,#06HGADDWEEK1: MOV 32H,#8AH MOV 31H,64H ;星期值送人1302 LCALL WRITE MOV R
47、0,64H LCALL DIVIDE ;星期值分離送顯示緩存 MOV 48H,R1 MOV 78H,R1WAITT4: ; LCALL DISPLAY JNB P0.2,WAITT4 JNB P0.3,WAITT4 AJMP SETG7SETG8: SETB 0DH ;調(diào)小時(shí)時(shí)閃標(biāo)志GWAIT8: LCALL DISPLAY JNB P0.1,GWAIT8SETG9: LCALL DISPLAY JNB P0.1,SETG10 JNB P0.2,GADDHOUR JNB P0.3,JIANHOUR AJMP SETG9GADDHOUR: MOV R7,62H ;小時(shí)加一 LCALL ADD1 MOV 62H,A CJNE A,#24H,GADDHOUR1 MOV 62H,#00H AJMP GADDHOUR1JIANHOUR: MOV R7,62H ;小時(shí)減一 LCALL JIAN1 MOV 62H,A CJNE A,#00H,GADDHOUR1 MOV 62H,#23HGADDHOUR1: MOV 32H,#84H ;小時(shí)值送人1302 MOV 31H,62H LCALL WRITE MOV R0,62H LCALL DIVIDE ;小時(shí)值分離送顯示緩存 MOV 74H,R1 MOV 44H,R1 MOV 75H,R2 MOV 45H,R2WAITT5: ; L
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 影視道具租賃倉儲(chǔ)與道具租賃合同解除合同
- 專利商標(biāo)續(xù)展一體化代理合同
- 高效物流托運(yùn)補(bǔ)充服務(wù)協(xié)議
- 電競俱樂部戰(zhàn)隊(duì)比賽獎(jiǎng)金分配與管理協(xié)議
- 高效生物轉(zhuǎn)化項(xiàng)目合伙人權(quán)益保護(hù)協(xié)議
- 公司管理調(diào)查報(bào)告
- 入職培訓(xùn)會(huì)流程
- 政薪火相傳的傳統(tǒng)美德 課件+-2024-2025學(xué)年統(tǒng)編版道德與法治七年級下冊
- 藥事管理促進(jìn)合理用藥
- 安全我知道活動(dòng)目標(biāo)
- 高中英語外研版 單詞表 必修2
- 廣東省廣州市黃埔區(qū)2025屆中考英語試題模擬卷(一)含答案
- UML面向?qū)ο笤O(shè)計(jì)與分析教程配套課件
- CJ∕T 51-2018 城鎮(zhèn)污水水質(zhì)標(biāo)準(zhǔn)檢驗(yàn)方法
- 職業(yè)技術(shù)學(xué)院《酒店管理概論》課程標(biāo)準(zhǔn)
- 煙花爆竹零售經(jīng)營場所安全管理新規(guī)制度
- 青綠色中國農(nóng)業(yè)科學(xué)院考研復(fù)試模板
- 能源轉(zhuǎn)型與綠色發(fā)展
- 2024年杭州錢塘新區(qū)產(chǎn)業(yè)發(fā)展集團(tuán)有限公司招聘筆試沖刺題(帶答案解析)
- 數(shù)字經(jīng)濟(jì)下平臺(tái)化人力資源管理對員工創(chuàng)新績效的影響研究-數(shù)字能力的調(diào)節(jié)效應(yīng)
- 建筑工程 施工組織設(shè)計(jì)范本
評論
0/150
提交評論