『壹』 簡述單片機串列口的工作方式
89系列單片機的串列通信有4種工作方式:
1、方式0是同步移位寄存器方式,幀格式8位,波特率固定為fosc/12。
2、方式1是8位非同步通信方式,幀格式10位,波特率可變:T溢出率/n(n= :32或16)。
3、方式2是9位非同步通信方式,幀格式11位,波特率固定: fosc/n(n=32 或16)。
4、方式3是9位非同步通信方式,幀格式11位,波特率可變:T溢出率(m=32或16)。
方式1、2、3的區別主要表現在幀格式及波特率兩個方面。
單片機應用范圍:
單片機滲透到我們生活的各個領域。導彈的導航裝置,飛機上各種儀表的控制,計算機的網路通訊與數據傳輸,工業自動化過程的實時控制和數據處理,廣泛使用的各種智能IC卡,民用豪華轎車的安全保障系統,錄像機、攝像機、全自動洗衣機的控制等等。
還有自動控制領域的機器人、智能儀表、醫療器械以及各種智能機械。因此,單片機的學習、開發與應用將造就一批計算機應用與智能化控制的科學家、工程師。
『貳』 51單片機的串口接收一幀數據有幾位
發送的位數跟工作方式有關。51單片機的發送和接受,只有10位和11位兩種。
先說單片機串口的工作方式:
單片機串口的工作方式共4種,方式0--方式3.
方式0:用移位脈沖。RXD做輸入/輸出,TXD進行移位。收發的數據為八位。
方式1:傳送一幀信息為10位,即1位起始位(0),8位數據位(低位在先)和1位停止位(1)。數據位由TXD發送,由RXD接收
方式1:一幀信息也是10位;即 1位起始位,8位數據位(先低位),1位停止位。在起始位到達移位寄存器的最左位時,它使控制電路進行最後一次移位。
方式2和方式3:發送(通過TXD)和接收(通過RXD)一幀信息都是 11位: 1位起始位(0), 8位數據位(低位在先),1位可編程位(即第9位數據)和1位停止位(1)。
可見:不論單片機串口接收還是發送一幀數據是多少位,實際有效位數據位都是8位,其餘位是為了奇偶校驗、做起始位或終止位用的。
以前所述有誤,特修正。
『叄』 單片機串口如何接收
在主程序中對接收到的數據串進行處理,查找幀頭、提取有效數據、進行業務判斷。
首先,要知道中斷應當盡量簡潔,所以中斷裡面只做數據接收和下標移動。
其次,要知道每幀的最大長度。幀長度要是毫無限制那緩沖區就不好開了,得採用適用性更強的緩沖技術,這里就不提了。舉例假定數據量最多10位元組,則最長幀為13位元組,可開辟16位元組緩沖區。
再次,要知道通信協議是怎麼樣的,傳輸速率如何(與單片機處理能力相比),每幀的數據之間有多少間隔,幀與幀之間有多少間隔。
間隔太短的話需要增加許多額外的處理,例如幀頭識別、幀分割,必要時又得用較大容量的循環緩沖區……這里也不提了。舉例假定幀間有足夠多的間隔時間。
『肆』 51單片機通過串口實現數據的發送與接收程序
串口收發,要有通信協議。也就是什麼時候開始接收,接收到指令後,轉發什麼數據。這個要知道,才可以寫。而且使用不同的51單片機,其內部寄存器配置是不同的。
一般來說,過程如下:
1,配置串口參數、波特率等,開啟串口中斷;
void Init_UART()
{
}
2,中斷函數里寫中斷響應函數,根據接收的指令或者數據,執行相應的動作;
程序一般為:
void UART_ISR() interrupt x using y
{
;串口中斷處理函數
}
x - 單片機的C51中斷號
y - 指定使用的當前工作寄存器組號(0-3 PSW中的RS0,RS1組合)
3,主程序
int main(void)
{
Init_UART();
while(1)
{
;//數據發送函數
}
}
『伍』 簡述c51單片機串列口數據發送和數據接收過程
參考吳鑒鷹吧裡面的資料,我也學習單片機,有吳鑒鷹單片機開發板(評價不錯的一款單片機開發板),這樣實驗+理論,然後看視頻學習會更好。有興趣可以看下
串列口初始化編程格式:
SIO: MOV TMOD,#20H ;T1作波特率發生器
MOV TH1,#X ;定時初值選定波特率
MOV TL1,#X MOV PCON,#00H ;SMOD=0,就是波特率不增倍CLR TI ;清除發送中斷標志SETB TR1 ;打開定時器1 2、發送程序
查詢方式: TRAM: MOV A,@R0 ;取數據
MOV SBUF,A ;發送一個字元
WAIT:JBC TI,NEXT ;等待發送結束
SJMP WAIT NEXT: INC R0 ;准備下一次發送
SJMP TRAM3、接收程序
WAIT: JBC RI,NEXT ;查詢等待
SJMP WAIT NEXT: MOV A,SBUF ;讀取接收數據
MOV @R0,A ;保存數據
INC R0 ;准備下一次接收
SJMP WAIT 這個是用軟體查詢方法做的,沒有設定數據校驗。