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