版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、課程設(shè)計(jì)(論文)題 目 名 稱 電子萬(wàn)年歷 課 程 名 稱 單片機(jī)原理與應(yīng)用 學(xué) 生 姓 名 譚 海 清 學(xué) 號(hào) 0640842135 系 、專 業(yè) 信息工程系電子信息工程 指 導(dǎo) 教 師 顧思思 2008年 12 月 15 日摘要隨著科技的快速發(fā)展,人們對(duì)時(shí)間的觀察,從原始的觀測(cè)太陽(yáng)到擺鐘再到如今的電子鐘,不斷創(chuàng)新紀(jì)錄。本次設(shè)計(jì)的電子萬(wàn)年歷系統(tǒng)采用AT89S52單片機(jī)為控制核心,能夠顯示從2000至2099年的年、月、日、星期、時(shí)、分、秒并進(jìn)行整點(diǎn)報(bào)時(shí)。同時(shí)還可顯示一年中的公歷節(jié)日并對(duì)當(dāng)前環(huán)境溫度進(jìn)行實(shí)時(shí)測(cè)量。系統(tǒng)具有讀取方便、顯示直觀、功能多樣、電路簡(jiǎn)潔、成本低廉等諸多優(yōu)點(diǎn),符合電子儀器儀
2、表的發(fā)展趨勢(shì),具有廣闊的市場(chǎng)前景。關(guān)鍵詞:?jiǎn)纹瑱C(jī);多功能萬(wàn)年歷。ABSTRACTAlong with technical fast development, the people to the time observation, from primitive observed the sun to pendulum clock until now electron clock, innovated unceasingly the record. This design's electronic ten thousand calendar system uses at89S52 mono
3、lithic integrated circuit is the control core, can demonstrate from 2000 to 2099 year, month, Japan, week, divides, the second and carries on the integral point to report time. Simultaneously may also demonstrate that one year the solar calendar holiday and carries on the real-time measurement to th
4、e current ambient temperature. The system has the read to be convenient, the demonstration is direct-viewing, the function is diverse, the electric circuit is succinct, cost inexpensive and so on many merits, conforms to the electronic instrumentation measuring appliance's trend of development,
5、has the broad market prospect.KEY WORDS: monolithic integrated circuit; multi-purpose ten thousand calendars.目 錄 一、設(shè)計(jì)要求與方案論證 11.1 設(shè)計(jì)要求 11.2 系統(tǒng)基本方案選擇和論證 11.2.1單片機(jī)芯片的選擇方案和論證 11.2.2 顯示模塊選擇方案和論證 11.2.3 時(shí)鐘芯片的選擇方案和論證 21.2.4 溫度傳感器的選擇方案與論證 2二.系統(tǒng)硬件設(shè)計(jì) 2 2.1 電路設(shè)計(jì)框圖22.2 系統(tǒng)硬件概述32.3 主要單元電路的設(shè)計(jì)32.3.1單片機(jī)主控制模塊的設(shè)計(jì)32.3
6、.2時(shí)鐘電路模塊的設(shè)計(jì)42.3.3溫度采集模塊設(shè)計(jì)42.3.4 電路原理及說明52.3.5液晶顯模塊12864的設(shè)計(jì)及其控制62.3.6穩(wěn)壓電源設(shè)計(jì) 7三、系統(tǒng)軟件設(shè)計(jì) 73.1程序設(shè)計(jì)流程圖 73.2時(shí)鐘程序段的程序設(shè)計(jì) 9 3.3溫度程序段的程序設(shè)計(jì) 133.4主程序段的調(diào)試程序 15四. 系統(tǒng)測(cè)試與仿真 174.1仿真 17 4.2測(cè)試 184.3測(cè)試結(jié)果分析與結(jié)論 18五結(jié)束語(yǔ)句 185.1設(shè)計(jì)總結(jié) 185.2致謝詞 19參考文獻(xiàn) 19附錄一:系統(tǒng)電路圖 20附錄二:元器件清單 21一、設(shè)計(jì)要求與方案論證1.1設(shè)計(jì)要求: 系統(tǒng)具有年、月、日、星期、時(shí)、分、秒等功能; 系統(tǒng)具有溫度計(jì)功能
7、; 系統(tǒng)具備年、月、日、星期、時(shí)、分、秒校準(zhǔn)功能;1.2 系統(tǒng)基本方案選擇和論證1.2.1單片機(jī)芯片的選擇方案和論證:方案一: 采用89C51芯片作為硬件核心,采用Flash ROM,內(nèi)部具有4KB ROM 存儲(chǔ)空間,能于3V的超低壓工作,而且與MCS-51系列單片機(jī)完全兼容,但是運(yùn)用于電路設(shè)計(jì)中時(shí)由于不具備ISP在線編程技術(shù), 當(dāng)在對(duì)電路進(jìn)行調(diào)試時(shí),由于程序的錯(cuò)誤修改或?qū)Τ绦虻男略龉δ苄枰獰氤绦驎r(shí),對(duì)芯片的多次拔插會(huì)對(duì)芯片造成一定的損壞。方案二: 采用AT89S52,片內(nèi)ROM全都采用Flash ROM;能以3V的超底壓工作;同時(shí)也與MCS-51系列單片機(jī)完全該芯片內(nèi)部存儲(chǔ)器為8KB RO
8、M 存儲(chǔ)空間,同樣具有89C51的功能,且具有在線編程可擦除技術(shù),當(dāng)在對(duì)電路進(jìn)行調(diào)試時(shí),由于程序的錯(cuò)誤修改或?qū)Τ绦虻男略龉δ苄枰獰氤绦驎r(shí),不需要對(duì)芯片多次拔插,所以不會(huì)對(duì)芯片造成損壞。綜合選擇所以采用方案二作為主控制系統(tǒng)。1.2.2 顯示模塊選擇方案和論證:方案一: 采用LCD液晶顯示屏,液晶顯示屏的顯示功能強(qiáng)大,可顯示大量文字,圖形,顯示多樣,清晰可見,但是價(jià)格昂貴,需要的接口線多,所以在此設(shè)計(jì)中不采用LCD液晶顯示屏。方案二: 采用點(diǎn)陣式數(shù)碼管顯示,點(diǎn)陣式數(shù)碼管是由八行八列的發(fā)光二極管組成,對(duì)于顯示文字比較適合,如采用在顯示數(shù)字顯得太浪費(fèi),且價(jià)格也相對(duì)較高,所以也不用此種作為顯示。方案三
9、:采用LED數(shù)碼管動(dòng)態(tài)掃描,LED數(shù)碼管價(jià)格適中,對(duì)于顯示數(shù)字最合適,而且采用動(dòng)態(tài)掃描法與單片機(jī)連接時(shí),占用的單片機(jī)口線少。所以采用了LED數(shù)碼管作為顯示。 綜合以上方案,考慮實(shí)際價(jià)格因素,降低設(shè)計(jì)難度,使整個(gè)設(shè)計(jì)達(dá)力求完美,最后決定選用LCD12864液晶模塊。1.2.3時(shí)鐘芯片的選擇方案和論證:方案一: 直接采用單片機(jī)定時(shí)計(jì)數(shù)器提供秒信號(hào),使用程序?qū)崿F(xiàn)年、月、日、星期、時(shí)、分、秒計(jì)數(shù)。采用此種方案雖然減少芯片的使用,節(jié)約成本,但是,實(shí)現(xiàn)的時(shí)間誤差較大。所以不采用此方案。方案二: 采用DS1302時(shí)鐘芯片實(shí)現(xiàn)時(shí)鐘,DS1302芯片是一種高性能的時(shí)鐘芯片,可自動(dòng)對(duì)秒、分、時(shí)、日、周、月、年以及
10、閏年補(bǔ)償?shù)哪赀M(jìn)行計(jì)數(shù),而且精度高,位的RAM做為數(shù)據(jù)暫存區(qū),工作電壓2.5V5.5V范圍內(nèi),2.5V時(shí)耗電小于300nA. 1.2.4溫度傳感器的選擇方案與論證:方案一:使用熱敏電阻作為傳感器,用熱敏電阻與一個(gè)相應(yīng)阻值電阻相串聯(lián)分壓,利用熱敏電阻阻值隨溫度變化而變化的特性,采集這兩個(gè)電阻變化的分壓值,并進(jìn)行A/D轉(zhuǎn)換。此設(shè)計(jì)方案需用A/D轉(zhuǎn)換電路,增加硬件成本而且熱敏電阻的感溫特性曲線并不是嚴(yán)格線性的,會(huì)產(chǎn)生較大的測(cè)量誤差。方案二:采用數(shù)字式溫度傳感器DS18B20,此類傳感器為數(shù)字式傳感器而且僅需要一條數(shù)據(jù)線進(jìn)行數(shù)據(jù)傳輸,易于與單片機(jī)連接,可以去除A/D模塊,降低硬件成本,簡(jiǎn)化系統(tǒng)電路。另外
11、,數(shù)字式溫度傳感器還具有測(cè)量精度高、測(cè)量范圍廣等優(yōu)點(diǎn)。1.3 電路設(shè)計(jì)最終方案決定綜上各方案所述,對(duì)此次作品的方案選定: 采用AT89S52作為主控制系統(tǒng); DS1302提供時(shí)鐘;數(shù)字式溫度傳感器;LCD12864液晶顯示屏完成顯示。二.系統(tǒng)的硬件設(shè)計(jì)與實(shí)現(xiàn)2.1 電路設(shè)計(jì)框圖LCD液晶顯示模塊AT89S52主控制模 塊溫度采集模塊 DS1302時(shí)鐘模塊2.2 系統(tǒng)硬件概述本電路是由AT89S52單片機(jī)為控制核心,具有在線編程功能,低功耗,能在3V超低壓工作;時(shí)鐘電路由DS1302提供,它是一種高性能、低功耗、帶RAM的實(shí)時(shí)時(shí)鐘電路,它可以對(duì)年、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí),工作電壓為2.
12、5V5.5V。采用三線接口與CPU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)或RAM數(shù)據(jù)。DS1302內(nèi)部有一個(gè)31*8的用于臨時(shí)性存放數(shù)據(jù)的RAM寄存器??僧a(chǎn)生年、月、日、周日、時(shí)、分、秒,具有使用壽命長(zhǎng),精度高和低功耗等特點(diǎn),同時(shí)具有掉電自動(dòng)保存功能;溫度的采集由DS18B20構(gòu)成;顯示部份由LCD12864液晶顯示模塊完成顯示任務(wù)。2.3 主要單元電路的設(shè)計(jì)2.3.1單片機(jī)主控制模塊的設(shè)計(jì)AT89S52單片機(jī)為40引腳雙列直插芯片,有四個(gè)I/O口P0,P1,P2,P3, MCS-51單片機(jī)共有4個(gè)8位的I/O口(P0、P1、P2、P3),每一條I/O線都能獨(dú)立地作輸出或輸入
13、。單片機(jī)的最小系統(tǒng)如下圖所示,18引腳和19引腳接時(shí)鐘電路,XTAL1接外部晶振和微調(diào)電容的一端,在片內(nèi)它是振蕩器倒相放大器的輸入,XTAL2接外部晶振和微調(diào)電容的另一端,在片內(nèi)它是振蕩器倒相放大器的輸出.第9引腳為復(fù)位輸入端,接上電容,電阻及開關(guān)后夠上電復(fù)位電路,20引腳為接地端,40引腳為電源端. 如圖-1 所示:圖2.1 主控制系統(tǒng)2.3.2時(shí)鐘電路模塊的設(shè)計(jì)圖-2示出DS1302的引腳排列,其中Vcc1為后備電源,Vcc2為主電源。在主電源關(guān)閉的情況下,也能保持時(shí)鐘的連續(xù)運(yùn)行。DS1302由Vcc1或Vcc2兩者中的較大者供電。當(dāng)Vcc2大于Vcc1+0.2V時(shí),Vcc2給DS1302
14、供電。當(dāng)Vcc2小于Vcc1時(shí),DS1302由Vcc1供電。X1和X2是振蕩源,外接32.KHz晶振。RST是復(fù)位/片選線,通過把RST輸入驅(qū)動(dòng)置高電平來(lái)啟動(dòng)所有的數(shù)據(jù)傳送。RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當(dāng)RST為高電平時(shí),所有的數(shù)據(jù)傳送被初始化,允許對(duì)DS1302進(jìn)行操作。如果在傳送過程中RSTS置為低電平,則會(huì)終止此次數(shù)據(jù)傳送,I/O引腳變?yōu)楦咦钁B(tài)。上電動(dòng)行時(shí),在Vcc大于等于2.5V之前,RST必須保持低電平。中有在SCLK 為低電平時(shí),才能將RST置為高電平,I/O為串行數(shù)據(jù)輸入端(雙
15、向)。SCLK始終是輸入端。 圖2.2 DS1302的引腳圖2.3.3溫度采集模塊設(shè)計(jì)如圖-3所示。采用數(shù)字式溫度傳感器DS18B20,它是數(shù)字式溫度傳感器,具有測(cè)量精度高,電路連接簡(jiǎn)單特點(diǎn),此類傳感器僅需要一條數(shù)據(jù)線進(jìn)行數(shù)據(jù)傳輸,使用0.7與DS18B20的I/O口連接加一個(gè)上拉電阻,Vcc接電源,Vss接地。 圖2.3 DS18B20溫度傳感器2.3.4 電路原理及說明(1) 時(shí)鐘芯片DS1302的工作原理: DS1302在每次進(jìn)行讀、寫程序前都必須初始化,先把SCLK端置 “0”,接著把RST端置“1”,最后才給予SCLK脈沖;讀/寫時(shí)序如下圖4所示。圖5為DS1302的控制字,此控制字
16、的位7必須置1,若為0則不能把對(duì)DS1302進(jìn)行讀寫數(shù)據(jù)。對(duì)于位6,若對(duì)程序進(jìn)行讀/寫時(shí)RAM=1,對(duì)時(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ù)位,在任何的對(duì)時(shí)鐘和RAM的寫操作之前,WP必須為0。當(dāng)“WP”為1時(shí),寫保護(hù)位防止對(duì)任一寄存器的寫操作。(2) DS1302的控制字節(jié)DS1302的控制字如表
17、-1所示。控制字節(jié)的高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入DS1302中,位6如果0,則表示存取日歷時(shí)鐘數(shù)據(jù),為1表示存取RAM數(shù)據(jù);位5至位1指示操作單元的地址;最低有效位(位0)如為0表示要進(jìn)行寫操作,為1表示進(jìn)行讀操作,控制字節(jié)總是從最低位開始輸出 RAM RD 1 / CK A4 A3 A2 A1 A0 /WR 表-1 DS1302的控制字格式(3) 數(shù)據(jù)輸入輸出(I/O)在控制指令字輸入后的下一個(gè)SCLK時(shí)鐘的上升沿時(shí),數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入從低位即位0開始。同樣,在緊跟8位的控制指令字后的下一個(gè)SCLK脈沖的下降沿讀出DS1302的數(shù)據(jù),讀出數(shù)據(jù)時(shí)從低
18、位0位到高位7。如下圖-4所示 圖2.4 DS1302讀/寫時(shí)序圖(4) DS1302的寄存器DS1302有12個(gè)寄存器,其中有7個(gè)寄存器與日歷、時(shí)鐘相關(guān),存放的數(shù)據(jù)位為BCD碼形式,其日歷、時(shí)間寄存器及其控制字見表-2。 表-2 DS1302的日歷、時(shí)間寄存器 此外,DS1302 還有年份寄存器、控制寄存器、充電寄存器、時(shí)鐘突發(fā)寄存器及與RAM相關(guān)的寄存器等。時(shí)鐘突發(fā)寄存器可一次性順序讀寫除充電寄存器外的所有寄存器內(nèi)容。 DS1302與RAM相關(guān)的寄存器分為兩類:一類是單個(gè)RAM單元,共31個(gè),每個(gè)單元組態(tài)為一個(gè)8位的字節(jié),其命令控制字為C0HFDH,其中奇數(shù)為讀操作,偶數(shù)為寫操作;另一類為
19、突發(fā)方式下的RAM寄存器,此方式下可一次性讀寫所有的RAM的31個(gè)字節(jié),命令控制字為FEH(寫)、FFH(讀)。 2.3.5液晶顯模塊12864的設(shè)計(jì)及其控制112864液晶顯示模塊表示橫向有128點(diǎn),縱向有64點(diǎn),可顯示16*16中文字4行,每行8個(gè)字,其引腳功能如表3所示: 引腳符 號(hào)引 腳 功 能引腳符 號(hào)引 腳 功 能1VSS電源地15PSB2VDD電源正+5V16NC3VO液晶顯示驅(qū)動(dòng)電源0-5V17/RST復(fù)位(低電平有效)4RS(CS)H:數(shù)據(jù)輸入;L:指令碼輸入18VEELCD驅(qū)動(dòng)負(fù)電源5R/W(SID)H:數(shù)據(jù)讀??;L:數(shù)據(jù)寫入19A背光電源(+)6E(SCLK)使能信號(hào)。由
20、H到L完成使能20K背光電源(-)7-14DB0-DB7數(shù)據(jù)線有些型號(hào)的模塊19、20腳為空腳表3 12864液晶顯示模塊引腳功能212864與單片機(jī)的接口電路如圖2.7.1,其通信為串行通信,只用了串行口。圖2.5 LCD12864液晶顯示模塊電路2.3.6穩(wěn)壓電源設(shè)計(jì) 電源是設(shè)計(jì)的關(guān)鍵,一個(gè)好的電源可以使系統(tǒng)變的更加穩(wěn)定,要輸出一個(gè)5V的電源,要用到7805芯片,其輸出電壓為5V,電路簡(jiǎn)單。要求紋波系數(shù)小,工作穩(wěn)定,負(fù)載電阻的改變對(duì)穩(wěn)壓源的影響小等。具體設(shè)計(jì)思路是:采用12的直沖式電源先將220伏的交流電變成12伏,整流后通過大電容濾波,之后送7805穩(wěn)壓
21、芯片穩(wěn)壓,再經(jīng)過小電容濾波進(jìn)一步減少紋波系數(shù)后輸出。圖2.6系統(tǒng)電源電路三系統(tǒng)的軟件設(shè)計(jì)3.1程序設(shè)計(jì)流程圖顯示溫度讀取時(shí)間設(shè)置初始時(shí)間調(diào)用清屏子程序調(diào)用初始化子程序修改堆棧啟動(dòng)定時(shí)器置定時(shí)器初值設(shè)置初始值開始 圖3.1 設(shè)計(jì)流程圖 3.2時(shí)鐘程序段的程序設(shè)計(jì)在主程序中每隔50ms向DS1302讀取一次時(shí)間,將讀出的時(shí)間顯示在液晶屏上。12數(shù)碼顯示子程序DISPLAY:;顯示秒MOV A,SECONDANL A,#0FHMOV 50H,ALCALL A13MOV A,SECONDSWAP AANL A,#07HMOV 51H,ALCALL A14;顯示分MOV A,MINUTEANL A,#0
22、FHMOV 52H,ALCALL A15MOV A,MINUTESWAP AANL A,#07HMOV 53H,ALCALL A16;顯示小時(shí)MOV A,HOURANL A,#0FHMOV 54H,ALCALL A17MOV A,HOURSWAP AANL A,#03HMOV 55H,ALCALL A18;顯示星期MOV A,WEEKMOV 5AH,ALCALL A19;顯示日MOV A,DAYANL A,#0FHMOV 56H,ALCALL A20MOV A,DAYSWAP AANL A,#03HMOV 57H,ALCALL A21;顯示月MOV A,MONTHANL A,#0FHMOV 5
23、8H,ALCALL A22MOV A,MONTHSWAP AANL A,#03HMOV 59H,ALCALL A23;顯示年MOV A,YEARLANL A,#0FHMOV 5CH,ALCALL A24MOV A,YEARLSWAP AANL A,#0FHMOV 5DH,ALCALL A25RET;設(shè)置DS1302初始時(shí)間,并啟動(dòng)計(jì)時(shí)SETDS1302:CLR T_RSTnopCLR T_CLKnopSETB T_RSTnopMOV B,#8EH 寫控制命令字LCALL INPUTBYTEMOV B,#00H 寫保護(hù)關(guān)閉LCALL INPUTBYTESETB T_CLKnopCLR T_RST
24、MOV R0,#SECOND 內(nèi)存中的時(shí)間首地址MOVR1,#80H ;DS1302中的時(shí)間首地址MOV R7,#7 SETLOOP:CLR T_RSTnopCLR T_CLKnopSETB T_RSTnopMOV B,R1 ; 寫命令字LCALL INPUTBYTEMOV A,R0 設(shè)置時(shí)間MOV B,ALCALL INPUTBYTEINC R0INC R1INC R1SETB T_CLKnopCLR T_RSTnopDJNZ R7,SETLOOPCLR T_RSTnopCLR T_CLKnopSETB T_RSTNopMOV B,#8EHLCALL INPUTBYTEMOV B,#80H
25、;開寫保護(hù)LCALL INPUTBYTESETB T_CLKnopCLR T_RSTnopRET;從DS1302讀取時(shí)間GET1302:MOV R0,#SECONDMOV R1,#81H ;DS1302中讀時(shí)間的首地址MOV R7,#7GETLOOP:CLR T_RSTnopCLR T_CLKnopSETB T_RSTnopMOV B,R1LCALL INPUTBYTE ;寫命令字LCALL OUTPUTBYTE ;讀時(shí)間MOV R0,A ;將從DS1302中讀取的時(shí)間從內(nèi)存中保存INC R0 修改地址指針I(yè)NC R1INC R1SETB T_CLKnopCLR T_RSTnopDJNZ R7
26、,GETLOOPRET向DS1302寫一個(gè)字節(jié)INPUTBYTE:MOV R4,#8INPUTLOOP:MOV A,BRRC AMOV B,AMOV T_IO,CSETB T_CLKNOP;NOP;NOPCLR T_CLKDJNZ R4,INPUTLOOPRET;從DS1302讀一個(gè)字節(jié)OUTPUTBYTE:clr aclr cMOV R4,#8OUTPUTLOOP: NOPMOV C,T_IORRC ASETB T_CLKNOPCLR T_CLKDJNZ R4,OUTPUTLOOPRET3.3溫度程序段的程序設(shè)計(jì)INIT_1820: SETB P3.7CLR P3.7MOV R1,#3TSR
27、1: MOV R0,#107DJNZ R0,$DJNZ R1,TSR1SETB P3.7MOV R0,#25HTSR2: JNB P3.7,TSR3DJNZ R0,TSR2LJMP TSR4TSR3: SETB FLAG1LJMP TSR5TSR4: CLR FLAG1LJMP TSR7TSR5: MOV R0,#117TSR6: DJNZ R0,TSR6TSR7: SETB P3.7RETGET_TEMPER: SETB P3.7LCALL INIT_1820JB FLAG1,TSS2RETTSS2: MOV A,#0CCHLCALL WRITE_1820MOV A,#44HLCALL WR
28、ITE_1820LCALL DISPLAY1LCALL INIT_1820MOV A,#0CCHLCALL WRITE_1820MOV A,#0BEHLCALL WRITE_1820LCALL READ_18200RETWRITE_1820: MOV R2,#8CLR CWR1: CLR P3.7MOV R3,#6DJNZ R3,$RRC AMOV P3.7,CMOV R3,#23DJNZ R3,$SETB P3.7NOPDJNZ R2,WR1SETB P3.7RETREAD_18200: MOV R5,#2MOV R1,#41hRE00: MOV R2,#8RE01: CLR CSETB P
29、3.7CLR P3.7SETB P3.7MOV R3,#7RE10: DJNZ R3,RE10MOV C,P3.7MOV R3,#23RE20: DJNZ R3,RE20RRC ADJNZ R2,RE01MOV R1,ADEC R1DJNZ R5,RE00RETDISPLAY1:MOV A,40HJB ACC.7,ZF1mov column4,#16mov pagef4,#4mov codes,#250lcall writeright2ljmp zhijieZF1:mov column4,#16mov pagef4,#4mov codes,#16 lcall writeright2mov a,
30、40hcpl amov dph,amov a,41h cpl amov dpl,ainc dptrmov 40h,dphmov 41h,dplzhijie:MOV A,40HSWAP AANL A,#0F0HMOV 40H,AMOV A,41HSWAP AANL A,#0FHADD A,40HMOV 41H,AMOV B,#10DIV ABMOV b_bit,AMOV a_bit,Bmov column2,#32mov pagef2,#4mov codes,b_bit 十位lcall writerightmov column2,#40mov pagef2,#4mov codes,a_bit 個(gè)
31、位lcall writerightRET3.4主程序段的調(diào)試程序ORG 0000HLJMP STARTORG 0003HLJMP XX0ORG 0013HLJMP XX1;主程序開始START: MOV TMOD,#01HMOV TH0,#00BH ;置定時(shí)器初值(定時(shí)50ms)MOV TL0,#0DCHSETB TR0 ;啟動(dòng)定時(shí)器0mov 02h,#0MOV SP,#60H ;修改堆棧LCALL INT ;調(diào)用初始化子程序LCALL CLEAR ;調(diào)用清屏子程序MOV DAY,#01H ;初始日期設(shè)為08年1月1日星期一MOV MONTH,#01HMOV YEARL,#08HLCALL S
32、ETDS1302 ;設(shè)置DS1302初始時(shí)間LCALL GET1302 ;從DS1302讀取時(shí)間LCALL DISPLAY ;數(shù)碼顯示子程序MOV R3,#16 ;循環(huán)20次到一秒SETB EASETB EX0setb IT0SETB EX1SETB IT1LP1: JNB P3.1 ,QQ0 ;當(dāng)p3.1口為低電平時(shí)跳過讀取時(shí)間子程序lJMP QQ2QQ0: MOV TH0,#00BHMOV TL0,#0DCHSETB TR0LCALL NIU ;將調(diào)整后的時(shí)間放入時(shí) 分 秒 星期 年 月 日寄存器中LCALL SETDS1302 ;設(shè)置DS1302初始時(shí)間LCALL GET1302 ;從D
33、S1302讀取時(shí)間LCALL DISPLAY ;用12864顯示QQ2: JBC TF0,QQ1lJMP LP1QQ1: MOV TH0,#00BHMOV TL0,#0DCHLCALL GET1302 ;每過50Ms從DS1302讀取一次時(shí)間LCALL DISPLAYQQQ: DJNZ R3,SS100 ;未到1 S繼續(xù)循環(huán)LCALL GET_TEMPER ;每過1s從DS18B20讀取一次溫度mov r3,#16;整點(diǎn)鬧鈴1分鐘同時(shí)在最左上角顯示鈴鐺符號(hào),合上鬧鈴開關(guān)可以提前關(guān)掉鬧鈴MOV A,46HCJNE A,#0,SS100LCALL NAOLCALL NAOLCALL NAOLCAL
34、L NAOLCALL NAOmov column3,#0mov pagef3,#0mov codes,#206 ;開鬧鈴符號(hào)lcall writeleft2SS100:MOV A,45HCJNE A,#59H,RI1mov column3,#0mov pagef3,#0mov codes,#210 ;關(guān)鬧鈴符號(hào)lcall writeleft2LJMP lp1四系統(tǒng)測(cè)試與仿真4.1仿真4.2測(cè)試電子萬(wàn)年歷是多功能的數(shù)字型單片機(jī)應(yīng)用產(chǎn)品,它可以顯示當(dāng)前日期,時(shí)間,還有溫度。電子成年歷功能較多,所以它的程序也較為復(fù)雜,所以在編寫程序和調(diào)試時(shí)出現(xiàn)了相對(duì)較多的問題。最后經(jīng)過多次的模塊子程序的修改,一步一
35、步的完成,最終解決了這些問題。在軟件的調(diào)試過程中主要遇到的問題如下:1輸入程序后,12864顯示屏電亮,而無(wú)顯示:解決:通過查看ST7920的資料,顯示屏上的PSB在串口發(fā)送和接收數(shù)據(jù)時(shí),引腳要接低電平,當(dāng)把該腳固定接地時(shí),還是沒有得到預(yù)期的效果,我找到了一個(gè)關(guān)于ST7920的串口的匯編程序,它上面的PSB是單獨(dú)的接一個(gè)引腳,并且在初始化的時(shí)候要置零。我在初始化12864時(shí)加了一句(PSB=0;),結(jié)果是顯示了初始化界面,經(jīng)過3秒后進(jìn)入萬(wàn)年歷界面,但是里面的數(shù)字都沒有變化,通過分析程序,發(fā)現(xiàn)主程序里少了初始化DS1302和每次循環(huán)的刷新語(yǔ)句,在循環(huán)外加了一句(Init_1302();/初始化DS1302)和在循環(huán)語(yǔ)句里加了一句(updata ();/刷新數(shù)據(jù)),最后解決了此問題。2加入溫度的程序后,進(jìn)行修改時(shí)間、日期時(shí)相應(yīng)的數(shù)碼管位沒有按要求閃動(dòng)。 解決:由于DS18B20是串行通信數(shù)據(jù),只用一個(gè)口線傳輸,在處理采集的模擬信號(hào)時(shí)需要一定的時(shí)間,當(dāng)把萬(wàn)年歷的程序相接入時(shí),會(huì)對(duì)延時(shí)有很大的影響。所以在調(diào)用溫度子程序時(shí),先關(guān)閉定時(shí)器1中斷允許,在溫度子程序反回時(shí)再打開定時(shí)器1中斷允許。最終解決了此問題。4.3測(cè)試結(jié)果分析與結(jié)論經(jīng)過多次的反復(fù)測(cè)試與分
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年勞資專員試題及答案
- 年度保密工作總結(jié)
- 糖尿病??谱o(hù)士考試試題(附答案)
- 選礦集控工操作考核試卷及答案
- 建設(shè)工程施工合同糾紛要素式起訴狀模板資深律師修訂版
- 保溫防腐工程糾紛專用!建設(shè)工程施工合同糾紛要素式起訴狀模板
- 2026 年離婚協(xié)議書 2026 版專業(yè)規(guī)范版
- 鐘山風(fēng)景名勝區(qū)旅游服務(wù)中心項(xiàng)目塔式起重機(jī)基礎(chǔ)專項(xiàng)施工方案
- 定制家居員工年終總結(jié)(3篇)
- 電石生產(chǎn)副總年終總結(jié)(3篇)
- 第四單元地理信息技術(shù)的應(yīng)用課件 【高效課堂+精研精講】高中地理魯教版(2019)必修第一冊(cè)
- 魯科版高中化學(xué)必修一教案全冊(cè)
- 管理養(yǎng)老機(jī)構(gòu) 養(yǎng)老機(jī)構(gòu)的服務(wù)提供與管理
- 提高隧道初支平整度合格率
- 2022年環(huán)保標(biāo)記試題庫(kù)(含答案)
- 2023年版測(cè)量結(jié)果的計(jì)量溯源性要求
- 建筑能耗與碳排放研究報(bào)告
- GB 29415-2013耐火電纜槽盒
- 中國(guó)古代經(jīng)濟(jì)試題
- 真空采血管的分類及應(yīng)用及采血順序課件
- 軟件定義汽車:產(chǎn)業(yè)生態(tài)創(chuàng)新白皮書
評(píng)論
0/150
提交評(píng)論