基于單片機(jī)系統(tǒng)的出租車(chē)計(jì)價(jià)器.doc_第1頁(yè)
基于單片機(jī)系統(tǒng)的出租車(chē)計(jì)價(jià)器.doc_第2頁(yè)
基于單片機(jī)系統(tǒng)的出租車(chē)計(jì)價(jià)器.doc_第3頁(yè)
基于單片機(jī)系統(tǒng)的出租車(chē)計(jì)價(jià)器.doc_第4頁(yè)
基于單片機(jī)系統(tǒng)的出租車(chē)計(jì)價(jià)器.doc_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余31頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

機(jī)電信息工程學(xué)院機(jī)電信息工程學(xué)院 單片機(jī)系統(tǒng)課程設(shè)計(jì)報(bào)告單片機(jī)系統(tǒng)課程設(shè)計(jì)報(bào)告 目目 錄錄 一 一 設(shè)計(jì)設(shè)計(jì)任任務(wù)務(wù)和性能指和性能指標(biāo)標(biāo) 3 1 1 設(shè)計(jì)任務(wù) 3 1 2 性能指標(biāo) 3 二 二 設(shè)計(jì)設(shè)計(jì)方案方案 4 2 1 任務(wù)分析 4 2 2 系統(tǒng)設(shè)計(jì) 5 三三 系系統(tǒng)統(tǒng)硬件硬件設(shè)計(jì)設(shè)計(jì) 7 3 1 電源電路 7 3 2 單片機(jī)的最小系統(tǒng) 8 3 3 DS1302 時(shí)鐘電路 9 3 4 顯示電路的設(shè)計(jì) 10 3 5 按鍵控制的設(shè)計(jì) 11 3 7 復(fù)位電路 13 四 系四 系統(tǒng)軟統(tǒng)軟件件設(shè)計(jì)設(shè)計(jì) 14 4 1 主程序設(shè)計(jì) 14 4 2 子程序設(shè)計(jì) 15 4 2 1 DS1302 子程序 15 4 2 1 DS1302 子程序流程圖 15 4 2 2 顯示子程序 17 4 2 2 顯示子程序流程圖 19 4 3 修改時(shí)間子程序 20 五 五 調(diào)試調(diào)試及性能分析及性能分析 21 5 1 調(diào)試步驟 21 5 1 1 硬件調(diào)試 21 5 1 2 軟件調(diào)試 21 5 2 性能分析 21 六 心得體會(huì)六 心得體會(huì) 23 七 參考文獻(xiàn)七 參考文獻(xiàn) 24 八 附八 附錄錄 25 附錄 1 程序清單 25 附錄 2 系統(tǒng)硬件電路圖 35 一 設(shè)計(jì)任務(wù)和性能指標(biāo)一 設(shè)計(jì)任務(wù)和性能指標(biāo) 1 11 1 設(shè)計(jì)任務(wù)設(shè)計(jì)任務(wù) 出租車(chē)計(jì)價(jià)器是乘客與司機(jī)雙方的交易準(zhǔn)則 它是出租車(chē)行業(yè)發(fā)展的重要 標(biāo)志 是出租車(chē)中最重要的工具 它關(guān)系著交易雙方的利益 具有良好性能的 計(jì)價(jià)器無(wú)論是對(duì)廣大出租車(chē)司機(jī)朋友還是乘客來(lái)說(shuō)都是很必要的 出租車(chē)計(jì)價(jià)器的主要功能是計(jì)價(jià)顯示 時(shí)鐘顯示 根據(jù)白天 黑夜 途中 等待來(lái)調(diào)節(jié)營(yíng)運(yùn)參數(shù) 計(jì)量數(shù)據(jù)查詢(xún)等 要求用 Protel 畫(huà)出系統(tǒng)的電路原理圖 要求以最少組件 實(shí)現(xiàn)系統(tǒng)設(shè)計(jì)所要求的功能 印刷電路板 要求布局合 理 線路清晰 繪出程序流程圖 并給出程序清單 要求思路清晰 盡量簡(jiǎn) 潔 主程序和子程序分開(kāi) 使程序有較強(qiáng)的可讀性 1 21 2 性能指標(biāo)性能指標(biāo) 1 不同情況具有不同收費(fèi)標(biāo)準(zhǔn) 白天 晚上 途中等待 10min 開(kāi)始收 費(fèi) 2 數(shù)據(jù)輸出 單價(jià)輸出 路程輸出 總金額輸出 3 按鍵 啟動(dòng)計(jì)時(shí)開(kāi)關(guān) 數(shù)據(jù)顯示切換 白天 晚上切換 復(fù)位 4 能手動(dòng)進(jìn)行修改單價(jià) 但單價(jià)設(shè)定需密碼進(jìn)入 二 設(shè)計(jì)方案二 設(shè)計(jì)方案 2 12 1 任務(wù)分析任務(wù)分析 出租車(chē)計(jì)價(jià)器基本功能部分是根據(jù)里程數(shù)來(lái)完成總金額的輸出 實(shí)現(xiàn)方法 有兩種 方案一 采用數(shù)字電路控制 其原理方框圖如圖 2 1 所示 采用傳感器件 輸出脈沖信號(hào) 經(jīng)過(guò)放大整形作為移位寄存器的脈沖 實(shí)現(xiàn)計(jì)價(jià) 但是考慮到 這種電路過(guò)于簡(jiǎn)單 性能不夠穩(wěn)定 而且不能調(diào)節(jié)單價(jià) 也不能根據(jù)天氣調(diào)節(jié) 計(jì)費(fèi)標(biāo)準(zhǔn) 電路不夠?qū)嵱?移移位位寄寄存存器器 電電路路 里里程程傳傳感感器器 金金額額顯顯 示示 單單價(jià)價(jià)顯顯 示示 電電源源電電路路及及 保保護(hù)護(hù)電電路路 圖 2 1 數(shù)字電路實(shí)現(xiàn)框圖 方案二 采用單片機(jī)控制 利用單片機(jī)豐富的 IO 端口 及其控制的靈活性 實(shí)現(xiàn)基本的里程計(jì)價(jià)功能和價(jià)格調(diào)節(jié) 時(shí)鐘顯示功能 本方案有較大的活動(dòng)空 間 不但能實(shí)現(xiàn)所要求的功能而且能在很大的程度上擴(kuò)展功能 而且還可以方 便的對(duì)系統(tǒng)進(jìn)行升級(jí) 所以我們采用后一種方案 2 22 2 系統(tǒng)設(shè)計(jì)系統(tǒng)設(shè)計(jì) 鍵盤(pán)電路 掉電保護(hù) 單片機(jī) 顯示電路 里程輸入 圖 2 1 電路系統(tǒng)構(gòu)成框圖 主控芯片使用 51 系列 AT89C52 單片機(jī) 采用高性能的靜態(tài) 80C51 設(shè)計(jì) 由先進(jìn)工藝制造 并帶有非易失性 Flash 程序存儲(chǔ)器 它是一種高性能 低功 耗的 8 位 COMS 微處理芯片 市場(chǎng)應(yīng)用最多 時(shí)鐘芯片使用美國(guó) DALLAS 公司推出的一種高性能 低功耗 帶 RAM 的 實(shí)時(shí)時(shí)鐘芯片 DS1302 采用 DS1302 作為主要計(jì)時(shí)芯片 可以做到計(jì)時(shí)準(zhǔn)確 更重要的是 DS1302 可以在很小的電流的后備電源 2 5 5 5V 電源 在 2 5V 時(shí)耗電小于 300nA 下繼續(xù)計(jì)時(shí) 并可編程選擇多種充電電流對(duì)后備電源進(jìn)行慢 速充電 可以保證后備電源基本不耗電 采用串行數(shù)據(jù)傳輸 與單片機(jī)硬件連 接簡(jiǎn)單 如果使用時(shí)鐘芯片 DS12887 將采用并行數(shù)據(jù)傳輸 占用更多的硬件 資源 因此為節(jié)省單片機(jī)端口 時(shí)鐘芯片采用 DS1302 它們可以檢測(cè)磁場(chǎng)及其變化 可在各種與磁場(chǎng)有關(guān)的場(chǎng)合中使用 霍爾器 件以霍爾效應(yīng)為其工作基礎(chǔ) 霍爾器件具有許多優(yōu)點(diǎn) 它們的結(jié)構(gòu)牢固 體積 小 重量輕 壽命長(zhǎng) 安裝方便 功耗小 頻率高 可達(dá) 1MHZ 耐振動(dòng) 不怕灰塵 油污 水汽及鹽霧等的污染或腐蝕 活兒現(xiàn)行器件的精度高 線性 度好 霍爾開(kāi)關(guān)器件無(wú)觸點(diǎn) 無(wú)磨損 輸出波形清晰 無(wú)抖動(dòng) 無(wú)回跳 無(wú)知 重復(fù)精度高 可達(dá) Im 級(jí) 采用了各種步長(zhǎng)和保護(hù)措施的霍爾器件的工作溫 度范圍寬 可達(dá) 55 攝氏度 150 攝氏度 數(shù)據(jù)顯示模塊采用的是 LED 數(shù)碼管顯示 LCD 雖然也能實(shí)現(xiàn)顯示功能 但在距屏幕 1 米之外就無(wú)法看清數(shù)據(jù) 不能滿足要求 而且在白天其對(duì)比度也 不能滿足要求 因此建議采用 LED 數(shù)碼管顯示 數(shù)碼管總共用了 12 個(gè) 其中 第一行顯示小時(shí)和分鐘 第二行第一個(gè)顯示單價(jià) 后面 3 個(gè)顯示里程數(shù) 最后 一行顯示總價(jià) 按鍵控制模塊使用了 3 個(gè)脈沖開(kāi)關(guān) 其中一個(gè)開(kāi)關(guān)負(fù)責(zé)換位 另一個(gè)負(fù)責(zé) 改數(shù) 第三個(gè)按鍵負(fù)責(zé)切換至等待時(shí)間 三三 系統(tǒng)硬件設(shè)計(jì)系統(tǒng)硬件設(shè)計(jì) 3 13 1 電源電路電源電路 因?yàn)槌鲎廛?chē)上的電壓時(shí) 12V 而芯片所需供電電壓是 5V 所以選擇 LM7805 的經(jīng)典電路電源電路完成 12V 轉(zhuǎn) 5V 的目的 電源電路圖如下圖 3 1 所 示 圖 3 1 電源電路圖 3 23 2 單片機(jī)的最小系統(tǒng)單片機(jī)的最小系統(tǒng) 單片機(jī)最小系統(tǒng)采用的是 STC89C54 芯片 STC89C54 是一種低功耗 高 新能 CMOS 8 為微控制器 具有 8K 在系統(tǒng)可編程 Flash 存儲(chǔ)器 使用 Atmel 公 司高密度非易失性存儲(chǔ)器技術(shù)制造 與工業(yè) 80C51 鏟平指令和引腳完全兼容 偏上 FLASH 允許程序存儲(chǔ)器在系統(tǒng)可編程 亦適于常規(guī)編程器 在單芯片上 擁有平橋的 8 為 CPU 何在系統(tǒng)可編程 Flash 使得 STC89C54 為眾多嵌入式控 制應(yīng)用系統(tǒng)提供高靈活 超有效的解決方案 STC89C54 具有以下標(biāo)準(zhǔn)功能 8K 字節(jié) Flash 256 字節(jié) RAM 32 位 I O 口線 看門(mén)狗定時(shí)器 2 個(gè)數(shù)據(jù)指針 三個(gè) 16 為定時(shí)器 計(jì)數(shù)器 一個(gè) 6 向量 2 級(jí)終端結(jié)構(gòu) 全雙工串行口 片內(nèi)晶振及時(shí)鐘電路 另外 AT89S52 可降至 0HZ 靜態(tài)邏輯操作 支持 2 中軟件可選擇節(jié)點(diǎn)模式 空閑模式下 CPU 停止工 作 允許 RAM 定時(shí)器 計(jì)數(shù)器 串口 終端繼續(xù)工作 掉電保護(hù)方式下 RAM 內(nèi)容被保存 振蕩器被凍結(jié) 單片機(jī)一切工作停止 直到下一個(gè)中斷或硬 件復(fù)位為止 單片機(jī)最小系統(tǒng)電路圖如下圖 3 2 所示 圖 3 2 單片機(jī)最小系統(tǒng)電路圖 3 33 3 DS1302DS1302 時(shí)鐘電路時(shí)鐘電路 若采用單片機(jī)計(jì)時(shí) 一方面需要采用計(jì)數(shù)器 占用陰間資源 另一方面需 要設(shè)置終端 查詢(xún)等 同樣耗費(fèi)單片機(jī)的資源 并且使用單片機(jī)的時(shí)鐘誤差比 較大 當(dāng)長(zhǎng)時(shí)間使用后會(huì) 會(huì)出現(xiàn)很大錯(cuò)誤 而在系統(tǒng)中采用 DS1302 則能很 好的解決這個(gè)問(wèn)題 DS1302 時(shí)鐘電路圖如圖 3 3 所示 圖 3 3 DS1302 時(shí)鐘電路圖 3 43 4 顯示電路的設(shè)計(jì)顯示電路的設(shè)計(jì) 在顯示模塊需要對(duì)時(shí)間 單價(jià) 總價(jià) 路程 等待時(shí)間進(jìn)行顯示 采用的是 數(shù)碼管 數(shù)碼管總共用了 12 個(gè) 其中第一行顯示小時(shí)和分鐘 第二行第一個(gè)顯示單價(jià) 后面 3 個(gè)顯示里程數(shù) 最后一行顯示總價(jià) 顯示電路圖 一個(gè)數(shù)碼管 如下圖 3 4 所示 圖 3 4 顯示電路圖 3 53 5 按鍵控制的設(shè)計(jì)按鍵控制的設(shè)計(jì) 按鍵的設(shè)置是為了能夠手動(dòng)更改時(shí)間和單價(jià) 還有就是手動(dòng)切換到等待時(shí)間的 地方 按鍵采用的是脈沖按鍵 按鍵設(shè)置電路圖如圖 3 5 所示 圖 3 5 按鍵控制電路圖 3 6 掉電保護(hù) 掉電存儲(chǔ)單元的作用是在電源斷開(kāi)的時(shí)候 存儲(chǔ)當(dāng)前設(shè)定的單價(jià)信息 掉 電保護(hù)的芯片較多 如 AT24C02 是 ATMEL 公司的 2KB 字節(jié)的電可擦除存儲(chǔ) 芯片 采用兩線串行的總線和單片機(jī)通訊 電壓最低可以到 2 5V 額定電流為 1mA 靜態(tài)電流 10Ua 5 5V 芯片內(nèi)的資料可以在斷電的情況下保存 40 年以上 而且采用 8 腳的 DIP 封裝 使用方便 掉電保護(hù)電路圖如下圖 3 6 所示 圖 3 6 掉電保護(hù)電路圖 3 73 7 復(fù)位電路復(fù)位電路 復(fù)位功能采用的是 MAX813L 芯片 MAX813L 是具有監(jiān)控電路的微處理 芯片 它具有 4 個(gè)功能 1 具有獨(dú)立的看門(mén)狗計(jì)時(shí)器 如果看門(mén)狗輸入在 1 6 秒 內(nèi)無(wú)變化 就會(huì)產(chǎn)生看門(mén)狗輸出 2 掉電或電源電壓低于 1 25V 時(shí) 產(chǎn)生掉電 輸出 3 上電時(shí)能自動(dòng)產(chǎn)生 200ms 寬的復(fù)位脈沖 4 具有人工復(fù)位功能 當(dāng)人 工復(fù)位端輸入低電平時(shí) 產(chǎn)生復(fù)位信號(hào)輸出 復(fù)位電路如圖 3 7 所示 圖 3 7 復(fù)位電路圖 四 系統(tǒng)軟件設(shè)計(jì)四 系統(tǒng)軟件設(shè)計(jì) 4 14 1 主程序設(shè)計(jì)主程序設(shè)計(jì) 程序的難度主要就是在數(shù)碼管的顯示和外部脈沖的采集部分 分別采用 74LS273 芯片對(duì)數(shù)碼管進(jìn)行段選 使數(shù)碼管顯示對(duì)應(yīng)的數(shù) 另外使用 74LS154 對(duì)數(shù)碼管進(jìn)行位選 選擇哪個(gè)數(shù)碼管亮 采用的是動(dòng)態(tài)顯示 還有外部脈沖的 收集 需要對(duì)里程數(shù)進(jìn)行顯示 所以必須要先進(jìn)行脈沖的采集 程序流程圖如圖 4 1 所示 圖 4 1 程序流程圖 4 24 2 子程序設(shè)計(jì)子程序設(shè)計(jì) 4 2 14 2 1 DS1302DS1302 子程序子程序 4 2 14 2 1 DS1302DS1302 子程序流程圖子程序流程圖 顯示單價(jià) 總價(jià) 路程 時(shí)間等數(shù)據(jù) 循環(huán)掃描進(jìn)行顯示 如果在一分 鐘內(nèi)沒(méi)有脈沖 開(kāi)啟終端 顯示秒分子程序 DS1302 子程序流程圖如 4 2 1 所示 開(kāi)始 寫(xiě)入實(shí)參數(shù) addr CE 1 SCLK 0 I 0 取 ADDR 低位 Addr 右移一位 Sclk 上升沿 是否是上升 沿 Y 等待上升沿 N i i 8 結(jié)束 Y N 圖 4 2 1 DS1302 子程序流程圖 4 2 24 2 2 顯示子程序顯示子程序 void sett 顯示等待時(shí)間及單價(jià) 總價(jià) 路程子程序 TAB 0 Read1302 0 x83 10 TAB 1 Read1302 0 x83 10 TAB 7 Read1302 0 x81 10 TAB 6 Read1302 0 x81 10 TAB 8 3 TAB 2 Coo 100 TAB 3 Coo 10 10 TAB 4 Coo 10 if TAB 4 3 else TAB 11 8 Coo 3 TAB 8 10 TAB 5 TAB 2 TAB 8 10 TAB 9 Coo 100 TAB 8 Coo 100 TAB 8 100 TAB 10 Coo 10 TAB 8 Coo 10 TAB 8 10 10 void mmm 顯示時(shí)間子程序 TAB 0 Read1302 0 x85 10 TAB 1 Read1302 0 x85 10 TAB 7 Read1302 0 x83 10 TAB 6 Read1302 0 x83 10 TAB 8 3 TAB 11 8 Coo 3 TAB 8 10 TAB 5 TAB 2 TAB 8 10 TAB 9 Coo 100 TAB 8 Coo 100 TAB 8 100 TAB 10 Coo 10 TAB 8 Coo 10 TAB 8 10 10 void mm 非計(jì)價(jià)時(shí)的顯示時(shí)間 TAB 0 Read1302 0 x85 10 TAB 1 Read1302 0 x85 10 TAB 7 Read1302 0 x83 10 TAB 6 Read1302 0 x83 10 TAB 8 3 TAB 2 Coo 100 TAB 3 Coo 10 10 TAB 4 Coo 10 if TAB 4 12 結(jié)束 Y N 圖 4 2 2 顯示子程序流程圖 4 34 3 修改時(shí)間子程序修改時(shí)間子程序 修改 TAB 數(shù)組里的前 5 位數(shù)據(jù) 分別為小時(shí) 分鐘 單價(jià) 五 調(diào)試及性能分析五 調(diào)試及性能分析 5 15 1 調(diào)試步驟調(diào)試步驟 5 1 15 1 1 硬件調(diào)試硬件調(diào)試 錯(cuò)誤 1 LM7805 封裝時(shí) 2 腳和 3 腳弄混 解決辦法 1 將 LM78052 腳和 3 腳手工矯正 2 利用飛線重新手工焊接 錯(cuò)誤 2 進(jìn)行原理圖設(shè)計(jì)時(shí) 電源網(wǎng)絡(luò)標(biāo)號(hào)不一致 74LS14 74HC154 電 源網(wǎng)絡(luò)標(biāo)號(hào)與其他的不一致 解決辦法 利用飛線 將錯(cuò)誤的網(wǎng)絡(luò)標(biāo)號(hào)和正確的網(wǎng)絡(luò)標(biāo)號(hào)進(jìn)行手工焊接 錯(cuò)誤 3 1K 9 排阻焊反 解決辦法 手工拔出 重新焊接 錯(cuò)誤四 在焊接時(shí) 由于焊接時(shí)間過(guò)長(zhǎng) 造成三極管燒壞 解決辦法 手工拔出重新焊接 錯(cuò)誤 5 有些器件焊接次數(shù)過(guò)于頻繁 造成印刷板上焊盤(pán)和導(dǎo)線脫落 解決辦法 利用飛線將對(duì)應(yīng)的網(wǎng)絡(luò)標(biāo)號(hào)進(jìn)行連接 5 1 25 1 2 軟件調(diào)試 軟件調(diào)試 在軟件編程時(shí) 應(yīng)充分利用原理圖 不然會(huì)在編程時(shí)導(dǎo)致硬件與軟件不能 對(duì)應(yīng)起來(lái) 使程序無(wú)法實(shí)現(xiàn)功能 還有在編程時(shí)子程序的名稱(chēng)應(yīng)與其功能對(duì)應(yīng) 否則會(huì)使別人在讀程序的時(shí)候不能及時(shí)理解程序含義 而且在軟件調(diào)試時(shí)邏輯 一定要清晰 不然在找錯(cuò)時(shí)會(huì)浪費(fèi)很多時(shí)間 5 25 2 性能分析性能分析 通過(guò)軟件調(diào)試后 最終能實(shí)現(xiàn)實(shí)時(shí)時(shí)鐘顯示 里程數(shù)的顯示 單價(jià)的顯示 總價(jià)的顯示 時(shí)間的調(diào)整 等待時(shí)間的顯示 時(shí)間顯示模塊使用的是時(shí)鐘芯片 DS1302 它精確度高 功能強(qiáng)大 使用它 能降低單片機(jī)的負(fù)荷 減小誤差 里程數(shù)收集模塊由于條件限制 所以我們使用一個(gè)外部脈沖信號(hào)作為里程 數(shù)的收集 用一個(gè)脈沖表示一公里 最大的里程數(shù)可達(dá) 256 公里 電源模塊部分由于經(jīng)驗(yàn)問(wèn)題 沒(méi)有在 PCB 板上加上串口和 USB 口 使得 電源不穩(wěn) 只能用導(dǎo)線在外部加一個(gè) 5V 電壓 而且由于 7805 的封裝引腳分配 有錯(cuò)誤 導(dǎo)致在最初調(diào)試的時(shí)候芯片燒壞 所以最終放棄 7805 的電壓轉(zhuǎn)換 而 直接使用 5V 電壓 顯示模塊使用 LED 數(shù)碼管 通過(guò)軟件調(diào)試 12 個(gè)數(shù)碼管能顯示時(shí)間 總 路程 單價(jià) 總價(jià)及等待時(shí)間的自動(dòng)切換 六 心得體會(huì)六 心得體會(huì) 由于初次進(jìn)行硬件電路設(shè)計(jì) 出現(xiàn)了很多簡(jiǎn)單又致命的錯(cuò)誤 見(jiàn)硬件調(diào)試 5 個(gè)錯(cuò)誤在一塊線路密集并且已經(jīng)焊好器件的電路板上無(wú)疑是大海撈針 像 器件焊反之類(lèi)的錯(cuò)誤還比較好排除 而器件損壞和網(wǎng)絡(luò)標(biāo)號(hào)不一致這樣的錯(cuò)誤 就很讓人頭疼 僅僅只是網(wǎng)絡(luò)標(biāo)號(hào)不一致這個(gè)錯(cuò)誤就讓我們整整測(cè)試了一天才發(fā)現(xiàn) 所以 下次設(shè)計(jì)硬件電路的時(shí)候一定要找?guī)讉€(gè)人仔細(xì)檢查電路圖 不能再輕易犯這樣 的錯(cuò)誤 像印刷板上導(dǎo)線斷裂這樣的錯(cuò)誤也比較難找 而這種錯(cuò)誤往往是焊接時(shí)溫 度過(guò)高或者是焊接過(guò)于頻繁造成的 所以以后焊接的時(shí)候一定不會(huì)再犯這樣的 錯(cuò)誤了 而且由于當(dāng)初設(shè)計(jì) USB 口和串行口 為軟件調(diào)試造成了很大的麻煩 每天 不停地拔單片機(jī) 再做學(xué)生實(shí)驗(yàn)的時(shí)候不能太過(guò)于追求趨近于真實(shí)產(chǎn)品 過(guò) 于追求真實(shí)會(huì)讓你的實(shí)驗(yàn)過(guò)程變得極其困難 真的是后悔不已 當(dāng)初想利用以前做的單片機(jī)最小系統(tǒng)開(kāi)發(fā)板上的串行口進(jìn)行程序下載 但 是到真正實(shí)行的時(shí)候在發(fā)現(xiàn)并不是那么回事 由于對(duì)單片機(jī)的要求達(dá)不到 雖 然理論上天衣無(wú)縫 但實(shí)際上根本不可能實(shí)現(xiàn) 雖然出租車(chē)上提供的電源是 12V 即便在實(shí)驗(yàn)板上設(shè)計(jì)了電源電路也應(yīng)該 再加上一個(gè) USB 口提供 5V 電源 因?yàn)槌嗽趯?shí)驗(yàn)室其他地方是并不太容易找 到 12V 電源 由于對(duì) USB 口的省略 對(duì)軟件調(diào)試工作造成了很大的麻煩 七 參考文獻(xiàn)七 參考文獻(xiàn) 1 徐維祥 劉旭敏 單片微型機(jī)原理及應(yīng)用 大連 大連理工大學(xué)出版社 1996 戴勝華 蔣大明 單片機(jī)原理與應(yīng)用 北京 清華大學(xué)出版社 2005 李剛 新概念單片機(jī)教程 天津 天津大學(xué)出版社 2004 王宗和 單片機(jī)實(shí)驗(yàn)與綜合訓(xùn)練 北京 高等教育出版社 2000 八 附錄八 附錄 附錄附錄 1 1 程序清單 程序清單 include reg51 h include intrins h define uchar unsigned char uchar tmp uchar det uchar Coo int m int f uchar code DispTab 0 xc0 0 xf9 0 xa4 0 xb0 0 x99 0 x92 0 x82 0 xf8 0 x80 0 x90 0 xc0 字 形碼 uchar TAB 24 sbit P00 P0 0 sbit P01 P0 1 sbit P02 P0 2 sbit P03 P0 3 sbit P04 P0 4 sbit P05 P0 5 sbit P10 P1 0 sbit P27 P2 7 sbit P14 P1 4 sbit SCLK P1 3 DS1302 的 SCLK 腳脈沖 sbit DIO P1 2 DS1302 的 IO 腳數(shù)據(jù) sbit CE P1 1 DS1302 的 RST 腳片選 sbit P15 P1 5 sbit P23 P2 3 sbit P21 P2 1 sbit P16 P1 6 sbit P35 P3 5 sbit P22 P2 2 sbit P17 P1 7 sbit P20 P2 0 sbit P26 P2 6 sbit P24 P2 4 sbit ACC7 ACC 7 sbit ACC0 ACC 0 void time interrupt 1 等待計(jì)時(shí)中斷 int i j TH0 0 x15 TL0 0 xa0 i if i 100 i 0 j if j 10 j 0 f Coo void mDelay unsigned int Delay 延時(shí)子程序 unsigned int I for Delay 0 Delay for I 0 I0 i 循環(huán) 8 次移位 temp addr DIO bit temp 每次傳輸?shù)妥止?jié) addr 1 SCLK 0 右移一位 SCLK 1 發(fā)送數(shù)據(jù) for i 8 i 0 i temp dat DIO bit temp dat 1 SCLK 0 SCLK 1 CE 0 unsigned char Read1302 unsigned char addr 數(shù)據(jù)讀取子程序 unsigned char i temp dat1 dat2 CE 0 SCLK 0 CE 1 發(fā)送地址 for i 8 i 0 i 循環(huán) 8 次移位 temp addr DIO bit temp 每次傳輸?shù)妥止?jié) addr 1 SCLK 0 SCLK 1 右移一位 讀取數(shù)據(jù) for i 8 i 0 i ACC7 DIO ACC 1 SCLK 1 SCLK 0 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 ACC void Initial 初始化 DS1302 Write1302 0 x8E 0 x00 禁止寫(xiě)保護(hù) Write1302 0 x80 0 x00 秒位初始化 Write1302 0 x82 0 x20 分鐘初始化 Write1302 0 x84 0 x10 Write1302 0 x86 0 x23 Write1302 0 x88 0 x05 Write1302 0 x8c 0 x10 小時(shí)初始化 Write1302 0 x8E 0 x80 允許寫(xiě)保護(hù) void set 修改時(shí)間 Write1302 0 x8E 0 x00 禁止寫(xiě)保護(hù) Write1302 0 x82 TAB 7 16 TAB 6 分鐘初始化 Write1302 0 x84 TAB 0 16 TAB 1 Write1302 0 x8E 0 x80 void ss 顯示子程序 int i uchar p p TAB for i 0 i 1 i det p tmp DispTab det P0 tmp P20 0 P20 1 P14 0 P15 0 P16 0 P17 0 p det p tmp DispTab det P0 tmp P20 0 P20 1 P14 1 P15 0 P16 0 P17 0 p det p tmp DispTab det P0 tmp P20 0 P20 1 P14 0 P15 1 P16 0 P17 0 p det p tmp DispTab det P0 tmp P20 0 P20 1 P14 1 P15 1 P16 0 P17 0 p det p tmp DispTab det P0 tmp P20 0 P20 1 P14 0 P15 0 P16 1 P17 0 p det p tmp DispTab det P0 tmp P20 0 P20 1 P14 1 P15 0 P16 1 P17 0 p det p tmp DispTab det P0 tmp P20 0 P20 1 P14 0 P15 1 P16 1 P17 0 p det p tmp DispTab det P0 tmp P20 0 P20 1 P14 1 P15 1 P16 1 P17 0 p det p tmp DispTab det P0 tmp P20 0 P20 1 P14 0 P15 0 P16 0 P17 1 p det p tmp DispTab det P0 tmp P20 0 P20 1 P14 1 P15 0 P16 0 P17 1 p det p tmp DispTab det P0 tmp P20 0 P20 1 P14 0 P15 1 P16 0 P17 1 p det p tmp DispTab det P0 tmp P20 0 P20 1 P14 1 P15 1 P16 0 P17 1 p det p tmp DispTab det P0 tmp P20 0 P20 1 P14 0 P15 0 P16 1 P17 1 p void sett 顯示等待時(shí)間及單價(jià) 總價(jià) 路程子程序 TAB 0 Read1302 0 x83 10 TAB 1 Read1302 0 x83 10 TAB 7 Read1302 0 x81 10 TAB 6 Read1302 0 x81 10 TAB 8 3 TAB 2 Coo 100 TAB 3 Coo 10 10 TAB 4 Coo 10 if TAB 4 3 else TAB 11 8 Coo 3 TAB 8 10 TAB 5 TAB 2 TAB 8 10 TAB 9 Coo 100 TAB 8 Coo 100 TAB 8 100 TAB 10 Coo 10 TAB 8 Coo 10 TAB 8 10 10 void mmm 顯示時(shí)間子程序 TAB 0 Read1302 0 x85 10 TAB 1 Read1302 0 x85 10 TAB 7 Read1302 0 x83 10 TAB 6 Read1302 0 x83 10 TAB 8 3 void qie int j 修改時(shí)間 單價(jià)子程序 uchar i switch j case 4 ss if P22 0 for i 0 i 1 i P22 ss TAB 8 if TAB 8 10 TAB 8 0 break case 3 ss if P22 0 for i 0 i 1 i P22 ss TAB 6 if TAB 6 10 TAB 6 0 break case 2 ss if P22 0 for i 0 i 1 i P22 ss TAB 7 if TAB 7 6 TAB 7 0 break case 1 ss if P22 0 for i 0 i 1 i P22 ss TAB 1 if TAB 0 2 break case 0 ss if P22 0 for i 0 i 1 i P22 ss TAB 0 if TAB 0 3 TAB 0 0 break default break Void die 修改單價(jià)位 時(shí)間位子程序 int x for m 0 m 5 ss qie m if P21 0 for x 0 x 1 ss x P21 m set void mm 非計(jì)價(jià)時(shí)的顯示時(shí)間 TAB 0 Read1302 0 x85 10 TAB 1 Read1302 0 x85 10 TAB 7 Read1302 0 x83 10 TAB 6 Read1302 0 x83 10 TAB 8 3 TAB 2 Coo 100 TAB 3 Coo 10 10 TAB 4 Coo 10 if TAB 4 3 else TAB 11 8 Coo 3 TAB 8 10 TAB 5 TAB 2 TAB 8 10 TAB 9 Coo 100 TAB 8 Coo 100 TAB 8 100 TAB 10 Coo 10 TAB 8 Coo 10 TAB 8 10 10 void count 計(jì)價(jià)子程序 int x EA 1 if f Coo sett ss else mm if P35 0 for x 0 x 1 ss x P35 Coo void main int i j TMOD 0 x01 TH0 0 x15 TL0 0 xa0 TR0 1 ET0 1 Initial P27 0 for if P23 0 for i 0 i 1 ss i P23 for j 0 j 1 count ss if P23 0 for i 0 i 1 ss i P23 EA 0 j TAB 2 TAB 3 TAB 11 TAB 5 TAB 9 TAB 10 TAB 4 0 else mmm ss if P21 0 for i 0 i 1 ss i P21 die 附錄附錄 2 2 系統(tǒng)硬件電路圖系統(tǒng)硬件電路圖 IN 1 3 OUT 2 GND U6 LM78L05ACH 220 R3 GND GND 5 OUT A0 1 A1 2 A2 3 GND 4 SDA 5 SCL 6 WP 7 VCC 8 U7 AT24C02 GND 5 5 MR 1 VCC 2 GND 3 PFI 4 PFO 5 WDI 6 RST 7 WDO 8 U9 MAX813 GND C7 10uF 1K 5 GND 4K7 R7 5K1 R6 P25 P26 P25 P26 X1 2 X2 3 VCC2 1 GND 4 RST 5 I O 6 SCLK 7 VCC1 8 U10 DS1302 Y2 32 768khz GND 5 0 1nf C8 1 2 3 4 5 6 7 8 9 10 DS1 CON10 a b c d e f g dp V1 1 2 3 4 5 6 7 8 9 10 DS2 CON10 a b c d e f g dp V2 1 2 3 4 5 6 7 8 9 10 DS6 CON10 a b c d e f g dp V3 1 2 3 4 5 6 7 8 9 10 DS7 CON10 a b c d e f g dp V4 1 2 3 4 5 6 7 8 9 10 DS8 CON10 a b c d e f g dp V5 1 2 3 4 5 6 7 8 9 10 DS9 CON10 a b c d e f g dp V6 1 2 3 4 5 6 7 8 9 10 DS4 CON10 a b c d e f g dp V7 1 2 3 4 5 6 7 8 9 10 DS3 CON10 a b c d e f g dp V8 E 2 C 3 B 1 Q1 C8550 E 2 C 3 B 1 Q2 C8550 E 2 C 3 B 1 Q3 C8550 E 2 C 3 B 1 Q6 C8550 E 2 C 3 B 1 Q7 C8550 E 2 C 3 B 1 Q10 C8550 Q12 C8550 4K7 R4 4K7 R5 4K7 R8 4K7 R11 4K7 R14 4K7 R15 R17 V6 V5 V4 V3 V2 V1 F1 D1 E1 C1 B1 A1 E 2 C 3 B 1 Q4 C8550 4K7 R9 V12 L1 E 2 C 3 B 1 Q11 C8550 V8 H1 E 2 C 3 B 1 Q8 C8550 4K7 R12 V10 J1 E 2 C 3 B 1 Q9 C8550 4K7 R16 V9 I1 E 2 C 3 B 1 Q5 C8550 4K7 R10 V11 K1 1 2 3

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論