




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上出租車計(jì)價(jià)器摘 要:本設(shè)計(jì)是利用單片機(jī)技術(shù)來(lái)實(shí)現(xiàn)一臺(tái)多功能出租車計(jì)價(jià)器,由單片機(jī)、鍵盤控制部分、串口驅(qū)動(dòng)顯示電路、里程計(jì)價(jià)單元部分組成,能夠?qū)崿F(xiàn)白天晚上轉(zhuǎn)換計(jì)價(jià)、中途等待計(jì)價(jià)、總金額路程轉(zhuǎn)換顯示、時(shí)鐘顯示、始終調(diào)整等功能,具有性能可靠、電路簡(jiǎn)單、成本低等特點(diǎn)。關(guān)鍵詞:?jiǎn)纹瑱C(jī)控制 出租車計(jì)價(jià)器 數(shù)碼顯示1引言隨著電子技術(shù)的發(fā)展,出租車計(jì)價(jià)器技術(shù)也在不斷進(jìn)步和提高,國(guó)內(nèi)出租車計(jì)價(jià)器已經(jīng)經(jīng)歷了四個(gè)階段的發(fā)展,從傳統(tǒng)的全部由機(jī)械元器件組成的機(jī)械式,到半電子式即用電子線路代替部分機(jī)械元器件的出租車計(jì)價(jià)器,再?gòu)募呻娐肥降侥壳暗膯纹瑱C(jī)系統(tǒng)設(shè)計(jì)的出租車計(jì)價(jià)器。單片機(jī)控制的出租車計(jì)價(jià)
2、器性能可靠、電路簡(jiǎn)單、成本低,在出租車行業(yè)已經(jīng)得到了廣泛的應(yīng)用。2總體設(shè)計(jì)方案出租車計(jì)價(jià)器通過(guò)傳感器與行駛車輛連接。出租汽車的實(shí)際里程通過(guò)傳感器的脈沖信號(hào)在計(jì)價(jià)器里折算成一定的計(jì)價(jià)營(yíng)運(yùn)里程。目前市場(chǎng)上出租車計(jì)價(jià)器功能主要有具有數(shù)據(jù)的復(fù)位功能、白天/晚上轉(zhuǎn)換功能、數(shù)據(jù)輸出功能、計(jì)時(shí)計(jì)價(jià)功能等。本設(shè)計(jì)利用89S51單片機(jī)豐富的I/O口進(jìn)行移位顯示和鍵盤控制,用六片74164驅(qū)動(dòng)六片數(shù)碼管顯示,并帶有復(fù)位電路,可以在不正常狀況下按復(fù)位鍵復(fù)位。2.1設(shè)計(jì)思路出租車計(jì)價(jià)器根據(jù)乘客乘坐汽車行駛距離和等候時(shí)間的多少進(jìn)行計(jì)價(jià),并在行程中同步顯示車費(fèi)值。從起步價(jià)開始,當(dāng)汽車程行駛未滿2公里時(shí),均按起步價(jià)計(jì)算。過(guò)
3、2公里后,實(shí)現(xiàn)每1公里單價(jià)收費(fèi),中間遇暫停時(shí),計(jì)程數(shù)不再增加,開始計(jì)時(shí)收費(fèi),測(cè)距收費(fèi)和測(cè)時(shí)收費(fèi)的和便構(gòu)成了一位乘客的車費(fèi)。里程計(jì)算是通過(guò)安裝在車輪上的霍爾傳感器A44E檢測(cè)到信號(hào)傳到單片機(jī)通過(guò)處理計(jì)算,送給顯示單元的。完整的出租車計(jì)價(jià)器還應(yīng)包括查看、統(tǒng)計(jì)、時(shí)鐘顯示等功能。2.2總體設(shè)計(jì)框圖總體設(shè)計(jì)框圖如圖1所示。鍵盤控制89S51單片機(jī)里程計(jì)算單元串口顯示驅(qū)動(dòng)電路總金額顯示單價(jià)顯示圖1 出租車計(jì)價(jià)器原理框圖3設(shè)計(jì)原理分析本系統(tǒng)的硬件設(shè)計(jì)主要包括單片機(jī)AT89S51、數(shù)據(jù)顯示部件、A44E霍爾傳感器電路、里程計(jì)算及計(jì)價(jià)單元的設(shè)計(jì)。在硬件設(shè)計(jì)過(guò)程中,充分利用各部件的功能,實(shí)現(xiàn)多功能的出租車計(jì)價(jià)器設(shè)
4、計(jì)。軟件設(shè)計(jì)主要可分為主程序模塊、定時(shí)計(jì)數(shù)中斷程序、里程計(jì)數(shù)中斷服務(wù)程序、中途等待中斷服務(wù)程序、時(shí)間調(diào)整子程序、顯示子程序服務(wù)程序、字型碼表及延時(shí)子程序。3.1硬件設(shè)計(jì)計(jì)價(jià)器的單片機(jī)控制方案圖如圖1所示。它由以下幾個(gè)部件組成:?jiǎn)纹瑱C(jī)AT89S51、總金額及單價(jià)顯示部件、鍵盤控制部件、里程計(jì)算單元、串口顯示驅(qū)動(dòng)電路等。利用單片機(jī)豐富的I/O端口,及其控制的靈活性,實(shí)現(xiàn)基本的里程計(jì)價(jià)功能和價(jià)格調(diào)節(jié)、時(shí)鐘顯示功能。不但能實(shí)現(xiàn)所要求的功能而且能在很大的程度上擴(kuò)展功能,而且還可以方便的對(duì)系統(tǒng)進(jìn)行升級(jí)。具體電路參見附錄。3.11里程計(jì)算、計(jì)價(jià)單元的設(shè)計(jì)出租車中需要一個(gè)能準(zhǔn)確獲得車輪轉(zhuǎn)動(dòng)即路程計(jì)量信號(hào)的裝置
5、,以得到標(biāo)準(zhǔn)的脈沖信號(hào)送入單片機(jī)外部中斷0即P3.2引腳,由單片機(jī)完成計(jì)程數(shù)及車費(fèi)的換算及顯示。我們?cè)谄嚶?lián)軸器按圓周間隔嵌入磁鋼,用霍爾傳感器A44E檢測(cè)并輸出脈沖。原理圖如圖2所示。圖2 傳感器測(cè)距示意圖3.12數(shù)據(jù)顯示單元設(shè)計(jì)由于設(shè)計(jì)要求有單價(jià)(2 位)、路程(2 位)、總金額(3 位)顯示輸出,加上我們另外擴(kuò)展了時(shí)鐘顯示(包含時(shí)分秒的顯示),我們采用6 位LED數(shù)碼管的分屏顯示。時(shí)鐘顯示時(shí),左端兩位顯示的是時(shí),中間兩位顯示分,右邊兩位顯示秒;總金額單價(jià)顯示時(shí),左邊三位顯示總金額,右邊兩位顯示目前單價(jià),中間顯示短橫線表示本位沒(méi)有使用;總路程單價(jià)顯示時(shí),同樣是左邊兩位顯示總路程,右邊兩位顯
6、示目前單價(jià)中間兩位顯示短橫線;當(dāng)切換置中途等待計(jì)價(jià)時(shí),左邊三位顯示總金額,右邊兩位顯示中途等待單價(jià)。幾個(gè)顯示部分通過(guò)按鍵可以自由切換。顯示如圖3所示。000210時(shí)鐘顯示(圖中顯示為12點(diǎn)0分0秒)20.03.0總金額和單價(jià)顯示(圖中顯示為總金額20.0元,每公里3.0元)013.0里程和單價(jià)顯示(圖中顯示為10公里,每公里3.0元)圖3 采用6 位LED數(shù)碼管的分屏顯示本設(shè)計(jì)顯示部分采用串行移位顯示,從單片機(jī)串口輸出的信號(hào)先送到左邊的移位寄存器(74HC164),由于移位脈沖的作用,使數(shù)據(jù)向右移,達(dá)到顯示的目的。移位寄存器74HC164還兼作數(shù)碼管的驅(qū)動(dòng)。顯示器原理圖如圖4所示。圖4 顯示器
7、原理圖3.13鍵盤設(shè)計(jì)本設(shè)計(jì)采用4個(gè)按鍵用來(lái)控制系統(tǒng)時(shí)間,總金額、單價(jià)顯示,里程、單價(jià)顯示,中途等待計(jì)價(jià)顯示的切換,并且置有一個(gè)復(fù)位鍵S5。(1)S1按鍵的功能S1為計(jì)價(jià)啟動(dòng)/結(jié)束按鍵,在顯示時(shí)間的情況下,按下S1為啟動(dòng)計(jì)價(jià),再次按下S1為結(jié)束計(jì)價(jià)(2)S2按鍵的功能 在按下S1按鍵啟動(dòng)計(jì)價(jià)之后,若接著按下S2鍵則進(jìn)入中途等待計(jì)價(jià)模式。在調(diào)整時(shí)間時(shí),按下S2鍵則數(shù)值減1。(3)S3按鍵的功能 計(jì)價(jià)結(jié)束,在顯示金額及單價(jià)時(shí),若按下S3鍵則顯示路程和單價(jià),再次按下S3,可返回顯示金額及單價(jià)。在調(diào)整時(shí)間時(shí),按下S3鍵則數(shù)值加1。(4)S4按鍵的功能計(jì)價(jià)結(jié)束時(shí),若按下S4,則返回系統(tǒng)時(shí)間的顯示。在顯示
8、時(shí)間時(shí),按下S4進(jìn)入時(shí)間調(diào)整,默認(rèn)調(diào)整時(shí),再次按下S4,調(diào)整分,再次按下S4,返回系統(tǒng)時(shí)間顯示。按鍵電路如圖5所示圖5 按鍵電路圖3.2軟件設(shè)計(jì)本系統(tǒng)的軟件設(shè)計(jì)主要可分為主程序模塊、定時(shí)計(jì)數(shù)中斷程序、里程計(jì)數(shù)中斷服務(wù)程序、中途等待中斷服務(wù)程序、顯示子程序服務(wù)程序、鍵盤服務(wù)程序六大模塊。下面對(duì)各部分模塊作介紹。3.21系統(tǒng)主程序設(shè)計(jì)在主程序模塊中,需要完成對(duì)各接口芯片的初始化、出租車起價(jià)和單價(jià)的初始化、中斷向量的設(shè)計(jì)以及開中斷、循環(huán)等待等工作。另外,在主程序模塊中還需要設(shè)置啟動(dòng)/清除標(biāo)志寄存器、里程寄存器和價(jià)格寄存器,并對(duì)它們進(jìn)行初始化。然后,主程序?qū)⒏鶕?jù)各標(biāo)志寄存器的內(nèi)容,分別完成啟動(dòng)、清除、
9、計(jì)程和計(jì)價(jià)等不同的操作。主程序流程圖如圖6所示。當(dāng)按下S1時(shí),就啟動(dòng)計(jì)價(jià),將根據(jù)里程寄存器中的內(nèi)容計(jì)算和判斷出行駛里程是否已超過(guò)起價(jià)公里數(shù)。若已超過(guò),則根據(jù)里程值、每公里的單價(jià)數(shù)和起價(jià)數(shù)來(lái)計(jì)算出當(dāng)前的累計(jì)價(jià)格,并將結(jié)果存于價(jià)格寄存器中,然后將時(shí)間和當(dāng)前累計(jì)價(jià)格送顯示電路顯示出來(lái)。當(dāng)?shù)竭_(dá)目的地的時(shí)候,由于霍爾開關(guān)沒(méi)有送來(lái)脈沖信號(hào),就停止計(jì)價(jià),顯示當(dāng)前所應(yīng)該付的金額和對(duì)應(yīng)的單價(jià),到下次啟動(dòng)計(jì)價(jià)時(shí),系統(tǒng)自動(dòng)對(duì)顯示清零,并重新進(jìn)行初始化過(guò)程。主程序流程圖如圖6所示。啟動(dòng)計(jì)價(jià)器S1按下?否否是判時(shí)間設(shè)單價(jià)S2按下?調(diào)用時(shí)間調(diào)整是是開始否S1按下?中途等待計(jì)價(jià)霍爾中斷?否否是是初始化數(shù)據(jù)是S4按下?返回正
10、常計(jì)價(jià)S1按下?否顯示時(shí)間停止計(jì)價(jià) S3按下?顯示金額及單價(jià)是顯示路程和單價(jià)否S3按下?否是圖6 主程序流程圖主程序如下:DAY_PRICE EQU 6FHNIGHT_PRICE EQU 6EHMID_PRICE EQU 6DHSTART_PRICE EQU 6CHCOUNTL EQU 6BHCOUNTH EQU 6AHM100 EQU 69H ; 外部中斷次數(shù)DISTANCE EQU 68H ; 行車距離MS100 EQU 67HSEC EQU 66HMIN EQU 65HHOUR EQU 64HLEDSL EQU 63H ; 時(shí)分鈔顯示緩沖區(qū)LEDSH EQU 62HLEDML EQU 6
11、1HLEDMH EQU 60HLEDHL EQU 5FHLEDHH EQU 5EHLEDDANJIAL EQU 5DH ; 總額單價(jià)顯示緩沖區(qū)LEDDANJIAH EQU 5CHLINE_ EQU 5BHLEDCOUNT1 EQU 5AHLEDCOUNT2 EQU 59HLEDCOUNT3 EQU 58HLEDDANJIA2L EQU 57H ; 路程,單價(jià)顯示緩沖區(qū)LEDDANJIA2H EQU 56HLINE_ EQU 55HLINE_ EQU 54HLEDDISTANCEL EQU 53HLEDDISTANCEH EQU 52HLEDDAY_PL EQU 51H ; 中途,晚上,白天顯示
12、緩沖區(qū)LEDDAY_PH EQU 50HLEDNIG_PL EQU 4FHLEDNIG_PH EQU 4EHLEDW_PL EQU 4DHLEDW_PH EQU 4CHS1 BIT P2.0S2 BIT P2.1S3 BIT P2.2S4 BIT P2.3MID1 EQU 4BHPRICE EQU 4AHDAYMID EQU 49HNIGHTMID EQU 48H ORG 0000H AJMP MAIN ORG 0003H AJMP TO ORG 000BH AJMP TOTIME ORG 001BH AJMP TOSTART ORG 0030HMAIN:MOV SP,#70H MOV TMO
13、D, #11H MOV TH0, #3CH MOV TL0, #0B0H MOV TH1, #3CH MOV TL1, #0B0H MOV 22H, #0AH SETB EA SETB TR0 SETB EX0 SETB IT0 SETB ET0 SETB ET1 MOV R7,#34 MOV R0,#69HLOOPL:MOV R0,#0 DEC R0 DJNZ R7,LOOPL MOV COUNTL, #00H ; 起步價(jià) MOV COUNTH, #05H MOV DAY_PRICE,#25H ; 白天價(jià)格初始化 MOV DAYMID,#13H MOV NIGHT_PRICE,#30H ;
14、晚上價(jià)格初始化 MOV NIGHTMID,#15H MOV START_PRICE, #50H ; 起步價(jià)初始化 MOV MID1,#0 MOV DISTANCE, #02H MOV HOUR, #12HKEY_MAIN: SETB TR0 ACALL HMS_DIS ACALL T100MSD ACALL T100MSD ACALL T100MSD JNB S4,W3K11:JB S1,KEY_MAIN ACALL T10MSD JB S1,KEY_MAIN JNB S1,$ MOV A,HOUR ;判時(shí)間設(shè)單價(jià) CLR CY CJNE A,#08H,K12 AJMP K16K12:JC K
15、13 CLR CY CJNE A,#20H,K15 AJMP K13K15:JNC K13K16:MOV PRICE,DAY_PRICE MOV MID_PRICE,DAYMID AJMP K14W3:AJMP K41K13:MOV PRICE,NIGHT_PRICE MOV MID_PRICE,NIGHTMIDK14:MOV 29H,PRICE MOV R0,#LEDDANJIAL ;啟動(dòng)初始化 MOV R2,#06H CLR A MOV M100,ABK1:MOVR0,A DEC R0 DJNZ R2,BK1 MOV COUNTL,#00H MOV COUNTH,#05H MOV DIST
16、ANCE,#02H SETB EX0 ;開始計(jì)價(jià) LCALL CP_DIS ;金額單價(jià)顯示K21:JB S2,K24 ACALL T10MSD JB S2,K24 JNB S2,$ MOV PRICE,MID_PRICE SETB TR1 ;啟動(dòng)中途等待計(jì)價(jià) ACALL CP_DIS MOV A,M100K22:CJNE A,M100,K23 JB S1,K22 ACALL T10MSD JB S1,K22 JNB S1,$ CLR TR1 MOV MID1,#00H MOV PRICE,29H ACALL CP_DIS AJMP K25K23:CLR TR1 ;關(guān)閉中途等待計(jì)價(jià) MOV MI
17、D1,#00H MOV PRICE,29H ACALL CP_DISK24:JB S1,K21 ACALL T10MSD JB S1,K21 JNB S1,$K25:JB S4,K31 ACALL T10MSD JB S4,K31 JNB S4,$ AJMP KEY_MAINK31:JB S3,K25 ACALL T10MSD JB S3,K25 JNB S3,$ ACALL DP_DIS ;調(diào)用里程顯示K32:JB S4,K33 ACALL T10MSD JB S4,K33 JNB S4,$ AJMP KEY_MAINK33:JB S3,K32 ACALL T10MSD JB S3,K32
18、JNB S3,$ ACALL CP_DIS AJMP K25K41:ACALL T10MSD JB S4,W2 JNB S4,$ AJMP HOU_TW2:AJMP K113.22 定時(shí)中斷服務(wù)程序在定時(shí)中斷服務(wù)程序中,每100ms 產(chǎn)生一次中斷,當(dāng)產(chǎn)生10 次中斷的時(shí)候,也就到了一秒,送數(shù)據(jù)到相應(yīng)的顯示緩沖單元,并調(diào)用顯示子程序?qū)崟r(shí)顯示。其程序流程如圖7所示。開始保護(hù)現(xiàn)場(chǎng)重置計(jì)數(shù)初值否中斷10次?是數(shù)據(jù)送顯示緩沖單元調(diào)用顯示子程序恢復(fù)現(xiàn)場(chǎng) 并中斷返回圖7 定時(shí)中斷服務(wù)程序流程圖定時(shí)中斷服務(wù)程序如下:TOTIME: PUSH PSW PUSH ACC MOV TH0,#3CH MOV TL0,
19、#0B0H INC MS100 MOV A,MS100 CJNE A,#10,RETURN MOV MS100,#0 MOV A,SEC ADD A,#1 DA A MOV SEC,A CJNE A,#60H,RETURN MOV SEC,#0 MOV A,#1H ADD A,MIN DA A MOV MIN,A CJNE A,#60H,RETURN MOV MIN,#0 MOV A,#1H ADD A,HOUR DA A MOV HOUR,A CJNE A,#24H,RETURN MOV HOUR,#0RETURN: POP ACC POP PSW RETI3.23 里程計(jì)數(shù)中斷服務(wù)程序每當(dāng)
20、霍爾傳感器輸出一個(gè)低電平信號(hào)就使單片機(jī)中斷一次,當(dāng)里程計(jì)數(shù)器對(duì)里程脈沖計(jì)滿1000 次時(shí),使微機(jī)進(jìn)入里程計(jì)數(shù)中斷服務(wù)程序中。在該程序中,需要完成當(dāng)前行駛里程數(shù)和總額的累加操作,并將結(jié)果存入里程和總額寄存器中。里程計(jì)數(shù)中斷服務(wù)程序如下:TO: PUSH PSW PUSH ACC MOV A,#1 ADD A,M100 MOV M100,A MOV A,M100 CJNE A,#100,RETURN1 MOV M100,#0 INC 21H MOV A,21H CJNE A,#0AH, RETURN1 ;已經(jīng)到了1公里 MOV 21H,#0 MOV A,#1 ADD A,DISTANCE DA A
21、 MOV DISTANCE,A MOV A,PRICE ANL A,#0FH ADD A,COUNTL DA A MOV COUNTL,A MOV A,PRICE ANL A,#0F0H SWAP A ADD A,COUNTH DA A MOV COUNTH,A MOV A,COUNTL CJNE A,#10H,RETURN1 MOV COUNTL,#0 MOV A,#1 ADD A,COUNTH DA A MOV COUNTH,A CJNE A,#99H,RETURN1 MOV COUNTH,#0RETURN1:POP ACC POP PSW RETI3.24 中途等待中斷服務(wù)程序當(dāng)在計(jì)數(shù)狀
22、態(tài)下霍爾開關(guān)沒(méi)有輸出信號(hào),片內(nèi)的T1 定時(shí)器便被啟動(dòng),每當(dāng)計(jì)時(shí)到達(dá)5分鐘,就對(duì)當(dāng)前金額加上中途等待的單價(jià),以后每分鐘都自動(dòng)加上中途等待的單價(jià)。當(dāng)中途等待結(jié)束的時(shí)候,也就自動(dòng)切換到正常的計(jì)價(jià)。中途等待中斷服務(wù)程序如下:TOSTART: PUSH PSW PUSH ACC MOV TH1,#3CH MOV TL1,#0B0H DJNZ 22H,RETURN2 ;1S未到返回 MOV 22H,#0AH MOV A,#1 ADD A,23H DA A MOV 23H, A CJNE A,#60H,RETURN2 MOV 23H,#0 MOV A,MID1 CJNE A,#00H,W1 MOV A,#1
23、 ADD A,24H DA A MOV 24H,A CJNE A,#05H,RETURN2 INC MID1 MOV 24H,#0W1: MOV A,PRICE ADD A,COUNTL DA A MOV COUNTL,A CJNE A,#10H,RETURN2 MOV COUNTL,#0 MOV A,#1 ADD A,COUNTH DA A MOV COUNTH,A CJNE A,#99H,RETURN2 MOV COUNTH,#0RETURN2:POP ACC POP PSWRETI3.25 時(shí)間調(diào)整子程序當(dāng)S4按下即調(diào)用時(shí)間調(diào)整子程序,用加減的方式進(jìn)行調(diào)整。時(shí)間調(diào)整子程序如下:HOU_T
24、:CLR TR0 ;調(diào)整小時(shí) ACALL T100MSD ACALL T100MSD MOV LEDHL,#0AH MOV LEDHH,#0AH ACALL HMS_DIS1 ;直接調(diào)用,不經(jīng)過(guò)拆分 ACALL T100MSD ACALL T100MSD MOV SEC,#00H ACALL HMS_DIS JB S3,K42 ACALL T10MSD JB S3,K42 JNB S3,$ MOV A,HOUR ADD A,#1 DA A MOV HOUR,A CJNE A,#24H,K42 MOV HOUR,#0K42:JB S2,K43 ACALL T10MSD JB S2,K43 JNB
25、 S2,$ MOV A,HOUR ADD A,#99H DA A MOV HOUR,A CJNE A,#99H,K43 MOV HOUR,#23HK43:JB S4,HOU_T ACALL T10MSD JB S4,HOU_T JNB S4,$MIN_T:ACALL T100MSD ;調(diào)整分鐘 ACALL T100MSD MOV LEDML,#0AH MOV LEDMH,#0AH ACALL HMS_DIS1 ACALL T100MSD ACALL T100MSD MOV SEC,#0 ACALL HMS_DIS JB S3,K51 ACALL T10MSD JB S3,K51 JNB S3,
26、$ MOV A,MIN ADD A,#1 DA A MOV MIN,A CJNE A,#60H,K51 MOV MIN,#0K51:JB S2,K52 ACALL T10MSD JB S2,K52 JNB S2,$ MOV A,MIN ADD A,#99H DA A MOV MIN,A CJNE A,#99H,K52 MOV MIN,#59HK52:JB S4,MIN_T ACALL T10MSD JB S4,MIN_T JNB S4,$ AJMP KEY_MAIN3.26 顯示子程序服務(wù)程序由于是分屏顯示數(shù)據(jù),所以就要用到3個(gè)顯示子程序,分別是:時(shí)分秒顯示子程序(HMS_DIS)、金額單價(jià)顯
27、示子程序(CP_DIS)、路程單價(jià)顯示子程序(DP_DIS)。顯示子程序如下:HMS_DIS:PUSH ACC PUSH PSW SETB RS1 MOV R0,#SEC ;時(shí)分秒的拆分(三個(gè)字節(jié)) MOV R1,#LEDSL MOV R6,#03HLOOP1:MOV A,R0 MOV B,A ANL A,#0FH MOV R1,A DEC R1 MOV A,B SWAP A ANL A,#0FH MOV R1,A DEC R1 DEC R0 DJNZ R6,LOOP1 POP PSW POP ACCHMS_DIS1: PUSH ACC PUSH PSW MOV R7,#06H MOV R0,
28、#LEDSLLOOP: MOV A,R0 MOV DPTR,#TAB MOVC A,A+DPTR MOV SBUF,ABK:JBC TI,NEXT SJMP BKNEXT:DEC R0 DJNZ R7,LOOP CLR RS1 POP PSW POP ACC RETCP_DIS:PUSH ACC PUSH PSW SETB RS1 MOV R0,#PRICE ;單價(jià)拆分(兩個(gè)字節(jié)) MOV R1,#LEDDANJIAL MOV R6,#03H MOV A,R0 MOV B,A ANL A,#0FH MOV R1,A DEC R1 MOV A,B SWAP A ANL A, #0FH MOV R
29、1,A DEC R1 MOV A,LEDDANJIAL ;送單價(jià)低位 MOV DPTR,#TAB MOVC A,A+DPTR MOV SBUF,A JNB TI,$ CLR TI MOV A,LEDDANJIAH ;送單價(jià)高位 MOV DPTR,#TAB MOVC A,A+DPTR CPL ACC.4 MOV SBUF,A JNB TI,$ CLR TI MOV SBUF,#0FEH ;送短線(短線的字型碼是0FEH) JNB TI,$ CLR TI MOV R0,#COUNTH MOV R1,#LEDCOUNT2 MOV A,R0 MOV B,A ANL A,#0FH MOV R1,A DE
30、C R1 MOV A,B SWAP A ANL A,#0FH MOV R1,A MOV LEDCOUNT1,COUNTL MOV A,LEDCOUNT1 ;送總金額低位 MOV DPTR,#TAB MOVC A,A+DPTR MOV SBUF,A JNB TI,$ CLR TI MOV A,LEDCOUNT2 ;送總金額中位 MOV DPTR,#TAB MOVC A,A+DPTR CPL ACC.4 MOV SBUF,A JNB TI,$ CLR TI MOV A,LEDCOUNT3 ;送總金額高位 MOV DPTR,#TAB MOVC A,A+DPTR MOV SBUF,A JNB TI,$
31、 CLR TI CLR RS1 POP PSW POP ACC RETDP_DIS:PUSH ACC PUSH PSW SETB RS1 MOV R0,#PRICE ;單價(jià)的拆分(一個(gè)字節(jié)) MOV R1,#LEDDANJIAL MOV A,R0 MOV B,A ANL A,#0FH MOV R1,A DEC R1 MOV A,B SWAP A ANL A,#0FH MOV R1,A DEC R1 MOV A,LEDDANJIAL ;送單價(jià)低位 MOV DPTR,#TAB MOVC A,A+DPTR MOV SBUF,A JNB TI,$ CLR TI MOV A,LEDDANJIAH ;送單價(jià)高位 MOV DPTR,#TAB MOVC A,A+DPTR CPL ACC.4 MOV SBUF,A JNB TI,$ CLR TI MOV SBUF,#0FEH ; JNB TI,$ CLR TI MOV SBUF,#0FEH ;送短線 JNB TI,$ CLR TI MOV R0,#DISTANCE MOV R1,#LED
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 云原生開發(fā)工程師崗位面試問(wèn)題及答案
- 2025屆云南省尋甸縣第五中學(xué)高二化學(xué)第二學(xué)期期末教學(xué)質(zhì)量檢測(cè)試題含解析
- 安徽省江淮名校2025年高一下化學(xué)期末監(jiān)測(cè)模擬試題含解析
- 浙江省金華市磐安縣第二中學(xué)2025屆高二化學(xué)第二學(xué)期期末監(jiān)測(cè)模擬試題含解析
- 2025屆內(nèi)蒙古巴彥淖爾市臨河區(qū)三中化學(xué)高一下期末綜合測(cè)試模擬試題含解析
- 河南禽類交易管理辦法
- 擬像權(quán)力批判-洞察及研究
- 醫(yī)療項(xiàng)目預(yù)算管理辦法
- 民兵物資倉(cāng)庫(kù)管理辦法
- 華為公司采購(gòu)管理辦法
- 貴州省畢節(jié)市威寧縣2024年統(tǒng)編版小升初考試語(yǔ)文試卷(原卷版)
- 平安產(chǎn)險(xiǎn)湖北省中央財(cái)政水稻種植保險(xiǎn)條款
- 日語(yǔ)考試N5試題
- 農(nóng)商銀行考試題庫(kù)100題
- 電池的歷史與發(fā)展
- 小學(xué)學(xué)業(yè)生涯規(guī)劃與目標(biāo)
- 2023年CQE客訴工程師年度總結(jié)及下年規(guī)劃
- 國(guó)家開放大學(xué)《中國(guó)法律史》形成性考核1
- 攪拌類設(shè)備單機(jī)試車原始記錄
- 老舊小區(qū)物業(yè)投標(biāo)方案(技術(shù)標(biāo))
- 國(guó)家開放大學(xué)法學(xué)本科《商法》歷年期末考試試題及答案題庫(kù)
評(píng)論
0/150
提交評(píng)論