購買設計請充值后下載,,資源目錄下的文件所見即所得,都可以點開預覽,,資料完整,充值下載就能得到。。。【注】:dwg后綴為CAD圖,doc,docx為WORD文檔,有不明白之處,可咨詢QQ:1304139763
單片機 單片機即單片微型計算機 是把中央處理器 存儲器 定時 計數器 輸入 輸出接口都集成在一塊集成電路芯片上的微型計算機 與應用在個人電腦中的 通用型微處理器相比 它更強調自供應 不用外接硬件 和節(jié)約成本 它的最 大優(yōu)點是體積小 可放在儀表內部 但存儲量小 輸入輸出接口簡單 功能較 低 由于其發(fā)展非常迅速 舊的單片機的定義已不能滿足 所以在很多應用場 合被稱為范圍更廣的微控制器 但是目前在中國大陸仍多沿用 單片機 的稱呼 絕大多數現在的單片機都是基于馮 諾伊曼結構的 這種結構清楚地定義了 嵌入式系統(tǒng)所必需的四個基本部分 一個中央處理器核心 程序存儲器 只讀 存儲器或者閃存 數據存儲器 隨機存儲器 一個或者更多的定時 計時器 還有用來與外圍設備以及擴展資源進行通信的輸入 輸出端口 所有這些都被 集成在單個集成電路芯片上 說單片機與通用型中央處理單元芯片不同是因為 前者一般很容易配合最小型的外部支持芯片制成工作計算機 這樣就可以很容 易的把單片機系統(tǒng)植入裝置內部來控制裝置了 近年來為了在指令和數據上使 用不同的字寬 并提高處理器流水線速度 哈佛結構在微控制器和 DSP 也逐漸 得到了廣泛的應用 傳統(tǒng)的微處理器是不允許這么做的 它要完成單片機的工作 就必須連接 一些其他芯片 比如說 因為片上沒有數據存儲器 就必須要添加一些 RAM 的存儲芯片 雖然所添加存儲器的容量很靈活 但是至少還是要添加 另外還 需要添加很多連線來傳遞芯片之間的數據 比如 一個典型的微控制器只需要 一個時鐘發(fā)生器和很少的 RAM 和 ROM 或者 EPROM E2PROM 就可以在軟 件和晶振下工作了 同時 微控制器具有豐富的輸入輸出設備 像是模擬數字 轉換 ADC 定時器 串口或者其他串行通訊接口 比如 I2C 串行外圍接口 SPI 控制器局域網 通常 這些繼承在內部的設備可以通過特殊的指令來操 作 一些現代的微控制器支持一些內建的高級編程語言 比如 BASIC 語言 早期的單片機都是 8 位或 4 位的 其中最成功的是 INTEL 的 8031 因為 簡單可靠而性能不錯獲得了很大的好評 此后在 8031 上發(fā)展出了 MCS51 系列 單片機系統(tǒng) 基于這一系統(tǒng)的單片機系統(tǒng)直到現在還在廣泛使用 隨著工業(yè)控 制領域要求的提高 開始出現了 16 位單片機 但因為性價比不理想并未得到很 廣泛的應用 90 年代后隨著消費電子產品大發(fā)展 單片機技術得到了巨大的提 高 隨著 INTEL i960 系列特別是后來的 ARM 系列的廣泛應用 32 位單片機迅 速取代 16 位單片機的高端地位 并且進入主流市場 而傳統(tǒng)的 8 位單片機的性 能也得到了飛速提高 處理能力比起 80 年代提高了數百倍 目前 高端的 32 位單片機主頻已經超過 300MHz 性能直追 90 年代中期的專用處理器 而普通 的型 號出廠價格跌落至 1 美元 最高端的型號也只有 10 美元 當代單片機系統(tǒng)已 經不再只在裸機環(huán)境下開發(fā)和使用 大量專用的嵌入式操作系統(tǒng)被廣泛應用在 全系列的單片機上 而在作為掌上電腦和手機核心處理的高端單片機甚至可以 直接使用專用的 Windows 和 Linux 操作系統(tǒng) 單片機比專用處理器最適合應用于嵌入式系統(tǒng) 因此它得到了最多的應用 事實上單片機是世界上數量最多的計算機 現代人類生活中所用的幾乎每件電 子和機械產品中都會集成有單片機 手機 電話 計算器 家用電器 電子玩 具 掌上電腦以及鼠標等電腦配件中都配有 1 2 部單片機 而個人電腦中也會 有為數不少的單片機在工作 汽車上一般配備 40 多部單片機 復雜的工業(yè)控制 系統(tǒng)上甚至可能有數百臺單片機在同時工作 單片機的數量不僅遠超過 PC 機 和其他計算的綜合 甚至比人類的數量還要多 單片機學習應中的五大重要部分 一 總線 我們知道 一個電路總是由元器件通過電線連接而成的 在模 擬電路中 連線并不成為一個問題 因為各器件間一般是串行關系 各器件之 間的連線并不很多 但計算機電路卻不一樣 它是以微處理器為核心 各器件 都要與微處理器相連 各器件之間的工作必須相互協調 所以就需要的連線就 很多了 如果仍如同模擬電路一樣 在各微處理器和各器件間單獨連線 則線 的數量將多得驚人 所以在微處理機中引入了總線的概念 各個器件共同享用 連線 所有器件的 8 根數據線全部接到 8 根公用的線上 即相當于各個器件并 聯起來 但僅這樣還不行 如果有兩個器件同時送出數據 一個為 0 一個為 1 那么 接收方接收到的究竟是什么呢 這種情況是不允許的 所以要通過控 制線進行控制 使器件分時工作 任何時候只能有一個器件發(fā)送數據 可以有 多個器件同時接收 器件的數據線也就被稱為數據總線 器件所有的控制線 被稱為控制總線 在單片機內部或者外部存儲器及其它器件中有存儲單元 這 些存儲單元要被分配地址 才能使用 分配地址當然也是以電信號的形式給出 的 由于存儲單元比較多 所以 用于地址分配的線也較多 這些線被稱為地 址總線 二 數據 地址 指令 之所以將這三者放在一起 是因為這三者的本質 都是一樣的 數字 或者說都是一串 0 和 1 組成的序列 換言之 地址 指 令也都是數據 指令 由單片機芯片的設計者規(guī)定的一種數字 它與我們常用 的指令助記符有著嚴格的一一對應關系 不可以由單片機的開發(fā)者更改 地址 是尋找單片機內部 外部的存儲單元 輸入輸出口的依據 內部單元的地址值 已由芯片設計者規(guī)定好 不可更改 外部的單元可以由單片機開發(fā)者自行決定 但有一些地址單元是一定要有的 詳見程序的執(zhí)行過程 數據 這是由微處 理機處理的對象 在各種不同的應用電路中各不相同 一般而言 被處理的數 據可能有這么 幾種情況 1 地址 如 MOV DPTR 1000H 即地址 1000H 送入 DPTR 2 方式字或控制字 如 MOV TMOD 3 3 即是控制字 3 常數 如 MOV TH0 10H 10H 即定時常數 4 實際輸出值 如 P1 口接彩燈 要燈全亮 則執(zhí)行指令 MOV P1 0FFH 要燈全暗 則執(zhí)行指令 MOV P1 00H 這里 0FFH 和 00H 都是實際輸出值 又如用于 LED 的字形碼 也是實際輸出的值 理解了地址 指令的本質 就不難理解程序運行過程中為什么會跑飛 會 把數據當成指令來執(zhí)行了 三 P0 口 P2 口和 P3 的第二功能用法 初學時往往對 P0 口 P2 口和 P3 口的第二功能用法迷惑不解 認為第二功能和原功能之間要有一個切換的過程 或者說要有一條指令 事實上 各端口的第二功能完全是自動的 不需要用指 令來轉換 如 P3 6 P3 7 分別是 WR RD 信號 當微片理機外接 RAM 或有外 部 I O 口時 它們被用作第二功能 不能作為通用 I O 口使用 只要一微處理 機一執(zhí)行到 MOVX 指令 就會有相應的信號從 P3 6 或 P3 7 送出 不需要事先 用指令說明 事實上 不能作為通用 I O 口使用 也并不是 不能 而是 使用者 不會 將其作為通用 I O 口使用 你完全可以在指令中按排一條 SETB P3 7 的指 令 并且當單片機執(zhí)行到這條指令時 也會使 P3 7 變?yōu)楦唠娖?但使用者不會 這么去做 因為這通常這會導致系統(tǒng)的崩潰 四 程序的執(zhí)行過程 單片機在通電復位后 8051 內的程序計數器 PC 中的值為 0000 所以程序總是從 0000 單元開始執(zhí)行 也就是說 在系統(tǒng)的 ROM 中一定要存在 0000 這個單元 并且在 0000 單元中存放的一定是一條指 令 五 堆棧 堆棧是一個區(qū)域 是用來存放數據的 這個區(qū)域本身沒有任何 特殊之處 就是內部 RAM 的一部份 特殊的是它存放和取用數據的方式 即 所謂的 先進后出 后進先出 并且堆棧有特殊的數據傳輸指令 即 PUSH 和 POP 有一個特殊的專為其服務的單元 即堆棧指針 SP 每當執(zhí)一次 PUSH 指令時 SP 就 在原值的基礎上 自動加 1 每當執(zhí)行一次 POP 指令 SP 就 在原值的基礎上 自動減 1 由于 SP 中的值可以用指令加以改變 所以只要 在程序開始階段更改了 SP 的值 就可以把堆棧設置在規(guī)定的內存單元中 如 在程序開始時 用一條 MOV SP 5FH 指令 就時把堆棧設置在從內存單元 60H 開始的單元中 一般程序的開頭總有這么一條設置堆棧指針的指令 因為 開機時 SP 的初始值為 07H 這樣就使堆棧從 08H 單元開始往后 而 08H 到 1FH 這個區(qū)域正是 8031 的第二 三 四工作寄存器區(qū) 經常要被使用 這會造 成數據的混亂 不同作者編寫程序時 初始化堆棧指令也不完全相同 這是作 者的習慣問題 當設置好堆 棧區(qū)后 并不意味著該區(qū)域成為一種專用內存 它還是可以象普通內存區(qū)域一 樣使用 只是一般情況下編程者不會把它當成普通內存用