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