




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、C51系列單片機(jī)有一個(gè)全雙工的串行口 80C5180C51系列單片機(jī)有一個(gè)全雙工的串行口,這個(gè)口既可以用系列單片機(jī)有一個(gè)全雙工的串行口,這個(gè)口既可以用于網(wǎng)絡(luò)通信,也可以實(shí)現(xiàn)串行異步通信,還可以作為同步移位寄存于網(wǎng)絡(luò)通信,也可以實(shí)現(xiàn)串行異步通信,還可以作為同步移位寄存器使用。器使用。6-2 80C516-2 80C51串行口串行口C51系列單片機(jī)有一個(gè)全雙工的串行口一、串行口特殊功能寄存器一、串行口特殊功能寄存器1 1、串行數(shù)據(jù)緩沖器串行數(shù)據(jù)緩沖器SBUFSBUF在在邏輯上邏輯上只有一個(gè)只有一個(gè),既表示發(fā)送寄存器,又表示接收寄存器,具有同一,既表示發(fā)送寄存器,又表示接收寄存器,具有同一個(gè)單元地址
2、個(gè)單元地址99H99H,用,用同一寄存器名同一寄存器名SBUFSBUF。 在在物理上有兩個(gè)物理上有兩個(gè),一個(gè)是發(fā)送緩沖寄存器,另一個(gè)是接收緩沖寄存,一個(gè)是發(fā)送緩沖寄存器,另一個(gè)是接收緩沖寄存器。器。發(fā)送時(shí)發(fā)送時(shí),只需將發(fā)送數(shù)據(jù)輸入,只需將發(fā)送數(shù)據(jù)輸入SBUFSBUF,CPUCPU將自動(dòng)啟動(dòng)和完成串行數(shù)據(jù)的發(fā)將自動(dòng)啟動(dòng)和完成串行數(shù)據(jù)的發(fā)送;送;接收時(shí)接收時(shí),CPUCPU將自動(dòng)把接收到的數(shù)據(jù)存入將自動(dòng)把接收到的數(shù)據(jù)存入SBUFSBUF,用戶只需從,用戶只需從SBUFSBUF中讀出接中讀出接收數(shù)據(jù)收數(shù)據(jù)。 C51系列單片機(jī)有一個(gè)全雙工的串行口2 2、串行控制寄存器串行控制寄存器SCONSCON3 3
3、、電源控制寄存器電源控制寄存器PCONPCONSCONSCOND7D7D6D6D5D5D4D4D3D3D2D2D1D1D0D0位名稱位名稱SM0SM0SM1SM1SM2SM2RENRENTB8TB8RB8RB8TITIRIRI位地址位地址9FH9FH9EH9EH9DH9DH9CH9CH9BH9BH9AH9AH99H99H98H98H功能功能工作方式工作方式選擇選擇多機(jī)通信多機(jī)通信控制控制接收接收 允許允許發(fā)送發(fā)送 第第9 9位位接收接收 第第9 9位位發(fā)送發(fā)送 中斷中斷接收接收 中斷中斷1) 1) SM0 SM1SM0 SM1 串行口工作方式選擇位。串行口工作方式選擇位。2) 2) SM2SM
4、2 多機(jī)通信控制位。多機(jī)通信控制位。3) 3) RENREN 允許接收控制位。允許接收控制位。REN=1REN=1,允許接收。,允許接收。4) 4) TB8TB8 方式方式2 2和方式和方式3 3中要發(fā)送的第中要發(fā)送的第9 9位數(shù)據(jù)。位數(shù)據(jù)。5) 5) RB8RB8 方式方式2 2和方式和方式3 3中要接收的第中要接收的第9 9位數(shù)據(jù)。位數(shù)據(jù)。6) 6) TITI 發(fā)送中斷標(biāo)志。發(fā)送中斷標(biāo)志。7) 7) RIRI 接收中斷標(biāo)志。接收中斷標(biāo)志。PCONPCOND7D7D6D6D5D5D4D4D3D3D2D2D1D1D0D0位名稱位名稱SMODSMODGF1GF1GF0GF0PDPDIDLIDLS
5、MOD=1SMOD=1,串行口波特率加倍。串行口波特率加倍。PCONPCON寄存器不能進(jìn)行位尋址。寄存器不能進(jìn)行位尋址。C51系列單片機(jī)有一個(gè)全雙工的串行口二、二、串行工作方式串行工作方式 80C5180C51串行通信共有串行通信共有4 4種工作方式,由串行控制寄存器種工作方式,由串行控制寄存器SCONSCON中中SM0 SM1SM0 SM1決定。決定。 1 1、串行工作方式、串行工作方式0 0(同步移位寄存器工作方式)(同步移位寄存器工作方式) 以以RXDRXD(P3.0P3.0)端作為數(shù)據(jù)移位的輸入)端作為數(shù)據(jù)移位的輸入/ /輸出端,輸出端, 以以TXDTXD(P3.1P3.1)端輸出移位
6、脈沖。)端輸出移位脈沖。 移位數(shù)據(jù)的發(fā)送和接收以移位數(shù)據(jù)的發(fā)送和接收以8 8位為一幀,不設(shè)起始位和停止位,無論輸入位為一幀,不設(shè)起始位和停止位,無論輸入/ /輸出,輸出,均低位在前高位在后。均低位在前高位在后。 其幀格式為:其幀格式為: D0D0D1D1D2D2D3D3D4D4D5D5D6D6D7D7 方式方式0 0可將串行輸入輸出數(shù)據(jù)轉(zhuǎn)換成并行輸入輸出數(shù)據(jù)??蓪⒋休斎胼敵鰯?shù)據(jù)轉(zhuǎn)換成并行輸入輸出數(shù)據(jù)。C51系列單片機(jī)有一個(gè)全雙工的串行口 數(shù)據(jù)發(fā)送數(shù)據(jù)發(fā)送 在移位時(shí)鐘脈沖(在移位時(shí)鐘脈沖(TXDTXD)的控制下,數(shù)據(jù)從串行口)的控制下,數(shù)據(jù)從串行口RXDRXD端逐位移端逐位移入入74HC164
7、 SA74HC164 SA、SBSB端。當(dāng)端。當(dāng)8 8位數(shù)據(jù)全部移出后,位數(shù)據(jù)全部移出后,SCONSCON寄存器的寄存器的TITI位被位被自動(dòng)置自動(dòng)置1 1。其后。其后74HC16474HC164的內(nèi)容即可并行輸出。的內(nèi)容即可并行輸出。74HC164 CLR74HC164 CLR為清為清0 0端,端,輸出時(shí)輸出時(shí)CLRCLR必須為必須為1 1,否則,否則74HC164 Q074HC164 Q0Q7Q7輸出為輸出為0 0。 串行口作為并行輸出口使用時(shí),要有串行口作為并行輸出口使用時(shí),要有“串入并出串入并出”移位寄存移位寄存器配合。器配合。C51系列單片機(jī)有一個(gè)全雙工的串行口(2) (2) 數(shù)據(jù)接
8、收數(shù)據(jù)接收 串行口作為并行輸入口使用時(shí),要有串行口作為并行輸入口使用時(shí),要有“并入串出并入串出”的移位寄存器配合。的移位寄存器配合。 74HC165 S/L74HC165 S/L端為移位端為移位/ /置入端,當(dāng)置入端,當(dāng)S/L=0S/L=0時(shí),從時(shí),從Q0Q0Q7Q7并行置入數(shù)據(jù),當(dāng)并行置入數(shù)據(jù),當(dāng)S/L=1S/L=1時(shí),允許從時(shí),允許從Q QH H端移出數(shù)據(jù)。在端移出數(shù)據(jù)。在80C5180C51串行控制寄存器串行控制寄存器SCONSCON中的中的REN=1REN=1時(shí),時(shí),TXDTXD端發(fā)出移位端發(fā)出移位時(shí)鐘脈沖,從時(shí)鐘脈沖,從RXDRXD端串行輸入端串行輸入8 8位數(shù)據(jù)。當(dāng)接收到第位數(shù)據(jù)。
9、當(dāng)接收到第8 8位數(shù)位數(shù)據(jù)據(jù)D7D7后,置位中斷標(biāo)志后,置位中斷標(biāo)志RIRI,表示一幀數(shù)據(jù)接收完成。,表示一幀數(shù)據(jù)接收完成。C51系列單片機(jī)有一個(gè)全雙工的串行口 波特率波特率方式方式0 0 波特率固定,為單片機(jī)晶振頻率的十二分之一。波特率固定,為單片機(jī)晶振頻率的十二分之一。 應(yīng)用舉例應(yīng)用舉例【例【例6-16-1】電路如圖所示,試編制程序按下列順序要求每隔】電路如圖所示,試編制程序按下列順序要求每隔0.50.5秒循環(huán)操作。秒循環(huán)操作。1) 8個(gè)發(fā)光二極管全部點(diǎn)亮;個(gè)發(fā)光二極管全部點(diǎn)亮;2) 從左向右依次暗滅,每次減少一個(gè),直至全滅;從左向右依次暗滅,每次減少一個(gè),直至全滅;3) 從左向右依次點(diǎn)亮
10、,從左向右依次點(diǎn)亮, 每次亮一個(gè);每次亮一個(gè);4) 從右向左依次點(diǎn)亮,從右向左依次點(diǎn)亮,每次亮一個(gè);每次亮一個(gè);5) 從左向右依次點(diǎn)亮,從左向右依次點(diǎn)亮,每次增加一個(gè),每次增加一個(gè),直至全直至全部點(diǎn)亮;部點(diǎn)亮;6) 返回從返回從2)不斷循環(huán))不斷循環(huán)解:編程如下:解:編程如下:C51系列單片機(jī)有一個(gè)全雙工的串行口LIGHT:MOV SCON,#00H LIGHT:MOV SCON,#00H ; ;串行口方式串行口方式0 0 CLR ES CLR ES ; ;禁止串行中斷禁止串行中斷 MOV DPTR,#TAB MOV DPTR,#TAB ; ;置發(fā)光二極管亮暗控制字表首址置發(fā)光二極管亮暗控制字
11、表首址LP1: MOV R7,#0 LP1: MOV R7,#0 ; ;置順序編號(hào)置順序編號(hào)0 0LP2: MOV A,R7 LP2: MOV A,R7 ; ;讀順序編號(hào)讀順序編號(hào) MOVC A,A+DPTR MOVC A,A+DPTR ; ;讀控制字讀控制字 CLR P1.0 CLR P1.0 ; ;關(guān)閉并行輸出關(guān)閉并行輸出 MOV SBUF,A MOV SBUF,A ; ;啟動(dòng)串行發(fā)送啟動(dòng)串行發(fā)送 JNB TI,$ JNB TI,$ ; ;等待發(fā)送完畢等待發(fā)送完畢 CLR TI CLR TI ; ;清發(fā)送中斷標(biāo)志清發(fā)送中斷標(biāo)志 SETB P1.0 SETB P1.0 ; ;開啟并行輸出開啟
12、并行輸出 LCALL DLY500ms LCALL DLY500ms ; ;調(diào)用延時(shí)調(diào)用延時(shí)0.50.5秒子程序秒子程序( (參閱例參閱例4-13)4-13) INC R7 INC R7 ; ;指向下一控制字指向下一控制字 CJNE R7,#30,LP2 CJNE R7,#30,LP2 ; ;判循環(huán)操作完否判循環(huán)操作完否? ?未完繼續(xù)未完繼續(xù) SJMP LP1 SJMP LP1 ; ;順序編號(hào)順序編號(hào)0 02929依次操作完畢依次操作完畢, ,從從0 0開始重新循環(huán)開始重新循環(huán)TAB:TAB: DB 0FFH,7FH,3FH,1FH,0FH,07H,03H,01H,00HDB 0FFH,7FH
13、,3FH,1FH,0FH,07H,03H,01H,00H; ;從左向右依次暗滅從左向右依次暗滅, , 每次減少一個(gè)每次減少一個(gè), ,直至全滅直至全滅; ; DB 80H,40H,20H,10H,08H,04H,02H,01H DB 80H,40H,20H,10H,08H,04H,02H,01H; ;從左向右依次點(diǎn)亮從左向右依次點(diǎn)亮, ,每次亮一個(gè)每次亮一個(gè) DB 02H,04H,08H,10H,20H,40H,80HDB 02H,04H,08H,10H,20H,40H,80H; ;從右向左依次點(diǎn)亮從右向左依次點(diǎn)亮, ,每次亮一個(gè)每次亮一個(gè) DB 0C0H,0E0H,0F0H,0F8H,0FCH
14、,0FEHDB 0C0H,0E0H,0F0H,0F8H,0FCH,0FEH; ;從左向右依次點(diǎn)亮從左向右依次點(diǎn)亮, , 每次增加一個(gè)每次增加一個(gè), ,直至全部點(diǎn)亮直至全部點(diǎn)亮; ;C51系列單片機(jī)有一個(gè)全雙工的串行口【例】電路如圖所示,試【例】電路如圖所示,試編制程序輸入編制程序輸入K1K1K8K8狀狀態(tài)數(shù)據(jù),并存入內(nèi)態(tài)數(shù)據(jù),并存入內(nèi)RAM RAM 40H40H。 解:編程如下:解:編程如下: KIN:KIN: MOV SCON,#00HMOV SCON,#00H; ;串行口方式串行口方式0 0 CLR ES CLR ES ; ;禁止串行中斷禁止串行中斷 CLR P1.0 CLR P1.0 ;
15、 ;鎖存并行輸入數(shù)據(jù)鎖存并行輸入數(shù)據(jù) SETB P1.0 SETB P1.0 ; ;允許串行移位操作允許串行移位操作 SETB REN SETB REN ; ;允許并啟動(dòng)接收(允許并啟動(dòng)接收(TXDTXD發(fā)送移位脈沖)發(fā)送移位脈沖) JNB RI,$JNB RI,$ ; ;等待接收完畢等待接收完畢 MOV 40H,SBUF MOV 40H,SBUF ; ;存入存入K1K1K8K8狀態(tài)數(shù)據(jù)狀態(tài)數(shù)據(jù) RETRET ; ;C51系列單片機(jī)有一個(gè)全雙工的串行口2 2、串行工作方式串行工作方式1 1 方式方式1 1是一幀是一幀1010位的異步串行通信方式,包括位的異步串行通信方式,包括1 1個(gè)起始位,個(gè)
16、起始位,8 8個(gè)數(shù)據(jù)個(gè)數(shù)據(jù)位和一個(gè)停止位位和一個(gè)停止位。 其幀格式為:其幀格式為:起始起始D0D0D1D1D2D2D3D3D4D4D5D5D6D6D7D7停止停止 數(shù)據(jù)發(fā)送數(shù)據(jù)發(fā)送 發(fā)送時(shí)只要將數(shù)據(jù)寫入發(fā)送時(shí)只要將數(shù)據(jù)寫入SBUFSBUF,在串行口由硬件自動(dòng)加入起始位和停,在串行口由硬件自動(dòng)加入起始位和停止位,構(gòu)成一個(gè)完整的幀格式。然后在移位脈沖的作用下,由止位,構(gòu)成一個(gè)完整的幀格式。然后在移位脈沖的作用下,由TXDTXD端串端串行輸出。一幀數(shù)據(jù)發(fā)送完畢,將行輸出。一幀數(shù)據(jù)發(fā)送完畢,將SCONSCON中的中的TITI置置1 1。 數(shù)據(jù)接收數(shù)據(jù)接收 接收時(shí),在接收時(shí),在REN=1REN=1前提下
17、,當(dāng)采樣到前提下,當(dāng)采樣到RXDRXD從從1 1向向0 0跳變狀態(tài)時(shí),就認(rèn)定跳變狀態(tài)時(shí),就認(rèn)定為已接收到起始位。隨后在移位脈沖的控制下,將為已接收到起始位。隨后在移位脈沖的控制下,將串行串行接收接收數(shù)據(jù)數(shù)據(jù)移入移入SBUFSBUF中。一幀數(shù)據(jù)中。一幀數(shù)據(jù)接收接收完畢,將完畢,將SCONSCON中的中的RIRI置置1 1,表示可以從,表示可以從SBUFSBUF取走取走接收到的一個(gè)字符。接收到的一個(gè)字符。 C51系列單片機(jī)有一個(gè)全雙工的串行口2 2SMODSMOD3232foscfosc12 12 波特率波特率 在實(shí)際應(yīng)用時(shí),通常是先確定波特率,后根據(jù)波特率求在實(shí)際應(yīng)用時(shí),通常是先確定波特率,后根
18、據(jù)波特率求T1T1定定時(shí)初值,因此上式又可寫為:時(shí)初值,因此上式又可寫為: 波特率波特率 方式方式1 1波特率可變,由定時(shí)波特率可變,由定時(shí)/ /計(jì)數(shù)器計(jì)數(shù)器T1T1的計(jì)數(shù)溢出率來決定。的計(jì)數(shù)溢出率來決定。波特率波特率 = 2= 2SMODSMOD(T1T1溢出率)溢出率)/ 32/ 32 其中其中SMODSMOD為為PCONPCON寄存器中最高位的值,寄存器中最高位的值,SMOD=1SMOD=1表示波特率倍表示波特率倍增。增。T1T1初值初值 = 256 = 256 C51系列單片機(jī)有一個(gè)全雙工的串行口 應(yīng)用舉例應(yīng)用舉例【例【例6-36-3】設(shè)甲乙機(jī)以串行方式】設(shè)甲乙機(jī)以串行方式1 1進(jìn)行數(shù)
19、據(jù)傳送,進(jìn)行數(shù)據(jù)傳送,fosc=11.0592MHzfosc=11.0592MHz,波特,波特率為率為1200b/s1200b/s。甲機(jī)發(fā)送的。甲機(jī)發(fā)送的1616個(gè)數(shù)據(jù)存在內(nèi)個(gè)數(shù)據(jù)存在內(nèi)RAM 40HRAM 40H4FH4FH單元中,乙機(jī)接單元中,乙機(jī)接收后存在內(nèi)收后存在內(nèi)RAM 50HRAM 50H為首地址的區(qū)域中為首地址的區(qū)域中。 T1T1初值初值 = 256 - = 256 - = 232 = E8H = 232 = E8H3232121212001200解:解:串行方式串行方式1 1波特率取決于波特率取決于T1T1溢出率溢出率( (設(shè)設(shè)SMOD=0),SMOD=0),計(jì)算計(jì)算T1T1定
20、時(shí)初值:定時(shí)初值:2 20 0C51系列單片機(jī)有一個(gè)全雙工的串行口甲機(jī)發(fā)送子程序:甲機(jī)發(fā)送子程序: MOV TMOD,#20HMOV TMOD,#20H; ;置置T1T1定時(shí)器工作方式定時(shí)器工作方式2 2MOV TL1,#0E8HMOV TL1,#0E8H; ;置置T1T1計(jì)數(shù)初值計(jì)數(shù)初值MOV TH1,#0E8HMOV TH1,#0E8H; ;置置T1T1計(jì)數(shù)重裝值計(jì)數(shù)重裝值CLR ET1CLR ET1; ;禁止禁止T1T1中斷中斷SETB TR1SETB TR1;T1;T1啟動(dòng)啟動(dòng)MOV SCON,#40HMOV SCON,#40H; ;置串行方式置串行方式1,1,禁止接收禁止接收MOV
21、PCON,#00HMOV PCON,#00H; ;置置SMOD=0(SMODSMOD=0(SMOD不能位操作不能位操作) ) CLR ESCLR ES; ;禁止串行中斷禁止串行中斷MOV R0,#40HMOV R0,#40H; ;置發(fā)送數(shù)據(jù)區(qū)首地址置發(fā)送數(shù)據(jù)區(qū)首地址MOV R2,#16MOV R2,#16; ;置發(fā)送數(shù)據(jù)長(zhǎng)度置發(fā)送數(shù)據(jù)長(zhǎng)度A,R0A,R0 ; ;讀一個(gè)數(shù)據(jù)讀一個(gè)數(shù)據(jù)MOVMOVSBUF,ASBUF,A; ;發(fā)送發(fā)送JNBJNBTI,$TI,$; ;等待一幀數(shù)據(jù)發(fā)送完畢等待一幀數(shù)據(jù)發(fā)送完畢CLRCLRTITI; ;清發(fā)送中斷標(biāo)志清發(fā)送中斷標(biāo)志INCINCR0R0; ;指向下一字節(jié)
22、單元指向下一字節(jié)單元DJNZDJNZR2,TRSAR2,TRSA; ;判判1616個(gè)數(shù)據(jù)發(fā)完否個(gè)數(shù)據(jù)發(fā)完否? ?未完繼續(xù)未完繼續(xù)RET RET ; ;TXDA:TXDA:TRSA:TRSA:C51系列單片機(jī)有一個(gè)全雙工的串行口MOV TMOD,#20HMOV TMOD,#20H; ;置置T1T1定時(shí)器工作方式定時(shí)器工作方式2 2MOV TL1,#0E8HMOV TL1,#0E8H; ;置置T1T1計(jì)數(shù)初值計(jì)數(shù)初值MOV TH1,#0E8HMOV TH1,#0E8H; ;置置T1T1計(jì)數(shù)重裝值計(jì)數(shù)重裝值CLR ET1CLR ET1; ;禁止禁止T1T1中斷中斷SETB TR1SETB TR1;T
23、1;T1啟動(dòng)啟動(dòng)MOV SCON,#40HMOV SCON,#40H; ;置串行方式置串行方式1,1,禁止接收禁止接收MOV PCON,#00HMOV PCON,#00H; ;置置SMOD=0(SMODSMOD=0(SMOD不能位操作不能位操作) )CLR ESCLR ES; ;禁止串行中斷禁止串行中斷MOV R0,#50HMOV R0,#50H ; ;置接收數(shù)據(jù)區(qū)首地址置接收數(shù)據(jù)區(qū)首地址MOV R2,#16MOV R2,#16 ; ;置接收數(shù)據(jù)長(zhǎng)度置接收數(shù)據(jù)長(zhǎng)度SETB RENSETB REN; ;啟動(dòng)接收啟動(dòng)接收J(rèn)NBJNB RI,$ RI,$; ;等待一幀數(shù)據(jù)接收完畢等待一幀數(shù)據(jù)接收完畢
24、CLRCLR RI RI; ;清接收中斷標(biāo)志清接收中斷標(biāo)志MOVMOV A,SBUF A,SBUF ; ;讀接收數(shù)據(jù)讀接收數(shù)據(jù)MOVMOV R0,A R0,A; ;存接收數(shù)據(jù)存接收數(shù)據(jù)INCINC R0 R0; ;指向下一數(shù)據(jù)存儲(chǔ)單元指向下一數(shù)據(jù)存儲(chǔ)單元DJNZDJNZ R2,RDSB R2,RDSB; ;判判1616個(gè)數(shù)據(jù)接收完否個(gè)數(shù)據(jù)接收完否? ?未完繼續(xù)未完繼續(xù)RET RET ; ;乙機(jī)接收子程序:乙機(jī)接收子程序:RXDB:RXDB:RDSB:RDSB:C51系列單片機(jī)有一個(gè)全雙工的串行口 方式方式2 2是一幀是一幀1111位的串行通信方式,即位的串行通信方式,即1 1個(gè)起始位,個(gè)起始位
25、,8 8個(gè)數(shù)個(gè)數(shù)據(jù)位,據(jù)位,1 1個(gè)可編程位個(gè)可編程位TB8/RB8TB8/RB8和和1 1個(gè)停止位,個(gè)停止位, 其幀格式為:其幀格式為:3 3、 串行工作方式串行工作方式2 2起始起始D0D0D1D1D2D2D3D3D4D4D5D5D6D6D7D7TB8/RB8TB8/RB8停止停止波特率波特率=2=2SMOD SMOD fosc/64 fosc/64 可編程位可編程位TB8/RB8TB8/RB8既可作奇偶校驗(yàn)位用,也可作控制位既可作奇偶校驗(yàn)位用,也可作控制位(多機(jī)通信)用,其功能由用戶確定。(多機(jī)通信)用,其功能由用戶確定。 數(shù)據(jù)發(fā)送和接收與方式數(shù)據(jù)發(fā)送和接收與方式1 1基本相同,區(qū)別在于
26、方式基本相同,區(qū)別在于方式2 2把發(fā)送把發(fā)送/ /接接收到的第收到的第9 9位內(nèi)容送入位內(nèi)容送入TB8/RB8TB8/RB8。 波特率:方式波特率:方式2 2波特率固定,即波特率固定,即fosc/32fosc/32和和fosc/64fosc/64。 如用公式表如用公式表示則為:示則為:C51系列單片機(jī)有一個(gè)全雙工的串行口【例【例6-46-4】 設(shè)計(jì)一個(gè)串行方式設(shè)計(jì)一個(gè)串行方式2 2發(fā)送子程序(發(fā)送子程序(SMOD=1SMOD=1),),將片內(nèi)將片內(nèi)RAM 50HRAM 50H5FH5FH中的數(shù)據(jù)串行發(fā)送,第中的數(shù)據(jù)串行發(fā)送,第9 9數(shù)據(jù)位作為數(shù)據(jù)位作為奇偶校驗(yàn)位。接到接收方核對(duì)正確的回復(fù)信號(hào)(
27、用奇偶校驗(yàn)位。接到接收方核對(duì)正確的回復(fù)信號(hào)(用FFHFFH表表示)后,再發(fā)送下一字節(jié)數(shù)據(jù),否則再重發(fā)一遍。示)后,再發(fā)送下一字節(jié)數(shù)據(jù),否則再重發(fā)一遍。解:程序如下:解:程序如下:C51系列單片機(jī)有一個(gè)全雙工的串行口MOV A,R0 MOV A,R0 ; ;讀數(shù)據(jù)讀數(shù)據(jù)MOV C,PSW.0 MOV C,PSW.0 ; ;奇偶標(biāo)志送奇偶標(biāo)志送TB8TB8MOV TB8,C MOV TB8,C ; ;MOV SBUF,A MOV SBUF,A ; ;啟動(dòng)發(fā)送啟動(dòng)發(fā)送JNB TI,$ JNB TI,$ ; ;等待一幀數(shù)據(jù)發(fā)送完畢等待一幀數(shù)據(jù)發(fā)送完畢CLR TI CLR TI ; ;清發(fā)送中斷標(biāo)志清發(fā)
28、送中斷標(biāo)志SETB REN SETB REN ; ;允許接收允許接收CLR RI CLR RI ; ;清接收中斷標(biāo)志清接收中斷標(biāo)志JNB RI,$ JNB RI,$ ; ;等待接收回復(fù)信號(hào)等待接收回復(fù)信號(hào)MOV A,SBUF MOV A,SBUF ; ;讀回復(fù)信號(hào)讀回復(fù)信號(hào)CPL A CPL A ; ;回復(fù)信號(hào)取反回復(fù)信號(hào)取反JNZ TRLP JNZ TRLP ; ;非全非全0(0(回復(fù)信號(hào)回復(fù)信號(hào)FFH,FFH,錯(cuò)誤錯(cuò)誤),),轉(zhuǎn)重發(fā)轉(zhuǎn)重發(fā)INC R0 INC R0 ; ;全全0(0(回復(fù)信號(hào)回復(fù)信號(hào)=FFH,=FFH,正確正確),), 指向下一數(shù)據(jù)存儲(chǔ)單元指向下一數(shù)據(jù)存儲(chǔ)單元CJNE R0
29、,#60H,TRLP CJNE R0,#60H,TRLP ; ;判判1616個(gè)數(shù)據(jù)發(fā)送完否個(gè)數(shù)據(jù)發(fā)送完否? ?未完繼續(xù)未完繼續(xù)RET RET ; ;TRLP:TRLP:MOV SCON,#80H MOV SCON,#80H ; ;置串行方式置串行方式2,2,禁止接收禁止接收MOV PCON,#80H MOV PCON,#80H ; ;置置SMOD=1SMOD=1MOV R0,#50HMOV R0,#50H; ;置發(fā)送數(shù)據(jù)區(qū)首址置發(fā)送數(shù)據(jù)區(qū)首址TRS2:TRS2:C51系列單片機(jī)有一個(gè)全雙工的串行口【例【例6-56-5】 編制一個(gè)串行方式編制一個(gè)串行方式2 2接收子程序,接收上例發(fā)接收子程序,接
30、收上例發(fā)送的送的1616個(gè)數(shù)據(jù),存首址為個(gè)數(shù)據(jù),存首址為40H40H的內(nèi)的內(nèi)RAMRAM中,并核對(duì)奇偶中,并核對(duì)奇偶校驗(yàn)位,接收核對(duì)正確,發(fā)出回復(fù)信號(hào)校驗(yàn)位,接收核對(duì)正確,發(fā)出回復(fù)信號(hào)FFHFFH;發(fā)現(xiàn)錯(cuò);發(fā)現(xiàn)錯(cuò)誤,發(fā)出回復(fù)信號(hào)誤,發(fā)出回復(fù)信號(hào)00H00H,并等待重新接收。,并等待重新接收。C51系列單片機(jī)有一個(gè)全雙工的串行口RXD2: MOV SCON,#80H RXD2: MOV SCON,#80H ; ;置串行方式置串行方式2,2,禁止接收禁止接收 MOV PCON,#80H MOV PCON,#80H ; ;置置SMOD=1SMOD=1 MOV R0,#40H MOV R0,#40H
31、; ;置接收數(shù)據(jù)區(qū)首址置接收數(shù)據(jù)區(qū)首址 SETB REN SETB REN ; ;啟動(dòng)接收啟動(dòng)接收RWAP: JNB RI,$ RWAP: JNB RI,$ ; ;等待一幀數(shù)據(jù)接收完畢等待一幀數(shù)據(jù)接收完畢 CLR RICLR RI ; ;清接收中斷標(biāo)志清接收中斷標(biāo)志 MOV A,SBUF MOV A,SBUF ; ;讀接收數(shù)據(jù)讀接收數(shù)據(jù), ,并在并在PSWPSW中產(chǎn)生接收數(shù)據(jù)的奇偶值中產(chǎn)生接收數(shù)據(jù)的奇偶值 JB PSW.0,ONE JB PSW.0,ONE ;P=1,;P=1,轉(zhuǎn)另判轉(zhuǎn)另判 JB RB8,ERR JB RB8,ERR ;P=0,RB8=1,;P=0,RB8=1,接收有錯(cuò)接收有錯(cuò)
32、; ; ;P=0,RB8=0,;P=0,RB8=0,接收正確接收正確, ,繼續(xù)接收繼續(xù)接收RLOP: MOV R0,A RLOP: MOV R0,A ; ;存接收數(shù)據(jù)存接收數(shù)據(jù) INC R0 INC R0 ; ;指向下一數(shù)據(jù)存儲(chǔ)單元指向下一數(shù)據(jù)存儲(chǔ)單元RIT: MOV A,#0FFH RIT: MOV A,#0FFH ; ;置回復(fù)信號(hào)正確置回復(fù)信號(hào)正確FDBK: MOV SBUF,A FDBK: MOV SBUF,A ; ;發(fā)送回復(fù)信號(hào)發(fā)送回復(fù)信號(hào) CJNE R0,#50H,RWAP CJNE R0,#50H,RWAP ; ;判判1616個(gè)數(shù)據(jù)接收完否個(gè)數(shù)據(jù)接收完否? ?未完繼續(xù)未完繼續(xù) CLR REN CLR REN ;16;16個(gè)數(shù)據(jù)正確接收完畢個(gè)數(shù)據(jù)正確接收完畢, ,禁止接收禁止接收 RET RET ; ;ONE: JNB RB8,ERR ONE: JNB RB8,ERR ;P=1,RB8=0,;P=1,RB8=0,接收有錯(cuò)接收有錯(cuò) SJMP RIT SJMP RIT ;P=1,RB8=1,;P=1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年上半年安徽宣城市事業(yè)單位市縣聯(lián)動(dòng)引進(jìn)急需緊缺專業(yè)人才71人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年上半年安徽安慶桐城市衛(wèi)健系統(tǒng)“綠色通道”引進(jìn)專業(yè)技術(shù)人員20人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年上半年安徽合肥興泰資本管理限公司招聘6人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年上半年安徽六安市金安區(qū)從社區(qū)工作者中招聘事業(yè)單位工作人員5人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年上半年安徽六安城市建設(shè)投資集團(tuán)招聘20人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年上半年寧波市江北區(qū)審管辦招考編外工作人員易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2024年懸架系統(tǒng)減震元件項(xiàng)目資金申請(qǐng)報(bào)告代可行性研究報(bào)告
- 2024福建省青山紙業(yè)股份有限公司秋季招聘14人筆試參考題庫附帶答案詳解
- 高中生物1.2.1細(xì)胞的多樣性和統(tǒng)一性同步練習(xí)2含解析新人教版必修1
- 2025年半干半濕脫硫除塵器項(xiàng)目可行性研究報(bào)告
- 2025屆海南省??谑忻8呖加⒄Z二模試卷含解析
- 《中醫(yī)美容》課件
- 2023年高考真題-歷史(遼寧卷) 含解析
- 2024年中國(guó)電動(dòng)紅外線槍玩具市場(chǎng)調(diào)查研究報(bào)告
- 員工安全風(fēng)險(xiǎn)辨識(shí)及管控措施
- 《大氣污染物控制工程》-揮發(fā)性有機(jī)物污染控制
- 《連續(xù)性腎替代治療容量評(píng)估與管理專家共識(shí)》解讀課件
- 健康產(chǎn)業(yè)數(shù)字化服務(wù)平臺(tái)建設(shè)及運(yùn)營(yíng)模式
- Python開發(fā)工程師招聘筆試題及解答(某大型國(guó)企)
- 現(xiàn)代家政導(dǎo)論-課件 5.2.1認(rèn)識(shí)國(guó)外家政服務(wù)業(yè)發(fā)展
- 汽車機(jī)械制圖習(xí)題冊(cè) 習(xí)題答案 F8-項(xiàng)目八-識(shí)讀零件圖
評(píng)論
0/150
提交評(píng)論