版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 畢業(yè)論文設(shè)計(jì)</b></p><p> 題 目: 基于單片機(jī)的數(shù)字萬(wàn)年歷設(shè)計(jì) </p><p> 學(xué)生姓名: </p><p> 學(xué)生學(xué)號(hào): </p><p> 系 別:
2、 電氣信息工程學(xué)院 </p><p> 專(zhuān) 業(yè): 通信工程 </p><p> 屆 別: </p><p> 指導(dǎo)教師: </p><p> 基于單片機(jī)的數(shù)字萬(wàn)年歷設(shè)計(jì)</
3、p><p> 摘 要:本文借助電路仿真軟件Protues對(duì)基于AT89S51單片機(jī)的電子萬(wàn)年歷的設(shè)計(jì)方法及仿真進(jìn)行了全面的闡述。該電子萬(wàn)年歷在硬件方面主要采用AT89C51單片機(jī)作為主控核心,由DS1302時(shí)鐘芯片提供時(shí)鐘、1602LCM點(diǎn)陣液晶顯示屏顯示。AT89C51單片機(jī)是由Atmel公司推出的,功耗小,電壓可選用4~6V電壓供電;DS1302時(shí)鐘芯片是美國(guó)DALLAS公司推出的具有涓細(xì)電流充電功能的低功耗實(shí)
4、時(shí)時(shí)鐘芯片,它可以對(duì)年、月、日、星期、時(shí)、分、秒進(jìn)行計(jì)時(shí),還具有閏年補(bǔ)償?shù)榷喾N功能,而且DS1302的使用壽命長(zhǎng),誤差小;數(shù)字顯示是采用的LED液晶顯示屏來(lái)顯示,可以同時(shí)顯示年、月、日、星期、時(shí)、分、秒等信息。此外,該電子萬(wàn)年歷還具有時(shí)間校準(zhǔn)等功能。在軟件方面,主要包括日歷程序、時(shí)間調(diào)整程序,顯示程序等。所有程序編寫(xiě)完成后,在Keil軟件中進(jìn)行調(diào)試,確定沒(méi)有問(wèn)題后,在Proteus軟件中嵌入單片機(jī)內(nèi)進(jìn)行仿真。 論文主要研究了液晶顯示器L
5、CM及時(shí)鐘芯片DS1302,溫度傳感器DS18B20與單片機(jī)之間的硬件互聯(lián)及通信,對(duì)數(shù)種硬件連接方案進(jìn)行了詳盡的比較,在軟件方面對(duì)日歷算法也進(jìn)行了論述。 研</p><p> 關(guān)鍵詞:?jiǎn)纹瑱C(jī);DS1302;DS18B20;LCM1602 </p><p> Design of the digital Perpetual Calendar based on Single chip mi
6、crocomputer</p><p> ABSTRACT:This paper mainly discuss the design and simulation of electronic calender based on AT89S51 with the help of Protues.On the hardware side, the electronic calendar using AT89C51
7、microcontroller as the main control center, clock provided by the DS1302 clock chip , 1602LED dot matrix LCD display.Atmel Corporation AT89C51 microcontroller is producted by Atmel Corporation, low power consumption, vol
8、tage can be selected 4V~ 6V voltage power supply; DS1302 clock chip, launched in the United St</p><p> Keyword: Microcontroller,DS1302;DS18B20;LCD1602</p><p> 目 錄</p><p&
9、gt;<b> 前言3</b></p><p><b> 1 方案設(shè)計(jì)4</b></p><p><b> 1.1 概述4</b></p><p> 1.1.1 實(shí)時(shí)時(shí)鐘研究的背景及意義4</p><p> 1.1.2 系統(tǒng)的總體設(shè)計(jì)5</p>
10、<p> 1.2 系統(tǒng)基本方案選擇和論證6</p><p> 1.2.1 單片機(jī)芯片的選擇6</p><p> 1.2.2 顯示模塊選擇方案和論證6</p><p> 1.2.3 時(shí)鐘芯片的選擇方案和論證6</p><p> 1.2.4 電路設(shè)計(jì)最終方案決定7</p><p> 2 硬
11、件電路設(shè)計(jì)7</p><p> 2.1 系統(tǒng)硬件概述7</p><p> 2.2 單片機(jī)最小系統(tǒng)8</p><p> 2.3 單片機(jī)的復(fù)位電路9</p><p> 2.4 時(shí)鐘芯片電路11</p><p> 2.4.1 時(shí)鐘芯片引腳介紹11</p><p> 2.4.2
12、時(shí)鐘芯片DS1302介紹12</p><p> 2.5 1602LCD液晶顯示屏13</p><p> 2.5.1 1602字符型LCD簡(jiǎn)介13</p><p> 2.5.2 1602引腳功能說(shuō)明13</p><p> 2.6 蜂鳴器鬧鈴電路14</p><p> 2.7 按鍵調(diào)整電路14<
13、;/p><p> 2.8 顯示模塊15</p><p> 3 軟件部分設(shè)計(jì)16</p><p> 3.1 程序流程框圖16</p><p> 3.2 時(shí)間設(shè)置子程序流程16</p><p> 3.3 程序設(shè)計(jì)問(wèn)題17</p><p> 3.3.1 按鍵抖動(dòng)問(wèn)題17</p
14、><p> 3.3.2 蜂鳴器設(shè)置18</p><p> 3.3.3 液晶顯示的設(shè)置18</p><p> 3.3.4 中斷設(shè)置18</p><p> 3.3.5 時(shí)鐘芯片設(shè)置19</p><p> 4 開(kāi)發(fā)工具Proteus與Keil21</p><p> 4.1 Prote
15、us軟件21</p><p> 4.1.1 Proteus簡(jiǎn)介21</p><p> 4.1.2 4大功能模塊22</p><p> 4.1.3 ISIS智能原理圖輸入系統(tǒng)23</p><p> 4.1.4 Proteus簡(jiǎn)單應(yīng)用23</p><p> 4.2 Keil軟件24</p>
16、<p> 4.2.1 Keil軟件簡(jiǎn)介24</p><p> 4.2.2 Keil軟件調(diào)試功能24</p><p> 4.3 本章小結(jié)25</p><p><b> 5 系統(tǒng)測(cè)試26</b></p><p> 5.1 硬件測(cè)試26</p><p> 5.2 軟件
17、測(cè)試26</p><p><b> 結(jié)束語(yǔ)26</b></p><p><b> 致謝27</b></p><p><b> 參考文獻(xiàn)28</b></p><p><b> 附錄29</b></p><p><
18、;b> 前言</b></p><p> 隨著社會(huì)、科技的發(fā)展,人類(lèi)得知時(shí)間,從觀(guān)太陽(yáng)、擺鐘到現(xiàn)在電子鐘,不斷研究、創(chuàng)新。為了在觀(guān)測(cè)時(shí)間的同時(shí),能夠了解其它與人類(lèi)密切相關(guān)的信息,比如溫度、星期、日期等,電子萬(wàn)年歷誕生了,它集時(shí)間、日期、星期和溫度功能于一身,具有讀取方便、顯示直觀(guān)、功能多樣、電路簡(jiǎn)潔等諸多優(yōu)點(diǎn),符合電子儀器儀表的發(fā)展趨勢(shì)。伴隨著電子技術(shù)的迅速發(fā)展,特別是隨大規(guī)模集成電路出現(xiàn),給
19、人類(lèi)生活帶來(lái)了根本性的改變。由其是單片機(jī)技術(shù)的應(yīng)用產(chǎn)品已經(jīng)走進(jìn)了千家萬(wàn)戶(hù)。電子萬(wàn)年歷的出現(xiàn)給人們的生活帶來(lái)的諸多方便,作為一種附加功能,現(xiàn)在越來(lái)越廣泛的被應(yīng)用于各種電子產(chǎn)品中,具有廣闊的市場(chǎng)前景。 </p><p> 通過(guò)以往對(duì)工業(yè)自動(dòng)化的相關(guān)課程學(xué)習(xí)和理解獨(dú)立完成制作電子萬(wàn)年歷的設(shè)計(jì)。電子萬(wàn)年歷作為電子類(lèi)小產(chǎn)品不僅是市場(chǎng)上的寵兒,也是是單片機(jī)設(shè)計(jì)培訓(xùn)中一個(gè)很實(shí)用的題目。因?yàn)檫@個(gè)課題有很好的開(kāi)放性和可發(fā)揮性,對(duì)
20、制作者的要求比較高,不僅考察了對(duì)單片機(jī)的掌握能力更加強(qiáng)調(diào)了對(duì)單片機(jī)擴(kuò)展的應(yīng)用。而且要求設(shè)計(jì)的電子萬(wàn)年歷在操作上力求簡(jiǎn)潔,功能上盡量齊全,顯示界面也要出色。所以,電子萬(wàn)年歷制作無(wú)論從實(shí)用目的,還是從培養(yǎng)能力的角度來(lái)看都是很有價(jià)值的畢業(yè)設(shè)計(jì)課題。本電子萬(wàn)年歷的設(shè)計(jì)在硬件方面主要采用AT89S51單片機(jī)作為主控核心,由DS1302時(shí)鐘芯片提供時(shí)鐘、1602LCM點(diǎn)陣液晶顯示屏顯示。AT89S51單片機(jī)是由Atmel公司推出的,功耗小,電壓可選
21、用4~6V電壓供電[1];DS1302時(shí)鐘芯片是美國(guó)DALLAS公司推出的具有涓細(xì)電流充電功能的低功耗實(shí)時(shí)時(shí)鐘芯片,它可以對(duì)年、月、日、星期、時(shí)、分、秒進(jìn)行計(jì)時(shí),還具有閏年補(bǔ)償?shù)榷喾N功能,而且DS1302的使用壽命長(zhǎng),誤差??;數(shù)字顯示是采用的LED液晶顯示屏來(lái)顯示,可以同時(shí)顯示年、月、日、星期、時(shí)、分、秒等信息。此外,該電子萬(wàn)年歷還具有時(shí)間校準(zhǔn)等功能。在軟件方面</p><p><b> 1 方案設(shè)計(jì)
22、</b></p><p><b> 1.1 概述</b></p><p> 1.1.1 實(shí)時(shí)時(shí)鐘研究的背景及意義</p><p> 在現(xiàn)實(shí)我們生活中每個(gè)人都可能有自己的時(shí)鐘,光陰在永不停息的流逝,有了時(shí)鐘人們就能隨著時(shí)間有計(jì)劃的過(guò)著每一天。然而現(xiàn)在絕大部分的時(shí)鐘有的需要不斷地跟換電池,有些時(shí)鐘需要外接電源,如果一旦電池沒(méi)電或者
23、外接電源無(wú)法供電,時(shí)鐘就會(huì)停止計(jì)時(shí)了。而美國(guó)DALLAS 公司的新型時(shí)鐘日歷芯片DS1302就能解決這一問(wèn)題。該器件能提供實(shí)時(shí)時(shí)鐘(RTC)/日歷、定時(shí)鬧鐘。少于31天的月份,月末日期可自動(dòng)調(diào)整,其中包括閏年補(bǔ)償。該器件還可以工作于24小時(shí)貨代/PM指示的12小時(shí)格式。一個(gè)精密的溫度補(bǔ)償電路用來(lái)監(jiān)視Vcc的狀態(tài)。 本時(shí)鐘還具有環(huán)保、走時(shí)無(wú)噪音、低功耗等非實(shí)時(shí)時(shí)鐘不具有的功能。該實(shí)時(shí)時(shí)鐘不但可以作為家用,而且更可以在公共場(chǎng)合使用,
24、如車(chē)站、碼頭、商場(chǎng)等場(chǎng)所。</p><p> 1.1.2 系統(tǒng)的總體設(shè)計(jì)</p><p> 采用AT89C52作為主控單片機(jī),時(shí)鐘模塊選用DS1302作為時(shí)鐘芯片,溫度模塊選用DS18B20作為溫度傳感器,顯示模塊選用LCD1602,設(shè)置部分選用按鍵電路。</p><p> AT89C52與MCS-51單片機(jī)產(chǎn)品兼容 、8K字節(jié)在系統(tǒng)可編程Flash存儲(chǔ)器、
25、1000次擦寫(xiě)周期、 全靜態(tài)操作:0Hz~33Hz 、 三級(jí)加密程序存儲(chǔ)器 、 32個(gè)可編程I/O口線(xiàn) 、三個(gè)16位定時(shí)器/計(jì)數(shù)器 八個(gè)中斷源 、全雙工UART串行通道、 低功耗空閑和掉電模式 、掉電后中斷可喚醒 、看門(mén)狗定時(shí)器 、雙數(shù)據(jù)指針 、掉電標(biāo)識(shí)符 。</p><p> DS1302 實(shí)時(shí)時(shí)鐘芯片功能豐富,可以用來(lái)直接代替IBM PC 上的時(shí)鐘日歷芯片DS12887,同時(shí),它的管腳也和MC146818B
26、、DS12887 相兼容。由于DS1302 能夠自動(dòng)產(chǎn)生世紀(jì)、年、月、日、時(shí)、分、秒等時(shí)間信息,其內(nèi)部又增加了世紀(jì)寄存器,從而利用硬件電路解決子“千年”問(wèn)題;DS1302 中自帶有鋰電池,外部掉電時(shí),其內(nèi)部時(shí)間信息還能夠保持10 年之久;對(duì)于一天內(nèi)的時(shí)間記錄,有12 小時(shí)制和24 小時(shí)制兩種模式。用戶(hù)還可對(duì)DS1302 進(jìn)行編程以實(shí)現(xiàn)多種方波輸出,并可對(duì)其內(nèi)部的三路中斷通過(guò)軟件進(jìn)行屏蔽。</p><p> 該系
27、統(tǒng)的系統(tǒng)框圖如圖1.1示:</p><p><b> 如圖1.1系統(tǒng)框圖</b></p><p> 1.2 系統(tǒng)基本方案選擇和論證</p><p> 1.2.1 單片機(jī)芯片的選擇</p><p> 本設(shè)計(jì)采用AT89S51芯片作為硬件核心,該芯片采用Flash ROM,內(nèi)部具有4KB ROM存儲(chǔ)空間,相對(duì)于本設(shè)計(jì)
28、而言程序空間完全夠用。能于3V的超低壓工作,而且與MCS-51系列單片機(jī)完全兼容,而且運(yùn)用于電路設(shè)計(jì)中時(shí)具備ISP在線(xiàn)編程技術(shù),當(dāng)在對(duì)電路進(jìn)行調(diào)試時(shí),由于程序的錯(cuò)誤修改或?qū)Τ绦虻男略龉δ苄枰獰氤绦驎r(shí),避免芯片的多次拔插對(duì)芯片造成的損壞。</p><p> 1.2.2 顯示模塊選擇方案和論證</p><p><b> 方案一: </b></p>&l
29、t;p> 采用點(diǎn)陣式數(shù)碼管顯示,點(diǎn)陣式數(shù)碼管是由八行八列的發(fā)光二極管組成,對(duì)于顯示文字比較適合,如采用在顯示數(shù)字顯得太浪費(fèi),且價(jià)格也相對(duì)較高,所以也不用此種作為顯示。 </p><p><b> 方案二: </b></p><p> 采用LED數(shù)碼管動(dòng)態(tài)掃描,LED數(shù)碼管價(jià)格雖適中,對(duì)于顯示數(shù)字也最合適,而且采用動(dòng)態(tài)掃描法與單片機(jī)連接時(shí),占用的單片機(jī)口線(xiàn)少
30、。但是由于數(shù)碼管動(dòng)態(tài)掃描需要借助74LS164移位寄存器進(jìn)行移位,該芯片在電路調(diào)試時(shí)往往會(huì)有很多障礙,所以不采用LED數(shù)碼管作為顯示。 </p><p><b> 方案三: </b></p><p> 采用LCD液晶顯示屏,液晶顯示屏的顯示功能強(qiáng)大,可顯示大量文字,圖形,顯示多樣,清晰可見(jiàn),對(duì)于電子萬(wàn)年歷而言,一個(gè)1602的液晶屏即可,價(jià)格也還能接受,需要的接口線(xiàn)
31、較多,但會(huì)給調(diào)試帶來(lái)諸多方便,所以此設(shè)計(jì)中采用LCD1602液晶顯示屏作為顯示模塊。</p><p> 1.2.3 時(shí)鐘芯片的選擇方案和論證</p><p><b> 方案一: </b></p><p> 直接采用單片機(jī)定時(shí)計(jì)數(shù)器提供秒信號(hào),使用程序?qū)崿F(xiàn)年、月、日、星期、時(shí)、分、 3秒計(jì)數(shù)。采用此種方案雖然可以減少時(shí)鐘芯片的使用,節(jié)約成本
32、,但是,實(shí)現(xiàn)的時(shí)間誤差較大。所以不采用此方案。 </p><p><b> 方案二: </b></p><p> 采用DS1302時(shí)鐘芯片實(shí)現(xiàn)時(shí)鐘,DS130是美國(guó)DALLAS公司推出的一種高性能、低功耗、帶RAM的實(shí)時(shí)時(shí)鐘電路,它可以對(duì)年、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí),具有閏年補(bǔ)償功能,工作電壓為2.5V~5.5V。采用三線(xiàn)接口與CPU進(jìn)行同步通信,并可采用
33、突發(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兼容,但增加了主電源/后背電源雙電源引腳,同時(shí)提供了對(duì)后背電源進(jìn)行涓細(xì)電流充電的能力。主要特點(diǎn)是采用串行數(shù)據(jù)傳輸,可為掉電保護(hù)電源提供可編程的充電功能,并且可以關(guān)閉充電功能。采用普通32.768kHz晶振[4]。因此,本設(shè)計(jì)中采用DS1302提供時(shí)鐘。</p
34、><p> 1.2.4 電路設(shè)計(jì)最終方案決定</p><p> 綜上各模塊的選擇方案與論證,確定最后的主要硬件資源如下:采用AT89S51作為主控制系統(tǒng);DS1302提供時(shí)鐘;DS18B20作為數(shù)字式溫度傳感器;LCD1602液晶屏作為顯示。</p><p><b> 2 硬件電路設(shè)計(jì)</b></p><p> 2.
35、1 系統(tǒng)硬件概述</p><p> 本電路是由AT89S52單片機(jī)作為控制核心,能在3V超低壓工作,AT89S52是一個(gè)低功耗,高性能CMOS 8位單片機(jī),片內(nèi)含4kBytes ISP(In-system programmable)的可反復(fù)擦寫(xiě)1000次的Flash只讀程序存儲(chǔ)器,器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)制造,兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及80C51引腳結(jié)構(gòu),芯片內(nèi)集成了通用8位中央處理
36、器和ISP Flash存儲(chǔ)單元,功能強(qiáng)大的微型計(jì)算機(jī)的AT89S52可為許多嵌入式控制應(yīng)用系統(tǒng)提供高性?xún)r(jià)比的解決方案;時(shí)鐘電路由DS1302提供,它是一種高性能、低功耗、帶RAM的實(shí)時(shí)時(shí)鐘電路,它可以對(duì)年、月、日、周、時(shí)、分、秒進(jìn)行計(jì)時(shí),具有閏年補(bǔ)償功能,工作電壓為2.5V~5.5V。采用三線(xiàn)接口與CPU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)或RAM數(shù)據(jù)。DS1302內(nèi)部有一個(gè)31*8的用于臨時(shí)性存放數(shù)據(jù)的RAM寄存器
37、。可產(chǎn)生年、月、日、周、時(shí)、分、秒,具有使用壽命長(zhǎng),精度高和低功耗等特點(diǎn),同時(shí)具有掉電自動(dòng)保存功能;顯示部份由LCD1602液晶顯示器完成,該顯示器為工業(yè)字符型液晶,能夠同時(shí)顯示16</p><p> 2.2 單片機(jī)最小系統(tǒng)</p><p> AT89C52單片機(jī)最小系統(tǒng)電路設(shè)計(jì)如圖2.1所示。</p><p> 圖2.1 AT89C52單片機(jī)結(jié)構(gòu)圖</
38、p><p> 本系統(tǒng)以AT89C52單片機(jī)為核心,本系統(tǒng)選用11.0592MHZ的晶振,,使得單片機(jī)有合理的運(yùn)行速度。起振電容30pF對(duì)振蕩器的頻率高低、振蕩器的穩(wěn)定性和起振的快速性影響較合適,復(fù)位電路為按鍵高電平復(fù)位。AT89S52單片機(jī)為40引腳雙列直插芯片,有四個(gè)I/O口P0,P1,P2,P3,MCS-51單片機(jī)共有4個(gè)8位的I/O口(P0、P1、P2、P3),每一條I/O線(xiàn)都能獨(dú)立地作輸出或輸入。</
39、p><p> P0口:P0口為一個(gè)8位漏級(jí)開(kāi)路雙向I/O口,每腳可吸收8TTL門(mén)電流。當(dāng)P1口的管腳第一次寫(xiě)1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。</p><p> P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能
40、接收輸出4TTL門(mén)電流。P1口管腳寫(xiě)入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。</p><p> P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門(mén)電流,當(dāng)P2口被寫(xiě)“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流
41、。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用 6于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫(xiě)時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。</p><p> P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門(mén)電流。當(dāng)P3口寫(xiě)入“1”后,
42、它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。 </p><p> I/O口作為輸入口時(shí)有兩種工作方式,即所謂的讀端口與讀引腳。讀端口時(shí)實(shí)際上并不從外部讀入數(shù)據(jù),而是把端口鎖存器的內(nèi)容讀入到內(nèi)部總線(xiàn),經(jīng)過(guò)某種運(yùn)算或變換后再寫(xiě)回到端口鎖存器。只有讀端口時(shí)才真正地把外部的數(shù)據(jù)讀入到內(nèi)部總線(xiàn)。輸入緩沖器CPU將根據(jù)不同的指令分別發(fā)出讀端口或讀引腳信號(hào)
43、以完成不同的操作。這是由硬件自動(dòng)完成的,不需要我們操心,1然后再實(shí)行讀引腳操作,否則就可能讀入出錯(cuò),如果不對(duì)端口置1,端口鎖存器原來(lái)的狀態(tài)有可能為0Q端為0Q^為1加到場(chǎng)效應(yīng)管柵極的信號(hào)為1,該場(chǎng)效應(yīng)管就導(dǎo)通對(duì)地呈現(xiàn)低阻抗,此時(shí)即使引腳上輸入的信號(hào)為1,也會(huì)因端口的低阻抗而使信號(hào)變低使得外加的1信號(hào)讀入后不一定是1。若先執(zhí)行置1操作,則可以使場(chǎng)效應(yīng)管截止引腳信號(hào)直接加到三態(tài)緩沖器中實(shí)現(xiàn)正確的讀入,由于在輸入操作時(shí)還必須附加一個(gè)準(zhǔn)備動(dòng)作,
44、所以這類(lèi)I/O口被稱(chēng)為準(zhǔn)雙向口。89C51的P0/P1/P2/P3口作為輸入時(shí)都是準(zhǔn)雙向口。</p><p> 2.3 單片機(jī)的復(fù)位電路</p><p> 復(fù)位電路的連接圖如下:</p><p> 圖2.2 復(fù)位電路連接圖</p><p> 為確保微機(jī)系統(tǒng)中電路穩(wěn)定可靠工作,復(fù)位電路是必不可少的一部分,復(fù)位電路的第一功能是上電復(fù)位。一
45、般微機(jī)電路正常工作需要供電電源為5V±5%,即4.75~5.25V。由于微機(jī)電路是時(shí)序數(shù)字電路,它需要穩(wěn)定的時(shí)鐘信號(hào),因此在電源上電時(shí),只有當(dāng)VCC超過(guò)4.75V低于5.25V以及晶體振蕩器穩(wěn)定工作時(shí),復(fù)位信號(hào)才被撤除,微機(jī)電路開(kāi)始正常工作。</p><p> 單片機(jī)在啟動(dòng)時(shí)都需要復(fù)位,以使CPU及系統(tǒng)各部件處于確定的初始狀態(tài),并從初態(tài)開(kāi)始工作。89系列單片機(jī)的復(fù)位信號(hào)是從RST引腳輸入到芯片內(nèi)的施密
46、特觸發(fā)器中的。當(dāng)系統(tǒng)處于正常工作狀態(tài)時(shí),且振蕩器穩(wěn)定后,如果RST引腳上有一個(gè)高電平并維持2個(gè)機(jī)器周期(24個(gè)振蕩周期)以上,則CPU就可以響應(yīng)并將系統(tǒng)復(fù)位。單片機(jī)系統(tǒng)的復(fù)位方式有:手動(dòng)按鈕復(fù)位和上電復(fù)位。</p><p> 51單片機(jī)在系統(tǒng)復(fù)位時(shí),將其內(nèi)部的一些重要寄存器設(shè)置為特定的值,(在特殊寄存器介紹時(shí)再做詳細(xì)說(shuō)明)至于內(nèi)部RAM內(nèi)部的數(shù)據(jù)則不變。</p><p> 系統(tǒng)復(fù)位是任
47、何微機(jī)系統(tǒng)執(zhí)行的第一步,使整個(gè)控制芯片回到默認(rèn)的硬件狀態(tài)下。51單片機(jī)的復(fù)位是由RESET引腳來(lái)控制的,此引腳與高電平相接超過(guò)24個(gè)振蕩周期后,51單片機(jī)即進(jìn)入芯片內(nèi)部復(fù)位狀態(tài),而且一直在此狀態(tài)下等待,直到RESET引腳轉(zhuǎn)為低電平后,才檢查EA引腳是高電平或低電平,若為高電平則執(zhí)行芯片內(nèi)部的程序代碼,若為低電平便會(huì)執(zhí)行外部程序。</p><p> 單片機(jī)的工作完全在其pc指針控制下,即pc指向哪,單片機(jī)就執(zhí)行那
48、里的指令。復(fù)位后pc執(zhí)行0000h地址,即你的程序的第一條指令。</p><p> 2.4 時(shí)鐘芯片電路</p><p> 2.4.1 時(shí)鐘芯片引腳介紹</p><p> 時(shí)鐘芯片DS1302,其引腳分布圖如下所示:</p><p> 圖2.3 DS1302引腳分布圖</p><p> DS1302的引腳排列
49、,其中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供電。</p><p> X1和X2是振蕩源,外接32.768kHz晶振。RST是復(fù)位/片選線(xiàn),通過(guò)把RST輸入驅(qū)動(dòng)置高電平來(lái)啟動(dòng)所有的數(shù)據(jù)傳送。RST輸入有兩
50、種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當(dāng)RST為高電平時(shí),所有的數(shù)據(jù)傳送被初始化,允許對(duì)DS1302進(jìn)行操作。如果在傳送過(guò)程中RST置為低電平,則會(huì)終止此次數(shù)據(jù)傳送,I/O引腳變?yōu)楦咦钁B(tài)。上電運(yùn)行時(shí),在Vcc≥2.5V之前,RST必須保持低電平。只有在SCLK為低電平時(shí),才能將RST置為高電平。</p><p> I/O為串行數(shù)據(jù)輸
51、入輸出端(雙向),后面有詳細(xì)說(shuō)明。</p><p> CLK為時(shí)鐘輸入端。</p><p> 2.4.2 時(shí)鐘芯片DS1302介紹</p><p> 美國(guó)DALLAS公司推出的具有涓細(xì)電流充電能力的低功耗實(shí)時(shí)時(shí)鐘電路DS1302的結(jié)構(gòu)、工作原理及其在實(shí)時(shí)顯示時(shí)間中的應(yīng)用。它可以對(duì)年、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí),且具有閏年補(bǔ)償?shù)榷喾N功能。</p>
52、;<p> DS1302有12個(gè)寄存器,其中有7個(gè)寄存器與日歷、時(shí)鐘相關(guān),存放的數(shù)據(jù)位為BCD碼形式</p><p> 此外,DS1302 還有年份寄存器、控制寄存器、充電寄存器、時(shí)鐘突發(fā)寄存器及與RAM相關(guān)的寄存器等。時(shí)鐘突發(fā)寄存器可一次性順序讀寫(xiě)除充電寄存器外的所有寄存器內(nèi)容。 DS1302與RAM相關(guān)的寄存器分為兩類(lèi):一類(lèi)是單個(gè)RAM單元,共31個(gè),每個(gè)單元組態(tài)為一個(gè)8位的字節(jié),其命令控制
53、字為C0H~FDH,其中奇數(shù)為讀操作,偶數(shù)為寫(xiě)操作;另一類(lèi)為突發(fā)方式下的RAM寄存器,此方式下可一次性讀寫(xiě)所有的RAM的31個(gè)字節(jié),命令控制字為FEH(寫(xiě))、FFH(讀)。 </p><p> 為了實(shí)現(xiàn)系統(tǒng)報(bào)警計(jì)時(shí)等功能,此設(shè)計(jì)采用了DS302實(shí)時(shí)時(shí)鐘芯片。DS1302 是美國(guó)DALLAS公司推出的一種高性能、低功耗、帶RAM的實(shí)時(shí)時(shí)鐘電路,它可以對(duì)年、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí),具有閏年補(bǔ)償功能,工作電
54、壓為2.5V~5.5V。采用三線(xiàn)接口與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兼容,但增加了主電源/后背電源雙電源引腳,同時(shí)提供了對(duì)后背電源進(jìn)行涓細(xì)電流充電的能力。 2.1 引腳功能及結(jié)構(gòu) DS1302的引腳排列,其中Vcc1為后備電源,VCC2為主電源。在主電源關(guān)閉的情況下
55、,也能保持時(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ù)位/片選線(xiàn),通過(guò)把RST輸入驅(qū)動(dòng)置高電平來(lái)啟動(dòng)所有的數(shù)據(jù)傳送。RST輸入有兩種功能:首先,RST</p><p> 控制字節(jié)的最高有效位(位7)必須是邏輯1,如
56、果它為0,則不能把數(shù)據(jù)寫(xiě)入DS1302中,位6如果為0,則表示存取日歷時(shí)鐘數(shù)據(jù),為1表示存取RAM數(shù)據(jù);位5至位1指示操作單元的地址;最低有效位(位0)如為0表示要進(jìn)行寫(xiě)操作,為1表示進(jìn)行讀操作,控制字節(jié)總是從最低位開(kāi)始輸出。</p><p> 在控制指令字輸入后的下一個(gè)SCLK時(shí)鐘的上升沿時(shí),數(shù)據(jù)被寫(xiě)入DS1302,數(shù)據(jù)輸入從低位即位0開(kāi)始。同樣,在緊跟8位的控制指令字后的下一個(gè)SCLK脈沖的下降沿讀出DS1
57、302的數(shù)據(jù),讀出數(shù)據(jù)時(shí)從低位0位到高位7。</p><p> 2.5 1602LCD液晶顯示屏</p><p> 2.5.1 1602字符型LCD簡(jiǎn)介</p><p> 字符型液晶顯示模塊是一種專(zhuān)門(mén)用于顯示字母、數(shù)字、符號(hào)等點(diǎn)陣式LCD,本設(shè)計(jì)采用16列*2行的字符型LCD1602帶背光的液晶顯示屏。</p><p> 2.5.2
58、 1602引腳功能說(shuō)明</p><p> 各引腳接口說(shuō)明如表所示:</p><p><b> 表1</b></p><p> 表1:引腳接口說(shuō)明:</p><p> 第1腳:VSS為地電源。</p><p> 第2腳:VDD接5V正電源。</p><p> 第3
59、腳:VL為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地時(shí)對(duì)比度最高,對(duì)比度過(guò)高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過(guò)一個(gè)10K的電位器調(diào)整對(duì)比度。</p><p> 第4腳:RS為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。</p><p> 第5腳:R/W為讀寫(xiě)信號(hào)線(xiàn),高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫(xiě)操作。當(dāng)RS和R/W共同為低電平時(shí)可以寫(xiě)入指令或者顯示地址,當(dāng)RS
60、為低電平R/W為高電平時(shí)可以讀忙信號(hào),當(dāng)RS為高電平R/W為低電平時(shí)可以寫(xiě)入數(shù)據(jù)。</p><p> 第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。</p><p> 第7~14腳:D0~D7為8位雙向數(shù)據(jù)線(xiàn)。</p><p> 第15腳:背光源正極。</p><p> 第16腳:背光源負(fù)極。</p>
61、;<p> 2.6 蜂鳴器鬧鈴電路</p><p> 當(dāng)單片機(jī)給蜂鳴器一個(gè)低電平時(shí),三極管導(dǎo)通驅(qū)動(dòng)蜂鳴器發(fā)出聲音作為定時(shí)鬧鈴,其電路圖如圖2.3所示:</p><p> 2.7 按鍵調(diào)整電路</p><p> 系統(tǒng)四個(gè)獨(dú)立鍵盤(pán)均采用查詢(xún)方式,S2用于設(shè)置年、月、日、時(shí)、分、秒、星期的數(shù)值加,以及鬧鐘開(kāi),S3用于設(shè)置年、月、日、時(shí)、分、秒、星期的
62、數(shù)值減以及鬧鐘關(guān),s1用于具體設(shè)置時(shí)鐘位的切換,s4鍵用于設(shè)置鬧鐘。其電路圖如2.4所示:</p><p><b> 2.8 顯示模塊</b></p><p> 如下圖所示,采用LCM1602液晶顯示器,單片機(jī)P1口作為數(shù)據(jù)輸出口,RS,R\W,E分別通過(guò)10K的上拉電阻連接到單片機(jī)的P0.0,P0.1,P0.2。VDD接5V電源,VSS接地。VEE為液晶顯示器對(duì)
63、比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地電源時(shí)對(duì)比度最高(對(duì)比度過(guò)高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過(guò)一個(gè)10K的電位器調(diào)整對(duì)比度)。RS為寄存器選擇,高電平1時(shí)選擇數(shù)據(jù)寄存器、低電平0時(shí)選擇指令寄存器。R/W為讀寫(xiě)信號(hào)線(xiàn),高電平(1)時(shí)進(jìn)行讀操作,低電平(0)時(shí)進(jìn)行寫(xiě)操作。E(或EN)端為使能(enable)端,下降沿使能。DB0-DB7為雙向數(shù)據(jù)總線(xiàn),同時(shí)最高位DB7也是忙信號(hào)檢測(cè)位。BLA、BLK分別為顯示器背光燈的正、負(fù)極。<
64、/p><p> 1602字符型LCD通常有14條引腳線(xiàn)或16條引腳線(xiàn)的LCD,多出來(lái)的2條線(xiàn)是背光電源線(xiàn)。1602液晶模塊內(nèi)部的字符發(fā)生存儲(chǔ)器(CGROM)已經(jīng)存儲(chǔ)了160個(gè)不同的點(diǎn)陣字符,圖形寄存器選擇控制表如表所示:</p><p> 表2 1602寄存器選擇控制表</p><p> 1602通過(guò)D0~D7的8位數(shù)據(jù)端傳輸數(shù)據(jù)和指令。顯示模式設(shè)置(初始化)00
65、111000[0x38]設(shè)置16×2顯示,5×7點(diǎn)陣,8位數(shù)據(jù)接口;顯示開(kāi)關(guān)及光標(biāo)設(shè)置:(初始化) 00001DCBD顯示(1有效)、C光標(biāo)顯示(1有效)、B光標(biāo)閃爍(1有效)。000001NS N=1(讀或?qū)懸粋€(gè)字符后地址指針加1并且光標(biāo)加1),N=0(讀或?qū)懸粋€(gè)字符后地址指針減1并且光標(biāo)減1),S=1且N=1(當(dāng)寫(xiě)一個(gè)字符后,整屏顯示左移),S=0當(dāng)寫(xiě)一個(gè)字符后,整屏顯示不移動(dòng)。數(shù)據(jù)指針設(shè)置:數(shù)據(jù)首地址為80H,
66、所以數(shù)據(jù)地址為80H+地址碼(0-27H,40-67H)。其他設(shè)置:01H(顯示清屏,數(shù)據(jù)指針=0,所有顯示=0);02H(顯示回車(chē),數(shù)據(jù)指針=0)。</p><p><b> 3 軟件部分設(shè)計(jì)</b></p><p> 3.1 程序流程框圖</p><p> 主程序開(kāi)始初始化,并打開(kāi)中斷,然后執(zhí)行掃描鬧鐘、鍵盤(pán)及讀取18B20值。當(dāng)有S
67、1鍵按下時(shí),執(zhí)行時(shí)鐘設(shè)置,當(dāng)有S4鍵按下時(shí),則進(jìn)入鬧鐘設(shè)置,無(wú)論是時(shí)鐘還是鬧鐘,設(shè)置完后退出,溫度、時(shí)鐘恢復(fù)實(shí)時(shí)顯示。主程序流程圖如圖3.1所示:</p><p> 圖3.1程序流程框圖</p><p> 3.2 時(shí)間設(shè)置子程序流程</p><p> 通過(guò)單片機(jī)判斷S1按下的次數(shù)來(lái)設(shè)置,由s1num標(biāo)志位來(lái)記錄次數(shù),用if語(yǔ)句判斷執(zhí)行命令。系統(tǒng)程序不斷掃面鍵盤(pán)
68、,當(dāng)s1鍵按下后產(chǎn)生一個(gè)低電平,即s1num加一。在調(diào)節(jié)時(shí)間之前首先進(jìn)行各個(gè)變量初始化,及設(shè)置起始時(shí)間,同時(shí)為讀取數(shù)據(jù)作準(zhǔn)備。當(dāng)s1=1時(shí)進(jìn)入秒的設(shè)置,地址指針指向miao顯示位置處,通過(guò)兩個(gè)if語(yǔ)句分別循環(huán)控制顯示秒數(shù)的加和減。當(dāng)s1=2時(shí),地址指針指向fen顯示位置處,變量最大值為59。當(dāng)s1=3時(shí),地址指針指向shi顯示位置處,變量最大值設(shè)為23。當(dāng)s1=4時(shí),地址指針指向week顯示位置處,最大值設(shè)為7,1至7分別用MON、TU
69、E、WED、THU 、FRI、SAT、SUN字符串顯示。隨著s2、s3值的的變化顯示不同的字符串。當(dāng)s1=5時(shí),地址指針指向day顯示位置,變量最大值為31。當(dāng)s1=6時(shí),地址指針指向month顯示位置,變量最大值為12。當(dāng)s1=7時(shí),地址指針指向year顯示位置,最大值為99。</p><p> 3.3 程序設(shè)計(jì)問(wèn)題</p><p> 3.3.1 按鍵抖動(dòng)問(wèn)題</p>
70、<p> 按鍵在按下時(shí)因?yàn)闄C(jī)械原因會(huì)產(chǎn)生抖動(dòng),抖動(dòng)的后果就是當(dāng)按下一次按鍵時(shí)因?yàn)槎秳?dòng)的原因讓系統(tǒng)讀取到多次的按鍵按下的次數(shù),由此導(dǎo)致設(shè)置時(shí)出現(xiàn)錯(cuò)誤。解決的方法如下:當(dāng)按鍵按下時(shí)讀取按鍵鍵值,若5ms后鍵值和按下是相等,則確認(rèn)為有效按鍵,以此消除按鍵抖動(dòng)帶來(lái)的問(wèn)題。</p><p> 3.3.2 蜂鳴器設(shè)置</p><p> 蜂鳴器報(bào)警時(shí),設(shè)置響100毫秒,停100毫秒,循環(huán)
71、響應(yīng),產(chǎn)生滴滴的聲音。</p><p> 3.3.3 液晶顯示的設(shè)置</p><p><b> 初始化設(shè)置</b></p><p><b> 顯示模式設(shè)置</b></p><p> 寫(xiě)入指令碼write_com(0x38),設(shè)置功能16*2顯示,5*7點(diǎn)陣,8位數(shù)據(jù)接口</p>
72、<p> 顯示/開(kāi)關(guān)及光標(biāo)設(shè)置</p><p> 寫(xiě)入指令碼write_com(0x0c),設(shè)置開(kāi)顯示,不顯示光標(biāo),光標(biāo)不閃爍。</p><p> 寫(xiě)入指令碼write_com(0x06),設(shè)置當(dāng)讀或?qū)懸粋€(gè)字符后地址指針加一,且光標(biāo)加一。當(dāng)寫(xiě)一個(gè)字符,整屏顯示不移動(dòng)。</p><p> 顯示清屏,寫(xiě)入指令碼write_com(0x01)。<
73、/p><p> 寫(xiě)入指令碼函數(shù)write_com()寫(xiě)指令過(guò)程 :輸入:rs=0,D0-D7=指令碼,E=高脈沖</p><p> 寫(xiě)入數(shù)據(jù)函數(shù) write_date() 寫(xiě)指令過(guò)程: 輸入:rs=1,D0-D7=數(shù)據(jù),E=高脈沖</p><p> 寫(xiě)入指令和數(shù)據(jù)時(shí)rw端已經(jīng)接地。</p><p><b> 數(shù)據(jù)指針設(shè)置 &l
74、t;/b></p><p> 指令碼80H+地址碼(0-27H)顯示第一行的字符</p><p> 指令碼80H+地址碼(40H-67H)顯示的第二行字符</p><p> 3.3.4 中斷設(shè)置</p><p> EA=1;//打開(kāi)總中斷</p><p> EX1=1;//打開(kāi)外部中斷</p>
75、;<p> IT1=1;//設(shè)置負(fù)跳變沿觸發(fā)中斷</p><p> 當(dāng)鬧鐘到點(diǎn)時(shí)響應(yīng)外部中1 時(shí)間到時(shí)IRQ端從高阻態(tài)轉(zhuǎn)為低電平,此時(shí)讀一次c寄存器清除IRQ端的輸出,等待下一次定時(shí)。</p><p> void exter() interrupt 2 //外部中斷1服務(wù)程序</p><p><b> {</b>&l
76、t;/p><p> uchar c;//進(jìn)入中斷表示鬧鐘時(shí)間到</p><p> flag_ri=1; //設(shè)置標(biāo)志位,用以大程序中報(bào)警</p><p> c=read_ds(0x0c);//讀取12c887c寄存器表示響應(yīng)了中端</p><p><b> }</b></p><p> 3.
77、3.5 時(shí)鐘芯片設(shè)置</p><p> 首次上電初始化時(shí)間函數(shù):</p><p> void set_time()</p><p> {//首次上電初始化時(shí)間函數(shù)</p><p> write_ds(0,0);//初始化秒</p><p> write_ds(1,0);//初始化秒鬧鐘</p>
78、<p> write_ds(2,0);// 初始化分</p><p> write_ds(3,0);//初始化分鬧鐘</p><p> write_ds(4,0);//初始化時(shí)</p><p> write_ds(5,0);// 初始化時(shí)鬧鐘</p><p> write_ds(6,0);//初始化星期</p>
79、<p> write_ds(7,0);// 初始化日</p><p> write_ds(8,0);//初始化月</p><p> write_ds(9,0);// 初始化年</p><p><b> }</b></p><p> 寫(xiě)12C887函數(shù):</p><p>
80、void write_ds(uchar add,uchar date)</p><p> { //寫(xiě)12C887函數(shù)</p><p> dscs=0; 打開(kāi)片選信號(hào)</p><p><b> dsas=1;</b></p><p><b> dsds=1;</b></p>
81、<p><b> dsrw=1;</b></p><p><b> P0=add;</b></p><p> dsas=0; //下降沿鎖存地址</p><p><b> dsrw=0;</b></p><p><b> P0=date;<
82、/b></p><p> dsrw=1;//上升沿鎖存數(shù)據(jù)</p><p> dsas=1;//上升沿清除地址</p><p> dscs=1;//關(guān)掉片選信號(hào)</p><p><b> }</b></p><p> 讀12C887函數(shù):</p><p&
83、gt; uchar read_ds(uchar add)</p><p><b> {</b></p><p> uchar ds_date;</p><p><b> dsas=1;</b></p><p><b> dsds=1;</b></p>&
84、lt;p><b> dsrw=1;</b></p><p> dscs=0;打開(kāi)片選信號(hào)</p><p><b> P0=add;</b></p><p> dsas=0; //下降沿鎖存地址</p><p><b> dsds=0;</b></p>
85、<p><b> P0=0xff;</b></p><p> ds_date=P0;</p><p> dsds=1; //下降沿鎖存地址</p><p> dsas=1;//上升沿清除地址</p><p> dscs=1;//關(guān)掉片選信號(hào)</p><p> return
86、 ds_date;</p><p><b> }</b></p><p> 4 開(kāi)發(fā)工具Proteus與Keil</p><p> 4.1 Proteus軟件</p><p> 4.1.1 Proteus簡(jiǎn)介</p><p> Proteus軟件是英國(guó)Labcenter electron
87、ics公司出版的EDA工具軟件(該軟件中國(guó)總代理為廣州風(fēng)標(biāo)電子技術(shù)有限公司)。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機(jī)及外圍器件。它是目前最好的仿真單片機(jī)及外圍器件的工具。雖然目前國(guó)內(nèi)推廣剛起步,但已受到單片機(jī)愛(ài)好者、從事單片機(jī)教學(xué)的教師、致力于單片機(jī)開(kāi)發(fā)應(yīng)用的科技工作者的青睞。Proteus是世界上著名的EDA工具(仿真軟件),從原理圖布圖、代碼調(diào)試到單片機(jī)與外圍電路協(xié)同仿真,一鍵切換到PCB設(shè)計(jì),真正實(shí)現(xiàn)了從概念到產(chǎn)品
88、的完整設(shè)計(jì)。是目前世界上唯一將電路仿真軟件、PCB設(shè)計(jì)軟件和虛擬模型仿真軟件三合一的設(shè)計(jì)平臺(tái),其處理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即將增加Cortex和DSP系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持IAR、Keil和MPLAB等多種編譯器。</p><p><b> 該軟
89、件的特點(diǎn)是:</b></p><p> 1.實(shí)現(xiàn)了單片機(jī)仿真和SPICE電路仿真相結(jié)合,具有模擬電路仿真、數(shù)字電路仿真、各種單片機(jī)(51系列、AVR、PIG等常用的MCU)及其外圍電路(如lED、RAM、ROM、鍵盤(pán)、LED、A/D、D/A……)組成的系統(tǒng)仿真。</p><p> 2.提供了多種虛擬儀器。如示波器、邏輯分析儀、信號(hào)發(fā)生器等,調(diào)試非常方便。</p>
90、<p> 3.提供軟件調(diào)試功能,同時(shí)支持第三方的軟件編譯和調(diào)試環(huán)境,如Keil等軟件。</p><p> 4.具有強(qiáng)大的原理圖繪制功能。Proteus與其它單片機(jī)仿真軟件不同的是,它不僅能仿真單片機(jī)CPU的工作情況,也能仿真單片機(jī)外圍電路或沒(méi)有單片機(jī)參與的其它電路的工作情況。因此在仿真和程序調(diào)試時(shí),關(guān)心的不再是某些語(yǔ)句執(zhí)行時(shí)單片機(jī)寄存器和存儲(chǔ)器內(nèi)容的改變,而是從工程的角度直接看程序運(yùn)行和電路工作
91、的過(guò)程和結(jié)果。對(duì)于這樣的仿真實(shí)驗(yàn).從某種意義上講,是彌補(bǔ)了.實(shí)驗(yàn)和工程應(yīng)用閹脫節(jié)的矛盾和現(xiàn)象。同時(shí),當(dāng)硬件調(diào)試成功后,利用Proteus ARES軟件,很容易獲得其PCB圖,為今后的制造提供了方便。</p><p> 4.1.2 4大功能模塊</p><p> 1. 智能原理圖設(shè)計(jì)(ISIS)</p><p> 豐富的器件庫(kù):超過(guò)27000種元器件,可方便地創(chuàng)
92、建新元件。 </p><p> 智能的器件搜索:通過(guò)模糊搜索可以快速定位所需要的器件。 </p><p> 智能化的連線(xiàn)功能:自動(dòng)連線(xiàn)功能使連接導(dǎo)線(xiàn)簡(jiǎn)單快捷,大大縮短繪圖時(shí)間。 </p><p> 支持總線(xiàn)結(jié)構(gòu):使用總線(xiàn)器件和總線(xiàn)布線(xiàn)使電路設(shè)計(jì)簡(jiǎn)明清晰。 </p><p> 可輸出高質(zhì)量圖紙:通過(guò)個(gè)性化設(shè)置,可以生成印
93、刷質(zhì)量的BMP圖紙,可以方便地供WORD、POWERPOINT等多種文檔使用。 </p><p> 2. 完善的電路仿真功能(Prospice)</p><p> ProSPICE混合仿真:基于工業(yè)標(biāo)準(zhǔn)SPICE3F5,實(shí)現(xiàn)數(shù)字/模擬電路的混合仿真。 超過(guò)27000個(gè)仿真器件:可以通過(guò)內(nèi)部原型或使用廠(chǎng)家的SPICE文件自行設(shè)計(jì)仿真器件,Labcenter也在不斷地發(fā)布新的仿真器件,還可
94、導(dǎo)入第三方發(fā)布的仿真器件。</p><p> 多樣的激勵(lì)源:包括直流、正弦、脈沖、分段線(xiàn)性脈沖、音頻(使用wav文件)、指數(shù)信號(hào)、單頻FM、數(shù)字時(shí)鐘和碼流,還支持文件形式的信號(hào)輸入。</p><p> 豐富的虛擬儀器:13種虛擬儀器,面板操作逼真,如示波器、邏輯分析儀、信號(hào)發(fā)生器、直流電壓/電流表、交流電壓/電流表、數(shù)字圖案發(fā)生器、頻率計(jì)/計(jì)數(shù)器、邏輯探頭、虛擬終端、SPI調(diào)試器、I2
95、C調(diào)試器等。</p><p> 生動(dòng)的仿真顯示:用色點(diǎn)顯示引腳的數(shù)字電平,導(dǎo)線(xiàn)以不同顏色表示其對(duì)地電壓大小,結(jié)合動(dòng)態(tài)器件(如電機(jī)、顯示器件、按鈕)的使用可以使仿真更加直觀(guān)、生動(dòng)高級(jí)圖形仿真功能(ASF):基于圖標(biāo)的分析可以精確分析電路的多項(xiàng)指標(biāo),包括工作點(diǎn)、瞬態(tài)特性、頻率特性、傳輸特性、噪聲、失真、傅立葉頻譜分析等。</p><p> 3. 獨(dú)特的單片機(jī)協(xié)同仿真功能(VSM)</
96、p><p> 支持主流的CPU類(lèi)型:如ARM7、8051/52、AVR、PIC10/12、PIC16、PIC18、PIC24、dsPIC33、HC11、BasicStamp、8086、MSP430等,CPU類(lèi)型隨著版本升級(jí)還在繼續(xù)增加,如即將支持CORTEX、DSP處理器。</p><p> 支持通用外設(shè)模型:如字符lED模塊、圖形lED模塊、LED點(diǎn)陣、LED七段顯示模塊、鍵盤(pán)/按鍵、直
97、流/步進(jìn)/伺服電機(jī)、RS232虛擬終端、電子溫度計(jì)等等,其COMPIM(COM口物理接口模型)還可以使仿真電路通過(guò)PC機(jī)串口和外部電路實(shí)現(xiàn)雙向異步串行通信。</p><p> 實(shí)時(shí)仿真:支持UART/USART/EUSARTs仿真、中斷仿真、SPI/I2C仿真、MSSP仿真、PSP仿真、RTC仿真、ADC仿真、CCP/ECCP仿真。</p><p> 編譯及調(diào)試:支持單片機(jī)匯編語(yǔ)言的編
98、輯/編譯/源碼級(jí)仿真,內(nèi)帶8051、AVR、PIC的匯編編譯器,也可以與第三方集成編譯環(huán)境(如IAR、Keil和Hitech)結(jié)合,進(jìn)行高級(jí)語(yǔ)言的源碼級(jí)仿真和調(diào)試。</p><p> 4. 實(shí)用的PCB設(shè)計(jì)平臺(tái)</p><p> 原理圖到PCB的快速通道: 原理圖設(shè)計(jì)完成后,一鍵便可進(jìn)入ARES的PCB設(shè)計(jì)環(huán)境,實(shí)現(xiàn)從概念到產(chǎn)品的完整設(shè)計(jì)。</p><p>
99、先進(jìn)的自動(dòng)布局/布線(xiàn)功能:支持器件的自動(dòng)/人工布局;支持無(wú)網(wǎng)格自動(dòng)布線(xiàn)或人工布線(xiàn);支持引腳交換/門(mén)交換功能使PCB設(shè)計(jì)更為合理。</p><p> 完整的PCB設(shè)計(jì)功能:最多可設(shè)計(jì)16個(gè)銅箔層,2個(gè)絲印層,4個(gè)機(jī)械層(含板邊),靈活的布線(xiàn)策略供用戶(hù)設(shè)置,自動(dòng)設(shè)計(jì)規(guī)則檢查,3D 可視化預(yù)覽。</p><p> 多種輸出格式的支持:可以輸出多種格式文件,包括Gerber文件的導(dǎo)入或?qū)С?,?/p>
100、利與其它PCB設(shè)計(jì)工具的互轉(zhuǎn)(如protel)和PCB板的設(shè)計(jì)和加工。</p><p> 4.1.3 ISIS智能原理圖輸入系統(tǒng)</p><p> ISIS是PROTEUS系統(tǒng)的中心,它遠(yuǎn)不僅是一個(gè)圖表庫(kù)。它是具有控制原理圖畫(huà)圖的外觀(guān)的超強(qiáng)的設(shè)計(jì)環(huán)境。無(wú)論用戶(hù)的要求是快速實(shí)現(xiàn)復(fù)雜設(shè)計(jì)的仿真以及PCB設(shè)計(jì),還是設(shè)計(jì)精美的原理圖以供出版,ISIS都可以很好的完成。</p>&
101、lt;p> ISIS提供給用戶(hù)圖形外觀(guān)包括線(xiàn)寬、填充類(lèi)型、字符等的全部控制,使用戶(hù)能夠生成如雜志上看到一樣精美的原理圖,遠(yuǎn)勝過(guò)CAD軟件繪制出的稀薄的線(xiàn)條。畫(huà)完圖可以以圖形文件輸出,或者拷貝到剪切板以便其他文件使用。這就使得ISIS成為制作技術(shù)文件,學(xué)術(shù)論文,項(xiàng)目報(bào)告的理想工具,也是PCB設(shè)計(jì)的一個(gè)出色的前端。畫(huà)圖的外形由風(fēng)格模板定義。此外,此方案允許用戶(hù)定制元件庫(kù)提供的庫(kù)部件的外觀(guān)。</p><p>
102、 4.1.4 Proteus簡(jiǎn)單應(yīng)用</p><p> 1.繪制原理圖:繪制原理圖要在原理圖編輯窗口中的藍(lán)色方框內(nèi)完成。原理圖編輯窗口的操作是不同于常用的WINDOWS應(yīng)用程序的,正確的操作是:用左鍵放置元件;右鍵選擇元件;雙擊右鍵刪除元件;右鍵拖選多個(gè)元件;先右鍵后左鍵編輯元件屬性;先右鍵后左鍵拖動(dòng)元件;連線(xiàn)用左鍵,刪除用右鍵;改連接線(xiàn):先右擊連線(xiàn),再左鍵拖動(dòng);中鍵放縮原理圖。</p><
103、p> 2.定制自己的元件:有三個(gè)個(gè)實(shí)現(xiàn)途徑,一是用PROTEUS VSM SDK開(kāi)發(fā)仿真模型,并制作元件;另一個(gè)是在已有的元件基礎(chǔ)上進(jìn)行改造,比如把元件改為bus接口的;還有一個(gè)是利用已制作好(別人的)的元件,我們可以到網(wǎng)上下載一些新元件并把它們添加到自己的元件庫(kù)里面。</p><p> 3.Sub-Circuits應(yīng)用:用一個(gè)子電路可以把部分電路封裝起來(lái),這樣可以節(jié)省原理圖窗口的空間。</p&g
104、t;<p> 4.2 Keil軟件</p><p> 4.2.1 Keil軟件簡(jiǎn)介</p><p> Keil C51是美國(guó)Keil Software公司出品的51系列兼容單片機(jī)C語(yǔ)言軟件開(kāi)發(fā)系統(tǒng),與匯編相比,C語(yǔ)言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì),因而易學(xué)易用。用過(guò)匯編語(yǔ)言后再使用C來(lái)開(kāi)發(fā),體會(huì)更加深刻。Keil C51軟件提供豐富的庫(kù)函數(shù)和功能強(qiáng)大的
105、集成開(kāi)發(fā)調(diào)試工具,全Windows界面。另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼,就能體會(huì)到Keil C51生成的目標(biāo)代碼效率非常之高,多數(shù)語(yǔ)句生成的匯編代碼很緊湊,容易理解。在開(kāi)發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語(yǔ)言的優(yōu)勢(shì)。Keil C51軟件是一個(gè)基于32位Windows環(huán)境的應(yīng)用程序,支持C語(yǔ)言和匯編語(yǔ)言編程,其6.0以上的版本將編譯和仿真軟件統(tǒng)一為μVision(通常稱(chēng)為μV2)。Keil提供包括C編譯器、宏匯編、連接器、庫(kù)管理和一
106、個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開(kāi)發(fā)方案,由以下幾部分組成:μVision IDE集成開(kāi)發(fā)環(huán)境C51編譯器、A51匯編器、LIB51庫(kù)管理器、BL51連接/定位器、OH51目標(biāo)文件生成器以及 Monitor-51、RTX51實(shí)時(shí)操作系統(tǒng)。</p><p> 4.2.2 Keil軟件調(diào)試功能</p><p> 應(yīng)用Keil進(jìn)行軟件仿真開(kāi)發(fā)的主要步驟為:編寫(xiě)源程序并保存—建立工程并添加源
107、文件—設(shè)置工程—編譯/匯編、連接,產(chǎn)生目標(biāo)文件—程序調(diào)試。Keil使用“工程”(Project)的概念,對(duì)工程(而不能對(duì)單一的源程序)進(jìn)行編譯/匯編、連接等操作。工程的建立、設(shè)置、編譯/匯編及連接產(chǎn)生目標(biāo)文件的方法非常易于掌握。首先選擇菜單File-New…,在源程序編輯器中輸入?yún)R編語(yǔ)言或C語(yǔ)言源程序(或選擇File-Open…,直接打開(kāi)已用其它編輯器編輯好的源程序文檔)并保存,注意保存時(shí)必須在文件名后加上擴(kuò)展名.asm(.a51)或.
108、c;然后選擇菜單Project-New Project…,建立新工程并保存(保存時(shí)無(wú)需加擴(kuò)展名,也可加上擴(kuò)展名.uv2);工程保存后會(huì)立即彈出一個(gè)設(shè)備選擇對(duì)話(huà)框,選擇CPU后點(diǎn)確定返回主界面。這時(shí)工程管理窗口的文件頁(yè)(Files)會(huì)出現(xiàn)“Target1”,將其前面+號(hào)展開(kāi),接著選擇Source Group1,右擊鼠標(biāo)彈出快捷菜單,選擇“Add File to Group ‘Source Group1’”,出現(xiàn)一個(gè)對(duì)話(huà)框,要求尋找并加入源
109、文件(在加入一個(gè)源文件后,該對(duì)話(huà)框不會(huì)消失,</p><p> 成功編譯/匯編、連接后,選擇菜單Debug-Start/Stop Debug Session(或按Ctrl+F5鍵)進(jìn)入程序調(diào)試狀態(tài),Keil提供對(duì)程序的模擬調(diào)試功能,內(nèi)建一個(gè)功能強(qiáng)大的仿真CPU以模擬執(zhí)行程序。Keil能以單步執(zhí)行(按F11或選擇Debug-Step)、過(guò)程單步執(zhí)行(按F10或選擇Debug-Step Over)、全速執(zhí)行等多種運(yùn)
110、行方式進(jìn)行程序調(diào)試。如果發(fā)現(xiàn)程序有錯(cuò),可采用在線(xiàn)匯編功能對(duì)程序進(jìn)行在線(xiàn)修改(Debug-Inline Assambly…),不必執(zhí)行先退出調(diào)試環(huán)境、修改源程序、對(duì)工程重新進(jìn)行編譯/匯編和連接、然后再次進(jìn)入調(diào)試狀態(tài)的步驟。對(duì)于一些必須滿(mǎn)足一定條件(如按鍵被按下等)才能被執(zhí)行的、難以用單步執(zhí)行方式進(jìn)行調(diào)試的程序行,可采用斷點(diǎn)設(shè)置的方法處理(Debug-Insert/Remove Breakpoint或Debug-Breakpoints…等)
111、。在模擬調(diào)試程序后,還須通過(guò)編程器將.hex目標(biāo)文件燒寫(xiě)入單片機(jī)中才能觀(guān)察目標(biāo)樣機(jī)真實(shí)的運(yùn)行狀況。</p><p><b> 4.3 本章小結(jié)</b></p><p> 本章主要簡(jiǎn)單介紹了研究本課題需要用到的仿真軟件Proteus和編譯軟件Keil,了解了這兩種軟件發(fā)展,功能和初步用法,了解了proteus的四大功能模塊,以及keil的調(diào)試功能等,為以后設(shè)計(jì)打好基
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設(shè)計(jì)---基于單片機(jī)的數(shù)字萬(wàn)年歷設(shè)計(jì)
- 基于單片機(jī)的萬(wàn)年歷畢業(yè)設(shè)計(jì)
- 基于單片機(jī)的數(shù)字萬(wàn)年歷設(shè)計(jì)
- 基于單片機(jī)的萬(wàn)年歷設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---基于單片機(jī)萬(wàn)年歷的設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---基于單片機(jī)萬(wàn)年歷的設(shè)計(jì)
- 基于單片機(jī)的萬(wàn)年歷設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 單片機(jī)萬(wàn)年歷系統(tǒng)畢業(yè)設(shè)計(jì)
- 基于單片機(jī)的測(cè)溫萬(wàn)年歷畢業(yè)設(shè)計(jì)
- 基于51單片機(jī)的萬(wàn)年歷畢業(yè)設(shè)計(jì)
- 基于單片機(jī)的電子萬(wàn)年歷畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---單片機(jī)控制的萬(wàn)年歷設(shè)計(jì)
- 基于單片機(jī)的電子萬(wàn)年歷設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---基于51單片機(jī)的萬(wàn)年歷設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---基于51單片機(jī)的萬(wàn)年歷設(shè)計(jì)
- 基于單片機(jī)的萬(wàn)年歷設(shè)計(jì)畢業(yè)設(shè)計(jì).doc
- 51單片機(jī)萬(wàn)年歷畢業(yè)設(shè)計(jì)論文
- 畢業(yè)設(shè)計(jì)----基于單片機(jī)的電子萬(wàn)年歷的設(shè)計(jì)
- 基于單片機(jī)的電子萬(wàn)年歷的設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 基于51單片機(jī)的液晶萬(wàn)年歷畢業(yè)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論