① 單片機怎樣讀取串口信號
只要驅動能力夠,可以並聯使用,不過單片機端屬於廣播接收的方式,需要在通訊協議上加個地址信息讓各單片機能識別出是發給哪個片的數據包。單片機的tx腳要串個低導通壓降的二極體然後再並聯接到232片上
② 如何用單片機控制串口通信
單片機都有UART外設模塊,設置即可。UART外部引腳端基本都是TTL電平,需要添加RS232轉換晶元,然後就可以與PC通信了。
③ 從51單片機串口通信時,信號1的電平是多少伏
如果是TTL通訊,那麼邏輯1的電平是Vcc電平,一般在4.5~5.5V。
如果外接了收發器,例如轉換成RS232,那麼邏輯1遵從RS232標准在-15V~-3V范圍內。
④ 單片機串口通信原理
非同步通信
固定波特率下傳送0,1信號
就是在規定的時間間隔內傳送0.1數據
⑤ 關於單片機串口通信時的同步時鍾信號
串口通信時鍾是由單片機的晶振輸入後,內部產生的,每個單片機都有自己的串口控制寄存器,在編程的時候只要對其進行正確的控制就可以設置串口通信的各種工作模式,每個模式會有自己的波特率,即你說的時鍾頻率.波特率一般用9600,串口通信有自己的協議,在單片機教學的課程里都會有,寄存器的編程也可以在單片機的教程里找到,不會太難的
RXD,TXD引腳一般固定,因為其他引腳沒有產生你說的時鍾的內部機制
兩機通信的時候a的RXD接b的TXD,a的TXD接b的RXD
⑥ 單片機TTL串列通信時。空閑時是高電平嗎邏輯1是低電平,邏輯0是高電平
空閑時確實是高電平,但是TTL電平通信時,高電平不是0而是1,低電平不是1而是0!
手打不易,如有幫助請採納,謝謝!
⑦ 串口信號和232信號一樣嗎,有什麼區別
usb轉串口有2種
一種是USB轉TTL也稱為串口
另外一種就是USB轉232了
兩種的區別就是 RS232信號的邏輯1(高電平)電壓為-15v邏輯0(低電平)電壓為+15v
而TTL的電壓則是0v-5v所以2種介面不能互相兼容,需要max232等轉換晶元進行電平轉換
一般單片機用的都是TTL串口
而工控機等 使用9針串口的都是RS232信號
最容易區分的方式就是如果是USB轉9針串口就是RS232信號
⑧ 51單片機串口的原理和過程
單片機C51串口中斷接收和發送測試常式(含通信協議的實現)
通信協議:第1位元組,MSB為1,為第1位元組標志,第2位元組,MSB為0,為非第一位元組標志,其餘類推……,最後一個位元組為前幾個位元組後7位的異或校驗和。
測試方法:可以將串口調試助手的發送框寫上 95 10 20 25,並選上16進制發送,接收框選上16進制顯示,如果每發送一次就接收到95 10 20 25,說明測試成功。
//這是一個單片機C51串口接收(中斷)和發送常式,可以用來測試51單片機的中斷接收
//和查詢發送,另外我覺得發送沒有必要用中斷,因為程序的開銷是一樣的
//程序編寫: 龔建偉 [email protected]
//技術主頁:http://www.gjwtech.com
//您有這方面的問題可以和我討論
#include <reg51.h>
#include <string.h>
#define INBUF_LEN 4 //數據長度
unsigned char inbuf1[INBUF_LEN];
unsigned char checksum,count3;
bit read_flag=0;
void init_serialcomm(void)
{
SCON = 0x50; //SCON: serail mode 1, 8-bit UART, enable ucvr
TMOD |= 0x20; //TMOD: timer 1, mode 2, 8-bit reload
PCON |= 0x80; //SMOD=1;
TH1 = 0xF4; //Baud:4800 fosc=11.0592MHz
IE |= 0x90; //Enable Serial Interrupt
TR1 = 1; // timer 1 run
// TI=1;
}
//向串口發送一個字元
void send_char_com(unsigned char ch)
{
SBUF=ch;
while(TI==0);
TI=0;
}
//向串口發送一個字元串,strlen為該字元串長度
void send_string_com(unsigned char *str,unsigned int strlen)
{
unsigned int k=0;
do
{
send_char_com(*(str + k));
k++;
} while(k < strlen);
}
//串口接收中斷函數
void serial () interrupt 4 using 3
{
if(RI)
{
unsigned char ch;
RI = 0;
ch=SBUF;
if(ch>127)
{
count3=0;
inbuf1[count3]=ch;
checksum= ch-128;
}
else
{
count3++;
inbuf1[count3]=ch;
checksum ^= ch;
if( (count3==(INBUF_LEN-1)) && (!checksum) )
{
read_flag=1; //如果串口接收的數據達到INBUF_LEN個,且校驗沒錯,
//就置位取數標志
}
}
}
}
main()
{
init_serialcomm(); //初始化串口
while(1)
{
if(read_flag) //如果取數標志已置位,就將讀到的數從串口發出
{
read_flag=0; //取數標志清0
send_string_com(inbuf1,INBUF_LEN);
}
}
}
⑨ 單片機把處理完的信號通過哪個埠輸出 我們把處理的信號又通過哪些埠輸入給單片機
拿基本的51說,P0,P1,P2,P3都是雙向的,可以作為輸入也可作為輸出。其他STC,PIC,AVR的單片機有一些特殊功能腳,比如AD,DA,PWM等等要看具體的管腳說明。如果單單輸入輸出邏輯信號,你軟體隨便定義,如果要用特殊功能,那就要看你具體用什麼單片機。
如果是通訊,RXD/TXD接收發送,也要看具體單片機的管腳
⑩ 單片機串口通信原理
1.RS232介面
RS232-C介面連接器一般使用型號為DB-9的9芯插頭座,只需3條介面線,即"發送數據"、"接收數據"和"信號地"即可傳輸數據,其9個引腳的定義如圖11-3所示。
圖11-3 RS232-C介面連接器定義
在RS232的規范中,電壓值在+3V~+15V(一般使用+6V)稱為"0"或"ON"。電壓在-3V~-15V(一般使用-6V)稱為"1"或"OFF";計算機上的RS232"高電位"約為9V,而"低電位"則約為-9V。
RS232為全雙工工作模式,其信號的電壓是參考地線而得到的,可以同時進行數據的傳送和接收。在實際應用中採用RS232介面,信號的傳輸距離可以達到15m。不過RS232隻具有單站功能,即一對一通信。
2.RS485介面
RS485採用正負兩根信號線作為傳輸線路。兩線間的電壓差為+2V~6V表示邏輯"1":兩線間的電壓差為-2V~6V表示邏輯"0"。
RS485為半雙工工作模式,其信號由正負兩條線路信號准位相減而得,是差分輸入方式,抗共模干擾能力強,即抗雜訊干擾性好;實際應用中其傳輸距離可達1200米。RS485具有多站能力,即一對多的主從通信。
在串列通信中,數據通常是在兩個站之間傳送,按照數據在通信線路上的傳送方向可分為3種基本的傳送方式:單工、半雙工和全雙工,如圖11-4所示。
(點擊查看大圖)圖11-4 單工、半雙工和全雙工通信
單工通信使用一根導線,信號的傳送方和接收方有明確的方向性。也就是說,通信只在一個方向上進行。
若使用同一根傳輸線既作為接收線路又作為發送線路,雖然數據可以在兩個方向上傳送,但通信雙方不能同時收發數據,這樣的傳送方式稱為半雙工。採用半雙工方式時,通信系統每一端的發送器和接收器,通過收發開關分時轉接到通信線上,進行方向的切換。
當數據的發送和接收,分別由兩根不同的傳輸線傳送時,通信雙方都能在同一時刻進行發送和接收操作,這樣的傳送方式就是全雙工。在全雙工方式下,通信系統的每一端都設置了發送器和接收器,因此,能控制數據同時在兩個方向上傳輸。全雙工方式無須進行方向的切換。
串列通信可分為兩種類型,一種是同步通信,另一種是非同步通信。採用同步通信時,將所有字元組成一個組,這樣,字元可以一個接一個地傳輸,但是,在每組信息的開始要加上同步字元,在沒有信息要傳輸時,填上空字元,因為同步傳輸不允許有空隙。採用非同步通信時,兩個字元之間的傳輸間隔是任意的,所以,每個字元的前後都要用一些數據位來作為分隔位。比較起來,在傳輸率相同時,同步通信方式下的信息有效率要比非同步方式高,因為同步方式的非數據信息比例比較小。但是,從另一方面看,同步方式要求進行信息傳輸的雙方必須用同一個時鍾進行協調,正是這個時鍾確定了同步串列傳輸過程中每一個信息位的位置。這樣一來,如果採用同步方式,那麼,在傳輸數據的同時,還必須傳輸時鍾信號。而在非同步方式下,接收方的時鍾頻率和發送方的時鍾頻率不必完全一樣,而只要比較相近,即不超過一定的允許范圍就行了。在數據傳輸中,較為廣泛採用的是非同步通信,非同步通信的標准數據格式如圖11-5所示。
(點擊查看大圖)圖11-5 非同步通信數據格式
從圖11-5所列格式可以看出,非同步通信的特點是一個字元一個字元地傳輸,並且每個字元的傳送總是以起始位開始,以停止位結束,字元之間沒有固定的時間間隔要求。每一次有一個起始位,緊接著是5~8個的數據位,再後為校驗位,可以是奇檢驗,也可以是偶校驗,也可不設置,最後是1比特,或1比特半,或2比特的停止位,停止位後面是不定長度的空閑位。停止位和空閑位都規定為高電平,這樣就保證起始位開始處一定有一個下降沿,以此標識開始傳送數據。