住宅公用路燈用電量分配裝置的設(shè)計(jì)畢業(yè)論文說明書
《住宅公用路燈用電量分配裝置的設(shè)計(jì)畢業(yè)論文說明書》由會(huì)員分享,可在線閱讀,更多相關(guān)《住宅公用路燈用電量分配裝置的設(shè)計(jì)畢業(yè)論文說明書(28頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、 住宅公用路燈用電量分配裝置的設(shè)計(jì) 目 錄 摘 要 I 關(guān)鍵詞 I Abstract I Key Words I 1 緒論 1 2 開發(fā)環(huán)境簡(jiǎn)介 1 2.1 PROTELDXP簡(jiǎn)介 1 2.2 使用PROTEL畫圖原理 2 2.3 仿真開發(fā)環(huán)境簡(jiǎn)介 4 3 單片機(jī)基礎(chǔ) 5 3.1 單片機(jī)的體系結(jié)構(gòu) 5 3.2 AT89C2051單片機(jī)的原理 5 3.2.1 AT89C2051特性 5 3.2.2 AT89C2051的結(jié)構(gòu)框圖 6 3.2.3 AT89C2051的引腳說明及引腳功能 6 3.2.3 專用功能寄存器(SFR) 8 3.2.4 指令約
2、束條件 8 3.2.5 CPU工作方式 9 3.2.6 對(duì)Flash閃速存儲(chǔ)器的編程 9 3.2.7 內(nèi)部地址計(jì)數(shù)器 10 3.3 AT89C2051軟硬件的開發(fā) 10 3.4 性能價(jià)格比 10 3.5 應(yīng)用 10 4 系統(tǒng)硬件設(shè)計(jì) 10 4.1 總體方案設(shè)計(jì) 10 4.1.1 設(shè)計(jì)原理 11 4.1.2 系統(tǒng)總體性能要求 11 4.1.2.1 成本因素 11 4.1.2.2 環(huán)境適應(yīng)性 11 4.1.2.3 節(jié)能性 11 4.1.2.4 可靠性 11 4.1.2.5 方便性 11 4.1.3 裝置總體結(jié)構(gòu)原理圖 11 4.2 系統(tǒng)硬件設(shè)計(jì) 12 4.2.1
3、 單片機(jī)型號(hào)的選擇 12 4.2.2 環(huán)境照度檢測(cè)電路 12 4.2.3 分時(shí)切換控制電路 12 4.2.4 路燈點(diǎn)亮按鈕位 13 4.2.5 看門狗電路 13 4.2.6 系統(tǒng)供電電源設(shè)計(jì) 14 4.2.7.1 主系統(tǒng)電源電路 14 4.2.7.2 分時(shí)切換控制電路工作電源 14 4.2.8 系統(tǒng)時(shí)鐘電路設(shè)計(jì) 15 4.2.9 長(zhǎng)期運(yùn)行的安全性設(shè)計(jì) 15 4.2.9.1 功耗與散熱問題 15 4.2.9.2 裝置過流問題 15 5 軟件設(shè)計(jì) 15 5.1 AT89C2051的程序編制 15 5.1.1 編程算法 15 5.1.2 數(shù)據(jù)查詢 16 5.1.3 R
4、DY/BSY 16 5.1.4 程序校驗(yàn) 16 5.1.7 片擦除 16 5.1.8 讀特征字節(jié) 16 5.1.9 編程接口 16 5.2 MCS-51匯編語(yǔ)言簡(jiǎn)介 16 5.2.1 直接尋址 16 5.2.2 寄存器尋址 16 5.2.3 寄存器間接尋址 17 5.2.4 立即尋址 17 5.3.5 變址尋址 17 5.4.6 位尋址 17 5.4.7 相對(duì)尋址 17 5.3 系統(tǒng)軟件設(shè)計(jì) 17 5.3.1 主程序結(jié)構(gòu) 17 5.3.2 中斷服務(wù)程序 18 6 結(jié)束語(yǔ) 19 參考文獻(xiàn) 19 致 謝 20 附錄1:系統(tǒng)程序代碼 21 附錄2:設(shè)計(jì)原理圖
5、24 附錄3:仿真界面圖 25 住宅公用路燈用電量分配裝置的設(shè)計(jì) 摘 要 提出一款基于單片機(jī)的居民住宅公用樓道路燈用電分?jǐn)傃b置的設(shè)計(jì)方案。充分利用單片機(jī)的內(nèi)部資源,借助單片機(jī)的數(shù)據(jù)運(yùn)算處理能力和控制能力,采用按用電時(shí)間“均攤”原理,各用戶輪流為住宅公用樓道路燈供電,較好地解決了樓道路燈電費(fèi)收繳的難題,有較好的實(shí)用價(jià)值。 關(guān)鍵詞 單片機(jī);公用路燈;電量分配器;硬件;軟件 Design of Coulomb Distributer for Residential Public Road Lamp Abstract Put forward a de
6、sign project of public stairway lampps electricity cost assigned device in residential building based onsingle chip computer. The project takes full advantage of the internal resources of the single chip computer ,especially its data processingand controlling ability. In terms of the principle of ev
7、en distribution based on the time of using electricity ,every user supplies power to the public stairway lamps in turn. Thus the problem of collecting stairway lamp electricity cost will be settled well. Key Words Single Chip Computer;public road lamp;coulomb distributer;hardware ;software
8、1 緒論 當(dāng)前我國(guó)經(jīng)濟(jì)快速增長(zhǎng),房地產(chǎn)市場(chǎng)持續(xù)升溫,各種檔次的商品房層出不窮。伴隨著住房制度改革的深入,越來越多的居民買了商品房。住進(jìn)了商品住宅樓。這種改變促進(jìn)了國(guó)民經(jīng)濟(jì)的發(fā)展,同時(shí)也提高了廣大人民生活的文明程度。隨之而來的問題就產(chǎn)生了,原來的單位住宅樓是由單位安裝路燈并由單位負(fù)責(zé)繳費(fèi)的,樓內(nèi)居住的單位職工不用擔(dān)心沒路燈和收繳費(fèi)用的問題;而商品住宅樓內(nèi)的居民來自不同的單位,這就產(chǎn)生了路燈問題。不安裝路燈不便利;安裝路燈后,對(duì)于商品住宅樓的路燈電費(fèi),如果由各小區(qū)的物業(yè)管理人員或社區(qū)管理員統(tǒng)一挨家挨戶定期收取,住戶分擔(dān),十分不方便,因?yàn)槌鞘幸哑占傲艘粦粢槐怼堑缆窡魡栴}日益成為住房商品化后的一個(gè)
9、難題(楊本文,鄭旭東,2006)。 而且目前我國(guó)作為一個(gè)能源短缺的國(guó)家,電力供應(yīng)十分地緊張,缺電現(xiàn)象非常嚴(yán)重,應(yīng)該推廣應(yīng)用節(jié)能型高效路燈設(shè)備,節(jié)約照明用電,實(shí)現(xiàn)資源的充分合理應(yīng)用,保障市民的出行安全(陳宇勤,2006)。 因此,提出一款基于單片機(jī)的居民住宅公用樓道路燈用電分?jǐn)傃b置的全自動(dòng)控制設(shè)計(jì)方案。充分利用單片機(jī)的內(nèi)部資源,借助單片機(jī)的數(shù)據(jù)運(yùn)算處理能力和控制能力,采用按用電時(shí)間“均攤”原理(王振明,2002)。各用戶輪流為住宅公用樓道路燈供電,較好地解決了樓道路燈電費(fèi)收繳的難題,有較好的實(shí)用價(jià)值。 2 開發(fā)環(huán)境簡(jiǎn)介 2.1 PROTELDXP簡(jiǎn)介 Protel2004DXP是Alt
10、ium公司(原名Protel公司)推出的新一代優(yōu)秀桌面電路設(shè)計(jì)軟件,它不但繼承了Protel 99 SE的所有功能,而且擴(kuò)展了許多新功能,用戶界面更加友好,更加符合人性化設(shè)計(jì),它是大多數(shù)電路設(shè)計(jì)人員使用最多的EDA設(shè)計(jì)軟件之一(王鵬,2006)。 Protel2004DXP能實(shí)現(xiàn)的主要功能如下: ⑴設(shè)計(jì)組件包括電路原理圖設(shè)計(jì)組件、PCB設(shè)計(jì)組件、自動(dòng)布局布線組件、可編程邏輯器件組件和電路仿真軟件; ⑵采用整合式的零件和零件庫(kù),提供強(qiáng)大的零件庫(kù)支持和用戶自己設(shè)計(jì)庫(kù)功能; ⑶支持層次化原理圖設(shè)計(jì); ⑷強(qiáng)大的糾錯(cuò)功能,能保障設(shè)計(jì)完整無錯(cuò); ⑸采用新一代的Situs拓?fù)涫竭壿嬜詣?dòng)布線器,使
11、PCB布線更科學(xué)合理; ⑹可以直接在PCB編輯器中進(jìn)行信號(hào)分析; ⑺集成SPICE3f5數(shù)?;旌闲盘?hào)仿真; ⑻能生成3DPCB立體圖,形象直觀; 圖2-1 PROTEL界面 本設(shè)計(jì)主要使用Protel 2004DXP進(jìn)行電路原理圖的設(shè)計(jì)。圖2-1是PROTELDXP打開后的界面,共分為六塊: 系統(tǒng)菜單:file 菜單用于文件的打開、關(guān)閉等操作;view 用于和視圖有關(guān)的操作,比如放大、縮小等;project 菜單,用于和工程有關(guān)的操作,比如加入新的工程文件;window 菜單用于和窗口有關(guān)的操作,比如水平排列窗口;help 菜單,幫助菜單。 左工作區(qū)面板:包括文件項(xiàng)目和幫
12、助的面板。 工作區(qū):用于快速啟動(dòng)任務(wù),比如最近打開打開的原理圖。 右工作區(qū)面板:點(diǎn)擊可以出現(xiàn)更多的面板。 面板控制:編輯特定的和通用的面板可以在這里選擇。 幫助建議:使用語(yǔ)言快捷找到問題的答案。 2.2 使用PROTEL畫圖原理 圖2-2 畫原理圖狀態(tài)界面 畫圖原理分為以下幾步: 第一步,依次打開file 菜單,選擇新建命令,選擇schematic,界面如圖2-2所示。 第二步,放入元件。打開library面板(如圖2-4),選擇需要的元件;如果我們需要的元件在library未包括,我們還需要添加元件庫(kù),單擊libraries 選項(xiàng)來完成元件庫(kù)的添加;如果元件庫(kù)沒有我們需
13、要的元件,則自己動(dòng)手建元件庫(kù),方法是在新建時(shí)選擇schematic library。 第三步,連接元件。單擊工具欄wire 按鈕,光標(biāo)變成“+”型,這是處于連線編輯狀態(tài),當(dāng)出現(xiàn)紅色的十字時(shí)表示和元件已經(jīng)電器連接,我們可以把鼠標(biāo)指向任意方向來指向要連接的元件,單擊左鍵完成這次連接,單擊右鍵則取消編輯狀態(tài)。 第四步,畫總線,放置總線入口。各元件要通過總線連在一起,總線和連線要通過總線入口連在一起,如圖所示。Z80ASIO 的D0~D7通過導(dǎo)線總線入口和總線連接,圖中D0是標(biāo)號(hào),它起實(shí)際的電器連接作用。 圖2-3 導(dǎo)線通過總線入口與總線連接 圖 2-4 打開library
14、面板 第五步,保存文件到工程中 2.3 仿真開發(fā)環(huán)境簡(jiǎn)介 Proteus是英國(guó)Labcenter公司開發(fā)的電路分析與實(shí)物仿真軟件。它運(yùn)行于Windows操作系統(tǒng)上,可以仿真、分析(SPICE)各種模擬器件和集成電路,該軟件的特點(diǎn)是: (1)實(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ā)生器等。 (2)支持主流單片機(jī)系統(tǒng)的仿真。目前支持的單片機(jī)類型有:ARM7(LPC21xx)、8051/52系列、AV
15、R系列、PIC10/12/16/18系列、HC11系列以及多種外圍芯片。 (3)提供軟件調(diào)試功能。在硬件仿真系統(tǒng)中具有全速、單步、設(shè)置斷點(diǎn)等調(diào)試功能,同時(shí)可以觀察各個(gè)變量、寄存器等的當(dāng)前狀態(tài),因此在該軟件仿真系統(tǒng)中,也必須具有這些功能;同時(shí)支持第三方的軟件編譯和調(diào)試環(huán)境,如Keil C51 uVision2、MPLAB等軟件。 (4)具有強(qiáng)大的原理圖繪制功能??傊?,該軟件是一款集單片機(jī)和SPICE分析于一身的仿真軟件,功能極其強(qiáng)大。 3 單片機(jī)基礎(chǔ) 單片機(jī)是微電子技術(shù)與計(jì)算機(jī)技術(shù)的結(jié)晶,現(xiàn)已成為集成電路大家族中的重要成員。單片機(jī)是微型計(jì)算機(jī)的簡(jiǎn)稱,是在一塊芯片集成了CPU、RAM、RO
16、M(或EPROM)、時(shí)鐘/定時(shí)計(jì)數(shù)器和多種功能的串行和并行I/O接口。 單片機(jī)共同的特點(diǎn)是他們?cè)谝粔K芯片上集成了一臺(tái)微機(jī)最基本的部分,只要輔以少了量的外部電路或外部設(shè)備即可構(gòu)成一個(gè)微機(jī)系統(tǒng)。而且單片機(jī)具有體積小、功能強(qiáng)、價(jià)格低廉等優(yōu)點(diǎn)?,F(xiàn)在單片機(jī)正朝著兼容性、單片系統(tǒng)化、多功能和低功耗方向發(fā)展。 3.1 單片機(jī)的體系結(jié)構(gòu) 單片機(jī)采用哈佛結(jié)構(gòu),即數(shù)據(jù)存儲(chǔ)空間與程序存儲(chǔ)空間是相互分離的。為了減小引腳數(shù)量,單片機(jī)I/O線多采用分時(shí)復(fù)用技術(shù),正是因?yàn)橛辛藘?nèi)部ROM和RAM(可進(jìn)一步擴(kuò)展),在執(zhí)行指令時(shí)又統(tǒng)一在時(shí)鐘下工作,故可靠性和執(zhí)行速度都大大超過相當(dāng)?shù)耐ㄓ糜?jì)算機(jī)。目前市場(chǎng)中單片機(jī)微處理器中,8
17、位,16位,32位居多,每類有多種產(chǎn)品,每種單片機(jī)均有各自的指令系統(tǒng),如MCS-51兼容單片機(jī)的指令系統(tǒng)均是在MCS-51的結(jié)構(gòu)上加以擴(kuò)展,這也直接擴(kuò)展了單片機(jī)的功能。 廣泛采用的精簡(jiǎn)指令系統(tǒng)計(jì)算機(jī)RISC(Reduced Instrution Set Computer)結(jié)構(gòu),是軟硬件配合和整體性能能夠得以提高。其含義是計(jì)算機(jī)指令系統(tǒng)僅包括使用頻率較高的指令,同時(shí)這些指令的控制和實(shí)現(xiàn)有比較簡(jiǎn)單,然后優(yōu)化這些指令并使其速度最快。它與傳統(tǒng)復(fù)雜指令系統(tǒng)計(jì)算機(jī)CISC結(jié)構(gòu)等微處理器形成了完全不同的風(fēng)格(畢維峰,2006)。 3.2 AT89C2051單片機(jī)的原理 3.2.1 AT89C2051特
18、性 AT89C2051是美國(guó)ATMEL公司生產(chǎn)的低電壓,高性能的CMOS型8位單片機(jī),片內(nèi)含有2kbytes的可反復(fù)寫的只讀程序存儲(chǔ)器和128bytes 的隨機(jī)存取數(shù)據(jù)寄存器,器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置8位中央處理器Flash存儲(chǔ)單元,功能強(qiáng)大的AT89C2051單片機(jī)可為用戶提供許多高性價(jià)比的應(yīng)用場(chǎng)合。 AT89C2051是一個(gè)有20個(gè)引腳的芯片,引腳如圖3-1所示,與8051內(nèi)部結(jié)構(gòu)進(jìn)行對(duì)比可發(fā)現(xiàn),AT89C2051減少了兩個(gè)對(duì)外端口(即P0、P2口),使它最大可能地減少了對(duì)外引腳,因而芯片尺寸有所減少(余永權(quán),1999)
19、。 圖3-1 引腳封裝 AT89C2051主要特性參數(shù): ⑴和MCS-51產(chǎn)品的兼容引腳封裝; ⑵2K字節(jié)可重編程閃速存儲(chǔ)器; ⑶耐久性:1,000寫/擦除周期; ⑷2.7V~6V的操作范圍; ⑸全靜態(tài)操作:0Hz~24MHz; ⑹兩級(jí)加密程序存儲(chǔ)器; ⑺1288位內(nèi)部RAM; ⑻15根可編程I/O引線; ⑼兩個(gè)16位定時(shí)器/計(jì)數(shù)器; ⑽六個(gè)中斷源; ⑾可編程串行UART通道; ⑿直接LED驅(qū)動(dòng)輸出; ⒀片內(nèi)模擬比較器; ⒁低功耗空載和掉電方式; 根據(jù)其性能參數(shù),其功能特性可概述為: AT89C2051提供一下標(biāo)準(zhǔn)功能:2K字節(jié)Flash存儲(chǔ)器,128字
20、節(jié)內(nèi)部RAM,15個(gè)I/O口,兩個(gè)16位的定時(shí)/計(jì)數(shù)器,一個(gè)5向量?jī)杉?jí)中斷結(jié)構(gòu),一個(gè)全雙工串行通信口,內(nèi)置一個(gè)精密比較器,片內(nèi)振蕩器及時(shí)鐘電路。同時(shí),AT89C2051可降至0赫茲的靜態(tài)邏輯操作,并支持兩中軟件節(jié)電工作模式:空閑方式停止CPU的工作,但允許RAM,定時(shí)/計(jì)數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保持RAM中的內(nèi)容,但振蕩器停止工作并禁止其他所有部件工作直到下一個(gè)硬件復(fù)位。 3.2.2 AT89C2051的結(jié)構(gòu)框圖 AT89C2051是一帶有2K字節(jié)閃速可編程可擦除只讀存儲(chǔ)體(EEPROM)的低電壓,高性能8位CMOS型微型計(jì)算機(jī)。如圖3-2所示。它采用ATMEL的高密非
21、易失存儲(chǔ)技術(shù)制造并和工業(yè)標(biāo)準(zhǔn)MCS—51指令集和引腳結(jié)構(gòu)完全兼容。通過在單塊芯片上組合通用的CPL1和閃速存,89C2051是一款強(qiáng)勁的微型計(jì)算機(jī),它對(duì)許多嵌入式控制應(yīng)用提供一高度靈活和成本低的解決辦法。 圖3-2 AT89C2051內(nèi)部結(jié)構(gòu)圖 此外,從AT89C2051內(nèi)部結(jié)構(gòu)圖也可看出,其內(nèi)部結(jié)構(gòu)與8051內(nèi)部結(jié)構(gòu)基本一致(除模擬比較器外),引腳RST、XTAL1、XTAL2的特性和外部連接電路也完全與51系列單片機(jī)相應(yīng)引腳一致,但P1口、P3口有其獨(dú)特之處。 3.2.3 AT89C2051的引腳說明及引腳功能 VCC:電源電壓 89C2051有很寬的工作電源電壓,可為2.
22、7~6V,當(dāng)工作在3V時(shí),電流相當(dāng)于6V工作時(shí)的1/4。89C2051工作于12Hz時(shí),動(dòng)態(tài)電流為5.5mA,空閑態(tài)為1mA,掉電態(tài)僅為20nA。這樣小的功耗很適合于電池供電的小型控制系統(tǒng)。 GND:接地。 P1口:P1口是一組8位雙向的I/O,P1.2-P1.7提供內(nèi)部上拉電阻,P1.0和P1.1內(nèi)部無上拉電阻,主要是考慮它們分別是內(nèi)部精密比較器的同相輸入端和反相輸入端,如果需要應(yīng)在外部接上拉電阻。P1口輸出緩沖器可以吸收20mA電流并直接驅(qū)動(dòng)LED。當(dāng)P1口引腳寫入“1”時(shí)可作輸入端,當(dāng)引腳P1.2-P1.7用作輸入并被外部拉低時(shí),它們將因?yàn)閮?nèi)部的上拉電阻而輸出電流。P1口還在閃速編
23、程和程序校驗(yàn)期間接收代碼數(shù)據(jù)。 P3口:P3口的P3.0-P3.7是帶有內(nèi)部上拉電阻的七個(gè)雙向I/O口。P3.6沒有引出,它作為一個(gè)通用I/O口但不可訪問,但可作為固定輸入片內(nèi)比較的輸出信號(hào),P3口緩沖器可吸收20mA電流。當(dāng)P3口寫入“1”時(shí),它們被內(nèi)部上拉電阻拉高并作為輸入端口。作輸入端時(shí),內(nèi)部拉低的P3口將用上拉電阻輸出電流 P3口還用于實(shí)現(xiàn)AT89C2051的各種功能,如下表3-1所示。 表 3-1 口引腳 功能特性 P3.0 RXD(串行輸入口) P3.1 TXD(串行輸出口) P3.2 INT0(外部中斷0) P3.3 INT1(外部中斷1) P3.4
24、 T0(定時(shí)計(jì)數(shù)器0外部輸入) P3.5 T1(定時(shí)計(jì)數(shù)器1外部輸入) 從上述引腳說明可看出,AT89C2051沒有提供外部擴(kuò)展存儲(chǔ)器與I/O設(shè)備所需的地址、數(shù)據(jù)、控制信號(hào),因此利用AT89C2051構(gòu)成的單片機(jī)應(yīng)用系統(tǒng)不能在AT89C2051之外擴(kuò)展存儲(chǔ)器或I/O設(shè)備,也即AT89C2051本身即構(gòu)成了最小單片機(jī)系統(tǒng)。P3口還接收一些用于閃速存儲(chǔ)器編程和程序校驗(yàn)的控制信號(hào)。 RST:復(fù)位輸入。RST一旦變成高電平,所有的I/O引腳就復(fù)位到“1”。當(dāng)振蕩器正在運(yùn)行時(shí),持續(xù)給出RST引腳兩個(gè)機(jī)器周期的高電平便可完成復(fù)位。每一個(gè)機(jī)器周期需12個(gè)振蕩器或時(shí)鐘周期。 XTAL1:作為振蕩
25、器反相放大器的輸入和內(nèi)部時(shí)鐘發(fā)生器的輸入。 XTAL2:作為振蕩器反相放大器的輸出。 振蕩器特征:XTAL1、XTAL2為片內(nèi)振蕩器的反向放大器的輸入和輸出端,如圖3-1和-4所示??刹捎檬⒕w或陶瓷振蕩器組成的時(shí)鐘振蕩器,如需從外部輸入時(shí)鐘驅(qū)動(dòng)AT89C2051,時(shí)鐘信號(hào)從XTAL1輸入,XTAL2應(yīng)懸空。由于輸入到內(nèi)部電路是經(jīng)過一個(gè)二分頻觸發(fā)器,所以輸入的外部時(shí)鐘信號(hào)無需特殊要求,但它必須符合電平的最大和最小值及時(shí)序范圍。 - 圖3-3 外部時(shí)鐘驅(qū)動(dòng)電路 圖3-4 內(nèi)部震蕩電路 由上述對(duì)AT89C2051引腳介紹可見: P1口和P3口共占15個(gè)引腳,外加復(fù)位、振
26、蕩(時(shí)鐘)和電源端等已把芯片的引腳全部占完。然而單片機(jī)在執(zhí)行各種功能時(shí)還需要更多的引腳才能受控或與外界交換的信息,為解決這種矛盾,生產(chǎn)廠家給芯片的某些引腳設(shè)置了第二功能,通過它可完成單片機(jī)的多種控制功能。例如對(duì)89C2051編程,需由P3口的P3.3、P3.4、P3.5和P3.7端加控制信號(hào)以完成閃速編程(如表3-1);89C2051要完成串行的輸入、輸出,外中斷功能和外部輸入定時(shí),需P3.0-P3.5端提供端口(表3-1)。再有P1.0、P1.1是內(nèi)部比較器輸入端口。 3.2.3 專用功能寄存器(SFR) AT89C2051中特殊功能寄存器描述如表9-2所示,它們共占用了19字節(jié),其功能
27、與8051SFR功能相對(duì)應(yīng)。 表3-2 專用寄存器地址和復(fù)位值 寄存器符號(hào) 寄存器地址 復(fù)位值 寄存器符號(hào) 寄存器地址 復(fù)位值 B 0F0H 00000000 TMOD 89H 00000000 ACC 0EOH 00000000 TL0 8AH 00000000 PSW 0D0H 00000000 TL1 8BH 00000000 IP 0B8H 00000 TH0 8CH 00000000 P3 0B0H 11111111 TL0 8DH 00000000 IE 0A8H 000000 SP 82H 0
28、0000000 SCON 98H 00000000 DPL 83H 00000011 SUBF 99H DPH 84H 00000000 P1 90H 11111111 PCON 87H 00000000 TCON 88H 00000000 00000 3.2.4 指令約束條件 AT89C2051是ATMEL微控制器家族——經(jīng)濟(jì)中低價(jià)成員。它含有2K字節(jié)的閃速程序存儲(chǔ)器,完全和MCS—51結(jié)構(gòu)兼容并可用MCS—51指令集進(jìn)行編程。但是在使用有關(guān)指令進(jìn)行編程時(shí),卻有一些限制(張曉君,2004)。 跳轉(zhuǎn)或分支相關(guān)的全部指令必須進(jìn)行空間約束
29、,這樣目的地址就會(huì)落在AT89C2051的2K字節(jié)的物理程序存儲(chǔ)器空間內(nèi)。例如,對(duì)于2K字節(jié)存儲(chǔ)器的AT89C2051來說,LJMP 7E0H是一有效的指令而LJMP 900H則是無效的。 ⑴分支指令 對(duì)于LCALL、LJMP、ACALL、AJMP、SJMP、JMP@A+DPTR等指令,只要編程人員記住這些分支指令的目的地址落在程序存儲(chǔ)器大小的物理范圍內(nèi)(89C2051的00H至7FFH單元),這些無條分支指令就會(huì)正確執(zhí)行。違背物理空間的限制會(huì)引起不可知的程序出錯(cuò)。CJNE[……],DJNZ[……],JB,JNB,JC,JNC,JBC,JN,JNZ這些條件分支指令也適合上面的規(guī)則。同樣,超
30、出內(nèi)存界限,會(huì)導(dǎo)致不正確的執(zhí)行結(jié)果。對(duì)于包括中斷的應(yīng)用,80C51家族架構(gòu)的正常中斷服務(wù)線程地址位置已被保留。 ⑵和MOVX相關(guān)的指令,數(shù)據(jù)存儲(chǔ)器 AT89C2051包含128字節(jié)內(nèi)部數(shù)據(jù)存儲(chǔ)器。這樣,AT89C205l中的堆棧深度局限于內(nèi)部RAM的128字節(jié)范圍內(nèi)。它既不支持外部數(shù)據(jù)存儲(chǔ)器的訪問,也不支持外部程序存儲(chǔ)器的執(zhí)行。因此,程序中不應(yīng)包括MOVX[……]指令。 一般的8051匯編器即使在違反上述指令約束而寫入指令時(shí)仍對(duì)指令進(jìn)行匯編,使用時(shí)應(yīng)了解AT89C2051微控制器的存儲(chǔ)物理空間和約束范圍,適當(dāng)調(diào)整所使用的指令尋址范圍AT89C2051。 3.2.5 CPU工作方式 ⑴
31、空閑方式 在空閑模式下,CPU自己轉(zhuǎn)入睡眠狀態(tài),而芯片上其余所有的外圍單元保持活動(dòng)狀態(tài)。該模式由軟件調(diào)用。在該模式中,芯片級(jí)RAM和所有特殊功能寄存器的內(nèi)容保持不變??臻e模式可以由任意有效的中斷或硬件復(fù)位來終止(王衛(wèi)海,1995)。 如果未使用外部上拉電阻,P1.0和P1.1應(yīng)該被置為“0”,而如果用了外部上拉電阻,它們應(yīng)該被置為“1”。 應(yīng)該注意,當(dāng)空閑模式被硬件復(fù)位終止時(shí),單片機(jī)AT89C2051從它轉(zhuǎn)入睡眠前的狀態(tài)恢復(fù)到正常的程序執(zhí)行狀態(tài),比內(nèi)部復(fù)位算法獲得控制權(quán)提前兩個(gè)機(jī)器周期。在這種場(chǎng)合,芯片內(nèi)的硬件禁止訪問內(nèi)部RAM,但訪問端口引線是允許的。為了消除當(dāng)空閑模式被復(fù)位終止時(shí)可能
32、往端口作不希望發(fā)生的寫入操作,調(diào)用空閑模式指令后面緊跟的那條指令不應(yīng)該是寫端口或?qū)懲獠績(jī)?nèi)存的指令。 ⑵低功耗方式 在低功耗模式下,振蕩器被停止,調(diào)用低功耗模式的指令是被執(zhí)行的最后一條指令。芯片級(jí)RAM和特殊功能寄存器保持它們的值,直到低功耗模式終止。終止低功耗模式的唯一方法是,硬件復(fù)位。復(fù)位操作重定義SFR,但是不會(huì)改變芯片級(jí)RAM。復(fù)位動(dòng)作應(yīng)在Vcc恢復(fù)到正常工作電平時(shí)進(jìn)行,而且必須保持足夠長(zhǎng)的時(shí)間,以使振蕩器重啟動(dòng)并趨于穩(wěn)定。 如果未使用外部上拉電阻,P1.0和P1.1應(yīng)該被置為“0”,而如果用了外部上拉電阻,它們應(yīng)該被置為“1”。 3.2.6 對(duì)Flash閃速存儲(chǔ)器的編程 AT
33、89C2051是在擦除狀態(tài)下(也即所單元內(nèi)容均為FFH時(shí))用2k字節(jié)的片內(nèi)PEROM代碼存儲(chǔ)陣列進(jìn)行封裝微控制器,其程序存儲(chǔ)器是可以反復(fù)編程的。代碼存儲(chǔ)陣列一次編程一個(gè)字節(jié),一旦陣列被編程,如需重新編程—非空(空為:FFH)字節(jié),必須對(duì)整個(gè)存儲(chǔ)陣列進(jìn)行電擦除。如圖3-5和3-6。 圖3-5 編程電路 圖3-6 校驗(yàn)電路 3.2.7 內(nèi)部地址計(jì)數(shù)器 AT89C2051包含一個(gè)內(nèi)部EEPROM地址計(jì)數(shù)器,它總是在RST上升沿復(fù)位到000H并在XTAL1引腳有一正跳變脈沖時(shí)進(jìn)行計(jì)數(shù)。 3.3 AT89C2051軟硬件的開發(fā) 89C2051可以采用下面2種方法開發(fā)應(yīng)用系統(tǒng): ⑴由
34、于89C2051內(nèi)部程序存貯器為Flash,所以修改它內(nèi)部的程序十分方便快捷,只要配備一個(gè)可以編程89C2051的編程器即可。調(diào)試人員可以采用程序編輯-編譯-固化-插到電路板中試驗(yàn)這樣反復(fù)循環(huán)的方法,對(duì)于熟練的MCS-51程序員來說,這種調(diào)試方法并不十分困難。當(dāng)做這種調(diào)試不能夠了解片內(nèi)RAM的內(nèi)容和程序的走向等有信息(Fiorini P,2000)。 ⑵將普通8031/80C31仿真器的仿真插頭中P1.0~P1.7和P3.0~P3.6引出來仿真2051,這種 方法可以運(yùn)用單步、斷點(diǎn)的調(diào)試方法,但是仿真不夠真實(shí),比如,2051的內(nèi)部模擬比較器功能, P1口、P3口的增強(qiáng)下拉能力等。 3.
35、4 性能價(jià)格比 下面就目前國(guó)內(nèi)全勝較多的兩種單片機(jī),討論一下2051的性能價(jià)格比。 ⑴與80C31系統(tǒng)相比較 如果需要構(gòu)成一個(gè)80C31的最小系統(tǒng)的話,除了CPU之外,至少需要一片27C64,而系統(tǒng)的有效引腳和89C2051基本相同。從元器件的成本,電路板的面積和加密性來看,使用89C2051都是合算的。 ⑵與PIC單片機(jī)比較 目前,國(guó)內(nèi)小型的單片機(jī)全勝較多的有PIC系列,89C2051與PIC相對(duì)應(yīng)芯片比較有如下特點(diǎn):89C2051的價(jià)格高于PIC的OTP型號(hào),但大大低于PIC的EPROM型,89C2051片內(nèi)不含Watch Dog,這是89C2051的不足之處,中斷系統(tǒng)堆棧結(jié)構(gòu)
36、、串等通訊筆定時(shí)器系統(tǒng)都大大強(qiáng)于PIC系統(tǒng)。由于PIC芯片中無標(biāo)準(zhǔn)串等口,所以在單片機(jī)的聯(lián)網(wǎng)應(yīng)用上面,PIC不太適合。與PIC相比2051更適合于較復(fù)雜的應(yīng)用場(chǎng)合,適合一些軟件需要多次修改的應(yīng)用。 3.5 應(yīng)用 就目前中國(guó)市場(chǎng)的情況來看,89C2051有很大的市場(chǎng)。其原因有下列2點(diǎn): ⑴2051采用的是MCS51的核心,十分容易為廣大用戶所接受; ⑵2051內(nèi)部基本保持了80C31的硬件I/O功能; ⑶2051的Flash存貯器技術(shù),可重復(fù)擦/寫1000次以上,容易解決調(diào)試手段; ⑷更適合小批量系統(tǒng)的應(yīng)用,容易實(shí)現(xiàn)軟件的升級(jí)。 89C2051適合于家用電器控制,分布式測(cè)控網(wǎng)絡(luò),I
37、/O量不足不是很大的應(yīng)用系統(tǒng)(沈紅衛(wèi),2003)。 4 系統(tǒng)硬件設(shè)計(jì) 4.1 總體方案設(shè)計(jì) 4.1.1 設(shè)計(jì)原理 該裝置的目的是解決樓道路燈的電費(fèi)自動(dòng)分?jǐn)倖栴}。設(shè)用電量為M每度電費(fèi)為L(zhǎng),則總電費(fèi)為: F=ML=IUtL (4-1) 式中:U為電源電壓,可認(rèn)為是常數(shù);I為總電流,與點(diǎn)亮的樓道路燈有關(guān),是變量;t為樓道路燈點(diǎn)亮總時(shí)間,是變量。如住一樓用戶,晚上進(jìn)出只有一盞點(diǎn)亮;二樓用戶,則有2盞燈(一樓和二樓均點(diǎn)亮);以此類推,六樓的用戶,則按順序依次點(diǎn)亮6盞燈,又按逆序熄滅。設(shè)路燈的功率為P(可認(rèn)為是常數(shù));則式(4-1)可寫為:
38、 F=LUIt=LPt=Kt ?。?-2) 式中K為常數(shù)(莊興元,1999)。因此,樓道內(nèi)的電費(fèi)問題,則轉(zhuǎn)化為路燈點(diǎn)亮的總時(shí)間t的數(shù)學(xué)計(jì)算問題。根據(jù)t的值,確定各用戶的接通時(shí)間,實(shí)現(xiàn)電費(fèi)的自動(dòng)“收費(fèi)”目的。 4.1.2 系統(tǒng)總體性能要求 根據(jù)原理設(shè)計(jì),該耗電分配裝置的設(shè)計(jì)考慮以下因素及性能要求: 4.1.2.1 成本因素 考慮到用戶的心理接受傾向,其成本應(yīng)接近或低于普通電表或各種電計(jì)量電表,同時(shí)具有較高的精度,即較好的可信度,才有市場(chǎng)推廣價(jià)值。 4.1.2.2 環(huán)境適應(yīng)性 具有環(huán)境照度檢測(cè)控制,白天不開燈,夜晚開燈;不管是采用手動(dòng)開關(guān),還
39、是采用紅外線人體自動(dòng)開關(guān),都可以使用。 4.1.2.3 節(jié)能性 該裝置全天候工作在公用電網(wǎng)中,作為一個(gè)電子裝置其本身有定功耗,若功耗過高,則電力部門每年要承擔(dān)較多的電力損失,同時(shí)有散熱問題,從而產(chǎn)生安全隱患;該裝置只有在使用路燈時(shí),才處于工作狀態(tài),此外絕大多數(shù)時(shí)間,處于待機(jī)狀態(tài),因此,必須采用電睡眠待機(jī),通過按鍵喚醒投入正常工作的運(yùn)行模式(姚志中,2005)。 4.1.2.4 可靠性 必須確保裝置不因外界干擾引起誤動(dòng)作;不會(huì)因?yàn)檠b置本身的過熱問題等因素引起火災(zāi),或者其它安全因素導(dǎo)致使用者觸電等;同時(shí)還要有較長(zhǎng)的壽命。 4.1.2.5 方便性 該裝置一般裝在一樓的集中配電箱內(nèi),若只有
40、1條共用相線引到各樓層,各樓層的2個(gè)用戶的路燈開關(guān)又可直接并聯(lián)使用(或共用1個(gè)紅外人體感應(yīng)開關(guān)),布線就十分方便(徐璞,孫新懷,2006)。 4.1.3 裝置總體結(jié)構(gòu)原理圖 裝置的總體結(jié)構(gòu)原理圖如圖4-1所示。大虛線框內(nèi)為該裝置的控制電路,S為分時(shí)切換的選擇開關(guān)。 圖4-1 耗電分?jǐn)傃b置總體結(jié)構(gòu)原理框圖 4.2 系統(tǒng)硬件設(shè)計(jì) 主系統(tǒng)電路主要有看門狗電路、照度檢測(cè)電路、路燈點(diǎn)亮按鈕電路、分時(shí)切換控制電路及單片機(jī)等組成。 4.2.1 單片機(jī)型號(hào)的選擇 為了滿足性能要求,選擇了ATMEL公司的51系列單片機(jī)89C2051作為控制核心。 4.2.2 環(huán)境照度檢測(cè)電路 LM393
41、是雙電壓比較器其有兩個(gè)獨(dú)立,精確的電壓比較器組成,失調(diào)電壓不超過2.0mv兩比較器是專門設(shè)計(jì)在電壓范圍較寬的單電源下工作,但在雙電源下也能工作,并且其電源電流大小不受電源電壓幅度大小影響。這些比較器有一個(gè)獨(dú)特的性能,就是即使在單電源下工作,其輸入共模電壓范圍也保持零電平。它有兩個(gè)輸入端和兩個(gè)輸出端,一個(gè)基準(zhǔn)電壓端。輸入端電壓低于基準(zhǔn)電壓時(shí)輸出端為高電平,反之輸出端電平翻轉(zhuǎn)。圖4-2為照度檢測(cè)電路原理,圖中的R6為光敏電阻。當(dāng)環(huán)境照度變低時(shí),即R6﹥100kΩ,運(yùn)放輸出約7V的直流電壓,經(jīng)電阻分壓獲得約3.5V的數(shù)字邏輯高電平,送往單片機(jī)的P3.0腳,供單片機(jī)決策是否啟用樓道里的路燈(張有軍,張
42、新廷,孫洪勛,2001)。 圖4-2 環(huán)境照度檢測(cè)電路 4.2.3 分時(shí)切換控制電路 圖4-3為12路分時(shí)切換控制電路,光電耦合器件完成電平轉(zhuǎn)換和隔離作用,以增強(qiáng)抗干擾能力。分時(shí)切換執(zhí)行部件由繼電器K1完成,繼電器選用直流12V,線圈直流電阻約400Ω的JZC-21F型號(hào)。因?yàn)檎斩容^低是夜間,系統(tǒng)中始終有1只繼電器的線圈是通電的,因此它的功耗和節(jié)能很重要。繼電器在吸合后,其維持電壓≥額定電壓的75%,就是說在繼電器吸合后時(shí)加12V電壓,吸合以后降到額定電壓的80%,既能保證可靠工作,又能起到節(jié)能目的。圖中的電容C4和電阻R33就是為此目的設(shè)置的,繼電器剛吸合時(shí),電容C4上的電壓為
43、0,且不能突變,12V電壓全部加在繼電器上,繼電器吸合后,電容沖電結(jié)束相當(dāng)于斷開,R33串入繼電器線圈。因此,R33是限流電阻,D1是繼電器釋放時(shí)的放電回路。發(fā)光二極管L1為繼電器工作指示,同時(shí)也為R33分擔(dān)部分電流。由圖中參數(shù)可求得其節(jié)能約為(李衛(wèi)平,2003): ?。?-3) 圖4-3 分時(shí)切換控制電路 4.2.4 路燈點(diǎn)亮按鈕電路 為了提高控制系統(tǒng)的抗干擾能力,在控制電路和開關(guān)電路之間使用光電耦合器實(shí)現(xiàn)隔離。圖中的S1,S2,…,S12為分布于各樓層住戶的路燈按鈕。當(dāng)其中任何一個(gè)被按下時(shí)均會(huì)通過光電耦合TLP521-1在
44、P3.2(INT0)引腳產(chǎn)生一個(gè)下降沿,觸發(fā)外部中斷0,喚醒89C2051。在外部中斷0的中斷服務(wù)程序中,完成是否允許點(diǎn)燈的判斷,如果允許,則分時(shí)切換控制電路的繼電器就動(dòng)作,點(diǎn)亮路燈。當(dāng)然路燈是否點(diǎn)亮首先取決于P3.0的狀態(tài)(即環(huán)境照度)(秦曾煌,1999)。 圖4-4 路燈點(diǎn)亮按鈕位原理圖 4.2.5 看門狗電路 當(dāng)微機(jī)受到干擾時(shí)會(huì)引起程序亂飛,將有可能使程序陷入“死循環(huán)”。此時(shí),采用指令冗余、軟件陷阱等技術(shù)都不能使失控的程序擺脫“死循環(huán)”的困境,所以采用程序監(jiān)控技術(shù),又稱“看門狗”技術(shù),使程序脫離“死循環(huán)”。系統(tǒng)應(yīng)用程序一般往往采用循環(huán)運(yùn)行方式,每次循環(huán)的時(shí)間基本固定在一個(gè)區(qū)
45、間內(nèi)?!翱撮T狗”技術(shù)就是不斷監(jiān)控程序運(yùn)行時(shí)間,若發(fā)現(xiàn)時(shí)間超過已知的循環(huán)上限設(shè)定時(shí)間。則認(rèn)為系統(tǒng)進(jìn)入了“死循環(huán)”,然后強(qiáng)迫程序返回開始入口,并在開始入口,并在開始入口處安排一段出錯(cuò)處理程序,使系統(tǒng)快速納入正軌運(yùn)行(張向豐,2006)。 本裝置的看門狗電路使用了MAXIM公司生產(chǎn)的低成本微處理器監(jiān)控芯片MAX813L,其DIP封裝引腳圖如圖4-6所示。其中為MR手動(dòng)復(fù)位端;Vcc為工作電源端,接電源;Vss為電源接地端;PFI為電源故障輸入端;PFO為電源故障輸出端,這兩兩個(gè)引腳在本裝置未使用;WDI為看門狗信號(hào)輸入端,程序正常運(yùn)行時(shí),必須在小于1.6s的時(shí)間內(nèi)向該輸入端發(fā)送一個(gè)脈沖信號(hào),以消除
46、芯片內(nèi)部的看門狗定時(shí)器,當(dāng)單片機(jī)超過1.6秒未向MAX813L的看門狗輸入端發(fā)沖信號(hào),MAX813L內(nèi)部的定時(shí)器將會(huì)強(qiáng)制將WDR拉到低電平;RST為復(fù)位信號(hào)脈沖輸出端,上電和掉電時(shí)自動(dòng)產(chǎn)生200ms的復(fù)位脈沖,手動(dòng)復(fù)位端輸入低電平時(shí)該端也產(chǎn)生復(fù)位輸出;WDR為看門狗信號(hào)輸出端,正常運(yùn)行時(shí)輸出保持高電平,看門狗輸出時(shí)該端有高電平變?yōu)榈碗娖?。其電路圖如圖4-5所示。接89C2051的管腳 P3.3,RST端與電片機(jī)的復(fù)位端相連,MR和WDR相連,程序正常運(yùn)行時(shí)每隔一段時(shí)間通過P3.3給WDI端送入一個(gè)脈沖,以清除MAX813L內(nèi)部的看門狗計(jì)數(shù)器,若程序“跑飛”,1.6s未向WDI輸出脈沖,看門定
47、時(shí)器便會(huì)溢出,WDR輸出低電平,由于WDR與MR相連,所以相當(dāng)于手動(dòng)復(fù)位,最終由RST端輸出復(fù)位信號(hào),使單片機(jī)復(fù)位。同時(shí)MR通過開關(guān)S0與Vss相通,也可使單片機(jī)復(fù)位(黃曉明,2006)。 圖4-5 看門狗電路圖 圖4-6 MAX813L引腳圖 4.2.6 系統(tǒng)供電電源設(shè)計(jì) 系統(tǒng)供電電源原理圖4-7所示。 圖4-7 電源原理圖 4.2.7.1 主系統(tǒng)電源電路 主系統(tǒng)采用+5V電源。為了減低成本,采用“變壓器降壓—整流—濾波—穩(wěn)壓”的線性電源。這里選用了78L05端穩(wěn)壓器(李曉豁,2004)。 4.2.7.2 分時(shí)切換控制電路工作電源 繼電器工作電壓為+
48、12V,考慮繼電器對(duì)到系統(tǒng)穩(wěn)定性的影響,這里采用“變壓器降壓—整流—穩(wěn)壓”的方式,有穩(wěn)壓但沒有大容量濾波。這是因?yàn)榇笕萘繛V波電容的存儲(chǔ)電能會(huì)使繼電器關(guān)斷時(shí)間延長(zhǎng),從而導(dǎo)致上個(gè)繼電器沒有關(guān)斷,下個(gè)繼電器動(dòng)合的現(xiàn)象。 4.2.8 系統(tǒng)時(shí)鐘電路設(shè)計(jì) 系統(tǒng)時(shí)鐘為1MHz,目的是減少功耗。因?yàn)橄到y(tǒng)對(duì)運(yùn)行速度的要求很低,外圍繼電器的動(dòng)作時(shí)間和路燈按鍵的響應(yīng)時(shí)間,均在ms以上(吳瑰麗,2004)。 圖4-8 時(shí)鐘電路圖 4.2.9 長(zhǎng)期運(yùn)行的安全性設(shè)計(jì) 由于該裝置的長(zhǎng)期運(yùn)行工況,因此必須考慮裝置本身的安全問題和合裝置安全引發(fā)的其他諸如人身安全性、住宅樓安全性問題。這里關(guān)鍵要保證裝置本身的安
49、全性。 4.2.9.1 功耗與散熱問題 裝置的功耗和散熱是連在一起的。只有降低功耗,才能減少裝置的發(fā)熱,也才能從根本上解決散熱問題。兩個(gè)三端穩(wěn)壓器和變壓器均緊貼在裝置的外殼上,以外殼作為一個(gè)大散熱體。由于裝置一般安裝在配電箱內(nèi),而配電箱一般是金屬外殼,這樣可促進(jìn)散熱,從外界解決了散熱問題。 4.2.9.2 裝置過流問題 由于裝置本身的元器件失效導(dǎo)致系統(tǒng)過流,引發(fā)電力火災(zāi)等,這個(gè)問題比較容易解決。只要在裝置的電源進(jìn)線的相線上串接快速熔斷器,就足以保證避免此類現(xiàn)象發(fā)生(陳鵬,2006)。 5 軟件設(shè)計(jì) 5.1 AT89C2051的程序編制 5.1.1 編程算法 要編程AT89C2
50、051,則需要下列步驟(楊振江,2003): ⑴上電次序在Vcc和GND引腳之間加上電源;設(shè)置RST和XTAL1為GND;所有其它引腳浮空,至少等待10ms。 ⑵設(shè)置RST引腳為高電平“H”,設(shè)置P3.2引腳為高“H”。 ⑶對(duì)引腳P3.3,P3.4,P3.5,P3.7加上邏輯電平高“H”或低“L”的正確組合,來選擇EEPROM編程方式如表5-1中所示中的一種編程操作。 表5-1 閃速編程方式 方式 RST/VPP P3.2/PROG P3.3 P3.4 P3.5 P3.7 寫代碼數(shù)據(jù) 12V L H H H 讀代碼數(shù)據(jù) H H L L
51、H H 寫加密 位-1 12V H H H H 寫加密 位-2 12V H H L L 片擦除 12V H L L L 讀特征節(jié) H H L L L L 注: ⒈內(nèi)部EPROM地址計(jì)數(shù)在RST的上升沿復(fù)位到000H并由XTAL1引腳正脈沖進(jìn)行計(jì)數(shù); ⒉片擦除需要10ms的PROG; ⒊編程期間P3.1被拉低來指示RDY/BSY; 編程和校驗(yàn)存儲(chǔ)器陣列,由下列(4)~(10)點(diǎn)實(shí)現(xiàn): ⑷在000H單元對(duì)P1.0~Pl.7加人數(shù)據(jù)代碼字節(jié)。 ⑸升高RST到12V來激活編程。 ⑹使P3.2跳變一次來編程EEPRO
52、M陣列中的一字節(jié)或者加密位。寫字節(jié)周期是自身定時(shí)的,一般需用l.2ms。 ⑺校驗(yàn)已被編程的數(shù)據(jù),使RST從12V降到邏輯電平“H”并設(shè)置P3.3~P3.7引腳到正確的電平??稍赑1口引腳輸出數(shù)據(jù)。 ⑻在下一地址單元編程字節(jié),使XTAL1跳變一次提升內(nèi)部地址計(jì)數(shù)器。對(duì)P1口引腳加入新數(shù)據(jù)。 ⑼重復(fù)步驟5至8,對(duì)整個(gè)2K字節(jié)陣列改變數(shù)據(jù)并提升地址計(jì)數(shù)器或者一直到目標(biāo)文件的結(jié)束。 ⑽下電次序:設(shè)置XTAL1為“L”;設(shè)置RST為“L”電平;懸空所有其它I/0引腳,直到關(guān)閉電源 5.1.2 數(shù)據(jù)查詢 AT89C2051具有指示寫周期結(jié)束的數(shù)據(jù)查詢功能。在寫周期期間,對(duì)最后寫入字節(jié)的試圖讀將
53、令P1.7上寫入數(shù)據(jù)的操作結(jié)束。一旦寫周期完成,則全部輸出端的真實(shí)數(shù)據(jù)有效,同時(shí)下一個(gè)周期開始。數(shù)據(jù)查詢可在寫周期被初始化的任一時(shí)刻開始。 5.1.3 RDY/BSY 字節(jié)編程的進(jìn)度還可由“RDY/BSY”輸出信號(hào)監(jiān)控,編程期間,P3.1引腳在P3.2變“高”后被拉低來指示“BSY”。P3.1在編程結(jié)束時(shí)被再次拉高來指示“RDY”。 5.1.4 程序校驗(yàn) 如果加密位LB1和LB2沒進(jìn)行編程,則代碼數(shù)據(jù)可通過校驗(yàn)數(shù)據(jù)線讀回: ⑴使RST從“L”變到“H”,復(fù)位內(nèi)部地址計(jì)數(shù)器000H。 ⑵對(duì)讀代碼數(shù)據(jù)加入正確的控制信號(hào)并在P1口引腳讀輸出數(shù)據(jù)。 ⑶使XTAL1引腳跳變一次來提升內(nèi)部地
54、址計(jì)數(shù)器。 ⑷在P1口引腳讀下一個(gè)代碼數(shù)據(jù)字節(jié)。 ⑸重復(fù)步驟(3)和(4)直到讀完整個(gè)陣列。 加密位不可直接進(jìn)行校驗(yàn)。加密位的校驗(yàn)可通過對(duì)存儲(chǔ)器的校驗(yàn)和寫入狀態(tài)來得到。 5.1.7 片擦除 利用控制信號(hào)的正確組合并保持P3.2引腳10ms的低電平就可電擦除整個(gè)EEPROM陣列(2K字節(jié))和兩個(gè)加密位。代碼陣列在片擦除操作中寫入全“1”并必須在任何非空存儲(chǔ)器字節(jié)可被再編程之前執(zhí)行。 5.1.8 讀特征字節(jié) 除P3.5和P3.7必須被拉成邏輯低電平外,讀特征字節(jié)的過程和單元000H,001H以及002H的正常校驗(yàn)過程相同(周彥明,2002)。返回值如下: (000H)=1EH指示產(chǎn)
55、品由ATMEL制造 (001H)=21H指示89C2051單片機(jī) 5.1.9 編程接口 閃速陣列中的每一代碼字節(jié)可進(jìn)行寫入并且整個(gè)陣列可用控制信號(hào)的正確組合進(jìn)行擦除。寫操作周期是自身定時(shí)的,一旦初始化它將自動(dòng)定時(shí)到操作完成。 5.2 MCS-51匯編語(yǔ)言簡(jiǎn)介 MCS-51匯編語(yǔ)言共有指令111條,分五類:數(shù)據(jù)傳送類指令29條;算術(shù)運(yùn)算類指令24條;邏輯運(yùn)算及移位指令24條;控制轉(zhuǎn)移類指令17條;布爾變量操作類指令17條。絕大部分指令執(zhí)行時(shí)都要用到操作數(shù),最容易到哪里去取得操作數(shù)呢?最易想到的是告訴CPU操作數(shù)所在的地址單元,從那里可以取得相應(yīng)的操作數(shù),這便是“尋址”之意。MCS-51
56、的尋址方式很多,使用起來也相當(dāng)方便,功能也很強(qiáng)大,靈活性強(qiáng)。這便是指令系統(tǒng)“好用”的原因之一。下面我們分別幾種尋址方式(徐詠龍,2004)。 5.2.1 直接尋址 指令中操作數(shù)直接以單元地址形式出現(xiàn),MOV A,68H,這條指令的意義是把內(nèi)部RAM68H單元中的數(shù)據(jù)內(nèi)容傳送到累加器A中。 5.2.2 寄存器尋址 寄存器尋址對(duì)選定的八個(gè)工作寄存器R0~R7進(jìn)行操作,也就是操作數(shù)在寄存器中,因此指定了寄存器就得到了操作數(shù),寄存器尋址的指令中以寄存器的符號(hào)表示寄存器,例如:MOV A,R1,這條指令的意義是把所用的工作寄存器中的R1的內(nèi)容送到累加器A中。 5.2.3 寄存器間接尋址 寄存
57、器中存放的為操作數(shù)的地址,也即操作數(shù)是通過寄存器指向的地址單元得到的,這便是寄存器間接尋址名稱的由來。例如指令:MOV A,@R0,這條指令的意義是將R0寄存器指向地址單元中的內(nèi)容送到累加器A中。 5.2.4 立即尋址 把操作數(shù)直接在指令中給出,即操作數(shù)包含在指令中,指令操作碼的后面緊跟著操作數(shù),一般把指令中的操作數(shù)稱為立即數(shù),因此而得名。為了與直接尋址方式相區(qū)別,在立即數(shù)前加上“#”符號(hào),例如:MOV A,#0EH,這條指令的 意義是0EH這個(gè)操作數(shù)送到累加器A中。 5.3.5 變址尋址 以DPTR或PC作為基址寄存器,以累加器A作為變址寄存器,將兩寄存器的內(nèi)容相加形成16地址作成
58、操作數(shù)的實(shí)際地址。例如:MOV A,@A+DPTR,A作為偏移量寄存器,DPTR作為變址寄存器,A作為無符號(hào)數(shù)與DPTR或PC的內(nèi)容相加,得到訪問的實(shí)際地址。 5.4.6 位尋址 在MCS-51單片機(jī)中,RAM中的20H~2FH字節(jié)單元對(duì)應(yīng)的位地址為00H~7FH,特殊功能寄存器中的某些也可以進(jìn)行位址,這些單元既可以采用字節(jié)方式訪問它們,也可以采用位尋址的方式訪問它們。 5.4.7 相對(duì)尋址 相對(duì)尋址方式是為了程序的相對(duì)轉(zhuǎn)移而設(shè)計(jì)的,以PC的內(nèi)容為基址,加上給出的偏移量作為轉(zhuǎn)移地址,從而實(shí)現(xiàn)程序的轉(zhuǎn)移。轉(zhuǎn)移的目的地址可參見如下表達(dá)式:目的地址=轉(zhuǎn)移指令地址+轉(zhuǎn)移指令字節(jié)數(shù)+偏移量。
59、5.3 系統(tǒng)軟件設(shè)計(jì) 系統(tǒng)軟件結(jié)構(gòu)主要包括主程序,外部中斷0,定時(shí)器0、1的中斷服務(wù)程序等幾個(gè)部分。 5.3.1 主程序結(jié)構(gòu) 主程序用于完成系統(tǒng)初始化、喂看門狗及設(shè)置系統(tǒng)進(jìn)入待機(jī)節(jié)能工作模式等任務(wù)。主程序流程框圖如圖5-1所示。系統(tǒng)初始化時(shí),應(yīng)把外部中斷0的優(yōu)先級(jí)別設(shè)置為高優(yōu)先中斷,采用下降沿觸發(fā)式并開放其中斷;而兩個(gè)定時(shí)器0、1設(shè)置為允許中斷,其中斷優(yōu)先級(jí)別設(shè)置為低優(yōu)先級(jí),應(yīng)設(shè)置好定時(shí)器0、1的工作模式(均為方式1)、計(jì)數(shù)初值,并關(guān)閉定時(shí)器。系統(tǒng)初始化后,應(yīng)及時(shí)關(guān)閉所有路燈,并喂看門狗,設(shè)置系統(tǒng)進(jìn)入節(jié)能待機(jī)狀態(tài)(置PCON的最低位IDL為1)。當(dāng)系統(tǒng)因干擾被喚醒后,應(yīng)通過轉(zhuǎn)移指令強(qiáng)行軟
60、復(fù)位,再次初始化并進(jìn)入IDLE,如屬正常喚醒,則進(jìn)入外中斷0中斷服務(wù)程序(Ulrich I, Mondada F, Nicoud J D,1997)。 開始 系統(tǒng)初始化 定義外中斷0為邊沿高優(yōu)先中斷 關(guān)閉所有路燈 喂看門狗 開放外中斷0 設(shè)置成IDLE運(yùn)行方式 系統(tǒng)軟件復(fù)位 延時(shí)以等待喚醒 N Y
61、
62、
63、
64、
65、
66、
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識(shí)競(jìng)賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓(xùn)考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫(kù)試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫(kù)試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫(kù)試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識(shí)測(cè)試題庫(kù)及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習(xí)題含答案
- 2煤礦安全監(jiān)測(cè)工種技術(shù)比武題庫(kù)含解析
- 1 礦山應(yīng)急救援安全知識(shí)競(jìng)賽試題
- 1 礦井泵工考試練習(xí)題含答案
- 2煤礦爆破工考試復(fù)習(xí)題含答案
- 1 各種煤礦安全考試試題含答案