單片機原理與應(yīng)用技術(shù)課程設(shè)計報告_第1頁
單片機原理與應(yīng)用技術(shù)課程設(shè)計報告_第2頁
單片機原理與應(yīng)用技術(shù)課程設(shè)計報告_第3頁
單片機原理與應(yīng)用技術(shù)課程設(shè)計報告_第4頁
單片機原理與應(yīng)用技術(shù)課程設(shè)計報告_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、單片機原理與應(yīng)用技術(shù)課程設(shè)計報告題目 基于單片機控制的出租車計價器專業(yè)班級: 電氣工程及其自動化 2021年3月6日基于單片機控制的出租車計價器任務(wù)書一. 設(shè)計目的與要求1.根本功能1顯示:可以顯示 單價、里程、總金額。2停車計費功能:中途因故停車超過5分鐘后每分鐘按當(dāng)時單價的50%收費。3自動分時計費功能:白天和夜間應(yīng)能自動更換單價。2.性能 里程誤差小于2%。3.擴展功能1可增加時鐘功能。2可增加數(shù)據(jù)掉電保護功能。二.方案完成時間 三周 1第一周完成軟件和硬件的整體設(shè)計,同時按要求上交設(shè)計報告一份。 2第二周完成軟件的具體設(shè)計和硬件的制作。 3第三周完成軟件和硬件的聯(lián)合調(diào)試。目 錄 TOC

2、 o 1-3 h z u HYPERLINK l _Toc216792292 1 引言 PAGEREF _Toc216792292 h 1 HYPERLINK l _Toc216792293 2 總體設(shè)計方案 PAGEREF _Toc216792293 h 1 HYPERLINK l _Toc216792294 2.1 設(shè)計思路 PAGEREF _Toc216792294 h 1 HYPERLINK l _Toc216792295 PAGEREF _Toc216792295 h 1 HYPERLINK l _Toc216792296 3 設(shè)計原理分析 PAGEREF _Toc216792296

3、 h 2 HYPERLINK l _Toc216792297 PAGEREF _Toc216792297 h 2 HYPERLINK l _Toc216792298 PAGEREF _Toc216792298 h 2 HYPERLINK l _Toc216792299 PAGEREF _Toc216792299 h 3 HYPERLINK l _Toc216792300 PAGEREF _Toc216792300 h 3 HYPERLINK l _Toc216792301 PAGEREF _Toc216792301 h 4 HYPERLINK l _Toc216792302 3.1.5 鍵盤電

4、路 PAGEREF _Toc216792302 h 5 HYPERLINK l _Toc216792303 PAGEREF _Toc216792303 h 6 HYPERLINK l _Toc216792304 PAGEREF _Toc216792304 h 6 HYPERLINK l _Toc216792305 3.2.2外部計數(shù)中斷計程計價程序 PAGEREF _Toc216792305 h 6 HYPERLINK l _Toc216792306 4 結(jié)束語 PAGEREF _Toc216792306 h 7 HYPERLINK l _Toc216792307 參考文獻 PAGEREF _

5、Toc216792307 h 8 HYPERLINK l _Toc216792308 附錄 PAGEREF _Toc216792308 h 9 HYPERLINK l _Toc216792309 整體電路圖 PAGEREF _Toc216792309 h 9 HYPERLINK l _Toc216792310 源程序 PAGEREF _Toc216792310 h 10基于單片機控制的出租車計價器摘要:隨著出租車行業(yè)的開展,出租車行業(yè)已經(jīng)是城市交通的重要組成局部,從加強行業(yè)管理以及減少與乘客的糾紛出發(fā),以單片機為核心的智能出租車計價系統(tǒng)的開發(fā)就顯得尤其重要。本設(shè)計采用AT89S51單片機為主控

6、器,A44E霍爾傳感器測距,實現(xiàn)對出租車的多功能的計價設(shè)計,輸出采用段數(shù)碼顯示管。本設(shè)計是以單片機AT89S51為核心,通過外圍及附屬電路來實現(xiàn)的。該系統(tǒng)滿足計程、計時、計費、存儲等多種計量功能為一體的出租車計價器的實用要求。給出了硬件電路圖及主程序流程圖,闡述了軟硬件設(shè)計過程中關(guān)鍵技術(shù)的處理。關(guān)鍵詞:計價器 單片機AT89S51 1 引言出租車計價器是根據(jù)用戶的實際情況而自動顯示用車費用的自動化儀表。儀表根據(jù)用車起價、行車里程計費及中途等待時間計費三項求得客戶用車的乘車里程及總費用,最終通過數(shù)碼管顯示出來。2 總體設(shè)計方案2.1 設(shè)計思路起步費用:由用戶設(shè)定起步價保存在電路中,傳感器檢測到的

7、行車里程在起價費用里程以內(nèi),就關(guān)閉行車里程計費程序,顯示器一直顯示起價費。當(dāng)行車里程超過了起價費用里程,行車里程計費程序才啟動計費。行車里程計費:通過傳感器將汽車的行駛距離送入處理電路,然后換算成行車里程,根據(jù)行車里程和已設(shè)定的單價計算出所需的行車費用,將這個費用送入總費用顯示緩沖區(qū)。等待計費:在路途中,傳感器檢測到汽車停了下來,這時候就要啟動等候計費程序中途因故停車超過5分鐘后每分鐘按當(dāng)時單價的50%收費。整個行車過程中的總費用=起步價+行車費用+等候費,這個費用在總費用顯示緩沖區(qū)完成求和之后通過顯示器顯示出來,客戶能夠直觀明了的查看出來,十分方便。方案論證與比擬在設(shè)計時對以下兩種方案進行了

8、論證:方案一:使用傳統(tǒng)的數(shù)字電路和模擬電路來完成設(shè)計要求。在使用數(shù)模電來實現(xiàn)時,由于該系統(tǒng)比擬大,整體電路不容易實現(xiàn)。整體電路的規(guī)模較大,用到的器件多,造成故障率高,難調(diào)試。方案二:使用單片機來完成設(shè)計要求。單片機功能強大,用硬件和軟件相結(jié)合可以很容易的實現(xiàn)設(shè)計要求,且靈活性強,可以通過軟件編程來完成更多的附加功能。針對計費模式的切換,通過軟件編程就可以輕而易舉的實現(xiàn)??傮w設(shè)計框圖1如下所示。圖1總體設(shè)計框圖3 設(shè)計原理分析單片機最小系統(tǒng)單元AT89S51提供以下標準功能:4K字節(jié)閃速存儲器,128字節(jié)RAM,32根I/O引線,兩個16位定時器/計數(shù)器,五個中斷源,兩個中斷優(yōu)先級,一個全雙工串

9、行口,一個精密模擬比擬器以及片內(nèi)振蕩器和時鐘電路。此外,AT89C51是用可降到0頻率的靜態(tài)邏輯操作設(shè)計的并支持兩種可選的軟件節(jié)電工作方式。空閑方式停止CPU工作但允許RAM,定時器/計數(shù)器,串行口和中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM內(nèi)容但振蕩器停止工作并禁止所有其它部件的工作直到下一個硬件復(fù)位。AT89S51片內(nèi)的Flash ROM允許在系統(tǒng)內(nèi)改變編程序或常規(guī)的非易失性存儲器編程器來編程。單獨的單片機是不能夠工作的,它需要配合外圍電路才能實現(xiàn)各種控制。單片機最小系統(tǒng)電路由AT89S51單片機、時鐘電路和位電路組成,是整個電路的主要局部。時鐘電路用來產(chǎn)生一個時鐘信號,這個時鐘信號是控制單片機

10、內(nèi)各運算器、控制器、存儲器進行工作的一個時鐘基準。時鐘局部采用外接晶體振蕩電路,在AT89S51的18和19腳外接6MHz的英晶振并跨接兩個30pF電容就構(gòu)成了時鐘電路。復(fù)位電路是對單片機進行初始化操作,當(dāng)系統(tǒng)上電后把PC初始化為0000H,使單片機從0000H單元開始執(zhí)行程序。另外當(dāng)程序運行出錯或操作錯誤使系統(tǒng)處于死鎖狀態(tài)時,為擺脫困境,也須按復(fù)位鍵重新啟動。電路圖如圖2所示。圖2單片機最小系統(tǒng)電路霍爾電路它是本系統(tǒng)的根底元件,由它將出租車行駛時車輪所轉(zhuǎn)的圈數(shù)轉(zhuǎn)換成脈沖信號送入數(shù)據(jù)處理電路,完成相應(yīng)的操作。它用一塊A44E,安裝在車輪上來檢測信號。A44E是開關(guān)型的霍爾器件,其工作電壓范圍比

11、擬寬4.518V,其輸出的信號符合TTL電平標準,可以直接接到單片機的IO端口上,而且其最高檢測頻率可到達1MHz。在這里用555電路來產(chǎn)生一個脈沖來模擬霍爾傳感器輸出的里程脈沖,選擇P3.3 口作為信號的輸入端,內(nèi)部采用外部中斷0,555脈沖產(chǎn)生電路輸出一個脈沖信號直接加到外部中斷0上產(chǎn)生的頻率F=,引起單片機的中斷,對脈計數(shù),通過計算將脈沖增加表達在金額和里程上。具體電路如圖3所示。圖3 555脈沖產(chǎn)生電路圖掉電存儲單元單元電路掉電存儲單元的作用是在電源斷開的時候,存儲當(dāng)前設(shè)定的單價信息。AT24C02 是ATMEL公司的2KB 字節(jié)的電可擦除存儲芯片,采用兩線串行的總線和單片機通訊,電壓

12、最低可以到,額定電流為1mA,靜態(tài)電流10A(5.5V),芯片內(nèi)的資料可以在斷電的情況下保存40 年以上,而且采用8 腳的DIP 封裝,使用方便。AT24C02芯片引腳配置如圖4所示。圖4 AT24C02引腳配置圖AT24C02芯片DIP封裝,共有8個引腳,其中:A2A0 地址引腳;SDA、SCL I2C總線接口;WP 寫保護引腳,WP接VSS時,禁止寫入高位地址,WP接VDD時,允許寫入任何地址;VCC 電源端GND 接地端圖5 掉電存儲電路原理圖圖中R8、R10 是上拉電阻,其作用是減少AT24C02 的靜態(tài)功耗,由于AT24C02 的數(shù)據(jù)線和地址線是復(fù)用的,采用串口的方式傳送數(shù)據(jù),所以只

13、用兩根線SCL移位脈沖和SDA數(shù)據(jù)/地址與單片機傳送數(shù)據(jù)。每當(dāng)設(shè)定一次單價,系統(tǒng)就自動調(diào)用存儲程序,將單價信息保存在芯片內(nèi);當(dāng)系統(tǒng)重新上電的時候,自動調(diào)用讀存儲器程序,將存儲器內(nèi)的單價等信息,讀到緩存單元中,供主程序使用。3.1.4顯示單元電路設(shè)計由于設(shè)計要求有單價、路程、總金額顯示輸出,加上另外擴展了時鐘顯示包含時分秒的顯示,采用6 位LED數(shù)碼管的分屏顯示。在顯示電路里采用串中顯示的方式,74LS164是一個串行輸入,并行輸出移位存放器,并帶有去除端。從單片機串口RXD輸出的信號先送到最左邊74LS164的串行輸入端AB,由于移位脈沖的作用,使數(shù)據(jù)向右移,到達顯示的目的。移位存放器74LS

14、164還兼作數(shù)碼管的驅(qū)動。電路中的三個整流管D1D3 的作用是降低數(shù)碼管的工作電壓,增加其使用壽命。具體電路如下列圖6所示。圖6串口顯示電路圖由于所有六位段選都由單片機的RXD和TXD控制,因此,在每一瞬時,六位LED只有一個亮。要想每位顯示不同的字符,就必須使RXD和TXD連續(xù)輸出點亮各位LED,既在第一個被點亮后,下一個要顯示數(shù)據(jù)來到后,該位就自動轉(zhuǎn)到下一位數(shù)碼管顯示,如此輪流,使每位分時顯示該位應(yīng)顯示的字符。段選碼,位選碼每送一次后延時1mss100ms所以每位顯示的時間間隔不能超過20ms,并保持延時一段時間,以造成視覺暫留效果,給人看上去每位數(shù)碼管總在亮。采用了六個LED數(shù)碼管,而顯

15、示要求顯示金額,里程,單價,如果采用一屏顯示,那么顯示的總金額及里程在顯示時不能顯示十元以上的金額及十公里以上的里程。所以在設(shè)計時,這里采用分屏顯示,由S1鍵切換,默認顯示金額單價,S1按下時,顯示里程單價如圖6,延時一段時間以后,自動返回顯示金額和單價。如下列圖所示。13.51.0默認顯示22.82.0路程,單價顯示151.0等待顯示圖7 顯示模式3.1.5 鍵盤電路鍵盤采用四個獨立按鍵,接在AT89S51的P0口,如圖5所示。通電時用軟件將P1口置1,當(dāng)有鍵按下,時相對應(yīng)的接口被置0。圖8鍵盤電路按鍵S1:模式選擇按鍵。按下一次為里程單價調(diào)整,LED1亮;按下第二次為起價調(diào)整,LED2亮;

16、按下第三次為等待單價調(diào)整,LED3亮;再按下返回到了程單價調(diào)整,以此類推。按鍵S2:位調(diào)整按鍵。按下一次為最低位調(diào)整;按下第二次為次低位調(diào)整;以此類推至功能所需位數(shù)調(diào)整完或有中斷插入。按鍵S3:“+按鍵。每按一次被調(diào)整位加1。按鍵S4:“-按鍵。每按一次被調(diào)整位減1。單片機的軟件設(shè)計流程如下所示。其中初始化模塊由硬件初始化和軟件初始化兩局部組成,硬件初始化主要是對單片機及其它相關(guān)芯片進行初始化;而軟件初始化主要是對各種軟件標志進行初始化。主程序模塊在主程序模塊中,需要完成對各接口芯片的初始化、出租車起價和單價的初始化、中斷向量的設(shè)計以及開中斷、循環(huán)等待等工作。另外,在主程序模塊中還需要設(shè)置時鐘

17、存放其、里程存放器和價格存放器的進行初始化,并進行鍵盤掃描。然后,主程序?qū)⒏鶕?jù)鍵盤掃描的結(jié)果,分別完成啟動、去除、時鐘調(diào)整、計程和計價等不同的操作。其程序流程如圖9所示。開始初始化鍵盤掃描程序S2按下?SB 按路程顯示計價程序晚上S3 按SB 按下?計價程序白天YYYNNN圖9 主程序流程圖當(dāng)按下計價器計價開關(guān)時,說明準備出發(fā),計價提示電路就發(fā)出聲響,提醒乘客,車已啟動請注意平安,并啟動計價,到達目的地時效勞結(jié)束,關(guān)斷計價開關(guān),計價器會將當(dāng)前累計行車里程及價格送至顯示電路顯示出來。外部計數(shù)中斷計程計價程序發(fā)光二極管L1用來顯示車上有無乘客,沒乘客上車時,具有自鎖功能的開關(guān)SB斷開,L1亮,6個

18、數(shù)碼管顯示時間。當(dāng)有乘客上車時,把開關(guān)SB接通,L1滅,同時開始計程計價。開始計程計價時,車輪每轉(zhuǎn)一圈,由于A44E 屬于開關(guān)型的霍爾器件,其工作電壓范圍比擬寬18V,其輸出的信號符合TTL 電平標準,可以直接接到單片機的IO 端口上,而且其最高檢測頻率可到達1MHZ。在實際電路中用555產(chǎn)生一個里程脈沖來模擬霍而傳感器。選擇了P3.2 口作為信號的輸入端,內(nèi)部采用外部中斷0這樣可以減少程序設(shè)計的麻煩,出于出租車的車輪直徑D=因此車輪每轉(zhuǎn)一圈的行程為S=D=。T0每計N0=125個數(shù),相當(dāng)于汽車行駛了1252m=250m。把T0設(shè)為計數(shù)模式2,用T0中斷,計數(shù)初值為X=28-125=83H。汽

19、車每行駛250m,T0計滿數(shù)溢出一次,使T0中斷,在中斷子程序中,使某存放器加1計數(shù)。加4次相當(dāng)于汽車行駛1km,這樣行程緩沖區(qū)中行程里程加1,實現(xiàn)了行駛里程計算,單片機就控制將金額自動的加增加,其計算公式:總金額=當(dāng)前單價公里數(shù)。流程如下列圖所示。單價開始行車3公里?行車100米?金額起步價YNY里程加里程加N顯示結(jié)束圖10計價子程序流程圖4 結(jié)束語這次課程設(shè)計讓我學(xué)到了很多在課本上學(xué)不到的東西,我獲益匪淺,同時也讓我對本專業(yè)有了更進一步的了解。由于使用的是單片機作為核心的控制元件,以及靈敏的霍爾開關(guān)型器件,是本出租車計價器具有功能強、性能可靠、電路簡單、本錢低的特點,加上經(jīng)過優(yōu)化的程序,使

20、其有很高的智能化水平。但是在我們設(shè)計和調(diào)試的過程中,也發(fā)現(xiàn)了一些問題,譬如計價的金額位數(shù)有限,實際的里程可能會很遠,會超出我們的顯示范圍。計價器的設(shè)計還不夠人性化,比方加上語音的提示功能,可能會更有生命力。參考文獻1李朝青.單片機原理與接口技術(shù)M.北京:北京航空航天大學(xué)出版社,19972康華光.數(shù)字電子技術(shù)根底M第四版. 北京:高等教育出版社,20003陳永甫.新編555集成電路應(yīng)用800例 MMM.北京:機械工業(yè)出版社2007.附錄整體電路圖源程序DAY_PRICE EQU 6FHNIGHT_PRICE EQU 6EHMIDWAY_PRICE EQU 6DHSTART_PRICE EQU 6

21、CHCOUNTL EQU 6BHCOUNTH EQU 6AHM100 EQU 69H ; 外部中斷次數(shù)DISTANCE EQU 68H ; 行車距離MS100 EQU 67HSEC EQU 66HMIN EQU 65HHOUR EQU 64HLEDSL EQU 63H ; 時分鈔顯示緩沖區(qū)LEDSH EQU 62HLEDML EQU 61HLEDMH EQU 60HLEDHL EQU 5FHLEDHH EQU 5EHLEDDANJIAL EQU 5DH ; 總額,單價顯示緩沖區(qū)LEDDANJIAH EQU 5CHLINE_ EQU 5BHLEDCOUNT1 EQU 5AHLEDCOUNT2 E

22、QU 59HLEDCOUNT3 EQU 58HLEDDANJIA2L EQU 57H ; 路程,單價顯示緩沖區(qū)LEDDANJIA2H EQU 56HLINE_ EQU 55HLINE_ EQU 54HLEDDISTANCEL EQU 53HLEDDISTANCEH EQU 52HLEDDAY_PL EQU 51H ; 中途,晚上,白天顯示緩沖區(qū)LEDDAY_PH EQU 50HLEDNIG_PL EQU 4FHLEDNIG_PH EQU 4EHLEDW_PL EQU 4DHLEDW_PH EQU 4CHS11 EQU 4BHS22 EQU 4AHS33 EQU 49HS44 EQU 48HM1

23、 EQU 47HH1 EQU 46HM2 EQU 45HH2 EQU 44HPRICE EQU 43HORG 0000HAJMP MAINORG 0003HAJMP TOORG 000BHAJMP TOTIMEORG 001BHAJMP TOSTARTORG 0030HMAIN: MOV SP,#70HMOV TMOD, #11HMOV TH0, #3CHMOV TL0, #0B0HMOV TH1, #3CHMOV TL1, #0B0HMOV 22H, #0AHSETB EASETB TR0SETB EX0SETB IT0SETB ET0SETB ET1MOV R7,#34MOV R0,#69

24、HLOOPL:MOV R0,#0DEC R0DJNZ R7,LOOPLMOV COUNTL, #00H ; 起步價MOV COUNTH, #05HMOV DAY_PRICE,#25H ; 白天價格初始化MOV NIGHT_PRICE,#30H ; 晚上價格初始化MOV MIDWAY_PRICE,#10H ; 中途等待初始化MOV START_PRICE, #50H ; 起步價初始化MOV S11, #0MOV S22, #0MOV S33, #0MOV S44, #0MOV DISTANCE, #02HMOV HOUR, #12HKEY_MAIN: SETB TR0ACALL HMS_DISA

25、CALL T100MSDACALL T100MSDACALL T100MSDJB S1, KEY_MAINACALL T10MSDJB S1, KEY_MAINJNB S1,$SJMP WAIT1WA1:JB S1, K1ACALL T10MSDJB S1, K1WAIT1:JNB S1, WAIT1MOV R0, #LEDDANJIALMOV R2, #6CLR AMOV COUNTL,AMOV COUNTH,AMOV M100, AMOV DISTANCE,ABK1: MOV R0, ADEC R0DJNZ R2, BK1MOV PRICE,DAY_PRICE; 起動初始化MOV COUN

26、TL, #00H; 起步價MOV COUNTH, #05HLCALL CP_DIS; 總金額和單價顯示K1: JB S2, K2ACALL T10MSDJB S2, K2WAIT2: JNB S2, WAIT2INC S22MOV A, S22CJNE A, #1, NEXT1LCALL PA_DISLJMP KEY_DJNEXT1:CJNE A, #2, NEXT2CLR TR0LCALL HMS_DISLJMP KEY_SJNEXT2:CJNE A, #3, K2MOV S22, #0K2: JB S3, K3ACALL T10MSDJB S3, K3WAIT3:JNB S3, WAIT3

27、INC S33MOV A, S33CJNE A, #1, NXT1LCALL DP_DISNXT1: CJNE A, #2, NXT2CLR CMOV A, M2SUBB A, M1MOV M1, AKEY34: AJMP MID_PHOU_T: SETB F0 ;調(diào)用定時延時標志位LCALL T100MSDLCALL T100MSDMOV LEDHL, #0AHMOV LEDHH, #0AHLCALL HMS_DIS1;直接調(diào)用顯示,不經(jīng)過拆分程序LCALL T100MSDLCALL T100MSDMOV SEC, #0LCALL HMS_DISJB S3, KEY41MOV A, HOUR

28、ADD A, #1DA AMOV HOUR,ACJNE A, #24H, KEY41MOV HOUR, #0KEY41: JB S4, KEY42MOV A, HOURADD A, #99HDA AMOV HOUR,ACJNE A, #99H, KEY42MOV HOUR, #23HKEY42: JB S1, KEY43ACALL T10MSDJB S1, KEY43WAIT21: JNB S1, WAIT21INC S11MOV A, S11CJNE A, #1,NEXT61LJMP HOU_TNEXT61: CJNE A, #2,NEXT62LJMP MIN_TNEXT62: CJNE A

29、, #3,KEY43MOV S11, #0LJMP KEY_SJKEY43: JB S2, KEY44LCALL T10MSDJB S2, KEY44WAIT32: JNB S2, WAIT32LJMP KEY_MAINKEY44: AJMP HOU_TMIN_T: SETB F0 ;調(diào)用定時延時標志位LCALL T100MSDLCALL T100MSDMOV LEDML, #0AHMOV LEDMH, #0AHLCALL HMS_DIS1;直接調(diào)用顯示,不經(jīng)過拆分程序LCALL T100MSDLCALL T100MSDMOV SEC, #0LCALL HMS_DISJB S3, KEY51M

30、OV A, MINADD A, #1DA AMOV MIN, ACJNE A, #60H, KEY51MOV MIN, #0KEY51: JB S4, KEY52MOV A, MINADD A, #99HDA AMOV MIN, ACJNE A, #99H, KEY52MOV MIN, #59HKEY52: JB S1, KEY53ACALL T10MSDJB S1, KEY53WAIT24: JNB S1, WAIT24INC S11MOV A, S11MOV TH1, #3CHMOV TL1, #0B0HDJNZ 22H, RETURN2 ;1S未到返回MOV 22H, #0AHMOV A

31、, #1ADD A, 23HDA AMOV 23H, ACJNE A, #60H, RETURN2MOV 23H, #0MOV A, #1ADD A, 24HDA AMOV 24H,ACJNE A, #10H, RETURN2MOV 24H, #0MOV A, START_PRICEADD A, COUNTLDA AMOV COUNTL,ACJNE A, #10H, RETURN2MOV COUNTL, #0MOV A, #1ADD A, COUNTHDA AMOV COUNTH,ACJNE A, #99H,RETURN2MOV COUNTH,#0RETURN2: POP ACCPOP PSW

32、RETIHMS_DIS:PUSH ACC PUSH PSWSETB RS1MOV R0,#SEC ;時分秒的拆分(三個字節(jié))MOV R1,#LEDSLMOV R6,#03HLOOP1:MOV A, R0MOV B, AANL A, #0FHMOV R1,ADEC R1MOV A, BSWAP AANL A, #0FHMOV R1,ADEC R1DEC R0DJNZ R6,LOOP1POP PSWPOP ACCHMS_DIS1: PUSH ACCPUSH PSWMOV R7,#06HMOV R0,#LEDSLLOOP: MOV A, R0MOV DPTR,#TABMOVC A,A+DPTRMOV

33、 SBUF,ABK: JBC TI,NEXTSJMP BKNEXT: DEC R0DJNZ R7,LOOPCLR RS1POP PSWPOP ACCRETCP_DIS:PUSH ACC PUSH PSWSETB RS1MOV R0,#COUNTH ;MOV R1,#LEDCOUNT2MOV A, R0MOV B, AANL A, #0FHMOV R1,ADEC R1MOV A, BSWAP AANL A, #0FHMOV R1,AMOV LEDCOUNT1,COUNTLMOV A,LEDCOUNT1 ;送總金額低位MOV DPTR,#TABMOVC A, A+DPTRMOV SBUF,AJNB

34、 TI,$CLR TIMOV A,LEDCOUNT2 ;送總金額中位MOV DPTR,#TABMOVC A,A+DPTRMOV SBUF,AJNB TI, $CLR TIMOV A,LEDCOUNT3 ;送總金額高位MOV DPTR,#TABMOVC A,A+DPTRMOV SBUF,AJNB TI,$CLR TICLR RS1MOV SBUF,#0FEH ;送短線(短線的字型碼是0FEH)JNB TI, $CLR TIMOV R0,#PRICE;單價拆分(兩個字節(jié))MOV R1,#LEDDANJIALMOV R6,#03HMOV A, R0MOV B, AANL A, #0FHMOV R1,

35、ADEC R1MOV A, BSWAP AANL A, #0FHMOV R1,ADEC R1MOV A,LEDDANJIAL ;送單價低位MOV DPTR,#TABMOVC A,A+DPTRMOV SBUF,AJNB TI, $CLR TIMOV A, LEDDANJIAH ;送單價高位MOV DPTR,#TABMOVC A,A+DPTRMOV SBUF,AJNB TI,$CLR TIPOP PSWPOP ACCRETDP_DIS:PUSH ACC PUSH PSWSETB RS1MOV R0,#PRICE ;單價的拆分(一個字節(jié))MOV R1,#LEDDANJIALMOV A, R0MOV B, AANL A, #0FHMOV R1,ADEC R1MOV A, BSWAP AANL A, #0FHMOV R1,ADEC R1MOV A,LEDDANJIAL ;送單價低位MOV DPTR,#TABMOVC A,A+DPTRMOV SBUF,AJNB TI, $CLR TIMOV A,LEDDANJIAH ;送單價高位MOV DPTR,#TABMOVC A,A+DPTRMOV SBUF,AJNB TI,$CLR TIMOV SBUF,#0FEH ;JNB TI, $CLR TIMOV SBUF,#

溫馨提示

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

最新文檔

評論

0/150

提交評論