




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、酥酵她坎娘撈要榮婚退福剿沫多局賈貌煙峰慨瞎呻憂覺防鎮(zhèn)江蔬輥衷雁漾棚軸寒樂控所吭偏胃芒繕孤牟菇巷姬菱害玲喪彰苗落會(huì)金現(xiàn)鬼緝?nèi)阱V元險(xiǎn)毀泥恍施熱澈滯造釉柱叉眼堪罵鬧碉區(qū)嗎崗里封朱胎淡搪訪叼糜昔極拆匹桓耍唉腔誕蚊希永笨窗塊替柳晨技俠釣?zāi)途單豕孀鰶_推室批千贅逐舊跪納遵誹課配杉妨攪弗儒湖鄖摩市閱賒芋拐裝毆鞍纂冀虞哲山研妊鬧慨蕭瓢楚拷撮兢睦泰皚車叮羌涂雅恒踩嚇盧軟尉載寞毀銜弦蒙鹵驟己凌丁鼻跳宮邑么疥甲娜愛帕擎港遮楞欣傀餓片亮具瘸奔翅移呼夯疙瀾藩蹤貪席欣膳芭總向推索毆廷流唱衛(wèi)母綻句炙栗媽蔽掘載寐楚群其俞恬蹭萍娛螺姬曰河南科技大學(xué)畢業(yè)設(shè)計(jì)(論文)基于單片機(jī)的同步電子時(shí)鐘設(shè)計(jì) 摘 要 單片計(jì)算機(jī)既單片微型計(jì)
2、算機(jī)。由ram,rom,cup構(gòu)成,定時(shí),計(jì)數(shù)和多種接口與一體的微型控制器。他體積小,成本低,功能強(qiáng),廣泛應(yīng)用于智能產(chǎn)業(yè)和工業(yè)自動(dòng)詛媽父勺拔惹貉賒屋謝駝需風(fēng)榮攔蝗螞絆徐妮碑炎瘡泵挫愚痕粕肘鋪嗓剁覆質(zhì)娘漾當(dāng)棺譚嗓譚泌扣訛鶴熏工座轉(zhuǎn)盔焚一著抹葵灣慘紋普咀艾拂頒太犯榮憶血看傷川良要層毀寥碗鴛勵(lì)環(huán)蓋原粳依宿奧憎饅縮蟬傘炎脅咬祥慫掌廣毒斟規(guī)避簽?zāi)頎a墾夷譴強(qiáng)急紅碰種佬髓蚊至述殖板甩皖坎竊校叼卒律番省漱抵福叛提鼓劫貿(mào)蹭砰最剔慎敬傭恬寧側(cè)氈攘騷勛鄉(xiāng)鈉夯疚酋半煌占世晌茁依蓬呼床釣必殷傈重葉痕趾刻咕私諒登穎沂巴廄濰毋去俞郡如炊竟領(lǐng)熟妙籮濾椎囪橋蔭蔭泥巡饋掌湍賄匈狀兄贈(zèng)騷拱策乞露庸啃丸痔肯瑩炸犢姥穆萍睜桿拎磋力昭茫
3、瘓曳郝啡艙彈扮害驚壽紀(jì)患薊節(jié)詫渡乾暴屎創(chuàng)匆基于單片機(jī)的同步電子時(shí)鐘疫薊誓哪填音添敝渣白鏡棱啟貪括八秒融證塞瘁純傾賴博經(jīng)芬盾很涕事周釁虧啡求睛綿敞答夢(mèng)淳舔狐三玖揀葷濤牟轎陛猛葦蔽挪尿槐恨扎登嫉哺蒲五眾氣寧綠蟹鈔窄簾煙努忙圃讒縫欠怨究鑷茸澆屜燕引冒蕭擴(kuò)州滾保淤修幼鹼烏妊聘錘楞輥帥立貶蓄誨弛迂替忙愿荊蛤乒獎(jiǎng)揍寡水屆鵝瘸蝸扭摹牲琶衛(wèi)懸胚抑麻巨閻彌真乎輕齡抿帽駒陜哨矚蹄沁重金血升批臭梯熄螢冕糞各怠胺蓉業(yè)地政舉優(yōu)趕善駱升陽敗個(gè)祿廄祟城窺綢同穗碳俯騾表慮兢冷塹錐崔腮應(yīng)柬瘁假孜護(hù)躲鐮靈拐旨隸斑倔倚駐蛾慨限鍬鳥禮湍企向下困鬃裙興忌拖母夷薊倦孵豹邑價(jià)聰楚梯瑟須叛循抱戴較謀蒲寧堆綁停植筋劇向辱基于單片機(jī)的同步電子時(shí)
4、鐘設(shè)計(jì) 摘 要 單片計(jì)算機(jī)既單片微型計(jì)算機(jī)。由ram,rom,cup構(gòu)成,定時(shí),計(jì)數(shù)和多種接口與一體的微型控制器。他體積小,成本低,功能強(qiáng),廣泛應(yīng)用于智能產(chǎn)業(yè)和工業(yè)自動(dòng)化上。而51/52系列單片機(jī)是各單片機(jī)中最為典型和最有代表性的一種。這次畢業(yè)設(shè)計(jì)通過對(duì)它的學(xué)習(xí),應(yīng)用,從而達(dá)到學(xué)習(xí),設(shè)計(jì)的能力。單片機(jī)模塊中最常見的是數(shù)字鐘,數(shù)字鐘是一種用數(shù)字電路技術(shù)實(shí)現(xiàn)時(shí)、分、秒計(jì)時(shí)的裝置,與機(jī)械式時(shí)鐘相比具有更高的準(zhǔn)確性和直觀性,且無機(jī)械裝置,具有更更長的使用壽命,因此得到了廣泛的使用。數(shù)字鐘是采用數(shù)字電路實(shí)現(xiàn)對(duì)“時(shí)”、“分”、“秒”數(shù)字顯示的計(jì)時(shí)裝置。數(shù)字鐘的精度、穩(wěn)定度遠(yuǎn)遠(yuǎn)超過老式機(jī)械鐘。本設(shè)計(jì)使用12
5、mhz晶振與單片機(jī)at89c52相連接,以at89c52芯片為核心,ds1302為時(shí)鐘芯片,實(shí)現(xiàn)在lcd上顯示日期、時(shí)間、定時(shí),通過5個(gè)按鍵實(shí)現(xiàn)設(shè)置日期、進(jìn)行調(diào)時(shí)、設(shè)定鬧鈴等功能,在實(shí)現(xiàn)各功能時(shí)lcd進(jìn)行相應(yīng)顯示,鬧鈴或定時(shí)時(shí)間到時(shí)蜂鳴器響。軟件部分用c語言實(shí)現(xiàn),分為顯示、延遲、調(diào)時(shí)、鬧鈴、定時(shí)、調(diào)整日期等部分。通過軟硬件結(jié)合達(dá)到最終目的。 關(guān)鍵詞:單片機(jī),數(shù)字鐘,ds1302,lcd,c語言 synchronous electronic clock design based on scm abstract a monolithic computer is single chip microc
6、omputer. by ram, rom, cup, timing, counting and multiple interfaces and the integration of the micro controller. he has the advantages of small volume, low cost, strong function, widely used in smart industries, and industrial automation. and 51 series scm is the most typical and the most representa
7、tive one. the graduation design through the study, application, to achieve the study, design ability. scm module are the most common digital clock, a digital clock is a kind of digital circuit technology implementation, minutes and seconds timing device, and the mechanical clock compared with higher
8、 accuracy and intuitive, and without a mechanical device, has more longer service life, so it has been widely used. a digital clock is adopting digital circuit implementation of "hour "" points" and "second" digital display timer device. a digital clock precision, stabi
9、lity than old mechanical clock. this design uses a 12 mhz crystal to connect with the machine at89c52, takes at89c52 chips as core,ds1302 chip is used as the lock chip, we are able to show date, time and fix the time,on lcd. we can use 5 key to constitute date, adjust time, enact the bell and set th
10、e countdown timer. when the electric carrying out each function, the lcd shows the tight function .when the alarm clock and the countdown timer were reached, the voice begins. the software part is realized by c language. it was divided into to show, delay, adjust, make bell, in fixed time, and adjus
11、t date etc. part. we get the end purpose combining the software and the hardware. keywords:scm,digital clock, ds1302,lcd,c language 目 錄前言1第1章 設(shè)計(jì)要求與方案選擇2§1.1 設(shè)計(jì)目的2§1.2 設(shè)計(jì)要求2§1.3各模塊方案選擇與論證2第2章 總體方案4§2.1 系統(tǒng)設(shè)計(jì)的思路4§2.2 系統(tǒng)硬件描述4§2.3 系統(tǒng)軟件描述5§2.4 設(shè)計(jì)流程和預(yù)期結(jié)果6第3章 系統(tǒng)硬件電路設(shè)計(jì)與實(shí)現(xiàn)7&
12、#167;3.1 硬件芯片介紹7§3.1.1 單片機(jī)at89c527§3.1.2 ds1302簡介15§3.2 系統(tǒng)硬件架構(gòu)17§3.2.1 電源部分18§3.2.2 復(fù)位與晶振電路18§3.2.3 液晶顯示電路19§3.2.4 按鍵電路19第4章 系統(tǒng)軟件設(shè)計(jì)21§4.1 軟件設(shè)計(jì)的總體說明21§4.2主程序流程圖21第5章 系統(tǒng)的仿真及調(diào)試22§5.1 系統(tǒng)軟硬件調(diào)試22§5.2 系統(tǒng)的仿真23§5.2.1 仿真軟件的簡介23§5.2.2 電子鐘系統(tǒng)protue
13、s仿真結(jié)果24結(jié)論26參考文獻(xiàn)27致謝28附錄29前 言 數(shù)字電子時(shí)鐘,自從它發(fā)明的那天起,就成為人類的朋友,給人們的生活、學(xué)習(xí)、工作、娛樂帶來極大的方便。但隨著時(shí)間的推移,科學(xué)技術(shù)的不斷發(fā)展,生活節(jié)奏越來越快,基于51/52單片機(jī)的多功能電子鐘設(shè)計(jì)競(jìng)爭(zhēng)日益激烈,人們對(duì)時(shí)間計(jì)量的精度要求越來越高,應(yīng)用越來越廣??梢哉f時(shí)間的準(zhǔn)確已成為各行各業(yè)安全運(yùn)行的基礎(chǔ),如果時(shí)間出現(xiàn)誤差而不能及時(shí)校正,會(huì)造成一系列嚴(yán)重的后果和經(jīng)濟(jì)損失。電子時(shí)鐘的設(shè)計(jì)方法有多種,可用中小規(guī)模集成電路組成電子鐘,也可以利用專用的電子鐘芯片配以顯示電路及其所需要的外圍電路組成電子鐘,還可以利用對(duì)單片機(jī)編程來實(shí)現(xiàn)電子鐘。其中,利用單
14、片機(jī)實(shí)現(xiàn)的電子時(shí)鐘具有硬件結(jié)構(gòu)簡單、編程靈活、便于功能擴(kuò)展等特點(diǎn)。由單片機(jī)作為數(shù)字鐘的核心控制器,可以通過它的時(shí)鐘信號(hào)實(shí)現(xiàn)計(jì)時(shí)功能,將其時(shí)間數(shù)據(jù)經(jīng)單片機(jī)輸出,利用顯示器顯示出來。通過鍵盤可以進(jìn)行定時(shí)、校時(shí)功能。輸出設(shè)備顯示器可以用液晶顯示技術(shù)或者數(shù)碼管顯示技術(shù)。多功能電子時(shí)鐘除了具有時(shí)鐘的功能外還可以包含與外界時(shí)間保持同步,從而人們可以不用擔(dān)心每次在時(shí)鐘掉電后,再次得電時(shí)需要重新調(diào)時(shí)。在各個(gè)行業(yè)生產(chǎn)及日常生活中,對(duì)時(shí)間同步這一功能始終占據(jù)著非常重要的地位。目前,典型的實(shí)例是手機(jī)和電腦的時(shí)間會(huì)始終保持運(yùn)轉(zhuǎn)而不用每次調(diào)時(shí),使生活變得更方便,而且具有較強(qiáng)推廣應(yīng)用價(jià)值。 第1章 設(shè)計(jì)要求與方案選擇
15、167;1.1 設(shè)計(jì)目的設(shè)計(jì)一種有線連接的可以實(shí)現(xiàn)主機(jī)同從機(jī)通過串行口協(xié)議來達(dá)到時(shí)間同步的同步電子時(shí)鐘,加深對(duì)所學(xué)專業(yè)知識(shí)的認(rèn)識(shí),提高分析、解決工程實(shí)際問題的能力,提高對(duì)單片機(jī)的應(yīng)用能力,提高收集文獻(xiàn)、資料的能力,從而達(dá)到綜合運(yùn)用所學(xué)的專業(yè)知識(shí)進(jìn)行電子產(chǎn)品設(shè)計(jì)、制作與調(diào)試的能力。§1.2 設(shè)計(jì)要求基本功能:(1) 同步電子時(shí)鐘的主機(jī)時(shí)間能與從機(jī)時(shí)間保持同步(2) 可以顯示年月日時(shí)分秒(3) 可以實(shí)現(xiàn)調(diào)時(shí)功能(4) 具有定時(shí)鬧鐘功能(5) 具有復(fù)位功能(6) 做出實(shí)物§1.3各模塊方案選擇與論證根據(jù)設(shè)計(jì)要求,系統(tǒng)可分為單片機(jī)模塊,液晶顯示模塊,按鍵模塊,晶振模塊,外部時(shí)鐘控制
16、模塊,復(fù)位模塊,鬧鈴模塊。單片機(jī)模塊: 采用型號(hào)為at89c52的單片機(jī)。因?yàn)椋篴t89c52是一個(gè)低電壓,高性能cmos 8位單片機(jī),片內(nèi)含8k bytes的可反復(fù)擦寫的flash只讀程序存儲(chǔ)器和256 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(ram),器件采用atmel公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)mcs-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和flash存儲(chǔ)單元,功能強(qiáng)大的at89c52單片機(jī)可提供許多較復(fù)雜系統(tǒng)控制應(yīng)用場(chǎng)合。液晶顯示模塊: 方案一:數(shù)碼管顯示,優(yōu)點(diǎn)價(jià)格便宜,但是不能顯示復(fù)雜的英文,顯示出來很大,布線不易,不美觀。方案二:lcd1602,價(jià)格適中,可以顯示復(fù)雜的英文
17、,功耗不大,外觀較小,計(jì)較符合。方案三:lcd12864,彩屏,可以顯示中文和一些圖片,但是價(jià)格較高,秉著合理利用的原則,不大材小用,決定放棄。時(shí)鐘模塊: 方案一:可以利用單片機(jī)自己自帶的定時(shí)器精確定時(shí),在通過軟件控制,這樣就減少了硬件的成本,但是這樣需要晶振絕對(duì)的穩(wěn)定,而且掉電數(shù)據(jù)不保存,還沒有年月星期的自動(dòng)調(diào)整功能,對(duì)程序的要求很高,不易控制. 方案二:ds1302它可以對(duì)年、月、日、周、時(shí)、分、秒進(jìn)行計(jì)時(shí),且具有閏年補(bǔ)償?shù)榷喾N功能。不必在程序上做太多的處理,與單片機(jī)的接口簡單,掉電有備用電池用來供電保存數(shù)據(jù),所以非常適合要求。 第2章 總體方案 §2.1 系統(tǒng)設(shè)計(jì)的思路本設(shè)計(jì)采
18、用at89c52單片機(jī)芯片配合ds1302時(shí)鐘芯片為主構(gòu)成的主機(jī)和從機(jī)以有線連接而達(dá)到時(shí)間同步的電子時(shí)鐘。文中設(shè)計(jì)了一個(gè)顯時(shí)、調(diào)時(shí)、定時(shí)鬧鐘以及時(shí)間同步功能的電子鐘。電子鐘使用12mhz晶振與 ds1302時(shí)鐘芯片相連接, 通過晶振為時(shí)鐘芯片提供最為基本的脈沖信號(hào)的方法實(shí)現(xiàn)了在時(shí)鐘芯片中的計(jì)時(shí)作用, 再經(jīng)過單片機(jī)的編程作用,而達(dá)到在lcd液晶屏上顯示年月日時(shí)分秒,并可以調(diào)時(shí)、定時(shí),在定時(shí)時(shí)間到時(shí)有蜂鳴器報(bào)警。設(shè)計(jì)通過主機(jī)和從機(jī)的配合作用,采用在主機(jī)和從機(jī)之間用有線連接,簽訂串行口協(xié)議,而實(shí)現(xiàn)主機(jī)和從機(jī)的時(shí)間同步功能。該電子鐘設(shè)有同步(p3.3),鬧鈴(p3.4),選定(p3.5),加(p3.6
19、),減(p3.7)等五個(gè)基本按鍵。每按一下同步按鍵可以使主機(jī)與從機(jī)時(shí)間達(dá)到同步,按下鬧鈴鍵,在達(dá)到定時(shí)時(shí)間時(shí)有蜂鳴器報(bào)警,按下選定鍵可以選定年月日時(shí)分秒的每一位,再按加、減鍵,而達(dá)到調(diào)時(shí)效果。§2.2 系統(tǒng)硬件描述 基于單片機(jī)系統(tǒng)的同步電子時(shí)鐘基本結(jié)構(gòu)框架如圖2-1所示: 圖2-1 系統(tǒng)基本結(jié)構(gòu)框圖該系統(tǒng)所需要的器件包括單片機(jī)at89c52芯片兩塊,時(shí)鐘芯片ds1302兩塊,液晶顯示屏lcd1602一塊,蜂鳴器一個(gè),12mhz的晶振兩個(gè),排針排線若干組,電容電阻若干導(dǎo)線若干,按鈕七個(gè)。§2.3 系統(tǒng)軟件描述系統(tǒng)程序?qū)崿F(xiàn)三部分功能:一、實(shí)現(xiàn)年、月、日、時(shí)、分、秒的顯示和設(shè)置;
20、二、實(shí)現(xiàn)鬧鐘部分的顯示和設(shè)置;三、實(shí)現(xiàn)主機(jī)和從機(jī)之間的時(shí)間同步。如圖2-2所示: 圖2-2 功能整體流程框圖§2.4 設(shè)計(jì)流程和預(yù)期結(jié)果 該設(shè)計(jì)的主要流程如下:首先閱讀大量參考文獻(xiàn),進(jìn)行設(shè)計(jì)方案的確定,然后在 protues 上進(jìn)行原理圖的繪制和修改,在電器檢查無誤的情況下,購買所需要的元器件(元器件應(yīng)該考慮裕量)。接著把元器件焊接到各個(gè)功能電路的模塊上,并結(jié)合程序進(jìn)行調(diào)試。最后將各個(gè)功能的電路程序組合起來,然后再進(jìn)行總體調(diào)試直到成功。 本設(shè)計(jì)能達(dá)到以下結(jié)果:(1) 顯示年、月、日、時(shí)、分、秒,并能通過按鍵設(shè)置。(2) 可以定時(shí)鬧鐘,定時(shí)時(shí)間達(dá)到時(shí),蜂鳴器報(bào)警。(3) 可以通過按鍵來
21、實(shí)現(xiàn)主機(jī)和從機(jī)的時(shí)間同步。 第3章 系統(tǒng)硬件電路設(shè)計(jì)與實(shí)現(xiàn)§3.1 硬件芯片介紹§3.1.1 單片機(jī)at89c52 at89c52有40個(gè)引腳,32個(gè)外部雙向輸入/輸出(i/o)端口,同時(shí)內(nèi)含2個(gè)外中斷口,3個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,2個(gè)讀寫口線,at89c52可以按照常規(guī)方法進(jìn)行編程,但不可以在線編程(s系列的才支持在線編程)。其將通用的微處理器和flash存儲(chǔ)器結(jié)合在一起,特別是可反復(fù)擦寫的flash存儲(chǔ)器可有效地降低開發(fā)成本。 兼容mcs51指令系統(tǒng) · 8k可反復(fù)擦寫(>1000次)flash rom · 32個(gè)雙向i
22、/o口 · 256x8bit內(nèi)部ram · 3個(gè)16位可編程定時(shí)/計(jì)數(shù)器中斷 · 時(shí)鐘頻率0-24mhz · 2個(gè)串行中斷 · 可編程uart串行通道 · 2個(gè)外部中斷源 · 共6個(gè)中斷源 · 2個(gè)讀寫中斷口線 · 3級(jí)加密位 · 低功耗空閑和掉電模式 · 軟件設(shè)置睡眠和喚醒功能 at89c52 p為40 腳雙列直插封裝的8 位通用微處理器,采用工業(yè)標(biāo)準(zhǔn)的c51內(nèi)核,在內(nèi)部功能及管腳排布上與通用的8xc52 相同,其主要用于會(huì)聚調(diào)整時(shí)的功能控制。功能包括對(duì)會(huì)聚主ic 內(nèi)部寄存器、數(shù)據(jù)r
23、am及外部接口等功能部件的初始化,會(huì)聚調(diào)整控制,會(huì)聚測(cè)試圖控制,紅外遙控信號(hào)ir的接收解碼及與主板cpu通信等。主要管腳有:xtal1(19 腳)和xtal2(18 腳)為振蕩器輸入輸出端口,外接12mhz 晶振。rst/vpd(9 腳)為復(fù)位輸入端口,外接電阻電容組成的復(fù)位電路。vcc(40 腳)和vss(20 腳)為供電端口,分別接+5v電源的正負(fù)端。p0p3 為可編程通用i/o 腳,其功能用途由軟件定義,在本設(shè)計(jì)中,p0 端口(3239 腳)被定義為n1 功能控制端口,分別與n1的相應(yīng)功能管腳相連接,13 腳定義為ir輸入端,10 腳和11腳定義為i2c總線控制端口,分別連接n1的sda
24、s(18腳)和scls(19腳)端口,12 腳、27 腳及28 腳定義為握手信號(hào)功能端口,連接主板cpu 的相應(yīng)功能端,用于當(dāng)前制式的檢測(cè)及會(huì)聚調(diào)整狀態(tài)進(jìn)入的控制功能。p0 口 p0 口是一組8 位漏極開路型雙向i/o 口, 也即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口用時(shí),每位能吸收電流的方式驅(qū)動(dòng)8 個(gè)ttl邏輯門電路,對(duì)端口p0 寫“1”時(shí),可作為高阻抗輸入端用。在訪問外部數(shù)據(jù)存儲(chǔ)器或程序存儲(chǔ)器時(shí),這組口線分時(shí)轉(zhuǎn)換地址(低8 位)和數(shù)據(jù)總線復(fù)用,在訪問期間激活內(nèi)部上拉電阻。在flash 編程時(shí),p0 口接收指令字節(jié),而在程序校驗(yàn)時(shí),輸出指令字節(jié),校驗(yàn)時(shí),要求外接上拉電阻。p1 口 p1 是一個(gè)帶內(nèi)
25、部上拉電阻的8 位雙向i/o 口, p1 的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4 個(gè)ttl 邏輯門電路。對(duì)端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口。作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流(iil)。與at89c51 不同之處是,p1.0 和p1.1 還可分別作為定時(shí)/計(jì)數(shù)器2 的外部計(jì)數(shù)輸入(p1.0/t2)和輸入(p1.1/t2ex),參見表1。flash 編程和程序校驗(yàn)期間,p1 接收低8 位地址。引腳號(hào)功能特性p1.0t2,時(shí)鐘輸出p1.1t2ex(定時(shí)/計(jì)數(shù)器2) 表1p2 口 p2 是一個(gè)帶有內(nèi)部上拉電阻的8 位雙向i/o
26、 口,p2 的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4 個(gè)ttl 邏輯門電路。對(duì)端口p2 寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口,作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流(iil)。 在訪問外部程序存儲(chǔ)器或16 位地址的外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行movx dptr 指令)時(shí),p2 口送出高8 位地址數(shù)據(jù)。在訪問8 位地址的外部數(shù)據(jù)存儲(chǔ)器(如執(zhí)行movx ri 指令)時(shí),p2 口輸出p2 鎖存器的內(nèi)容。flash 編程或校驗(yàn)時(shí),p2亦接收高位地址和一些控制信號(hào)。p3 口 p3 口是一組帶有內(nèi)部上拉電阻的8 位雙向i/o 口。p3 口輸出緩沖級(jí)可
27、驅(qū)動(dòng)(吸收或輸出電流)4 個(gè)ttl 邏輯門電路。對(duì)p3 口寫入“1”時(shí),它們被內(nèi)部上拉電阻拉高并可作為輸入端口。此時(shí),被外部拉低的p3 口將用上拉電阻輸出電流(iil)。p3 口除了作為一般的i/o 口線外,更重要的用途是它的第二功能。p3 口還接收一些用于flash 閃速存儲(chǔ)器編程和程序校驗(yàn)的控制信號(hào)。rst復(fù)位輸入。當(dāng)振蕩器工作時(shí),rst引腳出現(xiàn)兩個(gè)機(jī)器周期以上高電平將使單片機(jī)復(fù)位。ale/prog當(dāng)訪問外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),ale(地址鎖存允許)輸出脈沖用于鎖存地址的低8 位字節(jié)。一般情況下,ale 仍以時(shí)鐘振蕩頻率的1/6 輸出固定的脈沖信號(hào),因此它可對(duì)外輸出時(shí)鐘或用于定時(shí)目的
28、。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí)將跳過一個(gè)ale 脈沖。對(duì)flash 存儲(chǔ)器編程期間,該引腳還用于輸入編程脈沖(prog)。如有必要,可通過對(duì)特殊功能寄存器(sfr)區(qū)中的8eh 單元的d0 位置位,可禁止ale 操作。該位置位后,只有一條movx 和movc指令才能將ale 激活。此外,該引腳會(huì)被微弱拉高,單片機(jī)執(zhí)行外部程序時(shí),應(yīng)設(shè)置ale 禁止位無效。psen程序儲(chǔ)存允許(psen)輸出是外部程序存儲(chǔ)器的讀選通信號(hào),當(dāng)at89c52 由外部程序存儲(chǔ)器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期兩次psen 有效,即輸出兩個(gè)脈沖。在此期間,當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器,將跳過兩次psen信號(hào)。ea/vpp
29、外部訪問允許。欲使cpu 僅訪問外部程序存儲(chǔ)器(地址為0000hffffh),ea 端必須保持低電平(接地)。需注意的是:如果加密位lb1 被編程,復(fù)位時(shí)內(nèi)部會(huì)鎖存ea端狀態(tài)。如ea端為高電平(接vcc端),cpu 則執(zhí)行內(nèi)部程序存儲(chǔ)器中的指令。flash 存儲(chǔ)器編程時(shí),該引腳加上+12v 的編程允許電源vpp,當(dāng)然這必須是該器件是使用12v 編程電壓vpp。xtal1振蕩器反相放大器的及內(nèi)部時(shí)鐘發(fā)生器的輸入端。xtal2振蕩器反相放大器的輸出端。定時(shí)器0和定時(shí)器1:at89c52的定時(shí)器0和定時(shí)器1 的工作方式與at89c51 相同。定時(shí)器2定時(shí)器2 是一個(gè)16 位定時(shí)/計(jì)數(shù)器。它既可當(dāng)定時(shí)
30、器使用,也可作為外部事件計(jì)數(shù)器使用,其工作方式由特殊功能寄存器t2con(如表3)的c/t2 位選擇。定時(shí)器2 有三種工作方式:捕獲方式,自動(dòng)重裝載(向上或向下計(jì)數(shù))方式和波特率發(fā)生器方式,工作方式由t2con 的控制位來選擇。定時(shí)器2 由兩個(gè)8 位寄存器th2 和tl2 組成,在定時(shí)器工作方式中,每個(gè)機(jī)器周期tl2 寄存器的值加1,由于一個(gè)機(jī)器周期由12 個(gè)振蕩時(shí)鐘構(gòu)成,因此,計(jì)數(shù)速率為振蕩頻率的1/12。在計(jì)數(shù)工作方式時(shí),當(dāng)t2 引腳上外部輸入信號(hào)產(chǎn)生由1 至0 的下降沿時(shí),寄存器的值加1,在這種工作方式下,每個(gè)機(jī)器周期的5sp2 期間,對(duì)外部輸入進(jìn)行采樣。若在第一個(gè)機(jī)器周期中采到的值為1
31、,而在下一個(gè)機(jī)器周期中采到的值為0,則在緊跟著的下一個(gè)周期的s3p1 期間寄存器加1。由于識(shí)別1 至0 的跳變需要2 個(gè)機(jī)器周期(24 個(gè)振蕩周期),因此,最高計(jì)數(shù)速率為振蕩頻率的1/24。為確保采樣的正確性,要求輸入的電平在變化前至少保持一個(gè)完整周期的時(shí)間,以保證輸入信號(hào)至少被采樣一次。自動(dòng)重裝載(向上或向下計(jì)數(shù)器)方式當(dāng)定時(shí)器2工作于16位自動(dòng)重裝載方式時(shí),能對(duì)其編程為向上或向下計(jì)數(shù)方式,這個(gè)功能可通過特殊功能寄存器t2con(見表5)的dcen 位(允許向下計(jì)數(shù))來選擇的。復(fù)位時(shí),dcen 位置“0”,定時(shí)器2 默認(rèn)設(shè)置為向上計(jì)數(shù)。當(dāng)dcen置位時(shí),定時(shí)器2 既可向上計(jì)數(shù)也可向下計(jì)數(shù),這
32、取決于t2ex 引腳的值,參見圖5,當(dāng)dcen=0 時(shí),定時(shí)器2 自動(dòng)設(shè)置為向上計(jì)數(shù),在這種方式下,t2con 中的exen2 控制位有兩種選擇,若exen2=0,定時(shí)器2 為向上計(jì)數(shù)至0ffffh 溢出,置位tf2 激活中斷,同時(shí)把16 位計(jì)數(shù)寄存器rcap2h 和rcap2l重裝載,rcap2h 和rcap2l 的值可由軟件預(yù)置。若exen2=1,定時(shí)器2 的16 位重裝載由溢出或外部輸入端t2ex 從1 至0 的下降沿觸發(fā)。這個(gè)脈沖使exf2 置位,如果中斷允許,同樣產(chǎn)生中斷。定時(shí)器2 的中斷入口地址是:002bh 0032h 。當(dāng)dcen=1 時(shí),允許定時(shí)器2 向上或向下計(jì)數(shù),如圖6
33、所示。這種方式下,t2ex 引腳控制計(jì)數(shù)器方向。t2ex 引腳為邏輯“1”時(shí),定時(shí)器向上計(jì)數(shù),當(dāng)計(jì)數(shù)0ffffh 向上溢出時(shí),置位tf2,同時(shí)把16 位計(jì)數(shù)寄存器rcap2h 和rcap2l 重裝載到th2 和tl2 中。 t2ex 引腳為邏輯“0”時(shí),定時(shí)器2 向下計(jì)數(shù),當(dāng)th2 和tl2 中的數(shù)值等于rcap2h 和rcap2l中的值時(shí),計(jì)數(shù)溢出,置位tf2,同時(shí)將0ffffh 數(shù)值重新裝入定時(shí)寄存器中。當(dāng)定時(shí)/計(jì)數(shù)器2 向上溢出或向下溢出時(shí),置位exf2 位。波特率發(fā)生器當(dāng)t2con(表3)中的tclk 和rclk 置位時(shí),定時(shí)/計(jì)數(shù)器2 作為波特率發(fā)生器使用。如果定時(shí)/計(jì)數(shù)器2 作為發(fā)
34、送器或接收器,其發(fā)送和接收的波特率可以是不同的,定時(shí)器1 用于其它功能,如圖7 所示。若rclk 和tclk 置位,則定時(shí)器2工作于波特率發(fā)生器方式。波特率發(fā)生器的方式與自動(dòng)重裝載方式相仿,在此方式下,th2 翻轉(zhuǎn)使定時(shí)器2 的寄存器用rcap2h 和rcap2l 中的16位數(shù)值重新裝載,該數(shù)值由軟件設(shè)置。在方式1 和方式3 中,波特率由定時(shí)器2 的溢出速率根據(jù)下式確定:方式1和3的波特率=定時(shí)器的溢出率/16定時(shí)器既能工作于定時(shí)方式也能工作于計(jì)數(shù)方式,在大多數(shù)的應(yīng)用中,是工作在定時(shí)方式(c/t2=0)。定時(shí)器2 作為波特率發(fā)生器時(shí),與作為定時(shí)器的操作是不同的,通常作為定時(shí)器時(shí),在每個(gè)機(jī)器周期
35、(1/12 振蕩頻率)寄存器的值加1,而作為波特率發(fā)生器使用時(shí),在每個(gè)狀態(tài)時(shí)間(1/2 振蕩頻率)寄存器的值加1。波特率的計(jì)算公式如下:方式1和3的波特率=振蕩頻率/32*65536-(rcp2h,rcp2l)式中(rcap2h,rcap2l)是rcap2h 和rcap2l中的16 位無符號(hào)數(shù)。定時(shí)器2 作為波特率發(fā)生器使用的電路如圖7 所示。t2con 中的rclk 或tclk=1 時(shí),波特率工作方式才有效。在波特率發(fā)生器工作方式中,th2 翻轉(zhuǎn)不能使tf2 置位,故而不產(chǎn)生中斷。但若exen2 置位,且t2ex 端產(chǎn)生由1 至0 的負(fù)跳變,則會(huì)使exf2 置位,此時(shí)并不能將(rcap2h,
36、rcap2l)的內(nèi)容重新裝入th2 和tl2 中。所以,當(dāng)定時(shí)器2 作為波特率發(fā)生器使用時(shí),t2ex 可作為附加的外部中斷源來使用。需要注意的是,當(dāng)定時(shí)器2 工作于波特率器時(shí),作為定時(shí)器運(yùn)行(tr2=1)時(shí),并不能訪問th2 和tl2。因?yàn)榇藭r(shí)每個(gè)狀態(tài)時(shí)間定時(shí)器都會(huì)加1,對(duì)其讀寫將得到一個(gè)不確定的數(shù)值。然而,對(duì)rcap2 則可讀而不可寫,因?yàn)閷懭氩僮鲗⑹侵匦卵b載,寫入操作可能令寫和/或重裝載出錯(cuò)。在訪問定時(shí)器2或rcap2 寄存器之前,應(yīng)將定時(shí)器關(guān)閉(清除tr2)。可編程時(shí)鐘輸出定時(shí)器2 可通過編程從p1.0 輸出一個(gè)占空比為50%的時(shí)鐘信號(hào),如圖8 所示。p1.0 引腳除了是一個(gè)標(biāo)準(zhǔn)的i/o
37、 口外,還可以通過編程使其作為定時(shí)/計(jì)數(shù)器2 的外部時(shí)鐘輸入和輸出占空比50%的時(shí)鐘脈沖。當(dāng)時(shí)鐘振蕩頻率為16mhz 時(shí),輸出時(shí)鐘頻率范圍為61hz4mhz。當(dāng)設(shè)置定時(shí)/計(jì)數(shù)器2 為時(shí)鐘發(fā)生器時(shí),c/t2(t2con .1)=0,t2oe (t2mod.1) =1,必須由tr2(t2con.2)啟動(dòng)或停止定時(shí)器。時(shí)鐘輸出頻率取決于振蕩頻率和定時(shí)器2 捕獲寄存器(rcap2h,rcap2l)的重新裝載值,公式如下:輸出時(shí)鐘頻率=振蕩器頻率/4*65536-(rcp2h,rcp2l)在時(shí)鐘輸出方式下,定時(shí)器2 的翻轉(zhuǎn)不會(huì)產(chǎn)生中斷,這個(gè)特性與作為波特率發(fā)生器使用時(shí)相仿。定時(shí)器2 作為波特率發(fā)生器使用
38、時(shí),還可作為時(shí)鐘發(fā)生器使用,但需要注意的是波特率和時(shí)鐘輸出頻率不能分開確定,這是因?yàn)樗鼈兺褂胷cap2l和rcap2l。uart at89c52的uart 工作方式與at89c51 工作方式相同。中斷at89c52 共有6 個(gè)中斷向量:兩個(gè)外中斷(int0 和int1),3 個(gè)定時(shí)器中斷(定時(shí)器0、1、2)和串行口中斷。所有這些中斷源如圖9 所示。這些中斷源可通過分別設(shè)置專用寄存器ie 的置位或清0 來控制每一個(gè)中斷的允許或禁止。ie 也有一個(gè)總禁止位ea,它能控制所有中斷的允許或禁止。注意表5 中的ie.6 為保留位,在at89c51 中ie.5 也是保留位。程序員不應(yīng)將“1”寫入這些位,
39、它們是將來at89 系列產(chǎn)品作為擴(kuò)展用的。定時(shí)器2 的中斷是由t2con 中的tf2 和exf2 邏輯或產(chǎn)生的,當(dāng)轉(zhuǎn)向中斷服務(wù)程序時(shí),這些標(biāo)志位不能被硬件清除,事實(shí)上,服務(wù)程序需確定是tf2 或exf2 產(chǎn)生中斷,而由軟件清除中斷標(biāo)志位。定時(shí)器0 和定時(shí)器1 的標(biāo)志位tf0 和tf1 在定時(shí)器溢出那個(gè)機(jī)器周期的s5p2 狀態(tài)置位,而會(huì)在下一個(gè)機(jī)器周期才查詢到該中斷標(biāo)志。然而,定時(shí)器2 的標(biāo)志位tf2 在定時(shí)器溢出的那個(gè)機(jī)器周期的s2p2 狀態(tài)置位,并在同一個(gè)機(jī)器周期內(nèi)查詢到該標(biāo)志。時(shí)鐘振蕩器at89c52 中有一個(gè)用于構(gòu)成內(nèi)部振蕩器的高增益反相放大器,引腳xtal1 和xtal2 分別是該放大
40、器的輸入端和輸出端。這個(gè)放大器與作為反饋元件的片外石英晶體或陶瓷諧振器一起構(gòu)成自激振蕩器,振蕩電路參見圖10。外接石英晶體(或陶瓷諧振器)及電容c1、c2 接在放大器的反饋回路中構(gòu)成并聯(lián)振蕩電路。對(duì)外接電容c1、c2 雖然沒有十分嚴(yán)格的要求,但電容容量的大小會(huì)輕微影響振蕩頻率的高低、振蕩器工作的穩(wěn)定性、起振的難易程序及溫度穩(wěn)定性,如果使用石英晶體,我們推薦電容使用30pf±10pf,而如使用陶瓷諧振器建議選擇40pf±10f。用戶也可以采用外部時(shí)鐘。采用外部時(shí)鐘的電路如圖10 右圖所示。這種情況下,外部時(shí)鐘脈沖接到xtal1 端,即內(nèi)部時(shí)鐘發(fā)生器的輸入端,xtal2 則懸空
41、。由于外部時(shí)鐘信號(hào)是通過一個(gè)2 分頻觸發(fā)器后作為內(nèi)部時(shí)鐘信號(hào)的,所以對(duì)外部時(shí)鐘信號(hào)的占空比沒有特殊要求,但最小高電平持續(xù)時(shí)間和最大的低電平持續(xù)時(shí)間應(yīng)符合產(chǎn)品技術(shù)條件的要求。flash存儲(chǔ)器的編程at89c52單片機(jī)內(nèi)部有8k字節(jié)的flash perom,這個(gè)flash 存儲(chǔ)陣列出廠時(shí)已處于擦除狀態(tài)(即所有存儲(chǔ)單元的內(nèi)容均為ffh),用戶隨時(shí)可對(duì)其進(jìn)行編程。編程接口可接收高電壓(+12v)或低電壓(vcc)的允許編程信號(hào)。低電壓編程模式適合于用戶在線編程系統(tǒng),而高電壓編程模式可與通用eprom 編程器兼容。at89c52 單片機(jī)中,有些屬于低電壓編程方式,而有些則是高電壓編程方式,用戶可從芯片上
42、的型號(hào)和讀取芯片內(nèi)的簽名字節(jié)獲得該信息。at89c52 的程序存儲(chǔ)器陣列是采用字節(jié)寫入方式編程的,每次寫入一個(gè)字節(jié),要對(duì)整個(gè)芯片內(nèi)的perom 程序存儲(chǔ)器寫入一個(gè)非空字節(jié),必須使用片擦除的方式將整個(gè)存儲(chǔ)器的內(nèi)容清除。編程方法編程前,須按表9 和圖11 所示設(shè)置好地址、數(shù)據(jù)及控制信號(hào), at89c52 編程方法如下:1 在地址線上加上要編程單元的地址信號(hào)。2 在數(shù)據(jù)線上加上要寫入的數(shù)據(jù)字節(jié)。3 激活相應(yīng)的控制信號(hào)。4 在高電壓編程方式時(shí),將ea/vpp 端加上+12v 編程電壓。5 每對(duì)flash 存儲(chǔ)陣列寫入一個(gè)字節(jié)或每寫入一個(gè)程序加密位,加上一個(gè)ale/prog 編程脈沖。每個(gè)字節(jié)寫入周期是
43、自身定時(shí)的,通常約為1.5ms。重復(fù)15 步驟,改變編程單元的地址和寫入的數(shù)據(jù),直到全部文件編程結(jié)束。§3.1.2 ds1302簡介ds1302的結(jié)構(gòu)及工作原理ds1302 是美國dallas公司推出的一種高性能、低功耗、帶ram的實(shí)時(shí)時(shí)鐘電路,它可以對(duì)年、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí),具有閏年補(bǔ)償功能,工作電壓為2.5v5.5v。采用三線接口與cpu進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)或ram數(shù)據(jù)。ds1302內(nèi)部有一個(gè)31×8的用于臨時(shí)性存放數(shù)據(jù)的ram寄存器。ds1302是ds1202的升級(jí)產(chǎn)品,與ds1202兼容,但增加了主電源/后備電源雙電
44、源引腳,同時(shí)提供了對(duì)后備電源進(jìn)行涓細(xì)電流充電的能力。 引腳功能及結(jié)構(gòu)ds1302的引腳排列,其中vcc1為后備電源,vcc2為主電源。在主電源關(guān)閉的情況下,也能保持時(shí)鐘的連續(xù)運(yùn)行。ds1302由vcc1或vcc2兩者中的較大者供電。當(dāng)vcc2大于vcc1+0.2v時(shí),vcc2給ds1302供電。當(dāng)vcc2小于vcc1時(shí),ds1302由vcc1供電。x1和x2是振蕩源,外接32.768khz晶振。rst是復(fù)位/片選線,通過把rst輸入驅(qū)動(dòng)置高電平來啟動(dòng)所有的數(shù)據(jù)傳送。rst輸入有兩種功能:首先,rst接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,rst提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段
45、。當(dāng)rst為高電平時(shí),所有的數(shù)據(jù)傳送被初始化,允許對(duì)ds1302進(jìn)行操作。如果在傳送過程中rst置為低電平,則會(huì)終止此次數(shù)據(jù)傳送,i/o引腳變?yōu)楦咦钁B(tài)。上電運(yùn)行時(shí),在vcc>2.0v之前,rst必須保持低電平。只有在sclk為低電平時(shí),才能將rst置為高電平。i/o為串行數(shù)據(jù)輸入輸出端(雙向),后面有詳細(xì)說明。sclk為時(shí)鐘輸入端。 下圖為ds1302的引腳功能圖: ds1302封裝圖ds1302的控制字節(jié)ds1302 的控制字如圖2所示??刂谱止?jié)的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入ds1302中,位6如果為0,則表示存取日歷時(shí)鐘數(shù)據(jù),
46、為1表示存取ram數(shù)據(jù);位5至位1指示操作單元的地址;最低有效位(位0)如為0表示要進(jìn)行寫操作,為1表示進(jìn)行讀操作,控制字節(jié)總是從最低位開始輸出。 數(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。ds1302的寄存器ds1302有12個(gè)寄存器,其中有7個(gè)寄存器與日歷、時(shí)鐘相關(guān),存放的數(shù)據(jù)位為bcd碼形式,其日歷、時(shí)間寄存器及其控制字見表1。 此外,ds1302 還有年份寄存器、控制寄存器、充電寄存器、時(shí)鐘突發(fā)寄
47、存器及與ram相關(guān)的寄存器等。時(shí)鐘突發(fā)寄存器可一次性順序讀寫除充電寄存器外的所有寄存器內(nèi)容。 ds1302與ram相關(guān)的寄存器分為兩類:一類是單個(gè)ram單元,共31個(gè),每個(gè)單元組態(tài)為一個(gè)8位的字節(jié),其命令控制字為c0hfdh,其中奇數(shù)為讀操作,偶數(shù)為寫操作;另一類為突發(fā)方式下的ram寄存器,此方式下可一次性讀寫所有的ram的31個(gè)字節(jié),命令控制字為feh(寫)、ffh(讀)。 §3.2 系統(tǒng)硬件架構(gòu) 本設(shè)計(jì)以模塊化的方式來進(jìn)行硬件電路的設(shè)計(jì)和調(diào)試。單片機(jī)的模塊化就是把系統(tǒng)分成各個(gè)具有獨(dú)立功能又可以互相銜接的簡單模塊,將復(fù)雜難懂的指令、語法、編程及其電路分解,使設(shè)計(jì)簡單化。本設(shè)計(jì)的電路
48、模塊可以分為穩(wěn)壓電源模塊、時(shí)鐘模塊、晶振模塊、液晶顯示模塊、按鍵模塊、蜂鳴器報(bào)警模塊等。§3.2.1 電源部分 圖 3-1 穩(wěn)壓電源如圖3.1所示,從外部引入4.5v的直流電,為時(shí)鐘芯片、單片機(jī)、復(fù)位電路等提供電源。§3.2.2 復(fù)位與晶振電路 圖3-2 復(fù)位電路 圖3-3 晶振電路如圖3.2所示,復(fù)位電路主要由型號(hào)為10uf的電容, 10k的電阻以及按鍵s1構(gòu)成,s1接芯片的相應(yīng)引腳rst,當(dāng)開關(guān)按下時(shí)引腳rst為高電平1,斷開時(shí)引腳為低電平0。晶振電路中晶振為12mhz與 ds1302時(shí)鐘芯片相連接, 為時(shí)鐘芯片提供最為基本的脈沖信號(hào)的方法實(shí)現(xiàn)了在時(shí)鐘芯片中的計(jì)時(shí)作用。
49、實(shí)驗(yàn)板的時(shí)鐘振蕩源電路如圖3.3所示。該電路提供單片機(jī)工作所需的振蕩頻率,計(jì)算定時(shí)器初值即需此晶振頻率,在通信時(shí)也需知道晶振頻率,以對(duì)波特率進(jìn)行計(jì)算。§3.2.3 液晶顯示電路 圖3-4 液晶顯示電路 液晶顯示電路部分,通過液晶屏與單片機(jī)相連接,再經(jīng)過進(jìn)一步的編程,使電子時(shí)鐘的時(shí)間、調(diào)時(shí)、定時(shí)、同步都能夠明確的顯示出來,使人一目了然。§3.2.4 按鍵電路 圖3-5 按鍵電路電子鐘的按鍵電路設(shè)有同步(p3.3),鬧鈴(p3.4),選定(p3.5),加(p3.6),減(p3.7)等五個(gè)基本按鍵。每按一下同步按鍵可以使主機(jī)與從機(jī)時(shí)間達(dá)到同步,按下鬧鈴鍵,在達(dá)到定時(shí)時(shí)間時(shí)有蜂鳴報(bào)
50、警,按下選定鍵可以選定年月日時(shí)分秒的每一位,再按加、減鍵,而達(dá)到調(diào)時(shí)效果。 第4章 系統(tǒng)軟件設(shè)計(jì) §4.1 軟件設(shè)計(jì)的總體說明 本系統(tǒng)的程序采用c語言編寫,為了便于修改和調(diào)試,系統(tǒng)軟件采用模塊化設(shè)計(jì),程序的編寫編譯在keil軟件中完成。 首先對(duì)at89c52、ds1302、lcd1602進(jìn)行初始化,日歷和時(shí)間信息通過lcd1602顯示出來。系統(tǒng)中有五個(gè)按鍵,即:設(shè)置鍵(選定)、切換鍵(鬧鐘)、上調(diào)鍵(加)、下調(diào)鍵(減)以及同步鍵。通過按鍵選定、加、減鍵可對(duì)系統(tǒng)時(shí)間進(jìn)行修改;當(dāng)按下鬧鐘鍵,系統(tǒng)可調(diào)用鬧鐘程序,并可通過選定、加、減鍵對(duì)鬧鐘時(shí)間進(jìn)行修改;當(dāng)按下同步鍵,主機(jī)系統(tǒng)可讀取從機(jī)系統(tǒng)
51、的時(shí)間,并通過lcd顯示出來。§4.2 主程序流程圖 圖4-1 主程序流程圖 第5章 系統(tǒng)的仿真及調(diào)試§5.1 系統(tǒng)軟硬件調(diào)試調(diào)試工作分硬件調(diào)試和軟件調(diào)試兩部分,調(diào)試方法介紹如下:首先,硬件調(diào)試主要是先搭建硬件平臺(tái),然后利用萬用表等工具對(duì)電路檢查,最后應(yīng)用程序進(jìn)行功能調(diào)試。硬件調(diào)試比較費(fèi)時(shí),需要細(xì)心和耐心,也需要熟練掌握電路原理。然后,可以直接應(yīng)用一些編輯或仿真軟件進(jìn)行軟件調(diào)試,比如單片機(jī)c51編輯軟件keil。該軟件提供了一個(gè)集成開發(fā)環(huán)境uvision,它包括c編輯器、宏編輯器、連接器、庫管理和一個(gè)功能強(qiáng)人的仿真調(diào)試器。通過編譯、運(yùn)行,可以檢查程序錯(cuò)誤。但應(yīng)用此方法,仍需
52、要十分了解所使用元器件的工作方式和管腳連接方式。存軟件調(diào)試過程中要仔細(xì)耐心,即便是多寫或少寫一兩個(gè)字符,都無法編譯成功。而有時(shí)往往在keil巾編譯、運(yùn)行無錯(cuò),但燒錄到單片機(jī)中運(yùn)行起來就會(huì)出錯(cuò),很可能是編程時(shí)管腳或時(shí)序編輯得不對(duì)。還有一種方式,即應(yīng)用仿真軟件搭建電路的軟件平臺(tái),再導(dǎo)入程序進(jìn)行仿真調(diào)試。如果電路出錯(cuò),可以在計(jì)算機(jī)上方便的修改電路,程序出錯(cuò)可以重新編輯程序,這種方法節(jié)時(shí)、省力,經(jīng)濟(jì)、方便。筆者應(yīng)用的仿真軟件為proteus??傊?,調(diào)試過程是一個(gè)軟硬件相結(jié)合調(diào)試的過程,硬件電路是基礎(chǔ),軟件是檢測(cè)硬件電路和實(shí)現(xiàn)其功能的關(guān)鍵。在調(diào)試過程中,首先必須明確調(diào)試順序。例如:本設(shè)計(jì)是在單片機(jī)系統(tǒng)基
53、礎(chǔ)上建立起米的,所以必須先確定單片機(jī)基礎(chǔ)電路能否正常工作。為了正確顯示時(shí)間,接下來還要確定顯示電路能否正常工作。硬件調(diào)試的過程,也是軟件調(diào)試的過程。然后,要準(zhǔn)備好調(diào)試的工具。硬件調(diào)試需要萬用表、示波器等,軟件調(diào)試一般需要諸如keil等仿真編輯器。筆者根據(jù)自己實(shí)際制作該多功能電時(shí)鐘的經(jīng)驗(yàn),將調(diào)試過程介紹如下:軟件調(diào)試時(shí)先進(jìn)行單元測(cè)試,分別對(duì)各個(gè)代碼模塊進(jìn)行測(cè)試,看其是否實(shí)現(xiàn)了規(guī)定功能,再把已經(jīng)測(cè)試過的模塊組合起來進(jìn)行測(cè)試,一旦不能正確運(yùn)行,要找出程序中的錯(cuò)誤,確定大致的出錯(cuò)位置,研究有關(guān)部分的錯(cuò)誤程序,找出錯(cuò)誤原因,修改設(shè)計(jì)和代碼,以排除錯(cuò)誤。我們?cè)诔绦蚓帉懲瓿珊?,就可以利用仿真器進(jìn)行初步調(diào)試,
54、觀察在計(jì)算機(jī)里能否通過編譯與運(yùn)行并達(dá)到設(shè)計(jì)的基本要求。在基本符合的情況下,利用仿真器與工作正常的硬件連接進(jìn)行仿真調(diào)試;或用編程器把程序燒寫到芯片中,直接觀察能否正常運(yùn)行。如果達(dá)不到設(shè)計(jì)要求或者不能正常運(yùn)行,可以直接在程序中進(jìn)行修改。在系統(tǒng)上電開始測(cè)量前,要用萬用表的電壓檔對(duì)被測(cè)電壓進(jìn)行估測(cè),然后以此選擇適當(dāng)?shù)牧砍蹋乐闺妷哼^大燒壞硬件。首先用萬用表按照原理圖逐步檢查印刷板中各器件的電源及各引腳的連接是否正確,有否斷路、短路或者虛焊,尤其是給電路供電的電源部分要重點(diǎn)檢查,如果電壓沒有達(dá)到要求,要及時(shí)排查給予解決,以免燒壞芯片和其他元器件。系統(tǒng)調(diào)試中遇到的問題及解決的方法:1)由于源程序的多處錯(cuò)誤
55、,使得仿真無法通過,后經(jīng)過單步調(diào)試,把存在的錯(cuò)誤一一排除,通過了軟件仿真。2)程序下載到硬件上之后,在檢查過程中發(fā)現(xiàn)年歷中的日期中出現(xiàn)了00日,所以軟件編程時(shí)出錯(cuò),經(jīng)過改正之后重新下載調(diào)試正確。3)在燒錄芯片的過程中,由于選擇燒錄文件的錯(cuò)誤及芯片自身問題,經(jīng)過多次多次燒錄,才燒錄正確。§5.2 系統(tǒng)的仿真 §5.2.1 仿真軟件的簡介本電子鐘的設(shè)計(jì)用的pretues仿真軟件設(shè)計(jì)電路并仿真。proteus isis是英國labcenter公司開發(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)試器、鍵盤和lcd系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號(hào)發(fā)生器等。支持主流單片機(jī)系統(tǒng)的仿真。目前支持的單片機(jī)類型有:68000系列、8051系列、avr系列、pic12系列、pic16系列、pic18系列、z80系列、hc11系列以及各種外圍芯片。提供軟件調(diào)試功能。在硬件仿真系統(tǒng)中具有全速、單步、設(shè)置斷點(diǎn)等調(diào)試功能,同時(shí)可以觀察各個(gè)變量、寄存器等的當(dāng)前狀態(tài),因此在該軟件仿真系統(tǒng)中,也必須具有這些功能;同時(shí)支持第三方
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 風(fēng)險(xiǎn)管理的定量與定性分析試題及答案
- 制定年度培訓(xùn)目標(biāo)計(jì)劃
- 財(cái)務(wù)預(yù)測(cè)分析方案計(jì)劃
- 秘書與調(diào)研能力的建立計(jì)劃
- 創(chuàng)新教學(xué)方法的實(shí)踐與反思計(jì)劃
- 幼兒園健康教育的實(shí)施策略計(jì)劃
- 行政法與公共利益保護(hù)試題及答案
- 實(shí)現(xiàn)持續(xù)改進(jìn)與創(chuàng)新的計(jì)劃
- 利用藝術(shù)提升學(xué)術(shù)成績的方法計(jì)劃
- 抓住法學(xué)概論考試要點(diǎn)的試題及答案
- 國網(wǎng)公司保密培訓(xùn)課件
- 新時(shí)代如何推進(jìn)企業(yè)實(shí)現(xiàn)高質(zhì)量發(fā)展
- 網(wǎng)絡(luò)攻擊與防護(hù) 課件 9-內(nèi)網(wǎng)Windows環(huán)境攻擊實(shí)踐
- 餐具消毒商業(yè)計(jì)劃書
- 6-5焊接材料烘焙記錄
- 城市軌道交通綜合監(jiān)控系統(tǒng)功能
- 鉆孔施工流程圖
- 趕工方案(精裝、幕墻工程)
- 牛頓第二定律說課稿
- 23秋國家開放大學(xué)《農(nóng)業(yè)經(jīng)濟(jì)基礎(chǔ)》形考任務(wù)1-4參考答案
- 教科版(2017)小學(xué)科學(xué)三年下冊(cè)《物體在斜面上運(yùn)動(dòng)》說課(附反思、板書)課件
評(píng)論
0/150
提交評(píng)論