freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于單片機(jī)的出租車計(jì)費(fèi)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)(參考版)

2024-11-20 20:01本頁面
  

【正文】 其運(yùn)行方式也可以選擇工具欄中的相應(yīng)工具進(jìn)行。 PROTEUS 的調(diào)試 對(duì)于單片機(jī)硬件電路和軟件的調(diào)試, PROTEUS 提供了兩種方法:一種是系統(tǒng)總體執(zhí)行效果,一種是對(duì)軟件的分步調(diào)試以看具體的執(zhí)行情況。編譯、連接用 Project 菜單下的 Built Target 命令,程序編譯界面見圖 52。因?yàn)榇颂幊绦蛭募呀⒑?,所以直接用以下方法添加: 在項(xiàng)目管理器窗口中,展開 Target1,可以看到 Source Group1; 右擊 Source Group1,選擇 Add File to Group Source ?Group1?命令; 在 Add File to Group Source ?Group1?對(duì)話框中選擇需要添加的程序文件,單擊 Add 按鈕,把所選文件添加到項(xiàng)目文件中。 圖 51 單片機(jī)的選擇型號(hào) 2)給項(xiàng)目添加程序文件 當(dāng)項(xiàng)目文件建立好后,就可以給項(xiàng)目文件加入程序文件了, KEIL uVISION2 支持 C 語言程序,也支持匯編語言程序。 雖然 C51 是一個(gè)兼容 ANSI 的編譯器但為了支持 8051 系列 MCU還是加入了一些擴(kuò)展的內(nèi)容 C51 編譯器的擴(kuò)展內(nèi)容包括數(shù)據(jù)類型、存儲(chǔ)器類型、指針、重入函數(shù)、中斷服務(wù)程序、實(shí)時(shí)操作系統(tǒng)和 PL/M 及 A51 源程序的接口。生成的可執(zhí)行代碼快速緊湊,在運(yùn)行效率和速度上可以和匯編程序得到的代碼相媲美。因此很多開發(fā) 51 應(yīng)用的工程師或普通的單片機(jī)愛好者,都對(duì)它十分看好。既有高級(jí)語言的特點(diǎn),又有匯編語言的特點(diǎn)。在編程語言方面,選擇的是 C 語言進(jìn)行編程。 徐州工 程學(xué)院畢業(yè)設(shè)計(jì)(論文) 25 5 系統(tǒng)調(diào)試 KEIL C 調(diào)試 硬件電路完成以后,進(jìn)行系統(tǒng)的軟件設(shè)計(jì),首先要分析系統(tǒng)對(duì)軟件的要求,然后進(jìn)行軟件的總體設(shè)計(jì),包括程序總體結(jié)構(gòu)設(shè)計(jì)和對(duì)程序進(jìn)行模塊化設(shè)計(jì)。 else =1。 if (b=100) b=0。 //恢復(fù)定時(shí)器初始值 ,定時(shí) 10ms TL0=0xf0。 徐州工 程學(xué)院畢業(yè)設(shè)計(jì)(論文) 24 圖 48 中斷服務(wù)程序流程圖 中斷服務(wù)程序設(shè)計(jì) void time1(void) interrupt 1 {static int b=0。 直流電機(jī)的軟件設(shè)計(jì) 為了產(chǎn)生占空比為 a1 的脈沖,我們需借助定時(shí)器中斷來實(shí)現(xiàn)。 uchar read_byte(uchar add)。 AT24C02 掉電保護(hù)軟件設(shè)計(jì) 為了防止掉電使數(shù)據(jù)丟失,應(yīng)該隨時(shí)將重要數(shù)據(jù)寫到 AT24C02 中,當(dāng)重新啟動(dòng)計(jì)費(fèi)器時(shí)再將數(shù)據(jù)讀出。 //則速度 v=b3*,在主函數(shù)中我們還可以設(shè)計(jì)判斷 v 是否超過限 定速度,若超過則報(bào)警 } } 中途等待中斷服務(wù)程序設(shè)計(jì) 在計(jì)數(shù)狀態(tài)下霍爾開關(guān)沒有輸出信號(hào),片內(nèi)的 T0 定時(shí)器便被啟動(dòng),每當(dāng)計(jì)時(shí)到達(dá) 10分鐘,就對(duì)當(dāng)前金額加上中途等待的單價(jià),以后每十分鐘都自動(dòng)加上中途等待的單價(jià)。 if(b1==100) {b3=glb2。 if(b1==0) { b2=gl。 } 徐州工 程學(xué)院畢業(yè)設(shè)計(jì)(論文) 23 void time1(void) interrupt 1//定時(shí)器 0,定時(shí) 10ms {TH0=0xd8。定時(shí)中斷服務(wù)程序流程圖如圖47 所示。為了精確產(chǎn)生 1 秒鐘,我們要用選擇用定時(shí)器來定時(shí) 1 秒。//n 為單價(jià) } 測(cè)速設(shè)計(jì) 對(duì)于速度的計(jì)算,我們可以使用 v=s/t。} else{ count(10+(gl1000)/200*n)。//總金額顯示 徐州工 程學(xué)院畢業(yè)設(shè)計(jì)(論文) 22 if(gl400){ count(10)。//顯示小數(shù)點(diǎn) LCD_w_dat(disdata[4])。//顯示十位 LCD_w_dat(disdata[3])。//顯示千位 LCD_w_dat(disdata[1])。//個(gè)數(shù)位 disdata[4]=(int)(m*10)%10+0x30。//百位數(shù) disdata[2]=(int)m%100/10+0x30。 圖 46 金額計(jì)算流程圖 程序設(shè)計(jì)如下: void count(float m)//LCD 顯 示數(shù)值 m { disdata[0]=(int)m/1000+0x30。于是對(duì)于金額的計(jì)費(fèi),便會(huì)出現(xiàn)兩種情況:一種是路程在起步之內(nèi),另一種是超過起步距離。程序流程圖如圖45 所示。 表 41 基本操作狀態(tài) 讀狀態(tài) 輸入 RS=L, R/W=H, E=H 輸出 D0~D7 =狀態(tài)字 寫指令 輸入 RS=L, R/W=L, D0~D7 =狀態(tài)字, E=高脈沖 輸出 無 讀數(shù)據(jù) 輸入 RS=H, R/W=H, E=H 輸出 D0~D7 =數(shù)據(jù) 寫數(shù)據(jù) 輸入 RS=H, R/W=L, D0~D7 =狀數(shù)據(jù), E=高脈沖 輸出 無 徐州工 程學(xué)院畢業(yè)設(shè)計(jì)(論文) 20 此外,用到每個(gè)功能模塊函數(shù)已在程序中定義,如下: void LCD_w_dat(char dat) // 寫數(shù)據(jù) void LCD_w_(unsigned ) // 寫指令 void init_LCD(void) // 初始化 lcd void display_LCD_string(char *p ) //字符串輸出函數(shù) void gotoxy(unsigned x,unsigned y) //字符輸出位置 程序流程圖如圖 44 所示。 這樣方便對(duì) LCD 液晶顯示器的控制。 sbit RW=P3^6。下圖為切換流程圖。//X 可取 0 至 7 特別注意,在計(jì)算總金額時(shí),我們必須要知道起步價(jià)格,由于白天與夜間的起步價(jià)不同,所以在設(shè)計(jì)時(shí)我們通過一個(gè)按鈕來切換白天與黑夜,例如現(xiàn)在顯示的是白天起步價(jià),當(dāng)按下該鍵,進(jìn)入夜間起步價(jià),在按下該鍵,又進(jìn)入白天起步價(jià)。 42 鍵盤掃描流程圖 徐州工 程學(xué)院畢業(yè)設(shè)計(jì)(論文) 19 鍵盤掃描程序描述 void delay1ms() //延時(shí)函數(shù),用于消抖 if( ==0) {執(zhí)行功能 。 下圖為出租車計(jì)費(fèi)系統(tǒng)的主程序流程圖。 當(dāng)?shù)竭_(dá)目的地的時(shí)候,由于霍爾開關(guān)沒有送來脈沖信號(hào),就停止計(jì)價(jià),顯示當(dāng)前所應(yīng)該付的金額和對(duì)應(yīng)的單價(jià)。 當(dāng)按下 D5 時(shí), 電機(jī)轉(zhuǎn)動(dòng), 就啟動(dòng)計(jì)價(jià),將根據(jù) 脈沖個(gè)數(shù) 判斷出行駛里程是否已超過起價(jià)公里數(shù)。運(yùn)行 Keil軟件需要 Pentium 或以上的 CPU, 16MB 或更多 RAM、 20M 以上空閑的硬盤空間、 WIN9NT、 WIN20 WINXP 等操作系統(tǒng)。機(jī)器匯編是通過匯編軟件將源程序變?yōu)闄C(jī)器碼,用于 MCS51 單片機(jī)的匯編軟件有早期的 A51,隨著單片機(jī)開發(fā)技術(shù)的不斷發(fā)展,從普遍使用匯編語言到逐漸使用高級(jí)語言開發(fā),單片機(jī)的開發(fā)軟件也在不斷發(fā)展, Keil 軟件是目前最流行開發(fā)MCS51 系列單片機(jī)的軟件,這從近年來各仿真機(jī)廠商紛紛宣布全面支持 Keil 即可看出。在源程序被編譯后,生成了擴(kuò)展名為 HEX 的目標(biāo)文件,一般編程器能夠識(shí)別這種格式的文件,只要將此文件調(diào)入即可寫片。然后用文本編輯器(如 EDIT、 CCED 等)編寫軟件,編寫好后,用編譯器對(duì)源程序文件編譯,查錯(cuò),直到?jīng)]有語法錯(cuò)誤,除了極簡(jiǎn)單的程序外,一般應(yīng)用仿真機(jī)對(duì)軟件進(jìn)行調(diào)試,直到程序運(yùn)行正確為止。 在編寫軟件之前,首先確定一些常數(shù)、地址,事實(shí)上這些常數(shù)、地址在設(shè)計(jì)階段已被直接或間接地確定下來了。 徐州工 程學(xué)院畢業(yè)設(shè)計(jì)(論文) 16 X T A L 218X T A L 119A L E30EA31P S E N29R S T9P 0 .0 /A D 039P 0 .1 /A D 138P 0 .2 /A D 237P 0 .3 /A D 336P 0 .4 /A D 435P 0 .5 /A D 534P 0 .6 /A D 633P 0 .7 /A D 732P 2 .7 /A 1 528P 2 .0 /A 821P 2 .1 /A 922P 2 .2 /A 1 023P 2 .3 /A 1 124P 2 .4 /A 1 225P 2 .5 /A 1 326P 2 .6 /A 1 427P 1 .01P 1 .12P 1 .23P 1 .34P 1 .45P 1 .56P 1 .67P 1 .78P 3 .0 /R X D10P 3 .1 /T X D11P 3 .2 /I N T 012P 3 .3 /I N T 113P 3 .4 /T 014P 3 .7 /R D17P 3 .6 /W R16P 3 .5 /T 115D1D2D3D4D5D6D7D8D8D7D6D5D4D3D2D1D1D8D7D6D5D4D3D2 圖 39 單片機(jī)與鍵盤連線圖 電路共采用了八個(gè)按鍵, D D D D D D D D8,其功能分別是:?jiǎn)蝺r(jià)上調(diào),單價(jià)下調(diào),屏幕顯示切換,白天 /夜間切換,加速,減速,電機(jī)啟動(dòng),電機(jī)關(guān)閉。 在本系統(tǒng)中,終端輸入采用了獨(dú)立式鍵盤,當(dāng)按下和釋放按鍵時(shí),輸入到 I/O 端口的電平是不一樣的,單片機(jī)程序根據(jù)不同端口電平的變化判斷是否有按鍵按下以及是哪一個(gè)按鍵被按下,并執(zhí)行相應(yīng)的程序段。其中,人機(jī)交互系統(tǒng)是一個(gè)完整的單片機(jī)系統(tǒng)的組成部分,用來使單片機(jī)識(shí)別不同的輸入信號(hào),并做出不同的響應(yīng)。 所以控制 口信號(hào)的 PWM,便可控制電機(jī)的旋轉(zhuǎn)速度 。 X T A L 218X T A L 119A L E30EA31P S E N29R S T9P 0 .0 /A D 039P 0 .1 /A D 138P 0 .2 /A D 237P 0 .3 /A D 336P 0 .4 /A D 435P 0 .5 /A D 534P 0 .6 /A D 633P 0 .7 /A D 732P 2 .7 /A 1 528P 2 .0 /A 821P 2 .1 /A 922P 2 .2 /A 1 023P 2 .3 /A 1 124P 2 .4 /A 1 225P 2 .5 /A 1 326P 2 .6 /A 1 427P 1 .01P 1 .12P 1 .23P 1 .34P 1 .45P 1 .56P 1 .67P 1 .78P 3 .0 /R X D10P 3 .1 /T X D11P 3 .2 /I N T 012P 3 .3 /I N T 113P 3 .4 /T 014P 3 .7 /R D17P 3 .6 /W R16P 3 .5 /T 115+ 5 v 5 7 .2DCR12kQ1N P N 圖 38 直流電機(jī)與單片機(jī)的接線圖 當(dāng) =0,集電極與發(fā)射極電壓小于管壓降,三極管截止,電機(jī)不導(dǎo)通。我們可以通過控制PWM 的占空比,來控制電機(jī)的平均轉(zhuǎn)速,從而控制電機(jī)的行進(jìn)速度。當(dāng)系統(tǒng)重新上電的時(shí)候,自動(dòng)調(diào)用讀存儲(chǔ)器程序,將存儲(chǔ)器內(nèi)的單價(jià)等信息,讀到緩存單元中,供主程序使用。接線如圖 37所示。 AT24C02 的數(shù)據(jù)線和地址線是復(fù)用的 ,采用串口的方式傳送數(shù)據(jù),所以只用兩根線 SCL(移位脈沖)和 SDA(數(shù)據(jù) /地址)與單片機(jī)傳送數(shù)據(jù)。由于 P0 端口無上拉電阻,所以我們需外接 8 個(gè) 2k 的上拉電阻,其與 LCD 液晶顯示器的連線原理圖如圖 36 所示。 圖 35 單片機(jī)和 A44E 的硬件連接圖 LCD 顯示電路設(shè)計(jì) 本設(shè)計(jì)選用 AT89C51 的 、 、 端給, LCD1602 采 用 8 位數(shù)據(jù)線工作方式。根據(jù)脈沖信號(hào)的個(gè)數(shù)計(jì)算出里程,根據(jù)脈沖信號(hào)的周期計(jì)算出速度顯示。 A44E 的第三腳就輸出一個(gè)脈沖信號(hào)作為單片機(jī) AT89C51 的外部中斷信號(hào),從 口輸入。 霍爾傳感器電路設(shè)計(jì) 霍爾傳感器 A44E 在測(cè)速系統(tǒng)中的主要作用是車輪轉(zhuǎn)速采集。 LM016L 通過D0~D7 的 8 位數(shù)據(jù)端傳輸數(shù)據(jù)和指令。建議不要使用排阻,使用普通電阻一個(gè)一個(gè)拉應(yīng)該可以解決問題。 使用 PROTEUS 仿真 LCD1602 即 LM016L,依照數(shù)據(jù)手 冊(cè)說明可能遇到困難,可以嘗試采用以下方案解決: ( 1)數(shù)據(jù)手冊(cè)中可能介紹 LM016L 內(nèi)部 D0~D7 已有上拉,可以使用 P0 口直接驅(qū)動(dòng)。 指令 10:寫數(shù)據(jù)。 指令 8: DDRAM 地址設(shè)置。 指令 6:功 能設(shè)置命令 DL:高電平時(shí)為 4 位總線,低電平時(shí)為 8 位總線 N:低電平時(shí)為單行顯示,高
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1