A. 如何獲取單片機發送來的串口數據並實時計算、顯示出來
用上位機程序處理就行了,串口通信。單片機、電路、計算機軟體可找我。
B. 單片機上的數據發送到電腦上的顯示
不知道你對單片機和電腦知識的掌握程度,我通俗點講一下:
硬體:
單片機和電腦都有串口,而且需要配置的東西也差不多。區別在於,單片機輸出的TTL電平,電腦輸出的是232信號。所以單片機需要再接一個232晶元(全雙工)轉換。
還有另一種簡單的方式單片機接一個RS485晶元(半雙工)。去市場買個USB轉485轉換線,裝上驅動,把USB插頭插到電腦上,就會虛擬一個串口出來。
軟體:
單片機軟體:先配置要串口的波特率、停止位、數據位、效驗方式等。然後把需要發送的數據依次放入串口緩沖寄存器。檢測到發送完畢標志之後再放入下一個數據。接收也是收到接收標志之後,從串口緩沖寄存器讀出數據就好了。因為單片機不同寄存器、標志的名字不同,具體操作有些差異,這里不細講了。
電腦軟體:最簡單的就是用串口助手。要注意的是一般的串口助手只支持4個埠。而虛擬串口排在4個以後。所以需要改下虛擬埠的編號。右擊我的電腦---管理-----計算機管理-----埠(com和LPT)---右擊一個虛擬串口---屬性----埠設置----高級----COM埠號選1-4,依次確定就好了。
如果你想做成專用軟體的話,可以先學慣用下VB最容易上手,而且網上常式也非常多。操作也類似單片機。先選擇埠配置好波特率什麼滴,打開埠。之後接收或者發送數據。
C. 怎麼將單片機收集的溫度數據顯示到電腦屏幕上
1,利用單片機的串口和單片機的串列介面相連,當然中然還有RS232轉換電路。
2,單片機編程,把想要發送的數據發送到PC上。
3,PC端要顯示數據,需要一個窗口,最簡單是利用「串口助手」軟體。
4,如果不想用上述該軟體,你可以用VB,VC等自己編一個上位機軟體。即可顯示你想要的數據。
D. 我想通過串口把51單片機和電腦連接起來,這樣就可以把單片機發送上來的數據在電腦上顯示出來
如果你只是簡單想看一下單片機與電腦的收發數據的話,不用自己寫那麼麻煩啊,上網下載一個「串口調試助手」就可以解決你的問題了。
如果你是工作需要的,可以用組態軟體,也可以自己寫,用VB會方便很多,用VC也行,用這兩個網上會有很多的資料和教程。
E. 51單片機的數據怎麼顯示於vs
1.先看一下顯示的結果:
在這里插入圖片描述
源代碼:
#include <reg51.h>
typedef unsigned int u16;
typedef unsigned char u8;
u8 code smg[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//共陰極
u16 num=2021;//要顯示的數字
/*延時函數*/
void delay(u16 i)
{
while(i--);
}
/*顯示函數*/
void display()
{
u16 x = 0;
while(1)
{
switch(x)
{
case 0:P2 = 0x0e;P0 = smg[num / 1000];break; //顯示2
case 1:P2 = 0x0d;P0 = smg[(num % 1000) / 100];break; //顯示0
case 2:P2 = 0x0b;P0 = smg[(num % 1000) % 100 / 10];break; //顯示2
case 3:P2 = 0x07;P0 = smg[num % 10]; break; //顯示1
}
delay(1000);//延時,增大延時我們可以看到數碼管是交替點亮的
x = ++x % 4;//取模,當x=4時,通過與4取模就讓x的值重新變回0
}
}
/*主函數*/
void main()
{
display();
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
2.如何在數碼管顯示小數點呢?
對與共陰極數碼管來說,直接將要顯示的數字與0x80相或
例如:
要想在數碼管上顯示數字2,對於本電路圖來說,直接讓P0=0x5b即可; 0x5b=01011011,
但怎麼顯示'2.'呢? 對於共陰極數碼管來說,只需要讓P0=0x5b | 0x80, 即P0=11011011,即點亮dp位
1
2
3
4
1
2
3
4
顯示結果:在這里插入圖片描述
源代碼:
#include <reg51.h>
typedef unsigned int u16;
typedef unsigned char u8;
u8 code smg[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//共陰極
u16 num=2021;//要顯示的數字
/*延時函數*/
void delay(u16 i)
{
while(i--);
}
/*顯示函數*/
void display()
{
u16 x = 0;
while(1)
{
switch(x)
{
case 0:P2 = 0x0e;P0 = smg[num / 1000]|0x80;break; //顯示2. 只修改了此語句
case 1:P2 = 0x0d;P0 = smg[(num % 1000) / 100];break; //顯示0
case 2:P2 = 0x0b;P0 = smg[(num % 1000) % 100 / 10];break; //顯示2
case 3:P2 = 0x07;P0 = smg[num % 10]; break; //顯示1
}
delay(1000);//延時,增大延時我們可以看到數碼管是交替點亮的
x = ++x % 4;//取模,當x=4時,通過與4取模就讓x的值重新變回0
}
}
/*主函數*/
void main()
{
display();
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
以上就是51單片機數碼管顯示數字及小數點了,但僅僅以共陰極數碼管為例,大家還可以思考一下如何用共陽極數碼管實現
proteus中數碼管: 7-SEG-MPX4 (CC是共陰極,CA是共陽極)
F. 單片機存儲的數據怎麼調用顯示
請參考
1、首先做一塊電路板(或者買一塊帶USB通訊的開發板),將PIC32的USB通訊管腳D+、D-通過USB座子引出來連接到電腦上。2、配置單片機USB模塊代碼程序,可以通過Harmony配置生成代碼。3、把程序下載到單片機,電腦的埠上識別出來,說明硬體連接成功。4、電腦會自動安裝USB驅動,也可以手動安裝,寫程序把采樣的數據發送到USB口。5、打開串口調試助手,讀取單片機USB介面輸出的數據,波特率可以設置到最大。
G. 組態王如何發送數據、如何接收單片機發送的數據組態王和單片機之間的地址是怎麼定義和連接的
首先要看你需要用什麼驅動設備,選准了驅動設備,設置好地址,就可以在數據詞典里設置變數,根據協議設置i/o變數,設置放送命令頻率,再在畫面輸出
H. 51單片機的數據怎麼顯示於vs
1、首先在VS中安裝C/C++ Extension Pack擴展和安裝Keil Assistant擴展。
2、其次安裝完成後點擊擴展設置。添加keil的可執行文件的路徑。
3、最後用vscode打開項目文件夾,即可在VS中顯示51單片機數據了。
I. 如何使pc機從串口讀取單片機數據並顯示之
首先硬體要有max232晶元做電平轉換
或者直接用pl2303做usb轉串口.
軟體要有一個串口調試工具.
至於程序就是
(1):設置串口相關寄存器
注意波特率設置
(2):把數據放在sbuf裡面
(3):檢查是否發送完畢沒完等待
發完了就繼續放
各種單片機設置方法不一樣就給你一個51
的程序你參考一下:
//wx原創
串口調試程序
向pc發送數據
用於調試觀察數據
#include
#include
sbit
k1=p10;
void
ckfszf(char
zf);
void
ckfszfc(char
fsgs,char
zfc[]);
bit
cksnbzw=0;
char
fsb[]={"abcdef"};
main()
{
pcon=0x80;
//串口設置
tmod=0x20;
//
以t1定時器為波特發生器
波特率:19200
th1=0xfd;
tl1=0xfd;
tr1=1;
scon=0x50;
//串口設置模式一完畢
while(1)
{
ti=1;
ckfszfc(6,fsb);
ckfszf('
');
ckfszfc(9,"1234567890");
ckfszf('
');
ckfszf('
');
ckfszf('
');
ckfszfc(12,"aabbccddeeffgg");
ckfszf('
');
while(1);
}
}
//字元
串口發送函數
由串口向外發送一個字元
//參數1:要發送字元
//返回值:無
//備注:
本函數內部檢查上次發送是否結束
//
全局初始化要求:ti=1
保證第一次進入此函數之前ti=1
void
ckfszf(char
zf)
{
while(ti==0);
//等待發送完畢
ti=0;
sbuf=zf;
}
//字元串
串口發送函數
由串口向外發送一個字元串
//參數1:要發送字元串個數
取值:0~255
//參數2:要發送字元串數組名
或字元串本身
//返回值:無
//備注:
本函數內部檢查上次發送是否結束
//
全局初始化要求:ti=1
保證第一次進入此函數之前ti=1
void
ckfszfc(uchar
fsgs,char
zfc[])
{
uchar
i;
cksnbzw=1;
for(i=0;i
評論
0
0
載入更多
J. 單片機如何實現多路模擬量的數據採集、顯示
普通單片機實現多路模擬量的數據採集、顯示需要:
外部連接一個多通道輸入的ADC晶元,單片機按照一定的周期驅動模擬開關切換到不同的模擬通道,設計模數轉換控制器的控製程序,可以進行定時模擬信號採集和顯示。
(10)組態怎樣顯示單片機的數據擴展閱讀:
單片機基本結構及作用:
1、運算器
運算器由運算部件——算術邏輯單元(Arithmetic & Logical Unit,簡稱ALU)、累加器和寄存器等幾部分組成。ALU的作用是把傳來的數據進行算術或邏輯運算,輸入來源為兩個8位數據,分別來自累加器和數據寄存器。
ALU能完成對這兩個數據進行加、減、與、或、比較大小等操作,最後將結果存入累加器。
運算器有兩個功能:
執行各種算術運算。
執行各種邏輯運算,並進行邏輯測試,如零值測試或兩個值的比較。
運算器所執行全部操作都是由控制器發出的控制信號來指揮的,並且,一個算術操作產生一個運算結果,一個邏輯操作產生一個判決。
2、控制器
控制器由程序計數器、指令寄存器、指令解碼器、時序發生器和操作控制器等組成,是發布命令的「決策機構」,即協調和指揮整個微機系統的操作。其主要功能有:
從內存中取出一條指令,並指出下一條指令在內存中的位置。
對指令進行解碼和測試,並產生相應的操作控制信號,以便於執行規定的動作。
指揮並控制CPU、內存和輸入輸出設備之間數據流動的方向。
微處理器內通過內部匯流排把ALU、計數器、寄存器和控制部分互聯,並通過外部匯流排與外部的存儲器、輸入輸出介面電路聯接。外部匯流排又稱為系統匯流排,分為數據匯流排DB、地址匯流排AB和控制匯流排CB。通過輸入輸出介面電路,實現與各種外圍設備連接。
3、主要寄存器
累加器A
累加器A是微處理器中使用最頻繁的寄存器。在算術和邏輯運算時它有雙功能:運算前,用於保存一個操作數;運算後,用於保存所得的和、差或邏輯運算結果。
數據寄存器DR
數據寄存器通過數據匯流排向存儲器和輸入/輸出設備送(寫)或取(讀)數據的暫存單元。它可以保存一條正在解碼的指令,也可以保存正在送往存儲器中存儲的一個數據位元組等等。
指令寄存器IR和指令解碼器ID
指令包括操作碼和操作數。
指令寄存器是用來保存當前正在執行的一條指令。當執行一條指令時,先把它從內存中取到數據寄存器中,然後再傳送到指令寄存器。
當系統執行給定的指令時,必須對操作碼進行解碼,以確定所要求的操作,指令解碼器就是負責這項工作的。其中,指令寄存器中操作碼欄位的輸出就是指令解碼器的輸入。
程序計數器PC
PC用於確定下一條指令的地址,以保證程序能夠連續地執行下去,因此通常又被稱為指令地址計數器。在程序開始執行前必須將程序的第一條指令的內存單元地址(即程序的首地址)送入PC,使它總是指向下一條要執行指令的地址。
地址寄存器AR
地址寄存器用於保存當前CPU所要訪問的內存單元或I/O設備的地址。由於內存與CPU之間存在著速度上的差異,所以必須使用地址寄存器來保持地址信息,直到內存讀/寫操作完成為止。
顯然,當CPU向存儲器存數據、CPU從內存取數據和CPU從內存讀出指令時,都要用到地址寄存器和數據寄存器。同樣,如果把外圍設備的地址作為內存地址單元來看的話,那麼當CPU和外圍設備交換信息時,也需要用到地址寄存器和數據寄存器。