課程設計智能儀器設計_第1頁
課程設計智能儀器設計_第2頁
課程設計智能儀器設計_第3頁
課程設計智能儀器設計_第4頁
課程設計智能儀器設計_第5頁
已閱讀5頁,還剩12頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、不要刪除行尾的分節符,此行不會被打印哈 爾 濱 理 工 大 學課 程 設 計 題目 智能儀器設計 姓名王玉林 班級 測控10-5班 學號 1005010502 指導教師苑惠娟 成績2013年6月11日目錄第1章 緒論11.1 課程設計題目與要求1第2章 總體方案設計22.1 工作原理22.2 系統組成22.3 波形發生22.4 顯示部分22.5 按鍵部分2第3章 硬件電路設計33.1 顯示及鍵盤接口電路33.2 D/A轉換電路43.3 復位電路53.4 8路LED63.5 本章小結6第4章 軟件設計7第5章 PCB板設計、安裝與調試85.185.285.385.4 本章小結8第6章 系統標定、

2、測試與精度分析96.196.296.396.4 本章小結9結論10致謝11參考文獻12心得體會13附錄14千萬不要刪除行尾的分節符,此行不會被打印。在目錄上點右鍵“更新域”,然后“更新整個目錄”。打印前,不要忘記把上面“Abstract”這一行后加一空行第1章 緒論1.1 課程設計題目與要求設計任務:設計制作一個波形發生器,該波形發生器能產生三角波,梯形波等由用戶編輯的特定形狀波形。示意圖如下:圖1 設計要求圖設計要求:1.具有產生三角波、正弦波兩種種周期性波形的功能;2.頻率可調節,并顯示在數碼管上。3.LED在運行過程中按要求亮。第2章 總體方案設計2.1 工作原理根據題目的要求,制定了整

3、體方案:以STC90C51單片機為控制核心,P20、P21口接pcf8591p信號輸入并進行數模轉換,P3口接8路獨立按鍵,P1口接8路LED ,P0口接數碼管顯示,由程序控制P2口產生波形(分別是正弦波、方波),再由按鍵及按鍵次數控制產生波形的種類及頻率在一定范圍內可調。在LED上實時的顯示波形的頻率和種類,波形在示波器上產生。正弦波波形的發生:在產生正弦波時,每周期只取80個點,在波形盡量不失真的前提下,使其頻率達到的值盡量大,以便示波器顯示。2.2 系統組成系統組成總體框圖如下:P2.4P2.5獨立按鍵PD/A轉換波形P1P0P1位選數碼顯示STC90C51系統復位系統時鐘2.3 波形發

4、生采用單片機和數模轉換pcf8591p實現波形的產生。通過STC90C51執行三角正弦波程序,向D/A轉換器的輸入端按I2C總線方式發送數據,從而在D/A轉換電路輸出端得到相應的電壓波形。在STC90C51的P2.4P2.7口接獨立按鍵,通過軟件編程來選擇波形、頻率,每種波形對應一個按鍵,頻率增加、減少對應一個按鍵。2.4 顯示部分8段LED共陰極數碼管,P1口進行位選,P0口輸出段選信號。2.5 按鍵部分采用獨立按鍵,它相比較矩陣鍵盤,按鍵的數目比少,結構簡單,方便操作,執行效率高。第3章 硬件電路設計硬件電路原理圖3.1 顯示及鍵盤接口電路功能:led顯示,按鍵掃描。由LED數碼管顯示器和

5、獨立按鍵組成。當某一按鍵按下一次時,掃描程序掃描到之后,通過P0口將信號發送到LED。掃描及顯示利用程序實現,不斷掃描獨立按鍵,當某一按鍵按下時,隨即執行程序段,完成相應的功能。共陰極數碼管6路獨立按鍵3.2 D/A轉換電路功能:將波形樣值編碼轉換成模擬值,輸出波形。由一片PCF8591組成。PCF8591是具有I2C總線接口的8位A/D及D/A轉換器。有四路A/D轉換輸入,1路D/A模擬輸出,也就是既可以作D/A轉換也可以作A/D轉換。PCF8591靠數據線SDA和時鐘線SCL和90C51聯系。單片機以I2C協議向PCF8591發送數字編碼,產生不同的輸出。先利用采樣定理對各種波形進行抽樣,

6、然后把各種采樣值進行編碼,收到的數字量存入各個波形表,執行程序時通過查表的方法依次取出,經過D/A轉換后輸出就可以得到波形。如N個點構成波形的一個周期,則PCF8591輸出N個樣點值后,樣值點形成運動軌跡,即一個周期。利用單片機的中斷時間控制輸出周期的速度,也就是控制輸出的波形的頻率。D/A轉換電路圖3.3 復位電路單片機的復位電路在剛接通電時,剛開始電容是沒有電的,電容內的電阻很低,通電后,5V的電通過電阻給電容進行充電,電容兩端的電會由0V慢慢的升到4V左右(此時間很短一般小于0.3秒),RC構成的微分電路在上電瞬間產生一個微分脈沖,其寬度大于兩個機器周期,90C51復位。因此,復位腳的電

7、由低電位升到高電位,引起了內部電路的復位工作,RST端電壓慢慢下降,降到一定電壓值以后,即為低電平,單片機開始正常工作(即上電復位,也叫初始化復位);當按下復位鍵時,電容兩端放電,電容又回到0V了,于是又進行了一次復位工作(即手動復位)。復位電路3.4 8路LED發光二極管用于按鍵檢測,檢查按鍵掃描是否成功,以驗證程序的有效性。8路LED3.5 本章小結第4章 軟件設計主程序和子程序都存放在PCF8591單片機中。主程序的功能是:開機做鍵盤掃描及顯示工作,然后根據用戶所按的鍵轉到相應的子程序進行處理。子程序的功能有:延時子程序、中斷程序、顯示子程序、按鍵子程序,按鍵子程序中有頻率的加和減鍵、波

8、形的轉換鍵等共4個鍵。第5章 軟硬件調試5.1在單片機編程中主要出現了以下問題:1) 鍵盤掃描時,多次掃描的問題,最終加入循環語句,是按鍵松開時執行,解決。2) 共256個樣值點的正弦波輸出時,不能完整顯示的問題,采用每隔3個樣值點輸出一個的方案,減少樣值數量從而增大輸出頻率。3) 中斷時間問題,因為定時器中斷時間過短引起的波形不能正常顯示問題。最終考慮了D/A轉換時間,以及程序段的執行時間,使一次中斷時間不小于100毫秒,得以解決。4) 數碼管顯示的閃動問題,加大了對動態顯示數碼管的掃描頻率,更改了由浮點數構成的頻率計算公式,解決了計算引起的程序執行時間過長問題。5) 正弦波頻率范圍問題,通

9、過計算子程序段執行時間,定時器中斷時間,DA轉換時間,最終確定頻率輸出范圍10hz800hz。5.2 本章小結千萬不要刪除行尾的分節符,此行不會被打印。“結論”以前的所有正文內容都要編寫在此行之前。心得體會通過這次課程設計,我重新學習了以前的知識,學習了Altium designer這個軟件,學習硬件電路的設計,以及PCB的繪制。實驗過程中遇到了很多問題,例如DA轉換不能正常工作,還有就是數碼管顯示的問題,由于數碼管顯示的時間太長,然后DA轉換的時候,導致DA不能正常工作,只能通過一小段延時來實現的數碼管的顯示,還有就是DA輸出波形時,數碼管不能顯示其輸出頻率,因為動態數碼管刷新的時間太快,以

10、至于在 轉換過程中不能顯示其頻率,通過按鍵調整其頻率效果不是很好,通過示波器顯示的波形不能很好的反映其真實頻率。通過這次課程設計進一步加深對數碼管,按鍵的使用,以及常見波形的產生。這次的實踐主要掌握了一些編程技巧,學會了用軟件技術解決了按鍵抖動的問題,學會了中斷定時的使用,運用動態掃描顯示節省了IO口的使用。數碼管顯示的延時時間影響數碼管的亮度及是否產生閃爍的現象。 附 錄#include#include #define NOP() _nop_() #define _Nop() _nop_() bit ack;sbit SCL=P21; sbit SDA=P20;sbit k1=P22;sbi

11、t k2=P23;sbit k3=P24;sbit k4=P25;sbit k5=P26;sbit k6=P27;unsigned int wave=0,i=0;unsigned int sum=0,n=0,f=1;int g=0;unsigned char code Disp_Tab = 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; /共陰數unsigned char code dispbit6=0xfe,0xfd,0xfb,0xf7,0xef,0xdf; /位選控制 查表的方法控制char sanjiao;char code sin2

12、56=0x80,0x83,0x86,0x89,0x8d,0x90,0x93,0x96,0x99,0x9c,0x9f,0xa2,0xa5,0xa8,0xab,0xae,0xb1,0xb4,0xb7,0xba,0xbc,0xbf,0xc2,0xc5,0xc7,0xca,0xcc,0xcf,0xd1,0xd4,0xd6,0xd8,0xda,0xdd,0xdf,0xe1,0xe3,0xe5,0xe7,0xe9,0xea,0xec,0xee,0xef,0xf1,0xf2,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfd,0xfe,0xff,0x

13、ff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5,0xf4,0xf2,0xf1,0xef,0xee,0xec,0xea,0xe9,0xe7,0xe5,0xe3,0xe1,0xdd,0xde,0xda,0xd8,0xd6,0xd4,0xd1,0xcf,0xcc,0xca,0xc7,0xc5,0xc2,0xbf,0xbc,0xba,0xb7,0xb4,0xb1,0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x

14、99,0x96,0x93,0x90,0x8d,0x89,0x86,0x83,0x80,0x80,0x7c,0x79,0x76,0x72,0x6f,0x6c,0x69,0x66,0x63,0x60,0x5d,0x5a,0x57,0x55,0x51,0x4e,0x4c,0x48,0x45,0x43,0x40,0x3d,0x3a,0x38,0x35,0x33,0x30,0x2e,0x2b,0x29,0x27,0x25,0x22,0x20,0x1e,0x1c,0x1a,0x18,0x16,0x15,0x13,0x11,0x10,0x0e,0x0d,0x0b,0x0a,0x09,0x08,0x07,0x

15、06,0x05,0x04,0x03,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0d,0x0e,0x10,0x11,0x13,0x15,0x16,0x18,0x1a,0x1c,0x1e,0x20,0x22,0x25,0x27,0x29,0x2b,0x2e,0x30,0x33,0x35,0x38,0x3a,0x3d,0x40,0x43,0x45,0x48,0x4c,0x

16、4e,0x51,0x55,0x57,0x5a,0x5d,0x60,0x63,0x66,0x69,0x6c,0x6f,0x72,0x76,0x79,0x7c,0x80;void start_i2c()SDA=1;_Nop();SCL=1;_Nop(); _Nop(); _Nop(); _Nop();_Nop();SDA=0;_Nop();_Nop();_Nop();_Nop();_Nop();SCL=0;_Nop();_Nop(); void SendByte(unsigned char c) unsigned char BitCnt; for(BitCnt=0;BitCnt8;BitCnt+)

17、 /*要傳送的數據長度為8位*/ if(c 0; i-) for(j = 200; j 0; j-);void ledshow(unsigned int f,unsigned int i)unsigned int LedOut6; LedOut3=Disp_Tabf%10000/1000; LedOut2=Disp_Tabf%1000/100; LedOut1=Disp_Tabf%100/10; LedOut0=Disp_Tabf%10; LedOut4=Disp_Tabf%100000/10000; LedOut5=Disp_Tabwave%2; P0 = LedOuti; P1 = dis

18、pbiti; void main() unsigned int ge,shi,bai,qian,wan; EA=1; ET0=1; ET1=1; TMOD=0x11; TR0=1;TR1=1; TH0=0xfc; TL0=0x17; TH0=0xfc; TL0=0x17; TH1=0xff; Tl1=0xf5; start_i2c(); SendByte(0x90); SendByte(0x40); while(1) if(k1=0) delay(50); if(k1=1) wave+; if(k2=0) delay(50); if(k2=1) ge+; if(ge9)&(ge=18)f=f-1;else ge=0; if(k3=0) delay(50); if(k3=1) shi+; if(shi9)&(shi=18)f=f-10;else shi=0; if(k4=0) delay(50); if(k4=1) bai+; if(bai9)&(bai=18)f=f-100;else bai=0; if(k5=0) delay(50); if(k5=1) qian+; if(qian9)&(qian=18)f=f-1000;else qian=0; if(k6=0) delay(50); if(k6=1) wan+; if(wan9)&(wan

溫馨提示

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

評論

0/150

提交評論