當前位置:編程學習大全網 - 編程語言 - 單片機編程顯示波形

單片機編程顯示波形

我確實有上位機的程序,但是我的采集是基於單片機STC12C5A32S2,計算機內部AD。

我的編程思路:單片機連續采集壹批數據,當然采集周期要可調,然後發送給上位機。

采集時不要發送,發送時不要采集上位機,接收數據時什麽都不做,接收數據後畫圖。

這不會丟失數據。

雖然數據是間斷的,但波形是連續的。雖然是壹幀壹幀的間歇,但是1秒更新幾個畫面,所以算是實時的。

上位機,單片機,程序都很長,只貼關鍵部分。

上位機的繪圖程序如下:inbuff是接收到的數據。

畫壹個網格

對於i = 0到40步1 '畫壹條水平線。

y1 = 100 + i * 200

圖片1。行(60,y 1)-步(10240,0),QBColor (6)'黃色。

接下來我

對於i = 1到52步1’畫壹條垂直線。

x1 = 60 + i * 200

圖片1。線(x1,100)-步(0,8000),QB顏色(6)'黃色。

接下來我

圖片1。線(60,4100)-(10500,4100),QBColor (9)'原點到X軸終點為藍色。

圖片1。線步(-150,-40),QBColor (9)'箭頭

圖片1。線(10500,8100)-步(-150,40),QB顏色(9)'箭頭

圖片1。Line (60,8100)-(60,0),QB color(9)' Y軸從底部到頂部的終點。

圖片1。線步(-40,100),QBColor (9)'箭頭

圖片1。線(60,0)-步(40,100),QB顏色(9)'箭頭

寫橫坐標

圖片1。PSet (10150,3900)

圖片1。打印“t”

圖片1。PSet (10120,4080)

圖片1。打印“(毫秒)”

寫縱坐標

圖片1。PSet (100,0)

圖片1。打印“V”

根據兩點連線原理畫波形。

對於i = 0到(ll - 1)

VV1 = inbuff(i)

X(i) = x0 + i * 100

y(i) = y0 - 4000 * VV1 / 256

x(I+1)= x0+(I+1)* 100

VV2 = inbuff(i + 1)

y(i + 1) = y0 - 4000 * VV2 / 256

圖片1。DrawWidth = 2

圖片1。Line (x (i),y (i))-(x (i+1),y (i+1)),QBColor (11)'青色。

接下來我

TX-1C實驗板上的單片機主程序如下:KEY的值用來調整采集的延遲時間以適應不同的頻率,圖紙在12864上,可以省略。

LCD _ inital();//LCD初始化

inits com();//串口初始化

diola = 1;//關閉數碼管

while(key = = 16){ key scan();}//等待按鍵被按下。

開關(鑰匙)

{

情況0:m = 9;led 2 = 0;打破;

案例1:m = 27;led 3 = 0;打破;

情況二:m = 61;led 4 = 0;打破;

案例四:m = 166;led 5 = 0;打破;

默認:break

}

while(1)

{

collector dot();//收集256個數據。

clear();//清除屏幕

draw picture();//繪圖

tr 1 = 1;

for(I = 0;我& lt256;i++)

{

send(tempdate[I]);//發送到主機

}

tr 1 = 0;

delay _ 500 ms();//這個時間不是500ms,在100-500內調整。雖然上位機處理速度很快,

//但是需要壹些時間,刷新太快圖形會閃爍。

//對於低頻,采集256個數據需要很長時間,這個時間間隔可以短壹些。

}

  • 上一篇:2013大學生數學建模B題編程
  • 下一篇:求c++進程隱藏源碼
  • copyright 2024編程學習大全網