




已閱讀5頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
基于PIC的電子表設(shè)計(jì)與實(shí)現(xiàn)一、概述 近年來,國際市場上的單片機(jī)性能不斷增強(qiáng),價(jià)格卻日益下降。隨著我國加入WTO以及與國際市場接軌,世界許多著名半導(dǎo)體公司都在積極開拓我國市場,這使得國內(nèi)上市的單片機(jī)品種型號(hào)越來越多,價(jià)格也越來越低。這給單片機(jī)愛好者或初學(xué)者提供了豐富廉價(jià)的物質(zhì)基礎(chǔ),因此,有越來越多的在校學(xué)生、電子愛好者對(duì)單片機(jī)產(chǎn)生濃厚的興趣。單片機(jī)與常用的TTL、CMOS數(shù)字集成電路相比掌握起來不太容易,問題在于單片機(jī)具有智能化功能,不光要學(xué)習(xí)其硬件還要學(xué)習(xí)其軟件,而且軟件設(shè)計(jì)需要有一定的創(chuàng)造性。這雖然給學(xué)習(xí)者帶來一定的難度,但這也正是它的迷人之處,我們通過各種學(xué)習(xí)方式在短暫的時(shí)間內(nèi)掌握單片機(jī)應(yīng)用技術(shù)也是做得到的。通過對(duì)PIC單片機(jī)的認(rèn)真學(xué)習(xí),達(dá)到掌握和運(yùn)用PIC設(shè)計(jì)簡單系統(tǒng)的方法。選擇設(shè)計(jì)電子表,主要是為了進(jìn)一步熟練PIC的各個(gè)模塊的用法、MPLAB集成開發(fā)環(huán)境、編程方法和加強(qiáng)自己運(yùn)用PIC編程的能力,達(dá)到學(xué)以至用的目的。電子表是我們?nèi)粘S玫降谋夭豢缮俚碾娮悠骷私馄浣M成原理也有重要意義。(一)單片機(jī)的特點(diǎn)1高集成度,體積小,高可靠性 單片機(jī)將各功能部件集成在一塊晶體芯片上,集成度很高,體積自然也是最小的。芯片本身是按工業(yè)測控環(huán)境要求設(shè)計(jì)的,內(nèi)部布線很短,其抗工業(yè)噪音性能優(yōu)于一般通用的CPU。單片機(jī)程序指令,常數(shù)及表格等固化在ROM中不易破壞,許多信號(hào)通道均在一個(gè)芯片內(nèi),故可靠性高。 2控制功能強(qiáng) 為了滿足對(duì)對(duì)象的控制要求,單片機(jī)的指令系統(tǒng)均有極豐富的條件:分支轉(zhuǎn)移能力,I/O口的邏輯操作及位處理能力,非常適用于專門的控制功能。 3低電壓,低功耗,便于生產(chǎn)便攜式產(chǎn)品 為了滿足廣泛使用于便攜式系統(tǒng),許多單片機(jī)內(nèi)的工作電壓僅為1.8V3.6V,而工作電流僅為數(shù)百微安。 4易擴(kuò)展 片內(nèi)具有計(jì)算機(jī)正常運(yùn)行所必需的部件。芯片外部有許多供擴(kuò)展用的三總線及并行、串行輸入/輸出管腳,很容易構(gòu)成各種規(guī)模的計(jì)算機(jī)應(yīng)用系統(tǒng)。 5優(yōu)異的性能價(jià)格比 單片機(jī)的性能極高。為了提高速度和運(yùn)行效率,單片機(jī)已開始使用RISC流水線和DSP等技術(shù)。單片機(jī)的尋址能力也已突破64KB的限制,有的已可達(dá)到1MB和16MB,片內(nèi)的ROM容量可達(dá)62MB,RAM容量則可達(dá)2MB。由于單片機(jī)的廣泛使用,因而銷量極大,各大公司的商業(yè)競爭更使其價(jià)格十分低廉,其性能價(jià)格比極高。(二)單片機(jī)的發(fā)展歷史、趨勢及用處1.單片機(jī)發(fā)展簡史單片機(jī)作為微型計(jì)算機(jī)的一個(gè)重要分支,應(yīng)用面很廣,發(fā)展很快。自單片機(jī)誕生至今,已發(fā)展為上百種系列的近千個(gè)機(jī)種。如果將8位單片機(jī)的推出作為起點(diǎn),那么單片機(jī)的發(fā)展歷史大致可分為以下幾個(gè)階段: (1)第一階段(1976-1978)單片機(jī)的控索階段。以Intel公司的MCS 48為代表。MCS 48的推出是在工控領(lǐng)域的控索,參與這一控索的公司還有Motorola 、Zilog等,都取得了滿意的效果。這就是SCM的誕生年代,“單機(jī)片”一詞即由此而來。 (2)第二階段(1978-1982)單片機(jī)的完善階段。Intel公司在MCS 48 基礎(chǔ)上推出了完善的、典型的單片機(jī)系列MCS 51。它在以下幾個(gè)方面奠定了典型的通用總線型單片機(jī)體系結(jié)構(gòu)。 完善的外部總線。MCS-51設(shè)置了經(jīng)典的8位單片機(jī)的總線結(jié)構(gòu),包括8位數(shù)據(jù)總線、16位地址總線、控制總線及具有很多機(jī)通信功能的串行通信接口。 CPU外圍功能單元的集中管理模式。 體現(xiàn)工控特性的位地址空間及位操作方式。 指令系統(tǒng)趨于豐富和完善,并且增加了許多突出控制功能的指令。 (3)第三階段(1982-1990)8位單片機(jī)的鞏固發(fā)展及16位單片機(jī)的推出階段,也是單片機(jī)向微控制器發(fā)展的階段。Intel公司推出的MCS 96系列單片機(jī),將一些用于測控系統(tǒng)的模數(shù)轉(zhuǎn)換器、程序運(yùn)行監(jiān)視器、脈寬調(diào)制器等納入片中,體現(xiàn)了單片機(jī)的微控制器特征。隨著MCS 51系列的廣應(yīng)用,許多電氣廠商競相使用80C51為內(nèi)核,將許多測控系統(tǒng)中使用的電路技術(shù)、接口技術(shù)、多通道A/D轉(zhuǎn)換部件、可靠性技術(shù)等應(yīng)用到單片機(jī)中,增強(qiáng)了外圍電路路功能,強(qiáng)化了智能控制的特征。 (4)第四階段(1990)微控制器的全面發(fā)展階段。隨著單片機(jī)在各個(gè)領(lǐng)域全面深入地發(fā)展和應(yīng)用,出現(xiàn)了高速、大尋址范圍、強(qiáng)運(yùn)算能力的8位/16位/32位通用型單片機(jī),以及小型廉價(jià)的專用型單片機(jī)。 2.單片機(jī)的發(fā)展趨勢 目前,單片機(jī)正朝著高性能和多品種方向發(fā)展趨勢將是進(jìn)一步向著CMOS化、低功耗、小體積、大容量、高性能、低價(jià)格和外圍電路內(nèi)裝化等幾個(gè)方面發(fā)展。下面是單片機(jī)的主要發(fā)展趨勢。 CMOS化近年,由于CHMOS技術(shù)的進(jìn)小,大大地促進(jìn)了單片機(jī)的CMOS化。CMOS芯片除了低功耗特性之外,還具有功耗的可控性,使單片機(jī)可以工作在功耗精細(xì)管理狀態(tài),因?yàn)閱纹瑱C(jī)芯片多數(shù)是采用CMOS(金屬柵氧化物)半導(dǎo)體工藝生產(chǎn)。CMOS電路的特點(diǎn)是低功耗、高密度、低速度、低價(jià)格。采用雙極型半導(dǎo)體工藝的TTL電路速度快,但功耗和芯片面積較大。隨著技術(shù)和工藝水平的提高,又出現(xiàn)了HMOS(高密度、高速度MOS)和CHMOS工藝。CHMOS和HMOS工藝的結(jié)合。目前生產(chǎn)的CHMOS電路已達(dá)到LSTTL的速度,傳輸延遲時(shí)間小于2ns,它的綜合優(yōu)勢已在于TTL電路。因而,在單片機(jī)領(lǐng)域CMOS正在逐漸取代TTL電路。 低功耗化:單片機(jī)的功耗已從Ma級(jí),甚至1uA以下;使用電壓在36V之間,完全適應(yīng)電池工作。低電壓化:幾乎所有的單片機(jī)都有WAIT、STOP等省電運(yùn)行方式。允許使用的電壓范圍越來越寬,一般在36V范圍內(nèi)工作。低電壓供電的單片機(jī)電源下限已可達(dá)12V。 低噪聲與高可靠性:為提高單片機(jī)的抗電磁干擾能力,使產(chǎn)品能適應(yīng)惡劣的工作環(huán)境,滿足電磁兼容性方面更高標(biāo)準(zhǔn)的要求,各單片廠家在單片機(jī)內(nèi)部電路中都采用了新的技術(shù)措施。 大容量化:以往單片機(jī)內(nèi)的ROM為1KB4KB,RAM為64128B。目前,單片機(jī)內(nèi)ROM最大可達(dá)64KB,RAM最大為2KB。 高性能化:主要是指進(jìn)一步改進(jìn)CPU的性能,加快指令運(yùn)算的速度和提高系統(tǒng)控制的可靠性。采用精簡指令集(RISC)結(jié)構(gòu)和流水線技術(shù),可以大幅度提高運(yùn)行速度?,F(xiàn)指令速度最高者已達(dá)100MIPS(Million Instruction Per Seconds,即兆指令每秒),并加強(qiáng)了位處理功能、中斷和定時(shí)控制功能。小容量、低價(jià)格化:與上述相反,以4位、8位機(jī)為中心的小容量、低價(jià)格化也是發(fā)展動(dòng)向之一。這類單片機(jī)的用途是把以往用數(shù)字邏輯集成電路組成的控制電路單片化,可廣泛用于家電產(chǎn)品。 外圍電路內(nèi)裝化:這也是單片機(jī)發(fā)展的主要方向。隨著集成度的不斷提高,有可能把眾多的各種外圍功能器件集成在片內(nèi)。除了一般必須具有的CPU、ROM、RAM、定時(shí)器/計(jì)數(shù)器等以外,片內(nèi)集成的部件還有模/數(shù)轉(zhuǎn)換器、DMA控制器、聲音發(fā)生器、監(jiān)視定時(shí)器、液晶顯示驅(qū)動(dòng)器、彩色電視機(jī)和錄像機(jī)用的鎖相電路等。 串行擴(kuò)展技術(shù):在很長一段時(shí)間里,通用型單片機(jī)通過三總線結(jié)構(gòu)擴(kuò)展外圍器件成為單片機(jī)應(yīng)用的主流結(jié)構(gòu)。隨著半導(dǎo)體集成工藝的不斷發(fā)展,單片機(jī)的集成度將更高、體積將更小、功能將列強(qiáng)。3.單片機(jī)的用處單片機(jī)又稱單片微控制器,它不是完成某一個(gè)邏輯功能的芯片,而是把一個(gè)計(jì)算機(jī)系統(tǒng)集成到一個(gè)芯片上。概括的講:一塊芯片就成了一臺(tái)計(jì)算機(jī)。它的體積小、質(zhì)量輕、價(jià)格便宜、為學(xué)習(xí)、應(yīng)用和開發(fā)提供了便利條件。同時(shí),學(xué)習(xí)使用單片機(jī)是了解計(jì)算機(jī)原理與結(jié)構(gòu)的最佳選擇。 可以說,二十世紀(jì)跨越了三個(gè)“電”的時(shí)代,即電氣時(shí)代、電子時(shí)代和現(xiàn)已進(jìn)入的電腦時(shí)代。不過,這種電腦,通常是指個(gè)人計(jì)算機(jī),簡稱PC機(jī)。它由主機(jī)、鍵盤、顯示器等組成。還有一類大多數(shù)人不怎么熟悉的計(jì)算機(jī),。這種計(jì)算機(jī)就是把智能賦予各種機(jī)械的單片機(jī)(亦稱微控制器)。顧名思義,這種計(jì)算機(jī)的最小系統(tǒng)只用了一片集成電路,即可進(jìn)行簡單運(yùn)算和控制。因?yàn)樗w積小,通常都藏在被控機(jī)械的“肚子”里。它在整個(gè)裝置中,起著有如人類頭腦的作用,它出了毛病,整個(gè)裝置就癱瘓了?,F(xiàn)在,這種單片機(jī)的使用領(lǐng)域已十分廣泛,如智能儀表、實(shí)時(shí)工控、通訊設(shè)備、導(dǎo)航系統(tǒng)、家用電器等。各種產(chǎn)品一旦用上了單片機(jī),就能起到使產(chǎn)品升級(jí)換代的功效,常在產(chǎn)品名稱前冠以形容詞“智能型”,如智能型洗衣機(jī)等。單片機(jī)在民用和工業(yè)測控領(lǐng)域得到最廣泛的應(yīng)用。彩電、冰箱、空調(diào)、錄像機(jī)、VCD、遙控器、游戲機(jī)、電飯煲等無處不見單片機(jī)的影子,單片機(jī)早已深深地溶入我們每個(gè)人的生活之中。 單片機(jī)能大大地提高這些產(chǎn)品的智能性,易用性及節(jié)能性等主要性能指標(biāo),給我們的生活帶來舒適和方便的同時(shí),在工農(nóng)業(yè)生產(chǎn) 上也極大地提高了生產(chǎn)效率和產(chǎn)品質(zhì)量。二、電子表的構(gòu)成(一)電子表的構(gòu)成本次設(shè)計(jì)的電子表主要選用PIC單片機(jī)為核心,結(jié)合相關(guān)的元器件如共陰極LED數(shù)碼顯示器等,再配以相應(yīng)的軟件,達(dá)到制作簡易電子表的目的。(二)實(shí)驗(yàn)中所需的器材共陰極LED數(shù)碼顯示器、一只廉價(jià)的的廣泛用于電子表的32.6KHz微型石英晶體。(三)方案選擇與相關(guān)技術(shù) 本設(shè)計(jì)選用PIC單片機(jī)16F877的模塊定時(shí)器/計(jì)數(shù)器TMR1來實(shí)現(xiàn)定時(shí)、計(jì)數(shù)功能。由于TMR1自帶低頻功耗時(shí)基振蕩源,該性能適合要求有時(shí)時(shí)鐘功能,并且保持不間短走時(shí),同時(shí)要求能耗低到最低限度的應(yīng)用設(shè)計(jì)中。因此在本設(shè)計(jì)中,將TMR1用作低頻低功耗時(shí)基振蕩源,它可以工作于異步計(jì)數(shù)器模式,即使在單片機(jī)進(jìn)入睡眠狀態(tài),TMR1也可以持續(xù)運(yùn)行,當(dāng)TMR1溢出時(shí)將會(huì)產(chǎn)生中斷請(qǐng)求。在設(shè)計(jì)中,在TMR1自帶振蕩器的兩個(gè)外部引腳上跨接一只廉價(jià)的廣泛使用于電子手表的32.768KHz微型石英晶體,作為TMR1工作的時(shí)間基準(zhǔn)。在本實(shí)驗(yàn)中,由單片機(jī)控制數(shù)字I/O口A口控制點(diǎn)亮D口上外接的6個(gè)LED數(shù)碼管 ,D口控制其外接的6個(gè)LED數(shù)碼管掃描顯示時(shí)鐘的時(shí)、分、秒。B口高4位引腳外接4個(gè)按鍵,控制修改時(shí)鐘的時(shí)、分?jǐn)?shù)字。三、PIC16F87單片機(jī)簡介目前在世界一些著名的單片機(jī)產(chǎn)品系列中,PIC16F87X系列單片機(jī)是芯片內(nèi)部包含有外圍設(shè)備模塊數(shù)量最多的單片機(jī)品種之一。87X各款單片機(jī)的內(nèi)部結(jié)構(gòu)大同小異,以CPU為中心的核心區(qū)幾乎完全相同,不同的僅是Flash容量、RAM容量、EEPROM容量、外圍模塊種類和數(shù)量。其中877是PIC16F87X系列單片機(jī)中的“大哥哥”,它是只有40腳封裝的型號(hào),囊括了其它6款型號(hào)的所有功能。PIC16F877的芯片內(nèi)部集成了15個(gè)外圍設(shè)備模塊,這些外圍設(shè)備模塊在啟用時(shí)以及在工作過程中,都或多或少地需要CPU參與控制、協(xié)調(diào)或交換數(shù)據(jù)等各種服務(wù)工作。由于CPU的運(yùn)行速度非常高,而各個(gè)外圍設(shè)備模塊的工作速度卻非常低,況且這些外圍設(shè)備模塊也不是頻繁地要求CPU對(duì)其服務(wù)。因此,通常采取一種讓眾多外圍設(shè)備模塊共享1個(gè)CPU,并且能夠及時(shí)得到CPU服務(wù)的調(diào)度方法中斷。(一) PIC16F877的特性說明(1)采用高性能的RISC CPU核心(2)8位微電腦控制芯片(3)8K14Flash程序存儲(chǔ)器(4)5組I/O端口(A,B,C,D,E)(5)368Bytes數(shù)據(jù)存儲(chǔ)器及256Bytes的EEPROM數(shù)據(jù)存儲(chǔ)器(6)2組8位定時(shí)器TMR0,TMR2,及1組16位定時(shí)器TMR1(7)支持14個(gè)中斷處理(二)端口介紹PIC16F877總共有5個(gè)8位可獨(dú)立編程的通用并行輸入/輸出端口(可簡稱I/O口)。這5個(gè)端口之間不僅存在內(nèi)部結(jié)構(gòu)上的差異,而且同屬于一個(gè)端口的各引腳的內(nèi)部結(jié)構(gòu)也不盡相同.由于PIC16F877屬于8位單片機(jī),因此每個(gè)端口都由數(shù)量不超過8個(gè)引腳構(gòu)成。每個(gè)端口中的每跟引腳都可以用軟件的方式單獨(dú)編程,設(shè)定為輸出或者輸入引腳。1.端口A及與之相關(guān)的寄存器端口A是一個(gè)6位雙端口,它的基本輸入/輸出功能的基礎(chǔ)之上,復(fù)合了模/轉(zhuǎn)換器的模擬量輸入功能、A/D轉(zhuǎn)換器所需的外接參考電壓輸入功能、定時(shí)器/計(jì)數(shù)器TMR0的外部時(shí)鐘輸入功能、主同步串行端口MSSP的從動(dòng)選項(xiàng)擇信號(hào)輸入功能等。端口數(shù)據(jù)寄存器PORTA是一個(gè)可讀可寫的寄存器,也是一個(gè)用戶軟件與單片機(jī)引腳外接電路交換的界面。由于RA端口只有6個(gè)外接引腳,所以與之對(duì)應(yīng)的數(shù)據(jù)寄存器也就只有低6位有效,無效的兩位讀出時(shí)也將會(huì)返回0。相應(yīng)的數(shù)據(jù)方向寄存器是TRISA,它也只有低6位有效,無效的兩位讀出時(shí)也將會(huì)返回0。將TRISA寄存器的一位置1,把相應(yīng)的端口A引腳變?yōu)檩斎耄窗严鄳?yīng)的輸出驅(qū)動(dòng)器置高阻態(tài)方式。對(duì)TRISA寄存器的一位清零會(huì)把輸出鎖存器的內(nèi)容放到所選擇的引腳上。A/D轉(zhuǎn)換器控制寄存器ADCON1的低4位是可讀可寫的。它是定義A/D轉(zhuǎn)換器模塊輸入引腳功能分配的一個(gè)控制寄存器。與RA端口有牽連的只有低4位(PCFG3:PCFG0)。2.端口B及與之相關(guān)的寄存器RB端口是一個(gè)8位雙向I/O端口。它在基本輸入/輸出功能的基礎(chǔ)之上,除了每個(gè)引腳內(nèi)部增加了可統(tǒng)一編程的弱上拉電路,另外還復(fù)合的片載Flash低電壓編程所需的3個(gè)引腳、外部中斷輸入引腳、電平變化中斷功能等。端口數(shù)據(jù)寄存器PORTB與相應(yīng)的數(shù)據(jù)方向寄存器TRISB的功用與端口A的相應(yīng)寄存器是類似的。選項(xiàng)寄存器POTION_REG是一個(gè)可讀可寫的寄存器,包含著與TMR0、分頻器和端口RB有關(guān)的控制位。端口引腳RB0和外部中斷INT共用同一引腳,與該引腳有關(guān)的兩個(gè)控制位含義如下:(1)INTEDG:外部中斷INT觸發(fā)信號(hào)邊沿選擇位。1=選擇RB0/INT上升沿觸發(fā)有效;0=選擇RB0/INT下降沿觸發(fā)有效;(2) /RBPU:RB端口弱上拉電路使能控制位1=RB端口弱上拉電路禁止;0=RB端口弱上拉電路使能;圖表1 選項(xiàng)寄存器POTION_REG的控制位Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0/RBPUINTEDGT0CST0SEPSAPS2PS1PS0中斷控制寄存器INTCON是一個(gè)可讀可寫的寄存器,它將第一梯隊(duì)的3個(gè)中斷源的標(biāo)志位和屏蔽位(也稱使能位),以及PEIE和GIE囊括其中。不過與RB端口有關(guān)的位只有兩個(gè): RBIF:端口RB的引腳RB4RB7電平變化中斷標(biāo)志位。1=RB4RB7已經(jīng)發(fā)生了電平變化。(必須用軟件清0)0=RB4RB7尚未發(fā)生電平變化。 RBIE:端口RB的引腳RB4RB7電平變化中斷屏蔽位。1=允許端口RB產(chǎn)生的中斷;0=屏蔽端口RB產(chǎn)生的中斷;圖表2中斷控制寄存器INTCON的控制位Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0GIEPEIET0IEINTERBIET0IFINTFRBIF3.端口C及與之相關(guān)的寄存器RC端口也是一個(gè)8位雙向I/O端口。它在基本輸入/輸出功能的基礎(chǔ)之上,復(fù)合了多項(xiàng)較為復(fù)雜的功能,如定時(shí)器/計(jì)數(shù)器TMR1的外接時(shí)鐘功能、主同步串行端口MSSP的外接引腳等。另外每個(gè)腳內(nèi)部都設(shè)置了一個(gè)施密特觸發(fā)輸入緩沖器,對(duì)于輸入信號(hào)波形可以起到整形作用。端口數(shù)據(jù)寄存器PORTC與相應(yīng)的數(shù)據(jù)方向寄存器TRISC的功用與端口A的相應(yīng)寄存器是類似的。4.端口D及與之相關(guān)的寄存器RD端口是一個(gè)8位雙向I/O端口,它在基本輸入/輸出功能的基礎(chǔ)之上,復(fù)合了1項(xiàng)功能,即并行從動(dòng)端口。另外,每個(gè)引腳在作為I/O腳使用時(shí),是經(jīng)過施密特觸發(fā)緩沖器輸入的,而在工作于并行從動(dòng)端口方式時(shí),則是經(jīng)過TTL緩沖器輸入的。端口方向控制寄存器TRISE不是一個(gè)完全可讀可寫的寄存器。與RD端口有牽連的只有一個(gè)位PSPMODE控制位。當(dāng)該位置1,RD工作于并行從動(dòng)端口方式,當(dāng)該位清0時(shí),RD工作于通用I/O端口方式。(三)單片機(jī)的中斷 中斷就是當(dāng)計(jì)算機(jī)系統(tǒng)正在執(zhí)行某程序時(shí),出現(xiàn)某種特殊狀況,如有按鍵按下、定時(shí)時(shí)間到、發(fā)生電平變化等,此時(shí)CPU需要暫時(shí)停止當(dāng)前的程序,轉(zhuǎn)去執(zhí)行處理有按鍵按下、定時(shí)時(shí)間到或發(fā)生電平變化等情況的某段特定程序,待這段特定的程序執(zhí)行完畢之后,再回到原先的程序去執(zhí)行。中斷控制方式使CPU在平時(shí)可以利用充分的時(shí)間去處理主要事件,而當(dāng)外界有特殊情況需要處理時(shí)CPU也不會(huì)錯(cuò)過,這樣的工作效率較高,對(duì)于PIC單片機(jī)來說,一次中斷活動(dòng)的全過程大至可以歸納為以下幾個(gè)階段:中斷請(qǐng)求、中斷屏蔽、中斷響應(yīng)、現(xiàn)場保護(hù)、調(diào)查中斷源中斷處理、清除標(biāo)志、恢復(fù)現(xiàn)場、中斷返回其中第1、2、3、和9階段是由硬件自動(dòng)實(shí)現(xiàn)的,而4、5、6、7、8階段則是在編程中完成。1.與中斷功能有關(guān)的寄存器:與中斷功能有關(guān)的特殊功能寄存器共有6個(gè):選項(xiàng)寄存器OPTCON-REG、中斷控制寄存器INTCON、第1外圍設(shè)備中斷標(biāo)志寄存器PIR1、第1外圍設(shè)備中斷屏蔽寄存器(又稱中斷使能寄存器)PIE1、第2外圍設(shè)備中斷標(biāo)志寄存器PIR2和第2外圍設(shè)備中斷屏蔽寄存器PIE2。圖表3 與各中斷功能有關(guān)的寄存器的控制位寄存器名稱寄存器符號(hào)寄存器地址寄存器內(nèi)容Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0選項(xiàng)寄存器OPTION-REG81H/181H/RBPUINTEDGT0CST0SEPSAPS2PS1PS0中斷控制寄存器INTCON0BH/8B/10BH/18BHGIEPEIET0IEINTERBIET0IFINTFRBIF第1外設(shè)中斷標(biāo)志寄存器PIR10CHPSPIFADIFRCIFTXIFSSPIFCCP1IFTMR2IFTMR1IF第1外設(shè)中斷屏蔽寄存器PIE18CHPSPIEADIERCIETXIESSPIECCP1IETMR2IETMR1IE第2外設(shè)中斷標(biāo)志寄存器PIR20DH-REIFBCLIF-CCP2IF第2外設(shè)中斷屏蔽寄存器PIE28DH-EEIEBCLIE-CCP2IE2.CPU對(duì)中斷的處理: 不論各種中斷屏蔽位和全局中斷屏蔽位為何值,只要某一中斷源的中斷條件得到滿足,單片機(jī)就會(huì)向CPU發(fā)出中斷申請(qǐng),并將響應(yīng)的中斷標(biāo)志位置1,而該中斷是否能得到CPU的響應(yīng)則取決于和它相關(guān)的中斷屏蔽位的值。如果該中斷被一路放行,則中斷申請(qǐng)被遞交給CPU,CPU響應(yīng)中斷后,全局中斷屏蔽位GIE自動(dòng)由硬件清零,以免發(fā)生重復(fù)響應(yīng);然后由硬件自動(dòng)把當(dāng)前PC指針壓入堆棧,并把PC指針指向中斷失量地址0004H,從而進(jìn)入中斷服務(wù)程序開始執(zhí)行;中斷服務(wù)程序的開始,CPU先對(duì)有關(guān)寄存器進(jìn)行保護(hù),再檢查各個(gè)中斷源標(biāo)志位以確定是哪兒中斷源發(fā)生的申請(qǐng),把對(duì)應(yīng)的中斷標(biāo)志位清零并輸對(duì)應(yīng)的程序來執(zhí)行。中斷服務(wù)程序執(zhí)行完畢后,再執(zhí)行中斷返回指令“RETFIE”退出中斷,此時(shí),硬件自動(dòng)將保存在棧頂?shù)臄帱c(diǎn)地址彈回到PC指針中,使CPU返回繼續(xù)執(zhí)行被中斷的主程序。3.定時(shí)器/計(jì)數(shù)器TMR1模塊TMR1的主要用途:a) TMR1可以像TMR0那樣,用做時(shí)間定時(shí)器和事件計(jì)數(shù)器;b) 借助于自帶的低頻時(shí)基振蕩器,用來實(shí)現(xiàn)記錄和計(jì)算真實(shí)的年、月、日、時(shí)、分、秒的實(shí)時(shí)時(shí)鐘RTC功能;c) TMR1還可以與CCP模塊配合使用,實(shí)現(xiàn)輸入捕捉或輸出比較功能。(1)定時(shí)器/計(jì)數(shù)器TMR1的結(jié)構(gòu)TMR1是由2個(gè)8位寬的寄存器TMR1H和TMR1L組成的16位定時(shí)器/計(jì)數(shù)器,通過軟件可讀可寫。TMR1H:TMR1L從0000H遞增到FFFFH之后再返回到0000H時(shí),會(huì)產(chǎn)生高位溢出,同時(shí)將會(huì)產(chǎn)生溢出中斷標(biāo)志位TMR1IF(PIR1的位0)為1,如果此前相關(guān)的中斷使能控制位都被全能,還會(huì)引起CPU的中斷響應(yīng)。通過對(duì)中斷使能位TMR1IE(PIE1的位0)的置1或清0,可以允許或禁止CPU響應(yīng)TMR1溢出中斷。TMR1有兩種工作方式:定時(shí)器方式和計(jì)數(shù)器方式。其中計(jì)數(shù)器方式又同步計(jì)數(shù)器工作方式和異步計(jì)數(shù)器工作方式。TMR1的時(shí)鐘信號(hào)或觸發(fā)信號(hào)共有以下4種方式: 由內(nèi)部系統(tǒng)時(shí)鐘4分頻后獲取,即取自指令周期; 從RC0/T1OSO/T1CKI引腳獲??;從RC1/T1OSI/CCP2引腳獲?。?自帶振蕩器產(chǎn)生。 定時(shí)器/計(jì)數(shù)器TMR1可以工作在定時(shí)方式和計(jì)數(shù)器方式,這由它的時(shí)鐘源選擇位TMR1CS(TMR1控制寄存器T1CON的位1)確定。TMR1CS置0,選擇定時(shí)工作方式;TMR1CS置1,選擇計(jì)數(shù)工作方式。(2)定時(shí)器/計(jì)數(shù)器TMR1相關(guān)寄存器 TMR1控制寄存器T1CON是一個(gè)只用到低6位的可讀/寫的寄存器。最高兩位未用,讀出時(shí)返回0。圖表4 TMR1控制寄存器T1CON的控制位Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0T1CKPS1T1CKPS0T1OSCEN/T1SYNCTMR1CSTMR1ON其余各位的含義如下:Bit5:Bit4(T1CKPS1 T1CKPS0)分頻器分頻比選擇位。Bit3(T1OSCEN)TMR1自帶振蕩器使能位。1=允許TMR1振蕩器起振 ; 0=禁止TMR1振蕩器起振,非門的輸出端呈高阻態(tài);Bit(/T1SYNC)TMR1外部輸入時(shí)鐘與系統(tǒng)治時(shí)鐘同步控制位。TMR1工作于計(jì)數(shù)器方式(T1SYNC=1時(shí));1=TMR1外部輸入時(shí)鐘與系統(tǒng)治時(shí)鐘不保持同步;0= TMR1外部輸入時(shí)鐘與系統(tǒng)治時(shí)鐘保持同步; TMR1工作于定時(shí)器方式(T1SYNC=0時(shí),該位不起作用)。Bit1(TMR1CS)時(shí)鐘源選擇位。1=選擇外部時(shí)鐘源,即時(shí)鐘信號(hào)來源于外部引腳或者自帶振蕩器;0=選擇內(nèi)部時(shí)鐘源(fosc/4=Tcyc指令周期);Bit0(TMR1ON)使能控制位(這點(diǎn)優(yōu)于不能被關(guān)閉的TMR0)。1=啟用TMR1;0=關(guān)閉TMR1; 與定時(shí)器/計(jì)數(shù)器TMR1相關(guān)的其它寄存器:第一外設(shè)中斷標(biāo)志寄存器PIR1的位0(TMR1IF)為TMR1溢出標(biāo)志位。TMR1IF置1 TMR1發(fā)生溢出, TMR1未發(fā)生溢出。第一外設(shè)中斷屏蔽寄存器PIE1的位0(TMR1IE)為TMR1溢出中斷使能位。TMR1IE置1允許TMR1溢出后產(chǎn)生中斷,為0屏蔽TMR1溢出后產(chǎn)生的中斷。中斷寄存器INTCON的位7(GIE)為全局中斷總使能位。置1允許CPU響應(yīng)所有中斷源產(chǎn)生的中斷請(qǐng)求,置0禁止CPU響應(yīng)所有中斷源產(chǎn)生的中斷請(qǐng)求。INTCON的位6(PEIE)為外設(shè)中斷屏蔽位,置1允許CPU響應(yīng)來自第二級(jí)的中斷請(qǐng)求(TMR1為第二級(jí)的中斷),置0禁止CPU響應(yīng)來自第二級(jí)的中斷請(qǐng)求。四、硬件設(shè)計(jì)(一)硬件電路規(guī)劃 為了充分利用現(xiàn)有演示板上的電路元器件資源,在端口RA控制點(diǎn)亮D口上外接的6個(gè)LED數(shù)碼管,端口RD控制外接的6個(gè)LED數(shù)碼管顯示時(shí)間。端口RB高4位引腳外接4個(gè)按鍵,控制修改時(shí)鐘的時(shí)間時(shí)、分的數(shù)字。由于在應(yīng)用TMR1的自帶振蕩器時(shí),將會(huì)占用端口RC的部分引腳RC0/T1OSO和RC1/T1OSI,因此,端口RC上原有的8個(gè)發(fā)光二級(jí)管不方便再使用,在TMR1自帶振蕩器兩個(gè)外接引腳RC0/RC0/T1OSO和RC1/T1OSI上跨接一個(gè)廉價(jià)可以取自電子表的微型32.768KHz石英晶體和兩只15PF的瓷片電容器。單片機(jī)的系統(tǒng)時(shí)鐘采用電路板原帶的RC時(shí)基振蕩器外接阻容器件。要此設(shè)計(jì)中,采納RC振蕩器方式,既可以節(jié)省成本,又使得單片機(jī)具有更快的啟動(dòng)時(shí)間,也不會(huì)影響時(shí)鐘振蕩器互相獨(dú)立,其計(jì)數(shù)器的遞增速度完全與系統(tǒng)時(shí)鐘無關(guān)。(二)LED數(shù)碼管相關(guān)說明LED數(shù)碼管內(nèi)部包含8只發(fā)光二極管,其中7只發(fā)光二極管構(gòu)成字型筆段(ag),1只發(fā)光二極管構(gòu)成小數(shù)點(diǎn)(dp).對(duì)于任何一只發(fā)光二極管,只要陽極為高電平、陰極為低電平,并且電位差高于其閾值(約為1.72.1V)就會(huì)被點(diǎn)亮.根據(jù)各二極管公共端連接方式的不同,又有共陰極和共陽極LED數(shù)碼管之分,本次設(shè)計(jì)采用6只共陰極LED數(shù)碼管來顯示時(shí)鐘的時(shí)間.(三)振蕩器的選擇 單片機(jī)的系統(tǒng)時(shí)鐘(即主時(shí)鐘)采用電路板原帶的RC時(shí)基振蕩器外接阻容器件.在對(duì)于系統(tǒng)時(shí)鐘精度要求不嚴(yán)格的項(xiàng)目中,采用RC振蕩器方式,既可以節(jié)省成本,又使得單片機(jī)具有更快的啟動(dòng)時(shí)間,在此選擇這種方案并不會(huì)影響電子表的走時(shí)精度,因?yàn)門MR1自帶振蕩器與系統(tǒng)時(shí)鐘振蕩器互相獨(dú)立,其計(jì)數(shù)器的遞增速度完全與系統(tǒng)時(shí)鐘無關(guān).RC振蕩頻率隨著電源電壓VDD,RC值及工作環(huán)境溫度的變化而變化。同時(shí)由于工藝參數(shù)的差異,對(duì)不同芯片其振蕩器頻率將不同。另外,當(dāng)外接電容CEXT值較小時(shí),對(duì)振蕩器頻率的影響更大,當(dāng)然,我們也應(yīng)考慮電阻電容本身的容差對(duì)振蕩器頻率的影響。圖1 RC振蕩電路圖1所示的是RC振蕩電路,如果REXT低于2.2K,振蕩器將處于不穩(wěn)定工作狀態(tài),甚至停振。而REXT大于1M時(shí),振蕩器又易受噪聲、濕度、漏電流的干擾。因此,電阻REXT取值最好在3K100K范圍內(nèi)。在不接外部電容時(shí),振蕩器仍可工作,但為了抗干擾及保證穩(wěn)定性,建議接20PF以上的電容。PIC單片機(jī)片內(nèi)有一4分頻電路,從OSC1/CLKIN引腳輸入或RC振蕩器產(chǎn)生的振蕩頻率fOSC經(jīng)4分頻后從OSC2/CLKOUT引腳輸出4分頻信號(hào),該信號(hào)可用于測試或作為其它邏輯電路的同步信號(hào)。1.晶體的選擇對(duì)于一個(gè)高可靠性的系統(tǒng)設(shè)計(jì),晶體的選擇非常重要,尤其設(shè)計(jì)帶有睡眠喚醒(往往用低電壓以求低功耗)的系統(tǒng)。這是因?yàn)榈凸╇婋妷菏固峁┙o晶體的激勵(lì)功率減少,造成晶體起振很慢或根本就不能起振。這一現(xiàn)象在上電復(fù)位時(shí)并不特別明顯,原因時(shí)上電時(shí)電路有足夠的擾動(dòng),很容易建立振蕩。在睡眠喚醒時(shí),電路的擾動(dòng)要比上電時(shí)小得多,起振變得很不容易。在振蕩回路中,晶體既不能過激勵(lì)(容易振到高次諧波上)也不能欠激勵(lì)(不容易起振)。晶體的選擇至少必須考慮:諧振頻點(diǎn),負(fù)載電容,激勵(lì)功率,溫度特性,長期穩(wěn)定性。2.電容C1,C2的選擇(1)因?yàn)槊恳环N晶振都有各自的特性,所以最好按制造廠商所提供的數(shù)值選擇外部元器件。 (2)在許可范圍內(nèi),C1,C2值越低越好。C值偏大雖有利于振蕩器的穩(wěn)定,但將會(huì)增加起振時(shí)間。(3)應(yīng)使C2值大于C1值,這樣可使上電時(shí),加快晶振起振。五、軟件設(shè)計(jì)(一)設(shè)計(jì)思路對(duì)于TMR1的編程,既可以采用軟件查詢的方法,也可以采用中斷的方法,本設(shè)計(jì)選用中斷的方式。A口控制點(diǎn)亮D口上外接的6個(gè)LED數(shù)碼管及D口控制LED數(shù)碼管顯示時(shí)間的時(shí)、分、秒是由單片機(jī)執(zhí)行延時(shí)子程序循環(huán)控制的。B口上按鍵修改時(shí)鐘由單片機(jī)執(zhí)行延時(shí)程序查詢按鍵情況控制的。在主程序的初始化階段,以及在每次執(zhí)行中斷服務(wù)程序時(shí),都需要給TMR1賦一個(gè)初始值。該值的計(jì)算方法為:TMR1初始值=1000H-32768=65536-32768=32768=0080H因此,TMR1的初始值是80H,TMR1的初始值是00H,這樣就可以保證,在自帶振蕩器每產(chǎn)生32768個(gè)方波,TMR1就溢出一次。(二)設(shè)計(jì)中兩種情況產(chǎn)生的中斷1. PORTB端口最高的4個(gè)引腳(RB7RB4)在設(shè)為輸入模式時(shí),當(dāng)輸入電平由高到低或由低到高發(fā)生變化時(shí),可以讓單片機(jī)產(chǎn)生中斷。這就是通常所說的引腳狀態(tài)變化中斷。中斷控制寄存器INTCON的位0即RBIF是端口RB的引腳RB4RB7電平變化中斷標(biāo)志位,當(dāng)其為1時(shí),RB4RB7引腳已經(jīng)發(fā)生了電平變化,則用軟件清0并執(zhí)行相應(yīng)的中斷子程序,然后返回原先的程序去執(zhí)行. 在設(shè)計(jì)引腳中斷程序時(shí),有三個(gè)需要特別注意的地方。一是,在清除P0RTB中斷標(biāo)志位RBIF之前,必須安排一條必不可少的,以PORTB端口數(shù)據(jù)寄存器 PORTB為源寄存器的讀操作指令。放置這一指令的目的有時(shí)并不只是為了讀取有用的數(shù)據(jù),而是為了取消狀態(tài)變化的硬件信號(hào),以便順利清除RBIF標(biāo)志位,為下一次中斷做好準(zhǔn)備。二是,由于端口PORTB是引腳電子變化中斷,即無論引腳出現(xiàn)上升沿還是下降沿都會(huì)產(chǎn)生中斷請(qǐng)求,所以必須處理好不需要的虛假中斷。三是,一般都利用PIC單片機(jī)的引腳功能來檢測按鍵,所以必須處理好按鍵消抖的問題。引腳中斷程序設(shè)計(jì):(1) 在主程序里先設(shè)置有關(guān)的寄存器。設(shè)置TRISB寄存器,使RB7RB4相關(guān)的引腳處于輸入狀態(tài);如果需要弱上拉,通過OPTION_REG的第7位設(shè)置;BCF INTCON ,RBIFBSF INTCON ,RBIEBSF INTCON ,GIE(2)響應(yīng)狀態(tài)變化后的中斷服務(wù)程序。檢查RBIF是否為l,為l則是引腳變化引起的中斷;調(diào)用按鍵處理程序;清除RBIF標(biāo)志。2. 由定時(shí)器/計(jì)數(shù)器TMR1產(chǎn)生中斷。當(dāng)?shù)?外圍設(shè)備中斷標(biāo)志寄存器PIR1的位0(TMR1IF)即定時(shí)器/計(jì)數(shù)器TMR1模塊溢出中斷標(biāo)志位為1時(shí),TMR1溢出。用軟件清0,然后執(zhí)行相應(yīng)程序,最后返回。TMR1中斷程序設(shè)計(jì):(1)在程序里先設(shè)置有關(guān)的寄存器MOVLW 80H ;設(shè)置為1S溢初始值MOVWF TMR1HCLRF TMR1LCLRF INTCON(2)狀態(tài)變化后的中斷服務(wù)程序。檢查TMR1IE是否為1,為1則是TMR1發(fā)生溢出產(chǎn)生的中斷; BCF PIR1,TMR1IF ;軟件清0MOVLW 80H ,MOVWF TMR1H ;對(duì)TMR1裝載初始值(三)中斷的現(xiàn)場保護(hù)和恢復(fù)問題:中斷現(xiàn)場的保護(hù)是中斷技術(shù)中一個(gè)很重要的環(huán)節(jié)。在進(jìn)入中斷服務(wù)程序期間,只有返回地址,即程序計(jì)數(shù)器PC的值被自動(dòng)壓入堆棧。若需要保留其他寄存器的內(nèi)容,就得另想辦法。由于PIC單片機(jī)的指令系統(tǒng)中沒有像其他單片機(jī)那樣的PUSH(入棧)和POP(出棧)之類的指令,所以要用1段用戶程序來實(shí)現(xiàn)類似的功能。因?yàn)槭怯?段程序來實(shí)現(xiàn)現(xiàn)場保護(hù),而程序的執(zhí)行有可能會(huì)影響到W寄存器和STATUS寄存器,所以,首先應(yīng)該把這2個(gè)寄存器保護(hù)起來,然后再去保存其他用戶認(rèn)為有必要保護(hù)的寄存器。并且在PIC單片機(jī)中,中斷現(xiàn)場數(shù)據(jù)不是保留到芯片的堆棧存儲(chǔ)區(qū)中,而是保留在用戶自己選擇的一些文件寄存器(即RAM數(shù)據(jù)存儲(chǔ)器單元)中,當(dāng)然一般應(yīng)該選擇通用寄存器來保護(hù)現(xiàn)場。;保護(hù)現(xiàn)場程序1MOVWF W_TEMP ;復(fù)制W到它的臨時(shí)備份寄存器W_TEMP中 2SWAPF STATUS,W ;將STATUS寄存器高低半字節(jié)交換后放入W3CLRF STATUS ;不管當(dāng)前處在哪個(gè)體,都設(shè)置體0作當(dāng)前體 4MOVWF STATUS_TEMP ;保存STATUS到體0上的臨時(shí)寄存器STATUS_TEMP 5SWAPF STATUS_TEMP,W ;將STATUS_TEMP寄存器高低半字節(jié)交換后放入W ;恢復(fù)現(xiàn)場程序6MOVWF STATUS ;把W內(nèi)容移動(dòng)到STATUS寄存器,(同時(shí)也把當(dāng)前體恢復(fù)到原先的體上) 7SWAPFW_TEMP,F ;將W_TEMP內(nèi)容高低半字節(jié)交換后放回 8SWAPFW_TEMP,W ;再次將W_TEMP內(nèi)容高低半字節(jié)交換后放入W六、總結(jié) 本系統(tǒng)完成了簡易電子表的制作,LED數(shù)碼管能夠準(zhǔn)確無誤的進(jìn)行實(shí)時(shí)時(shí)間的顯示,并能實(shí)現(xiàn)時(shí)間可調(diào)功能。在此設(shè)計(jì)中,單片機(jī)的系統(tǒng)時(shí)鐘采用電路板原帶的RC時(shí)基振蕩器外接阻容器件并采納RC振蕩器方式,既節(jié)省成本,又使得單片機(jī)具有更快的啟動(dòng)時(shí)間,也不會(huì)影響時(shí)鐘振蕩器互相獨(dú)立,其計(jì)數(shù)器的遞增速度完全與系統(tǒng)時(shí)鐘無關(guān)。這樣就使整個(gè)系統(tǒng)簡潔,可靠性高,性能穩(wěn)定,本系統(tǒng)達(dá)到了設(shè)計(jì)的基本要求和發(fā)揮部分的要求。經(jīng)過本次設(shè)計(jì),我對(duì)PIC16F877單片機(jī)的應(yīng)用和其芯片功能有了更深層次的理解。單片機(jī)的實(shí)踐性很強(qiáng),自己實(shí)際動(dòng)手,實(shí)際體驗(yàn)其開發(fā)過程,這是至關(guān)重要的。在這次設(shè)計(jì)中還有欠缺的方面,我在今后的學(xué)習(xí)工作中會(huì)加以注意。附錄一 電子表的硬件電路原理圖附錄二 匯編程序流程1. 主程序流程圖主程序關(guān)閉TMR1向TMR1賦1S溢出初始值清出全部中斷標(biāo)志位及其使能位設(shè)置體1為當(dāng)前體清除所有外設(shè)中斷使能位設(shè)置D口、A口為輸出C口為輸出、RC0腳為輸入定義A口所有相關(guān)引腳為普通數(shù)字I/O腳設(shè)置B口高四位為輸入、低四位輸出使能TMR1體0為當(dāng)前體,開放全局中斷和外設(shè)、RB電平變化產(chǎn)生的中斷對(duì)A口、B口、D口賦初始值設(shè)置控制寄存器預(yù)分頻比為1:1,外部時(shí)鐘源、異步使能振蕩器時(shí)鐘清0計(jì)時(shí)子程序顯示子程序2. 中斷服務(wù)子程序流程圖中斷服務(wù)子程序SERV 保護(hù)現(xiàn)場W、STATUS是TMR1模塊溢出中斷調(diào)查中斷源是RB電平變化產(chǎn)生的中斷TMR1溢出中斷處理程序清除TMR1溢出中斷標(biāo)志位是其他情況引起的錯(cuò)誤操作,則不作任何處理,恢復(fù)現(xiàn)場子程序retfie0RB中斷處理程序清除RB中斷標(biāo)志位關(guān)閉TMR1對(duì)TMR1裝載初始值測試RB位4控制按鍵是否按下儀 否 是秒個(gè)位自加1調(diào)用延時(shí)子程序delay1 計(jì)時(shí)、顯示轉(zhuǎn)換寄存器位0置1再次測試RB位4控制按鍵是否按下員 否測試RB位5控制按鍵是否按下轉(zhuǎn)分個(gè)位修改子程序RB4Serv 是 恢復(fù)現(xiàn)場子程序retfie1 是 否 測試RB位6控制按鍵是否按下調(diào)用延時(shí)子程序delay1恢復(fù)現(xiàn)場子程序retfie0 是 否延時(shí)子程序delay1返回再次測試RB位5控制按鍵是否按下 否 是再次測試RB位6控制按鍵是否按下 是轉(zhuǎn)分十位修改子程序RB5Serv 否轉(zhuǎn)時(shí)個(gè)位修改子程序RB6Serv 是測試RB位7控制按鍵是否按下 否 是延時(shí)子程序delay1再次測試RB位7控制按鍵是否按下轉(zhuǎn)時(shí)十位修改子程序RB7Serv 否 是3. 時(shí)間顯示子程序流程圖 顯示子程序LEDSCAN將秒個(gè)位查表送D口顯示,D口控制點(diǎn)亮D口上右邊第一個(gè)數(shù)碼管調(diào)用時(shí)間延時(shí)子程序delay將秒十位查表送D口顯示,D口控制點(diǎn)亮D口上右邊第一個(gè)數(shù)碼管調(diào)用時(shí)間延時(shí)子程序delay將分個(gè)位查表送D口顯示,D口控制點(diǎn)亮D口上右邊第一個(gè)數(shù)碼管調(diào)用時(shí)間延時(shí)子程序delay將分十位查表送D口顯示,D口控制點(diǎn)亮D口上右邊第一個(gè)數(shù)碼管調(diào)用時(shí)間延時(shí)子程序delay將時(shí)個(gè)位查表送D口顯示,D口控制點(diǎn)亮D口上右邊第一個(gè)數(shù)碼管調(diào)用時(shí)間延時(shí)子程序delay將時(shí)十位查表送D口顯示,D口控制點(diǎn)亮D口上右邊第一個(gè)數(shù)碼管調(diào)用時(shí)間延時(shí)子程序delay測試計(jì)數(shù)、顯示轉(zhuǎn)換寄存器Count位0是否為0 是 否清0Count,返回到計(jì)數(shù)子程序LOOP 4. 計(jì)時(shí)子程序流圖程計(jì)時(shí)子程序LOOP 測試秒個(gè)位是否滿10 否 是秒十位自加1 測試秒十位是否滿6 否 是分個(gè)位自加1測試分個(gè)位是否滿10 否 是分十位自加1測試分十位是否滿6 否十個(gè)位自加1 是測試十個(gè)位是否滿4 否 是 測試十個(gè)位是否滿10測試十個(gè)位是否滿2 否 否 是 時(shí)鐘清0顯示子程序LEDSCAN 是十個(gè)位清0時(shí)十位自加1 附錄三 源程序LISTP=16F877A#INCLUDEP16F877.INC N1 EQU 30H ; 定義N1 、M1 為DELAY的外循環(huán)和循環(huán)內(nèi)變量 M1 EQU 31HN2 EQU 32H ;定義N2 、M2 為DELAY1的外循環(huán)和循環(huán)內(nèi)變量 M2 EQU 33HCOUNT EQU 20H ;定義計(jì)數(shù)、顯示轉(zhuǎn)換寄存器COUNT的地址SECEND_L EQU21H ;定義秒個(gè)位存儲(chǔ)地址SECEND_H EQU22H ;定義秒十位存儲(chǔ)地址MINUTE_L EQU23H ;定義分個(gè)位存儲(chǔ)地址MINUTE_H EQU24H ;定義分十位存儲(chǔ)地址HOUR_L EQU25H ;定義時(shí)個(gè)位存儲(chǔ)地址HOUR_H EQU26H ;定義時(shí)十位存儲(chǔ)地址W_TEMP EQU27H ;定義W保護(hù)寄存器地址STATUS_TEMP EQU28H ;定義STATUS保護(hù)寄存器地址;*復(fù)位向量和中斷向量*ORG 000H ;定義主程序存放區(qū)域的起始地址NOP ;設(shè)置一條ICD必須的空操作
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 六一攀巖活動(dòng)方案
- 六一活動(dòng)扶貧活動(dòng)方案
- 六一謝幕活動(dòng)策劃方案
- 六年級(jí)課堂激勵(lì)活動(dòng)方案
- 2025年陜西、山西、青海、寧夏高考政治試卷真題(含答案解析)
- 共創(chuàng)展覽搭建活動(dòng)方案
- 關(guān)于公司拓展活動(dòng)方案
- 游戲化教學(xué)在小學(xué)課堂的有效性
- 藝術(shù)課程思政協(xié)同化教學(xué)體系的策略及實(shí)施路徑
- 數(shù)字化時(shí)代大學(xué)生愛國主義教育的變革路徑
- 2025國開電大《個(gè)人與團(tuán)隊(duì)管理》形考任務(wù)1-10答案
- 湖南2024生地會(huì)考試卷及答案
- 2024小學(xué)語文教學(xué)及說課課件:六年級(jí)上冊《只有一個(gè)地球》
- 墻面干掛瓷磚技術(shù)交底
- 運(yùn)輸設(shè)備(鐵路車輛、軌道平車)專項(xiàng)安全檢查記錄表
- PLC裝配流水線模擬控制課程設(shè)計(jì)
- biggs學(xué)習(xí)策略問卷SPQ-英文版
- 新聞發(fā)布系統(tǒng)-需求規(guī)格說明書
- (完整word版)最新防雷裝置檢測工程質(zhì)量管理手冊
- DL_5000-2000_火力發(fā)電廠設(shè)計(jì)技術(shù)規(guī)程
- 四害密度監(jiān)測工作實(shí)施方案
評(píng)論
0/150
提交評(píng)論