出租車計價器系統(tǒng)的設計(共64頁)_第1頁
出租車計價器系統(tǒng)的設計(共64頁)_第2頁
出租車計價器系統(tǒng)的設計(共64頁)_第3頁
出租車計價器系統(tǒng)的設計(共64頁)_第4頁
出租車計價器系統(tǒng)的設計(共64頁)_第5頁
已閱讀5頁,還剩61頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、- PAGE 51 -出租車計價器設計PAGE 52PAGE 51摘要(zhiyo): 在交通發(fā)展迅速的今天,出租車是我們交通中不可缺少的工具。同時出租車中的計價器是必不可少(b b k sho)的一種設備。單片機技術(jsh)也得到了飛速發(fā)展,基于單片機的出租車計費器不僅可以解決電子系統(tǒng)小型化、低功耗、高可靠性等問題,而且其開發(fā)周期短、開發(fā)軟件投入少、芯片價格不斷降低,特別是對小批量、多品種的產(chǎn)品需求,單片機具有體積小、功能強可靠性高、價格低廉等一系列優(yōu)點,。出租車計價器系統(tǒng)設計的主要內(nèi)容是通過C51單片機上的數(shù)碼顯示器來模擬出租車計價器的路程顯示表,通過單片機上的鍵盤上的某些鍵來表示開始、

2、暫停、復位等功能。步驟如下:首先,程序開始做一些必要的初始化工作,等待鍵盤輸入。然后,啟動鍵按下(0)后LED數(shù)碼管開始記錄路程并顯示。最后,當需要停止是可按相應的鍵(F)對路程計數(shù)器進行暫停。而且還可以復位(E)。本設計主要了解應用單片機的定時器/計數(shù)器,以及中斷。這是一個比較小的系統(tǒng),故采用匯編語言來編輯。匯編語言是一種編譯型程序設計語言,它具有編譯速度快,占用系統(tǒng)空間小,具有一定的助記可讀性等特點。關鍵詞: C51單片機;8255;計價器; LED數(shù)碼管1設計(shj)內(nèi)容及要求1.1設計內(nèi)容(nirng)及要求(1)出租車里程測量:采用信號源產(chǎn)生脈沖(michng)模擬出租車計價傳感器

3、產(chǎn)生脈沖,設每產(chǎn)生100個脈沖出租車行駛1公里信號源脈沖頻率=1KHZ;(2)里程顯示為:*.*公里;(3)采用8255芯片管理鍵盤顯示。1.2框圖根據(jù)設計內(nèi)容及要求,設計框圖如圖1所示。本次設計的出租車計價器系統(tǒng)是由三部分組成,包括由光電傳感器為主的計程脈沖信號變換模塊、單片機80c51系統(tǒng)和LED顯示模塊。設計中使用的結(jié)構框圖如圖1.1所示傳感器變換電路顯示器單片機按鍵圖1.1設計框圖、1.1系統(tǒng)的組成1. 計程脈沖信號變換模塊計程脈沖信號變換模塊是以光電傳感器為主要功能部件,在出租車行駛過程中產(chǎn)生電脈沖信號,將對路程的計量轉(zhuǎn)換為對電脈沖信號的計量。本次的設計(shj)中,采用了光敏二極管

4、。車輪上安裝的光敏二極管間歇地接收到光信號,輸出電脈沖,再經(jīng)過放大整形電路,輸出標準TTL信號。1.2工作(gngzu)原理出租車計價是根據(jù)車所行駛的路程以及乘客乘車的時間段綜合決定(judng)的。出租車行駛總路程可以通過車輪的周長乘車輪旋轉(zhuǎn)圈數(shù)得到。即可計算得到車輪旋轉(zhuǎn)幾周出租車能行駛一公里的路程。因此,使用光電傳感器的目的就是方便地計量車輪旋轉(zhuǎn)的圈數(shù)??稍谲囕嗈D(zhuǎn)軸涂上白色條紋,其余部分涂成黑色,發(fā)光管照射轉(zhuǎn)軸。當轉(zhuǎn)軸轉(zhuǎn)動時,反光與不反光交替出現(xiàn),所以光電元件間斷地接收光的反射信號,輸出電脈沖。再經(jīng)過放大整形電路,輸出標準TTL信號。輸出的脈沖信號被接入到80C51單片機系統(tǒng)中,通過計算接

5、收到的脈沖個數(shù),計算出當前所行駛的路程。同時,根據(jù)不同的收費標準,選擇相應的起步價、單價等收費標準進行計算。1、電感式接近開關電感式接近開關屬于一種有開關量輸出的位置傳感器,它由LC高頻振蕩器和放大處理電路組成,利用金屬物體在接近這個能產(chǎn)生電磁場的振蕩感應頭時,使物體內(nèi)部產(chǎn)生渦流。這個渦流反作用于接近開關,使接近開關振蕩能力衰減,內(nèi)部電路的參數(shù)發(fā)生變化,由此識別出有無金屬物體接近,進而控制開關的通或斷。這種接近開關所能檢測的物體必須是金屬物體。電感式接近開關的工作圖如下:圖2.1 接近(jijn)開關工作流程圖2.、 光電開關光電開關主要采用了光電傳感器的基本特性設計而成。(如圖2.2)當有光

6、照射時,二極管PN結(jié)附近受光子轟擊,使被束縛在價帶中的電子獲得能量,遷躍到導帶成為自由電子,同時價帶中產(chǎn)生自由空穴(kn xu),這些電子空穴對,對多數(shù)載流子影響不大,而對少數(shù)載流子來說,其數(shù)目大大增加,在反向電壓的作用下,反向飽和(boh)漏電流增大,這時相當于光敏二極管導通,并且光照度愈大,光電流也愈大;當無光照射時,電路中僅有很小的反向飽和漏電流,二極管截止。圖2.2反射式光電開關OPTOISO1為光電傳感器使用VCC=5V電源(如圖2.3),可以安裝在出租車車輪處。當出租車在行進過程中,則車輪就會不斷對它遮擋,從而產(chǎn)生一系列脈沖。由于這些脈沖可能會被干擾,或者電平不穩(wěn)定,因此就需要增加

7、一個三級管(Q1)對信號進行放大。而74LS14是作為反相器的功能來使用,可以使OUT口輸出的脈沖符合TTL電平,直接可輸入到80C51的T0口。設計中以光電開關作為傳感器元件,并且在實現(xiàn)階段用函數(shù)信號發(fā)生器模擬光電傳感器實現(xiàn)計程(j chn)脈沖的形成。圖2.3 光電脈沖(michng)的轉(zhuǎn)換電路3.霍爾傳感器1里程(lchng)計算、計價單元的設計里程計算是通過安裝在車輪上的霍爾傳感器A44E檢測到的信號,送到單片機,經(jīng)處理計算,送給顯示單元的。其原理如圖21所示。由于(yuy)A44E 屬于(shy)開關(kigun)型的霍爾器件,其工作電壓范圍比較寬(4.518V),其輸出的信號符合T

8、TL 電平標準,可以直接接到單片機的IO 端口上,而且其最高檢測頻率可達到1MHZ。A44E 集成霍耳開關由穩(wěn)壓器A、霍耳電勢發(fā)生器(即硅霍耳片)B、差分放大器C、施密特觸發(fā)器D 和OC 門輸出E 五個基本部分組成。在輸入端輸入電壓CC V ,經(jīng)穩(wěn)壓器穩(wěn)壓后加在霍耳電勢發(fā)生器的兩端,根據(jù)霍耳效應原理,當霍耳片處在磁場中時,在垂直于磁場的方向通以電流,則與這二者相垂直的方向上將會產(chǎn)生霍耳電勢差H V 輸出,該H V 信號經(jīng)放大器放大后送至施密特觸發(fā)器整形,使其成為方波輸送到OC 門輸出。當施加(shji)的磁場達到工作(gngzu)點(即OP B )時,觸發(fā)器輸出(shch)高電壓(相對于地電位

9、),使三極管導通,此時OC 門輸出端輸出低電壓,通常稱這種狀態(tài)為開。當施加的磁場達到釋放點(即rP B )時,觸發(fā)器輸出低電壓,三極管截止,使OC 門輸出高電壓,這種狀態(tài)為關。這樣兩次電壓變換,使霍耳開關完成了一次開關動作。其集成霍耳開關外形及接線如圖23 所示。圖23 集成霍耳開關外形及接線我們選擇了P3.2 口作為信號的輸入端,內(nèi)部采用外部中斷0(這樣可以減少程序設計的麻煩),車輪每轉(zhuǎn)一圈(我們設車輪的周長是1 米),霍爾開關就檢測并輸出信號,引起單片機的中斷,對脈計數(shù),當計數(shù)達到1000 次時,也就是1 公里,單片機就控制將金額自動的加增加,其計算公式:當前單價 公里數(shù)=金額。3 單片機

10、80C51的簡介3.1 主芯片80C51的硬件資源3.1.1 單片機的概念單片機(microcontroller,又稱微控制器)是在一塊硅片上集成了各種( zhn)部件的微型計算機。這些部件包括中央處理器CPU、數(shù)據(jù)存儲器RAM、程序存儲器ROM、定時器/計數(shù)器和多種I/O接口電路。圖4-1是80C51單片機的基本(jbn)結(jié)構圖圖4-1 80C51結(jié)構方框圖a. 80C51單片機的結(jié)構(jigu)特點有以下幾點:8位CPU;片內(nèi)振蕩器及時(jsh)鐘電路;32根I/O線;外部(wib)存儲器ROM和RAM,尋址范圍各64KB;兩個(lin )16位的定時器/計數(shù)器;5個中斷源,2個中斷優(yōu)先級

11、全雙工串行口布爾處理器b. 定時器/計數(shù)器80C51內(nèi)部有兩個16位可編程定時器/計數(shù)器,記為T0和T1。16位是指它們都是由16個觸發(fā)器構成,故最大計數(shù)模值為2-1??删幊淌侵杆麄兊墓ぷ鞣绞接芍噶顏碓O定,或者當計數(shù)器來用,或者當定時器來用,并且計數(shù)(定時)的范圍也可以由指令來設置。這種控制功能是通過定時器方式控制寄存器TMOD來完成的.如果需要,定時器在計到規(guī)定的定時值時可以向CPU發(fā)出中斷申請,從而完成某種定時的控制功能。在計數(shù)狀態(tài)下同樣也可以申請中斷。定時器控制寄存器TCON用來負責定時器的啟動、停止以及中斷管理在定時工作時,時鐘由單片機內(nèi)部提供,即系統(tǒng)時鐘經(jīng)過12分頻后作為定時器的時鐘

12、。技術工作時,時鐘脈沖由TO和T1輸入。c. 中斷系統(tǒng)80C51的中斷系統(tǒng)允許接受五個獨立的中斷源,即兩個外部中斷申請,兩個定時器/計數(shù)器中斷以及一個串行口中斷。外部中斷申請通過INTO和INT1(即P3.2和P3.3)輸入,輸入方式可以是電平觸發(fā)(低電平有效),也可以是邊沿觸發(fā)(下降沿有效)。兩個定時器中斷請求是當定時器溢出時向CPU提出的,即當定時器由狀態(tài)1轉(zhuǎn)為全零時提出的。第五個中斷請求是由串行口發(fā)出的,串行口每發(fā)送完一個數(shù)據(jù)或接收完一個數(shù)據(jù),就可提出一次中斷請求。3.1.2 80C51的芯片(xn pin)引腳圖VCC:供電(n din)電壓。GND:接地(jid)。P0口:P0口為一

13、個8位漏極開路雙向I/O口,每腳可吸收8TTL門電流。當P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。圖4-2 80C51引腳圖P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部(wib)下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。P2口:P2口為一個內(nèi)部(nib)

14、上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。因此(ync)作為輸入時,P2口的管腳被外部拉低,將輸出電流,這是由于內(nèi)部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,P2口輸出地址的高八位。當對外部八位地址數(shù)據(jù)存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為

15、低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口也可作為AT80C51的一些特殊功能口,如下表所示: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ù)存儲器寫選通)P3.7 /RD(外部數(shù)據(jù)存儲器讀選通)P3口同時為閃爍編程和編程校驗接收一些控制信號。RST:復位輸入。當振蕩器復位器件(qjin)時,要保持RST腳兩個機器周期的高電平時間。ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電

16、平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期(zhuq)輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。PSEN:外部程序存儲器的選通信號(xnho)。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/

17、PSEN信號將不出現(xiàn)。EA/VPP:當/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1時,/EA將內(nèi)部鎖定為RESET;當/EA端保持高電平時,此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。XTAL2:來自反向振蕩器的輸出。3.1.3 使用I/O口的注意事項(1)P1,P2,P3口的輸出緩沖器可驅(qū)動4個LSTTL電路。對于HCMOS芯片單片機的I/O口,在正常情況下,可任意由TTL或NMOS電路驅(qū)動。HMOS及CMOS性的單片機I/O口

18、有集電極開路或漏極開路的輸出來驅(qū)動時,不必外加上拉電阻(2)對于(duy)74LS系列,CD4000系列以及一些大規(guī)模集成電路芯片(如8155,8253,8279等),都可以和MCS-51系列單片機直接接口。具體使用時,可以查閱有關器件手冊或參考典型電路(3)對一些線性組件,特別是應用鍵盤、碼盤、LED顯示器等輸入/輸出設備(sh ch sh bi)時,應當盡量增加驅(qū)動部分的容量,否則,單片機將提供不出足夠的驅(qū)動電流供給負載使用3.2 80C51中斷(zhngdun)系統(tǒng)所謂中斷,是指當計算機執(zhí)行正常程序時,系統(tǒng)中出現(xiàn)某些急需處理的異常情況和特殊情求,CPU暫停執(zhí)行現(xiàn)行程序,轉(zhuǎn)去對隨機發(fā)生地更

19、緊迫事件進行處理;處理完畢后,CPU自動返回原來的程序繼續(xù)執(zhí)行。中斷允許軟件設計不需要關心系統(tǒng)其他部分定時要求,算術程序不需要考慮隔幾個指令檢查I/O設備是否需要服務。相反,算術程序編寫時好像有無限的時間作算術運算而無其他工作在進行。若其它事件需要服務時,則通過中斷告訴系統(tǒng)。80C51單片機有5個中斷源,有兩個中斷優(yōu)先級,每個中斷源的優(yōu)先級可以編程控制。中斷允許受到CPU開中斷和中斷源開中斷的兩級控制。3.2.1 中斷源中斷源是指任何引起計算機中斷的事件,一般一臺機器允許有許多個中斷源。80C51系列單片機至少有5個中斷源。增加很少的硬件就可把各種硬件中斷源“線或”成為一個外部中斷輸入,然后再

20、順序檢索一起中斷的特定源。80C51單片機的5個中斷源是:外部中斷請求0,由(P3.2)輸入;外部中斷請求1,由(P3.3)輸入;片內(nèi)定時器/計數(shù)器0益處中斷請求;片內(nèi)定時器/計數(shù)器1溢出中斷請求;片內(nèi)串行口發(fā)送(f sn)/接收中斷請求;為了了解每個中斷源是否產(chǎn)生(chnshng)了中斷請求,中斷系統(tǒng)應設置許多個中斷請求觸發(fā)器(標志位)實現(xiàn)記憶。這些中斷源請求標志位分別(fnbi)有特殊功能寄存器TCON和SCON的相應位鎖存定時器/計數(shù)器控制寄存器TCON,它是一個八位的寄存器,各位如表4.1所示:表4.1 定時器/計數(shù)器控制寄存器TCONTF1TF0IE1IT1IE0IT0IT0,IT1

21、:外部中斷0、1觸發(fā)方式選擇位,由軟件設置。1是下降沿觸發(fā),0是電平觸發(fā)。IE0,IE1:外部終端0、1請求標志位。TF0,TF1:定時器/計數(shù)器0、1溢出中斷請求標志。3.2.2 中斷的控制中斷的控制主要實現(xiàn)中斷的開關管理和中斷優(yōu)先級的管理。這個管理主要通過對特殊功能寄存器IE和IP的編程實現(xiàn)。(1)中斷允許寄存器IE表4.2 中斷允許寄存器IEEA -ET2ESET1EX1ET0EX0EX0,EX1:外部終端0,1的中斷允許位。1是中斷開,0是中斷關ET0,ET1:定時器/計數(shù)器0、1溢出中斷允許位。1是開中斷,0是關中斷ES:串行口中斷允許位。1是中斷開,0是中斷關ET2:定時器/計數(shù)器

22、2溢出中斷位EA:CPU開/關中斷控制位。1是開中斷,0是關中斷(2)中斷優(yōu)先級寄存器IP表4.3 中斷優(yōu)先級寄存器IPPSPT1PX1PT0PX0若系統(tǒng)(xtng)中多個中斷源同時請求中斷,則CPU按中斷源的優(yōu)先級別,由高到低分別響應。80C51單片機有兩個中斷優(yōu)先級:高優(yōu)先級和低優(yōu)先級。每個中斷源都可以編程為高優(yōu)先級。這可以實現(xiàn)兩級中斷嵌套。嵌套的原則:一個正在執(zhí)行的中斷服務程序可以被高級的中斷請求中斷,而不能被同級或較低級的中斷請求中斷。兩級中斷通過使用IP寄存器設置,相應(xingyng)的位置1,則優(yōu)先級高,0則優(yōu)先級低。PX0、PX1:終端(zhn dun)0、1中斷優(yōu)先級控制;P

23、T0、PT1:定時器/計數(shù)器0、1中斷優(yōu)先級控制。PS:串行口中斷優(yōu)先級控制。80C51復位時,IP被清零,5個中斷源都在同一個優(yōu)先級。這時若其中幾個中斷源同時產(chǎn)生中斷請求,則CPU按照片內(nèi)硬件優(yōu)先級鏈路的順序相應中斷,硬件優(yōu)先級由高到低的順序是:外部終端0,定時器/計數(shù)器0,外部中斷1,定時器/計數(shù)器1串行口中斷。3.2.3 中斷響應80C51的CPU在每個機器周期采樣中斷源的中斷請求標志位,如果沒有上述阻止條件,則將在下一個機器周期響應被激活的最高級中斷請求。阻止條件如下:CPU正在處理同級或更高級的中斷;現(xiàn)行機器周期不是所執(zhí)行指令的最后一個機器周期;正在執(zhí)行的是RETI或者是訪問IE或I

24、P的指令;CPU在中斷響應之后完成如下操作:硬件清除相應的中斷標志位;執(zhí)行一條硬件子程序,保護斷點,并轉(zhuǎn)向中斷服務程序入口。結(jié)束中斷時執(zhí)行RETI指令,恢復斷點,返回主程序。80C51的CPU在相應中斷請求時,由硬件電路自動形成轉(zhuǎn)向與該中斷源對應(duyng)的中斷的服務程序入口地址。這種方法為硬件向量中斷法。各中斷源的中斷服務程序入口(r ku)地址如下:表4.4 中斷源的中斷服務程序入口(r ku)地址編號中斷源入口地址0外部終端00003H1定時器/計數(shù)器0000BH2外部終端10013H3定時器/計數(shù)器1001BH4串行口中斷0023H各中斷服務程序入口地址僅隔8個字節(jié),編譯器在這些地

25、址放入無條件轉(zhuǎn)移指令,跳到服務程序的實際地址。向量中斷包括把先前的程序計數(shù)指針推入堆棧,中斷服務程序很像其他子程序。當向量中斷發(fā)生時,硬件禁止所有中斷。此時表明外部中斷或定時器溢出的標志位由硬件清除。中斷服務程序的不同分支取決于中斷源。在重新允許全局CPU中斷EA之前,必須仔細清除各種標志。標志會引起立即地重復中斷。80C51對終端實際上有特殊的返回指令RETI。不是RET。RETI重新允許系統(tǒng)識別其他中斷。因而,沒必要在正常使用中斷時復位EA,只要在程序初始化時開中斷一次就可以了。3.3 單片機定時器/計數(shù)器的使用80C51系列單片機至少有兩個16位內(nèi)部定時器/計數(shù)器。8952有三個定時器/

26、計數(shù)器,其中連個基本定時器/計數(shù)器是定時器/計數(shù)器0和定時器/計數(shù)器1。他們既可以編程為定時器使用,也可以編程為計數(shù)器使用。若是計數(shù)內(nèi)部晶振驅(qū)動時鐘,則它是定時器;若是計數(shù)80C51的輸入引腳的脈沖信號,則它是計數(shù)器。80C51的T/C時加一計數(shù)的。定時器實際上也是工作在技術方式下的,只不過對固定頻率的脈沖計數(shù);由于脈沖周期固定,由計數(shù)值(shz)可以計算出時間,有定時功能。當T/C工作在定時器時,對振蕩源12分頻(fn pn)的脈沖計數(shù),即每個機器周期計數(shù)值加一,頻率加=fosc/12。晶振為6MHz,計數(shù)頻率=500KHz,每2uS計數(shù)加一。當T/C工作在計數(shù)器時,計數(shù)脈沖來自外部脈沖輸入

27、(shr)引腳T0或T1。當T0或T1腳上負跳變需2個機器周期,即24個振蕩周期。所以T0或T1腳輸入的計數(shù)外部脈沖的最高頻率為fosc/12。當晶振為12MHz時,最高技術頻率為500KHz,高于此頻率將計數(shù)出錯。3.3.1 與T/C有關的特殊功能寄存器(1)計數(shù)寄存器TH和TLT/C是16位的,計數(shù)寄存器有TH高8位TL低8位構成。在特殊功能寄存器中,對應T/C0為TH0和TL0;對應T/C1為TH1和TL1。定時器/計數(shù)器的初始值通過TH1/TL1和TH0/TL0設置(2)定時器/計數(shù)器控制寄存器TCON表4.5 定時器/計數(shù)器控制寄存器TCONTR1TR0TR0、TR1:定時器/計數(shù)器

28、0、1啟動控制位。1是啟動,0是停止TCON復位后清零,T/C需要受到軟件控制才能啟動計數(shù);當計數(shù)計滿時,產(chǎn)生向高位的進位TF,即溢出中斷請求標志T/C的方式控制寄存器TMOD表4.6 T/C的方式控制寄存器TMODGATEC/TM1M0GATEC/TM1M0C/T:計數(shù)器或定時器選擇位。1位計數(shù)器,0位定時器GATE:門控信號。1時T/C的啟動控制受到雙重控制,即要求(yoqi)TR0/TR1和INT0/INT1同時為高;0時T/C的啟動僅受TR0/TR1控制。表4.7 M1和M0工作(gngzu)方式選擇位M1 M0方式功能0 00為13位定時器/計數(shù)器,TL存低5位,TH存高8位0 11

29、為16定時器/計數(shù)器,TL存低8,TH存高8位1 02常數(shù)自動裝入的8位定時器/計數(shù)器1 13僅適用于T/C0,兩個8為定時器/計數(shù)器3.3.2 定時器/計數(shù)器的初始化(1)初始化步驟(bzhu)在使用80C51的定時器/計數(shù)器前,應對它進行編程初始化,主要是對TCON和TMOD編程,還需要計算和裝載T/C的計數(shù)初值。一般完成以下幾個步驟:確定T/C的工作方式編程TMOD寄存器。計算T/C中的計數(shù)初值,并裝載到TH和TL。T/C在中斷方式工作時,須開CPU中斷和源中斷編程IE寄存器。啟動定時器/計數(shù)器編程TCON中TR1和TR0位(2)計數(shù)初值的計算在定時器方式下,T/C是對機器周期脈沖計數(shù)的

30、,如果fosc=6MHz,一個機器周期為2us,則方式0 13位定時器最大時間間隔=(2-1)2us=16.384ms;方式1 16位定時器最大時間間隔=(2-1)2us=131.072ms;方式2 8 位定時器最大時間間隔=(2-1)2us=512us若使T/C工作在定時器方式1,要求定時1ms,求計數(shù)初值。如設計數(shù)初值為x,則有(2-1)2us=1000usx=2-500因此,TH,TL可置65536-500。2系統(tǒng)組成(z chn)及工作原理2.1控制單元(dnyun)設計按鍵(n jin)名稱,O鍵表示開始計算路程;F鍵表示暫停;E鍵表示復位。 當程序開始運行后,按下0鍵則表示開始計算

31、路程,并由數(shù)碼管顯示出來;按下F鍵則路程記數(shù)器暫停,并顯示當前路程,當按下E鍵則復位。2.2輸出單元設計 通過六個8段LED數(shù)碼管來顯示路程。前四個分別表示千位、百位、十位、個位,而后兩個表示十分位和百分位。2.3定時器的功能和使用方法 首先選擇方式1為16位的定時器,其初始化具體如下: s其中fosc為晶振頻率,定時時間。3電路方案設計3.1電路設計方案使用單片機來完成設計要求。電路包括顯示電路,設置電路,存儲電路,復位電路,其工作原理圖如圖2所示,單片機功能強大,用較少的硬件和適當?shù)能浖嗷ヅ浜峡梢院苋菀椎膶崿F(xiàn)設計要求,且靈活性強,可以通過軟件編程來完成更多的附加功能。針對計費模式的切換,

32、通過軟件編程就可以輕容易的實現(xiàn)。避免了機械開關帶來的不穩(wěn)定因素,單片機單元框圖如圖3所示。顯示電路 路程顯示設置電路系統(tǒng)復位存儲電路系統(tǒng)開始系統(tǒng)暫停 單 片 機圖2 工作原理(yunl)框圖 CPU數(shù)碼管顯示功能按鍵時鐘電路8255并行編程圖3 單片機單元(dnyun)框圖3.2單元(dnyun)電路設計3.2.1復位(f wi)電路設計在單片機的應用系統(tǒng)中,除單片機本身需復位以外,外部擴展的I/O接口電路等也需要復位,因此需要一個系統(tǒng)的同步復位信號:即單片機復位后,CPU開始工作時,外部的電路一定要復位好,以保證CPU有效的對外部電路進行初始化編程。51系列單片機的復位端RST是一個施密特觸

33、發(fā)輸入,高電平有效。復位電路產(chǎn)生的復位信號經(jīng)施密特電路整形后作為系統(tǒng)復位信號,加到51系列單片機和外部I/O接口電路的復位端.其電路圖如圖4所示,其中R1=47K,R2=100,C=10uF。圖4 復位(f wi)電路3.2.2時鐘(shzhng)電路設計80C51系列單片機內(nèi)部有一個可控制的反相(fn xin)放大器,引腳XTAL1、XTAL2為反相放大器的輸入端和輸出端,在XTAL1、XTAL2上外接晶振(或陶瓷諧振器)和電容便組成振蕩器。具體的時鐘電路如圖5所示。電容1、2的典型值為30pF+10pF(晶振)或40pF+10pF(陶瓷諧振器)。振蕩器頻率主要取決與晶振(或陶瓷諧振器)的頻

34、率,但必須小于器件所允許的最高頻率。振蕩器的工作受控制,復位后0(1)振蕩器工作,可由軟件置1,使振蕩器停止振蕩,從而使整個單片機停止工作,以達到節(jié)電的目的。圖3.2 時鐘(shzhng)電路圖5 時鐘(shzhng)電路3.2.3單片機最小系統(tǒng)(xtng)主控機系統(tǒng)采用了Atmel 公司生產(chǎn)的80C51 單片機,它含有128 字節(jié)數(shù)據(jù)存儲器,內(nèi)置4K 的電可擦除FLASH ROM,可重復編程,大小滿足主控機軟件系統(tǒng)設計,所以不必再擴展程序存儲器。復位電路和晶振電路是80C51 工作所需的最簡外圍電路。80C51 的復位端是一個史密特觸發(fā)輸入,高電平有效,而系統(tǒng)中的時鐘接口和CAN 總線接口的

35、復位信號都是低電平有效。在復位電路中,按一下復位開關就使在RS端出現(xiàn)一段時間的高電平,經(jīng)過74LS14 的一次反相整形,提供給單片機復位端。再經(jīng)過一次反相整形,通過I/ORST 端提供給外部接口電路。外接12M 晶振和兩個20P 電容組成系統(tǒng)的內(nèi)部時鐘電路。3.3 8255A鍵盤(jinpn)顯示電路設計8255的數(shù)據(jù)線片選信號線、地址線、讀寫控制線等分別與系統(tǒng)總線相連,其A、B、C三個端口以排針形式引出(yn ch),供8255實驗使用,如圖6所示。 圖6 系統(tǒng)(xtng)中的8255線路采用8255擴展I/O口所謂可編程的接口芯片是指其功能可由微處理機的指令來加以改變的接口芯片,利用編程的

36、方法,可以使一個接口芯片執(zhí)行不同的接口功能。目前,各生產(chǎn)廠家已提供了很多系列的可編程接口,MCS-51單片機常用的兩種接口芯片是8255以及8155,本書主要介紹這兩種芯片在51單片機中的使用。8255和MCS-51相連(xin lin),可以為外設提供三個8位的I/O端口:A口、B口和C口,三個端口的功能(gngnng)完全由編程來決定。8255的內(nèi)部結(jié)構和引腳圖(1)A口、B口和C口。A口、B口和C口均為8位I/O數(shù)據(jù)(shj)口,但結(jié)構上略有差別。A口由一個8位的數(shù)據(jù)輸出緩沖/鎖存器和一個8位的數(shù)據(jù)輸入緩沖/鎖存器組成。B口由一個8位的數(shù)據(jù)輸出緩沖/鎖存器和一個8位的數(shù)據(jù)輸入緩沖器組成。

37、三個端口都可以和外設相連,分別傳送外設的輸入/輸出數(shù)據(jù)或控制信息。 (2) A、B組控制電路。這是兩組根據(jù)(gnj)CPU的命令字控制(kngzh)8255工作(gngzu)方式的電路。A組控制A口及C口的高4位,B組控制B口及C口的低4位。 (3) 數(shù)據(jù)緩沖器。這是一個雙向三態(tài)8位的驅(qū)動口,用于和單片機的數(shù)據(jù)總線相連,傳送數(shù)據(jù)或控制信息。(4) 讀/寫控制邏輯。這部分電路接收MCS-51送來的讀/寫命令和選口地址,用于控制對8255的讀/寫。 2) 引腳 (1) 數(shù)據(jù)線(8條):D0D7為數(shù)據(jù)總線,用于傳送CPU和8255之間的數(shù)據(jù)、命令和狀態(tài)字。 (2) 控制線和尋址線(6條)。 RESE

38、T:復位信號,輸入高電平有效。一般和單片機的復位相連,復位后,8255所有內(nèi)部寄存器清0,所有口都為輸入方式。/RE和/WR:讀/寫信號線,輸入(shr),低電平有效。當為0時(必為1),所選的8255處于(chy)讀狀態(tài),8255送出信息(xnx)到CPU。反之亦然。cs:片選線,輸入,低電平有效。A0、A1:地址輸入線。當=0,芯片被選中時,這兩位的4種組合00、01、10、11分別用于選擇A、B、C口和控制寄存器。(3)I/O口線(24條):PA0PA7、PB0PB7、PC0PC7為24條雙向三態(tài)I/O總線,分別與A、B、C口相對應,用于8255和外設之間傳送數(shù)據(jù)。(4) 電源線(2條)

39、:VCC為+5 V,GND為地線。 2. 8255的控制字8255的三個端口具體工作在什么方式下,是通過CPU對控制口的寫入控制字來決定的。8255有兩個控制字:方式選擇控制字和C口置/復位控制字。用戶通過程序把這兩個控制字送到8255的控制寄存器(A0A1=11),這兩個控制字以D7來作為標志。1) 方式選擇控制字方式選擇控制字的格式和定義如圖6.18(a)所示。例7.5 設8255控制(kngzh)字寄存器的地址為F3H,試編程使A口為方式(fngsh)0輸出(shch),B口為方式0輸入,PC4PC7為輸出,PC0PC3為輸入。其程序為MOV R0,#0F3H MOV A,#83H MO

40、VX R0, A 2) C口置/復位控制字C口置/復位控制字的格式和定義如圖6.18(b)所示。C口具有位操作功能,把一個置/復位控制字送入8255的控制寄存器,就能將C口的某一位置1或清0而不影響其它位的狀態(tài)。圖7.18 8255控制(kngzh)字的格式和定義 例7.6 仍設8255控制(kngzh)字寄存器地址為F3H,下述程序(chngx)可以將PC1置1,PC3清0。MOV R0,#0F3HMOV A,#03HMOVX R0, AMOV A,#06HMOVX R0, A3. 8255的工作方式8255有三種工作(gngzu)方式:方式0、方式(fngsh)1、方式(fngsh)2。方

41、式的選擇是通過上述寫控制字的方法來完成的。(1) 方式0(基本輸入/輸出方式):A口、B口及C口高4位、低4位都可以設置輸入或輸出,不需要選通信號。單片機可以對8255進行I/O數(shù)據(jù)的無條件傳送,外設的I/O數(shù)據(jù)在8255的各端口能得到鎖存和緩沖。(2) 方式1(選通輸入/輸出方式):A口和B口都可以獨立的設置為方式1,在這種方式下,8255的A口和B口通常用于傳送和它們相連外設的I/O數(shù)據(jù),C口作為A口和B口的握手聯(lián)絡線,以實現(xiàn)中斷方式傳送I/O數(shù)據(jù)。C口作為聯(lián)絡線的各位分配是在設計8255時規(guī)定的,分配表如表7.3所示。表7.3 8255C口聯(lián)絡信號分配表C口各位方式1方式2輸入方式輸出方

42、式雙向方式PC0INTRBINTRB由B口方式?jīng)Q定PC1IBFB由B口方式?jīng)Q定PC2SETB由B口方式?jīng)Q定PC3INTRAINTRBINTRAPC4I/OPC5IBFAI/OIBFAPC6I/OPC7I/OI/O口線:可以根據(jù)用戶需要(xyo)連接外部設備。圖6.19中,A口作輸出(shch),接8個發(fā)光(f un)二極管LED;B口作輸入,接8個按鍵開關;C口未用。圖7.19 8051和8255的接口(ji ku)電路 2) 地址(dzh)確定 8051A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0

43、P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.08255A1A0A口:000B口:001C口:010控制(kngzh)口:011根據(jù)上述接法,8255的A、B、C以及控制(kngzh)口的地址分別為0000H、0001H、0002H和0003H(假設(jish)無關位都取0)。3) 編程應用(yngyng)例7.7 如果在8255的B口接有8個按鍵,A口接有8個發(fā)光二極管,即類似于圖6.16中按鍵和二極管的連接,則下面的程序能夠完成按下某一按鍵,相應的發(fā)光二極管發(fā)光的功能。 MOV DPTR,#0003H ;指向8255的控制口 MOV A,#83H MOVX DPTR, A

44、;向控制口寫控制字,A口輸出,B口輸入 MOV DPTR,#0001H ;指向8255的B口LOOP: MOVX A, DPTR ;檢測按鍵,將按鍵狀態(tài)讀入A累加器 MOV DPTR,#0000H ;指向8255的A口 MOVX DPTR, A ;驅(qū)動LED發(fā)光 SJMP LOOP4. 8255與MCS-51的接口(ji ku) 8255和單片機的接口(ji ku)十分簡單,只需要一個8位的地址(dzh)鎖存器即可。鎖存器用來鎖存P0口輸出的低8位地址信息。圖6.19為8255擴展實例。 1) 連線說明 數(shù)據(jù)線:8255的8根數(shù)據(jù)線D0D7直接和P0口一一對應相連就可以了。 LED數(shù)碼管顯示接

45、口一、LED數(shù)碼管圖8-1 LED數(shù)碼管LED數(shù)碼管分類(fn li):按其內(nèi)部結(jié)構可分為(fn wi)共陰型和共陽型;按其外形尺寸有多種形式,使用(shyng)較多的是0.5和0.8;按顯示顏色也有多種形式,主要有紅色和綠色;按亮度強弱可分為超亮、高亮和普亮。正向壓降一般為1.52V,額定電流為10mA,最大電流為40mA。 二、LED數(shù)碼管編碼方式 表8-1 共陰和共陽LED數(shù)碼管幾種八段編碼表 顯示數(shù)字共陰順序小數(shù)點暗 共陰逆序小數(shù)點暗 共陽順序小數(shù)點亮 共陽順序小數(shù)點暗 Dp g f e d c b a16進制 a b c d e f g Dp16進制00 0 1 1 1 1 1 13

46、FH1 1 1 1 1 1 0 0FCH40HC0H10 0 0 0 0 1 1 006H0 1 1 0 0 0 0 060H79HF9H20 1 0 1 1 0 1 15BH1 1 0 1 1 0 1 0DAH24HA4H30 1 0 0 1 1 1 14FH1 1 1 1 0 0 1 0F2H30HB0H40 1 1 0 0 1 1 066H0 1 1 0 0 1 1 066H19H99H50 1 1 0 1 1 0 16DH1 0 1 1 0 1 1 0B6H12H92H60 1 1 1 1 1 0 17DH1 0 1 1 1 1 1 0BEH02H82H70 0 0 0 0 1 1 1

47、07H1 1 1 0 0 0 0 0E0H78HF8H80 1 1 1 1 1 1 17FH1 1 1 1 1 1 1 0FEH00H80H90 1 1 0 1 1 1 16FH1 1 1 1 0 1 1 0F6H10H90H顯示(xinsh)數(shù)轉(zhuǎn)換為顯示字段碼的步驟: 從顯示(xinsh)數(shù)中分離出顯示的每一位數(shù)字 方法(fngf)是將顯示數(shù)除以十進制的權 將分離出的顯示數(shù)字轉(zhuǎn)換為顯示字段碼 方法是查表【例8-1】已知顯示數(shù)存在內(nèi)RAM 30H(高位)、31H中,試將其轉(zhuǎn)換為5位共陰字段碼(順序),存在以30H(高位)為首址的內(nèi)RAM中。解:連續(xù)調(diào)用下列二個子程序即可。 分離顯示數(shù)字子程序S

48、PRT: MOV R0,#30H ;置萬位BCD碼間址 MOV A,30H ;置被除數(shù) MOV B,31H ; MOV R6,#27H ;置除數(shù)10000 = 2710H MOV R5,#10H ; LCALL SUM ;除以10000,萬位商存30H,余數(shù)存A、B MOV R6,#03H ;置除數(shù)(ch sh)1000 = 03E8H MOV R5,#0E8H ; INC R0 ;指向(zh xin)千位商間址(31H) LCALL SUM ;除以1000,千位商存31H,余數(shù)(ysh)存A、B MOV R6,#0 ;置除數(shù)100 MOV R5,#100 ; INC R0 ;指向百位商間址(

49、32H) LCALL SUM ;除以100,百位商存32H,余數(shù)存A(B=0) MOV B,#10 ;置除數(shù)10 DIV AB ;除以10 INC R0 ;指向十位商間址(33H) MOV R0,A ;十位商存33H XCH A,B ;讀個位數(shù) INC R0 ;指向個位間址(34H) MOV R0,A ;個位存34H RET ;說明(shumng):SUM是16位除以16位子程序:(A、B)(R6、R5)=商R0,余數(shù)(ysh)(A、B)。 轉(zhuǎn)換顯示(xinsh)字段碼子程序CHAG: MOV DPTR,#TAB ;置共陰字段碼表首址 MOV R0,#30H ;置顯示數(shù)據(jù)區(qū)首址CGLP: MO

50、V A,R0 ;取顯示數(shù)字 MOVC A,A+DPTR ;讀相應顯示字段碼 MOV R0,A ;存顯示字段碼 INC R0 ;指向下一顯示數(shù)字 CJNE R0,#35H,CGLP ;判5個顯示數(shù)字轉(zhuǎn)換完否?未完繼續(xù) RET ;轉(zhuǎn)換完畢,結(jié)束TAB: DB 3FH,06H,5BH,4FH,66H ;共陰字段碼表 DB 6DH,7DH,07H,7FH,6FH ;三、靜態(tài)顯示方式及其典型應用電路LED數(shù)碼管顯示分類:靜態(tài)顯示方式和動態(tài)顯示方式。 靜態(tài)(jngti)顯示方式,每一位字段碼分別從I/O控制口輸出,保持不變直至CPU刷新。 特點:編程較簡單,但占用I/O口線多,一般適用于顯示(xinsh)

51、位數(shù)較少的場合。 動態(tài)顯示方式,在某一瞬時顯示一位,依次循環(huán)掃描,輪流顯示,由于人的視覺滯留(zhli)效應,人們看到的是多位同時穩(wěn)定顯示。 特點:占用I/O端線少,電路較簡單,編程較復雜,CPU要定時掃描刷新顯示。一般適用于顯示位數(shù)較多的場合。1、并行擴展靜態(tài)顯示電路 圖8-2 LED靜態(tài)(jngti)顯示電路【例8-2】按圖8-2編制(binzh)顯示子程序,顯示數(shù)(255)存在(cnzi)內(nèi)RAM 30H中。解:DIR1: MOV A,30H ;讀顯示數(shù) MOV B,#100 ;置除數(shù) DIV AB ;產(chǎn)生百位顯示數(shù)字 MOVC A,A+DPTR ;讀百位顯示符 MOV DPTR,#0D

52、FFFH ;置74377(百位)地址 MOVX DPTR,A ;輸出百位顯示符 MOV A,B ;讀余數(shù) MOV B,#10 ;置除數(shù) DIV AB ;產(chǎn)生十位(sh wi)顯示數(shù)字 MOV DPTR,#TAB ;置共陽字段碼表首址 MOVC A,A+DPTR ;讀十位(sh wi)顯示符 MOV DPTR,#0BFFFH ;置74377(十位(sh wi)地址 MOVX DPTR,A ;輸出十位顯示符 MOV A,B ;讀個位顯示數(shù)字 MOV DPTR,#TAB ;置共陽字段碼表首址 MOVC A,A+DPTR ;讀個位顯示符 MOV DPTR,#7FFFH ;置74377(個位)地址 MO

53、VX DPTR,A ;輸出個位顯示符 RET ;TAB: DB 0C0H,0F9H,0A4H,0B0H,99H;共陽字段碼表 DB 92H,82H,0F8H,80H,90H;2、串行擴展靜態(tài)顯示電路 圖8-4 串行口靜態(tài)顯示(xinsh)電路【例8-3】按圖8-4編制顯示子程序,顯示字段碼已分別(fnbi)存在32H30H內(nèi)RAM中。DIR2: MOV SCON,#00H ;置串口方式(fngsh)0 CLR ES ;串口禁中 SETB P1.0 ;“與”門開,允許TXD發(fā)移位脈沖 MOV SBUF,30H ;串行輸出個位顯示字段碼 JNB TI,$ ;等待串行發(fā)送完畢 CLR TI ;清串行

54、中斷標志 MOV SBUF,31H ;串行輸出十位顯示字段碼 JNB TI,$ ;等待串行發(fā)送完畢 CLR TI ;清串行中斷標志 MOV SBUF,32H ;串行輸出百位顯示字段碼 JNB TI,$ ;等待串行發(fā)送(f sn)完畢 CLR TI ;清串行中斷(zhngdun)標志 CLR P1.0 ;“與”門關,禁止TXD發(fā)移位(y wi)脈沖 RET ;3、BCD碼輸出靜態(tài)顯示電路 圖8-5 BCD碼靜態(tài)顯示電路【例8-4】按圖8-5試編制顯示子程序(小數(shù)點固定在第二位),已知顯示數(shù)存在內(nèi)RAM 30H32H中。解:編程如下(rxi):DIR3: MOV P1,#11100000B ;選通

55、個位 ORL P1,30H ;輸出(shch)個位顯示數(shù) MOV P1,#11010000B ;選通十位(sh wi) ORL P1,31H ;輸出十位顯示數(shù) MOV P1,#10110000B ;選通百位 ORL P1,32H ;輸出百位顯示數(shù) RET ;四、動態(tài)顯示方式及其典型應用電路動態(tài)顯示電路連結(jié)形式: 顯示各位的所有相同字段線連在一起,共8段,由一個8位I/O口控制; 每一位的公共端(共陽或共陰COM)由另一個(y )I/O口控制。圖8-6 動態(tài)顯示LED數(shù)碼管連接(linji)方式1、共陰型8位動態(tài)顯示電路(dinl)圖8-7 共陰型8位動態(tài)顯示電路(dinl)【例8-5】按圖8-

56、7,試編制循環(huán)掃描(10次)顯示(xinsh)子程序,已知顯示字段碼存在以30H(低位)為首址的8字節(jié)內(nèi)RAM中。解:編程如下(rxi):DIR4:MOV R2,#10 ;置循環(huán)掃描次數(shù) MOV DPTR,#7FFFH ;置74377口地址DLP1:ANL P1,#11111000B ;第0位先顯示 MOV R0,#30H ;置顯示字段碼首址DLP2:MOV A,R0 ;讀顯示字段碼 MOVX DPTR,A ;輸出顯示字段碼 LCALL DY2ms ;調(diào)用延時2ms子程序(參閱例4.13) INC R0 ;指向下一位字段碼 INC P1 ;選通下一位顯示 CJNE R0,#38H,DLP2 ;

57、判8位掃描顯示完否?未完繼續(xù) DJNZ R2,DLP1 ;8位掃描(somio)顯示完畢,判10次循環(huán)完否? CLR A ;10次循環(huán)(xnhun)完畢,顯示暗 MOVX DPTR,A ; RET ;子程序返回(fnhu)2、共陽型3位動態(tài)顯示電路圖8-8 共陽型8位動態(tài)顯示電路【例8-6】根據(jù)(gnj)圖8-8電路,試編制3位動態(tài)掃描顯示程序(循環(huán)100次),已知顯示字段碼存在以40H(低位)為首(wishu)址的3字節(jié)內(nèi)RAM中。解:編程如下(rxi):DIR5: MOV DPTR,#0BFFFH ;置74377地址 MOV R2,#100 ;置循環(huán)顯示次數(shù)DIR50: SETB P1.2

58、 ;百位停顯示 MOV A,40H ;取個位字段碼 MOVX DPTR,A ;輸出個位字段碼 CLR P1.0 ;個位顯示 LCALL DY2ms ;調(diào)用延時2ms子程序(參閱例4.13)DIR51: SETB P1.0 ;個位停顯示 MOV A,41H ;取十位字段碼 MOVX DPTR,A ;輸出十位字段碼 CLR P1.1 ;十位顯示 LCALL DY2ms ;延時2msDIR52: SETB P1.1 ;十位停顯示 MOV A,42H ;取百位字段碼 MOVX DPTR,A ;輸出(shch)百位字段碼 CLR P1.2 ;百位顯示(xinsh) LCALL DY2ms ;延時2ms

59、DJNZ R2,DIR50 ;判循環(huán)顯示(xinsh)結(jié)束否?未完繼續(xù) ORL P1,#00000111B ;3位滅顯示4程序設計4.1主程序模塊在主程序模塊中,需要完成對各接口芯片的初始化、中斷向量的設計以及開中斷、循環(huán)等待等工作。另外,在主程序模塊中還需要設置啟動/清除標志寄存器、里程寄存器,并對它們進行初始化。然后,主程序?qū)⒏鶕?jù)各標志寄存器的內(nèi)容,分別完成啟動、清除、計程等不同的操作。4.2定時中斷服務程序在定時中斷服務程序中,每1ms產(chǎn)生一次中斷,當產(chǎn)生1000次中斷的時候,也就到了一秒,送數(shù)據(jù)到相應的顯示緩沖單元,并調(diào)用顯示子程序?qū)崟r顯示。里程計數(shù)程序流程圖如圖7所示。開始顯示千位進

60、入中斷接受鍵盤按“O”按“F”按“E”P1為0P10為0P100為0P1000為0P10000為0P100000為0循環(huán)顯示復位顯示十分位Run程序顯示個位顯示十位顯示百分位顯示百位等待NYNY YNYYNNYNNNYYNY圖7里程(lchng)計數(shù)程序流程圖5 計價器系統(tǒng)(xtng)設計5.1 硬件(yn jin)設計5.1.1 整體硬件電路圖6課程設計體會經(jīng)過兩周有關于通過模擬出租車計價器的課程設計,使同學們對單片機的應用有了更深的了解。在課程設計的過程中,還是碰到了許多的問題。比如,對于單片機的一些基本代碼及程序還有一些不清楚的地方;對于代碼的前后順序及調(diào)用掌握的還不夠好。通過請教老師和

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論