出租車計(jì)價(jià)器(計(jì)程車?yán)锍瘫?畢業(yè)設(shè)計(jì)論文終稿.doc_第1頁
出租車計(jì)價(jià)器(計(jì)程車?yán)锍瘫?畢業(yè)設(shè)計(jì)論文終稿.doc_第2頁
出租車計(jì)價(jià)器(計(jì)程車?yán)锍瘫?畢業(yè)設(shè)計(jì)論文終稿.doc_第3頁
出租車計(jì)價(jià)器(計(jì)程車?yán)锍瘫?畢業(yè)設(shè)計(jì)論文終稿.doc_第4頁
出租車計(jì)價(jià)器(計(jì)程車?yán)锍瘫?畢業(yè)設(shè)計(jì)論文終稿.doc_第5頁
已閱讀5頁,還剩49頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

20122012 屆畢業(yè)設(shè)計(jì)說明書屆畢業(yè)設(shè)計(jì)說明書 計(jì)程車?yán)锍瘫硐到y(tǒng)設(shè)計(jì) 院 部 電氣與信息工程學(xué)院 學(xué)生姓名 宋貴 指導(dǎo)教師 陳堅(jiān) 職 稱 講師 專 業(yè) 電子信息工程 班 級 電子 0802 學(xué) 號 08401140246 2012 年 5 月 I 摘 要 智能儀器儀表技術(shù)是一門集電子技術(shù) 單片機(jī)技術(shù) 自動(dòng)化儀表 自動(dòng)控制技 術(shù) 計(jì)算機(jī)應(yīng)用等一體的跨學(xué)科的專業(yè)技術(shù) 自 20 世紀(jì) 90 年代初以來 這項(xiàng)技術(shù) 已逐步引入到國內(nèi)工科專業(yè)中 如電子信息 通訊 自動(dòng)化 計(jì)算機(jī)應(yīng)用等信息類 專業(yè) 隨著經(jīng)濟(jì)的發(fā)展 汽車運(yùn)輸行業(yè)也快速發(fā)展起來 計(jì)程車也成為城市生活中 的重要交通工具 乘車時(shí) 乘客與司機(jī)之間的交易是通過按里程計(jì)價(jià)的 里程表的 好壞直接關(guān)系到雙方的利益 所以設(shè)計(jì)一個(gè)功能合適 性能良好的簡易計(jì)程車?yán)锍?表系統(tǒng)具有實(shí)際的應(yīng)用意義 本系統(tǒng)采用 ATMEL 公司的 AT89S52 單片機(jī)為核心 使用 12MHz 晶振提供時(shí)鐘信 號 利用霍爾傳感器檢測車速 通過軟件編程的方法實(shí)現(xiàn)記時(shí) 里程檢測 費(fèi)用計(jì) 算 同時(shí)通過 LED 數(shù)碼管將里程數(shù) 總費(fèi)用直觀顯示出來 從而達(dá)到計(jì)費(fèi)的目的 該系統(tǒng)設(shè)有五個(gè)按鍵 清除 查詢 確認(rèn) 停止 單程 往返 功能選擇 進(jìn)行相 應(yīng)的操作就可實(shí)現(xiàn)單程 往返模式選擇 停止計(jì)費(fèi) 等待時(shí)間查詢 清除復(fù)位等功 能 具有結(jié)構(gòu)簡單 操作方便 顯示直觀 運(yùn)行穩(wěn)定等優(yōu)點(diǎn) 有較高的推廣應(yīng)用價(jià) 值 關(guān)鍵詞 計(jì)程車?yán)锍瘫?AT89S52 霍爾傳感器 硬件設(shè)計(jì) 軟件設(shè)計(jì) II ABSTRACT Intelligent instrument technology is a collection of electronic technology and single chip microcomputer technology automation instrument automatic control technology computer application one of the professional technical subjects Since the early 1990 s the technology has introduced gradually to domestic engineering professionals such as electronic information and communications automation computer applications and other information specialty With the development of economy the car transport industry also developed rapidly the taxi also become the important traffic tools city life Go by car passengers and the driver of transactions between the by pressing the mileage of valuation is the odometer is directly related to the interests of both parties so the design of a function the good performance of suitable simple taxi milestones system has the actual applications The system USES the ATMEL company AT89S52 SCM as the core the use of 12 MHz crystals provides the clock signal using hall sensor test speed and through programming method time cost calculation mileage detection and at the same time through LED digital tube will mileage total cost visual display out so as to achieve the purpose of pricing The system has five buttons clear inquires confirmation stop one way shuttle function choose carries on the corresponding operation can achieve a one way shuttle mode selection stop billing waiting time inquires clear reduction etc Function The structure is simple the operation is convenient direct display stable operation etc have a high application value Key words taxi milestones AT89S52 hall element hardware design software design III 目 錄 1 概述 1 1 1 計(jì)程車?yán)锍瘫砀攀?1 1 2 單片機(jī)概述 1 2 設(shè)計(jì)任務(wù) 功能要求 3 2 1 設(shè)計(jì)任務(wù) 3 2 2 功能要求 3 2 2 1 基本功能 3 2 2 2 發(fā)揮部分 3 2 3 總體方案介紹及工作原理說明 3 2 3 1 里程計(jì)算 4 2 3 2 費(fèi)用計(jì)算 4 3 硬件系統(tǒng)設(shè)計(jì) 5 3 1 硬件系統(tǒng)各功能模塊簡介 5 3 1 1 AT89S52 單片機(jī) 5 3 1 2 復(fù)位電路 6 3 1 3 晶振電路 7 3 1 4 獨(dú)立鍵盤電路 7 3 1 5 指示燈電路 8 3 1 6 數(shù)碼管顯示電路 9 3 1 7 車速檢測電路 10 3 1 8 存儲(chǔ)電路 12 3 1 9 時(shí)鐘顯示電路 13 4 軟件系統(tǒng)設(shè)計(jì) 14 4 1 系統(tǒng)主程序 14 4 2 數(shù)據(jù)處理子程序 14 4 3 等待時(shí)間計(jì)時(shí)子程序 15 4 4 鍵盤掃描子程序 16 5 系統(tǒng)運(yùn)行的 PROTEUS 仿真與測試 18 5 1 空車狀態(tài) 18 IV 5 2 單雙程模式切換 19 5 3 等待模式 21 5 4 查詢模式 21 6 結(jié)束語 23 參考文獻(xiàn) 24 致 謝 25 附 錄 26 附錄 A 元器件清單 26 附錄 B 源程序清單 27 附錄 C 設(shè)計(jì)原理圖 48 1 1 概述 1 1 計(jì)程車?yán)锍瘫砀攀?計(jì)程車?yán)锍瘫?計(jì)價(jià)器 是乘客與司機(jī)雙方的交易準(zhǔn)則 它是計(jì)程車行業(yè)發(fā)展 的重要標(biāo)志 是計(jì)程車中最重要的工具 它關(guān)系著交易雙方的利益 具有良好性能 的里程表無論是對廣大計(jì)程車司機(jī)朋友還是乘客來說都是很必要的 因此 計(jì)程車 里程表的研究是十分有應(yīng)用價(jià)值的 我國在 70 年代開始出現(xiàn)計(jì)程車 但那時(shí)的計(jì)費(fèi)系統(tǒng)大都是國外進(jìn)口不但不夠 準(zhǔn)確 價(jià)格還十分昂貴 隨著改革開放日益深入 計(jì)程車行業(yè)的發(fā)展勢頭已十分突 出 國內(nèi)各機(jī)械廠家紛紛推出國產(chǎn)計(jì)價(jià)器 以下稱為計(jì)價(jià)器 計(jì)程車計(jì)價(jià)器的功 能從剛開始的只顯示路程 需要司機(jī)自己定價(jià) 計(jì)算后四舍五入 到能夠自主計(jì) 費(fèi) 以及現(xiàn)在的能夠打印發(fā)票和語音提示 按時(shí)間自主變動(dòng)單價(jià)等功能 隨著城市 旅游業(yè)的發(fā)展 出租車行業(yè)已成為城市的窗口 象征著一個(gè)城市的文明發(fā)展程度 本次設(shè)計(jì)的目的在于設(shè)計(jì)出現(xiàn)在各大中城市計(jì)程車行業(yè)都已普及的自動(dòng)計(jì)價(jià)器 而部分小城市尚未普及 但隨著城市建設(shè)日益加快 象征著城市面貌的計(jì)程車行業(yè) 也將加速發(fā)展 計(jì)價(jià)器的普及也是毫無疑問的 所以未來汽車計(jì)價(jià)器的市場還是十 分有潛力的 1 2 單片機(jī)概述 計(jì)算機(jī)系統(tǒng)已明顯地朝巨型化 單片化 網(wǎng)絡(luò)化三個(gè)方向發(fā)展 巨型化發(fā)展的 目的在于不斷提高計(jì)算機(jī)的運(yùn)算速度和處理能力 以解決復(fù)雜系統(tǒng)計(jì)算和高速數(shù)據(jù) 處理 比如系統(tǒng)仿真和模擬 實(shí)時(shí)運(yùn)算和處理 單片化是把計(jì)算機(jī)系統(tǒng)盡可能集成 在一塊半導(dǎo)體芯片上 其目的在于計(jì)算機(jī)微型化和提高系統(tǒng)的可靠性 這種單片計(jì) 算機(jī)簡稱單片機(jī) 單片機(jī)的內(nèi)部硬件結(jié)構(gòu)和指令系統(tǒng)主要是針對自動(dòng)控制應(yīng)用而設(shè) 計(jì)的 所以單片機(jī)又稱為微控制器 MCU Micro Controller Unit 用它可以很容易 地將計(jì)算機(jī)嵌入到各種儀器和現(xiàn)場控制設(shè)備中 因此單片機(jī)又叫做嵌入式微控制器 Embedded MCU 單片機(jī)自 20 世紀(jì) 70 年代問世以來 以其鮮明的特點(diǎn)得到迅猛 發(fā)展 已廣泛應(yīng)用于家用電器 智能玩具 智能儀器儀表 工業(yè)控制 航空航天等 領(lǐng)域 經(jīng)過 30 多年的發(fā)展 性能不斷提高 品種不斷豐富 已經(jīng)形成自動(dòng)控制的 一支中堅(jiān)力量 據(jù)統(tǒng)計(jì) 我國的單片機(jī)年產(chǎn)量已達(dá) 1 3 億片 且每年以大約 16 的速度增長 但相對于國際市場我國的占有率還不到 1 這說明單片機(jī)應(yīng)用在我 國有著廣闊的前景和巨大的市場潛力 對于從事自動(dòng)控制的技術(shù)人員來講 掌握單 2 片機(jī)原理及其應(yīng)用已經(jīng)成為必不可少的學(xué)習(xí)任務(wù) 單片機(jī)的應(yīng)用十分廣泛 在工業(yè)控制領(lǐng)域 家電產(chǎn)品 智能化儀器儀表 計(jì)算 機(jī)外部設(shè)備 特別是機(jī)電一體化產(chǎn)品中 都有重要的用途 其主要的用途可以分為 以下方面 顯示 通過單片機(jī)控制 LED Light Emitting Diode 發(fā)光二極管 或 LCD Liquid Crystal Display 液晶顯示器 顯示特定的字符和圖形 機(jī)電控制 用單片機(jī)控制機(jī)電產(chǎn)品做定時(shí)或定向的動(dòng)作 檢測 通過單片機(jī)和傳感器的聯(lián)合使用 用來檢測產(chǎn)品或者工況的意外發(fā)生 通信 通過 RS 232 串行通信或者是 USB Universal Serial BUS 通用串行總線 通 信 傳輸數(shù)據(jù)和信號 科學(xué)計(jì)算 用來實(shí)現(xiàn)簡單的算法 那么單片機(jī)是不是解決上述應(yīng)用的唯一選擇呢 當(dāng)然不是 目前 在自動(dòng)控制 中 一般有三種選擇 分別是嵌入式微機(jī) DSP Digital Signal Processor 數(shù)字信號處理器 和單片機(jī) 單片機(jī)最明顯的優(yōu)點(diǎn)是價(jià)格便宜 從幾元人民幣到幾十元人民幣 這是因?yàn)檫@ 類芯片的生產(chǎn)量很大 技術(shù)也很成熟 其次 單片機(jī)的體積也遠(yuǎn)小于其他兩種方案 單片機(jī)本身一般用 40 引腳封裝 當(dāng)然功能多一些的單片機(jī)也有引腳比較多的 如 68 引腳 功能少的只有 10 多個(gè)或 20 多個(gè)引腳 有的甚至只有 8 只引腳 當(dāng)然 單片機(jī)無論在速度還是容量方面都小于其他兩種方案 但是在實(shí)際工作 中并不是任何需要計(jì)算機(jī)的場合都要求計(jì)算機(jī)有很高的性能 例如 控制電冰箱的 控制器就不需要使用嵌入式系統(tǒng) 用一片 51 單片機(jī)就可以輕松實(shí)現(xiàn) 所以應(yīng)用的 關(guān)鍵是看能否夠用 是否有很好的性能價(jià)格比 51 系列的單片機(jī)已經(jīng)面世多年 依 然沒有被淘汰 還在不斷發(fā)展中 這就說明是他有廣闊的應(yīng)用前景 3 2 設(shè)計(jì)任務(wù) 功能要求 2 1 設(shè)計(jì)任務(wù) 設(shè)計(jì)一款具有特定功能的計(jì)程車?yán)锍瘫硐到y(tǒng) 通過利用傳感器檢測車速 能對 里程和金額進(jìn)行處理和顯示 2 2 功能要求 2 2 1 基本功能 1 用前 4 位數(shù)碼管實(shí)時(shí)顯示里程數(shù) Z 單位為公里 最后一位為小數(shù)位 用后 4 位數(shù)碼管實(shí)時(shí)顯示金額數(shù) J 單位為元 最后一位為小數(shù)位 2 規(guī)定出租車單程價(jià)格為 2 元 公里 往返的價(jià)格為 1 5 元 公里 單程 往返 兩種模式可由按鍵切換 3 車速 5 公里 小時(shí)的時(shí)間累積為總等待時(shí)間 T 分鐘 每 5 分鐘等待時(shí) 間相當(dāng)于里程數(shù)增加 1 公里 4 起步公里數(shù)為 3 公里 價(jià)格 8 元 若實(shí)際運(yùn)行大于 3 公里 超出的里程 按要求 2 進(jìn)行 5 盡量充分利用所選單片機(jī)系統(tǒng)資源進(jìn)行設(shè)計(jì) 6 用光電傳感器檢測轉(zhuǎn)盤轉(zhuǎn)動(dòng)模擬車速 根據(jù)車輪周長和轉(zhuǎn)動(dòng)圈數(shù)計(jì)算里 程 7 要求公里數(shù)檢測誤差不超過 10 8 到達(dá)目的地后 按 停止 鍵 計(jì)價(jià)器停止計(jì)價(jià) 9 按 清除 鍵 計(jì)價(jià)器能將記錄數(shù)據(jù) 里程 等待時(shí)間與價(jià)格等 自動(dòng) 清零 10 按 查詢 鍵 能自動(dòng)顯示總等待時(shí)間 T 再按下該鍵回到顯示里程數(shù) 金額狀態(tài) 2 2 2 發(fā)揮部分 1 增加了空車指示功能 當(dāng)無客人時(shí)空車指示燈亮 2 增加實(shí)時(shí)時(shí)間顯示功能 空車時(shí)顯示當(dāng)前時(shí)間 3 增加信息儲(chǔ)存功能 可以儲(chǔ)存等待時(shí)間 里程和金額 2 3 總體方案介紹及工作原理說明 本設(shè)計(jì)主要由硬件和軟件兩部分組成 軟件設(shè)計(jì)運(yùn)用 C 語言編程實(shí)現(xiàn) 硬件設(shè) 4 計(jì)以 AT89S52 單片機(jī)為主控芯片 其外部電路包括復(fù)位電路 晶振電路 獨(dú)立鍵 盤電路 指示燈電路 數(shù)碼管顯示電路 車速檢測電路 存儲(chǔ)電路 時(shí)鐘顯示電路 等 設(shè)計(jì)總體方案如圖 1 所示 圖 1 總體方案圖 本設(shè)計(jì)的里程計(jì)算和費(fèi)用計(jì)算方案如下 2 3 1 里程計(jì)算 1 霍爾傳感器對車輪進(jìn)行信號檢測 產(chǎn)生并輸出脈沖信號給單片機(jī) 2 單片機(jī)對傳感器輸出的脈沖信號進(jìn)行計(jì)數(shù) 并進(jìn)行里程 單位 km 換算 每一個(gè)脈沖信號代表輪胎旋轉(zhuǎn)一周 設(shè)輪胎的直徑為 d 0 5m 輪胎轉(zhuǎn)數(shù)為 N 則里 程 Z d N 1000 km 設(shè)速度為 V 脈沖信號頻率為 f 則 V d f m s 3 6 d f km h 2 3 2 費(fèi)用計(jì)算 1 出租車的起步費(fèi)為 8 元 并且 3km 內(nèi)不需額外計(jì)價(jià) 2 出租車行駛 3km 后 單程 2 元 km 雙程 1 5 元 km 3 等待收費(fèi)的標(biāo)準(zhǔn)為 5 分鐘按 1 公里折算 4 暫停時(shí)計(jì)價(jià)器暫停計(jì)價(jià) 不收費(fèi)用 AT89S52 主控芯片 晶振電路 鍵盤電路 數(shù)碼管顯示電路 復(fù)位電路 車速檢測電路 時(shí)鐘顯示電路 存儲(chǔ)電路 指示燈電路 5 3 硬件系統(tǒng)設(shè)計(jì) 3 1 硬件系統(tǒng)各功能模塊簡介 本系統(tǒng)主要由單片機(jī)主控模塊 復(fù)位電路模塊 晶振電路模塊 獨(dú)立鍵盤電路 模塊 指示燈電路模塊 數(shù)碼管顯示電路模塊 車速檢測電路模塊 存儲(chǔ)電路模塊 時(shí)鐘顯示電路模塊等組成 下面將對各模塊作簡要介紹 3 1 1 AT89S52 單片機(jī) AT89S52 是一個(gè)低功耗高性能的單片機(jī) 具有 8kB 的閃存 128BRAM 32 個(gè) I O 口 2 個(gè)定時(shí) 計(jì)數(shù)器 六個(gè)中斷源 一個(gè)全雙工的串行口 可反復(fù)擦寫 支持 ISP 在系統(tǒng)編程 可以有效地縮短開發(fā)時(shí)間和降低開發(fā)成本 其封裝實(shí)物圖和引腳 功能圖如圖 2 a b 所示 a AT89S52 封裝實(shí)物圖 b AT89S52 引腳功能圖 圖 2 AT89S52 封裝實(shí)物圖和引腳功能圖 關(guān)于四個(gè) I O 口的主要功能介紹如下 P0 口有兩個(gè)功能 1 擴(kuò)展外部存儲(chǔ)器時(shí) 當(dāng)作為數(shù)據(jù) 地址總線 2 不擴(kuò)展時(shí) 可做一般的 I O 口使用 但內(nèi)部無上拉電阻 作為輸入或輸出時(shí) 應(yīng)在外部接上拉電阻 6 P1 口只做 I O 口使用 其內(nèi)部有上拉電阻 P2 口有兩個(gè)功能 1 擴(kuò)展外部存儲(chǔ)器時(shí) 當(dāng)作地址總線使用 2 做一般 I O 口使用 其內(nèi)部有上拉電阻 P3 口有兩個(gè)功能 1 作為 I O 口使用 其內(nèi)部有上拉電阻 2 還有一些特殊功能 由特殊寄存器來設(shè)置 設(shè)計(jì)中用到的單片機(jī)各管腳功能以及與其他模塊連接介紹如下 VCC 接 5V 電源 GND 接地 XTAL 時(shí)鐘引腳 XTAL1 和 XTAL2 外接晶振和 33pF 的電容 構(gòu)成時(shí)鐘電路 RST 復(fù)位信號輸入端 高電平有效 當(dāng)在此引腳加兩個(gè)機(jī)器周期的高電平時(shí) 就 可以完成復(fù)位操作 P1 0 接功能按鍵 P1 1 接切換鍵 表示單雙程切換 P1 2 接停止鍵 P1 3 接清零鍵 P3 0 接查詢 確認(rèn)鍵 P1 4 接空車指示燈 P1 5 接查詢指示燈 P1 6 接等待指示燈 P1 7 接雙程指示燈 P0 口接數(shù)碼管段選端口 P2 口接數(shù)碼管位選端口 P3 2 接霍爾傳感器的輸出口 P3 3 接存儲(chǔ)器的 SCL 口 P3 4 接存儲(chǔ)器的 SDA 口 P3 5 接時(shí)鐘電路 DS1302 的 RST 口 P3 6 接 DS1302 的 SCLK 口 P3 7 接 DS1302 的 I O 口 3 1 2 復(fù)位電路 AT89S52 的復(fù)位端是一個(gè)施密特觸發(fā)輸入 高電平有效 RST 端若由低電平 上升到高電平并持續(xù) 2 個(gè)機(jī)器周期 系統(tǒng)將實(shí)現(xiàn)一次復(fù)位操作 此復(fù)位電路中 上 電或按一下復(fù)位開關(guān)都能在 RST 端出現(xiàn)一段時(shí)間的高電平 使系統(tǒng)復(fù)位 如圖 3 所 示 7 圖 3 復(fù)位電路 3 1 3 晶振電路 其輸入端為芯片引腳 XTAL1 其輸出端為芯片引腳 XTAL2 通過這兩個(gè)引腳 在芯片外并接石英晶體振蕩器和兩只電容 這樣就構(gòu)成一個(gè)穩(wěn)定的自激振蕩器 如 圖 4 所示 圖 4 晶振電路 8 3 1 4 獨(dú)立鍵盤電路 本設(shè)計(jì)的鍵盤電路由 5 個(gè)獨(dú)立按鍵組成 如圖 5 所示 圖 5 獨(dú)立鍵盤電路 功能如下 S1 功能鍵 按下時(shí)進(jìn)入單雙程選擇模式 再按回到實(shí)時(shí)時(shí)間顯示狀態(tài) S2 切換鍵 按功能鍵進(jìn)入單雙程選擇模式后再按此鍵可進(jìn)行單程和雙程之間切 換 S3 停止鍵 運(yùn)行狀態(tài)按下此鍵即停止計(jì)程計(jì)費(fèi) S4 清除鍵 按下時(shí)清除里程和金額等數(shù)據(jù)信息 并將此次信息送入存儲(chǔ)電路儲(chǔ) 存 S5 查詢 確認(rèn)鍵 功能選擇模式時(shí)按下此鍵確認(rèn)選擇 運(yùn)行時(shí)按下此鍵可查詢 等待時(shí)間 再次按下回到顯示里程數(shù) 金額狀態(tài) 3 1 5 指示燈電路 指示燈電路由 4 個(gè) LED 組成 包括空車指示燈 查詢指示燈 等待指示燈 雙 程指示燈 如圖 6 所示 9 圖 6 指示燈電路 這些指示燈能對計(jì)程車的每一種狀態(tài)進(jìn)行指示 空車時(shí)空車指示燈亮 查詢時(shí) 查詢指示燈亮 當(dāng)車速小于 5km h 時(shí)等待指示燈亮 如果選擇的模式為雙程時(shí)雙程 指示燈亮 單程時(shí)不亮 3 1 6 數(shù)碼管顯示電路 數(shù)碼管顯示電路由兩個(gè)四位一體的 LED 數(shù)碼管組成 LED 數(shù)碼管是由發(fā)光二 極管排列組成的顯示器件 它采用低電壓掃描驅(qū)動(dòng) 具有耗電少 使用壽命長 成 本低 故障少 視角大 可視距離遠(yuǎn)等特點(diǎn) 此外 它的響應(yīng)時(shí)間短 一般不超過 0 1us 亮度也比較高 它的缺點(diǎn)是工作電流比較大 每一段的工作電流在 10mA 左右 其中每位數(shù)碼管內(nèi)部由 8 個(gè) LED 組成 示意圖如圖 7 其中 A G 代表 7 個(gè)發(fā) 光二極管構(gòu)成 7 筆字形 余下一個(gè) DP 構(gòu)成小數(shù)點(diǎn) 稱為 8 段 LED 8 段 LED 數(shù)碼 管可以顯示 0 9 等 10 個(gè)數(shù)字和小數(shù)點(diǎn) 使用非常廣泛 如圖 7 所示 10 圖 7 8 段數(shù)碼管 這類數(shù)碼管可以分為共陽極和共陰極兩種 共陽極就是把所有 LED 的陽極連 接到共同接點(diǎn) 而每個(gè) LED 的陰極分別為 a b c d e f g dp 共陰極則是 把所有 LED 的陰極連接到共同接點(diǎn) 而每個(gè) LED 的陽極分別為 a b c d e f g dp 如圖 8 和圖 9 所示 圖 8 8 段共陽數(shù)碼管 圖 9 8 段共陰數(shù)碼管 通過控制這個(gè)公共端 可使該位對應(yīng)的 LED 亮或暗 當(dāng)共陰極端接地或共陽 極接高電平 該位顯示器有效 反之無效 本設(shè)計(jì)采用共陰 LED 數(shù)碼管 數(shù)碼管有靜態(tài)顯示和動(dòng)態(tài)顯示兩種顯示方式 本設(shè)計(jì)采用動(dòng)態(tài)顯示 相比較而 言 動(dòng)態(tài)顯示方式具有低功耗 接口少等優(yōu)點(diǎn) 本設(shè)計(jì)中使用的兩個(gè)四位一體數(shù)碼 管接 P0 口作為段選 接 P2 口作為位選 空車時(shí)顯示當(dāng)前時(shí)間 開始計(jì)價(jià)時(shí)前四位 顯示里程 后四位顯示金額 當(dāng)查詢等待時(shí)間時(shí)顯示為等待時(shí)間 如圖 10 所示 圖 10 數(shù)碼管顯示電路 3 1 7 車速檢測電路 本次設(shè)計(jì)選取了霍爾傳感器來進(jìn)行里程檢測 11 霍爾器件是一種磁傳感器 用它們可以檢測磁場及其變化 可在各種與磁場有 關(guān)的場合中使用 霍爾器件以霍爾效應(yīng)為工作基礎(chǔ) 霍爾器件具有許多優(yōu)點(diǎn) 它們的結(jié)構(gòu)牢固 體積小 重量輕 壽命長 安裝方 便 功耗小 頻率高 耐震動(dòng) 不怕灰塵 油污 水汽及鹽霧等的污染或腐蝕 霍爾器件分為霍爾元件和霍爾集成電路兩大類 前者是一個(gè)簡單的霍爾片 使 用時(shí)常常需要將獲得的霍爾電壓進(jìn)行放大 后者將霍爾片和它的信號處理電路集成 在同一個(gè)芯片上 本次設(shè)計(jì)選取了霍爾集成電路來測量里程 里程測量是通過將霍爾傳感器的集成電路安裝在車輪上方的鐵板上 將磁鐵安 裝在車輪上 旋轉(zhuǎn)的車輪將磁鐵對準(zhǔn)集成電路時(shí) 霍爾傳感器會(huì)輸出一個(gè)脈沖信號 送到單片機(jī) 經(jīng)過單片機(jī)的計(jì)算處理 將行駛的里程送到顯示單元并顯示出來 霍 爾傳感器里程檢測示意圖如圖 11 所示 圖 11 里程檢測示意圖 U18 霍爾傳感器 IC Integrated Circuit 集成電路 是一種利用霍爾效應(yīng)做 成的半導(dǎo)體集成電路器件 它被設(shè)計(jì)在交變磁場中運(yùn)行 特別是能在低電源電壓工 作 長時(shí)間運(yùn)行溫度范圍高達(dá) 125 這種霍爾可用作各種類型的傳感器 速度傳 感器 位移傳感器 轉(zhuǎn)速傳感器等等 接觸開關(guān)以及相類似的應(yīng)用場合 其工作 電壓比較寬 2 5 20V 可運(yùn)行在較大的溫度范圍內(nèi) 20 125 其輸出 的信號符合 TTL Transistor Transistor Logic 晶體管 晶體管邏輯 電平標(biāo) 準(zhǔn) 可以直接接到單片機(jī)的 IO 口上 而且其最高檢測頻率可達(dá)到 1MHZ U18 霍爾傳感器 IC 的外形圖及其工作特性如圖 12 a b 所示 其中 BOP 為工 作點(diǎn) 開 的磁感應(yīng)強(qiáng)度 BRP 為釋放點(diǎn) 關(guān) 的磁感應(yīng)強(qiáng)度 當(dāng)外加的磁感應(yīng)強(qiáng) 度超過動(dòng)作點(diǎn) BOP 時(shí) 傳感器輸出低電平 當(dāng)磁感應(yīng)強(qiáng)度降到動(dòng)作點(diǎn) BOP 以下時(shí) 傳感器輸出電平不變 一直要降到釋放點(diǎn) BRP 時(shí) 傳感器才由低電平躍變?yōu)楦唠?平 BOP 與 BRP 之間的滯后使開關(guān)動(dòng)作更為可靠 U18 集成霍耳開關(guān)由穩(wěn)壓器 A 霍耳電勢發(fā)生器 即硅霍耳片 B 差分放大器 C 施密特觸發(fā)器 D 和 OC 門輸出 E 五個(gè)基本部分組成 在輸入端輸入電壓 VCC 12 經(jīng)穩(wěn)壓器穩(wěn)壓后加在霍爾電勢發(fā)生器的兩端 根據(jù)霍爾效應(yīng)原理 當(dāng)霍爾片處在磁 場中時(shí) 在垂直于磁場的方向通以電流 則與這二者相垂直的方向上將會(huì)產(chǎn)生霍爾 電勢差 VH 輸出 該 VH 信號經(jīng)放大器放大后送至施密特觸發(fā)器整形 使其成為方 波輸送到 OC 門輸出 當(dāng)施加的磁場達(dá)到工作點(diǎn) 即 Bop 時(shí) 觸發(fā)器輸出高電壓 相 對于地的電位 使三極管導(dǎo)通 此時(shí) OC 門輸出端輸出低電壓 三極管截止 使 OC 門輸出高電壓 這種狀態(tài)為關(guān) 這樣兩次電壓變換 使霍爾開關(guān)完成了一次開 關(guān)動(dòng) 作 a U18 的外形圖及引腳 b U18 的工作特性圖 圖 12 U18 霍爾傳感器 IC 的外形及引腳圖及其工作特性圖 U18 霍爾傳感器 IC 有 3 個(gè)外接端子 2 個(gè)是電源的正負(fù)極端子 最后一個(gè)是脈 沖信號輸出 只要將此信號輸出端接到單片機(jī)的 IO 口端子上便可以實(shí)現(xiàn)距離檢測 其中 單片機(jī)的 P3 2 INT0 引腳作為信號的輸入端接收來自傳感器輸出的信號 采用外部中斷 0 進(jìn)行計(jì)數(shù) 車輪每轉(zhuǎn)一圈 霍爾傳感器就產(chǎn)生一個(gè)脈沖信號 根據(jù) 霍爾效應(yīng)原理 當(dāng)霍爾片處在磁場中時(shí) 霍爾傳感器的輸出端輸出低電平 當(dāng)車輪 轉(zhuǎn)動(dòng)一圈時(shí)小磁鐵提供一個(gè)磁場 則霍爾傳感器輸出一次低電平完成一次數(shù)據(jù)采集 從而產(chǎn)生信號 霍爾傳感器檢測并輸出信號到單片機(jī)的 INT0 計(jì)算脈沖輸入端 引 起單片機(jī)的中斷 對脈沖計(jì)數(shù) 當(dāng)計(jì)數(shù)達(dá)到特定的次數(shù)時(shí) 里程就會(huì)增加 單片機(jī) 對里程進(jìn)行計(jì)算后 通過接口電路將計(jì)算好的結(jié)果傳送到數(shù)碼管并顯示出來 3 1 8 存儲(chǔ)電路 存儲(chǔ)電路的作用是儲(chǔ)存上一次的里程 金額和等待時(shí)間 本設(shè)計(jì)采用 Atmel 公 司的 AT24C1024 可擦除存儲(chǔ)芯片 采用兩線串行的總線和單片機(jī)通訊 芯片內(nèi)的 信息可以在斷電的情況下保存 40 年以上 而且采用 8 腳的 DIP 封裝 使用方便 13 存儲(chǔ)電路如圖 13 所示 圖中 R3 R4 是上拉電阻 其作用是減少 AT24C1024 的靜 態(tài)功耗 由于 AT24C1024 的數(shù)據(jù)線和地址線是復(fù)用的 采用串口的方式傳送數(shù)據(jù) 所以只用兩根線 SCL 時(shí)鐘脈沖 和 SDA 數(shù)據(jù) 地址 與單片機(jī) P3 3 和 P3 4 口連 接 進(jìn)行傳送數(shù)據(jù) 圖 13 存儲(chǔ)電路 3 1 9 時(shí)鐘顯示電路 本設(shè)計(jì)采用基于 DS1302 的時(shí)鐘電路 空車時(shí)顯示當(dāng)前時(shí)間 DS1302 是美國 DALLAS 公司推出的一種高性能 低功耗 帶 RAM 的實(shí)時(shí)時(shí)鐘電路 DS1302 的 引腳排列 其中 VCC1 為后備電源 VCC2 為主電源 在主電源關(guān)閉的情況下 也能 保持時(shí)鐘的連續(xù)運(yùn)行 X1 和 X2 是振蕩源 外接晶振 RST 是復(fù)位 片選線 通過 把 RST 輸入驅(qū)動(dòng)置高電平來啟動(dòng)所有的數(shù)據(jù)傳送 I O 為串行數(shù)據(jù)輸入輸出端 雙向 SCLK 為時(shí)鐘輸入端 如圖 14 所示 14 1 圖 14 時(shí)鐘顯示電路 4 軟件系統(tǒng)設(shè)計(jì) 本系統(tǒng)的軟件設(shè)計(jì)主要分為系統(tǒng)主程序 數(shù)據(jù)處理子程序 等待時(shí)間計(jì)時(shí)子程 序和鍵盤掃描子程序四個(gè)模塊 下面對每一塊進(jìn)行介紹 4 1 系統(tǒng)主程序 本設(shè)計(jì)中采用了主程序調(diào)用各個(gè)子程序的 方法 在 main 函數(shù)編寫開始 要進(jìn)行初始化 包括對系統(tǒng)初始化和對硬件設(shè)備進(jìn)行初始化 并使硬件處于就緒狀態(tài) 在主程序模塊中 需要 完成對各接口芯片的初始化 出租車起價(jià)和單 價(jià)的初始化 中斷向量的設(shè)計(jì)以及開中斷 循 環(huán)等待等工作 系統(tǒng)主程序流程圖如圖 15 所示 初始化 開始 數(shù)據(jù)處理 鍵盤掃描 結(jié)束 等待計(jì)時(shí) 15 圖 15 系統(tǒng)主程序流程圖 4 2 數(shù)據(jù)處理子程序 每當(dāng)霍爾傳感器輸出一個(gè)低電平信號就使單片機(jī)中斷一次 在計(jì)數(shù)中斷服務(wù)程 序 里程和金額都相應(yīng)變化 當(dāng)然等待時(shí)間也換算成里程 當(dāng)速度小于 5km h 時(shí) 每 5 分鐘相當(dāng)于 1 公里 計(jì)算程序根據(jù) 里程數(shù)分別進(jìn)入不同的計(jì)算公式 如果里 程大于 3 公里 則執(zhí)行公式 金額 里 程 3 單價(jià) 8 否則 執(zhí)行公式 總金額 起步價(jià) 數(shù)據(jù)處理子程 序流程圖如圖 16 所示 計(jì)算里程 開始 里程 3公里 金額 8元 金額 單價(jià) 里程 3 8 顯示金額 結(jié)束 否 是 16 圖 16 數(shù)據(jù)處理子程序流程圖 4 3 等待時(shí)間計(jì)時(shí)子程序 當(dāng)出租車的速度 5km h 時(shí)等待時(shí)間開始計(jì)時(shí) 并換算成里程 進(jìn)行計(jì)算后顯示 等待時(shí)間和金額 當(dāng)停止鍵按下時(shí)停止計(jì)時(shí)和計(jì)費(fèi)并顯示金額 當(dāng)有查詢鍵按下時(shí) 顯示等待時(shí)間 當(dāng)有清除鍵按下時(shí)存儲(chǔ)本次金額 等待時(shí)間計(jì)時(shí)子程序如圖 17 所 示 17 圖 17 等待時(shí)間計(jì)時(shí)子程序 4 4 鍵盤掃描子程序 鍵盤采用查詢的方式 放在主程序中 當(dāng)沒有按鍵按下的時(shí)候 單片機(jī)循環(huán)主 程序 一旦右按鍵按下 便轉(zhuǎn)向相應(yīng)的子程序處理 處理結(jié)束再返回 鍵盤掃描子 程序流程圖如圖 18 所示 開始 停止鍵按 下 Speed 5公 里 小時(shí) 開始計(jì)時(shí) 并 顯示 停止計(jì)時(shí) 開始 計(jì)路程 停止計(jì)時(shí) 計(jì)費(fèi) 顯示金額 查詢鍵按下 存儲(chǔ)本次金額 清除鍵按下 顯示等待時(shí)間 結(jié)束 是 否 是 否 否 是 是 否 18 圖 18 鍵盤掃描子程序 開始 功能鍵按 下 單雙程設(shè)置 切換鍵按 下 切換單雙程 確認(rèn)鍵按 下 空車指示滅 開始 計(jì)價(jià)計(jì)時(shí) 顯示里 程 金額 停止鍵按 下 結(jié)算金額顯示 顯示時(shí)間 查詢鍵按 下 顯示等待時(shí)間 與里程清除鍵按 下 存儲(chǔ)金額 查詢鍵按 下 顯示上次金額 結(jié)束 否 是 否 是 是 否 是 否 是 是 否 否 否 是 19 5 系統(tǒng)運(yùn)行的 Proteus 仿真與測試 設(shè)計(jì)仿真中采用輔助軟件 Keil uVision3 對程序進(jìn)行編譯 從而生成 Proteus 中單片機(jī)能夠讀取并載入的 hex 文件 hex 文件生成界面如圖 19 所示 圖 19 hex 文件生成界面 在 Proteus 軟件中畫出仿真電路 另外為了將注意力集中在單片機(jī)對系統(tǒng)的控 制上 將車速檢測電路有傳感器輸出的信號簡化為用一個(gè)脈沖信號源替代 通過改 變脈沖頻率模擬車速變化 把 Keil uVision3 編譯后生成的 hex 導(dǎo)入到單片機(jī)中 進(jìn)行仿真 下面對系統(tǒng)的幾種主要狀態(tài)進(jìn)行運(yùn)行測試 5 1 空車狀態(tài) 空車狀態(tài)時(shí) 空車指示燈亮 數(shù)碼管顯示當(dāng)前時(shí)間 空車狀態(tài)仿真電路及其顯 示如圖 20 所示 20 圖 20 空車狀態(tài)仿真電路 5 2 單雙程模式切換 按下功能鍵 進(jìn)入單雙程選擇模式 如圖 21 和圖 22 所示 數(shù)碼管顯示單價(jià) 數(shù)字前帶負(fù)號表示當(dāng)前單價(jià) 圖 21 單程模式仿真電路 21 圖 22 雙程模式仿真電路 模式選定后按確認(rèn)鍵進(jìn)入運(yùn)行狀態(tài) 空車指示燈滅 該模式對應(yīng)的指示燈亮 雙程亮 單程不亮 數(shù)碼管前四位顯示里程 后四位顯示金額 以雙程模式運(yùn) 行狀態(tài)為例 如圖 23 所示 圖 23 雙程模式運(yùn)行狀態(tài)仿真電路 22 5 3 等待模式 當(dāng)車速小于 5km h 系統(tǒng)進(jìn)入等待模式 等待指示燈亮 數(shù)碼管顯示等待時(shí)間 如圖 24 所示 圖 24 等待模式仿真電路 5 4 查詢模式 當(dāng)?shù)竭_(dá)終點(diǎn)后 按下停止鍵 系統(tǒng)停止運(yùn)行 此時(shí)按查詢鍵可查詢總等待時(shí)間 再按下該鍵回到顯示里程和金額狀態(tài) 查詢指示燈亮 如圖 25 所示 圖 25 查詢狀態(tài)仿真電路 23 交易完成之后 按下清除鍵 系統(tǒng)回到空車狀態(tài) 空車指示燈亮 數(shù)碼管顯示 當(dāng)前時(shí)間 仿真時(shí)由于軟件本身存在延時(shí)等現(xiàn)象 所以顯示結(jié)果可能存在誤差 但并不影 響該系統(tǒng)的功能 仿真結(jié)果表示該系統(tǒng)能實(shí)現(xiàn)設(shè)計(jì)的全部功能要求 24 6 結(jié)束語 在本次設(shè)計(jì)中 我采用了 AT89S52 芯片為核心器件 結(jié)合復(fù)位電路 晶振電 路 獨(dú)立鍵盤電路 指示燈電路 數(shù)碼管顯示電路 車速檢測電路 存儲(chǔ)電路 時(shí) 鐘顯示電路等外部電路 設(shè)計(jì)出了一個(gè)簡易計(jì)程車?yán)锍瘫硐到y(tǒng) 利用 C 語言編程 編譯后寫入單片機(jī)中 通過仿真和調(diào)試之后 系統(tǒng)基本能夠?qū)崿F(xiàn)顯示當(dāng)前時(shí)間 等 待時(shí)間 金額和里程 按鍵控制 空車指示等多種功能 雖然還存在一些誤差 但 還是達(dá)到了本次畢業(yè)設(shè)計(jì)的要求 成功設(shè)計(jì)出了一個(gè)多功能的簡易計(jì)程車?yán)锍瘫硐?統(tǒng) 在這次畢業(yè)設(shè)計(jì)中 我的體會(huì)頗多 選題后 我便開始復(fù)習(xí)電子信息專業(yè)各方 面的知識 也查閱了很多相關(guān)資料 同時(shí)也學(xué)習(xí)仿真軟件 Proteus 和編程軟件 Keil uVision3 的使用 由于我以前大都采用匯編語言來編程 而對這次用 C 語言來實(shí) 現(xiàn)單片機(jī)的編程還不太熟練 所以也花費(fèi)了一些時(shí)間來熟悉 C 語言的編程 復(fù)習(xí)了 一段時(shí)間的理論知識后 我便開始著手設(shè)計(jì)方案 通過比較 最終確定了利用單片 機(jī)來實(shí)現(xiàn)里程表的計(jì)程計(jì)費(fèi) 方案確定后 我便分模塊設(shè)計(jì)了系統(tǒng)原理圖 軟件方 面 繪制了流程圖 并利用 C 語言編寫了全部程序 軟硬件均設(shè)計(jì)完成之后 我通 過 Proteus 軟件對系統(tǒng)進(jìn)行了仿真 仿真結(jié)果達(dá)到設(shè)計(jì)任務(wù)的指標(biāo) 實(shí)現(xiàn)了設(shè)計(jì)的 預(yù)期目標(biāo) 通過幾個(gè)月的努力 我最終完成了本次畢業(yè)設(shè)計(jì)任務(wù) 本次設(shè)計(jì)我學(xué)習(xí)到了不少知識 但由于自己的理論知識水平有限 實(shí)踐知識和 設(shè)計(jì)經(jīng)驗(yàn)不足 在設(shè)計(jì)過程中難免存在一些問題 尚有許多不足 個(gè)別功能還不能 很好的實(shí)現(xiàn) 實(shí)物制作并沒有完成 下一步的工作 是對計(jì)程車計(jì)價(jià)器的功能和實(shí) 用性方面進(jìn)一步完善 并完成實(shí)物的制作 真正做成有實(shí)用價(jià)值的應(yīng)用儀器 懇請 各位老師批評指正 以使我在以后的學(xué)習(xí)和實(shí)踐中加以改進(jìn)和提高 25 參考文獻(xiàn) 1 代啟化 基于 Proteus 的電路設(shè)計(jì)與仿真 J 現(xiàn)代電子技術(shù) 2006 第 19 期 Dai QiHua Proteus based circuit design and simulation J Modern electronic technology 2006 No 19 in Chinese 2 劉文秀 單片機(jī)應(yīng)用系統(tǒng)仿真的研究 J 現(xiàn)代電子技術(shù) 2005 第 286 期 Liu WenXiu Microcontroller Application System Simulation J Modern electronic technology 2005 No 286 in Chinese 3 曹巧媛 單片機(jī)原理及應(yīng)用 M 北京 電子工業(yè)出版社 1997 Cao QiaoYuan Microcontroller Theory and Applications M Beijing Electronic Industry Press 1997 in Chinese 4 張洪潤 蘭清華 單片機(jī)應(yīng)用技術(shù)教程 M 北京 清華大學(xué)出版社 1997 Zhang Hongrun Lan Qinghua MCU application technology tutorial M Beijing Tsinghua University Press 1997 in Chinese 5 李廣第 單片機(jī)基礎(chǔ) M 北京航空航天大學(xué)出版社 2006 Li Guangdi Microcontroller based on M Beijing Aerospace University Press 2006 in Chinese 6 馬忠梅 單片機(jī)的 C 語言編程 M 北京 北京航空航天大學(xué)出版社 2003 Ma Zhongmei the C programming language of SCM M Beijing Beijing Aerospace University Press 2003 in Chinese 7 李華 單片機(jī)實(shí)用接口技術(shù) M 北京 北京航空航天大學(xué)出版社 1993 Li hua SCM practical interface technology M Beijing Beijing Aerospace University Press 1993 in Chinese 8 趙秀珍 單片微型計(jì)算機(jī)原理及其應(yīng)用 M 北京 中國水利水電出版社 2001 Zhao xiuzhen Single chip computer principle and its application M Beijing China WaterPower Press 2001 in Chinese 9 M Mitescu I Susnea Microcontrollersinpractice Springer Berlin 2005 10 MarcusO Durham Systemsdesignandthe8051 TechnoPress Tulsa 2004 26 致 謝 通過不斷努力 我終于完成了此次畢業(yè)設(shè)計(jì) 在此 首先感謝陳堅(jiān)老師 正是 他在百忙之中還抽出寶貴的時(shí)間對我進(jìn)行精心的指導(dǎo) 才使我順利完成了此次畢業(yè) 設(shè)計(jì) 同時(shí)也感謝各位同學(xué)和老師對我提供的幫助 使我在此次設(shè)計(jì)中學(xué)到了許多 寶貴的知識和經(jīng)驗(yàn) 在此 衷心地感謝你們 27 附 錄 附錄 A 元器件清單 附表 1 元器件清單 序號名稱 大小數(shù)量 1電阻 200 1 個(gè) 2電阻 470 8 個(gè) 3電阻 1k 1 個(gè) 4電阻 100 4 個(gè) 5電阻 10k 2 個(gè) 6電容 33pF4 個(gè) 7電容 22 F1 個(gè) 8AT89S521 個(gè) 910k 排阻2 個(gè) 10四位一體共陰極數(shù)碼管2 個(gè) 11LED4 個(gè) 12按鍵6 個(gè) 13晶振 12MHz2 個(gè) 14霍爾傳感器1 個(gè) 15AT24C10241 個(gè) 16DS13021 個(gè) 17附件1 套 28 附錄 B 源程序清單 include include define uint unsigned int define uchar unsigned char define DanJia DanCheng 20 define DanJia WangFan 15 define LunJing 5 車輪直徑 0 5m define LunChang 1 57 m 3 14 0 5 狀態(tài)碼定義 define KongChe flag 0 define JinEr LiCheng flag 1 define ShiJian flag 2 define DanJia flag 3 ds1302 地址定義 define WRITE SECOND 0 x80 define WRITE MINUTE 0 x82 define WRITE HOUR 0 x84 define READ SECOND 0 x81 define READ MINUTE 0 x83 define READ HOUR 0 x85 define WRITE PROTECT 0 x8E AT24C1024 define OP READ 0 xa1 器件地址以及讀取操作 define OP WRITE 0 xa0 器件地址以及寫入操作 引腳定義 29 sbit Function Key P1 0 sbit QieHuan Key P1 1 sbit JieZhang Key P1 2 sbit Clear Key P1 3 sbit ChaXun QueRen Key P3 0 sbit KongChe Led P1 4 sbit ChaXun Led P1 5 sbit JiShi Led P1 6 sbit DanShuang Led P1 7 位尋址寄存器定義 sbit ACC 7 ACC 7 sbit SCLK P3 6 DS1302 時(shí)鐘信號 7 腳 sbit DIO P3 7 DS1302 數(shù)據(jù)信號 6 腳 sbit CE P3 5 DS1302 片選 5 腳 sbit SDA P3 4 sbit SCL P3 3 uchar code table 0 x3f 0 x06 0 x5b 0 x4f 0 x66 0 x6d 0 x7d 0 x07 0 x7f 0 x6f 0 x40 uchar code wei 0 xfe 0 xfd 0 xfb 0 xf7 0 xef 0 xdf 0 xbf 0 x7f uchar data dis1 0 x00 0 x00 0 x0b 0 x00 0 x00 0 x0b 0 x00 0 x00 時(shí)分秒顯示緩沖區(qū) uchar data chuzhi 0 x00 0 x00 0 x00 時(shí)分秒初值 uchar data time1302 0 x00 0 x00 0 x00 0 x00 0 x00 0 x00 0 x00 uint data Count 0 uint data Count1 0 Count2 0 uchar data DanJia DanJia DanCheng 默認(rèn)單程價(jià)格 uint data LiCheng 0 uint data JinEr 0 30 uchar data Second uint data Minute uint data Speed 0 uint data Old Count New Count uchar i 0 j 0 k 0 n 0 uint data temp bit KaiShiFlag 0 bit JiShiFlag 0 bit ChaXunFlag 0 bit JieZhangFlag 0 bit JinErFlag 0 void start void stop unsigned char shin bit shout uchar write data unsigned char read random uchar random addr void write byte uchar addr uchar write data void delayms uchar ms void data process void fill byte uchar fill data uchar n void delay uint x uint y while x for y 110 y 0 y at24c1024 程序 void start 開始位 31 SDA 1 SCL 1 nop nop SDA 0 nop nop nop nop SCL 0 void stop 停止位 SDA 0 nop nop SCL 1 nop nop nop nop SDA 1 uchar shin 從 AT24Cxx 移入數(shù)據(jù)到 MCU unsigned char i read data for i 0 i 8 i SCL 1 read data 1 read data unsigned char SDA SCL 0 32 return read data bit shout unsigned char write data 從 MCU 移出數(shù)據(jù)到 AT24Cxx unsigned char i bit ack bit for i 0 i 8 i 循環(huán)移入 8 個(gè)位 SDA bit write data nop SCL 1 nop nop SCL 0 write data 1 SDA 1 讀取應(yīng)答 nop nop SCL 1 nop nop nop nop ack bit SDA SCL 0 return ack bit 返回 AT24Cxx 應(yīng)答位 void write byte uchar addr uchar write data 在指定地址 addr 處寫入數(shù)據(jù) write data start 33 shout OP WRITE shout addr shout write data stop delayms 10 寫入周期 uchar read current 在當(dāng)前地址讀取 uchar read data start shout OP READ read data shin stop return read data uchar read random unsigned char random addr 在指定地址讀取 start shout OP WRITE shout random addr return read current void fill byte uchar fill data uchar n 填充數(shù)據(jù) fill data 到 EEPROM 內(nèi) uchar i for i 0 i n i write byte i fill data void delayms uchar ms 34 unsigned char i while ms for i 0 i 0 i 循環(huán) 8 次移位 SCLK 0 temp addr DIO bit temp 每次傳輸?shù)妥止?jié) addr 1 右移一位 SCLK 1 發(fā)送數(shù)據(jù) for i 8 i 0 i SCLK 0 temp dat DIO bit temp dat 1 SCLK 1 SCLK 1 CE 0 數(shù)據(jù)讀取子程序 unsigned char Read1302 unsigned char addr unsigned char i temp dat1 dat2 CE 0 SCLK 0 CE 1 發(fā)送地址 for i 8 i 0 i 循環(huán) 8 次移位 SCLK 0 temp addr DIO bit temp 每次傳輸?shù)妥止?jié) 37 addr 1 右移一位 SCLK 1 讀取數(shù)據(jù) for i 8 i 0 i ACC 7 DIO SCLK 1 ACC 1 SCLK 0 SCLK 1 CE 0 dat1 ACC dat2 dat1 16 數(shù)據(jù)進(jìn)制轉(zhuǎn)換 dat1 dat1 16 十六進(jìn)制轉(zhuǎn)十進(jìn)制 dat1 dat1 dat2 10 return dat1 初始化 DS1302 選擇性使用 void init1302 uchar s uchar m uchar h uchar d uchar mon uchar y

溫馨提示

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

評論

0/150

提交評論