版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、基于單片機出租車計費器的設計系 、 部:電氣與信息工程系專業(yè):通信技術摘要本設計的是一個基于單片機AT89S52的出租車自動計費設計 ,附有復位電路,時鐘電路 ,鍵盤電路等。復位電路是單片機的初始化操作,除了正常的初始化外 ,為擺脫困境 ,通過復位電路可以重新開始。時鐘電路采用12MHz 的晶振 ,作為系統(tǒng)的時鐘源 ,具有較高的準確性。在上電時字符型液晶1602 顯示最初的起步價, 里程收費,等待時間收費三種收費,通過按鍵可以調整起步價,里程收費,等待時間收費。通過按鍵模擬出租車的運行,暫停,停止。在1602 液晶上可以顯示運行的時間,運行時暫停的時間,通過計算可以得出總共的費用和總的路程。在
2、這里主要是以 AT89S52單片機為核心控制器, P0 口接 1602 液晶顯示模塊, P1 口接按鍵的,通過按鍵輸入。關鍵字AT89S52 ;1602 液晶;出租車計費器ABSTRACTThe design is based on a monolithic integrated circuit AT89S52 taxi billing design, with reset circuit, clocking circuit, keyboard circuit. Reset circuit is initialized, besides the normal operation of the
3、initial dilemma, as a foreigner, through the reset circuit can start again. 12MHz adopts the clock circuit, as a system of crystal oscillator, higher clock source. The characters in the crystal that the initial 1602, charges, fees mileage waiting time, three buttons can be adjusted by charging fees,
4、 just waiting time, mileage. Through the simulation of the taxi, buttons, stop. Suspension In the liquid crystal display can run 1602, operation time, when suspension can be obtained by the computation of the total cost.here is mainly for the core controller, AT89S52 SCM P0 mouth after 1602 LCD modu
5、le, P1 mouth after the keys, through the keystroke. Keyword : AT89S52 ;1602 LCD ;Taxi devices 目錄1 課程設計書 3 1.1 課程設計任務 3 1.2 功能要求 3 1.3 課程設計方案 3 2 硬件電路設計 5 2.1 振蕩電路設計 4 2.2 復位電路設計 4 2.3 鍵盤接口電路 6 2.4 顯示電路 6 2.5 直流電機電路 7 2.6 單片機各引腳功能說明 7 2.7 L298 和 1602 液晶的簡介 9 3 軟件設計 13 3.1 單片機資源 13 3.2 單片機模塊 13 3.3 系統(tǒng)
6、程序流程框圖 16 4 proteus調試 17 4.1 proteus介紹 17 4.2 proteus界面介紹 17 4.3 protues的簡單使用 18 4.4 仿真結果 20心得體會 21 參考文獻 22 致謝 23 附錄1 元件清單 24 附錄2 程序清單 25 附錄3 原理圖 33 1 課程設計任務書1.1 課程設計任務設計一個出租車自動計費器, 計費包括起步價、 行車里程計費、 等待時間計費三部分,用1602液晶 顯示總金額,運行時間,暫停時間,最大值為99.9元,起步價為 5.0 元,3Km 之內起步價計費,超過3Km ,設速度為 100m/s,10s 增加 1.3 元(即
7、1KM 增加 1.3 元) ,等待時間單價為每分鐘1.5 元,用液晶顯示總里程,同時用液晶顯示等待時間和運行花費時間。設計要求:一、計費功能費用的計算是按行駛里程收費。設起步價為5.00 元。1、當里程 3km 時,每公里按 1.3 元計費3、等待累計時間 2min時,按 1.5 元/min計費二、顯示功能1、顯示行駛里程:用四位數(shù)字顯示,顯示方式為“XXXX ”,單位為 km 。計程范圍 0-99km ,精確到 1km 。2、顯示等候時間:用兩位數(shù)字顯示,顯示方式為“XX ”,單位為 min 。計時范圍 0-59min,精確到 1min 。3、顯示總費用:用四位數(shù)字顯示,顯示方式為“XXX.
8、X ”,單位為元。計價范圍 0-999.9元,精確到 0.1 元。1.2 功能要求本出租車自動計費, 上電后顯示最初的起步價, 里程計費單價, 等待時間計費單價,通過按鍵可以調節(jié)起步價,里程計費單價,等待時間計費單價。同時具有運行,暫停,停止等狀態(tài),可以顯示運行的時間,同時可以顯示暫停的時間,具有累加功能, 暫停和運行時間在暫停和運行前一次的狀態(tài)上計時。出租車停止后能夠顯示行駛的總費用。1.3 課程設計方案方案一:采用數(shù)字電子技術,利用555 定時芯片構成多諧振蕩器,或采用外圍的晶振電路作為時鐘脈沖信號,采用計數(shù)芯片對脈沖盡心脈沖的計數(shù)和分頻,最后通過譯碼電路對數(shù)據(jù)進行譯碼,將譯碼所得的數(shù)據(jù)送
9、給數(shù)碼管顯示,一下是該方案的流程框圖,方案一如圖1.1 所示:計時,計費,譯碼等待信號時鐘脈沖計費脈沖公里脈沖數(shù)碼管顯示圖 1.1 方案一案二:采用 EDA 技術,根據(jù)層次化設計理論,該設計問題自頂向下可分為分頻模塊,控制模塊 計量模塊、譯碼和動態(tài)掃描顯示模塊, 其系統(tǒng)框圖如圖1.2所示:圖 1.2 方案二方案三:采用 MCU 技術,通過單片機作為主控器,利用1602 字符液晶作為顯示電路, 采用外部晶振作為時鐘脈沖,通過按鍵可以方便調節(jié), 一下是方案三的系統(tǒng)流程圖, 本方案主要是必須對于數(shù)字電路比較熟悉,成本又高。 方案圖如圖 1.3 所示:圖 1.3 方案三方案總結:通過各個方案的比較本次
10、采用方案三,不但控制簡單, 而且成本低廉,設計電路簡單。AT89S52電源電路按鍵電路直流電機1602液晶LED 燈2 硬件電路設計2.1 振蕩電路單片機內部有一個高增益、 反相放大器, 其輸入端為芯片引腳XTAL1 ,其輸出端為引腳XTAL2 。通過這兩個引腳在芯片外并接石英晶體振蕩器和兩只電容 ( 電 容 和 一 般 取33pF ) 。 這 樣 就 構 成 一 個 穩(wěn) 定 的 自 激 振 蕩 器 。振蕩電路脈沖經過二分頻后作為系統(tǒng)的時鐘信號,再在二分頻的基礎上三分頻產生 ALE 信號,此時得到的信號時機器周期信號。振蕩電路如圖2.1 所示:圖 2.1 振蕩電路2.2 復位電路設計復位操作有
11、兩種基本形式: 一種是上電復位, 另一種是按鍵復位。 按鍵復位具有上電復位功能外,若要復位,只要按圖中的RESET 鍵,電源 VCC 經電阻R1、R2 分壓,在 RESET 端產生一個復位高電平。上電復位電路要求接通電源后,通過外部電容充電來實現(xiàn)單片機自動復位操作。上電瞬間 RESET 引腳獲得高電平,隨著電容的充電,RERST 引腳的高電平將逐漸下降。RERST 引腳的高電平只要能保持足夠的時間(2 個機器周期),單片機就可以進行復位操作。按鍵復位電路圖如圖2.2 所示。圖 2.2 復位電路2.3 鍵盤接口電路(1)獨立式鍵盤:獨立式鍵盤中,每個按鍵占用一根I/O口線,每個按鍵電路相對獨立。
12、 I/O口通過按鍵與地相連, I/O 口有上拉電阻,無鍵按下時,引腳端為高電平,有鍵按下時,引腳電平被拉低。I/O口內部有上拉電阻時,外部可不接上拉電阻。鍵盤接口電路如圖2.3 所示:圖 2.3 鍵盤接口電路2.4 顯示電路對于現(xiàn)實電路我們可以采用數(shù)碼管,也可以采用液晶顯示,液晶又分字符型和點陣型,我們使用的液晶是字符型液晶,并且?guī)ё址麕斓?,不需要查找代碼。英文字符就可。液晶電路使用時,如果發(fā)現(xiàn)液晶不亮可以調節(jié)連接液晶的點位器,改變液晶的亮度。顯示電路如圖2.4 所示:圖 2.4 顯示電路2.5 直流電機電路該直流電機主要是通過驅動芯片L298 來驅動,這款芯片可以同時驅動2個直流電機,可以用
13、直流電或PWM 脈沖波驅動第 5,7 腳為控制電機的正反轉,一個接負電壓,一個接正電壓,第6 腳 ENA 控制電機的轉速,通過PWM 可以控制轉速,這里我們給它一個高電平就可以了。直流電機電路如圖2.5 所示:圖 2.5 直流電機電路2.6 單片機各引腳功能說明AT89S52電路圖如圖 2.6 所示:VCC :供電電壓。 GND :接地。 P0 口:P0 口為一個 8 位漏級開路雙向I/O口,每腳可吸收8TTL 門流。當 P1 口的管腳第一次寫 1 時,被定義為高阻輸入。 P0 能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/ 地址的第八位。在FIASH編程 時, P0 口作為原碼輸入口,當F
14、IASH 進行校驗時, P0 輸出原碼,此時 P0 外部必須被拉高。P1 口:P1 口是一個內部提供上拉電阻的8 位雙向 I/O口,P1 口緩沖器能接收輸出 4TTL 門電流。圖 2.6AT89S52 P1 口管腳寫入 1 后,被內部上拉為高,可用作輸入,P1 口被外部下拉為低電平時,將輸出電流,這是由于內部上拉的緣故。在FLASH編程和校驗時,P1 口作為第八位地址接收。P2 口:P2 口為一個內部上拉電阻的8 位雙向 I/O口,P2 口緩沖器可接收,輸出 4 個 TTL 門電流,當 P2 口被寫“ 1”時,其管腳被內部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2 口的管腳被外部拉低,將
15、輸出電流。這是由于內部上拉的緣故。P2 口當用于外部程序存儲器或16 位地址外部數(shù)據(jù)存儲器進行存取時, P2 口輸出地址的高八位。在給出地址“1”時,它利用內部上拉優(yōu)勢,當對外部八位地址數(shù)據(jù)存儲器進行讀寫時,P2 口輸出其特殊功能寄存器的內容。 P2 口在 FLASH編程和校驗時接收高八位地址信號和控制信號。P3 口:P3 口管腳是 8 個帶內部上拉電阻的雙向I/O口,可接收輸出 4 個TTL 門電流。當 P3 口寫入“ 1”后,它們被內部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3 口將輸出電流 (ILL )這是由于上拉的緣故。P3 口也可作為 AT89S52的一些特殊功能
16、口,如表2.1 所示。表 2.1 AT89S52的一些特殊功能口管腳備選功能P3.0 RXD (串行輸入口)P3.1 TXD (串行輸出口)P3.2 /INT0 (外部中斷0)P3.3 /INT1 (外部中斷1)P3.4 T0 (記時器0 外部輸入)P3.5 T1 (記時器1 外部輸入)P3.6 /WR (外部數(shù)據(jù)存儲器寫選通)P3.7 /RD (外部數(shù)據(jù)存儲器讀選通)P3 口同時為閃爍編程和編程校驗接收一些控制信號。RST:復位輸入。當振蕩器復位器件時,要保持RST 腳兩個機器周期的高電平時間。ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編
17、程期間,此引腳用于輸入編程脈沖。在平時,ALE 端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6 。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數(shù)據(jù)存儲器時,將跳過一個ALE 脈沖。如想禁止ALE 的輸出可在 SFR8EH 地址上置 0。此時,ALE 只有在執(zhí)行 MOVX ,MOVC 指令是 ALE 才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE 禁止,置位無效。/PSEN :外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)。/EA/VP
18、P: 當 /EA保 持 低 電 平 時 , 則 在 此 期 間 外 部 程 序 存 儲 器(0000H-FFFFH),不管是否有內部程序存儲器。注意加密方式1 時,/EA將內部鎖定為RESET ;當/EA端保持高電平時,此間內部程序存儲器。在FLASH 編程期間,此引腳也用于施加12V 編程電源( VPP)。XTAL1 :反向振蕩放大器的輸入及內部時鐘工作電路的輸入。XTAL2 :來自反向振蕩器的輸出。2.7 L298 和 1602 液晶的簡介2.7.1 字符液晶 1602 的介紹字符型液晶 1602 主要技術參數(shù)如表2.2 所示:表 2.2 字符型液晶1602主要技術參數(shù)顯示容量:16*2
19、個字符芯片工作電壓:4.5 5.5V 工作電流:2.0mA(5.0V) 模塊最佳工作電壓:5.0V 字符尺寸:2.95*4.35(W*H )mm 接口信號說明如表2.3 所示:表 2.3 1602接口信號說明編號符號引腳說明編號符號引腳說明1 Vss 電源地9 D2 DataI/O 2 VDD 電源正極10 D3 DataI/O 3 VL 液晶顯示偏壓信號11 D4 DataI/O 4 Rs 數(shù)據(jù) / 命令選擇端( H/L )12 D5 DataI/O 5 R/W 讀/ 寫選擇端( H/L )13 D6 DataI/O 6 E 使能信號14 D7 DataI/O 7 D0 DataI/O 15
20、 BLA 背光源正極8 D1 DataI/O 16 BLK 背光源負極控制器接口說明( HD44780及兼容芯片)1、 基本操作時序a 讀狀態(tài):輸入: Rs=L, Rw=H, E=H 輸出: D0 D7= 狀態(tài)字b 寫指令:輸入: Rs=L, Rw=L, D0D7= 指令碼輸出:無E=高脈沖C 讀數(shù)據(jù):輸入: Rs=H, Rw=L, E=H 輸出: D0 D7= 數(shù)據(jù)d 寫數(shù)據(jù):輸入: Rs=H, Rw=L, D0D7= 數(shù)據(jù)輸出:無E=高脈沖狀態(tài)字說明如表 2.4 所示:表 2.4 狀態(tài)字說明( a)STA7 D7 STA6 D6 STA5 D5 STA4 D4 STA3 D3 STA2 D
21、2 STA1 D1 STA0 D0 表 2.5 狀態(tài)字說明(b)STA0-6 當前數(shù)據(jù)地址指針的數(shù)值STA7 讀寫操作使能1:禁止0:允許注:對控制器進行讀寫操作之前,都必須進行讀寫檢測,確保STA7 為 0 RAM 地址映射圖控制器內部帶有80*8 位(80 字節(jié))的 RAM 緩沖區(qū),對應關系如下圖2.6 所示:表 2.6 RAM地址映射圖LCD16字 *2 行00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 27 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 67 指令說明初始化設置
22、顯示模式設置如表2.7 所示:表 2.7 顯示模式設置指令碼功能0 0 1 1 1 0 0 0 設置 16*2顯示, 5*7 點陣, 8 位數(shù)據(jù)接口顯示開關及光標設置如表2.8 所示:表 2.8 顯示開關及光標設置指令碼功能0 0 0 0 1 D C B D=1 開顯示;D=0 關顯示C=1 顯示光標;C=0 不顯示光標B=1 光標閃爍;B=0 光標不顯示0 0 0 0 0 1 N S N=1 當讀或寫一個字符后地址指針加一,且光標加一N=0 當讀或寫一個字后地址指針減一,且光標減一S=1 當寫一個字符后,整屏顯示左移(N=1)或右移( N=0 ) ,以得到光標不移動而屏幕移動的效果S=0 當
23、寫一個字符,整屏顯示不移動數(shù)據(jù)控制控制器內部沒有一個數(shù)據(jù)地址指針,用戶可通過它們來訪問內部的全部80 字節(jié)RAM 。數(shù)據(jù)指針設置如表2.9 所示表 2.9 數(shù)據(jù)指針設置(a)指令碼功能80H+ 地址碼( 027H, 4067H )設置數(shù)據(jù)地址指針讀數(shù)據(jù):見 c 寫數(shù)據(jù):見 d 其它設置如表 2.10 所示表 2.10 數(shù)據(jù)指針設置(b)指令碼功能01H 顯示清屏: 1. 數(shù)據(jù)指針清零2. 所有顯示清零02H 顯示回車: 1. 數(shù)據(jù)指針清零供電電路如圖 2.7 所示:單電源 (字符型模塊 )雙電源 (字符和圖形型模塊 )圖 2.7 供電電路3 軟件設計3.1 單片機資源使用在本次設計中像電路鍵盤
24、用到了P1 口, 其中 P1.0 到 P1.4 口作為鍵盤的輸入,直流電機電路的控制線用了P2 口線, P3.0 、P3.1 、P3.2 分別為 led信號控制腳。顯示電路用到了P0 和 P2 口,P0 口為液晶的數(shù)據(jù)口。3.2 單片機軟件模塊設計3.2.1 中斷子函數(shù)對于中斷程序,只要定時器計數(shù)滿就會產生中斷50ms 中斷一次,共計 20次,秒鐘加 1,秒鐘計滿再分鐘加,當分鐘加到99 時全部清零。以下是中斷子函數(shù)的流程圖如圖3.1 所示:圖 3.1 中斷子程序流程圖3.2.2 判鍵子函數(shù)對于獨立式鍵盤判鍵,首先看有鍵按下不,如果有鍵按下則延時一會兒,在判斷是否真的有鍵按下, 如果確實有鍵按
25、下, 在判鍵釋放, 最后執(zhí)行鍵功能程序。判鍵子函數(shù)的流程框圖如圖3.2 所示:圖 3.2 判鍵子程序流程圖3.2.3 顯示子程序1602 液晶是字符型液晶,它的內部自帶字符庫,它可以寫兩行的字符,同時每行可以寫 40 個字符,在寫顯示程序的時候,我們先寫命令,再設定字符顯示,最后寫數(shù)據(jù), 在每寫一次命令或數(shù)據(jù)都需要判斷液晶是否忙。液晶顯示程序流程圖如圖 3.3 所示:L CD初 始 化開 始L CD寫 命 令LCD判 忙P0 . 7 =0?寫 數(shù) 據(jù)判 忙P0 . 7 =0?寫 完 成了 ?寫 完 成了 ?設 置 字 符位 置結 束否否是是否否是是3.3 顯示子程序流程圖3.3 總程序流程框圖
26、整體程序的流程框圖如圖3.4 所示:圖 3.4 整體程序的流程框圖定 時 器 初 始 化開 始液 晶 初 始 化判 斷 按 鍵 函 數(shù) 1V=?Val ue1 +1 0Val ue2 +5Val u e3 +5數(shù) 據(jù) 處 理顯 示 函 數(shù)Ju mp_ i n =1 ?液 晶 清 屏判 斷 按 鍵 函 數(shù)V1= ?運 行暫 停停 止數(shù) 據(jù) 處 理顯 示 函 數(shù)J ump_ ou t =1 ?液 晶 清 屏清 零 函 數(shù)結 束否是V=1V=2V=3否是V1=1V1=2V1=3是否否是附錄 2 程序清單/* /日期: 2010.5.9 /姓名:肖銀偉/名稱:出租車自動計費器/公司;湖南工學院/* #
27、include #define uchar unsigned char #define uint unsigned int sbit rw=P21;/讀或寫sbit rs=P20;/ sbit en=P22;/讀寫時能控制端sbit b=P07;/液晶判斷忙標志位void lcd_init();/ void wr_com(uchar command);/液晶寫命令void wr_data(uchar data0);/寫數(shù)據(jù)void lcd_clear();/液晶清屏void lcd_set();/設置液晶的起始位置void busy();/液晶判忙函數(shù)void display();/顯示voi
28、d printstring(uchar *s);/直接寫字符void display1(); void key1(); sbit K=P10; sbit K1=P11; sbit K2=P12; sbit K3=P13; sbit K4=P14; sbit g=P27; sbit aa=P23; sbit bb=P24; sbit cc=P25; sbit led_run=P30; sbit led_await=P31; sbit led_stop=P32; bit f_start;/開始標志位bit jump_in;/跳入開始標志位bit jump_out;/跳出標志位void key();
29、 uchar code table=0 x30,0 x31,0 x32,0 x33,0 x34,0 x35,0 x36,0 x37,0 x38,0 x39,0 x70;/字符 1,2,3, , , , ,0 uchar dispbuf=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0; uchar dispbuf1=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0; uchar v,v1;/按鍵次數(shù)累加變量uchar i; void init();/ void chuli();/ void chuli1();/ void delay(uchar t);/ void clea
30、r();/ void set(uchar x);/ void set1(uchar y);/ uchar command;/ uchar count,count1;/ uchar second,minite,second1,minite1;/ unsigned int tt,tt1;/ unsigned char value1=50,value2=25,value3=15;/起始價,運行價,等待價unsigned int money;/金額變量/* void main() init(); lcd_init(); while(1) key1(); chuli(); display(); if(j
31、ump_in=1) jump_in=0; lcd_init(); while(1) key(); chuli1(); display1(); if(jump_out=1) lcd_init(); jump_out=0; clear(); break; /* void clear()/跳出下一次 TR0=0; TR1=0; money=0; second=0; second1=0; minite=0; minite1=0; value1=50; value2=25; value3=15; led_run=1; led_await=1; led_stop=1; v=0; v1=0; for(i=0
32、;i15;i+) dispbufi=0; dispbuf1i=0; /* void init()/定時器初始化 TMOD=0 x11; TH0=(65536-50000)/256; TL0=(65536-50000)%256; TH1=(65536-50000)/256; TL1=(65536-50000)%256; ET0=1; ET1=1; EA=1; TR0=0; TR1=0; /* void t0_(void) interrupt 1 using 0/定時器 0 中斷 count+; if(count=20) count=0; second+; if(second=60) second
33、=0; minite+; if(minite=99) minite=0; TH0=(65536-50000)/256; TL0=(65536-50000)%256; dispbuf10=minite/10; dispbuf11=minite%10; dispbuf12=second/10; dispbuf13=second%10; /* void t1_(void) interrupt 3 using 3/定時器 1 中斷 count1+; if(count1=20) count1=0; second1+; if(second1=60) second1=0; minite1+; if(mini
34、te1=99) minite1=0; TH1=(65536-50000)/256; TL1=(65536-50000)%256; dispbuf14=minite1/10; dispbuf15=minite1%10; dispbuf16=second1/10; dispbuf17=second1%10; /* void lcd_init()/液晶初始化 wr_com(0 x3c); wr_com(0 x06); wr_com(0 x0c); wr_com(0 x01); /* void wr_com(uchar command)/液晶寫命令 busy(); rs=0; rw=0; P0=com
35、mand; en=1; en=0; /* void wr_data(uchar data0)/液晶寫數(shù)據(jù) busy(); rs=1; rw=0; P0=data0; en=1; en=0; /* void busy()/液晶判忙 while(1) en=0; rs=0; rw=1; P0=0 xff; en=1; if(b!=1)break; en=0; /* void chuli()/數(shù)值處理 dispbuf0=value1/100%10; dispbuf1=value1/10%10; dispbuf2=value1%10; dispbuf3=value2/100%10; dispbuf4=
36、value2/10%10; dispbuf5=value2%10; dispbuf6=value3/100%10; dispbuf7=value3/10%10; dispbuf8=value3%10; /* void display() set(0); printstring(step :); wr_data(tabledispbuf0); wr_data(tabledispbuf1); printstring(.); wr_data(tabledispbuf2); set(16); printstring(mileage :); wr_data(tabledispbuf3); wr_data
37、(tabledispbuf4); printstring(.); wr_data(tabledispbuf5); set1(0); printstring(await :); wr_data(tabledispbuf6); wr_data(tabledispbuf7); printstring(.); wr_data(tabledispbuf8); /* set1(16); printstring(run : ); wr_data(tabledispbuf10); wr_data(tabledispbuf11); printstring(:); wr_data(tabledispbuf12);
38、 wr_data(tabledispbuf13); */ /* void chuli1() if(f_start=1) tt=minite*60+second;/總時間tt1=minite1;/等待時間money=value1+value2*0.1*tt+value3*tt1;/起始價 +每公里價 *時間 *速度 +等待價 *等待時間 else if(f_start=0) money=0; dispbuf18=money/100%10;/ dispbuf19=money/10%10;/ dispbuf110=money%10;/ /* void display1() set(0); print
39、string(run: ); wr_data(tabledispbuf10); wr_data(tabledispbuf11); printstring(:); wr_data(tabledispbuf12); wr_data(tabledispbuf13); set(14); printstring(await:); wr_data(tabledispbuf14); wr_data(tabledispbuf15); printstring(:); wr_data(tabledispbuf16); wr_data(tabledispbuf17); set1(0); printstring(su
40、m is: ); wr_data(tabledispbuf18); wr_data(tabledispbuf19); printstring(.); wr_data(tabledispbuf110); /* void printstring(uchar *s)/行字符函數(shù) while(*s) wr_data(*s+); /* void key() if(K3=0) delay(50); if(K3=0) while(K3=0); v1+; if(v1=4) v1=0; switch(v1) case 1:f_start=1;TR0=1;TR1=0;led_run=0;led_await=1;l
41、ed_stop=1;aa=1;bb=0;cc=1;break; case 2:TR0=0;TR1=1;led_run=1;led_await=0;led_stop=1;aa=0;cc=0;break; case 3:TR0=0;TR1=0;led_run=1;led_await=1;led_stop=0;break; if(K4=0) delay(50); if(K4=0) while(K4=0); jump_out=1; /* void delay(uchar t) while(-t); /* void set(uchar x) command=0 x80+x; wr_com(command
42、); /* void set1(uchar y) command=0 xc0+y; wr_com(command); /* void key1() if(K=0) delay(100); if(K=0) while(K=0); v+; if(v=4) v=0; switch(v) case 0:break; case 1:if(K1=0)while(K1=0);value1=value1+10;break;/起步價加 10 case 2:if(K1=0)while(K1=0);value2=value2+5;break;/單價加 5 case 3:if(K1=0)while(K1=0);val
43、ue3=value3+5;break;/停止加 5 if(K2=0) delay(50); if(K2=0) while(K2=0); jump_in=1;/ 袁節(jié)膅薂羄肅蒃薁蚃芀荿薀螆肅芅蕿袈羋膁蚈羀肁蒀蚇蝕襖莆蚇螂肀莂蚆羅袂羋蚅蚄膈膄蚄螇羈蒂蚃衿膆莈螞羈罿芄螁蟻膄膀螁螃羇葿螀裊膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃螞肂莈蒂螄羋芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羈莀蒈羃膇芆蕆蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃蠆羆艿薃袁節(jié)膅薂羄肅蒃薁蚃芀荿薀螆肅芅蕿袈羋膁蚈羀肁蒀蚇蝕襖莆蚇螂肀莂蚆羅袂羋蚅蚄膈膄蚄螇羈蒂蚃衿膆莈螞羈罿芄螁蟻膄膀螁螃羇葿螀裊膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃螞肂莈蒂螄羋芄蒁袆肀膀蒀
44、罿袃薈葿螈聿蒄葿袁羈莀蒈羃膇芆蕆蚃羀膂蒆螅膅蒁薅袇羈莇襖羋蕆袇螀芇蕿蝕聿芆艿蒃肅芅蒁螈羈芄薃薁袆芃芃螆螂芃蒞蕿肁節(jié)蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈螞螂羂薁袈肀肁芀蟻羆肁莃袆袂肀薅蠆袈聿蚇蒂膇肈莇螇肅肇葿薀罿肆薂螆裊肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羈膂莈蚅袇膁蒀袀螃膀薂蚃肂腿節(jié)衿羈腿莄螞襖羋蕆袇螀芇蕿蝕聿芆艿蒃肅芅蒁螈羈芄薃薁袆芃芃螆螂芃蒞蕿肁節(jié)蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈螞螂羂薁袈肀肁芀蟻羆肁莃袆袂肀薅蠆袈聿蚇蒂膇肈莇螇肅肇葿薀罿肆薂螆裊肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羈膂莈蚅袇膁蒀袀螃膀薂蚃肂腿節(jié)衿羈腿莄螞襖羋蕆袇螀芇蕿蝕聿芆艿蒃肅芅蒁螈羈
45、芄薃薁袆芃芃螆螂芃蒞蕿肁節(jié)蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈螞螂羂薁袈肀肁芀蟻羆肁莃袆袂肀薅蠆袈聿蚇蒂膇肈莇螇肅肇葿薀罿肆薂螆裊肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羈膂莈蚅袇膁蒀袀螃膀薂蚃肂腿節(jié)衿羈腿莄螞襖羋蕆袇螀芇蕿蝕聿芆艿蒃肅芅蒁螈羈芄薃薁袆芃芃螆螂芃蒞蕿肁節(jié)蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈螞螂羂薁袈肀肁芀蟻羆肁莃袆袂肀薅蠆袈聿蚇蒂膇肈莇螇肅肇葿薀罿肆薂螆裊肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羈膂莈蚅袇膁蒀袀螃膀薂蚃肂腿節(jié)衿羈腿莄螞襖羋蕆袇螀芇蕿蝕聿芆艿蒃肅芅蒁螈羈芄薃薁袆芃芃螆螂芃蒞蕿肁節(jié)蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈螞螂羂薁袈肀肁芀蟻羆肁莃袆袂肀薅蠆袈聿蚇蒂膇肈莇螇肅肇葿薀罿肆薂螆裊肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羈膂莈蚅袇膁蒀袀螃膀薂蚃肂腿節(jié)衿羈腿莄螞襖羋蕆袇螀芇蕿蝕聿芆艿蒃肅芅蒁螈羈芄薃薁袆芃芃螆螂芃蒞蕿肁節(jié)蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈螞螂羂薁袈肀肁芀蟻羆肁莃袆袂肀薅蠆袈聿蚇蒂膇肈莇螇肅肇葿薀罿肆薂螆裊肅芁薈螁膅莃螄聿膄蒆薇袁節(jié)膅薂羄肅蒃薁蚃芀荿薀螆肅芅蕿袈羋膁蚈羀肁蒀蚇蝕襖莆蚇螂肀莂蚆羅袂羋蚅蚄膈膄蚄螇羈蒂蚃衿膆莈螞羈罿芄螁蟻膄膀螁螃羇葿螀裊膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃螞肂莈蒂螄羋芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羈莀蒈羃膇芆蕆蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 綜合制劑車間課程設計
- 中西醫(yī)助理醫(yī)師考試中醫(yī)內科學總結要點大全
- 自然大調音階的課程設計
- 中考英語各種題材閱讀理解強化訓練(附詳解)
- 學年論文和課程設計
- (CFG及真空聯(lián)合堆載預壓)軟基處理施工方案
- 《機械通氣的應用》課件
- 油庫課程設計書封面圖案
- 模擬電子琴設計課程設計
- 知識產權活動課程設計
- 新流動資金測算表(帶公式)
- GB/T 4214.3-2023家用和類似用途電器噪聲測試方法洗碗機的特殊要求
- 建設工程質量控制講義三
- YY/T 0606.7-2008組織工程醫(yī)療產品第7部分:殼聚糖
- 2023年遼寧軌道交通職業(yè)學院高職單招(英語)試題庫含答案解析
- GB/T 29076-2021航天產品質量問題歸零實施要求
- DL-T 5190.1-2022 電力建設施工技術規(guī)范 第1部分:土建結構工程(附條文說明)
- 殯葬服務人才需求調研報告
- 降低銳器盒不規(guī)腎內科品管圈課件
- 《了凡四訓》課件
- 細節(jié)描寫優(yōu)秀課件
評論
0/150
提交評論