【正文】
按鍵共有 5 個,分別是功能切換鍵,確定鍵,修改鍵,啟動模擬鍵和空車牌壓下模擬鍵。 上述的情形亦可采用平常的程序,以持續(xù)或經(jīng)常詢問的寫法來應(yīng)付,但是若系統(tǒng)有多個條件要詢問時,寫法就會變得相當(dāng)?shù)膹?fù)雜。 當(dāng)使用外部振蕩器時,引腳 XTAL1 接收外振蕩器信號, XTAIL2 懸空。但要注意,每次訪問外 RAM 時要丟失一個 ALE 脈沖。 當(dāng) EA(—— )信號接地時,對 ROM的讀操作限定在外部程序存儲器,地址為 0000H~FFFFH;當(dāng) EA(—— )接地時,對 ROM 的讀操作從內(nèi)部程序存儲器開始,并可延續(xù)至外部程序存儲器。 P3 口 —— 8 位、準(zhǔn)雙向 1/ O 口,具有內(nèi)部上拉電阻。當(dāng)作為普通輸入時,應(yīng)將 輸出鎖存器置 1. PO 口可驅(qū)動 8 個 TTL 負(fù)載. P1 口 —— 8 位、準(zhǔn)雙向 I/ O 口,具有內(nèi)部上拉 電阻。 特殊功能寄存器區(qū)( SFR,Special Function Register) 8051 單片機 內(nèi)部將多個寄存器統(tǒng)稱成 SFR,代表其特定的功能,甚至 Port0、 PortPort3 也都是屬 SFR 的成員之一,在這些 SFR 中有部分的寄存器可以進行位尋址,表 31 是這些 SFR 寄存器的整理,其中加( *)記號的寄存器可進行位尋址。 中斷優(yōu)先順序控制寄存器( IPC,Interrupt Priority Control): 這個寄存器中存放中斷時的優(yōu)先順序表,若對應(yīng)的位設(shè)成 1 時,代表中斷有較高的中斷優(yōu)先權(quán)。 串行接口( Serial Port): 8051 可通過此接口與外部的計算機等設(shè)備連線交換信息,也可以通過此接口進行I/O 的擴充。 圖 33 單片機簡圖 8051 單片機功能方塊圖 CPU中央處理器 Memory 內(nèi)存 I/O 輸入 /出設(shè)備 8 圖 34 8051 單片機功能方塊圖 振蕩及時序單元( OSC): 8051 內(nèi)部有晶體振蕩電路,只要在外部加上石英振蕩晶體,即可產(chǎn)生頻率非常 穩(wěn)定的振蕩信號,這個振蕩信號正是 8051 的心臟,所有 8051 的時鐘序列都以此振蕩信號為基準(zhǔn)。 反射式光電傳感器是用來檢測黑白線條的,如圖 (a)所示 由于黑白物體的反射系數(shù)不同,利用反射光可以使光敏三極管實現(xiàn)導(dǎo)通和斷開,調(diào)節(jié)傳感器與被測對象之間的距離,使光敏三極管只能接受到白色物體反射回來的光束。該模塊的 VHDL 程序包括兩個進程: 60S 周期性跳變信號產(chǎn)生進程,等待費用計算進程。 里程計費模塊 LCJF:在計費標(biāo)志信號 JFBZ,等待標(biāo)志信號 DDBZ,里程標(biāo)志信號LCBZ 和時段標(biāo)志信號 SDBZ 等信號的控制下,計算行駛里程超過 2 ㎞以上里程的費用LCFY。 等待判別模塊 DDPB:根據(jù)速度傳感器脈沖信號 WCLK 和分頻器產(chǎn)生的基準(zhǔn)時鐘信號 CLK1HZ,計算單位時間里 WCLK 的脈沖個數(shù)(每㎞產(chǎn)生 1000 個脈沖信號,即每米產(chǎn)生 1 個脈沖信號),亦即出租車行駛速度,從而判別出租車是否處于等待狀態(tài),發(fā)出等待標(biāo)志信號 DDBZ。 4 ②單價,即里程單價,用三位數(shù)字顯示,顯示方式為“ ”,單價為元 /㎞,根據(jù)每天不同的時間段有兩種情況:當(dāng)時間段為 06: 00~ 23: 00 時單價為 元 /㎞,其他時間段內(nèi)單價為 元 /㎞。增加的這些功能將會更好地為乘客服務(wù)。應(yīng)該是對以前所學(xué)知識的一次審核吧! 本設(shè)計主要介紹了出租車計費系統(tǒng)的設(shè)計思路和過程,并給出了所涉及的相關(guān)知識的詳細(xì)介紹。顯示器可以采用 LED 數(shù)碼管。 關(guān)鍵詞 : 計費系統(tǒng) ; 單片機 ; FPGA 芯片 2 Abstract The system power supply voltage of + 16V, speed sensor having a car every runs 1 provide a 1000 pulse signal characteristics. The display can be used LED digital tube. The system adopts the single chip and FPGA binding system of the main design, control FPGA chip through the acquisition sensor pulse signal WCLK to mileage, metered, using an external pulse signal SCLK produces a standard clock signal, to calculate the waiting time, wait ing cost, and generate the mileage signs ( LCBZ ), wait for the signs (DDBZ ), mark ( lights out XDBZ ) and other related control signal, at the same time according to the MCU by a start signal ( START ), time slot markers ( SDBZ ), transmission data selection ( SEL ) and other control signals to be transmitted to the calculation results of FPGA chip. Single chip MCU in addition to the pletion of the keyboard scanning, display control, through the P0 and FPGA data exchange, and to control FPGA chip emits the control signal. The design makes use of SCM and FPGA bination, play to their respective strengths, a clear division of labor, the actual application and operation in line with the general logic, is easy to be accepted by people. Moreover, SCM rich I / O and FPGA modular design for system expansion provides space and facilities. Key words: billing system; SCM; FPGA chip 3 1 緒論 出租車是現(xiàn)代人類的重要交通工具,而出租車的計費系統(tǒng)的安全性和先進性是人們普遍關(guān)心的問題,要求計費器性能穩(wěn)定,計費準(zhǔn)確,以及預(yù)防司機作弊行為等等都關(guān)系到乘客的切身利益。車票資料打?。侯櫩透顿M后可打印發(fā)票,打印內(nèi)容包括車主信息和車費信息等。速度傳感器不需要進行設(shè)計,假設(shè)它具有汽車每運行 1㎞提供 1000 個脈沖信號的特性。 ⑥費用的顯示,用五位數(shù)字顯示,顯示方式為“ ”,單價為元。如果 LCBZ=1,說明行駛距離超過 2 ㎞,里程計費啟動;如果 LCBZ=0,說明沒超過 2 ㎞,按起價計費,每行駛 1 ㏎應(yīng)計費 1 次,并且計費的啟動信號應(yīng)是某一時刻,因此每行駛 1 ㎞,計費標(biāo)志信號 JFBZ 應(yīng)跳變 1 次。當(dāng)?shù)却龝r間小于等于 1 小時, XDBZ=0,等待時間顯示燈亮;當(dāng)?shù)却龝r間大于 1 小時,XDBZ=1,等待時間顯示不亮。 光電傳感器是把光信號轉(zhuǎn)換為電信號的傳感器,光電傳感器的種類極多。在該設(shè)計中采用在 車輪的轉(zhuǎn)盤上安裝一個 3 條黑白線均勻的圓盤,再用光電開關(guān)來檢測,如下圖 所示,當(dāng)出租車運動時,車輪轉(zhuǎn)動,光電傳感器利用接收黑白電平時輸出的高低電平,當(dāng)光電傳感器檢測到黑色條紋時,輸出高電平給單片機,相反當(dāng)檢測到白色條紋時輸出低電平,從而把連續(xù)輸出高低電平轉(zhuǎn)化為脈沖數(shù),也就把電機轉(zhuǎn)動時帶動有黑白線的圓盤黑白條數(shù)轉(zhuǎn)換成脈沖數(shù),從而測試出出租車運行速度。此單元可以使 CPU 選擇由內(nèi)部的程序區(qū)啟動或由外部的程序區(qū)啟動,內(nèi)部的程序區(qū)啟動具有保護功能,后者成本較為低廉。 累加器( Accumulator): 累加器是眾多寄存器中最重要的一個寄存器,通常以簡寫 Acc 代表累加器, 8051的指令中有許多指令和 Acc 寄存器有關(guān),也有多個指令非通過 Acc 不可,基本上, 8051的指令中賦予 Acc 累加器的權(quán)限最大。 堆棧指標(biāo)寄存器( SP,Stack Pointer): 8051 利用 SP 指引最近一次存入堆棧內(nèi)的地址,每當(dāng)我們在程序中調(diào)用其他子程序時,原程序的返回地址就會自動存入內(nèi)部 DATA MEMORY 組成的堆棧( Stack)中,而當(dāng)子程序執(zhí)行到 RET 指令時, CPU 會自動由堆棧中取回原先存入的返回地址,繼續(xù)執(zhí)行原程序。 當(dāng)使用片外存儲器及外擴 I/ O 口時, P0 口作為低字節(jié)地址/數(shù)據(jù)復(fù)用線。在編程/校驗時. P2口可接收高字節(jié)地 址和某些控制信號。 RXD(串行輸入口) TXD(串行輸出口) INT0—— (外部中斷 0) INT1—— (外部中斷 1) T0(記時器 0外部輸入) T1(記時器 1外部輸入) WR—— (外部數(shù)據(jù)存儲器寫選通) RD—— (外部數(shù)據(jù)存儲器讀選通) 表 33 P3 口替代功能 ② 控制信號線 RST—— 復(fù)位輸入信號,高電平有效。 AIE/PROG(———— )—— 低字節(jié)地址鎖存信號 AlE( Address latch Enable)。使用片內(nèi)振蕩器時,連接外部石英晶體和微調(diào)電容。 ⑤ 當(dāng)程序必須處理數(shù)個小程序,且這些程序必須幾乎同時都在執(zhí)行中。 特征 4:某項狀 態(tài)可能平時均不成立,可是一成立時, CPU 必須立即停止原先的動作,馬上來處理這個狀態(tài)。 MOV R1, 38H MOV R3, 04H HEX1: MOV A,R0 ANL A, 0FH MOV R1, A INC R1 MOV A,R0 ANL A, 0F0H SWAP A MOV R1, A INC R1 INC R0 DJNZ R3, HEX1 NEXT2: RET 25 ;時鐘中斷處理子程序 PIT0:PUSH PSW ;時鐘中斷服務(wù)開始,保護斷點 PUSH ACC SETB ;選用 1 組通用寄存器 MOV TL0, 0B6H MOV TH0, 03CH MOV A,30H ;循環(huán)次數(shù)處理 DEC A ;循環(huán)次數(shù)減 1 MOV 30H,A ;保存于 A 中 JNZ RET0 ;不滿 20 次轉(zhuǎn) RET1 返回 MOV 30H,14H ;滿 20 次,則重 賦循環(huán)次數(shù)初值 MOV R0,LED2 ;秒的十位緩沖單元 LCALL DAAD1 ;秒加 1 MOV A,R2 ;是否到了 60S? XRL A, 60H JNZ RET0 ;不到,轉(zhuǎn) RET1 返回 LCALL CLR0 ;到了 60S,則秒顯示緩沖單元清 0 MOV R0,LED4 ;分的十位顯示緩沖單元地址 LCALL DAAD1 ;分加 1 MOV A,R2 ;是否到了 60S XRL A, 60H JNZ RET0 ;不到,轉(zhuǎn) RET0 返回 LCALL CLR0 ;到了 60 分,則分顯示緩沖單元清 0 MOV R0,LED6 ;時的十位顯示緩沖單元地址 LCALL DAAD1 ;時加 1 MO