![基于51單片機函數(shù)信號發(fā)生器設計_第1頁](http://file.renrendoc.com/FileRoot1/2015-5/27/fa38a889-cb1c-433f-9b32-2f86231246bb/fa38a889-cb1c-433f-9b32-2f86231246bb1.gif)
![基于51單片機函數(shù)信號發(fā)生器設計_第2頁](http://file.renrendoc.com/FileRoot1/2015-5/27/fa38a889-cb1c-433f-9b32-2f86231246bb/fa38a889-cb1c-433f-9b32-2f86231246bb2.gif)
![基于51單片機函數(shù)信號發(fā)生器設計_第3頁](http://file.renrendoc.com/FileRoot1/2015-5/27/fa38a889-cb1c-433f-9b32-2f86231246bb/fa38a889-cb1c-433f-9b32-2f86231246bb3.gif)
![基于51單片機函數(shù)信號發(fā)生器設計_第4頁](http://file.renrendoc.com/FileRoot1/2015-5/27/fa38a889-cb1c-433f-9b32-2f86231246bb/fa38a889-cb1c-433f-9b32-2f86231246bb4.gif)
![基于51單片機函數(shù)信號發(fā)生器設計_第5頁](http://file.renrendoc.com/FileRoot1/2015-5/27/fa38a889-cb1c-433f-9b32-2f86231246bb/fa38a889-cb1c-433f-9b32-2f86231246bb5.gif)
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
摘 要 : 本系統(tǒng) 利用單片機 AT89S52 采用程序設計方法產(chǎn)生鋸齒波、正弦波、矩形波三種波形,再通過 D/A 轉換器 DAC0832 將數(shù)字信號轉換成模擬信號,濾波放大,最終由示波器顯示出來 , 能產(chǎn) 1Hz 3kHz 的波形。 通過鍵盤來控制三種波形的類型選擇、頻率變化,并通過 液晶屏 1602 顯示其各自的類型以及數(shù)值,系統(tǒng)大致包括信號發(fā)生部分、數(shù) /模轉換部分以及 液晶 顯示部分三部分,其中尤其對數(shù) /模轉換部分和波形產(chǎn)生和變化部分進行詳細論述。 關鍵詞 : 單片機 AT89S52、 DAC0832、 液晶 1602 Abstract: this system capitalize on AT89s52, it makes use of central processor to generate three kinds of waves, they are triangle wave, and use D/A conversion module, wave generate module and liquid crystal display of 1602, it can have the 1Hz-3KHz profile. In this system it can control wave form choosing, frequency, range,can have the sine wave, the square-wave, the triangular wave. Simultaneously may also take the frequency measurement frequency,and displays them through liquid crystal display of 1602. this design includes three modules. They are D/A conversion module, wave generate module and liquid crystal display of LED module. In this design, the wave generator into wave form module and D/A conversion module are discussed in detail. key word: AT89S52, DAC0832, liquid crystal 1602. 目錄 1. 系統(tǒng)設計 1.1 設計要求 1.2 方案設計與論證 1.2.1 信號發(fā)生電路方案論證 1.2.2 單片機的 選擇論證 1.2.3 顯示方案論證 1.2.4 鍵盤方案論證 1.3 總體 系統(tǒng)設計 1.4 硬件實現(xiàn)及單元電路設計 1.4.1 單片機最小系統(tǒng)的設計 1.4.2 波形產(chǎn)生模塊設計 1.4.3 顯示模塊的設計 1.4.4 鍵盤模塊的設計 1.5 軟件設計流程 1.6 源程序 2. 輸出波形的種類與頻率的測試 2.1 測試 儀器 及測試說明 2.2 測試 結果 3. 設計心的及體會 4. 附錄 4.1 參考文獻 4.2 附圖 1、 系統(tǒng)設計 經(jīng)過考慮,我們確定方案如下: 利用 AT89S52 單片機采用程序設計方法產(chǎn)生鋸齒波、正弦波、矩形波三種波形,再通過 D/A 轉換器 DAC0832 將數(shù)字信號轉換成模擬信號,濾波放大,最終由示波器顯示出來 , 通過鍵盤來控制三種波形的類型選擇、頻率變化, 最終輸出顯示其各自的類型以及數(shù)值。 1.1、 設計要求 1)、利用單片機采用軟件設計方法產(chǎn)生三種波形 2)、三種波形可 通過鍵盤 選擇 3)、波形頻率可調(diào) 4)、需顯示 波形 的種類 及其平率 1.2 方案設計與論證 1.2.1 信號發(fā)生電路方案論證 方案一:通過單片機控制 D/A,輸出三種波形。此方案輸出的波形不夠穩(wěn)定,抗干擾能力弱,不易調(diào)節(jié)。 但此方案電路簡單、成本低。 方案二:使用傳統(tǒng)的鎖相頻率合成方法。通過芯片 IC145152,壓控振 蕩器 搭接的鎖相環(huán)電路輸出穩(wěn)定性極好的正弦波,再利用過零 比較器 轉換成方波,積分電路轉換成三角波。此方案,電路復雜,干擾因素多,不易實現(xiàn)。 方案三:利用 MAX038 芯片組成的電路輸 出波形。 MAX038 是精密高頻波形產(chǎn)生電路,能夠產(chǎn)生準確的三角波、方波和正弦波三種周期性波形。 但此方案成本高,程序復雜度高。 以上三種方案綜合考慮,選擇方案 一 。 1.2.2 單片機的選擇論證 方案一: AT89S52 單片機是一種高性能 8 位單片微型計算機。它把構成計算機的中央 處理器 CPU、存儲器、寄存器、 I/O 接口制作在一塊集成電路芯片中,從而構成較為完整的計算機 、而且其價格便宜。 方案二: C8051F005 單片機是完全集成的 混合信號 系統(tǒng)級芯片,具有與8051 兼容的微 控制器 內(nèi)核,與 MCS-51 指令 集完全兼容。除了具有標準 8052 的數(shù)字外設部件,片內(nèi)還集成了數(shù)據(jù)采集和控制系統(tǒng)中常用的模擬部件和其他數(shù)字外設及功能部件,而且執(zhí)行速度快。 但其價格較貴 以上兩種方案綜合考慮,選擇方案 一 1.2.3 顯示方案論證 方案一:采用 LED 數(shù)碼管。 LED 數(shù)碼管由 8 個發(fā)光二極管組成,每只數(shù)碼管輪流顯示各自的字符。由于人眼具有視覺暫留特性,當每只數(shù)碼管顯示的時間間隔小于 1/16s 時人眼感覺不到閃動,看到的是每只數(shù)碼管常亮。使用數(shù)碼管顯示編程較易, 但要顯示內(nèi)容多,而且數(shù)碼管不能顯示字母 。 方案二:采用 LCD 液晶顯示器 1602。 其 功率小,效果明顯, 顯示編程容易控制,可以顯示字母 。 以上兩種方案綜合考慮,選擇方案 二 。 1.2.4 鍵盤方案論證 方案一:矩陣式鍵盤。矩陣式鍵盤的按鍵觸點接于由行、列母線構成的矩陣電路的交叉處。當鍵盤上沒有鍵閉合時,所有的行和列線都斷開,行線都呈高電平。當某一個鍵閉合時,該鍵所對應的行線和列線被短路。 方案二:編碼式鍵盤。編碼式鍵盤的按鍵觸點接于 74LS148 芯片。當鍵盤上沒有閉合時,所有鍵都斷開,當某一鍵閉合時,該鍵對應的編碼由 74LS148輸出 。 以上兩種方案綜合考慮, 選擇方案 一 。 1.3 總體系統(tǒng)設計 該系統(tǒng)采用單片機作為數(shù)據(jù)處理及控制核心,由單片機完成人機界面、系統(tǒng)控制 、信號 的采集分析 以及信號 的處理和變換,采用按鍵輸入,利用 液晶 顯示電路輸出數(shù)字顯示的方案。將設計任務分解為按鍵電路、 液晶 顯示電路等模塊。圖( 1) 為系統(tǒng)的總體框圖 圖( 1) 總體方框圖 1.4 硬件實現(xiàn)及單元電路設計 1.4.1單片機 最小系統(tǒng)的 設計 89C51 是片內(nèi)有 ROM/EPROM 的單片機,因此,這種芯片構成的最小系統(tǒng)簡單可靠。用 80C51 單片機構成最小應用 系統(tǒng)時,只要將單片機接上時鐘電路和復位電路即可,如圖 ( 2) 89C51 單片機最小系統(tǒng)所示。由于集成度的限制,最小應用系統(tǒng)只能用作一些小型的控制單元。其應用特點: (1) 有可供用戶使用的大量 I/O 口線。 (2) 內(nèi)部存儲器容量有限。 (3) 應用系統(tǒng)開發(fā)具有特殊性。 圖 ( 2) 89C51 單片機最小系統(tǒng) 1.4.2 波形產(chǎn)生模塊設計 由單片機采用編程方法產(chǎn)生三種波形、通過 DA轉換模塊 DAC0832 在進過濾波放大之后輸出。其電路圖如下: 圖( 3)波形產(chǎn)生電路 如上圖所示,單片機 的 P0 口連接 DAC0832 的八位數(shù)據(jù)輸入端, DAC0832 的輸出端接放大器,經(jīng)過放大后輸出所要的波形。 DAC0832 的為八位數(shù)據(jù)并行輸入的, 其結構圖如下: 圖( 4) DAC0832 的內(nèi)部結構 1.4.3 顯示模塊的設計 通過液晶 1602 顯示輸出的波形、頻率,其電路圖如下: 圖( 5)液晶顯示 如上圖所示, 1602 的八位數(shù)據(jù)端接單片機的 P1口,其三個使能端 RS、 RW、 E分別接單片機的 P3.2 P3.4。 通過軟件控制液晶屏可以顯示 波 形 的種類 以及波形的頻率。 1.4.4 鍵盤顯示模塊的設計 本系統(tǒng)采用獨立鍵盤,其連接電路圖如下: 圖( 6)鍵盤 圖中鍵盤獨立鍵盤引出的八跟線分別接單片機的 P2 口,只用其第四列,因此在程序初始化時 P2.7 腳給低電平 。如圖開關 3 用來切換輸出波形、開關 7和8用來調(diào)節(jié)頻率的加減。當按開關 7時輸出波形的頻率增加,按開關 8時輸出波形的頻率減小 。 1.5 軟件設計流程 本系統(tǒng)采用 AT89S52 單片機,用編程的方法來產(chǎn)生三種波形,并通過編程 來切換三種波形以及波形頻率的改變。 具體功能 有:( 1)各個 波形 的切換;( 2)各種參數(shù)的設定;( 3)頻率 增減 等。 軟件調(diào)通后,通過 編程器 下載到 AT89S52 芯片中,然后插到系統(tǒng)中即可獨立完成所有的控制。 軟件的流程圖如下: 圖( 7)程序流程圖 1.6 源程序 #include #define uchar unsigned char #define uint unsigned int sbit lcdrw=P33; sbit lcdrs=P32; sbit lcde=P34; sbit d=P27; sbit s1=P20; sbit s2=P21; sbit s3=P22; sbit cs=P35; sbit wr=P36; uchar s1num,a,ys,j; uint fre; uchar code tosin256= 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,0xff, 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,0xde,0xdd,0xda, 0xd8,0xd6,0xd4,0xd1,0xcf,0xcc,0xca,0xc7,0xc5,0xc2,0xbf,0xbc, 0xba,0xb7,0xb4,0xb1,0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x99, 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,0x06, 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,0x4e, 0x51,0x55,0x57,0x5a,0x5d,0x60,0x63,0x66 ,0x69,0x6c,0x6f,0x72, 0x76,0x79,0x7c,0x80 ;/*正弦波碼 */ void delay(uint z) /延時子程序 uchar i,j; for(i=z;i0;i-) for(j=110;j0;j-); void delay1(uint y) uint i; for(i=y;i0;i-); void write_com(uchar com) /1602 寫指令 lcdrs=0; P1=com; delay(5); lcde=1; delay(5); lcde=0; void write_data(uchar date) /1602 數(shù)據(jù) lcdrs=1; P1=date; delay(5); lcde=1; delay(5); lcde=0; void init() /初始化 lcdrw=0; lcde=0; wr=0; cs=0; write_com(0x38); write_com(0x0c); write_com(0x06); write_com(0x01); write_com(0x80+0x00); write_data(0x77); /寫 wave: write_data(0x61); write_data(0x76); write_data(0x65); write_data(0x3a); write_com(0x80+0x40); /寫 f: write_data(0x66); write_data(0x3a); void write_f(uint date) /寫頻率 uchar qian,bai,shi,ge; qian=date/1000; bai=date/100%10; shi=date/10%10; ge=date%10; write_com(0x80+0x42); write_data(0x30+qian); write_data(0x30+bai); write_data(0x30+shi); write_data(0x30+ge); write_data(0x48); write_data(0x5a); void xsf() /顯示頻率 if(s1num=1) fre=(1000/(9+3*ys); write_f(fre); if(s1num=2) fre=(100000/(3*ys); write_f(fre); if(s1num=3) fre=(1000/(15+3*ys); write_f(fre); void keyscanf() d=0; if(s1=0) delay(5); if(s1=0) while(!s1); s1num+; if(s1num=1) ys=0; write_com(0x80+0x05); write_data(0x73); /寫 sine: write_data(0x69); write_data(0x6e); write_data(0x65); write_data(0x20); write_data(0x20); if(s1num=2) ys=10; write_com(0x80+0x05); write_data(0x73); /寫 squrae write_data(0x71); write_data(0x75); write_data(0x61); write_data(0x72); write_data(0x65); if(s1num=3) ys=0; write_com(0x80+0x05); /train write_data(0x74); write_data(0x72); write_data(0x61); write_data(0x69); write_data(0x6e); write_data(0x20); if(s1num=4) s1num=0; P1=0; write_com(0x80+0x05); write_data(0x20); write_data(0x20); write_data(0x20); write_data(0x20); write_data(0x20); write_data(0x20); write_com(0x80+0x42); write_data(0x20); write_data(0x20); write_data(0x20); write_data(0x20); write_data(0x20); write_data(0x20); if(s2=0) delay(5); if(s2=0) while(!s2); ys+; if(s3=0) delay(5); if(s3=0) while(!s3); ys-; void main() init(); while(1) keyscanf(); if(s1num=1) /正弦波 / for(j=0;j255;j+) P0=tosinj; delay1(ys); if(s1num=2) /方波 / P0=0xff; delay1(ys); P0=0; delay1(ys); if(s1num=3) /三角波 / if(a128) P0=a; delay1(ys); else P0=255-a; delay1(ys); a+; if(!(s1&s2&s3) xsf(); 2、 輸出波形的種類與頻率的測試 2.1、測量儀器 及 測試說明 測量儀器: 穩(wěn)壓電源、示波器、數(shù)字萬用表。 測量說明: 正弦波、矩形波、三角 波信號 的輸出,通過 對獨立鍵盤來實現(xiàn)其的不同波形的輸出 以及其頻率的改變 。 2.2 測試過程 當程序下進去時經(jīng)過初始
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國全銅水槽落水頭市場調(diào)查研究報告
- 2025至2031年中國音頻電療機行業(yè)投資前景及策略咨詢研究報告
- 2025年窗配件項目可行性研究報告
- 2025至2031年中國電腦花織帶行業(yè)投資前景及策略咨詢研究報告
- 2025至2031年中國無紡紙行業(yè)投資前景及策略咨詢研究報告
- 2025年掛鎖項目可行性研究報告
- 2025年奧運熒光筆項目可行性研究報告
- 2025至2031年中國全自動圓角切斷機行業(yè)投資前景及策略咨詢研究報告
- 2025年便攜式酒精檢測儀項目可行性研究報告
- 2025年T/C染色線卡項目可行性研究報告
- 中考物理復習備考策略
- 博士后進站申請書博士后進站申請書八篇
- 小報:人工智能科技科學小報手抄報電子小報word小報
- GB/T 41509-2022綠色制造干式切削工藝性能評價規(guī)范
- 全面介紹現(xiàn)貨中遠期交易
- 公安系防暴安全03安檢
- 孫權勸學教案全國一等獎教學設計
- 企業(yè)生產(chǎn)現(xiàn)場6S管理知識培訓課件
- 五年級下冊數(shù)學課件 第10課時 練習課 蘇教版(共11張PPT)
- 電梯口包邊施工方案正式
- 三年級道德與法治下冊我是獨特的
評論
0/150
提交評論