版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 基于單片機出租車計費器的設(shè)計</p><p><b> 摘 要</b></p><p> 本設(shè)計的是一個基于單片機AT89S52的出租車自動計費設(shè)計,附有復(fù)位電路,時鐘電路,鍵盤電路等。復(fù)位電路是單片機的初始化操作,除了正常的初始化外,為擺脫困境,通過復(fù)位電路可以重新開始。時鐘電路采用12MHz的晶振,作為系統(tǒng)的時鐘源,具有較高的準(zhǔn)確性。&
2、lt;/p><p> 在上電時字符型液晶1602顯示最初的起步價,里程收費,等待時間收費三種收費,通過按鍵可以調(diào)整起步價,里程收費,等待時間收費。通過按鍵模擬出租車的運行,暫停,停止。在1602液晶上可以顯示運行的時間,運行時暫停的時間,通過計算可以得出總共的費用和總的路程。在這里主要是以AT89S52單片機為核心控制器,P0口接1602液晶顯示模塊,P1口接按鍵的,通過按鍵輸入。</p><p
3、> 關(guān)鍵字 AT89S52;1602液晶;出租車計費器</p><p><b> ABSTRACT</b></p><p> The design is based on a monolithic integrated circuit AT89S52 taxi billing design, with reset circuit, clocking ci
4、rcuit, keyboard circuit. Reset circuit is initialized, besides the normal operation of the initial dilemma, as a foreigner, through the reset circuit can start again. 12MHz adopts the clock circuit, as a system of crysta
5、l oscillator, higher clock source.</p><p> The characters in the crystal that the initial 1602, charges, fees mileage waiting time, three buttons can be adjusted by charging fees, just waiting time, mileage
6、. 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
7、 controller, AT89S52 SCM P0 mouth after 1602 LCD module, P1 mouth after the keys, through the keystroke.</p><p> Keyword: AT89S52;1602 LCD;Taxi devices</p><p><b> 目 錄</b></p>
8、;<p> 1 課程設(shè)計書·································
9、····································
10、3;·················3</p><p> 1.1 課程設(shè)計任務(wù)·············
11、83;····································&
12、#183;·························3</p><p> 1.2 功能要求·····
13、183;····································
14、····································
15、3;····3</p><p> 1.3 課程設(shè)計方案··························
16、83;····································&
17、#183;············3</p><p> 2 硬件電路設(shè)計··················
18、183;····································
19、·····························5</p><p> 2.1 振蕩電路設(shè)計··
20、;····································
21、83;····································&
22、#183;4</p><p> 2.2 復(fù)位電路設(shè)計······························
23、····································
24、3;··········4</p><p> 2.3 鍵盤接口電路····················
25、83;····································&
26、#183;···················6</p><p> 2.4 顯示電路···········
27、183;····································
28、···································6</p>
29、;<p> 2.5 直流電機電路································
30、83;····································&
31、#183;·······7</p><p> 2.6 單片機各引腳功能說明······················
32、183;····································
33、·····7</p><p> 2.7 L298和1602液晶的簡介························
34、83;····································9
35、</p><p> 3 軟件設(shè)計·······························
36、3;····································
37、183;····················13</p><p> 3.1 單片機資源··········&
38、#183;····································
39、;·······························13</p><p> 3.2 單片機
40、模塊····································
41、183;····································
42、·····13</p><p> 3.3 系統(tǒng)程序流程框圖·························
43、183;····································
44、······16</p><p> 4 proteus調(diào)試························
45、83;····································&
46、#183;······················17</p><p> 4.1 proteus介紹·······
47、183;····································
48、··································17</p>&l
49、t;p> 4.2 proteus界面介紹································
50、83;····································&
51、#183;·17</p><p> 4.3 protues的簡單使用····························
52、;····································
53、83;···18</p><p> 4.4 仿真結(jié)果···························
54、83;····································&
55、#183;··················20</p><p> 心得體會·············
56、····································
57、3;····································
58、183;·······21</p><p> 參考文獻························&
59、#183;····································
60、;·································22</p><p&g
61、t; 致謝···································
62、3;····································
63、183;···························23</p><p> 附錄1 元件清單···
64、183;····································
65、····································
66、3;······24</p><p> 附錄2 程序清單························
67、3;····································
68、183;·····················25</p><p> 附錄3 原理圖·········
69、83;····································&
70、#183;····································
71、;···33</p><p> 1 課程設(shè)計任務(wù)書</p><p> 1.1 課程設(shè)計任務(wù)</p><p> 設(shè)計一個出租車自動計費器,計費包括起步價、行車?yán)锍逃嬞M、等待時間計費三部分,用1602液晶 顯示總金額,運行時間,暫停時間,最大值為99.9元,起步價為5.0元,3Km之內(nèi)起步價計費,超過3Km,設(shè)速度為100m/s,
72、10s增加1.3元(即1KM增加1.3元),等待時間單價為每分鐘1.5元,用液晶顯示總里程,同時用液晶顯示等待時間和運行花費時間。</p><p><b> 設(shè)計要求:</b></p><p><b> 一、計費功能</b></p><p> 費用的計算是按行駛里程收費。設(shè)起步價為5.00元。</p>
73、<p> 1、當(dāng)里程<3km時,按起價計算費用</p><p> 2、當(dāng)里程>3km時,每公里按1.3元計費</p><p> 3、等待累計時間>2min時,按1.5元/min計費</p><p><b> 二、顯示功能</b></p><p> 1、顯示行駛里程:用四位數(shù)字顯示,顯
74、示方式為“XXXX”,單位為km。計程范圍0-99km,精確到1km。</p><p> 2、顯示等候時間:用兩位數(shù)字顯示,顯示方式為“XX”,單位為min。計時范圍0-59min,精確到1min。</p><p> 3、顯示總費用:用四位數(shù)字顯示,顯示方式為“XXX.X”,單位為元。計價范圍0-999.9元,精確到0.1元。</p><p><b>
75、 1.2 功能要求</b></p><p> 本出租車自動計費,上電后顯示最初的起步價,里程計費單價,等待時間計費單價,通過按鍵可以調(diào)節(jié)起步價,里程計費單價,等待時間計費單價。同時具有運行,暫停,停止等狀態(tài),可以顯示運行的時間,同時可以顯示暫停的時間,具有累加功能,暫停和運行時間在暫停和運行前一次的狀態(tài)上計時。出租車停止后能夠顯示行駛的總費用。</p><p> 1.3
76、 課程設(shè)計方案</p><p> 方案一:采用數(shù)字電子技術(shù),利用555定時芯片構(gòu)成多諧振蕩器,或采用外圍的晶振電路作為時鐘脈沖信號,采用計數(shù)芯片對脈沖盡心脈沖的計數(shù)和分頻,最后通過譯碼電路對數(shù)據(jù)進行譯碼,將譯碼所得的數(shù)據(jù)送給數(shù)碼管顯示,一下是該方案的流程框圖,方案一如圖1.1所示:</p><p><b> 圖1.1方案一</b></p><
77、p> 案二:采用EDA技術(shù),根據(jù)層次化設(shè)計理論,該設(shè)計問題自頂向下可分為分頻模塊,控制模塊 計量模塊、譯碼和動態(tài)掃描顯示模塊,其系統(tǒng)框圖如圖1.2所示:</p><p><b> 圖1.2方案二</b></p><p> 方案三:采用MCU技術(shù),通過單片機作為主控器,利用1602字符液晶作為顯示電路,采用外部晶振作為時鐘脈沖,通過按鍵可以方便調(diào)節(jié),一下是方
78、案三的系統(tǒng)流程圖,本方案主要是必須對于數(shù)字電路比較熟悉,成本又高。方案圖如圖1.3所示:</p><p><b> 圖1.3方案三</b></p><p> 方案總結(jié):通過各個方案的比較本次采用方案三,不但控制簡單,而且成本低廉,設(shè)計電路簡單。</p><p><b> 2硬件電路設(shè)計</b></p>
79、<p><b> 2.1 振蕩電路</b></p><p> 單片機內(nèi)部有一個高增益、反相放大器,其輸入端為芯片引腳XTAL1,其輸出端為引腳XTAL2。通過這兩個引腳在芯片外并接石英晶體振蕩器和兩只電容(電容和一般取33pF)。這樣就構(gòu)成一個穩(wěn)定的自激振蕩器。 振蕩電路脈沖經(jīng)過二分頻后作為
80、系統(tǒng)的時鐘信號,再在二分頻的基礎(chǔ)上三分頻產(chǎn)生ALE信號,此時得到的信號時機器周期信號。振蕩電路如圖2.1所示:</p><p><b> 圖2.1振蕩電路</b></p><p> 2.2 復(fù)位電路設(shè)計 </p><p> 復(fù)位操作有兩種基本形式:一種是上電復(fù)位,另一種是按鍵復(fù)位。按鍵復(fù)位具有上電復(fù)位功能外,若要復(fù)位,只要按圖中的RES
81、ET鍵,電源VCC經(jīng)電阻R1、R2分壓,在RESET端產(chǎn)生一個復(fù)位高電平。上電復(fù)位電路要求接通電源后,通過外部電容充電來實現(xiàn)單片機自動復(fù)位操作。上電瞬間RESET引腳獲得高電平,隨著電容的充電,RERST引腳的高電平將逐漸下降。RERST引腳的高電平只要能保持足夠的時間(2個機器周期),單片機就可以進行復(fù)位操作。按鍵復(fù)位電路圖如圖2.2所示。</p><p><b> 圖2.2復(fù)位電路</b&g
82、t;</p><p> 2.3 鍵盤接口電路 </p><p> 獨立式鍵盤:獨立式鍵盤中,每個按鍵占用一根I/O口線,每個按鍵電路相對獨立。I/O口通過按鍵與地相連,I/O口有上拉電阻,無鍵按下時,引腳端為高電平,有鍵按下時,引腳電平被拉低
83、。I/O口內(nèi)部有上拉電阻時,外部可不接上拉電阻。鍵盤接口電路如圖2.3所示:</p><p> 圖2.3鍵盤接口電路</p><p><b> 2.4 顯示電路</b></p><p> 對于現(xiàn)實電路我們可以采用數(shù)碼管,也可以采用液晶顯示,液晶又分字符型和點陣型,我們使用的液晶是字符型液晶,并且?guī)ё址麕斓?,不需要查找代碼。英文字符就可。
84、液晶電路使用時,如果發(fā)現(xiàn)液晶不亮可以調(diào)節(jié)連接液晶的點位器,改變液晶的亮度。顯示電路如圖2.4所示: </p><p><b> 圖2.4顯示電路 </b></p><p> 2.5 直流電機電路</p><p> 該直流電機主要是通過驅(qū)動芯片L298來驅(qū)動,這款芯片可以同時驅(qū)動2個直流電機,可以用直流電或PWM脈沖波驅(qū)動第5,7
85、腳為控制電機的正反轉(zhuǎn),一個接負電壓,一個接正電壓,第6腳ENA控制電機的轉(zhuǎn)速,通過PWM可以控制轉(zhuǎn)速,這里我們給它一個高電平就可以了。直流電機電路如圖2.5所示:</p><p> 圖2.5直流電機電路</p><p> 2.6 單片機各引腳功能說明</p><p> AT89S52電路圖如圖2.6所示:</p><p> VCC:
86、供電電壓。GND:接地。P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門流。當(dāng)P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當(dāng)FIASH進行</p><p> 校驗時,P0輸出原碼,此時P0外部必須被拉高。
87、 </p><p> P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。 圖2.6AT89S52</p><p> P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。 </p><
88、;p> P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當(dāng)P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進行讀寫時,P2口輸出其特殊功能寄存器
89、的內(nèi)容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。</p><p> P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口也可作為AT89S52的一些特殊功能口,如表2.1所示。</p><p>
90、表2.1 AT89S52的一些特殊功能口</p><p> P3口同時為閃爍編程和編程校驗接收一些控制信號。</p><p> RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,要保持RST腳兩個機器周期的高電平時間。</p><p> ALE/PROG:當(dāng)訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平
91、時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。</p><p> /PSEN:外部程序存儲器的選
92、通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)。</p><p> /EA/VPP:當(dāng)/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1時,/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時,此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(V
93、PP)。</p><p> XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。</p><p> XTAL2:來自反向振蕩器的輸出。</p><p> 2.7 L298和1602液晶的簡介</p><p> 2.7.1 字符液晶1602的介紹</p><p> 字符型液晶1602主要技術(shù)參數(shù)如表2
94、.2所示:</p><p> 表2.2 字符型液晶1602主要技術(shù)參數(shù)</p><p> 接口信號說明如表2.3所示:</p><p> 表2.3 1602接口信號說明</p><p> 控制器接口說明(HD44780及兼容芯片)</p><p><b> 基本操作時序</b></
95、p><p> a 讀狀態(tài):輸入:Rs=L, Rw=H, E=H 輸出:D0—D7=狀態(tài)字</p><p> b 寫指令:輸入:Rs=L, Rw=L, D0—D7=指令碼 輸出:無</p><p><b> E=高脈沖</b></p><p> C 讀數(shù)據(jù):輸入:Rs=H, Rw=L, E
96、=H 輸出:D0—D7=數(shù)據(jù)</p><p> d 寫數(shù)據(jù):輸入:Rs=H, Rw=L, D0—D7=數(shù)據(jù) 輸出:無</p><p><b> E=高脈沖</b></p><p> 狀態(tài)字說明如表2.4所示:</p><p> 表2.4狀態(tài)字說明(a)</p><
97、p> 表2.5 狀態(tài)字說明(b)</p><p> 注:對控制器進行讀寫操作之前,都必須進行讀寫檢測,確保STA7為0</p><p><b> RAM地址映射圖</b></p><p> 控制器內(nèi)部帶有80*8位(80字節(jié))的RAM緩沖區(qū),對應(yīng)關(guān)系如下圖2.6所示:</p><p> 表2.6 RAM地
98、址映射圖LCD16字*2行</p><p><b> 指令說明</b></p><p><b> 初始化設(shè)置</b></p><p> 顯示模式設(shè)置如表2.7所示:</p><p> 表2.7 顯示模式設(shè)置</p><p> 顯示開關(guān)及光標(biāo)設(shè)置如表2.8所示:<
99、;/p><p> 表2.8 顯示開關(guān)及光標(biāo)設(shè)置</p><p><b> 數(shù)據(jù)控制</b></p><p> 控制器內(nèi)部沒有一個數(shù)據(jù)地址指針,用戶可通過它們來訪問內(nèi)部的全部80字節(jié)RAM。</p><p> 數(shù)據(jù)指針設(shè)置如表2.9所示</p><p> 表2.9 數(shù)據(jù)指針設(shè)置(a)</
100、p><p><b> 讀數(shù)據(jù):見c</b></p><p><b> 寫數(shù)據(jù):見d</b></p><p> 其它設(shè)置如表2.10所示</p><p> 表2.10 數(shù)據(jù)指針設(shè)置(b)</p><p> 供電電路如圖2.7所示:</p><p>
101、<b> 圖2.7 供電電路</b></p><p> 2.7.2 L298驅(qū)動芯片簡介</p><p> 以下是L298驅(qū)動芯片的管腳圖,如圖2.8所示:</p><p><b> 3 軟件設(shè)計</b></p><p> 圖2.8 L298芯片圖</p><p&g
102、t; 1腳:電流監(jiān)測端A2腳:輸出端</p><p> 3腳:輸出端 4腳:功率電源電壓(+12V)</p><p> 5腳:輸入端6腳:時能端(通過電阻接地)</p><p> 7腳:輸入端8腳:GND接地</p><p> 9腳:邏輯電源電壓端(+5V)
103、10腳:輸入端</p><p> 11腳:使能端12腳:輸入腳</p><p> 13腳:輸出端14腳:輸出端</p><p> 15腳:電流監(jiān)測端B</p><p><b> 3軟件設(shè)計</b></p><p> 3.1 單片機資源使用<
104、/p><p> 在本次設(shè)計中像電路鍵盤用到了P1口,其中P1.0到P1.4口作為鍵盤的輸</p><p> 入,直流電機電路的控制線用了P2口線,P3.0、P3.1、P3.2分別為led信號控制腳。顯示電路用到了P0和P2口,P0口為液晶的數(shù)據(jù)口。</p><p> 3.2 單片機軟件模塊設(shè)計</p><p> 3.2.1 中斷子函數(shù)
105、</p><p> 對于中斷程序,只要定時器計數(shù)滿就會產(chǎn)生中斷50ms中斷一次,共計20次,秒鐘加1,秒鐘計滿再分鐘加,當(dāng)分鐘加到99時全部清零。以下是中斷子函數(shù)的流程圖如圖3.1所示:</p><p> 圖3.1中斷子程序流程圖</p><p> 3.2.2 判鍵子函數(shù)</p><p> 對于獨立式鍵盤判鍵,首先看有鍵按下不,如果
106、有鍵按下則延時一會兒,在判斷是否真的有鍵按下,如果確實有鍵按下,在判鍵釋放,最后執(zhí)行鍵功能程序。判鍵子函數(shù)的流程框圖如圖3.2所示: </p><p> 圖3.2判鍵子程序流程圖</p><p> 3.2.3 顯示子程序</p><p> 1602液晶是字符型液晶,它的內(nèi)部自帶字符庫,它可以寫兩行的字符,同時每行可以寫40個字符,在寫顯示程序的時
107、候,我們先寫命令,再設(shè)定字符顯示,最后寫數(shù)據(jù),在每寫一次命令或數(shù)據(jù)都需要判斷液晶是否忙。液晶顯示程序流程圖如圖3.3所示: </p><p> 3.3顯示子程序流程圖</p><p> 3.3 總程序流程框圖</p><p> 整體程序的流程框圖如圖3.4所示:</p><p> 圖3.4整體程序的流程框圖</p>
108、<p> 4 protues的簡介</p><p> 4.1 Protues介紹</p><p> Proteus軟件[10]是來自英國Labcenter electronics公司的EDA工具軟件,它組合了高級原理布圖、混合模式SPICE仿真,PCB設(shè)計以及自動布線來實現(xiàn)一個完整的電子設(shè)計系統(tǒng)。此系統(tǒng)受益于15年來的持續(xù)開發(fā),被《電子世界》在其對PCB設(shè)計系統(tǒng)的比較
109、文章中評為最好產(chǎn)品—“The Route to PCB CAD”。Proteus 產(chǎn)品系列也包含了我們革命性的VSM技術(shù),用戶可以對基于微控制器的設(shè)計連同所有的周圍電子器件一起仿真。用戶甚至可以實時采用諸如LED/LCD、鍵盤、RS232終端等動態(tài)外設(shè)模型來對設(shè)計進行交互仿真。 其功能模塊:—個易用而又功能強大的ISIS原理布圖工具;PROSPICE混合模型SPICE仿真;ARES PCB設(shè)計。PROSPICE 仿真器的一個擴展
110、PROTEUS VSM:便于包括所有相關(guān)的器件的基于微處理器設(shè)計的協(xié)同仿真。此外,還可以結(jié)合微控制器軟件使用動態(tài)的鍵盤,開關(guān),按鈕,LEDs甚至LCD顯示CPU模型。支持許多通用的微控制器,如PIC,AVR,HC11以及8051。最新支持ARM。交互的裝置模型包括:LED和LCD顯示,RS</p><p> 4.2 proteus界面介紹</p><p> Proteus ISIS
111、[11]的工作界面是一種標(biāo)準(zhǔn)的Windows界面,如圖4.1所示。包括:標(biāo)題欄、主菜單、標(biāo)準(zhǔn)工具欄、繪圖工具欄、狀態(tài)欄、對象選擇按鈕、預(yù)覽對象方位控制按鈕、仿真進程控制按鈕、預(yù)覽窗口、對象選擇器窗口、圖形編輯窗口。</p><p> 圖4.1 Proteus 窗口界面圖</p><p> 4.3 Protues的簡單使用</p><p><b>
112、新建原理圖</b></p><p> 啟動protues軟件,單擊file菜單下的new,彈出下圖所示窗口,選擇紙張大小。示意圖如圖4.2所示:</p><p> 圖4.2新建原理圖示意圖</p><p><b> (2)尋找元件</b></p><p> 啟動Proteus軟件,單擊挑選元件按鈕P,
113、在元件庫中選出所需元器件,出現(xiàn)如圖4.3所示窗口,輸入器件關(guān)鍵詞選取元件,再連好線。</p><p> 圖4.3 選取元件庫中元件示意圖</p><p><b> (2)系統(tǒng)調(diào)試</b></p><p> 雙擊單片機出現(xiàn)下圖所示畫面4.4,在Program File一欄中選取仿真項目的源程序代碼,點擊OK。</p><
114、p><b> .</b></p><p> 圖4.4 加載程序圖</p><p> 單擊Play按鈕,進入仿真狀態(tài)仿真按鈕如4.4所示其中按鈕1為開始運行,按鈕2為step,按鈕3為暫停,按鈕4為停止。</p><p> 圖4.5 仿真按鈕示意圖</p><p> 4.4 Protues仿真結(jié)果<
115、/p><p> 通過仿真,上電時液晶顯示起步價,里程單價,等待單價(以每分鐘為單位),按鍵1可以選擇調(diào)整起步價,里程價,等待單價,再按鍵3進入待運行狀態(tài),按鍵4可以運行,暫停,停止同時顯示運行的時間,等待的時間和總的金額數(shù),最后按鍵5可以退出,重新計費。在30s鐘內(nèi)液晶顯示起步價,30s后開始計價,等待價每1分鐘,才收費一次。</p><p><b> 心得體會</b>
116、;</p><p> 出租車計費器系統(tǒng)的設(shè)計已經(jīng)全部完成,能按預(yù)期的效果進行模擬汽車啟動,停止,暫停等功能,并能夠通過LCD顯示車費數(shù)目。本款出租車計價器包括單價輸出、單價調(diào)整、顯示當(dāng)前的系統(tǒng)時間等功能。另外,多功能出租車計價器還具有性能可靠、電路簡單、成本低、實用性強等特點,加上經(jīng)過優(yōu)化的程序,使其有很高的智能化水平。</p><p> 幾個月來,經(jīng)過自己努力,基本上完成了設(shè)計要求的
117、內(nèi)容,在系統(tǒng)可行性分析、原理圖設(shè)計等方面都作了許多實際工作,取得了一些成績,同時也遇到了一些問題,存在一些不足。經(jīng)過這幾個月的學(xué)習(xí)和工作,我覺得自己不論是在理論知識方面還是在動手能力方面都有了不小的進步,自己從中受益匪淺。這次設(shè)計很好的把以前學(xué)到的理論知識應(yīng)用于實踐,使我認識到理論知識與實踐之間有一定的差距,只有通過不斷的努力學(xué)習(xí)和實踐才能很好的把理論知識應(yīng)用到實踐當(dāng)中,也只有通過不斷的實踐才能對理論知識的理解。</p>
118、<p> 通過這次設(shè)計不僅學(xué)會了如何去查找相關(guān)資料,更重要的是通過查找資料和翻閱書籍學(xué)到了不少知識,擴大了知識面,提高了知識水平。經(jīng)過單元設(shè)計和系統(tǒng)設(shè)計鞏固了以前所學(xué)的專業(yè)知識,自己真正認識到理論聯(lián)系實際的重要性,為以后的學(xué)習(xí)和工作提供了很多有價值的經(jīng)驗。通過這次設(shè)計不僅增強了自己的動腦能力和動手能力,也提高了我思考問題、分析問題、解決問題的能力,更重要的是學(xué)會用工程化的思想來解決問題。這在以前的學(xué)習(xí)過程中是不曾學(xué)到的。在短
119、短的三個月時間內(nèi)完成設(shè)計內(nèi)容,在很大程度上得益于老師的幫助。</p><p> 這次設(shè)計是我認真認識到完整、嚴(yán)謹、科學(xué)分析問題、解決問題的思想是多么的重要,只有擁有了科學(xué)的態(tài)度才能設(shè)計出有用的產(chǎn)品。另外通過本次設(shè)計,是我認識到自己理論知識的應(yīng)用能力有很大的欠缺,需要在以后的學(xué)習(xí)中進一步提高。</p><p><b> 參考文獻</b></p><
120、;p> [1] 李廣弟,朱月秀,冷祖祁.單片機基礎(chǔ)[M].第3版.北京航空航天大學(xué)出版社,2007年1月</p><p> [2]李華.MCS-51系列單片機實用接口技術(shù)[M].北京航空航天大學(xué)出版社,1996</p><p> [3] 馬忠梅,張凱,馬巖,單片機的C語言應(yīng)用程序設(shè)計,[M],北京:北京航空航天大學(xué)出版社,2003.11;</p><p>
121、; [4] 胡輝,單片機原理及應(yīng)用設(shè)計—21世紀(jì)高等院校規(guī)劃教材[M],水利水電出版社,2005.7;</p><p> [5] 劉守義,單片機應(yīng)用技術(shù)[M],西安:西安電子科技大學(xué)出版社,1996.8;</p><p><b> 致謝</b></p><p> 本論文是在何淑珍老師的悉心指導(dǎo)下完成的,何老師的淵博學(xué)識和豐富經(jīng)驗給我留下
122、了深刻的印象。從何老師那里我學(xué)到的不僅是專業(yè)知識與實際問題科學(xué)解決的方法,更為重要的是勤奮和嚴(yán)謹治學(xué)的精神以及對學(xué)生的認真負責(zé),老師的諄諄教誨使我受益匪淺,在此向何老師表示衷心的感謝并致以崇高的敬意!感謝家人給予我學(xué)業(yè)上和生活上的支持與照顧。同時感謝給予我?guī)椭母魑焕蠋煛⑼瑢W(xué)以及朋友們!</p><p> 附錄1 元件件清單</p><p><b> 表5.1元器件清單&l
123、t;/b></p><p><b> 附錄2 程序清單</b></p><p> //*******************************************</p><p> //日期:2010.5.9</p><p><b> //姓名:肖銀偉</b></p&
124、gt;<p> //名稱:出租車自動計費器</p><p> //公司;湖南工學(xué)院</p><p> //*******************************************</p><p> #include<reg52.h></p><p> #define uchar unsigne
125、d char</p><p> #define uint unsigned int </p><p> sbit rw=P2^1;//讀或?qū)?lt;/p><p> sbit rs=P2^0;//</p><p> sbit en=P2^2;//讀寫時能控制端</p><p> sbit b=P0^7;//液晶判斷
126、忙標(biāo)志位</p><p> void lcd_init();//</p><p> void wr_com(uchar command);//液晶寫命令</p><p> void wr_data(uchar data0);//寫數(shù)據(jù)</p><p> void lcd_clear();//液晶清屏</p><p&
127、gt; void lcd_set();//設(shè)置液晶的起始位置</p><p> void busy();//液晶判忙函數(shù)</p><p> void display();//顯示</p><p> void printstring(uchar *s);//直接寫字符</p><p> void display1();</p&g
128、t;<p> void key1();</p><p> sbit K=P1^0;</p><p> sbit K1=P1^1;</p><p> sbit K2=P1^2;</p><p> sbit K3=P1^3;</p><p> sbit K4=P1^4;</p>&l
129、t;p> sbit g=P2^7;</p><p> sbit aa=P2^3;</p><p> sbit bb=P2^4;</p><p> sbit cc=P2^5;</p><p> sbit led_run=P3^0;</p><p> sbit led_await=P3^1;</p&
130、gt;<p> sbit led_stop=P3^2;</p><p> bit f_start;//開始標(biāo)志位</p><p> bit jump_in;//跳入開始標(biāo)志位</p><p> bit jump_out;//跳出標(biāo)志位</p><p> void key();</p><p>
131、 uchar code table[]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x70};//字符1,2,3,,,,,0</p><p> uchar dispbuf[]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};</p><p> uchar dispbuf1[]={0,0,0,0,0,0,0,0,
132、0,0,0,0,0,0,0};</p><p> uchar v,v1;//按鍵次數(shù)累加變量</p><p><b> uchar i;</b></p><p> void init();//</p><p> void chuli();//</p><p> void chuli1()
133、;//</p><p> void delay(uchar t);//</p><p> void clear();//</p><p> void set(uchar x);//</p><p> void set1(uchar y);//</p><p> uchar command;//</p&g
134、t;<p> uchar count,count1;//</p><p> uchar second,minite,second1,minite1;//</p><p> unsigned int tt,tt1;//</p><p> unsigned char value1=50,value2=25,value3=15;//起始價,運行價,等
135、待價</p><p> unsigned int money;//金額變量</p><p> //*******************************************</p><p> void main()</p><p><b> {</b></p><p><
136、b> init();</b></p><p> lcd_init();</p><p><b> while(1)</b></p><p><b> { </b></p><p><b> key1();</b></p><p&g
137、t;<b> chuli();</b></p><p> display();</p><p> if(jump_in==1)</p><p><b> {</b></p><p> jump_in=0;</p><p> lcd_init();</p>
138、;<p><b> while(1)</b></p><p><b> {</b></p><p><b> key();</b></p><p><b> chuli1();</b></p><p> display1();<
139、;/p><p> if(jump_out==1) </p><p><b> {</b></p><p> lcd_init();</p><p> jump_out=0;</p><p><b> clear();</b></p><p>&l
140、t;b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p>&l
141、t;b> }</b></p><p> //*******************************************</p><p> void clear()//跳出下一次</p><p><b> {</b></p><p><b> TR0=0;</b>
142、;</p><p><b> TR1=0;</b></p><p><b> money=0;</b></p><p><b> second=0;</b></p><p> second1=0;</p><p><b> minit
143、e=0;</b></p><p> minite1=0;</p><p> value1=50;</p><p> value2=25;</p><p> value3=15;</p><p> led_run=1;</p><p> led_await=1;</p
144、><p> led_stop=1;</p><p><b> v=0;</b></p><p><b> v1=0;</b></p><p> for(i=0;i<15;i++)</p><p><b> {</b></p>&
145、lt;p> dispbuf[i]=0;</p><p> dispbuf1[i]=0;</p><p><b> }</b></p><p><b> }</b></p><p> //*******************************************</p
146、><p> void init()//定時器初始化</p><p><b> {</b></p><p> TMOD=0x11;</p><p> TH0=(65536-50000)/256;</p><p> TL0=(65536-50000)%256;</p><p&
147、gt; TH1=(65536-50000)/256;</p><p> TL1=(65536-50000)%256;</p><p><b> ET0=1;</b></p><p><b> ET1=1;</b></p><p><b> EA=1;</b></
148、p><p><b> TR0=0;</b></p><p><b> TR1=0;</b></p><p><b> }</b></p><p> //*******************************************</p><p&
149、gt; void t0_(void) interrupt 1 using 0//定時器0中斷</p><p><b> {</b></p><p><b> count++;</b></p><p> if(count==20)</p><p><b> {</b>&
150、lt;/p><p><b> count=0;</b></p><p><b> second++;</b></p><p> if(second==60)</p><p><b> {</b></p><p><b> second=0
151、;</b></p><p><b> minite++;</b></p><p> if(minite==99)</p><p><b> {</b></p><p><b> minite=0;</b></p><p><b&
152、gt; }</b></p><p><b> }</b></p><p><b> }</b></p><p> TH0=(65536-50000)/256;</p><p> TL0=(65536-50000)%256;</p><p> dispb
153、uf1[0]=minite/10;</p><p> dispbuf1[1]=minite%10;</p><p> dispbuf1[2]=second/10;</p><p> dispbuf1[3]=second%10;</p><p><b> }</b></p><p> //
154、*******************************************</p><p> void t1_(void) interrupt 3 using 3//定時器1中斷</p><p><b> {</b></p><p><b> count1++;</b></p><p&
155、gt; if(count1==20)</p><p><b> {</b></p><p><b> count1=0;</b></p><p> second1++;</p><p> if(second1==60)</p><p><b> {<
156、;/b></p><p> second1=0;</p><p> minite1++;</p><p> if(minite1==99)</p><p><b> {</b></p><p> minite1=0;</p><p><b> }
157、</b></p><p><b> }</b></p><p><b> }</b></p><p> TH1=(65536-50000)/256;</p><p> TL1=(65536-50000)%256;</p><p> dispbuf1[4]
158、=minite1/10;</p><p> dispbuf1[5]=minite1%10;</p><p> dispbuf1[6]=second1/10;</p><p> dispbuf1[7]=second1%10;</p><p><b> }</b></p><p> //**
159、*****************************************</p><p> void lcd_init()//液晶初始化</p><p><b> {</b></p><p> wr_com(0x3c);</p><p> wr_com(0x06);</p><p&g
160、t; wr_com(0x0c);</p><p> wr_com(0x01);</p><p><b> }</b></p><p> //*******************************************</p><p> void wr_com(uchar command)//液晶寫命令
161、</p><p><b> {</b></p><p><b> busy();</b></p><p><b> rs=0;</b></p><p><b> rw=0;</b></p><p> P0=command;
162、</p><p><b> en=1;</b></p><p><b> en=0;</b></p><p><b> }</b></p><p> //*******************************************</p><
163、;p> void wr_data(uchar data0)//液晶寫數(shù)據(jù)</p><p><b> {</b></p><p><b> busy();</b></p><p><b> rs=1;</b></p><p><b> rw=0;<
164、/b></p><p><b> P0=data0;</b></p><p><b> en=1;</b></p><p><b> en=0;</b></p><p><b> }</b></p><p> //*
165、******************************************</p><p> void busy()//液晶判忙</p><p><b> {</b></p><p><b> while(1)</b></p><p><b> {</b>&l
166、t;/p><p><b> en=0;</b></p><p><b> rs=0;</b></p><p><b> rw=1;</b></p><p> P0=0xff;
167、 </p><p><b> en=1;</b></p><p> if(b!=1)break;</p><p><b> }</b></p><p><b> en=0;<
168、;/b></p><p><b> }</b></p><p> //*******************************************</p><p> void chuli()//數(shù)值處理</p><p><b> {</b></p><p&
169、gt; dispbuf[0]=value1/100%10;</p><p> dispbuf[1]=value1/10%10;</p><p> dispbuf[2]=value1%10;</p><p> dispbuf[3]=value2/100%10;</p><p> dispbuf[4]=value2/10%10;<
170、/p><p> dispbuf[5]=value2%10;</p><p> dispbuf[6]=value3/100%10;</p><p> dispbuf[7]=value3/10%10;</p><p> dispbuf[8]=value3%10;</p><p><b> }</b&g
171、t;</p><p> //*******************************************</p><p> void display()</p><p><b> {</b></p><p><b> set(0);</b></p><p>
172、 printstring("step :");</p><p> wr_data(table[dispbuf[0]]);</p><p> wr_data(table[dispbuf[1]]);</p><p> printstring(".");</p><p> wr_data(tabl
173、e[dispbuf[2]]);</p><p><b> set(16);</b></p><p> printstring("mileage :");</p><p> wr_data(table[dispbuf[3]]);</p><p> wr_data(table[dispbuf[4]
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于單片機的出租車計費器的畢業(yè)設(shè)計
- 基于單片機的出租車計費器的畢業(yè)設(shè)計
- 基于單片機出租車計費器的設(shè)計
- 畢業(yè)設(shè)計---基于單片機的出租車計費器的設(shè)計
- 基于單片機的出租車計費器的畢業(yè)設(shè)計 (2)
- 基于單片機的出租車計費器的畢業(yè)設(shè)計 (3)
- 基于單片機的出租車計費器的設(shè)計
- 單片機出租車計費器畢業(yè)論文
- 單片機課程設(shè)計——出租車計費器
- 畢業(yè)設(shè)計----基于pic單片機的出租車計費系統(tǒng)
- 畢業(yè)設(shè)計----基于pic單片機的出租車計費系統(tǒng)
- 畢業(yè)設(shè)計----基于pld設(shè)計的出租車計費器系統(tǒng)
- 基于plc單片機的出租車計費系統(tǒng)設(shè)計畢業(yè)設(shè)計
- 基于單片機的出租車自動計費設(shè)計
- 基于fpga的出租車計費器設(shè)計
- 基于vhdl的出租車計費器設(shè)計
- 基于pic單片機的出租車計費系統(tǒng)----畢業(yè)設(shè)計論文
- 出租車計費器設(shè)計畢業(yè)論文
- eda出租車計費器
- 基于vhdl語言的出租車計費器設(shè)計
評論
0/150
提交評論