㈠ 電腦能直接通過串口給單片機發送漢字嗎怎麼實現字元的話可以直接發送,不需要編程嗎新手,諒解!
可以。按內碼發送即可。具體內容你可以上網搜索「漢字 內碼 GB2312」。
至於普通的半形字元,一般按ASCII碼發送即可。具體內容自行搜索「ASCII碼表」
㈡ 51單片機,通過串口助手向單片機發送字元串,單片機將字元串逆序發送回計算機,用C語言編程
像這種發送字元串的,需要有一個字元串結束標志,不能用0作為字元串結束標志了!這里以回車作0xd為結束標志!
#include <reg51.h>
typedef unsigned char uint8;
bit flag = 0;
uint8 idata buf[30];
uint8 ct;
void InitUART(void) //串口初始化 9600bps
{
TMOD = 0x20;
SCON = 0x50;
TH1 = 0xFD;
TL1 = TH1;
PCON = 0x00;
EA = 1;
ES = 1;
TR1 = 1;
}
void Send(uint8 c)
{
SBUF = c;
while(!TI);
TI = 0;
}
void main(void)
{
char j;
InitUART();
while(1)
{
if(flag) //是否接收到回車 字元串發送完
{
flag = 0;
for(j = ct ; j > 0 ; j--)
{
Send(buf[j-1]);
}
}
}
}
void UARTInterrupt(void) interrupt 4
{
static uint8 i = 0;
if(RI)
{
RI = 0;
buf[i++] = SBUF;
if(SBUF == 0x0d) //接受到回車
{
ct = i-1 ;
flag = 1;
i = 0;
}
}
else
TI = 0;
}
模擬結果
程序作為參考 希望 你自己能理解程序!只有自己掌握了才能很好地用!
㈢ 編寫串口通信程序,讓PC機發送一系列字元串(自己隨便定義)給單片機
定義一個變數
int
的
接收中斷到來的時候,變數清零
在單片機的接收中斷在的一個接收周期內,連續判斷A的出現,出現一次變數加一
當接收中斷完成後,發送變數的值到電腦,
這樣就完成字元A,數量的統計
㈣ pc接收單片機串口發送的字元串怎麼寫
1、單片機串口不管從哪接收數據都是遵循串口協議的。字元串就是一個挨一個的askii碼,中間沒有加任何東西。2、不發字元串結束標志。3、回車符可以發送,但具體發不發送看你程序了。
㈤ 電腦如何通過串口發送漢字給單片機
我估計問題出在中斷上~~~電腦傳給單片機用的應該是uart吧,是通過中斷機制完成的。
首先你所用的緩存不能是char型,應該用static char,防止編譯器把你這個變數給優化了。
其次你一定要給12864屏與串口傳輸的邏輯關系弄好,要知道在單片機刷屏時跳中斷是很容易出現亂碼的。最好是在上位/超級終端/串口調試助手 發送完數據後帶一個數據結尾,單片機收到結尾標識符時暫時關閉所有中斷在刷屏。
還有你發送的漢字編碼應該是gbk編碼(windows貌似默認,主要是一般12864支持的漢字是這個編碼的。)
最後要是都不好使,估計你用了不帶漢字編碼庫的12864(當然,一般能顯示漢字就不會~~~~)
㈥ 電腦怎麼將數據傳給單片機啊(在線等)
把你的單片機串口初始化一下,定義好波特率 工作模式,然後把單片機串口接收的數據傳送給顯示屏就可以了! 計算機那邊使用串口助手,打開相應的串口,波特率要和單片機的相同,這樣就可以了! 用串口助手發送數據,單片機接收顯示。 你需要串口的連接線。如果單片機的板子上帶有232 介面的話直接連接 否則還需要一個232口和max232
㈦ 利用PC機串口調試程序發送字元給單片機,單片機將接收到的信息回送到電腦進行顯示。
ORG0000H
LJMPMAIN
ORG0030H
MAIN:
MOVTMOD,#20H
MOVTH1,#0FDH
MOVTL1,#0FDH
MOVSCON,#50H
SETBTR1
LOOP:
JNBRI,$
CLRRI
MOVA,SBUF
MOVSBUF,A
JNBTI,$
CLRTI
SJMPLOOP
END