畢業(yè)論文基于單片機(jī)教室忙閑顯示系統(tǒng)的畢業(yè)設(shè)計(jì)畢業(yè)論文_第1頁(yè)
畢業(yè)論文基于單片機(jī)教室忙閑顯示系統(tǒng)的畢業(yè)設(shè)計(jì)畢業(yè)論文_第2頁(yè)
畢業(yè)論文基于單片機(jī)教室忙閑顯示系統(tǒng)的畢業(yè)設(shè)計(jì)畢業(yè)論文_第3頁(yè)
畢業(yè)論文基于單片機(jī)教室忙閑顯示系統(tǒng)的畢業(yè)設(shè)計(jì)畢業(yè)論文_第4頁(yè)
畢業(yè)論文基于單片機(jī)教室忙閑顯示系統(tǒng)的畢業(yè)設(shè)計(jì)畢業(yè)論文_第5頁(yè)
已閱讀5頁(yè),還剩47頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、吉 林 農(nóng) 業(yè) 大 學(xué)本 科 畢 業(yè) 設(shè) 計(jì)論文題目: 綜合樓教室忙閑顯示系統(tǒng) 學(xué)生姓名: 專(zhuān)業(yè)年級(jí): 電子信息科學(xué)與技術(shù) 指導(dǎo)教師: 職稱(chēng) 講師 2008年6月3日i 目 錄題目i摘要i1 前言11.1 題目的來(lái)源與開(kāi)發(fā)意義11.2 系統(tǒng)功能概述12 方案的提出及論證13 系統(tǒng)硬件設(shè)計(jì)23.1 系統(tǒng)硬件總體設(shè)計(jì)概述23.2 系統(tǒng)各個(gè)模塊的設(shè)計(jì)23.2.1 教室狀態(tài)顯示模塊23.2.2 時(shí)間顯示模塊33.2.3 按鍵模塊33.3 芯片介紹43.3.1 at89c51單片機(jī)的簡(jiǎn)介43.3.2 ds1302時(shí)鐘93.3.3 8位串入/并出移位寄存器74hc164124 系統(tǒng)軟件設(shè)計(jì)134.1 系統(tǒng)

2、軟件總體設(shè)計(jì)思想134.2 keil開(kāi)發(fā)軟件的介紹144.2.1 keil 軟件開(kāi)發(fā)的流程154.2.2 keil軟件的使用154.3 各功能模塊程序設(shè)計(jì)174.3.1 數(shù)據(jù)模塊174.3.2 時(shí)鐘模塊204.3.3 功能模塊245 系統(tǒng)調(diào)試315.1 硬件電路調(diào)試315.2 各功能模塊軟件調(diào)試316 結(jié)論31參考文獻(xiàn)31致謝32附錄一:系統(tǒng)總體硬件原理圖33附錄二:系統(tǒng)程序流程圖34附錄三:系統(tǒng)程序37吉林農(nóng)業(yè)大學(xué)本科畢業(yè)設(shè)計(jì)綜合樓教室忙閑狀態(tài)顯示系統(tǒng) 學(xué) 生:左 晨 專(zhuān) 業(yè):電子信息科學(xué)與技術(shù) 指導(dǎo)教師:宮鶴摘 要:本設(shè)計(jì)實(shí)現(xiàn)了綜合樓教室忙閑狀態(tài)顯示的功能。綜合樓教室忙閑顯示系統(tǒng)是建立在單

3、片機(jī)的基礎(chǔ)上的電子監(jiān)控系統(tǒng),它主要是用來(lái)查詢(xún)和顯示綜合樓各個(gè)教室在某一時(shí)間段的忙閑狀態(tài),顯示當(dāng)前年月日等等。信息存儲(chǔ)調(diào)用系統(tǒng)是綜合樓教室忙閑狀態(tài)顯示系統(tǒng)中非常重要的一部分,而時(shí)鐘又是時(shí)間系統(tǒng)必不可少的。本設(shè)計(jì)就是以信息存儲(chǔ)調(diào)用系統(tǒng)和時(shí)鐘系統(tǒng)作為研究對(duì)象,主要介紹了信息存儲(chǔ)的基本概念,時(shí)鐘設(shè)置和編程的基本步驟等等,信息存儲(chǔ)系統(tǒng)是在c+環(huán)境下進(jìn)行串行通信編程的。我們這次研究的信息存儲(chǔ)系統(tǒng)是為了實(shí)現(xiàn)綜合樓各個(gè)教室信息的存儲(chǔ),數(shù)據(jù)的調(diào)用。通過(guò)寫(xiě)入程序來(lái)實(shí)現(xiàn)存儲(chǔ)和調(diào)出查詢(xún)功能,存儲(chǔ)系統(tǒng)和時(shí)間系統(tǒng)緊密結(jié)合,把從存儲(chǔ)調(diào)出的數(shù)據(jù)經(jīng)過(guò)對(duì)比分析,最后顯示出所需要的數(shù)據(jù),可以實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的更新。另外,數(shù)據(jù)還包括對(duì)時(shí)

4、間的查詢(xún)。通過(guò)時(shí)間的查詢(xún)獲得相應(yīng)時(shí)間教室的狀態(tài)信息。存儲(chǔ)系統(tǒng)和時(shí)鐘系統(tǒng)的有效結(jié)合,使系統(tǒng)工作更加準(zhǔn)確。關(guān)鍵詞: 存儲(chǔ)系統(tǒng);單片機(jī);c+;時(shí)鐘系統(tǒng)comprehensive building blassroom busy idle condition display systemname:zuochenmajor:electronic information science and technologytutor:gongheabstract: this design has realized the synthesis building classroom busy idle conditio

5、n demonstration function. the comprehensive building classroom busy idle display systems are the establishment in scm's foundation electron supervisory system, it is mainly uses for to inquire and demonstration synthesis building each classroom in some time section busy idle condition, demonstra

6、tion current year, month and day and so on. the information storage transfer system synthesizes in the building classroom busy idle condition display system a very important part, but the clock is also the time system is essential. this design is takes the object of study by the information storage

7、transfer system and the clock system, mainly introduced information storage's basic concept, clock establishment and programming basic step and so on, the information storage systems are carry on the serial communication programming under the c+ environment. our research's information storag

8、e system is to realize the synthesis building each classroom information memory, the data transfer. through reads in the procedure to realize saves and assigns out the inquiry function, the memory system and the time system unifies closely, data which assigns out from the memory after contrastive an

9、alysis, finally demonstrated needs the data, may realize to the database renewal. moreover, the data also includes to the time inquiry. obtains the corresponding time classroom the pass time passage period inquiry the status messages. the memory system and clock system's effective union, causes

10、the system work to be more accurate.keywords: memory system;scm;c+;clock system 48 1前言1.1 題目的來(lái)源與開(kāi)發(fā)意義自20世紀(jì)90年代以來(lái),單片機(jī)已進(jìn)入了一個(gè)高速發(fā)展的階段,世界上著名的半導(dǎo)體廠商都注重新型單片機(jī)的研制、生產(chǎn)和推廣。單片機(jī)的應(yīng)用已經(jīng)深入到國(guó)民經(jīng)濟(jì)的各個(gè)領(lǐng)域中,由單片機(jī)控制的微型電腦產(chǎn)品比比皆是。單片機(jī)正朝著面向多層次用戶(hù)的多品種多規(guī)格方向發(fā)展。隨著電子技術(shù)的發(fā)展, 現(xiàn)在的忙閑顯示系統(tǒng)功能越來(lái)越強(qiáng), 可靠性和準(zhǔn)確性的要求也越來(lái)越高。以前的忙閑顯示系統(tǒng)大部分都是基于數(shù)字電路組成的,其功能比較單一,使

11、用起來(lái)也不夠理想,制作過(guò)程復(fù)雜, 而且準(zhǔn)確性與可靠性不高, 成品面積大, 安裝, 維護(hù)困難。由于近年來(lái)單片機(jī)發(fā)展迅速, 逐漸出現(xiàn)用單片機(jī)制作忙閑顯示系統(tǒng), 制作過(guò)程簡(jiǎn)單, 而且安裝, 維護(hù)簡(jiǎn)單。綜合樓教室空閑狀態(tài)顯示系統(tǒng)主要是由存儲(chǔ)系統(tǒng)、時(shí)鐘系統(tǒng)和顯示系統(tǒng)三部分組成。本次畢業(yè)設(shè)計(jì),我主要研究的是存儲(chǔ)系統(tǒng)和顯示系統(tǒng)兩部分。它的主要功能是將預(yù)先輸入的信息數(shù)據(jù)通過(guò)對(duì)應(yīng)時(shí)間調(diào)用方式將信息通過(guò)二級(jí)管亮滅狀態(tài)顯示出來(lái),并能對(duì)數(shù)據(jù)庫(kù)進(jìn)行及時(shí)的更新。教室忙閑顯示系統(tǒng)的開(kāi)發(fā)工具keil。1.2系統(tǒng)功能概述 本設(shè)計(jì)以單片機(jī)at89c51為核心,通過(guò)一片at89c51單片機(jī)控制綜合樓各個(gè)教室在某一時(shí)間忙閑狀態(tài)的顯示

12、及鍵盤(pán)和各顯示終端。利用74164使本系統(tǒng)具有了顯示查詢(xún)時(shí)間和北京時(shí)間以及年月日的功能,并且能夠設(shè)置和查詢(xún)特定的時(shí)間。在實(shí)際的學(xué)習(xí)生活中,如果應(yīng)用到此系統(tǒng),必然要考慮到它的實(shí)用性,所以本設(shè)計(jì)采用并排顯示,它主要功能是顯示和查詢(xún)?cè)谀骋粋€(gè)特定的時(shí)間里,從存儲(chǔ)系統(tǒng)中調(diào)出相應(yīng)時(shí)間段所對(duì)應(yīng)的綜合樓各個(gè)教室當(dāng)前空閑或繁忙的狀態(tài),通過(guò)發(fā)光二極管的亮、滅狀態(tài)來(lái)顯示。可以直觀的看到每一層樓各個(gè)教室在當(dāng)前時(shí)間的忙閑狀態(tài),還有年月日時(shí)間的顯示,大大方便了同學(xué)查詢(xún)。簡(jiǎn)單、實(shí)用、廉價(jià)是本設(shè)計(jì)的創(chuàng)新之處,可以輕松的實(shí)現(xiàn)對(duì)綜合樓各個(gè)教室忙閑狀態(tài)的顯示和查詢(xún)的功能。2 方案的提出及論證方案一:系統(tǒng)采用點(diǎn)陣做顯示,顯示年月日時(shí)

13、間。用ls273做鎖存器,ds1302時(shí)鐘i2c總線(xiàn)模式,24cxx系列做存儲(chǔ),利用單片機(jī)進(jìn)行連接。經(jīng)過(guò)多次試驗(yàn)嘗試,均不能成功。且系統(tǒng)成本較高,時(shí)間反應(yīng)速度緩慢,不能實(shí)現(xiàn)預(yù)期的效果。因此放棄了本方案。方案二:系統(tǒng)軟件處理部分采用at89c51芯片,用ds1302建立時(shí)鐘電路,利用主控單片機(jī)的兩個(gè)i/o口作為新的串行口,利用74164做的靜態(tài)顯示模塊,使本系統(tǒng)具有了顯示回答時(shí)間和北京時(shí)間的功能,考慮到實(shí)際的應(yīng)用,利用2個(gè)大數(shù)碼管顯示層數(shù),方便同學(xué)查詢(xún)。設(shè)置s1,s2,s3按鍵年月顯示查詢(xún)北京時(shí)間 p3 p18 0 5 1 p2 p0教室顯示時(shí)鐘數(shù)碼管圖2.1方案二原理框圖fig 2.1 pro

14、ject two principle frame diagram3 系統(tǒng)硬件設(shè)計(jì)3.1 系統(tǒng)硬件總體設(shè)計(jì)概述綜合樓教室忙閑狀態(tài)顯示系統(tǒng)就是用來(lái)準(zhǔn)確的實(shí)時(shí)的顯示出當(dāng)前在綜合樓里面每一個(gè)教室的狀態(tài),以及查詢(xún)各個(gè)時(shí)間段教室空閑狀態(tài)。本著這個(gè)原則,可以利用單片機(jī)控制其工作,將樓層信息教室狀態(tài)顯示出來(lái)為了使系統(tǒng)更人性化,功能更加完善,同學(xué)可以按照自己的需求進(jìn)行查詢(xún)某一個(gè)教室在某一個(gè)時(shí)間里是否有課。為了使同學(xué)能夠清楚的看到查詢(xún)的信息,利用數(shù)碼管進(jìn)行動(dòng)態(tài)顯示。本設(shè)計(jì)的硬件系統(tǒng)分為七個(gè)模塊:處理模塊,時(shí)鐘模塊,晶振模塊,按鍵模塊,復(fù)位模塊, 時(shí)間顯示模塊,教室狀態(tài)顯示模塊。3.2 系統(tǒng)各個(gè)模塊的設(shè)計(jì)3.2.1

15、 教室狀態(tài)顯示模塊教室狀態(tài)顯示模塊中有一層教學(xué)樓的40個(gè)教室所一一對(duì)應(yīng)的發(fā)光二極管,其顯示方式為亮、滅兩種,狀態(tài)亮為教室有課,狀態(tài)滅為教室沒(méi)有課。本功能模塊的設(shè)計(jì)采用一起顯示單獨(dú)查詢(xún)的方式,具有顯示當(dāng)前時(shí)刻教室狀態(tài)的功能。譯碼器輸出驅(qū)動(dòng)數(shù)碼管顯示。電源范圍為318伏,本設(shè)計(jì)采用5v電源輸出驅(qū)動(dòng)電流可達(dá)到10ma以上,可直接驅(qū)動(dòng)led數(shù)碼管,而不需要其他的接口電路。1其電路圖如3.1 所示。圖3.1教室狀態(tài)模塊電路圖fig 3.1 classroom condition module circuit diagram3.2.2 時(shí)間顯示模塊 在同學(xué)沒(méi)有查詢(xún)的時(shí)候,系統(tǒng)顯示當(dāng)前年月日時(shí)間和樓層數(shù),在

16、同學(xué)進(jìn)行時(shí)間查詢(xún)的時(shí)候顯示查詢(xún)時(shí)間。此顯示模塊是采用動(dòng)態(tài)顯示。由 p2.0和p2.1口進(jìn)行串行送數(shù)據(jù),經(jīng)過(guò)串并轉(zhuǎn)換器74ls164并行輸出數(shù)據(jù)。2采用串行輸出可以大大節(jié)省單片機(jī)的內(nèi)部資源,串并轉(zhuǎn)換器采用74ls164,低電平時(shí)允許通過(guò)8ma的電流,無(wú)需添加其他的驅(qū)動(dòng)電路,采用較小的驅(qū)動(dòng)電流就可以得到較高的顯示亮度,其電路圖如圖3.2所示。圖3.2時(shí)間顯示模塊的電路圖fig 3.2 time the circuit module3.2.3 按鍵模塊 按鍵模塊連接到p2口,通過(guò)軟件來(lái)判斷哪個(gè)按鍵執(zhí)行哪個(gè)功能,是否按下。通過(guò)按鍵可以調(diào)整時(shí)間,達(dá)到查詢(xún)時(shí)間的作用。電路如圖3.3所示。 圖3.3按鍵模塊

17、電路圖fig 3.3 key module circuit diagram3.3 芯片介紹3.3.1 at89c51單片機(jī)的簡(jiǎn)介at89c51是一種帶4k字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器(fperomfalsh programmable and erasable read only memory)的低電壓,高性能cmos8位微處理器,俗稱(chēng)單片機(jī)。at89c51是一種帶4k字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器的單片機(jī)。3單片機(jī)的可擦除只讀存儲(chǔ)器可以反復(fù)擦除100次。該器件采用atmel高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的mcs-51指令集和輸出管腳相兼容。由于將多功能8位cpu和閃爍存儲(chǔ)器組合在

18、單個(gè)芯片中,atmel的at89c51是一種高效微控制器,at89c2051是它的一種精簡(jiǎn)版本。at89c51單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案主要特性:與mcs-51 兼容 4k字節(jié)可編程閃爍存儲(chǔ)器 ,壽命:1000寫(xiě)/擦循環(huán),數(shù)據(jù)保留時(shí)間:10年全靜態(tài)工作:0hz-24hz三級(jí)程序存儲(chǔ)器鎖定128*8位內(nèi)部ram32可編程i/o線(xiàn)兩個(gè)16位定時(shí)器/計(jì)數(shù)器5個(gè)中斷源 可編程串行通道低功耗的閑置和掉電模式片內(nèi)振蕩器和時(shí)鐘電路 管腳說(shuō)明:vcc:供電電壓。    gnd:接地。    p0口:p

19、0口為一個(gè)8位漏極開(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外部必須被拉高。5     p1口:p1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向i/o口,p1口緩沖器能接收輸出4ttl門(mén)電流。p1口管腳寫(xiě)入1后,被內(nèi)部上拉為高,可用作輸入,p1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在flash編程和校驗(yàn)時(shí),p1口作為第八位地址接收6。 

20、60;    p2口:p2口為一個(gè)內(nèi)部上拉電阻的8位雙向i/o口,p2口緩沖器可接收,輸出4個(gè)ttl門(mén)電流,當(dāng)p2口被寫(xiě)“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),p2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。p2口當(dāng)用于外部程序存儲(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)7。     p3口:p3

21、口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向i/o口,可接收輸出4個(gè)ttl門(mén)電流。當(dāng)p3口寫(xiě)入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,p3口將輸出電流(ill)這是由于上拉的緣故6。 p3口也可作為at89c51的一些特殊功能口,如下表所示:口管腳 備選功能p3.0 rxd (串行輸入口)p3.1 txd (串行輸出口)p3.2 /int0 (外部中斷0)p3.3 /int1(外部中斷1)p3.4 t0 (記時(shí)器0外部輸入)p3.5 t1 (記時(shí)器1外部輸入)p3.6 /wr (外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通)p3.7 /rd (外部數(shù)據(jù)存儲(chǔ)器讀選通)p3口同時(shí)為閃爍編程和編程

22、校驗(yàn)接收一些控制信號(hào)。  rst:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持rst腳兩個(gè)機(jī)器周期的高電平時(shí)間。 ale/prog:當(dāng)訪(fǎng)問(wèn)外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在flash編程期間,此引腳用于輸入編程脈沖。在平時(shí),ale端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過(guò)一個(gè)ale脈沖。如想禁止ale的輸出可在sfr8eh地址上置0。此時(shí), ale只有在執(zhí)行movx,movc指令是ale才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ale禁

23、止,置位無(wú)效。   /psen:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/psen有效。但在訪(fǎng)問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/psen信號(hào)將不出現(xiàn)。     /ea/vpp:當(dāng)/ea保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000h-ffffh),不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),/ea將內(nèi)部鎖定為reset;當(dāng)/ea端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在flash編程期間,此引腳也用于施加12v編程電源(vpp)。    xtal1:反向振蕩放大器的輸入及內(nèi)部時(shí)

24、鐘工作電路的輸入。    xtal2:來(lái)自反向振蕩器的輸出。定時(shí)器0和1的操作7定時(shí)和計(jì)數(shù)功能由特殊功能寄存器tmod的控制位c/t進(jìn)行選擇。這兩個(gè)定時(shí)/計(jì)數(shù)器有4種操作模式,通過(guò)tmod的m1和m0選擇。兩個(gè)定時(shí)/計(jì)數(shù)器的模式0、1和2都相同,模式3不同。如下所述:模式0將定時(shí)器設(shè)置成模式0時(shí)類(lèi)似8048定時(shí)器,即8位計(jì)數(shù)器帶32分頻的預(yù)分頻器。此模式下,定時(shí)器寄存器配置為13位寄存器。當(dāng)計(jì)數(shù)從全為“1”翻轉(zhuǎn)為全為“0”時(shí),定時(shí)器中斷標(biāo)志位tfn置位。當(dāng)trn=1同時(shí)gate=0或intn=1時(shí)定時(shí)器計(jì)數(shù)。置位gate時(shí)允許由外部輸入intn控制定時(shí)器

25、,這樣可實(shí)現(xiàn)脈寬測(cè)量。trn為tcon寄存器內(nèi)的控制位。該13位寄存器包含thn全部8個(gè)位及tln的低5位。tln的高3位不定,可將其忽略。置位運(yùn)行標(biāo)志(trn)不能清零此寄存器。模式0的操作對(duì)于定時(shí)器0及定時(shí)器1都是相同的。兩個(gè)不同的gate位(tmod.7和tmod.3)分別分配給定時(shí)器0及定時(shí)器1。模式1模式1除了使用了thn及tln全部16位外,其它與模式0相同。模式2此模式下定時(shí)器寄存器作為可自動(dòng)重裝的8位計(jì)數(shù)器(tln)。tln的溢出不僅置位tfn,而且將thn內(nèi)容重新裝入tln,thn內(nèi)容由軟件預(yù)置。重裝時(shí)thn內(nèi)容不變。模式2的操作對(duì)于定時(shí)器0及定時(shí)器1是相同的。模式3在模式3

26、中,定時(shí)器1停止計(jì)數(shù),效果與將tr1設(shè)置為0相同。此模式下定時(shí)器0的tl0及th0作為兩個(gè)獨(dú)立的8位計(jì)數(shù)器。tl0占用定時(shí)器0的控制位:c/t,gate,tr0,int0及tf0。th0限定為定時(shí)器功能(計(jì)數(shù)器周期),占用定時(shí)器1的tr1及tf1。此時(shí)th0控制“定時(shí)器1”中斷。模式3可用于需要一個(gè)額外的8位定時(shí)器的場(chǎng)合。定時(shí)器0工作于模式3時(shí),80c51看似有3個(gè)定時(shí)器/計(jì)數(shù)器,當(dāng)定時(shí)器0工作于模式3時(shí),定時(shí)器1可通過(guò)開(kāi)關(guān)進(jìn)入/退出模式3,它仍可用作串行端口的波特率發(fā)生器,或者應(yīng)用于任何不要求中斷的場(chǎng)合。串行口851單片機(jī)內(nèi)部有一個(gè)全雙工的串行通信口,即串行接收和發(fā)送緩沖器(sbuf),這兩

27、個(gè)在物理上獨(dú)立的接收發(fā)送器,既可以接收數(shù)據(jù)也可以發(fā)送數(shù)據(jù)。但接收緩沖器只能讀出不能寫(xiě)入,而發(fā)送緩沖器則只能寫(xiě)入不能讀出,它們的地址為99h。這個(gè)通信口既可以用于網(wǎng)絡(luò)通信,亦可實(shí)現(xiàn)串行異步通信,還可以構(gòu)成同步移位寄存器使用。如果在傳行口的輸入輸出引腳上加上電平轉(zhuǎn)換器,就可方便地構(gòu)成標(biāo)準(zhǔn)的rs-232接口 串行數(shù)據(jù)通信兩種形式 異步通信     在這種通信方式中,接收器和發(fā)送器有各自的時(shí)鐘,它們的工作是非同步的,異步通信用一幀來(lái)表示一個(gè)字符,其內(nèi)容如下:一個(gè)起始位,僅接著是若干個(gè)數(shù)據(jù)位。    同步

28、通信格式中,發(fā)送器和接收器由同一個(gè)時(shí)鐘源控制,為了克服在異步通信中,每傳輸一幀字符都必須加上起始位和停止位,占用了傳輸時(shí)間,在要求傳送數(shù)據(jù)量較大的場(chǎng)合,速度就慢得多。同步傳輸方式去掉了這些起始位和停止位,只在傳輸數(shù)據(jù)塊時(shí)先送出一個(gè)同步頭(字符)標(biāo)志即可。     同步傳輸方式比異步傳輸方式速度快,這是它的優(yōu)勢(shì)。但同步傳輸方式也有其缺點(diǎn),即它必須要用一個(gè)時(shí)鐘來(lái)協(xié)調(diào)收發(fā)器的工作,所以它的設(shè)備也較復(fù)雜。串行數(shù)據(jù)通信的傳輸速率     串行數(shù)據(jù)傳輸速率有兩個(gè)概念,即每秒轉(zhuǎn)送的位數(shù)bps(bit per second)和每秒

29、符號(hào)數(shù)波特率(band rate),在具有調(diào)制解調(diào)器的通信中,波特率與調(diào)制速率有關(guān)。9串行口和控制寄存器單片機(jī)串行口寄存器結(jié)構(gòu)如圖3.5所示。sbuf為串行口的收發(fā)緩沖器,它是一個(gè)可尋址的專(zhuān)用寄存器,其中包含了接收器和發(fā)送器寄存器,可以實(shí)現(xiàn)全雙工通信。但這兩個(gè)寄存器具有同一地址(99h)。10mcs-51的串行數(shù)據(jù)傳輸很簡(jiǎn)單,只要向發(fā)送緩沖器寫(xiě)入數(shù)據(jù)即可發(fā)送數(shù)據(jù)。而從接收緩沖器讀出數(shù)據(jù)即可接收數(shù)據(jù)。移位時(shí)鐘ti發(fā)送中斷txd串行輸出接受sbuf輸入移位寄存器rxd串行輸入ri接受中斷發(fā)送sbuf系統(tǒng)總線(xiàn)   圖3.5 串行口寄存器結(jié)構(gòu)圖fig 3.5 the st

30、ring goes to deposit machine knot composition串行口控制寄存器:scon控制寄存器,它是一個(gè)可尋址的專(zhuān)用寄存器,用于串行數(shù)據(jù)的通信控制,單元地址是98h,其結(jié)構(gòu)格式如表3.1所示.表3.1 scon寄存器結(jié)構(gòu)table 3.1 the scon deposits machine structure    scon寄存器結(jié)構(gòu)scond7d6d5d4d3d2d1d0sm0sm1sm2rentb8rb8tiri位地址9fh9eh8dh9ch9bh9ah99h98h sm0、sm1:串行口工作方式控制位。 &

31、#160;sm0,sm1    工作方式            00      方式0            01      方式1     

32、0;      10      方式2            11      方式3 sm2:多機(jī)通信控制位。     多機(jī)通信是工作于方式2和方式3,sm2位主要用于方式2和方式3。接收狀態(tài),當(dāng)串行口工作于方式2或3,以及sm2=1時(shí),只有當(dāng)接收到第9位數(shù)據(jù)

33、(rb8)為1時(shí),才把接收到的前8位數(shù)據(jù)送入sbuf,且置位ri發(fā)出中斷申請(qǐng),否則會(huì)將接受到的數(shù)據(jù)放棄。11當(dāng)sm2=0時(shí),就不管第位數(shù)據(jù)是0還是1,都難得數(shù)據(jù)送入sbuf,并發(fā)出中斷申請(qǐng)。     工作于方式0時(shí),sm2必須為0。 ren:允許接收位。     ren用于控制數(shù)據(jù)接收的允許和禁止,ren=1時(shí),允許接收,ren=0時(shí),禁止接收。  tb8:發(fā)送接收數(shù)據(jù)位8。     在方式2和方式3中,tb8是要發(fā)送的即第9位數(shù)據(jù)位。在多機(jī)通信中同樣亦要傳輸這一位

34、,并且它代表傳輸?shù)牡刂愤€是數(shù)據(jù),tb8=0為數(shù)據(jù),tb8=1時(shí)為地址。  rb8:接收數(shù)據(jù)位8。     在方式2和方式3中,rb8存放接收到的第9位數(shù)據(jù),用以識(shí)別接收到的數(shù)據(jù)特征。  ti:發(fā)送中斷標(biāo)志位。     可尋址標(biāo)志位。方式0時(shí),發(fā)送完第8位數(shù)據(jù)后,由硬件置位,其它方式下,在發(fā)送或停止位之前由硬件置位,因此,ti=1表示幀發(fā)送結(jié)束,ti可由軟件清“0”。  ri:接收中斷標(biāo)志位。     可尋址標(biāo)志位。接收完第8位數(shù)據(jù)后,該位由硬件置

35、位,在其他工作方式下,該位由硬件置位,ri=1表示幀接收完成。電源管理寄存器pcon     pcon主要是為chmos型單片機(jī)的電源控制而設(shè)置的專(zhuān)用寄存器,單元地址是87h,其結(jié)構(gòu)格式如表3.2所示。表3.2pcon電源管理寄存器結(jié)構(gòu)table 3.2 the pcon power supply management deposits machine structure    pcon電源管理寄存器結(jié)構(gòu)pcond7d6d5d4d3d2d1d0位符號(hào)smod-gf1gf0pdidl  在chmos型單片機(jī)

36、中,除smod位外,其他位均為虛設(shè)的,smod是串行口波特率倍增位,當(dāng)smod=1時(shí),串行口波特率加倍。系統(tǒng)復(fù)位默認(rèn)為smod=0。3.3.2 ds1302時(shí)鐘 ds1302 是美國(guó)dallas公司推出的一種高性能、低功耗、帶ram的實(shí)時(shí)時(shí)鐘電路,它可以對(duì)年、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí),具有閏年補(bǔ)償功能,工作電壓為2.5v5.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兼容,但增加了主電源/后背電源雙電源引腳,

37、同時(shí)提供了對(duì)后背電源進(jìn)行涓細(xì)電流充電的能力。12ds1302的引腳排列,其中vcc1為后備電源,vcc2為主電源。在主電源關(guān)閉的情況下,也能保持時(shí)鐘的連續(xù)運(yùn)行。ds1302由vcc1或vcc2兩者中的較大者供電。當(dāng)vcc2大于vcc10.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接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,rst提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當(dāng)rst為高電平時(shí),

38、所有的數(shù)據(jù)傳送被初始化,允許對(duì)ds1302進(jìn)行操作。如果在傳送過(guò)程中rst置為低電平,則會(huì)終止此次數(shù)據(jù)傳送,i/o引腳變?yōu)楦咦钁B(tài)。上電運(yùn)行時(shí),在vcc2.5v之前,rst必須保持低電平。只有在sclk為低電平時(shí),才能將rst置為高電平。i/o為串行數(shù)據(jù)輸入輸出端(雙向),后面有詳細(xì)說(shuō)明。sclk始終是輸入端。 ds1302 的控制字如圖2所示??刂谱止?jié)的最高有效位(位7)必須是邏輯1,如果它為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é)總是從

39、最低位開(kāi)始輸出。 在控制指令字輸入后的下一個(gè)sclk時(shí)鐘的上升沿時(shí),數(shù)據(jù)被寫(xiě)入ds1302,數(shù)據(jù)輸入從低位即位0開(kāi)始。同樣,在緊跟8位的控制指令字后的下一個(gè)sclk脈沖的下降沿讀出ds1302的數(shù)據(jù),讀出數(shù)據(jù)時(shí)從低位0位到高位7。ds1302有12個(gè)寄存器,其中有7個(gè)寄存器與日歷、時(shí)鐘相關(guān),存放的數(shù)據(jù)位為bcd碼形式,其日歷、時(shí)間寄存器及其控制字。此外,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)

40、為一個(gè)8位的字節(jié),其命令控制字為c0hfdh,其中奇數(shù)為讀操作,偶數(shù)為寫(xiě)操作;另一類(lèi)為突發(fā)方式下的ram寄存器,此方式下可一次性讀寫(xiě)所有的ram的31個(gè)字節(jié),命令控制字為feh(寫(xiě))、ffh(讀)。 時(shí)鐘是單片機(jī)系統(tǒng)中不可或缺的。時(shí)鐘可以通過(guò)軟件實(shí)現(xiàn),當(dāng)時(shí)鐘只是系統(tǒng)的輔助功能時(shí),用大量的軟件來(lái)實(shí)現(xiàn)時(shí)鐘功能,會(huì)影響主要功能的實(shí)現(xiàn)或使軟件復(fù)雜化。本文介紹串行實(shí)時(shí)時(shí)鐘芯片ds1302,采用該芯片,單片機(jī)只需定時(shí)讀出芯片的時(shí)鐘,其余時(shí)間可作別的工作。ds1302的實(shí)時(shí)時(shí)鐘包括秒、分、小時(shí)、日、月、星期、年等信息,與單片機(jī)采用串行通信。時(shí)鐘可選24小時(shí)制或12小時(shí)制,可自動(dòng)調(diào)整閏年及月份、日期。讀寫(xiě)命令

41、字節(jié)的格式及讀寫(xiě)操作方式如圖1。最高位為“1”,允許寫(xiě)操作,為“0”,禁止寫(xiě)操作。ram/ck為“0”,表示讀寫(xiě)時(shí)鐘/日歷數(shù)據(jù),為“1”,表示讀寫(xiě)ram數(shù)據(jù)。a4a0為數(shù)據(jù)讀寫(xiě)的地址。r/w為“0”,表示可進(jìn)行寫(xiě)操作,為“1”則進(jìn)行讀操作。單字節(jié)操作需16個(gè)時(shí)鐘,前8個(gè)時(shí)鐘寫(xiě)命令字,后8個(gè)時(shí)鐘讀寫(xiě)數(shù)據(jù)。多字節(jié)突發(fā)模式讀寫(xiě),其命令字的地址a4a3a2a1a0=11111即可。其命令字的格式及操作方式如圖2。ds1302的時(shí)鐘/日歷數(shù)據(jù)格式為bcd碼,秒、分、小時(shí)、日、月、星期、年的地址分別為00h、01h、02h、03h、04h、05h、06h。寫(xiě)保護(hù)寄存器的地址a4a3a2a1a0=00111

42、,格式如圖3。wp為“0”,可對(duì)時(shí)鐘或ram進(jìn)行寫(xiě)操作。wp為“1”,禁止寫(xiě)任何寄存器。led數(shù)碼顯示用mc14499四位七段譯碼驅(qū)動(dòng)器,輸入為bcd碼,譯碼輸出直接驅(qū)動(dòng)led的各段。當(dāng)使能信號(hào)en為“0”時(shí),在時(shí)鐘clk的作用下,串行數(shù)據(jù)輸入端接收20位串行數(shù)據(jù),然后使en為“1”,將移位寄存器中的內(nèi)容裝入鎖存器。其數(shù)據(jù)格式如圖4。前4位數(shù)據(jù)為小數(shù)點(diǎn),后16位是4位數(shù)碼顯示器顯示的數(shù)據(jù)。mc14499級(jí)聯(lián)使用時(shí),小數(shù)點(diǎn)顯示無(wú)效,小數(shù)點(diǎn)代碼鎖存器需裝入全“1”。單片機(jī)選用microchip公司的pic16c63a,電路如圖5。本例中只顯示年、月、日、小時(shí)、分、秒等,不顯示星期,但對(duì)ds1302

43、的讀、寫(xiě)采用突發(fā)模式。為了保證讀、寫(xiě)時(shí)地址的連續(xù)性,在操作中設(shè)有星期的讀、寫(xiě)。程序中小數(shù)點(diǎn)位用“1111”填充,先輸入的第一字節(jié)是秒的bcd碼,第二字節(jié)是分的bcd碼,第三字節(jié)的低四位是小數(shù)點(diǎn)填充位“1111”,第三字節(jié)的高四位及第四字節(jié)的低四位是小時(shí)的bcd碼,依此類(lèi)推,顯示年、月、日、小時(shí)、分、秒需輸入8字節(jié)數(shù)據(jù),pic16c63a發(fā)送了8×8=64位數(shù)據(jù),三片mc14499實(shí)際接收60位,第八字節(jié)的高四位“1111”被移出,實(shí)現(xiàn)了mc14499的級(jí)聯(lián)。ds1302數(shù)據(jù)的讀取采用中斷方式,0.1秒讀取1次數(shù)據(jù)。時(shí)間/日歷的顯示每變化0.05秒顯示1次。實(shí)際上,在調(diào)試程序時(shí)可以不加

44、電容器,只加一個(gè)32.768khz 的晶振即可。只是選擇晶振時(shí),不同的晶振,誤差也較大。另外,還可以在上面的電路中加入ds18b20,同時(shí)顯示實(shí)時(shí)溫度。只要占用cpu一個(gè)口線(xiàn)即可。 lcd還可以換成led,還可以使用北京衛(wèi)信杰科技發(fā)展有限公司生產(chǎn)的10位多功能8段液晶顯示模塊lcm101,內(nèi)含看門(mén)狗(wdt)/時(shí)鐘發(fā)生器及兩種頻率的蜂鳴器驅(qū)動(dòng)電路,并有內(nèi)置顯示ram,可顯示任意字段筆劃,具有34線(xiàn)串行接口,可與任何單片機(jī)、ic接口。功耗低,顯示狀態(tài)時(shí)電流為2a (典型值),省電模式時(shí)小于1a,工作電壓為2.4v3.3v,顯示清晰。ds1302 與微處理器進(jìn)行數(shù)據(jù)交換時(shí),首先由微處理器向電路發(fā)送

45、命令字節(jié),命令字節(jié)最高位msb(d7)必須為邏輯1,如果d7=0,則禁止寫(xiě)ds1302,即寫(xiě)保護(hù);d6=0,指定時(shí)鐘數(shù)據(jù),d6=1,指定ram數(shù)據(jù);d5d1指定輸入或輸出的特定寄存器;最低位lsb(d0)為邏輯0,指定寫(xiě)操作(輸入), d0=1,指定讀操作(輸出)。     在ds1302的時(shí)鐘日歷或ram進(jìn)行數(shù)據(jù)傳送時(shí),ds1302必須首先發(fā)送命令字節(jié)。若進(jìn)行單字節(jié)傳送,8位命令字節(jié)傳送結(jié)束之后,在下2個(gè)sclk周期的上升沿輸入數(shù)據(jù)字節(jié),或在下8個(gè)sclk周期的下降沿輸出數(shù)據(jù)字節(jié)。     ds1302與ram相關(guān)的寄存器分為兩類(lèi):

46、一類(lèi)是單個(gè)ram單元,共31個(gè),每個(gè)單元組態(tài)為一個(gè)8位的字節(jié),其命令控制字為c0hfdh,其中奇數(shù)為讀操作,偶數(shù)為寫(xiě)操作;再一類(lèi)為突發(fā)方式下的ram寄存器,在此方式下可一次性讀、寫(xiě)所有的ram的31個(gè)字節(jié)。     要特別說(shuō)明的是備用電源b1,可以用電池或者超級(jí)電容器(0.1f以上)。雖然ds1302在主電源掉電后的耗電很小,但是,如果要長(zhǎng)時(shí)間保證時(shí)鐘正常,最好選用小型充電電池。可以用老式電腦主板上的3.6v充電電池。如果斷電時(shí)間較短(幾小時(shí)或幾天)時(shí),就可以用漏電較小的普通電解電容器代替。100 f就可以保證1小時(shí)的正常走時(shí)。ds1302在第一次加電后,必須進(jìn)行

47、初始化操作。初始化后就可以按正常方法調(diào)整時(shí)間。 1.每次上電,必須把秒寄存器高位(第7位)設(shè)置為0,時(shí)鐘才能走時(shí)。2.如果需要寫(xiě)入數(shù)據(jù)和時(shí)鐘日歷信息,必須把“寫(xiě)保護(hù)”寄存器設(shè)置成為0;內(nèi)存數(shù)據(jù)定義。bitcnt data 30h ; 數(shù)據(jù)位計(jì)數(shù)器bytecnt data 31h ; 數(shù)據(jù)字節(jié)計(jì)數(shù)器command data 32h ; 命令字節(jié)地址rcvdat data 40h ; 接收數(shù)據(jù)緩沖區(qū)xmtdat data 50h ; 發(fā)送數(shù)據(jù)緩沖區(qū);端口位定義io_data bit p1.1 ; 數(shù)據(jù)傳送總線(xiàn)sclk bit p1.0 ; 時(shí)鐘控制總線(xiàn)rst bit p1.2 ; 復(fù)位總線(xiàn)rs e

48、qu p1.3;確定具體硬件的連接方式 rw equ p1.4 ;確定具體硬件的連接方式e equ p1.5 ;確定具體硬件的連接方式org 0000hljmp start ;* ;main program org 0030hstart: clr rst mov sp,#2ah 現(xiàn)在流行的串行時(shí)鐘電路很多,如ds1302、 ds1307、pcf8485等。這些電路的接口簡(jiǎn)單、價(jià)格低廉、使用方便,被廣泛地采用。本文介紹的實(shí)時(shí)時(shí)鐘電路ds1302是dallas公司的一種具有涓細(xì)電流充電能力的電路,主要特點(diǎn)是采用串行數(shù)據(jù)傳輸,可為掉電保護(hù)電源提供可編程的充電功能,并且可以關(guān)閉充電功能。采用普通32.

49、768khz晶振。 圖3.6 ds1302時(shí)鐘流程圖fig3.6 ds1302 clock flow chart3.3.3 8位串入/并出移位寄存器74hc16474 hc164 利用先進(jìn)的矽-門(mén)的互補(bǔ)型金屬氧化半導(dǎo)體技術(shù)。它有標(biāo)準(zhǔn)互補(bǔ)型金屬氧化半導(dǎo)體集成電路的高噪音免疫和低功耗。8位串入/并出移位寄存器的引腳如圖3.9所示,它的功能表如表3.5所示。圖3.7 8位串入/并出移位寄存器74hc164的引腳圖fig 3.7 74hc164 the pin map表3.3 8位串入/并出移位寄存器74hc164的功能表table 3.3 74hc164 logic menu輸入輸出/mrclock

50、a bq0 q1 。 q7lxx xl l 。 lhlx xq00 q10 。 q70hh hh q0 n 。q7nhl xl q0 n 。q7nhx ll q0n 。q7n特征:典型的操作頻率: 50 兆赫茲典型的增殖延遲: 19 ns(對(duì) q 的時(shí)鐘)工作電壓范圍: 2-6v低電平輸入電流: 最大值1ua低電平時(shí)允許通過(guò)電流:最大值80ua (74hc系列)74ls164可實(shí)現(xiàn)串行輸入,并行輸出。其中a、b(第1、2腳)為串行數(shù)據(jù)輸入端,2個(gè)引腳按邏輯與運(yùn)算規(guī)律輸入信號(hào),一個(gè)輸入信號(hào)時(shí)可以并接。clk(第8腳)為時(shí)鐘輸入端,可連接到串行口的txd端。每一個(gè)時(shí)鐘信號(hào)的上升沿加到clk端時(shí),移

51、位寄存器移一位,8個(gè)時(shí)鐘脈沖過(guò)后,8位二進(jìn)制數(shù)全部移入74hc164中。/mr(第9腳)為復(fù)位端,當(dāng)/mr=0時(shí),移位寄存器各位歸0,只有當(dāng)/mr=1時(shí),時(shí)鐘脈沖才起作用。q0q7(第36和1013腳)并行輸出端分別接led顯示器的ag、dp各端對(duì)應(yīng)的引腳上。再來(lái)一個(gè)脈沖,第一個(gè)脈沖就會(huì)從最高位移出。4 系統(tǒng)軟件設(shè)計(jì)4.1 系統(tǒng)軟件總體設(shè)計(jì)思想本系統(tǒng)是以單片機(jī)的基本語(yǔ)言匯編語(yǔ)言來(lái)進(jìn)行軟件設(shè)計(jì),指令的執(zhí)行速度快,節(jié)省存儲(chǔ)空間。為了便于擴(kuò)展和更改,軟件的設(shè)計(jì)采用模塊化結(jié)構(gòu),使程序設(shè)計(jì)的邏輯關(guān)系更加簡(jiǎn)潔明了。使硬件在軟件的控制下協(xié)調(diào)運(yùn)作。單片機(jī)與ds1302通信,并讀取當(dāng)前的時(shí)間值,然后在數(shù)碼管顯示

52、出來(lái),分別顯示:年月日時(shí)分秒,顯示通過(guò)中斷的時(shí)間來(lái)實(shí)現(xiàn),通過(guò)164的移位來(lái)選通顯示的位,在中斷期間保持顯示狀態(tài),這樣才能讓數(shù)碼管顯示穩(wěn)定,另外5個(gè)164是串接在一起的,通過(guò)上升沿寫(xiě)入的方法,把查表查出來(lái)的課程表,移位顯示出來(lái),查表的方法是:先把ds1302的日期計(jì)算出對(duì)應(yīng)的星期,顯示表值=第一層第一周第一節(jié)值的地址+(星期-1)*(4(節(jié)課)*8(8*5=40個(gè)班)+(星期-1)*(4節(jié)課*5(8*5=40)+層數(shù)*224(一層一周的課程總值)公式為:disp_kcb(kcb_10+(currenttime.week-1)*32+(cs-1)*224);4.2 keil開(kāi)發(fā)軟件的介紹 keil

53、 單片機(jī)開(kāi)發(fā)中除必要的硬件外,同樣離不開(kāi)軟件,我們寫(xiě)的匯編語(yǔ)言源程序要變?yōu)閏pu可以執(zhí)行的機(jī)器碼有兩種方法,一種是手工匯編,另一種是機(jī)器匯編,目前已極少使用手工匯編的方法了。機(jī)器匯編是通過(guò)匯編軟件將源程序變?yōu)闄C(jī)器碼,用于mcs-51單片機(jī)的匯編軟件有早期的a51,隨著單片機(jī)開(kāi)發(fā)技術(shù)的不斷發(fā)展,從普遍使用匯編語(yǔ)言到逐漸使用高級(jí)語(yǔ)言開(kāi)發(fā),單片機(jī)的開(kāi)發(fā)軟件也在不斷發(fā)展,keil軟件是目前最流行開(kāi)發(fā)mcs-51系列單片機(jī)的軟件,這從近年來(lái)各仿真機(jī)廠商紛紛宣布全面支持keil即可看出。keil提供了包括c編譯器、宏匯編、連接器、庫(kù)管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開(kāi)發(fā)方案,通過(guò)一個(gè)集成開(kāi)發(fā)環(huán)境(

54、uvision)將這些部份組合在一起。運(yùn)行keil軟件需要pentium或以上的cpu,16mb或更多ram、20m以上空閑的硬盤(pán)空間、win98、nt、win2000、winxp等操作系統(tǒng)。掌握這一軟件的使用對(duì)于使用51系列單片機(jī)的愛(ài)好者來(lái)說(shuō)是十分必要的,如果你使用c語(yǔ)言編程,那么keil幾乎就是你的不二之選(目前在國(guó)內(nèi)你只能買(mǎi)到該軟件、而你買(mǎi)的仿真機(jī)也很可能只支持該軟件),即使不使用c語(yǔ)言而僅用匯編語(yǔ)言編程,其方便易用的集成環(huán)境、強(qiáng)大的軟件仿真調(diào)試工具也會(huì)令你事半功倍。 我們將通過(guò)一些實(shí)例來(lái)學(xué)習(xí)keil軟件的使用,在這一部份我們將學(xué)習(xí)如何輸入源程序,建立工程、對(duì)工程進(jìn)行詳細(xì)的設(shè)置,以及如何

55、將源程序變?yōu)槟繕?biāo)代碼。 (1) 系統(tǒng)概述 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)大的集成開(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ì)。 下面詳細(xì)介紹keil c51開(kāi)發(fā)系統(tǒng)各部分功能和使用。 (2)

56、 keil c51單片機(jī)軟件開(kāi)發(fā)系統(tǒng)的整體結(jié)構(gòu) c51工具包的整體結(jié)構(gòu),如圖(1)所示,其中uvision與i shell分別是c51 for windows和for dos的集成開(kāi)發(fā)環(huán)境(ide),可以完成編輯、編譯、連接、調(diào)試、仿真等整個(gè)開(kāi)發(fā)流程。開(kāi)發(fā)人員可用ide本身或其它編輯器編輯c或匯編源文件。然后分別由c51及a51編譯器編譯生成目標(biāo)文件(.obj)。目標(biāo)文件可由lib51創(chuàng)建生成庫(kù)文件,也可以與庫(kù)文件一起經(jīng)l51連接定位生成絕對(duì)目標(biāo)文件(.abs)。abs文件由oh51轉(zhuǎn)換成標(biāo)準(zhǔn)的hex文件,以供調(diào)試器dscope51或tscope51使用進(jìn)行源代碼級(jí)調(diào)試,也可由仿真器使用直接對(duì)

57、目標(biāo)板進(jìn)行調(diào)試,也可以直接寫(xiě)入程序存貯器如eprom中。4.2.1 keil 軟件開(kāi)發(fā)的流程對(duì)于剛剛使用keil的用戶(hù)來(lái)講,一般是按照下面的流程來(lái)完成開(kāi)發(fā)任務(wù)的。1) 建立工程2) 為工程選擇目標(biāo)器件3) 設(shè)置工程的配置參數(shù)4) 打開(kāi)/建立程序文件5) 編譯和連接工程6) 糾正程序中的書(shū)寫(xiě)和語(yǔ)法錯(cuò)誤并重新編譯連接7) 對(duì)程序中某些純軟件的部分使用軟件仿真驗(yàn)證8) 使用 tks 硬件仿真器對(duì)應(yīng)用程序進(jìn)行硬件仿真9) 將生成的 hex 文件燒寫(xiě)到 rom 中運(yùn)行測(cè)試 上面的流程只是一個(gè)標(biāo)準(zhǔn)的開(kāi)發(fā)流程,實(shí)際中用戶(hù)可能反復(fù)重復(fù)一個(gè)或幾個(gè)步驟。要點(diǎn)亮發(fā)光二極管,必須使單片機(jī)的i/o口p1.0輸出低電平。于是我們的任務(wù)就是編程序使p1.0輸出地電平。4.2.2 keil軟件的使用隨著單片機(jī)開(kāi)發(fā)技術(shù)的不斷發(fā)展,目前已有越來(lái)越多的人從普遍使用匯編語(yǔ)言到逐漸使用高級(jí)語(yǔ)言開(kāi)發(fā),其中主要是以c語(yǔ)言為主,市場(chǎng)上幾種常見(jiàn)的單片機(jī)均有其c語(yǔ)言開(kāi)發(fā)環(huán)境。 keil軟件是目最流行開(kāi)發(fā)80c51系列單片機(jī)的軟件,keil提供了包括c編譯器、宏匯編、連接器、庫(kù)管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開(kāi)發(fā)方案,通過(guò)一個(gè)集成開(kāi)發(fā)環(huán)境(µvision)將這些部份組合在一起。(1)按鍵識(shí)別通過(guò)按下一次按鍵,使向左移動(dòng)一位,直到最后一位,在向右移動(dòng)。

溫馨提示

  • 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ù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論