單片機課程設計--- 三角波發(fā)生器_第1頁
已閱讀1頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  編號: 五 </p><p><b>  課程設計報告書</b></p><p>  課 題: 三角波發(fā)生器 </p><p>  院 (系): 機電工程學院 </p><p>  專 業(yè): 機械設計制造及其自動化

2、 </p><p>  學生姓名: </p><p>  學 號: </p><p>  題目類型:理論研究 實驗研究 工程設計 工程技術研究 軟件開發(fā)</p><p>  2009 年 12月 17 日</p>

3、<p><b>  目錄</b></p><p><b>  目錄2</b></p><p><b>  前言3</b></p><p>  第一章 系統概述4</p><p>  第二章 單元電路設計與仿真4</p><p>  

4、1)單片機核心的選擇4</p><p>  2)DAC0832的接口設計5</p><p>  3)按鍵輸入的響應與頻率調節(jié)6</p><p>  4)其實器件的選擇與說明7</p><p>  5)電路仿真與原理驗證7</p><p>  第三章 電路安裝與調試7</p><

5、p><b>  第四章 結束語8</b></p><p><b>  第五章 附件8</b></p><p><b>  1)元件清單8</b></p><p>  2)電路原理圖(見附頁)8</p><p>  3)PCB布線圖(見附頁)8</p&

6、gt;<p>  第六章 參考文獻8</p><p><b>  第七章 鳴謝9</b></p><p><b>  前言</b></p><p>  本次課程設計要求是設計一臺三角波發(fā)生器,其頻率范圍是1~100Hz。設計基本思路是以AT89S51為控制核心并用DAC0832進行數模轉換達到,再通過LM

7、358放大器放大信號輸出。</p><p>  在確定了設計的基本思路后,我們首先對《單片機原理及應用》和《微機原理與接口技術》這兩門課程的內容進行了復習。然后再上網和到圖書館查找資料,弄清了AT89S51單片機的基本結構和工作原理。并通過與老師溝通逐步弄清楚了AT89S51單片機的復位電路、上電啟動等基本原理,并成功試用出一塊用于接下來實驗的51單片機最小系統板,驗證了一些簡單的IO端口讀寫操作,為接下來的制作

8、做好充分的準備。</p><p>  因為在上學期所學的《微機原理與接口技術》中有相關的DAC0832的信息,于是我們參考了《單片機原理及應用》和《微機原理與接口技術》這兩本教材上的相關內容后逐步弄清了外圍電路的接法和控制字內容等。最后再經過向其他同學和老師請教,最后也完全搞清楚了DAC0832的單緩沖與雙緩沖兩種工作方式。按照課程設計的要求,我們選擇了單緩沖工作方式。</p><p> 

9、 因為DAC0832為電流輸出型DA轉換芯片,因此要在輸出端多接一片運算放大器以將電流輸出轉換為相應的電壓輸出。而運算放大器的選型是我們以前不曾遇到過的。通過復習《電工學》中運算放大器的基本知識、上網查詢器件型號,我們終于選定LM358作為末級輸出的運算放大器。</p><p>  由于PROTEUS可仿真各種電路和IC,并支持單片機,元件庫齊全,使用方便,是不可多得的專業(yè)的單片機軟件仿真系統。所以在器件型號選好

10、之后,我們在PROTEUS仿真平臺中搭建了所需的模擬電路。</p><p>  C語言與匯編相比,C語言在功能上、結構性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學易用。所以程序的編寫我們采用C語言編寫,并采用了Keil C軟件進行程序的編寫。因為Keil C軟件是兼容單片機C語言軟件開發(fā)系統。再將程序導入PROTEUS經過一番調試,最終PROTEUS中的虛擬示波器顯示出了我們想要的波形。</p>&

11、lt;p>  最后,我們在Altium Designer6.7環(huán)境下繪制了電路原理圖、生成了PCB與布線圖。再將PCB布線打印熱轉印圖樣,并將其印到銅板上,再按圖對銅板腐蝕、鉆孔,將AT89S51、電阻、電容、LED燈等焊接到電路板上就得到所要求的實物板</p><p><b>  系統概述</b></p><p>  任務要求:1、用DAC0832設計一個三角

12、波發(fā)生器。</p><p>  2、三角波的頻率為 1Hz — 100Hz。 </p><p>  3、可以用 “+”和“—”鍵來改變波形的頻率。</p><p>  本設計原理分塊框圖如下</p><p>  該設計是一臺三角波發(fā)生器,其頻率范圍是1~100Hz。設計基本思路是以AT89S51為控制核心并用DAC0832進行數模轉換達到,再

13、通過LM358放大器放大信號輸出。</p><p><b>  單元電路設計與仿真</b></p><p><b>  單片機核心的選擇</b></p><p>  設計中使用的是通用兼容型的AT89S51單片機,是一個低功耗,高性能CMOS 8位單片機,片內含4k Bytes ISP(In-system programm

14、able)的可反復擦寫1000次的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術制造,兼容標準MCS-51指令系統及80C51引腳結構,芯片內集成了通用8位中央處理器和ISP Flash存儲單元。 其PDIP封裝方式的引腳圖如下 </p><p>  AT89S51只要接好外圍復位電路、晶體振蕩電路與EA引腳,單片機即可開始工作。并復位程序

15、指針從內部程序存儲器的第一行開始運行程序。因此選用1K、10K電阻和22uF電容各一枚,12M晶振一顆構成復位與振蕩電路。經計算,在12M晶振產生振蕩信號的情況下,單片機每時鐘周期為一微秒。記錄此數據備以后計算。</p><p>  DAC0832的接口設計</p><p>  DAC0832是8分辨率的D/A轉換集成芯片。與微處理器完全兼容。這個DA芯片以其價格低廉、接口簡單、轉換控制容

16、易等優(yōu)點,在單片機應用系統中得到廣泛的應用。D/A轉換器由8位輸入鎖存器、8位DAC寄存器、8位D/A轉換電路及轉換控制電路構成。其芯片圖如下</p><p>  DAC0832由兩級數據緩沖器和D/A轉換器組成,第一級數據緩沖器稱為輸入寄存器,第二級稱為DAC寄存器,其內部結構圖如下:</p><p>  可以看出,對其控制腳CS、WR1,WR2,XFER的接線方法不同可有不同的通信方法

17、。本設計采用《單片機原理及應用》課本第157頁圖8-22的接法,即WR1與WR2合并后接單片機的WR、CS與XFER并接后接單片機的P2.7腳(詳細接線圖見電路原理圖)。這樣就把DAC0832作為外部數據存儲器接入單片機中。經過計算,DAC0832的接口地址為0x7FFF。此地址記下備用。</p><p>  按照此接些方法,在Keil C中對0832的寫操作用如下語句完成。</p><p&g

18、t;  XBYTE[0x7fff]=value;</p><p>  以上為C51中對外部數據存儲器的標準讀指令。</p><p>  為產生一定頻率的三角波,使用單片機內部的定時、計數器0,并通過設置TMOD使其工作在定時方式下。以產生1Hz的三角波為例,由于0832為八位DA,從全零輸出到全一輸出共有256步。因為把1秒分成256份,每份進一步。即1秒鐘產生256次中斷。</p&

19、gt;<p>  則中斷初始值的計算為:</p><p>  content=65536-1.0/key/256*1000000;</p><p>  此為單片機時鐘周期為1us,輸出頻率值key=1Hz的計算語句。</p><p>  然后將初值content裝入定時、計數器0的高位與低位。用以下語句:</p><p>  T

20、H0=content/256;</p><p>  TL0=content%256;</p><p>  就完成了對DAC0832的控制。</p><p><b>  中斷處理子程序為:</b></p><p>  void output() interrupt 1</p><p><b&g

21、t;  while(1)</b></p><p><b>  { </b></p><p>  if(button==0) </p><p><b>  {</b></p><p>  if(down==1) {while(button==0);down=0;key++;if(key=

22、=101)key=1;} else down=1;</p><p><b>  }</b></p><p>  if(button1==0)</p><p>  { if(down1==1){while(button1==0);down1=0;key--;if(key==0)key=100;}else down1=1;</p>

23、<p><b>  }</b></p><p>  content=65536-1.0/key/256*1000000;</p><p><b>  P1=0;</b></p><p><b>  }</b></p><p>  按鍵輸入的響應與頻率調節(jié)</p

24、><p>  課程設計題目要求對按鍵的輸入有響應,輸出的頻率以每次按鍵1Hz的速度改變。為此在單片機系統中增加兩個按鍵,并接入P3端口的兩個閑置引腳作為輸入。</p><p>  在Keil C中編寫按鍵響應程序如下:</p><p>  void output() interrupt 1</p><p><b>  {</b&g

25、t;</p><p>  if(summit==0) {i++;if(i==255) summit=1;} else {i--;if(i==0) summit=0;}</p><p>  XBYTE[0x7fff]=i;</p><p>  TH0=content/256;</p><p>  TL0=content%256;</p&g

26、t;<p>  }其中button、button1為按鍵接入口的位定義。本設計與傳統的按鍵防抖方法不用,用了一種新的方法,即通過按鍵抬起時判斷該鍵是否曾經按下來進行防抖,更高效而可靠。</p><p>  按鍵判斷的結果通過全局變量key傳遞到中斷處理程序中,改變定時器的初始值,進而達到改變輸出頻率的目的。</p><p>  其它器件的選擇與說明</p>&l

27、t;p>  DAC0832末級的運算放大器選擇為LM358,因為它放大倍數大,價格低廉。</p><p>  發(fā)光LED一枚,作為電源指示燈。與LED配套的</p><p>  300歐電阻一顆,作為限流電阻用。</p><p>  插座,插針若干,作用電源輸入與輸出的接口</p><p><b>  電路仿真與原理驗證<

28、;/b></p><p>  用Proteus仿真軟件搭建所設計的電路,其圖如下:</p><p>  紅框部分為對out輸出口進行圖表邏輯仿真的輸出圖形,三角清晰,時序正常。</p><p>  按動按鍵再用示波器觀察頻率改變情況,令人滿意,原理通過。</p><p><b>  電路安裝與調試</b></

29、p><p>  1、將所繪制好的PCB布線打印熱轉印圖樣,并將其印到銅板上,再按圖對銅板腐蝕、鉆孔,將AT89S51、電阻、電容、LED燈等焊接到電路板上就得到所要求的實物板。</p><p>  2、上電寫入端口簡單讀寫程序后用萬用表測量輸出情況正常,表明單片機最小系統正常工作。將編譯好的hex文件寫入,通電接示波器測試,得到圖示圖形。按動按鍵頻率改變正常,達到設計效果。</p>

30、<p><b>  結束語</b></p><p>  通過本次課程設計使我們更深入透徹的理解了單片機的相關知識,鞏固了上課的知識,同時培養(yǎng)了我們對單片機制作的濃厚興趣。增強了實踐動手能力,在課設過程中遇到了很多困難,如Proteus軟件的學習、銅板的印制等。后來在老師的講解及查閱相關資料后,問題都迎刃而解。在此特別感謝xx老師!</p><p><

31、;b>  附件</b></p><p><b>  元件清單</b></p><p>  電路原理圖(見附頁)</p><p>  PCB布線圖(見附頁)</p><p><b>  參考文獻</b></p><p>  1?白駒珩?單片計算機及其應用?電子

溫馨提示

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

評論

0/150

提交評論