用單片機(jī)制作的波形發(fā)生器_第1頁(yè)
用單片機(jī)制作的波形發(fā)生器_第2頁(yè)
用單片機(jī)制作的波形發(fā)生器_第3頁(yè)
用單片機(jī)制作的波形發(fā)生器_第4頁(yè)
用單片機(jī)制作的波形發(fā)生器_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、用單片機(jī)制作的波形發(fā)生器波形發(fā)生器的技術(shù)指標(biāo):(1)波形類型:方型、正弦波、三角波、鋸齒波;(2)幅值電壓:1V、2V、3V、4V、5V;(3)頻率值:10Hz、20HZ、50HZ、100HZ、200HZ、500HZ、1KHZ;(4)輸出極性:雙極性操作設(shè)計(jì)1、機(jī)器通電后,系統(tǒng)進(jìn)行初始化,LED在面板上顯示6個(gè)0,表示系統(tǒng)處于初始狀態(tài),等待用戶輸入設(shè)置命令,此時(shí),無(wú)任何波形信號(hào)輸出。 2、用戶按下“F”、“V”、“W”,可以分別進(jìn)入頻率,幅值波形設(shè)置,使系統(tǒng)進(jìn)入設(shè)置狀態(tài),相應(yīng)的數(shù)碼管顯示“一”,此時(shí),按其它鍵,無(wú)效;3、在進(jìn)入某一設(shè)置狀態(tài)后,輸入09等數(shù)字鍵,(數(shù)字鍵僅在設(shè)置狀態(tài)時(shí),有效)為欲

2、輸出的波形設(shè)置相應(yīng)參數(shù),LED將參數(shù)顯示在面板上;4、如果在設(shè)置中,要改變已設(shè)定的參數(shù),可按下“CL”鍵,清除所有已設(shè)定參數(shù),系統(tǒng)恢復(fù)初始狀態(tài),LED顯示6個(gè)0,等待重新輸入命令;5、當(dāng)必要的參數(shù)設(shè)定完畢后,所有參數(shù)顯示于LED上,用戶按下“EN”鍵,系統(tǒng)會(huì)將各波形參數(shù)傳遞到波形產(chǎn)生模塊中,以便控制波形發(fā)生,實(shí)現(xiàn)不同頻率,不同電壓幅值,不同類型波形的輸出;6、用戶按下“EN”鍵后,波形發(fā)生器開(kāi)始輸出滿足參數(shù)的波形信號(hào),面板上相應(yīng)類型的運(yùn)行指示燈閃爍,表示波形正在輸出,LED顯示波形類型編號(hào),頻率值、電壓幅值等波形參數(shù);7、波形發(fā)生器在輸出信號(hào)時(shí),按下任意一個(gè)鍵,就停止波形信號(hào)輸出,等待重新設(shè)置

3、參數(shù),設(shè)置過(guò)程如上所述,如果不改變參數(shù),可按下“EN”鍵,繼續(xù)輸出原波形信號(hào);8、要停止波形發(fā)生器的使用,可按下復(fù)位按鈕,將系統(tǒng)復(fù)位,然后關(guān)閉電源。硬件組成部分通過(guò)綜合比較,決定選用獲得廣泛應(yīng)用,性能價(jià)格高的常用芯片來(lái)構(gòu)成硬件電路。單片機(jī)采用MCS-51系列的89C51(一塊),74LS244和74LS373(各一塊),反相驅(qū)動(dòng)器 ULN2803A(一塊),運(yùn)算放大器 LM324(一塊)波形發(fā)生器的硬件電路由單片機(jī)、鍵盤(pán)顯示器接口電路、波形轉(zhuǎn)換(D/ A)電路和電源線路等四部分構(gòu)成。1.單片機(jī)電路功能:形成掃描碼,鍵值識(shí)別,鍵功能處理,完成參數(shù)設(shè)置;形成顯示段碼,向LED顯示接口電路輸出;產(chǎn)生

4、定時(shí)中斷;形成波形的數(shù)字編碼,并輸出到D/A接口電路;如電路原理圖所示: 89C51的P0口和P2口作為擴(kuò)展I/O口,與8255、0832、74LS373相連接,可尋址片外的寄存器。單片機(jī)尋址外設(shè),采用存儲(chǔ)器映像方式,外部接口芯片與內(nèi)部存儲(chǔ)器統(tǒng)一編址,8951提供16根地址線P0(分時(shí)復(fù)用)和P2,P2口提供高8位地址線,P0口提供低8位地址線。P0口同時(shí)還要負(fù)責(zé)與8255,0832的數(shù)據(jù)傳遞。P2.7是8255的片選信號(hào),P2.6是0832(1)的片選,P2.5是0832(2)的片選,低電平有效,P0.0、P0.1經(jīng)過(guò)74LS373鎖存后,送到8255的A1、A2作,片內(nèi)A口,B口,C口,控

5、制口等寄存器的字選。89C51的P1口的低4位連接4只發(fā)光三極管,作為波形類型指示燈,表示正在輸出的波形是什么類型。單片機(jī)89C51內(nèi)部有兩個(gè)定時(shí)器/計(jì)數(shù)器,在波形發(fā)生器中使用T0作為中斷源。不同的頻率值對(duì)應(yīng)不同的定時(shí)初值,定時(shí)器的溢出信號(hào)作為中斷請(qǐng)求??刂贫〞r(shí)器中斷的特殊功能寄存器設(shè)置如下:定時(shí)控制寄存器TCON()工作方式選擇寄存器(TMOD)()中斷允許控制寄存器(IE)()2、鍵盤(pán)顯示器接口電路功能:驅(qū)動(dòng)6位數(shù)碼管動(dòng)態(tài)顯示;提供響應(yīng)界面;掃面鍵盤(pán);提供輸入按鍵。由并口芯片8255,鎖存器74LS273,74LS244,反向驅(qū)動(dòng)器ULN2803A,6位共陰極數(shù)碼管(LED)和4×

6、;4行列式鍵盤(pán)組成。8255的C口作為鍵盤(pán)的I/O接口,C口的低4位輸出到掃描碼,高4位作為輸入行狀態(tài),按鍵的分布如圖所示。8255的A口作為L(zhǎng)ED段碼輸出口,與74LS244相連接,B口作為L(zhǎng)ED的位選信號(hào)輸出口,與ULN2803A相連接。8255內(nèi)部的4個(gè)寄存器地址分配如下:控制口:7FFFH , A口:7FFFCH , B口:7FFDH ,  C口:7FFEH3、D/A電路功能:將波形樣值的數(shù)字編碼轉(zhuǎn)換成模擬值;完成單極性向雙極性的波形輸出;構(gòu)成由兩片0832和一塊LM324運(yùn)放組成。0832(1)是參考電壓提供者,單片機(jī)向0832(1)內(nèi)的鎖存器送數(shù)字編碼,不同的編碼會(huì)產(chǎn)生不

7、同的輸出值,在本發(fā)生器中,可輸出1V、2V、3V、4V、5V等五個(gè)模擬值,這些值作為0832(2)的參考電壓,使0832(2)輸出波形信號(hào)時(shí),其幅度是可調(diào)的。0832(2)用于產(chǎn)生各種波形信號(hào),單片機(jī)在波形產(chǎn)生程序的控制下,生成波形樣值編碼,并送到0832(2)中的鎖存器,經(jīng)過(guò)D/A轉(zhuǎn)換,得到波形的模擬樣值點(diǎn),假如N個(gè)點(diǎn)就構(gòu)成波形的一個(gè)周期,那么0832(2)輸出N個(gè)樣值點(diǎn)后,樣值點(diǎn)形成運(yùn)動(dòng)軌跡,就是波形信號(hào)的一個(gè)周期。重復(fù)輸出N個(gè)點(diǎn)后,由此成第二個(gè)周期,第三個(gè)周期這樣0832(2)就能連續(xù)的輸出周期變化的波形信號(hào)。運(yùn)放A1是直流放大器,運(yùn)放A2是單極性電壓放大器,運(yùn)放A3是雙極性驅(qū)動(dòng)放大器,

8、使波形信號(hào)能帶得起負(fù)載。地址分配:0832(1):DFFFH,0832(2):BFFFH4、電源電路:功能:為波形發(fā)生器提供直流能量;構(gòu)成由變壓器、整流硅堆,穩(wěn)壓塊7805組成。220V的交流電,經(jīng)過(guò)開(kāi)關(guān),保險(xiǎn)管(1.5A/250V),到變壓器降壓,由220V降為10V,通過(guò)硅堆將交流電變成直流電,對(duì)于諧波,用4700F的電解電容給予濾除。為保證直流電壓穩(wěn)定,使用7805進(jìn)行穩(wěn)壓。最后,5V電源配送到各用電負(fù)載。軟件結(jié)構(gòu)在波形產(chǎn)生器系統(tǒng)中,程序由人機(jī)交互模塊和波形產(chǎn)生模塊組成,人機(jī)交互模塊又可分成鍵盤(pán)子模塊和LED子模塊。人機(jī)交互模塊作為主程序,管理單片機(jī)系統(tǒng),波形發(fā)生模塊作為中斷服務(wù)程序,實(shí)

9、現(xiàn)系統(tǒng)的波形輸出模塊又可分成鍵盤(pán)子模塊和LED子模塊。人機(jī)交互模塊作為主程序,管理單片機(jī)系統(tǒng),波形發(fā)生模塊作為中斷服務(wù)程序,實(shí)現(xiàn)系統(tǒng)的波形輸出。如圖(2)所示:(A)是波形發(fā)生器的主流圖,由系統(tǒng)初始化和人機(jī)交互模塊組成,其中LED顯示子模塊和鍵盤(pán)輸入處理子模塊占用單片機(jī)主要處理時(shí)間,單片機(jī)反復(fù)運(yùn)行該模塊程序人機(jī)交互模塊相當(dāng)于系統(tǒng)的監(jiān)控程序;(B)是定時(shí)中斷服務(wù)流程圖,波形發(fā)生模塊放置在定時(shí)中斷服務(wù)程序中,系統(tǒng)每隔一定時(shí)間,產(chǎn)生一個(gè)定時(shí)中斷,暫停主流程運(yùn)行,轉(zhuǎn)到定時(shí)中斷服務(wù)程序起始處,執(zhí)行波形發(fā)生模塊,該模塊輸出一個(gè)樣值后,結(jié)束此次中斷服務(wù),返回主流程斷點(diǎn)處繼續(xù)運(yùn)行。反復(fù)多次定時(shí)中斷服務(wù),從而完

10、成波形生成。片內(nèi)RAM有128B的容量, 30H3FH定義為堆棧區(qū),40H45H定義為L(zhǎng)ED顯示緩沖儲(chǔ)存區(qū),40H存放波形編號(hào),41H44H存放頻率值,45H存放參考電壓值,46H定義為設(shè)置標(biāo)志區(qū)。1、人機(jī)交互模塊()LED顯示子模塊在單片機(jī)內(nèi)部RAM中的40H45H是LED顯示器的顯示緩沖區(qū),40H的內(nèi)容送到左邊的第一只數(shù)碼管顯示,41H的內(nèi)容送左邊的第二只數(shù)碼管,45H的內(nèi)容送左邊的第六只數(shù)碼管(最后一位)。顯示緩沖區(qū)的內(nèi)容如何形成可以顯示的段碼呢?在設(shè)計(jì)中,我們采用查表的方式來(lái)形成。編寫(xiě)程序前,根據(jù)共陰極LED顯示器的工作原理,確定顯示數(shù)字(1、2、38、9)的段碼,將它們按大小順序編制

11、成顯示碼表,存于ROM中。在編程時(shí),可以由顯示緩沖區(qū)內(nèi)的數(shù)字,通過(guò)查表的方法得到相應(yīng)的段碼。顯示子模塊的程序流程圖如圖()所示。R1存位選信號(hào),R2存顯示次數(shù),R0存顯示緩沖區(qū)地址。程序執(zhí)行過(guò)程如下:?jiǎn)纹瑱C(jī)先向8255的PB口送位選信號(hào),修改R1中的內(nèi)容,形成下次位選信號(hào);從顯存取數(shù)字,通過(guò)查表,得到顯示段碼,送到8255的PC口;調(diào)用延時(shí)子程序,保持顯示;修改RO的內(nèi)容;判斷是否已執(zhí)行顯示6次,若不滿6次,轉(zhuǎn)到開(kāi)始處,重復(fù)執(zhí)行,若已執(zhí)行6次,則結(jié)束顯示。(2)鍵盤(pán)輸入處理子模塊在具體實(shí)現(xiàn)時(shí),鍵值識(shí)別部分作為主程序,鍵功能處理部分作為子程序,它們之間的關(guān)系是主程序調(diào)用子程序。鍵盤(pán)的工作過(guò)程:(

12、1)掃描鍵盤(pán),獲得列掃描碼和行狀態(tài)碼,從而確定被按下的按鍵的鍵值;(2)根據(jù)鍵值,通過(guò)散轉(zhuǎn)表,跳轉(zhuǎn)到相應(yīng)的鍵功能處理部分;(3)進(jìn)入鍵處理部分,完成鍵功能;(4)完成一次鍵輸入工作。通過(guò)鍵盤(pán)對(duì)單片機(jī)系統(tǒng)進(jìn)行設(shè)置,每按一次鍵,鍵盤(pán)都會(huì)有上述的處理過(guò)程,每次僅能完成一個(gè)鍵功能。在實(shí)際設(shè)置波形參數(shù)時(shí),一個(gè)參數(shù)需要多個(gè)鍵功能來(lái)實(shí)現(xiàn),那么相應(yīng)的鍵盤(pán)也要多次完成鍵值識(shí)別,跳轉(zhuǎn)鍵處理的工作過(guò)程。工作過(guò)程如圖()和圖()所示。各功能鍵處理,設(shè)計(jì)如下:“F”鍵的處理,進(jìn)入“KEY-F-PRO”子程序段,將設(shè)置標(biāo)志區(qū)(ROM46H)設(shè)為01H,表示是頻率參數(shù)設(shè)定;送42H到R5中,41H是頻率值顯示緩沖區(qū)首址;將

13、ROM中41H、42H、43H等存儲(chǔ)單元送#0AH,使LED顯示“-0”,最后退回到鍵盤(pán)主程序,處理流程圖(6)?!癡”鍵處理:將設(shè)置標(biāo)志區(qū)(ROM46H存儲(chǔ)單元),設(shè)為02H,表示是參考電壓設(shè)定;將ROM中46H存儲(chǔ)單元置為#0AH,使相應(yīng)位的LED顯示“-”。處理流程圖(7)?!癢”鍵處理,將設(shè)置標(biāo)志區(qū)設(shè)為03H,表示是波形編號(hào)設(shè)定;將40H存儲(chǔ)單元的內(nèi)容置#0AH,使相應(yīng)位的LED顯示“-”。處理流程圖(8)?!?9”鍵處理:首先查看設(shè)置標(biāo)志區(qū)46H的內(nèi)容,判斷有無(wú)設(shè)置,若有設(shè)置,則判斷是頻率設(shè)置,還是參考電壓設(shè)置,或者是波形編號(hào)設(shè)置,確定是某種設(shè)置,則進(jìn)入設(shè)定操作,即將數(shù)字(09)送到

14、顯存相應(yīng)的地址單元。如果無(wú)設(shè)置,則直接退回到主程序。處理流程圖(9)?!癈L”鍵處理:將顯示緩沖區(qū)ROM40H45H的內(nèi)容全部清零,使LED顯示“000000”;將設(shè)置標(biāo)志區(qū)ROM46H的內(nèi)空清零,使其處于“無(wú)設(shè)置”狀態(tài);將定時(shí)器TO的初值清零,并停止TO的定時(shí)運(yùn)行,使定時(shí)器TO不工作;之后,退回主程序,處理流程圖(10)?!癊N”鍵處理:首先檢查W、V、F等參數(shù)值是否已全部設(shè)置,如果已經(jīng)全部設(shè)置;(1)從ROM45H取出參考電壓值,通過(guò)查表,獲得電壓的數(shù)字編碼,送到0832(1),產(chǎn)生輸出,作為0832(2)參考電壓;(2)從ROM41H43H中取頻率值,判定該值,判定該值,根據(jù)判斷結(jié)果,進(jìn)入相應(yīng)的程序段,實(shí)現(xiàn)“頻率與定時(shí)初值的轉(zhuǎn)換”,完成TMOD的設(shè)定和初值設(shè)定;(3)開(kāi)啟定時(shí)中斷,向R6賦于樣值初始編號(hào);最后,退回到主程序,處理流程圖(11)2、波形產(chǎn)生模塊設(shè)計(jì)思想:(1)將一個(gè)周期T的信號(hào)分離成32個(gè)點(diǎn)(按X軸等分),每面點(diǎn)之間的時(shí)間間隔為T(mén),用單片機(jī)的定時(shí)器產(chǎn)生。(2)一個(gè)周期被分離成32個(gè)點(diǎn),對(duì)應(yīng)的三種波形的32個(gè)數(shù)據(jù)存放在以TAB1TAB3為起始地址的存儲(chǔ)器

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論