1. 單片機怎樣通過串口向計算機發送數據
單片機怎樣通過串口向計算機發送數據:
單片機可以實現與計算機的發送和接收。首先,要正確配置單片機的串口,包括波特率、使用時鍾源、COM口、數據位位數、奇偶校驗位、停止位位數等,同時要保證計算機的配置和單片機的一致。然後,把要發送的數據送到發送緩存,只能一個位元組一個位元組的發送。啟動單片機發送,就可以完成發送操作。如果打開接收中斷,計算機發送數據過來的時候,就會進入到接收中斷,單片機進入接收數據狀態。
要注意的是,單片機是TTL電平,而計算機是232電平,所以在硬體電路連接上要有電平轉換晶元,常用的有MAX232等。
2. 單片機與電腦相連需要怎麼連接
最方便的是COM(串口),Print(並口)也是可以的。USB我是不會用,一般是將USB轉成COM口,但要通信,你要學會VC或是其他程序軟體,這樣才可以寫上位機軟體。
3. 如何將單片機上的數據傳輸到電腦上
通過max232串口。將單片機的數據通過RXD和TXD與PC進行通信;
其實你也可以通過下載線和串口助手(或者自己寫上位機界面),上傳數據;
買一根USB轉串口線,接到電腦USB介面上,上傳數據也可以;
可能還有其他方式。。。
4. 單片機裡面的數據怎麼能轉換成計算機語言
單片機裡面存的是機器碼,如果是51的用反匯編軟體就可以了,不過反匯編出來也不要抱很大希望,一般比較難看懂。
5. 單片機怎麼連接電腦
1、單片機就是一個「微型的電腦「---有RAM,有FLASHI,有CPU,一般也有UART口、USB口,並口等等,但是必須增加外圍電路才可以真正的在產品中使用!
2、與電腦連接最簡單的辦法就是:單片機(晶振、電容等組成最小系統電路)+MAX232晶元+DB9的接頭,然後編寫通信程序就可以與計算機進行通信了!
3、更復雜的還有USB、RS485、CAN、TCP/IP、無線等等通信方式,需要慢慢了解與學習才行!
6. 51單片機用USB轉TTL與計算機通信,可以嗎
我用的STM32 72MHZ的,用的就是USB轉TTL晶元和PC通信,使用19200波特率沒什麼問題;51如果波特率不高的話,使用這個USB轉TTL沒問題的;資料之所以推薦使用串口,我分析原因有兩點,第一點是使用轉換晶元的話如果波特率高的話,會出現亂碼錯碼丟碼的現象,轉換的過程畢竟算是個瓶頸 第二點,51單片機的應用不局限於在電腦旁做試驗,一些距離比較遠的項目是不能用近距離使用范圍的USB轉TTL晶元的,例如用RS485,RS232這些都是需要用串口的,最終單片機端需要再加一個轉換晶元,例如MAX232等,你可能問這不也得用晶元轉換么?其實這個MAX232是電平轉換晶元,速度會比USB轉TTL這樣的協議轉換晶元快 全手打,請採納!
7. 怎樣用51單片機做計算器啊
1、硬體模擬圖
4、程序源代碼
#include <reg51.h>#include <intrins.h>
#include <ctype.h>
#include <stdlib.h>
#define uchar unsigned char
#define uint unsigned int
uchar operand1[9], operand2[9];
uchar operator;
void delay(uint);
uchar keyscan();
void disp(void);
void buf(uint value);
uint compute(uint va1,uint va2,uchar optor);
uchar code table[] = {0xc0,0xf9,0xa4,0xb0,0x99,
0x92,0x82,0xf8,0x80,0x90,0xff};
uchar dbuf[8] = {10,10,10,10,10,10,10,10};
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
uchar keyscan()
{
uchar skey;
P1 = 0xfe;
while((P1 & 0xf0) != 0xf0)
{
delay(3);
while((P1 & 0xf0) != 0xf0)
{
switch(P1)
{
case 0xee: skey = '7'; break;
case 0xde: skey = '8'; break;
case 0xbe: skey = '9'; break;
case 0x7e: skey = '/'; break;
default: skey = '#';
}
while((P1 & 0xf0) != 0xf0)
;
}
}
P1 = 0xfd;
while((P1 & 0xf0) != 0xf0)
{
delay(3);
while((P1 & 0xf0) != 0xf0)
{
switch(P1)
{
case 0xed: skey = '4'; break;
case 0xdd: skey = '5'; break;
case 0xbd: skey = '6'; break;
case 0x7d: skey = '*'; break;
default: skey = '#';
}
while((P1 & 0xf0) != 0xf0)
;
}
}
P1 = 0xfb;
while((P1 & 0xf0) != 0xf0)
{
delay(3);
while((P1 & 0xf0) != 0xf0)
{
switch(P1)
{
case 0xeb: skey = '1'; break;
case 0xdb: skey = '2'; break;
case 0xbb: skey = '3'; break;
case 0x7b: skey = '-'; break;
default: skey = '#';
}
while((P1 & 0xf0) != 0xf0)
;
}
}
P1 = 0xf7;
while((P1 & 0xf0) != 0xf0)
{
delay(3);
while((P1 & 0xf0) != 0xf0)
{
switch(P1)
{
case 0xe7: skey = '$'; break;
case 0xd7: skey = '0'; break;
case 0xb7: skey = '='; break;
case 0x77: skey = '+'; break;
default: skey = '#';
}
while((P1 & 0xf0) != 0xf0)
;
}
}
return skey;
}
void main()
{
uint value1, value2, value;
uchar ckey, cut1 = 0, cut2 = 0;
uchar operator;
uchar i, bool = 0;
init:
buf(0);
disp();
value = 0;
cut1 = cut2 = 0;
bool = 0;
for(i = 0;i < 9;i++)
{
operand1[i] = '