導航:首頁 > 編程語言 > c編程rs232

c編程rs232

發布時間:2022-10-25 02:25:43

① RS-232-C的C語言程序

通過RS232匯流排與PC進行通信的測試程序(c語言)

/*這是一個使用單片機串列通信口通過RS232匯流排與PC進行通信的測試程序,無需擴展.可將DB9的第2和第3腳短路,進行自收自發測試.採用串列中斷接收,速率:9600,通信方式2,晶振使用:osc=11.0592MHz。使用SW1-SW6鍵盤發送文本數字1-6,數碼管顯示接收的ASCII數據*/
void main(void)
{
SCON=0x50;
TMOD=0x21;
TH1=0xfd;
TL1=0xfd;
TH0=0xf4;
TL0=0x48;
ES=1;ET0=1;EA=1;
TR1=1;
TR0=1;
while(1)
{
if(!key){ Delay(30000);
a=Key_down();
SBUF=table[a];
while(TI==0);
TI=0;
}
}
}

uchar Key_down(void)
{ uchar x;
if(!sw1)x=1;
else if(!sw2)x=2;
else if(!sw3)x=3;
else if(!sw4)x=4;
else if(!sw5)x=5;
else if(!sw6)x=6;
return(x);
}
void Int_T0(void) interrupt 1
{
TH0=0xf4;
TL0=0x48;
if(count==5)count=0;
else count++;
switch(count)
{
case 0:DIG_NUM=0x7f;
LED_DISPLAY=buff_led1;
break;
case 1:DIG_NUM=0xbf;
LED_DISPLAY=buff_led2;
break;
case 2:DIG_NUM=0xdf;
LED_DISPLAY=buff_led3;
break;
case 3:DIG_NUM=0xef;
LED_DISPLAY=buff_led4;
break;
case 4:DIG_NUM=0xf7;
LED_DISPLAY=buff_led5;
break;
case 5:DIG_NUM=0xfb;
LED_DISPLAY=buff_led6;
break;
default:break;
}
}
void Int_Serial(void) interrupt 4
{
while(RI==0);

a=SBUF;RI=0;
buff_led1=buff_led2;
buff_led2=buff_led3;
buff_led3=buff_led4;
buff_led4=buff_led5;
buff_led5=buff_led6;
buff_led6=a;
}

void Delay(int t)
{while(--t);}

② rs232介面定義

RS232介面它被廣泛用於計算機串列介面外設連接。RS-232C標准中EIA(Electronic Instry Association)代表美國電子工業聯盟,RS(Recommended standard)代表推薦標准,232是標識號,C代表RS232的第三次修改(1969年),在這之前,還有RS232B、RS232A。以下是我為大家帶來的關於rs232介面定義,歡迎大家前來閱讀!

rs232介面定義圖:

③ pc間rs232通訊c語言編程

你好!
reg52.h是51單片機的頭文件,DOS下的串口通信用到了硬體中斷,相對麻煩一些

你要控制什麼設備,收發都需要嗎?

④ C#中如何通過RS232的方式實現通信

.net SerialPort類
一.概述
在Visual Studio 6.0中編寫串口通訊程序,一般都使用Microsoft Communication Control(簡稱MSComm)的通訊控制項,只要通 過對此控制項的屬性和事件進行相應編程操作,就可以輕松地實現串口通訊。但在Microsoft.Net技術廣泛應用的今天,Visual Studio.Net沒有將此控制項加入控制項庫,所以人們採用了許多方法在Visual Studio.Net來編寫串口通訊程序:第一種方法是通過採用Visual Studio 6.0中原來的MSComm控制項這是最簡單的,最方便的方法,但需要注冊;第二種方法是採用微軟在.NET推出了一個串口控制項,基於.NET的P/Invoke調用方法實現;第三種方法是自己用API寫串口通信,雖然難度高,但可以方便實現自己想要的各種功能。
現在微軟推出了最新版本的Visual Studio 2005開發工具,可以不再採用第三方控制項的方法來設計串口通訊程序。NET Framework 2.0 類庫包含了SerialPort 類,方便地實現了所需要串口通訊的多種功能,為了使MSComm編程方法快速轉換到以SerialPort類為核心的串口通訊的設計方法,本文著重討論了Visual Studio 6.0的MSComm控制項和SerialPort 類設計方法的異同點。
 
二.SerialPort常用屬性、方法和事件
1.命名空間
System.IO.Ports命名空間包含了控制串口重要的SerialPort類,該類提供了同步 I/O 和事件驅動的 I/O、對管腳和中斷狀態的訪問以及對串列驅動程序屬性的訪問,所以在程序代碼起始位置需加入Using System.IO.Ports。
2.串口的通訊參數
串口通訊最常用的參數就是通訊埠號及通訊格式(波特率、數據位、停止位和校驗位),在MSComm中相關的屬性是CommPort和Settings。SerialPort類與MSComm有一些區別:
a.通訊埠號
[PortName]屬性獲取或設置通信埠,包括但不限於所有可用的 COM 埠,請注意該屬性返回類型為String,不是Mscomm.CommPort的short類型。通常情況下,PortName正常返回的值為COM1、COM2……,SerialPort類最大支持的埠數突破了CommPort控制項中CommPort屬性不能超過16的限止,大大方便了用戶串口設備的配置。
b. 通訊格式
SerialPort類對分別用[BaudRate]、[Parity]、[DataBits]、[StopBits]屬性設置通訊格式中的波特率、數據位、停止位和校驗位,其中[Parity]和[StopBits]分別是枚舉類型Parity、StopBits,Parity類型中枚舉了Odd(奇)、Even(偶)、Mark、None、Space,Parity枚舉了None、One、OnePointFive、Two。
SerialPort類提供了七個重載的構造函數,既可以對已經實例化的SerialPort對象設置上述相關屬性的值,也可以使用指定的埠名稱、波特率和奇偶校驗位數據位和停止位直接初始化 SerialPort 類的新實例。
3.串口的打開和關閉
SerialPort類沒有採用MSComm.PortOpen=True/False設置屬性值打開關閉串口,相應的是調用類的Open()和Close()方法。
4. 數據的發送和讀取
Serial類調用重載的Write和WriteLine方法發送數據,其中WriteLine可發送字元串並在字元串末尾加入換行符,讀取串口緩沖區的方法有許多,其中除了ReadExisting和ReadTo,其餘的方法都是同步調用,線程被阻塞直到緩沖區有相應的數據或大於ReadTimeOut屬性設定的時間值後,引發ReadExisting異常。
5.DataReceived事件
該事件類似於MSComm控制項中的OnComm事件,DataReceived事件在接收到了[ReceivedBytesThreshold]設置的字元個數或接收到了文件結束字元並將其放入了輸入緩沖區時被觸發。其中[ReceivedBytesThreshold]相當於MSComm控制項的[Rthreshold]屬性,該事件的用法與MsComm控制項的OnComm事件在CommEvent為comEvSend和comEvEof時是一致的。  
 
三.SerialPort的使用
對於熟悉MSComm控制項的程序設計者,SerialPort類是相當容易上手的。在進行串口通訊時,一般的流程是設置通訊埠號及波特率、數據位、停止位和校驗位,再打開埠連接,發送數據,接收數據,最後關閉埠連接這樣幾個步驟。
數據接收的設計方法在這里比較重要,採用輪詢的方法比較浪費時間,在Visual Basic中的延時方法中一般會調用API並用DOEvents方法來處理,但程序不易控制,建議採用DataReceived事件觸發的方法,合理的設置ReceivedBytesThreshold的值,若接收的是定長的數據,則將ReceivedBytesThreshold設為接收數據的長度,若接收數據的結尾是固定的字元或字元串則可採用ReadTo的方法或在DataReceived事件中判斷接收的字元是否滿足條件。
SerialPort類讀取數據的許多方法是同步阻塞調用,盡量避免在主線程中調用,可以使用非同步處理或線程間處理調用這些讀取數據的方法。
由於DataReceived事件在輔線程被引發,當收到完整的一條數據,返回主線程處理或在窗體上顯示時,請注意跨線程的處理,C#可採用控制項非同步委託的方法Control.BeginInvoke及同步委託的方法Invoke。
 
四.結束語
在.NET平台下熟練使用SerialPort 類,可以很好地開發出串口通訊類程序,對於過去使用MSComm控制項設計了一些通訊程序,也可以將MSComm控制項替換為SerialPort類,當然為了避免對以前的項目做大的改動,可以使用SerialPort類設計一些與MSComm控制項具有相同介面的類,在今後工業控制中,SerialPort類將廣泛地應用於串口通訊程序的設計中,發揮著與MSComm控制項一樣的作用。

⑤ 幫忙用C語言寫一段單片機rs232程序

你好!!

給你一個串口通訊的例子,你看看吧

⑥ 求RS232串口通信程序(C語言版)

串口調試助手完全可以用來和單片機232口通訊~是不是設置問題或者乾脆你的串口還沒轉到232呢~

⑦ RS232串口通信程序(VC++實現)

visual
c++_turbo
c串口通信編程實踐

⑧ 串口RS232-C,代碼編寫。

可以用流行的串口軟體,如格西烽火、SSCOM等,支持命令自定義和保存,測試方便。

⑨ 單片機C語言編程輸入字元串問題

單片機和PC通訊,通過RS232串口是最簡單的方式。
要實現你的想法,首先在PC端有個應用程序,可以通過串口向單片機發出字元,比如「串口調試助手」。然後將單片機與PC通過RS232連接。
然後,在單片機這邊,你自己去了解下單片機RS232編程,很簡單的,設定好RS232中斷,當單片機的RS232介面接收到PC端發送過來的字元時,單片機便會產生一個中斷,然後你編程響應這個中斷,回發一個字元就行了。
如果是一個個的字元,也不用擔心,單片機有RS232緩存區的,你要做的就是不斷的讀取緩存區的數據,不必去關心數據是如何發送和接受的。

⑩ 求RS232發送和接收數據包的C語言程序

首先,串口調試軟體的波特率最好設置成9600,這種波特率也支持顯示中文的,
USB轉串口看你用的什麼晶元,經過實驗採用CH340或是341的是沒有問題的,其他還有待驗證。

串口調試軟體也很重要,有些軟體會奇怪出現亂碼,但並不是程序錯誤,推薦你用小丁的sscom32,個人感覺很棒! ;**************************************************************************
; 程序名稱:單片機串口發送中文字元實驗,232通信程序
; 硬體說明:打開《串口調試助手》,波特率設為9600速率,11.0592晶體
; 注 意:《串口調試助手》要設置好COM號(請核對是否和設備管理器的COM編號一致)
; 操作說明:下載程序後打開串口調試助手sscom32.exe即可顯示,或按一下復位開關
;***************************************************************************/
ORG 0000H
AJMP main
ORG 0030H
main: MOV 20H,#00H
MOV TMOD,#22H ;定時器工作方式
MOV SCON,#40H
MOV TH1,#0FAH ;波特率9600
MOV PCON,#80H
SETB TR1
SETB REN ;允許接收
ajmp start
start: mov dptr,#num ;查表
send : clr a ;
movc a,@a+dptr
cjne a,#'$',send_2
ajmp $ ;遇到$停止。
send_2:mov sbuf,a
JNB TI,$ ;串列發送一幀結束了嗎?
CLR TI ;
inc dptr ;指針加一
Ljmp send
num:
db 0dh,0ah,0dh,0ah,"XY900_USB型單片機學習板USB-232串口中文發送試驗 "
db 0dh,0ah,0dh,0ah,"-----心情解夢-----"
db 0dh,0ah,0dh,0ah,"我夢見自己和前女友生了一個小孩,自己用嬰兒車推著孩子在山間的公路上不停地走..."
db 0dh,0ah,0dh,0ah,"最佳答案:"
db 0dh,0ah,0dh,0ah,"首先,你們之間的感情給你留下了很深刻的東西,我想那些鏡頭可能是你們在一起時你所感受到的---那也許可能會是真的景物..."
db 0dh,0ah,0dh,0ah,"其次,也可能是代表某種心情,我猜想是不是你們曾經的愛情讓你覺得幸福但同時也有隱隱作痛...回憶讓你覺得不安全和無法掌握。",0dh,0ah,'$'
end

閱讀全文

與c編程rs232相關的資料

熱點內容
電腦編程屬於it嗎 瀏覽:353
如何分辨文件夾 瀏覽:714
哪裡能學懂通達信每個源碼的含義 瀏覽:833
命令式過去式形式 瀏覽:450
車銑復合銑六角編程實例 瀏覽:743
android通知的呼吸燈 瀏覽:907
單片機排針的功能 瀏覽:849
華為的伺服器現在被什麼公司收購 瀏覽:285
伺服器粘包怎麼處理 瀏覽:726
怎麼進創意工坊的伺服器 瀏覽:786
空調壓縮機加變頻器 瀏覽:968
加密貨幣有哪些可以玩 瀏覽:993
騰訊雲伺服器如何生成備案授權碼 瀏覽:950
計算機學演算法好還是人工智慧 瀏覽:500
java命令運行eclipse 瀏覽:979
u盤加密其他辦法 瀏覽:808
zm螺紋演算法 瀏覽:778
excel與數據分析pdf 瀏覽:153
特斯拉的智能演算法 瀏覽:204
單片機開發費用 瀏覽:937