單片機頻率發(fā)生器課程設計.doc_第1頁
單片機頻率發(fā)生器課程設計.doc_第2頁
單片機頻率發(fā)生器課程設計.doc_第3頁
單片機頻率發(fā)生器課程設計.doc_第4頁
單片機頻率發(fā)生器課程設計.doc_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

課課 程程 設設 計計 任任 務務 書書 所屬課程名稱所屬課程名稱 單片機課程設計單片機課程設計 題題 目目 數(shù)字頻率發(fā)生器的設計數(shù)字頻率發(fā)生器的設計 分分 院院 機電學院機電學院 專專 業(yè) 班業(yè) 班 級級 機械設計制造及其自動化機械設計制造及其自動化 B0803B0803 學學 號號 06120803070612080307 學學 生生 姓姓 名名 楊秀周楊秀周 指指 導導 教教 師師 于克龍于克龍 2 目錄目錄 一 概述一 概述 3 1 1 設計內(nèi)容 3 1 2 設計要求 3 二 頻率發(fā)生器設計方案二 頻率發(fā)生器設計方案 4 2 1 方案介紹 4 2 2 頻率發(fā)生器的原理與功能 4 三 硬件實驗設計方案三 硬件實驗設計方案 5 3 1 硬件組成 5 3 2 電路圖 6 3 3 小鍵盤接口電路 6 3 4 LED 顯示電路 7 四 軟件設計四 軟件設計 7 4 1 流程圖 7 4 2 系統(tǒng)初始化子程序 9 4 3 顯示子程序 9 4 4 參考程序 10 五 系統(tǒng)的設計調(diào)試方法五 系統(tǒng)的設計調(diào)試方法 13 5 1 主程序 13 5 2 選擇定時器 0 方式 1 14 5 3 計算F 14 5 4 初始值 即頻率剛開始時 14 5 5 編寫定時器 0 的中斷服務子程序 14 六 設計體會六 設計體會 14 參考文獻參考文獻 15 3 數(shù)字頻率發(fā)生器的設計數(shù)字頻率發(fā)生器的設計 一 概述一 概述 單片機集成度高 功能強 可靠性高 體積小 功耗地 使用方便 價格 低廉等一系列優(yōu)點 目前已經(jīng)滲入到人們工作和生活的方方面面 幾乎 無處 不在 無所不為 單片機的應用領域已從面向工業(yè)控制 通訊 交通 智能 儀表等迅速發(fā)展到家用消費產(chǎn)品 辦公自動化 汽車電子 PC 機外圍以及網(wǎng)絡 通訊等廣大領域 單片機有兩種基本結(jié)構(gòu)形式 一種是在通用微型計算機中廣泛采用的 將程 序存儲器和數(shù)據(jù)存儲器合用一個存儲器空間的結(jié)構(gòu) 稱為普林斯頓結(jié)構(gòu) 另一 種是將程序存儲器和數(shù)據(jù)存儲器截然分開 分別尋址的結(jié)構(gòu) 一般需要較大的 程序存儲器 目前的單片機以采用程序存儲器和數(shù)據(jù)存儲器截然分開的結(jié)構(gòu)為 多 本課題討論的方波發(fā)生器的核心是目前應用極為廣泛的 51 系列單片機 1 1 設計內(nèi)容設計內(nèi)容 本課程設計是設計一個頻率發(fā)生器 讓其產(chǎn)生方波 用 4 位數(shù)碼管顯示 方波的頻率 1 2 設計要求設計要求 1 設計一個數(shù)字頻率發(fā)生器 要求產(chǎn)生方波信號 2 能夠顯示發(fā)送信號頻率 該信號顯示為 XXXX 四位 或 010 999HZ 3 頻率范圍可調(diào) 10 1000HZ 二 頻率發(fā)生器設計方案二 頻率發(fā)生器設計方案 在電子技術領域中 實現(xiàn)方波發(fā)生器的方法有很多種 可以采用不同的原 理及器件構(gòu)成不同的電路 但可以實現(xiàn)相同的功能 在此次設計中 有些地方 與課題原本的具體要求有點不同 如實現(xiàn)頻率調(diào)節(jié)時 不是按要求利用調(diào)整變 4 阻器的阻值來完成的 而是用按鍵來實現(xiàn)的 2 1 方案介紹 方案介紹 微處理器模塊 AT89S52 頻率與占空比信息顯示模塊 2 4 矩陣鍵盤模塊 74LS164 移位寄存器顯示驅(qū)動模塊 本設計中用到兩個定時器 定時器 0 和定 時器 1 其中定時器 0 工作在定時方式下 決定方波的頻率 定時器 1 同樣 工作在定時方式下 用于設定占空比 用 LED 顯示器來顯示頻率與占空比 鍵 盤的操作是通過外中斷與單片機共同來控制的 鍵盤操作來完成按要求對頻率 與占空比進行調(diào)節(jié) 2 2 頻率發(fā)生器的原理與功能 頻率發(fā)生器的原理與功能 方波發(fā)生器的原理方框圖如圖 1 所示 鍵盤 單片機 89S52 LED 顯 示 頻率與占 空比數(shù)據(jù) 頻率與占 空比數(shù)據(jù) 圖 1 頻率發(fā)生器原理框圖 由于系統(tǒng)的要求不高 比較單一的 再加上我們是通過定時器來調(diào)節(jié)頻率的 而非電阻 因此實現(xiàn)起來就相對簡化了 僅用鍵盤 AT89S52 及串行顯示便可 完成設計 達到所要求實現(xiàn)的功能 頻率發(fā)生器工作原理與功能 簡單的流程為 主程序掃描鍵盤 將設置信息輸入 處理后 輸出到 LED 顯 5 示器顯示 單片機的晶振為 11 0592MHz 用到了兩個定時器 即定時器 0 與定時器 1 分別進行頻率與占空比的定時 兩個定時器都是工作在方式 1 根據(jù)計算定 時器初值的公式 12 2 tf TC oscL 計算出定時器 0 與定時器 1 所要裝入的初值 頻率及占空比的顯示電路由 74LS164 構(gòu)成的驅(qū)動電路和 LED 數(shù)碼顯示管組 成 利用八個數(shù)碼管來顯示 有五位是用來顯示頻率的 有兩位是顯示占空比 的 在頻率與占空比顯示管中間有一個 LED 數(shù)碼管是用來顯示 的 用 以區(qū)分頻率顯示與占空比顯示的 此電路的鍵盤是由一個狀態(tài)鍵 四個功能鍵 調(diào)節(jié)頻率與占空比的增減 組成 其特殊之處在于利用外部中斷實現(xiàn)鍵盤掃描 狀態(tài)鍵有三種狀態(tài) 當其 處于狀態(tài) 0 時 則其它的鍵會處于無用狀態(tài) 當其處于狀態(tài) 1 時 可通過按四 個調(diào)節(jié)鍵來調(diào)節(jié)頻率 處于第三種狀態(tài)時 按四個調(diào)節(jié)鍵中的前兩個便可對占 空比進行調(diào)節(jié)了 三 硬件實驗設計方案三 硬件實驗設計方案 3 1 硬件組成硬件組成 MC 51 單片機 鍵盤 LED 顯示器 鼠標 輔助機箱 3 2 電路圖電路圖 6 圖 2 3 3 小鍵盤接口電路小鍵盤接口電路 小鍵盤如圖 3 所示 它包括 8 個鍵 系統(tǒng)中用到的鍵只有 5 個 分別為 0 號 1 號 2 號 3 號 4 號鍵 其中 0 號鍵是狀態(tài)鍵 采用外部中斷控制 用 它來確定其它幾個鍵的按鍵功能 具體作用在前述的系統(tǒng)功能中已做介紹了 另外 4 個鍵為功能鍵 調(diào)節(jié)頻率與占空比的 小鍵盤中引出的 6 根線依次分別 接單片機的 P1 0 P1 1 P1 2 P1 3 P1 4 P1 5 口 圖 3 小鍵盤接口電路 7 3 4 LED 顯示電路顯示電路 采用靜態(tài)顯示來實現(xiàn)顯示功能 如圖 4 所示 移位寄存器 74LS164 實現(xiàn) 串行輸入 并行輸出 串行數(shù)據(jù)由 RXD 輸出 從 74LS164 的 A B 端口輸入寄存 器 移位時鐘由 TXD 提供 在移位時鐘作用下 存放顯示器段碼的串行發(fā)送緩 沖器數(shù)據(jù)逐位由 A B 端移入到 74LS164 中 再由 Q0 到 Q7 并行輸出到顯示數(shù)碼 管相應的 LED 上 8 片 74LS164 首尾相串 而時鐘端則接在一起 這部分的最 終功能是顯示頻率與占空比 顯示部分具體電路如圖 4 所示 圖 4 LED 顯示電路 四 軟件設計四 軟件設計 4 1 流程圖流程圖 主程序包括系統(tǒng)初始化及顯示程序 是一個死循環(huán)系統(tǒng) 其流程圖如圖 5 所 示 8 程序組成結(jié)構(gòu)程序組成結(jié)構(gòu) 開始 系統(tǒng)始化 顯示 圖 5 主程序流程圖 9 4 2 系統(tǒng)初始化子程序 系統(tǒng)初始化子程序 在此程序中 給所有變量賦初值 有鍵盤掃描口 選擇串行口工作方式 SCON 狀態(tài)標志位 flag 初始頻率與占空比及其定時 定時器 0 與定時器 1 的 工作方式等 初始化時啟動了定時器 0 與定時器 1 4 3 顯示子程序 顯示子程序 利用分離頻率的各位數(shù)值 將各位數(shù)值分別顯示出來 在程序中利用了頻率 顯示的高位滅零的方法以致最高位為 0 時就不顯示 以致顯示效果美觀化 一 共有五位是顯示頻率的 若頻率小于 10000 時 則萬位不顯示 若頻率小于 1000 時 則萬位與千位都不顯示 依次類推 占空比的顯示規(guī)律與頻率的一樣 顯示子程序流程圖如圖 6 所示 顯示子程序入口 分離頻率和占空比的各位數(shù)字 高位滅零處理 查表 串口發(fā)送各位數(shù)字字型 碼 軟件延時 結(jié)束 圖 6 顯示子程序流程圖 10 4 4 參考程序參考程序 ORG 4000H SJMP MAIN ORG 400BH LJMP 0170H DISPLAY EQU 0170H MAIN CLR P1 7 MOV SP 6FH MOV TH0 0F2H MOV TL0 0FBH MOV TMOD 01H MOV IP 20H MOV IE 82H SETB TR0 MOV 7EH 14H MOV 7DH 14H MOV 78H 14H MOV 77H 14H LCALL DISPLAY MOV 62H 00H MOV 63H 0AH MOV A 60H ANL A 0FH MOV 7BH A MOV A 60H ANL A 0F0H SWAP A MOV 7CH A MOV A 61H ANL A 0FH MOV 79H A MOV A 61H ANL A 0F0H SWAP A MOV 7AH A JP JB P1 0 JP1 LCALL YS JB P1 0 JP1 MOV A 63H ADD A 1 MOV 63H A MOV A 62H ADDC A 0 11 MOV 62H A JP1 LCALL DISPLAY MOV R2 62H MOV R3 63H LCALL BTOD MOV 60H R5 MOV 61H R6 MOV R5 15H MOV R4 16H MOV R3 05H MOV R2 00H MOV R6 62H MOV R7 63H LCALL NDIV1 CLR C MOV A 00H SUBB A R5 MOV 65H A MOV A 00H SUBB A R4 MOV 64H A LJMP KS DSQ50MS MOV TL0 65H MOV TH0 64H CPL P1 7 PTFOR RETI YS MOV R7 89H YS1 MOV R6 0F8H YS2 NOP DJNZ R6 YS2 DJNZ R7 YS1 RET BCDZHB MOV R3 0H MOV A R0 MOV R4 A IDTL MOV A R4 MOV B 10 MUL AB MOV R4 A MOV A 10 XCH A B XCH A R3 MUL AB ADD A R3 12 XCH A R4 INC R0 ADD A R0 XCH A R4 ADDC A 0 MOV R3 A DJNZ R2 IDTL RET BTOD CLR A MOV R4 A MOV R5 A MOV R6 A MOV R7 16 BTOD1 CLR C MOV A R3 RLC A MOV R3 A MOV A R2 RCL A MOV R2 A MOV A R6 ADDC A R6 DA A MOV R6 A MOV A R5 ADDC A R5 DA A MOV R5 A MOV A R4 ADDC A R4 DA A MOV R4 A BJNZ R7 BTOD1 RET NDIV1 MOV A R3 CLR C SUBB A R7 MOV A R2 SUBB A R6 JNC NDIV5 MOV R0 16 NDIV2 CLR C MOV A R5 RLC A 13 MOV R5 A MOV A R4 RLC A MOV R4 A MOV A R3 RLC A MOV R3 A XCH A R2 RLC A XCH A R2 MOV F0 C CLR C SUBB A R7 MOV A R2 SUBB A R6 JB F0 NDIV3 JC NDIV4 NDIV3 MOV R2 A MOV A R1 MOV R3 A INC R5 NDIV4 DJNZ R0 NDIV2 CLR F0 RET NDIV5 SETB F0 RET 五 系統(tǒng)的設計調(diào)試方法五 系統(tǒng)的設計調(diào)試方法 5 1 主程序 主程序 首先讓顯示器顯示為 0010 HZ 用定時器軟件 t定時 50ms 則 t 2t定時 1000mms 0 1s 則其頻率為 f 10HZ 調(diào)試修改 t定時 5ms 則 t 2t定時 10ms 0 01ms 則 f 100HZ t定時 0 5ms 則 t 2t定時 1ms 0 001ms 則 f 1000HZ 定時器的時間常數(shù)為 X 16 位 分別為 TH0 高 8 位 TL0 低八位 14 5 2 選擇定時器 選擇定時器 0 方式 方式 1 t定時 216 X 12 fosc fosc 8MHZ 8 106 設定頻率值求 f 求 T 求 t定時 采用倒求法 則 t定時 T 2 1 2f 代入上式 t定時 216 X 12 focs 得 1 2f 216 X 12 focs 則 X 216 focs 2f 12 216 8 106 24f 216 106 3f F2FBH 運用乘除法程序 5 3 計算 計算 f 根據(jù)其范圍是多大值 然后分配存儲器 如果結(jié)果是小于 256 就使用一個 單元存儲 如果是大于 256 則就應該使用多個單元存儲 已知 10 1000 這是需要把十進制數(shù)轉(zhuǎn)換為十六進制 算出結(jié)果占兩個單元 高 8 位 60H 和低 8 位 61H 分別裝在片內(nèi) RAM 內(nèi) 5 4 初始值 即頻率剛開始時 初始值 即頻率剛開始時 頻率 f 10 把其裝入 60H 和 61H 內(nèi) 如果是 000AH 則 60H 為 00 61H 為 0A 顯示 按十進制顯示 時 將 60H 61H 內(nèi)容值轉(zhuǎn)換為十進制數(shù) 這是需 要一個轉(zhuǎn)換程序 轉(zhuǎn)換后 會出現(xiàn)千 百 十 個 則顯示器上會顯示 滅 滅 滅 滅 千 十 百 個 HZ 地址分別為 7E 7D 7C 7B 7AH 79H 78H 77H 根據(jù)上述條件執(zhí)行下列步驟 f T t定時 x t定時 5 5 編寫定時器 編寫定時器 0 的中斷服務子程序的中斷服務子程序 每當定時時間到 對 P1 7 求反然后修改頻率值 設一個鍵 即為增加鍵 如示 意圖 判斷 P1 7 0 說明按下鍵 使 60H 61H 內(nèi)容加 1 也就是 f 1 實行循環(huán)指令 從四 4 處開始循環(huán) 將其轉(zhuǎn)換為十進制數(shù)寄存在顯示器內(nèi)并不斷顯示 出來 六 設計體會六 設計體會 在單片機課程設計中 我不僅加深了對單片機理論的理解 將理論很好地 15 應用到實際當中去 而且我還學會了如何去培養(yǎng)我們的創(chuàng)新精神 從而不斷地 戰(zhàn)勝自己 超越自己 更重要的是 我在這一設計過程中 學會了堅持不懈 不輕易言棄 設計過程 也好比是我們?nèi)祟惓砷L的歷程 常有一些不如意 也 許這就是在對我們提出了挑戰(zhàn) 勇敢過 也戰(zhàn)勝了 勝利的鐘聲也就一定會為 我們而敲響 但是 由于平時對單片機知識學習得不夠扎實 理解得不夠透徹 一

溫馨提示

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

評論

0/150

提交評論