wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 11082|回復: 5
打印 上一主題 下一主題
收起左側

第4章 單片機串口通信

  [復制鏈接]
跳轉到指定樓層
樓主
51單片機輕松入門—基于STC15W4K系列(C語言版)
李友全
編著:http://www.izizhuan.cn/bbs/dpj-37954-1.html


4章 串 口 通 信
1 串口通信電路
2 串口數據發送格式
3 串口相關寄存器
4 波特率計算公式與表格
5 單片機與計算機通信的簡單例子
6 數據通信中的錯誤校驗(校驗和)

7 單片機串口向計算機串口發送2進制、16進 制、數值與字符串




2 串口數據發送格式

串口數據發送格式如圖4-1所示,注意這里的格式是對于單片機串口TXD引腳而言的,信 號經過SP3232或MAX232芯片后會被倒相,即+5V(邏輯1)變-9V(邏輯0,典型值是-9V, RS232標準范圍:-3V~-15V),0V(邏輯0)變+9V(邏輯1,典型值是+9V,RS232標準范圍:

+3V~+15V)。

圖4-1 串口數據發送格式

當單片機執行一條寫SBUF的指令時,就啟動串行通信的發送,數據由串行發送端TXD輸 出,發送時,先發送一個起始位(低電平),用來表示數據傳輸開始,接著將1個字節的8個位 按低位在前高位在后的順序發送輸出,第9 位通常作為奇偶校驗位,最后發送停止位(高電平) 用來表示數據傳送結束。這樣的數據格式通常作為一個串行幀,如無奇偶校驗位,即是最為常 見的N.8.1幀格式(無奇偶校驗、8位數據位、1位停止位)。

接收時,只要單片機允許接收(REN=1),單片機硬件就會不斷的以16倍波特率的采樣速率

采樣RXD引腳電壓,一旦檢測到RXD引腳上出現一個從“1”到“0”的負跳變(即起始 位)時,就啟動接收。串行通信中,每秒鐘傳送二進制碼的位數稱為波特率,單位是 bps,即 “位/秒”,比如數據傳送的波特率為9600 比特,采用N.8.1 幀格式(10 位),則每秒傳送字節為9600/10=960 個,而字節中每一位傳送時間即為波特率的倒

數:T = 1/9600 (S) = 104uS,根據數據傳送的波特率即字節中每一位的傳送時間, 我們也可通過編寫程序控制普通I/O 口實現圖4-1的通信時序。

圖4-1數據格式進一步說明如下:

l ① 起始位:發送線TXD上沒有發送數據時呈高電平1狀態(即5V),當需要發送一幀數 據時,首先發送一位0(低電平)信號,稱起始位。
l ② 數據位:緊接起始位后是8位數據位(51單片機格式固定8位,不能修改),發送時 從數據的最低位開始,順序發送輸出)。
l ③ 奇偶校驗位:緊接數據位后是1位奇偶校驗位(SCON寄存器設為方式0和方式1沒有 這一位),奇偶校驗位無實用價值,實際運用是可靠性高的校驗和、異或校驗或CRC。
l ④ 停止位:在校驗位后是停止位1 (高電平5V),用于表示一幀數據結束(51單片機 停止位固定1位,不能修改)。

l ⑤ 幀與幀之間間隙不固定,間隙處用空閑位1(高電平)填補。

3 串口相關寄存器

串口1控制寄存器SCON:我們把此寄存器設為“格式固定的10位串口通信,允許 接收”,固定值:0x50,幾乎任何時候都不用修改用這個值,可使用定時器1或 定時器2作波特率發生器。

輔助寄存器 AUXR :使用語句AUXR &= 0xFE; 串口1選擇定時器1為波特率發生 器,使用語句AUXR |= 0x01;串口1選擇定時器2為波特率發生器(默認值,建 議),當然還需在程序中啟動相應定時器。

電源控制寄存器PCON(復位值為0011 0000B)
D7
D6
D5
D4
D3
D2
D1
D0

位名稱

SMOD








SMOD用于設置串口1的波特率是否加倍,其它串口波特率與此寄存器無關。
1:波特率加倍。0:波特率不加倍。
串口1數據緩沖區寄存器SBUF,復位值是xxxx xxxxB(即不確定的數據),需要發送 輸出的數據放這里就能自動發送出去,串口自動接收到的數據也存放在這里

串口2控制寄存器S2CON ,我們把此寄存器設為“格式固定的10位串口通信 , 允許接收”,固定值:0x10,只能使用定時器2作波特率發生器,當然還需在程 序中啟動定時器2。

串口3控制寄存器S3CON ,我們把此寄存器設為“格式固定的10位串口通信 , 允許接收”,值為0x10時使用定時器2作波特率發生器(建議),值為0x50時 使用定時器3作波特率發生器,當然還需在程序中啟動相應定時器。

串口4控制寄存器S4CON ,我們把此寄存器設為“格式固定的10位串口通信 , 允許接收”,值為0x10時使用定時器2作波特率發生器(建議),值為0x50時 使用定時器4作波特率發生器,當然還需在程序中啟動相應定時器。

4 波特率計算公式與表格

4-17 常用波特率與定時器初值對應表(T1定時器8位自動重裝方式)

時鐘頻率

定時器 分頻模式

波特率(bps)

預置初值 (SMOD=0)
預置初值 (SMOD=1)

11.0592

1T

9600
DCH
B8H
57600
FAH
F4H
115200
FDH
FAH

12T

9600
FDH
FAH
57600
不能實現
FFH
115200
不能實現
不能實現

22.1184

1T

9600
B8H
70H
57600
F4H
E8H
115200
FAH
F4H

12T

9600
FAH
F4H
57600
FFH
FEH
115200
不能實現
FFH
對于表4-17中“不能實現”的波特率,一般可以通過換用16位定時器方式解決,因為16位
定時器出來的溢出信號傳輸速度更快,適用于波特率要求很高的場合。 注意:對于STC15系列單片機,當各個串口的波特率都相同時,各串口可以共享定時器2
作為其波特率發生器,實際使用中建議各串口都優先選擇定時器T2作波特率發生器。
5 單片機與計算機通信的簡單例子

例4.1 單片機向電腦發送0~255范圍內不斷增大的數據,使用串口1,定時器T1作波特率 發生器,波特率9600/22.1184MHz。單片機串口1接收引腳是RXD/P3.0,串口1發送引腳是 TXD/P3.1,也就是默認的程序下載引腳,程序下載完畢即可通過串口助手進行測試。

#include "STC15W4K.H" // 包含 "STC15W4K.H"寄存器定義頭文件
void delay500ms(void)
{ // 由第一章介紹的軟件計算得出
}
void UART_init(void)
{
// 下面代碼設置定時器1
TMOD = 0x20; // 0010 0000 定時器1工作于方式2(8位自動重裝方式) TH1 = 0xFA; // 波特率:9600 /22.1184MHZ
TL1 = 0xFA; // 波特率:9600 /22.1184MHZ
TR1 = 1;
// 下面代碼設置定串口
AUXR = 0x00; // 很關鍵,使用定時器1作為波特率發生器,S1ST2=0
SCON = 0x50;
// 0101 0000 SM0.SM1=01(最普遍的8位通信),REN=1 (允許接收)
}
void UART_send_byte(unsigned char dat)
{
SBUF = dat;
while(!TI);
TI=0; // 此句可以不要,不影響后面數據的發送,只供代碼查詢數據是否發送完成
}
void main()
{
unsigned char num=0; UART_init();
while(1)
{
UART_send_byte(num++);
delay500ms();
}
}
運行結果如圖所示。

例4.2 單片機接收電腦數據,加1后發回電腦,使用串口1,定時器T2作波特率發生器,波特率9600/22.1184MHz。
#include "STC15W4K.H" // 包含 "STC15W4K.H"寄存器定義頭文件
unsigned char num=0; // 存放接收到的1個字節的數據

void UART_init(void)

{

}

void main()

{

}

// 下面代碼設置定時器2
T2H = 0xFD; // 波特率:9600 /22.1184MHZ,1T
T2L = 0xC0; // 波特率:9600 /22.1184MHZ,1T
AUXR = 0x15; // 0001 0101,T2R=1啟動T2運行,T2x12=1,定時器2按1T計數,S1ST2=1
// 下面代碼設置定串口1
SCON = 0x50; // 0101 0000 SM0.SM1=01(最普遍的8位通信),REN=1(允許接收)
// 下面代碼設置中斷
ES = 1; // 開串口1中斷
EA = 1; // 開總中斷

UART_init();

while(1);

void UART1(void) interrupt 4 // 串行口1中斷函數
{

if(TI)

{

}

if(RI)

{

}

}


TI = 0;

RI = 0;

num = SBUF;

num++;

SBUF = num; // 啟動數據發送過程
6 數據通信中的錯誤校驗

數據通信難免可能發生錯誤,為了讓接收端判斷數據傳輸過程是否發生錯誤,我們需要 在發送的數據中傳送額外的附加數據,簡單常用的附加數據是校驗和。

校驗和的方法就是把需要發送或接收的一組數據的所有字節進行相加,相加結果與256進行 相除,取其余數,將此余數組合成發送數據的一部分而發送出去,同樣,接收數據的一方也 以相同的方式將所發送過來的數據進行相加計算,并與發送方所發過來的計算值比較,若其 值相同,則代表所發送的數據是正確的,反之則是錯誤的,檢查錯誤時,接收方可能要求發 送方重新發送,以確保數據的正確性。

例如,被發送數值為 0xAB 0xCD 0xEF 0x01 0x02 0x03 ,則將它們數值相加結果是
0x026D,以十進制表示為 621,與256 相除后取余數,其值為109,再轉換成16進制為
0x6D,因此發送數據時在數據的尾端再加上一個字節0x6D,因此實際發送出去的數據成為
0xAB 0xCD 0xEF 0x01 0x02 0x03 0x6D,對方收到所發送的數據后會根據以上方式再進行一
次計算,如果計算出來的結果是0x6D,表示此次發送的數據是正確的。校驗和計算函數如下:

unsigned char CheckSum(unsigned char *ptr, unsigned char len)

{

unsigned char i; unsigned char a; unsigned int Value=0;

for(i=0;i<len;i++) //len結束后第一個字節為接收到的校驗和
{

Value = Value + ptr[ i ];

}
a=Value; // 長送短,傳送完整低字節

return(a);

}

7 單片機串口向計算機串口發送2進制、16進制、數值與字符串
例4.15 單片機串口向計算機串口發送2進制、16進制、數值與字符串
//////////////////////////////// main.c //////////////////////////////
#include "uart_debug.h" void main()
{

unsigned char a=0x55; unsigned int b=0xAB98; unsigned long c=1234567890;

unsigned char Buf[]="歡迎使用STC15單片機!\n"; //字符串在內存結尾必然有一個附 加字符:\0
UART_init(); // 波特率:9600 /22.1184MHZ UART_Send_Str("串口設置完畢:123ABC\n"); // 發送字符串 UART_Send_Str(Buf);
UART_Send_Num(b);
// 發送數值
UART_Send_StrNum("數值=:",c); // 發送字符串+數值 UART_Send_Hex(b) ; // 發送16進制 UART_Send_binary(a); // 發送2進制 while(1);
}

實驗結果如下圖所示


本程序使用了一個程序包和程序包對應的頭文件,程序移植時請將這兩個
文件復制到自己的工程文件夾, 串口初始化函數UART_init(); 默認波特率:
9600 /22.1184MHZ,可調整,其余部分不要修改。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏10 分享淘帖 頂1 踩
回復

使用道具 舉報

沙發
ID:118796 發表于 2016-6-22 11:19 | 只看該作者
不太懂!
回復

使用道具 舉報

板凳
ID:350005 發表于 2018-7-16 20:55 | 只看該作者
請問"uart_debug.h"里面的程序是什么   看書沒找到
回復

使用道具 舉報

地板
ID:439493 發表于 2018-12-4 19:45 | 只看該作者
初步學習一下,謝謝
回復

使用道具 舉報

5#
ID:288930 發表于 2019-1-29 10:10 | 只看該作者
謝謝分享!
回復

使用道具 舉報

6#
ID:676789 發表于 2019-12-29 18:01 | 只看該作者

謝謝分享!!
回復

使用道具 舉報

7#
無效樓層,該帖已經被刪除
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
欧美日一区二区在线观看 | 中文无码av一区二区三区| 粉嫩av一区二区三区天美传媒| 国内揄拍国内精品| 欧美亚洲日本国产| 91啪九色porn原创视频在线观看| 中文精品电影| 激情小说亚洲| av在线二区| 免费做暖暖免费观看日本| 中文有码在线播放| 欧美午夜激情影院| 亚洲欧美在线精品| 亚洲美女搞黄| 91在线免费视频| xx视频.9999.com| 在线中文字幕不卡| 国产欧美日韩激情| 免费人成网站在线观看欧美高清| 天堂俺去俺来也www久久婷婷 | 国产成人在线电影| 伊人久久大香线| 国产欧美88| 一色桃子av在线| 亚洲欧洲动漫| av福利网址网站| 香蕉视频网站在线| 亚洲性猛交富婆| 放荡的美妇在线播放| 日本中文字幕精品| 欧美二区在线视频| 亚洲人成77777| 狠狠色噜噜狠狠色综合久| 国产aⅴ夜夜欢一区二区三区 | 天堂av在线8| 国产手机免费视频| 色就是色欧美| 精品一区日韩成人| 2022国产精品| 国产精品视频久久| 97国产真实伦对白精彩视频8| 亚洲码在线观看| 日韩欧美专区在线| 日韩不卡一区二区三区| 日韩精品网站| 九九久久婷婷| 日韩av系列| 亚洲精品大全| 欧美爱爱视频| 午夜激情成人网| 欧美xxxbbb| a毛片在线看免费观看| 国产在线一二三| 伊人发布在线| 成人软件网18免费视频| 日本jizzjizz| 网站黄色在线观看| 丝袜免费视频| 香蕉视频网站在线播放| 国产精品作爱| xxxx性bbbb欧美野外| 麻豆精品视频在线原创| 欧美黄色免费视频| 激情综合网俺也去| 在线视频日韩一区| 日韩一区二区三区久久| 国产精品自在自线| 18深夜在线观看免费视频| 最好看的中文字幕| 国产精品手机在线观看| 性色av蜜臀av色欲av| 91成年人网站| 国精产品一区一区二区三区mba| 美国一级黄色录像| 国产精品久久久精品四季影院| 香蕉成人在线视频| 免费一级a毛片夜夜看| 五月天婷婷网站| 亚洲 欧美 中文字幕| 最新中文字幕在线观看视频| 中文字幕精品无码亚| 国产成人精品a视频| 人人妻人人澡人人爽精品日本| 天天综合网天天综合| 欧美色图欧美色图| 日本三级电影在线看| 男人捅女人免费视频| 亚洲色图另类色图| 免费在线视频欧美| 欧美aa一级| 欧美亚洲二区| 三级精品视频| 欧美日韩国产探花| 免费黄网站欧美| 不卡电影免费在线播放一区| 国产欧美精品国产国产专区| 亚洲免费高清视频在线| 欧美天堂在线观看| 日韩欧美一二三| 尤物99国产成人精品视频| 欧美伦理91i| 国产美女直播视频一区| 视频在线观看99| 久久99精品视频一区97| 国产精品视频地址| 欧美精品久久久| www.九色.com| 天堂av在线8| 欧美福利第一页| 中文字幕视频网站| 丰满人妻一区二区| 69看片网站| 天天操天天碰| 黄色av网站在线免费观看| 蜜臀av在线| 久久9999免费视频| 91欧美日韩| 欧美亚洲在线| 久久精品视频一区| 精品二区三区线观看| 日韩美女一区二区三区| 欧美精品在线看| 国产精品老牛影院在线观看| 午夜精品一区在线观看| 日韩欧美在线字幕| 亚洲高清久久网| 国外成人在线视频| 国产精品视频入口| 97在线免费观看| 国产一区二区三区高清| 400部精品国偷自产在线观看| 中文字幕丰满乱码| 国产十六处破外女视频| 中文在线观看av| 你懂的在线观看视频| 欧美在线观看在线观看| 鲁鲁在线中文| 日韩情爱电影在线观看| 国产激情91久久精品导航| 亚洲另类春色国产| 亚洲国产成人爱av在线播放| 国产成人自拍视频在线观看| 26uuu成人| 插我舔内射18免费视频| 亚洲自拍一区在线观看| 欧美性受xxxx黑人xxxx| 最近最新中文字幕在线| av久久网站| 欧美视频一区| 中文一区在线播放| 亚洲电影免费观看高清| 国产欧美亚洲精品| 97国产精东麻豆人妻电影 | 天天摸天天做天天爽水多| 老司机免费在线视频| 久久久久影视| 理论片日本一区| 精品久久久免费| 欧美成人精品在线播放| 欧洲精品久久| 在线天堂www在线国语对白| 中文字幕欧美人妻精品| www.午夜| 婷婷六月国产精品久久不卡| 激情偷拍久久| 亚洲女人小视频在线观看| 亚洲精品在线视频| 国产精品三区四区| 亚洲免费观看在线| 国产日韩精品suv| 天天噜天天色| 日韩一区二区三区高清在线观看| 日韩高清一级片| 色诱视频网站一区| 日本sm极度另类视频| 欧美日韩黄色一级片| 免费毛片一区二区三区| 黄色资源在线观看| 日韩不卡免费高清视频| 噜噜噜躁狠狠躁狠狠精品视频| 午夜精品久久久| 热久久这里只有| 三上悠亚av一区二区三区| 中文字幕二区三区| 日本在线丨区| 久久伦理在线| 一区二区三区精品| 97视频在线观看免费高清完整版在线观看| 日本a在线天堂| 久久黄色精品视频| 成人羞羞视频免费看看| 无码国模国产在线观看| 91偷拍与自偷拍精品| 亚洲性生活视频在线观看| 亚洲欧美国产一区二区| 妺妺窝人体色www聚色窝仙踪| 成年人免费网站在线观看| 国产91欧美| 成人黄色国产精品网站大全在线免费观看| 欧美成人免费网站| 日本亚洲导航| 国产性70yerg老太| 狠狠干婷婷色| 国产一区二区三区四区大秀| 综合激情成人伊人| 91国产精品电影| 五月婷婷六月合| 亚洲第一页在线观看| 二区三区四区高清视频在线观看| 亚洲五月婷婷| 欧美午夜精品久久久| 51午夜精品| 日韩丰满少妇无码内射| 人人插人人干| 国语一区二区三区| 国产精品剧情在线亚洲| 国产91ⅴ在线精品免费观看| 男生操女生视频在线观看| 性xxxfllreexxx少妇| 免费观看亚洲| 99r国产精品| 欧美极品少妇xxxxx| 亚洲无吗一区二区三区| 男人天堂影院| 国产69精品久久| 国产精品国产馆在线真实露脸| 日本久久久久久久| 一级做a爰片毛片| www色啪啪| 在线日本制服中文欧美| 精品久久久久久国产91| 国产在线精品日韩| 国产成人无码精品久在线观看| 亚洲裸体视频| 久久久久91| 亚洲香蕉成视频在线观看| 国内外免费激情视频| 影音先锋在线中文| 国产人与zoxxxx另类91| 亚洲乱码国产乱码精品精98午夜| 3d蒂法精品啪啪一区二区免费| 欧美国产日韩综合| 黄色大片在线免费观看| 捆绑紧缚一区二区三区视频| 日韩中文字幕免费| 性生活在线视频| xvideos入口| 你懂的一区二区| 日韩精品在线免费| 国产九九在线观看| 久久久久久91精品色婷婷| 米奇777超碰欧美日韩亚洲| 色综合久久中文综合久久牛| 日本精品二区| 国产三级视频在线播放| 欧美成人性网| 有坂深雪av一区二区精品| 国产精品自拍首页| 国产天堂第一区| 香蕉视频亚洲一级| 亚洲最新在线观看| 日韩影片在线播放| 成人小说亚洲一区二区三区| 涩涩涩久久久成人精品| 调教+趴+乳夹+国产+精品| 日韩亚洲视频| 午夜福利一区二区三区| 视频一区日韩精品| 欧美日韩日本视频| 日韩欧美xxxx| 蜜桃传媒入口| 黄色成人精品网站| www.国产一区| 一级黄色片网址| 男人的天堂在线视频免费观看 | 在线国产精品一区| 色七七影院综合| theav精尽人亡av| 如如影视在线观看经典| 日本vs亚洲vs韩国一区三区| 久久久中精品2020中文| 欧洲美女女同性互添| 看黄网站在线| 1区2区3区欧美| 亚洲精品国产精品国自产观看| 天天操天天干天天操| 九九久久婷婷| 亚洲欧洲国产精品| 青青草福利视频| 日本不卡视频| 亚洲国产成人在线| 欧洲在线视频一区| 最近免费中文字幕大全免费第三页| 日本午夜精品久久久| 欧美va亚洲va国产综合| 国偷自产av一区二区三区麻豆| 在线伊人免费视频| 91麻豆国产在线观看| 久久99精品久久久久子伦| 香蕉视频网站在线| 97精品在线| 欧美激情视频在线观看| 久久精品视频国产| 亚洲国产天堂| 欧美成人女星排名| av无码一区二区三区| av在线免费播放网站| 一区精品在线播放| 国产 欧美 日本| www.狠狠| 喷水一区二区三区| 147欧美人体大胆444| 欧美一区二区黄片| 中国精品18videos性欧美| 欧美日韩国产91| 日韩福利片在线观看| 国产精选久久| 国产午夜精品久久久| 欧美乱大交做爰xxxⅹ小说| 人狥杂交一区欧美二区| 欧美三级三级三级| 久久久久久国产精品日本| jizz在线观看视频| 亚洲国产裸拍裸体视频在线观看乱了 | 制服丝袜中文字幕在线| 亚洲444eee在线观看| 妞干网在线免费视频| 尤物网站在线| 亚洲国产精品传媒在线观看| 伊人久久av导航| 日本a级片免费| 99久久99久久精品国产片果冻 | 久久亚洲精品一区二区| 国产又大又黑又粗| free欧美| 99精品视频在线观看播放| 中文字幕av日韩| 欧美精品入口蜜桃| 91精品导航| 久久久91精品国产| 久久久久久无码精品大片| 婷婷综合电影| 韩国v欧美v日本v亚洲| 一二三四区视频| 91精品一区国产高清在线gif | 一本久久精品一区二区| 91aaa精品| 午夜羞羞小视频在线观看| 欧美亚一区二区| 添女人荫蒂视频| 在线天堂资源| 亚洲乱码av中文一区二区| 国产小视频在线看| 国产一区二区区别| 国产精品91免费在线| 中文天堂网在线www| 久久国产三级精品| 中文字幕一区二区三区有限公司| jizz18欧美| 一区二区三区四区视频精品免费| 国产亚洲视频一区| 欧美另类老肥妇| 中文字幕精品—区二区| 亚洲影院一区二区三区| 在线日本高清免费不卡| 久久综合九色综合久99| 成人性生交大片免费看视频r| 一区二区三区欧美激情| 性久久久久久久久久久| 国产区一区二| 91精品国产自产91精品| 亚洲一| 91丨九色丨国产丨porny| 久久精品网站视频| 小视频免费在线观看| 日韩中文娱乐网| 香蕉国产在线视频| 国产精品一区二区黑丝| 日本不卡在线观看视频| av蜜臀在线| 日韩中文字幕在线播放| 日本黄色不卡视频| 国产经典欧美精品| 免费在线观看毛片网站| 国产免费拔擦拔擦8x高清在线人| 亚洲午夜精品久久久久久性色 | 看免费黄色录像| 日本午夜一区| 99热99热| 又黄又www的网站| 欧美自拍丝袜亚洲| 久久亚洲天堂网| 国产视频一区免费看| 国产四区在线观看| 黄色精品免费看| 国产亚洲在线播放| 美女脱光衣服与内衣内裤一区二区三区四区 | 欧美区一区二区三区| 高清乱码免费看污| 蜜臀av性久久久久蜜臀aⅴ|