單片機(jī)在定時鬧鈴中的應(yīng)用.doc_第1頁
單片機(jī)在定時鬧鈴中的應(yīng)用.doc_第2頁
單片機(jī)在定時鬧鈴中的應(yīng)用.doc_第3頁
單片機(jī)在定時鬧鈴中的應(yīng)用.doc_第4頁
單片機(jī)在定時鬧鈴中的應(yīng)用.doc_第5頁
已閱讀5頁,還剩33頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

I 設(shè)計任務(wù)書 設(shè)計題目 設(shè)計題目 單片機(jī)在定時鬧鈴中的應(yīng)用單片機(jī)在定時鬧鈴中的應(yīng)用 設(shè)計要求 設(shè)計要求 使用 4 位七段顯示器來顯示現(xiàn)在的時間 顯示格式為 時時分分 由 LED 閃動來做秒計數(shù)表示 具有 4 個按鍵來做功能設(shè)置 可以設(shè)置現(xiàn)在的時間及顯示鬧鈴設(shè)置時間 一旦時間到則發(fā)出一陣聲響 同時繼電器啟動 可以擴(kuò)充控制家電開啟或關(guān)閉 程序執(zhí)行后工作指示燈 LED 閃動 表示程序開始執(zhí)行 七段顯示器顯示 0000 按 下操作鍵 K1 K4 動作如下 操作鍵 K1 設(shè)置現(xiàn)在的時間 操作鍵 K2 顯示鬧鈴設(shè)置時間 操作鍵 K3 設(shè)置鬧鈴時間 操作鍵 K4 鬧鈴 ON OFF 設(shè)置 設(shè)為 ON 時連續(xù) 3 次發(fā)出嗶的一聲 設(shè)為 OFF 時發(fā)出嗶一聲 設(shè)置現(xiàn)在的時間或是鬧鈴時間設(shè)置如下 操作鍵 K1 調(diào)整時 操作鍵 K2 調(diào)整分 操作鍵 K3 設(shè)置完成 在本設(shè)計中使用一般的七段顯示器掃描控制顯示數(shù)據(jù) 除了具有顯示現(xiàn)在時間 外 我們也可以自行擴(kuò)充其要求如下 增加碼表計數(shù) 鬧鈴功能時間到了則產(chǎn)生音樂聲 增加計時倒數(shù)的功能 增加多組定時器功能 II 設(shè)計進(jìn)度要求設(shè)計進(jìn)度要求 第一周 根據(jù)設(shè)計要求查找相關(guān)資料 第二周 硬件的設(shè)計 第三 五周 軟件的設(shè)計 第六周 綜合調(diào)試 第七周 撰寫畢業(yè)論文 第八周 打印畢業(yè)論文 畢業(yè)答辯 指導(dǎo)教師 簽名 指導(dǎo)教師 簽名 III 摘 要 本設(shè)計是利用 8051 單片機(jī)結(jié)合七段顯示器設(shè)計的簡易的定時鬧鈴 可以放在計 算機(jī)教室或是實驗室中使用 由于用七段顯示器顯示數(shù)據(jù) 在夜晚或黑暗的場合中 也可以使用 可以設(shè)置現(xiàn)在的時間 若時間到則發(fā)出一陣聲響 并可以啟動繼電器 進(jìn)一步可以擴(kuò)充控制家電開關(guān) 本設(shè)計充分發(fā)揮 8051 單片機(jī)高速 多輸入輸出 功能強(qiáng)大以及價格低廉的優(yōu)點 本設(shè)計設(shè)計的定時鬧鈴易于擴(kuò)展 使用范圍廣泛 同時在不升高成本的情況下盡可 能滿足用戶要求 21 世紀(jì)是通信 訊息 電力 材料 電子 能源以及控制技術(shù)大 發(fā)展并相互交叉的時代 自從微電子技術(shù)發(fā)展以來 單片機(jī)微型計算器因其體積小 價格低 性能靈活 開發(fā)方便的獨特優(yōu)勢 在機(jī)電一體化產(chǎn)品的開發(fā)和控制中得到 了最廣泛的應(yīng)有 而且越來越向縱深發(fā)展 從簡單的機(jī)電一體化產(chǎn)品深入到數(shù)控系 統(tǒng) 柔性化 智能化系統(tǒng)以及機(jī)器人系統(tǒng)等 近年來隨著科技的飛速發(fā)展 單片機(jī)的應(yīng)用正在不斷地走向深入 同時帶動傳 統(tǒng)控制檢測日新月益更新 在實時檢測和自動控制的單片機(jī)應(yīng)用系統(tǒng)中 單片機(jī)往 往是作為一個核心部件來使用 僅單片機(jī)方面知識是不夠的 還應(yīng)根據(jù)具體硬件結(jié) 構(gòu) 以及針對具體應(yīng)用對象特點的軟件結(jié)合 以作完善 本題 單片機(jī)在定時鬧鈴中的應(yīng)用 就是應(yīng)用單片機(jī)這一特點而進(jìn)行開發(fā) 程 序簡單 功能強(qiáng)大 所要求的硬件設(shè)備比較少及經(jīng)濟(jì)實用 本設(shè)計以 MCS 51 單片機(jī)為控制核心 充分利用其功能 實現(xiàn)了定時鬧鈴的自 動控制 而且控制程序有很強(qiáng)的適應(yīng)能力實測數(shù)據(jù)滿足設(shè)計任務(wù)書基本要求和發(fā)揮 部分的主要技術(shù)指標(biāo)要求 關(guān)鍵詞 單片機(jī) 定時 鬧鈴 顯示器 IV 目目 錄錄 摘 要 III 1 概論 1 1 1 緒論 1 1 2 單片機(jī)簡介 1 2 設(shè)計思路 7 2 1 控制電路的設(shè)計 7 2 2 8051 單片機(jī)的結(jié)構(gòu)組成與設(shè)計應(yīng)用 10 2 3 8051 單片機(jī)引腳的選擇 12 2 4 LED 的選擇與設(shè)計 14 3 系統(tǒng)硬件設(shè)計與系統(tǒng)軟件設(shè)計 17 3 1 系統(tǒng)硬件設(shè)計 17 3 2 系統(tǒng)軟件設(shè)計 17 4 調(diào)試過程 20 4 1 硬件調(diào)試 20 4 2 軟件調(diào)試 20 4 3 KeiL 調(diào)試 21 4 4 試驗箱調(diào)試 21 致 謝 22 參考文獻(xiàn) 23 附 錄 A 24 1 1 概 論 1 11 1 緒緒 論論 近年來 計算機(jī)技術(shù)迅速發(fā)展 計算機(jī)在工業(yè) 農(nóng)業(yè) 國防 科研及日常生活 的各個領(lǐng)域均發(fā)揮著極其重要的作用 成為各國工業(yè)發(fā)展水平的重要標(biāo)志之一 自從世界上公認(rèn)的第一臺電子計算機(jī)問世以來 計算機(jī)的發(fā)展日新月異 短短 的幾十年間 以有電子管數(shù)字計算機(jī)發(fā)展到今天的超大規(guī)模集成電路計算機(jī) 運算 速度由每秒 5000 次提高到今天的每秒上白億次 近年來 計算機(jī)一方面向著高速 智能化的超級巨型機(jī)方向發(fā)展 另一方面向著微型機(jī)的方向發(fā)展 在微機(jī)的大家族中 單片微型計算機(jī) 以下簡稱單片機(jī) 異軍突起 發(fā)展迅速 從美國仙童 Fairchild 公司 1974 年生產(chǎn)出第一塊單片機(jī) F8 開始 在短短的 幾十年中 單片機(jī)如雨后春筍一般 大量涌現(xiàn)出來 GI 公司 Rockwell 公司 Intel 公司 Zilong 公司 Motorola 公司 NEC 公司等世界上幾大計算機(jī)公司都紛紛 推出自己的單片機(jī)系列 目前 已經(jīng)出現(xiàn)了 4 位 8 位和 16 位的單片機(jī) 甚至 32 位的超大規(guī)模集成電路單片機(jī) 如 T414 也以面試 同時性能也在不斷提高 如 Intel 公司的 8096 其數(shù)據(jù)總線為 16 位 ROM 為 8K 字節(jié) RAM 有 232 位字節(jié) 中斷 源 8 級 時鐘頻率為 12MHz 可進(jìn)行加 減 乘 除運算 具有 8 個模擬通道 10 位 A D 變換 全雙工異步通信接口 5 個 8 位并行接口和 4 個 16 位可編程定時器 據(jù)統(tǒng)計 90 年代世界每 6 人就有一片單片機(jī) 美國及西歐已達(dá)到人均 4 片 目前單 片機(jī)已經(jīng)成為工控領(lǐng)域 軍事領(lǐng)域及日常生活中最為廣泛應(yīng)用的計算機(jī) 1 21 2 單片機(jī)簡介單片機(jī)簡介 單片微型計算機(jī) Single Chip Microcomputer 簡稱單片機(jī) 它在一塊芯片 上集成了中央處理器 CPU 只讀存儲器 ROM 輸入 輸出接口 可編程定時器 計數(shù)器等 有的甚至包含 A D 轉(zhuǎn)換器 總而言之 一塊單片機(jī)芯片 就相當(dāng)于一臺 計算機(jī) 1 單片機(jī)的特點 集成度高 功能強(qiáng) 2 微型計算機(jī)通常有中央處理器 CPU 存儲器 RAM ROM 以及 I O 接口組成 其各部分分別集成在不同的芯片上 例如 大家熟悉 Z80 微型計算機(jī)就是由 Z80 CPU 存儲器 RAM ROM PIO CTC 等芯片組成的 其原理如圖 1 1 所示 數(shù)據(jù)總線 地址總線 控制總線 圖1 1 微機(jī)結(jié)構(gòu) 圖 1 1 Z80 型微機(jī)結(jié)構(gòu) 系統(tǒng)時鐘 并行口 串行口 定時 計數(shù)器 地 電源 圖1 2 典型單片機(jī)結(jié)構(gòu) 圖 1 2 典型單片機(jī)結(jié)構(gòu) 和微型計算機(jī)進(jìn)行比較 單片機(jī)不僅體積大大減小 而且功能大為增強(qiáng) MCS 51 系列單片機(jī)內(nèi)的定時 計數(shù)器為 16 位 而 Z80 微型計算機(jī)只有 8 位 MCS 51 系列 單片機(jī)中不但有 4 個 I O 接口 而且還有串行接口 且時鐘頻率可達(dá) 12MHz 結(jié)構(gòu)合理 目前單片機(jī)大多采用 Harvard 結(jié)構(gòu) 這是數(shù)據(jù)存儲器與程序存儲器相互獨立的 一種結(jié)構(gòu) 而在許多微型計算機(jī)中 如 Z80 Intel8085 M8000 等 中 大都采用兩 類存儲器合二為一 及統(tǒng)一編址 的方式 單片機(jī)采用上述結(jié)構(gòu)主要有以下兩點好處 3 a 存儲容量大 例如 采用 16 位地址總線锝位單片機(jī)可尋址外部 64KBROM 包 括內(nèi)部 ROM 此外還有內(nèi)部 RAM 通常為 128 字節(jié) 和內(nèi)部 ROM 一般為 2 4KB 正因為如此 使用單片機(jī)不僅可以進(jìn)行控制 而且能夠進(jìn)行數(shù)據(jù)處理 單片機(jī)不僅 設(shè)有監(jiān)控程序 還可同時匯編 反匯編 具有高級語言以及各種函數(shù)庫 子程序及 圖表 因此單片機(jī)的功能大為增強(qiáng) 用戶使用起來十分方便 b 速度快 單片機(jī)由于主要用于工業(yè)控制方面 一般都需要較大的程序存儲器 用以固化已調(diào)好的控制程序 而數(shù)據(jù)存儲器的容量相對較小 主要用來存放少量的 隨機(jī)數(shù)據(jù) 小容量隨機(jī)存儲器直接裝在單片機(jī)內(nèi)部 可使數(shù)據(jù)船送速度快 抗干擾性強(qiáng) 由于單片機(jī)的各種功能部件都集中在一個芯片上 特別是存儲器也集成在芯片 內(nèi)部 部線短 數(shù)據(jù)大都在芯片內(nèi)部傳送 不易受到外部干擾 增強(qiáng)了抗干擾能力 使系統(tǒng)運行更可靠 指令豐富 單片機(jī)一般都有傳送指令邏輯運算指令 轉(zhuǎn)移指令 加 減運算指令等 有些 單片機(jī)還具有乘法及除法運算指令 特別是位操作指令十分豐富 例如在 MCS 51 系 列單片機(jī)中 專門設(shè)有布爾處理器 并且有一個專用的處理布爾變量的指令集 指 令集中包括布爾變量的傳送 邏輯運算 控制轉(zhuǎn)移 置位等指令 因而單片機(jī)能在 邏輯控制 開關(guān)變量控制以及順序控制中得以廣泛應(yīng)用 2 單片機(jī)的組成及工作過程 單片機(jī)是由中央處理器 CPU 和適當(dāng)容量的存儲器 輸入 輸出接口電路三大 基本部分組成 它通過接口電路再與輸入 輸出外部設(shè)備連接 以下簡單敘述各部件的作用 中央處理器 CPU CPU 是整個單片機(jī)系統(tǒng)的核心 它是有算術(shù)邏輯運算單元和控制器組成的 它 的功能是進(jìn)行數(shù)據(jù)處理 并且控制數(shù)據(jù)和指令在單片機(jī)中的運行 即控制單片機(jī)根 據(jù)給定的要求進(jìn)行操作 存儲器 存儲器是單片機(jī)存放程序和數(shù)據(jù)的部件 它是有許多存儲信息的單元組成 存 儲單元越多 存儲器容量越大 可存放的信息量就越多 4 輸入 輸出借口電路 I O 接口 接口電路 CPU 和外部設(shè)備之間不可缺少的連接紐帶 人們要控制單片機(jī)的運行 可通過鍵盤送入指令 也可用開關(guān)送入信號 鍵盤和開關(guān)都是輸入設(shè)備 單片機(jī)要 運行的結(jié)果輸出 可通過顯示器 打印機(jī)告訴人們 也可通過接口電路輸出信號 操作各種電器設(shè)備進(jìn)行動作 顯示器 打印機(jī)和電器設(shè)備都是輸出設(shè)備 因為外部設(shè)備與 CPU 之間的邏輯電平 速度 時序 驅(qū)動能力的有很大的差別 所以必須通過 I O 接口電路解決它們之間的匹配問題 單片機(jī)的工作過程 單片機(jī)在工作前 首先必須在程序存儲器內(nèi)裝入程序 單片機(jī)開始工作后 即 按地址先從存儲器中取出指令 然后把指令譯碼 以確定該指令執(zhí)行的是什么操作 和操作數(shù)的存放地址 再根據(jù)這 3 個地址取操作數(shù) 接著 CPU 對操作數(shù)進(jìn)行操作 操作結(jié)果送入存儲器或經(jīng)接口電路送入顯示器 打印機(jī)等外部設(shè)備 3 單片機(jī)的應(yīng)用 1 工業(yè)過程控制中的應(yīng)用 由于單片機(jī)的 I O 接口線多 位操作指令豐富 邏輯操作功能強(qiáng) 因此 特別 適用于工業(yè)過程控制 它既可以作為主機(jī)控制 也可作為分布式控制系統(tǒng)的前端機(jī) 在作為主機(jī)使用的系統(tǒng)中 單片機(jī)為核心控制器件 用來完成模擬量和開關(guān)量的采 集 處理和控制計算 包括邏輯運算 然后輸出控制信號 2 生活中的應(yīng)用 由于單片機(jī)價格低廉 體積小 邏輯判斷及控制功能強(qiáng) 因此廣泛地應(yīng)用于人 類生活的各個方面 如 洗衣機(jī) 電冰箱 電子玩具及電梯控制等 3 計算機(jī)網(wǎng)絡(luò)及通信技術(shù)中的應(yīng)用 單片機(jī)集成了通信接口 因而使其在計算機(jī)網(wǎng)絡(luò)及通信設(shè)備中得以廣泛應(yīng)用 例如 Intel 公司的 8044 它由 8051 單片機(jī)及 SDLC 通信接口組合而成 用性能高的 串行接口單元 SIU 代替?zhèn)鹘y(tǒng)的 UART 其傳送距離可達(dá) 1200m 傳送速率為 2 4Mbit s 4 單片機(jī)的發(fā)展概況 自從 1974 年 12 月美國仙童 Fairchild 公司第一個推出 8 位單片機(jī) F8 以來 單片機(jī)以驚人的速度發(fā)展 從 4 位機(jī) 8 位機(jī)發(fā)展到 16 位機(jī) 32 位機(jī) 集成度越來 5 越高 功能越來越強(qiáng) 應(yīng)用范圍越來越廣 到目前為止 單片機(jī)的發(fā)展主要分為以下四個階段 第一階段 4 位單片機(jī) 這種單片機(jī)的特點是價格便宜 控制功能強(qiáng) 片內(nèi)含 有多中 I O 接口 如并行 I O 接口 串行 I O 接口 定時 計數(shù)器接口 中斷功能接 口等 根據(jù)不同的用途 還配有許多專用接口 如打印機(jī)接口 鍵盤及顯示器接口 PLA 可編程邏輯陣列 譯碼輸出接口 有些甚至還包括 A D D A 轉(zhuǎn)換 PLL 鎖相 環(huán) 聲音合成等電路 豐富的 I O 功能大大地增強(qiáng)了 4 位單片機(jī)的控制功能 從而 使外部接口電路極為簡單 第二階段 低 中檔 8 位機(jī) 1974 1978 年 這種 8 位機(jī)一般不帶有 I O 接口 尋址范圍通常為 4KB 它是 8 位機(jī)的早期產(chǎn)品 如 Mostek 公司的 3870 Intel 公司 的 8048 等單片機(jī)即屬此類 MCS 48 系列單片機(jī)是 Intel 公司 1976 年以后陸續(xù)推出的第一代 8 位單片機(jī)系 列產(chǎn)品 它包括基本類型 8048 8478 和 8035 強(qiáng)化型 高檔 8049 8749 8039 和 8050 8040 簡化型 低擋 8020 8021 8022 專用型 UPI 8041 8741 等 低 中檔單片機(jī)目前已經(jīng)逐漸被高檔 8 位單片機(jī)所取代 例如 MCS 51 系列高 檔 8 位機(jī)所取代 第三階段 高檔 8 位機(jī)階段 1978 1982 年 這一類單片機(jī)常有串行 I O 接 口 有多中斷處理 定時 計數(shù)器為 16 位 片內(nèi)的 RAM 和 ROM 的容量相對增大 且 尋址范圍可達(dá) 64KB 有的片內(nèi)還帶有 A D 轉(zhuǎn)換接口 這類單片機(jī)有 Intel 公司的 MCS 51 Motorla 公司的 6801 而后 Zilog 公司的 Z 等 由于這類單片機(jī)應(yīng)用領(lǐng)域較 廣 其結(jié)構(gòu)和性能還在不斷地改進(jìn)和發(fā)展 第四階段 16 位單片機(jī)和超 8 位單片機(jī) 1982 年至今 此階段的主要特征是 一方面不斷完善高檔 8 位機(jī) 改善其結(jié)構(gòu) 以滿足不同用戶的需要 另一方面發(fā)展 16 位單片機(jī)及專用單片機(jī) 16 位單片機(jī)除了 CPU 為 16 位外 片內(nèi) RAM 和 ROM 的容 量也進(jìn)一步增大 片內(nèi) RAM 為 232 字節(jié) ROM 為 8KB 片內(nèi)帶有高速輸入輸出部件 多通道 10 位 A D 轉(zhuǎn)換部件 中斷處理級為 8 級 其實時處理能力更強(qiáng) 近年來 32 位單片機(jī)已進(jìn)入實用階段 但還未引入國內(nèi)市場 單片機(jī)的發(fā)展趨勢將是 向著大容量 高性能化 小容量 低價格化和外圍內(nèi) 裝化等幾個方面發(fā)展 6 大容量化 片內(nèi)存儲器大容量化 以往單片機(jī)的 ROM 為 1 4KB RAM 為 64 128 字節(jié) 因此在某些復(fù)雜的應(yīng)用上 存儲器容量不夠 不得不外接擴(kuò)充 為 了適應(yīng)這種領(lǐng)域的要求 運用新的工藝 使片內(nèi)存儲器大容量化 目前 單片機(jī)的 ROM 一般可達(dá) 4 8KB RAM 為 256 字節(jié) 有的單片機(jī)內(nèi) ROM 可達(dá) 12KB 今后 隨著 工藝技術(shù)的不斷發(fā)展 片內(nèi)存儲器容量進(jìn)一步擴(kuò)大 單片機(jī)的高性能化 主要是指進(jìn)一步改進(jìn) CPU 的性能 加快指令運算速度和提 高系統(tǒng)控制的可靠性 并加強(qiáng)了位處理功能 中斷和定時控制功能 采用流水結(jié)構(gòu) 指令以隊列形式出現(xiàn)在 CPU 中 從而有很高的運算速度 有的單片機(jī)基本采用了多 流水線結(jié)構(gòu) 這類單片機(jī)的運算速度要比標(biāo)準(zhǔn)的單片機(jī)高出 10 倍以上 小容量 低價格化 與上述相反 小容量 低價格化的 4 位 8 位單片機(jī)是發(fā) 展的動向之一 這類單片機(jī)的用途是把以往用數(shù)字邏輯集成電路組成的控制電路單 片化 外圍電路內(nèi)裝化 這也是單片機(jī)的發(fā)展的主要動向 隨著集成度的不斷提高 有可能把眾多的外圍功能器件集成在片內(nèi) 除了一般必須具有的 CPU ROM RAM 定時 計數(shù)器等外 片內(nèi)集成的部件還有模 數(shù) 數(shù) 模轉(zhuǎn)換器 DMA 控制器 聲音發(fā) 生器 監(jiān)視定時器 液晶顯示驅(qū)動器 彩色電視機(jī)和錄象機(jī)用的鎖相電路等 增強(qiáng) I O 口功能 為了減少外部驅(qū)動芯片 進(jìn)一步增加單片機(jī)并行口的驅(qū)動能 力 現(xiàn)在有的單片機(jī)可直接輸出大電流和高電壓 以便直接驅(qū)動顯示器 單片機(jī)廣泛地應(yīng)用于各種儀器儀表中 使儀器儀表智能化 提高測試的自動化 程度和精度 簡化其硬件結(jié)構(gòu) 提高其性能價格比 此設(shè)計是利用 8051 單片機(jī)結(jié)合 七段顯示器設(shè)計的簡易的定時鬧鈴 也正是利用其這一特點 也進(jìn)一步說明了單片 機(jī)應(yīng)用的廣泛 優(yōu)化了單片機(jī)在定時鬧鈴中的應(yīng)用 7 2 設(shè)計思路 2 12 1 控制電路的設(shè)計控制電路的設(shè)計 定時鬧鐘的控制電路分為以下幾部分 單片機(jī) 8051 四合一共陰極七段顯示器 按鍵控制 壓力喇叭 繼電器 完整的控制電路如圖 2 1 和圖 2 2 所示 此電路已內(nèi)置在 IO51 控制板上 我們 可以直接在板上驗證控制功能 也可以采用其他方法 這里就不作具體介紹了 共 陰極七段顯示器的亮度控制可以由提升電阻來調(diào)整 控制程序中延遲時間長短 可 以得到不同的顯示效果 控制繼電器的閉合或斷開 ON OFF 可以直接控制家電開 關(guān) 繼電器接點說明如下 NC Normal Close 常閉點 以 COM 為共同點 NC 與 COM 在平時是呈導(dǎo)通 的 狀態(tài) COM Common 共通點 輸出控制接點的共同接點 NO Normal Open 常開點 NO 與 COM 則呈開路狀態(tài) 拿到繼電器時可以三用電表量的短路斷路功能測量其接點 圖 2 3 為其控制回 路圖 繼電器所扮演的角色是一組可以電氣控制的開關(guān) 因此是串聯(lián)到電器的 AC 110V 電源回路中 其功能可以取代電器上的開關(guān) 在使用上 IO51 控制板上的繼電 器線圈驅(qū)動電壓為直流 5 V 做電器上的開關(guān)時 其流過的電流負(fù)載請勿過大 約 2 A 內(nèi)較保險 以免燒毀繼電器或是 8051 相關(guān)控制電路 內(nèi)部總線接點說明 總線是用于傳送信息的公共途徑 總線可分為數(shù)據(jù)總線 地址總線 控制總線 單片機(jī)內(nèi)的 CPU 存儲器 I O 接口等單元部件都是通過總線連接到一起的 采用總 線結(jié)構(gòu)可以減少信息傳輸線的根數(shù) 提高系統(tǒng)可靠性 增強(qiáng)系統(tǒng)靈活性 8 中斷控制系統(tǒng)是指 CPU 暫停正在執(zhí)行的原程序轉(zhuǎn)而為中斷服務(wù) 執(zhí)行中斷服務(wù) 程序 在執(zhí)行完中斷服務(wù)程序后再回到原程序繼續(xù)執(zhí)行 中斷系統(tǒng)是指能夠處理上 述中斷過程的部分電路 MCS 51 單片機(jī)設(shè)有 5 個中斷源 外中斷 2 個 定時 記數(shù) 中斷 2 個 串行中斷 2 個 二級優(yōu)先級 可實現(xiàn)兩極中斷嵌套 圖 2 1 控制電路 9 圖 2 2 控制電路 圖 2 3 繼電器控制回路圖 輸入 輸出借口電路 I O 接口 接口電路 CPU 和外部設(shè)備之間不可缺少的連接紐帶 人們要控制單片機(jī)的運行 可通過鍵盤送入指令 也可用開關(guān)送入信號 鍵盤和開關(guān)都是輸入設(shè)備 單片機(jī)要 運行的結(jié)果輸出 可通過顯示器 打印機(jī)告訴人們 也可通過接口電路輸出信號 10 操作各種電器設(shè)備進(jìn)行動作 顯示器 打印機(jī)和電器設(shè)備都是輸出設(shè)備 而本設(shè)計 中應(yīng)用到的主要是顯示器 通過顯示器我們就可以看到此設(shè)計的顯示效果和計時時 間 因為外部設(shè)備與 CPU 之間的邏輯電平 速度 時序 驅(qū)動能力的有很大的差別 所以必須通過 I O 接口電路解決它們之間的匹配問題 定時器 計數(shù)器的說明 8051 內(nèi)部有 2 個 16 位可編程定時器 計數(shù)器 簡稱為定時器 0 T0 和定時器 1 T1 T0 和 T1 分別由兩個 8 位寄存器構(gòu)成 其中 T0 由 TH0 高 8 位 和 TL0 低 8 位 構(gòu)成 T1 由 TH1 高 8 位 TL1 低 8 位 構(gòu)成 TH0 TH1 TL1 都是 SFR 中的 特殊功能寄存器 2 22 2 80518051 單片機(jī)的結(jié)構(gòu)組成與設(shè)計應(yīng)用單片機(jī)的結(jié)構(gòu)組成與設(shè)計應(yīng)用 MCS 51 系列單片機(jī)在結(jié)構(gòu)上基本相同 只是在個別模塊和功能上有些區(qū)別 圖 2 4 是 8051 單片機(jī)的內(nèi)部結(jié)構(gòu)框圖 它包含了作為微型計算機(jī)所必需的基本功能 部件 各功能部件通過片內(nèi)機(jī)單一總線連成一個整體 集成在一塊芯片上 MCS 51 單片機(jī)是在一塊芯片中集成了 CPU 存儲器 包括 RAM 和 ROM 定時器 計數(shù)器和多 種功能的 I O 線等一臺計算機(jī)所需要的基本功能部件 主要包括 1 個 8 位 CPU 1 個 片內(nèi)振蕩器及時鐘電路 128 RAM 4KB ROM 2 個 16 位定時器 計數(shù)器 32 條可編 程的 I O 線和一個可編程的全雙工串行口 5 個中斷源 2 個中斷優(yōu)先級嵌套中斷結(jié) 11 構(gòu) 圖 2 4 8051 單片機(jī)內(nèi)部 結(jié)構(gòu)框圖 1 中央處理器 CPU CPU 是單片機(jī)內(nèi)部的核心部件 是一個 8 位二進(jìn)制數(shù) 的中央處理器單元 主要由運算器 控制器和寄存器陣列構(gòu)成 1 運算器 運算器用來完成算術(shù)運算 邏輯運算 位變量處理和數(shù)據(jù)傳送等功 能 它是 8051 內(nèi)部處理各種信息的主要部件 運算器主要由算術(shù)邏輯單元 ALU 累加器 ACC 暫存寄存器 TMP1 TMP2 寄存器 B 和程序狀態(tài)字寄存器 PSW 組成 a 算術(shù)邏輯單元 ALU 8051 中 ALU 由加法器和一個布爾處理器組成 主要 是實現(xiàn) 8 位數(shù)據(jù)的加 減 乘 除算術(shù)運算和與 或 異或 循環(huán) 求反等邏輯運 算 布爾處理器主要用來處理位操作 它是以進(jìn)位標(biāo)志位 C 為累加器的 可執(zhí)行置 位 復(fù)位 取反 等于 1 轉(zhuǎn)移 等于 0 轉(zhuǎn)移 等于 1 轉(zhuǎn)移且清 0 以進(jìn)位標(biāo)志位與其 他位尋址的位之間進(jìn)行數(shù)據(jù)轉(zhuǎn)送等位操作 也能使進(jìn)位標(biāo)志位與其他可位尋址的位 之間進(jìn)行邏輯與 或操作 b 累加器 ACC 用來存放參與算術(shù)運算的一個操作數(shù)或運算的結(jié)果 在運算時 將操作熟經(jīng)暫存器送至 ALU 與另一個來自暫存器的操作數(shù)在 ALU 中進(jìn)行運算 運 12 算后的結(jié)果又送回累加器 A 8051 單片機(jī)在結(jié)構(gòu)上是以累加器 A 為中心 大部分指 令的執(zhí)行都有通過累加器 A 進(jìn)行 c 暫存寄存器 TMP1 TMP2 用來存放參與算術(shù)運算的和邏輯運算的另一個操 作數(shù) 它對用戶不開放 d 寄存器 B 在乘 除運算時用來存放一個操作數(shù) 也用來存放運算后的一部 分結(jié)果 不進(jìn)行乘 除運算時 可以作為通用的寄存器使用 e 程序狀態(tài)字寄存器 PSW PSW 是一個 8 位標(biāo)志寄存器 用來存放 ALU 操作 季節(jié)感特征和處理器狀態(tài) 這些特征和狀態(tài)可以作為控制程序轉(zhuǎn)移的條件 供程序 校驗和查詢 2 控制器 控制器是單片機(jī)內(nèi)部各部件按一定時序協(xié)調(diào)工作的控制核心 是 分析和執(zhí)行指令的部件 控制器主要由程序計數(shù)器 PC 指令寄存器 IR 指令譯碼器 ID 振蕩和定時控制邏輯電路等構(gòu)成 3 寄存器陣列 寄存器陣列是單片機(jī)內(nèi)部的臨時存儲單元或固定用途單元 包括通用寄存器組和專用寄存器組 2 存儲器 8051 單片機(jī)內(nèi)部有 128B 的 RAM 數(shù)據(jù)存儲器和 4KB 的掩膜式 ROM 當(dāng)不夠使用時 可分別擴(kuò)展為 64KB 外部 RAM 存儲器和 64KB 外部程序存儲器 它們 的邏輯空間是分開的 并有各自的尋址方式和尋址機(jī)構(gòu) 2 32 3 80518051 單片機(jī)引腳的選擇單片機(jī)引腳的選擇 8051 單片機(jī)內(nèi)部總線是單總線結(jié)構(gòu) 即數(shù)據(jù)總線和地址總線是公用的 8051 有 40 條引腳 與其他 51 系列單片機(jī)引腳是兼容的 這 40 條引腳可分為 I O 接口線 電源線 控制線 外接晶體線 4 部分 8051 單片機(jī)為雙列直插式封裝結(jié)構(gòu) 如圖 2 5 所示 1 電源線 8051 單片機(jī)的電源線有以下兩種 1 Vcc 5V 電源線 2 Vss 接地線 2 外接晶體引腳 8051 單片機(jī)的外接晶體引腳有以下兩種 13 圖 8051封裝和引腳分配圖 圖 2 5 封裝和引腳分配圖 1 XTAL1 片內(nèi)振蕩反相放大器的輸入端和內(nèi)部時鐘工作的輸入端 采用內(nèi)部 振蕩器時 它接外部石英晶體和微調(diào)電容的一個引腳 2 XTAL2 片內(nèi)振蕩器反相放大器的輸出端 接外部石英晶體和微調(diào)電容的另 一端 采用外部振蕩器時 該引腳懸空 3 控制線 8051 單片機(jī)的控制線有以下幾種 1 RST 復(fù)位輸入端 高電平有效 2 ALE PROG 地址鎖存允許 編程線 3 PSEN 外部程序存儲器的讀選通線 4 EA Vpp 片外 ROM 允許訪問端 編程電源端 4 I O 接口組成 32 根 I O 接口線 及功能 I O 接口 8051 單片機(jī)對外部電路進(jìn)行控制或交換信息都是通過 I O 接口進(jìn)行的 單片機(jī)的 I O 接口分為并行 I O 接口和串行 I O 接口 它們的結(jié)構(gòu)和作用并不相同 1 并行 I O 接口 8051 有 4 個 8 位并行雙向 I O 接口 P0 接口 P1 接口 P2 接口 P3 接口 每一條 I O 接口都能獨立的用作輸入或輸出 接口為準(zhǔn)雙向接口 在用作輸入線時 接口鎖存器 7 必須先寫入 1 故稱為準(zhǔn)雙向接口 負(fù)載能力 為 4 個 LSTTL 電路 14 2 串行 I O 接口 8051 有一個全雙工的可編程串行 I O 接口 實現(xiàn)單片機(jī)與 其他數(shù)據(jù)設(shè)備之間的串行數(shù)據(jù)傳遞 該串行接口的功能較強(qiáng) 即可作為全雙工異步 通訊收發(fā)器使用 也可作為同步移位器使用 a P0接口 P0接口有 8 條接口線 P0 0 0 7 其中 P0 0為低位 P0 7為高位 它 由一個輸出鎖存器 兩個三態(tài)緩沖器 輸出驅(qū)動電路和輸出控制電路組成 P0接口 是一個三態(tài)雙向 I O 接口 它有兩種不同的功能 用于不同的工作環(huán)境 b P1接口 P1接口有 8 條接口線 P1 0 1 7 P1接口是一個準(zhǔn)雙相接口 只作 普通的 I O 接口使用 其功能與 P0接口的第一功能相同 做輸出口使用時 由于其 內(nèi)部有上拉電阻 所以不需外接上拉電阻 作輸入口使用時 必須先向鎖存器寫入 1 使場效應(yīng)管 T 截止 然后才能讀取數(shù)據(jù) c P2接口 P2接口有 8 條接口線 P2 0 2 7 P2接口也是一個準(zhǔn)雙向接口 它 有兩種使用功能 一種是系統(tǒng)不擴(kuò)展外部存儲器時 作為普通 I O 接口使用 其功 能和原理與 P0接口 的第一功能相同 只是作為輸出口時不需外接上拉電阻 另一 種是當(dāng)系統(tǒng)外擴(kuò)存儲器時 P2接口作為系統(tǒng)擴(kuò)展的地址總線接口使用 輸出高 8 位 的地址 A8 15 與 P0接口第二功能上歲數(shù)出的底 8 位地址相配合 共同訪問外部程 序或數(shù)據(jù)存儲器 64KB 但它只確定地址并不能像 P0接口那樣還可以傳送存儲器 的讀寫數(shù)據(jù) d P3接口 P3接口有 8 條接口線 命名為 P1 0 3 7 P3接口是一個多用途的準(zhǔn) 雙向接口 第一功能是作為普通 I O 接口使用 其功能和原理與 P1接口相同 第二 功能是作為控制和特殊功能接口使用 這時 8 條接口線所定義的功能各不相同 3 I O 接口的讀寫 P0 3接口都可作為普通 I O 接口來使用 當(dāng)作為輸入口 使用時 必須先向該接口的鎖存器中寫入 1 然后再從讀引腳緩沖器中讀入引腳 狀態(tài) 這樣的讀入結(jié)果才正確 2 42 4 LEDLED 的選擇與設(shè)計的選擇與設(shè)計 LED 數(shù)碼管根據(jù) LED 的接法不同分為共陰和共陽兩類 了解 LED 的這些特性 對編程是很重要的 因為不同類型的數(shù)碼管 除了它們的硬件電路有差異外 編程 方法也是不同的 圖 1 6 a 是共陰和共陽極數(shù)碼管的內(nèi)部電路圖 它們的發(fā)光原理 是一樣的 只是它們的電源極性不同而已 15 將多只 LED 的陰極連在一起即為共陰式 而將多只 LED 的陽極連在一起即為共 陽式 以共陰式為例 如把陰極接地 在相應(yīng)段的陽極接上正電源 該段即會發(fā)光 當(dāng)然 LED 的電流通常較小 一般均需在回路中接上限流電阻 假如我們將 b 和 c 段接上正電源 其它端接地或懸空 那么 b 和 c 段發(fā)光 此時 數(shù)碼管顯示將 顯示數(shù)字 1 而將 a b d e 和 g 段都接上正電源 其它引腳懸空 此時數(shù)碼管將顯示 2 其它數(shù)字的顯示原理與此類同 LED 的 7 段數(shù)碼管利用單只 LED 組合排列成 8 字型的數(shù)碼管 分別引出它們 的電極 點亮相應(yīng)的點劃來顯示出 0 9 的數(shù)字 在這次的設(shè)計中采用的均是共陰極 的 LED 顯示 當(dāng) I O 口輸出為高電平的時候 對應(yīng)段就被點亮 LED 數(shù)碼管的結(jié)構(gòu) 圖如圖 2 6 b 所示 a b 圖 2 6 LED 分類結(jié)構(gòu)圖和結(jié)構(gòu)圖 這次設(shè)計的顯示部分采用 AT89C51 單片機(jī)動態(tài)掃描完成 在多數(shù)的應(yīng)用場合中 我們并不希望使用多 I O 端口的單片機(jī) 原則上是使用盡量少引腳的器件 在沒有 富余端口的情況下 應(yīng)通過優(yōu)化設(shè)計程序和擴(kuò)展電路達(dá)到預(yù)期的目的 動態(tài)掃描的 頻率有一定的要求 頻率太低 LED 將出現(xiàn)閃爍現(xiàn)象 如頻率太高 由于每個 LED 點亮的時間太短 LED 的亮度太低 肉眼無法看清 所以一般均取幾個 ms 左右為宜 這就要求在編寫程序時 選通某一位 LED 使其點亮并保持一定的時間 程序上常采 16 用的是調(diào)用延時子程序 LED 顯示電路 1 靜態(tài)顯示電路 LDE 顯示器工作在靜態(tài)顯示時 其公共陽極 或陰極 接 VCC 或 GND 一直處 于顯示有效狀態(tài) 所以每一位的顯示內(nèi)容必須由鎖存器加以鎖存 顯示各位相互獨 立 2 動態(tài)顯示電路 將所有位的段選線的同名端聯(lián)在一起 由一個 8 位 I O 口控制 形成段選線的 多位復(fù)用 而各位的公共陽極或公共陰極則分別由相應(yīng)的 I O 口線控制 實現(xiàn)各位 的分時選通 即同一時刻只有被選通位是能顯示相應(yīng)的字符 而其他所有位都是熄 滅的 由于人眼有視覺暫留現(xiàn)象 只要每位顯示間隔足夠短 則會造成多位同時點 亮的假象 這就需要單片機(jī)不斷地對顯示進(jìn)行控制 CPU 需要不斷地進(jìn)行顯示刷新 動態(tài)顯示電路參見圖 2 7 圖 2 7 中是擴(kuò)展了五位的 LED 數(shù)碼管顯示 用一個 74LS154 作為五個 LED 的段選輸入 采用動態(tài)顯示的方式連接 類似地 16 位的 LED 數(shù)碼管顯示也可以用這種方法來實現(xiàn) 圖 2 7 五位 LED 數(shù)碼管的動態(tài)顯示 17 3 系統(tǒng)硬件設(shè)計與系統(tǒng)軟件設(shè)計 3 13 1 系統(tǒng)硬件設(shè)計系統(tǒng)硬件設(shè)計 1 時鐘芯片選擇 選用 89C51 時鐘芯片 2 單片機(jī)的選擇 選用 8051 單片機(jī) 并配備 11 0592MHz 晶振 復(fù)位電路采 用上電復(fù)位 3 顯示電路選擇 采用軟件譯碼動態(tài)顯示 P3 0 P3 3 作數(shù)碼管的位選口 P1 0 P1 6 作數(shù)碼管的段選口 考慮直接用單片機(jī) I O 口作位選時驅(qū)動功率不夠 因此采用 UNL2003 作驅(qū)動 共陰極數(shù)碼管顯示 4 電 源 選 擇 采用直流 5V 電源供電 3 23 2 系統(tǒng)軟件設(shè)計系統(tǒng)軟件設(shè)計 程序框圖如圖 3 1 18 圖 3 1 19 單片機(jī)在定時鬧鈴中的應(yīng)用 打破了人們的傳統(tǒng)設(shè)計思想 原來單片機(jī)的應(yīng)用 很多都是用模擬電路 脈沖數(shù)字電路 邏輯部件來實現(xiàn)的功能 現(xiàn)在無需增加硬件 設(shè)備 可通過軟件來完成 正由于這樣 單片機(jī)已成為科技領(lǐng)域有力工具 人類生 活的得力助手 單片機(jī)在工作前 首先必須在程序存儲器內(nèi)裝入程序 單片機(jī)開始工作后 即 按地址先從存儲器中取出指令 然后把指令譯碼 以確定該指令執(zhí)行的是什么操作 和操作數(shù)的存放地址 再根據(jù)這 3 個地址取操作數(shù) 接著 CPU 對操作數(shù)進(jìn)行操作 操作結(jié)果送入存儲器或經(jīng)接口電路送入顯示器 再經(jīng)過下面的具體調(diào)試 我們就可 以得到我們設(shè)計的結(jié)果了 20 4 調(diào)試過程 4 14 1 硬件調(diào)試硬件調(diào)試 硬件的調(diào)試比較困難 因為是調(diào)試所以不能對元件進(jìn)行焊接 只能把各個元件 用導(dǎo)線連接起來 調(diào)試的整體過程是 各個系統(tǒng)逐個調(diào)試 各部分調(diào)試成功后再進(jìn) 行組裝后的整體調(diào)試 調(diào)試過程包括 1 顯示部分的調(diào)試 問題 數(shù)碼管的顯示不穩(wěn)定 不停的閃爍 分析 沒有考慮到干擾及環(huán)境的制約 于是我們把在面包板上連好的電路焊接 在印刷板上 并采用電容濾波盡可能去除紋波和干擾 2 控制部分的調(diào)試 問題 按下按鍵后數(shù)據(jù)有時正常有時又不正常 數(shù)據(jù)的加減不穩(wěn)定 分析 根據(jù)分析有兩個問題可以導(dǎo)致此種現(xiàn)象 一是按鍵接觸不良可能有短路 二是程序部分有問題 用萬用表測量后發(fā)現(xiàn)按鍵按下后不穩(wěn)定 更換質(zhì)量更好的按 鍵后故障即排除 4 24 2 軟件調(diào)試軟件調(diào)試 程序的調(diào)試分幾個步驟 首先要在 WAVE6000 軟件中編譯通過 然后通過 Keil 軟件把程序下載到單片機(jī)中最終調(diào)試出滿意的效果才算成功 1 WAVE6000 調(diào)試 首先 啟動 WAVE6000 新建一個項目 輸入一個名字保存 然后打開 真器設(shè)置 在 語言 選項下選擇 偉福匯編器 缺省顯示格式 選擇 混合十 十六進(jìn) 制 仿真器 選項下選擇 使用偉福軟件模擬器 通信設(shè)置 選項下選擇 使 用偉福軟件模擬器 打開已經(jīng)寫好的程序 選擇 項目 菜單下的 編譯 命令 根據(jù) Message 窗 口的編譯信息修改程序中的錯誤地方 直到 Message 窗口中不再出現(xiàn)錯誤符號 全 21 部顯示正確符號為止 雖然程序在 WAVE6000 中編譯通過了 但并不代表程序就沒有錯誤 只有最終出 現(xiàn)效果才說明沒問題 4 34 3 KeiLKeiL 調(diào)試調(diào)試 在 WAVE6000 軟件中調(diào)試過的程序在 KEIL 中還有可能有毛病 只有通過 KEIL 的 編譯才能下載到試驗箱上 啟動 Keil 軟件 選擇 Project 菜單下的 New Project 命令 輸入項目的 文件名 選擇存儲路徑 點擊 保存 按鈕 在 Select Device 窗口中選擇 Atmel 下的 89C51 芯片 單擊 確定 按鈕 展開 Project Workspace 窗口中的 Target 1 右擊 Target 1 選 擇 Options for Target Target 1 選擇 Target 選項在 Keil MHZ 右邊 輸入 11 0592 選擇 Debug 選項 選擇 Use Keil Monitor 51 Driver 單 擊 Settings 按鈕 串口選擇 COM1 波特率選擇 38400 單擊 OK 按鈕 右擊 Source Group 1 選擇 Add files to Group Source Group 1 在 文件類型中選擇 Asm Source file 找到將要編譯的程序 單擊 ADD 按鈕 然后再單擊 CLOSE 按鈕 單擊 Rebuild all target files 在 Build 窗口 中觀察編譯結(jié)果 根據(jù)提示修改程序 直到?jīng)]有錯誤出現(xiàn) 4 44 4 試驗箱調(diào)試試驗箱調(diào)試 根據(jù)程序的設(shè)計在試驗箱上分別連接好各個端口的連接線 用串口線把計算機(jī) 和試驗箱的仿真頭連接好 打開試驗箱 單擊 Keil 軟件上的 Start Stop Debug Session 按鈕 再單擊 RUN 按鈕 運行程序 觀察試驗箱上出現(xiàn)的效果 分析程序的對錯 直到調(diào)試出正確的結(jié)果 22 致 謝 經(jīng)過兩個月的忙碌和工作 本次的畢業(yè)設(shè)計已經(jīng)接近尾聲 作為一個??粕漠?業(yè)設(shè)計 由于經(jīng)驗的匱乏 難免有許多考慮不周全的地方 如果沒有導(dǎo)師的督促指 導(dǎo) 以及一起工作的同學(xué)們的支持 想要完成這個設(shè)計是難以想象的 從論文選題到搜集資料 從寫稿到反復(fù)修改 期間經(jīng)歷了喜悅 聒噪 痛苦和 彷徨 在寫作論文的過程中心情是如此復(fù)雜 如今 伴隨著這篇畢業(yè)論文的最終成 稿 復(fù)雜的心情煙消云散 自己甚至還有一點成就感 這篇畢業(yè)論文就是我的舞臺 以下的言語便是有點成就感后在舞臺上發(fā)表的發(fā)自肺腑的誠摯謝意與感想 我要感謝 非常感謝我的導(dǎo)師苑成友老師 他為人隨和熱情 治學(xué)嚴(yán)謹(jǐn)細(xì)心 在閑聊中他總是能像知心朋友一樣鼓勵你 在論文的寫作和措辭等方面他也總會以 專業(yè)標(biāo)準(zhǔn) 嚴(yán)格要求你 從選題 定題開始 一直到最后論文的反復(fù)修改 潤色 苑老師始終認(rèn)真負(fù)責(zé)地給予我深刻而細(xì)致地指導(dǎo) 幫助我開拓論文思路 精心點撥 熱忱鼓勵 正是苑老師的無私幫助與熱忱鼓勵 我的畢業(yè)論文才能夠得以順利完成 謝謝苑老師 我要感謝 非常感謝自己 在論文的寫作過程中 自己總是積極主動的 主動 與老師同學(xué)們溝通 不恥下問 通過寫作論文 我更加深刻理解了 態(tài)度決定一切 這句話 其次還要感謝我的一個同學(xué) 他在本次設(shè)計中勤奮工作 克服了許多困難來完成 此次畢業(yè)設(shè)計 并承擔(dān)了大部分的工作量 如果沒有他的努力工作 此次設(shè)計的完 成將變得非常困難 還有那些在這期間曾給予我?guī)椭耐瑢W(xué)們 最后 我要感謝 非常感謝兩年多的大學(xué)生活 感謝我的家人和那些永遠(yuǎn)也不 能忘記的朋友 他們的支持與情感 是我永遠(yuǎn)的財富 謝謝 23 參考文獻(xiàn) 1 汪吉鵬 微機(jī)原理應(yīng)用 北京 高等教育出版社 2001 2 李 華 MCS 51 系列單片機(jī)實用接口技術(shù) 北京 北京航空航天出版社 1993 3 陳立國 陳宇等 單片機(jī)原理及應(yīng)用 北京 機(jī)械工業(yè)出版社 2001 4 耿長青等 單片機(jī)應(yīng)用技術(shù) 北京 化工工業(yè)出版社 2004 5 胡漢才 單片機(jī)原理及其接口技術(shù) 北京 清華大學(xué)出版社 1995 6 王幸之 鐘愛琴 AT89 系列單片機(jī)原理與接口技術(shù) 北京 北京航空航天大 學(xué)出版社 2004 7 楊文龍 單片機(jī)原理及應(yīng)用 陜西 西安電子科技大學(xué)出版社 1999 24 附錄 A ORG 00H JMP BEGIN ORG 0BH JMP T0 INT BEGIN CLR P3 5 繼電器 1 CLR P3 6 繼電器 2 CLR P20H 清除鬧鈴標(biāo)志 MOV 39H 1H 內(nèi)定的鬧鈴時間為 1 點 MOV 3AH 1H 內(nèi)定的鬧鈴時間為 1min CALL BZ 壓電喇叭連續(xù)兩次發(fā)出嘩的聲音 CALL BZ CALL LED BL LED 閃動 表示程序開始執(zhí)行 CALL INIT 初始化變量 CALL INIT TIMER 初始化定時器 MOV A 0FFH MOV P0 A CALL LOAD DATA 加載七段數(shù)碼顯示器初值數(shù)據(jù) LOOP 無窮循環(huán) CALL TIME PRO 時間計時處理 CALL SCAN1 掃描顯示器 25 JB P2 4 M1 未按下 K1 鍵則繼續(xù)掃描 CALL LED BL LED 閃動 CALL SET TIME 設(shè)置目前時間 JMP LOOP 繼續(xù)循環(huán)執(zhí)行 M1 JB P2 5 M2 未按下 K2 鍵則繼續(xù)掃描 CALL BZ 發(fā)出嘩的一聲 CALL LOOK ATIME 顯示鬧鈴時間 JMP LOOP 繼續(xù)循環(huán)執(zhí)行 M2 JB P2 6 M3 未按下 K3 鍵則繼續(xù)掃描 CALL BZ 發(fā)出嘩的一聲 CALL SET ATIME 設(shè)置鬧鈴時間 CALL LED BL LED 閃動 JMP LOOP 繼續(xù)循環(huán)執(zhí)行 M3 JB P2 7 M4 未按下 K4 鍵則繼續(xù)掃描 CPL 20H JNB 20H M31 CALL BZ CALL BZ CALL BZ JMP LOOP 繼續(xù)循環(huán)執(zhí)行 M31 CALL BZ JMP LOOP 繼續(xù)循環(huán)執(zhí)行 M4 JMP LOOP 繼續(xù)循環(huán)執(zhí)行 DELAY 總延遲時間 R5 10ms 26 MOV R6 50H D1 MOV R7 100H DJNZ R7 DJNZ R6 D1 DJNZ R5 DELAY RET DELAY1 控制七段顯示器延遲時間 MOV R6 1H D2 MOV R7 100H DJNZ R7 DJNZ R6 D2 DJNZ R5 DELAY1 RET LED BL 工作指示燈閃爍 MOV R4 6H LE1 CPL WLED 位反向 MOV R5 5H 延遲 50ms CALL DELAY DJNZ R4 LE1 TABLE DB 3FH 06H 5BH 4FH 66H DB 6DH 7DH 07H 7FH 6FH DB 77H 7CH 58H 5EH 79H DB 71H SCAN1 MOV R0 30H 指向顯示器顯示緩沖區(qū)起始地址 27 MOV R2 4H 循環(huán)執(zhí)行 4 次 MOV ACC 0FEH 加載掃描輸出信號初 1111111B S1 PUSH ACC MOV A R0 取出七段顯示器數(shù)據(jù) MOV P0 ACC 由 P0 送出一位七段顯示器數(shù)據(jù) POP ACC MOV P2 ACC 由 P2 送出掃描輸出信號 MOV R5 5H 延遲一會兒 CALL DELAY1 RL A 累加器向左移動一位 INC R0 顯示器顯示緩沖區(qū)地址加 1 DJNZ R2 S1 循環(huán)判斷是否繼續(xù)執(zhí)行 RET LOAD DATA MOV 30H 3FH MOV 31H 3FH MOV 32H 3FH MOV 33H 3FH RET INIT 初始化控制變量 MOV 37H 00H 5ms 計數(shù)值清除為 0 MOV 38H 00H 舊的秒數(shù)清除為 0 MOV 36H 00H 秒種變量清除為 0 MOV 35H 00H 分鐘變量清除為 0 MOV 34H 00H 小時變量清除為 0 RET INIT TIMER 初始化定時器接口 使用定時器 0 模式 0 計時 MOV TMOD 0000000B 設(shè)置定時器 0 工作模式為模式 0 28 MOV IE 10000010B 啟用定時器 0 中斷產(chǎn)生 MOV TL0 24H 加載低字節(jié) MOV TH0 99H 加載高字節(jié) SETB TR0 啟動定時器 0 開始計時 RET T0 INT 定時器 0 計時中斷程序每隔 5ms 中斷一次 PUSH ACC 將累加器放入堆棧 MOV TL0 24H 加載低字節(jié) MOV TH0 99H 加載高字節(jié) INC 37H 5ms 計數(shù)值加 1 MOV A 37H CJNE A 200H TT1 是否 1s 到了 MOV 37H 00H 計數(shù)值清除為 0 CPL P3 7 LED 燈亮滅變換 INC 36H 秒計數(shù)加 1 MOV A 36H CJNE A 60H TT1 是否 1min 到了 INC 35H 分計數(shù)加 1 MOV 36H 00H 秒計數(shù)清除為 0 MOV A 35H CJNE A 60H TT1 是否 1h 到了 INC 34H 小時計數(shù)加 1 MOV 35H 00H 分計數(shù)清除為 0 MOV A 34H CJNE A 24H TT1 是否 24h 到了 MOV 36H 00H 秒鐘變量清除為 0 MOV 35H 00H 分鐘變量清除為 0 MOV 34H 00H 小時變量清除為 0 TT1 29 POP ACC 將累加器由堆棧取出 RETI CONV1 MOV A 35H MOV B 10H DIV AB MOV DPTR TARLE 查表轉(zhuǎn)換 MOVC A A DPTR MOV 30H A MOV A B MOV A A DPTR MOV 31H A MOV A 36H MOV B 10H DIV AB MOV DPTR TABLE 查表轉(zhuǎn)換 MOVC A A DPTR MOV 32H A MOV A B MOVC A A DPT

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論