一種基于DDS和Qt的“所見(jiàn)即所得”波形發(fā)生器
(3)6 B只使用了最低位,為1啟動(dòng)DDS,為0則停止DDS。
(4)地址7是一個(gè)虛地址,并不對應著(zhù)實(shí)際的物理寄存器,而是與相位累加器組合指向RAM的某一個(gè)單元,通過(guò)對地址7的寫(xiě)操作就間接的實(shí)現了對整個(gè)RAM的操作,這樣大大簡(jiǎn)化了對DDS的控制操作。
1.3 電平偏移及放大電路
電平偏移及放大電路用于消除輸出信號中疊加的無(wú)效直流分量(允許有效直流量輸出)和調整信號增益,其電路圖如圖2所示。本文引用地址:http://dyxdggzs.com/article/187626.htm
根據圖2電路有:
式中:Rv是R4兩部分的并聯(lián)電阻,當
2 Qt程序設計
2.1 GUI設計
GUI(圖形用戶(hù)界面)是人機交互的窗口,GUI的設計直接關(guān)系到產(chǎn)品的可操作性,是軟件設計中非常重要部分??紤]到觸摸屏面板的空間有限,因此控件(Widgets)的設計盡量緊湊。該系統的GUI設計見(jiàn)圖3。
左側為工具欄,右側黃色區域為繪圖區。繪圖區提供了滾動(dòng)條,用于繪制超出屏幕范圍的波形??梢岳L制較長(cháng)的序列信號。工具欄從上到下分為繪圖模式選擇區,波形輸出設定區,時(shí)間設定區及清屏和退出按鈕。波形的繪制只允許從左向右進(jìn)行,一個(gè)時(shí)刻只對應一個(gè)數據點(diǎn);已繪制波形允許修改,修改過(guò)程中自動(dòng)變成紅色,修改完畢自動(dòng)變成默認顏色。
2.2 Qt編程原理和方法
Qt程序設計采用面向對象和事件驅動(dòng)的方法,整個(gè)GUI程序劃分為兩個(gè)類(lèi),其中主窗口為一個(gè)類(lèi),類(lèi)名為MainWindow,繼承自Qt的QMa-inWindow類(lèi),它提供了工具條(toolbar)和一個(gè)主窗口(mainwindow);另一個(gè)類(lèi)是DrawWidget,提供了一個(gè)繪圖區域,有4種事件,分別為觸摸筆按下(mousePressEvent),移動(dòng)(mouseMoveEvent),松開(kāi)(mouseReleaseEvent)和繪圖區重繪事件(paintEvent)。同時(shí)提供了處理波形的函數waveProcess和調用底層驅動(dòng)的接口。滾動(dòng)條是通過(guò)QScrollView類(lèi)提供的視圖功能來(lái)實(shí)現的。延遲輸出功能通過(guò)Qtimer類(lèi)來(lái)實(shí)現,延遲范圍0~999 s。觸摸筆的3個(gè)事件的發(fā)生順序和處理過(guò)程見(jiàn)圖4。
評論