




已閱讀5頁(yè),還剩90頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1,第7章 AT89S51單片機(jī) 的串行口,1,成都理工大學(xué)工程技術(shù)學(xué)院 自動(dòng)化工程系,2,2,第7章 目錄 7.1 串行口的結(jié)構(gòu) 7.1.1 串行口控制寄存器SCON 7.1.2 特殊功能寄存器PCON 7.2 串行口的4種工作方式 7.2.1 方式0 7.2.2 方式1 7.2.3 方式2 7.2.4 方式3 7.3 多機(jī)通信0,3,7.4 波特率的制定方法 7.4.1 波特率的定義 7.4.2 定時(shí)器T1產(chǎn)生波特率的計(jì)算 7.5 串行口的應(yīng)用 7.5.1 雙機(jī)串行通信的硬件連接 7.5.2 串行通信設(shè)計(jì)需要考慮的問題 7.5.3 雙機(jī)串行通信軟件編程 7.5.4 PC機(jī)與單片機(jī)的點(diǎn)對(duì)點(diǎn)串行通信接口設(shè)計(jì) 7.5.5 PC機(jī)與單片機(jī)與多個(gè)單片機(jī)的串行通信接口設(shè)計(jì),4,5,7.1 串行口的結(jié)構(gòu) 內(nèi)部結(jié)構(gòu)如圖7-1所示。 有兩個(gè)物理上獨(dú)立的接收、發(fā)送緩沖器SBUF(屬于特殊功能寄存器),可同時(shí)發(fā)送、接收數(shù)據(jù)。 發(fā)送緩沖器只能寫入不能讀出 接收緩沖器只能讀出不能寫入 兩個(gè)緩沖器共用一個(gè)特殊功能寄存器字節(jié)地址(99H)。 控制寄存器共有兩個(gè):特殊功能寄存器SCON和PCON。,5,6,圖7-1 串行口的內(nèi)部結(jié)構(gòu)圖,6,7,7.1.1 串行口控制寄存器SCON 字節(jié)地址98H,可位尋址,位地址為98H9FH。格式如圖7-2所示。 圖7-2 串行口控制寄存器SCON的格式 介紹SCON中各位的功能。 (1)SM0、SM1串行口4種工作方式選擇位 SM0、SM1兩位編碼所對(duì)應(yīng)的4種工作方式見表7-1。,7,8,(2)SM2多機(jī)通信控制位 多機(jī)通信是在方式2和方式3下進(jìn)行。當(dāng)串口以方式2或方式3接收時(shí),如果SM2 = 1,則只有當(dāng)接收到的第9位數(shù)據(jù)(RB8)為“1”時(shí),才使RI置“1”,產(chǎn)生中斷請(qǐng)求,并將接收到的前8位數(shù)據(jù)送入SBUF。 當(dāng)接收到的第9位數(shù)據(jù)(RB8)為“0”時(shí),則將接收到的前8位數(shù)據(jù)丟棄。,8,9,當(dāng)SM2 = 0時(shí),則不論第9位數(shù)據(jù)是1還是0,都將前8位數(shù)據(jù)送入SBUF中,并使RI置1,產(chǎn)生中斷請(qǐng)求。 在方式1時(shí),如果SM2 = 1,則只有收到有效的停止位時(shí)才會(huì)激活RI。 在方式0時(shí),SM2必須為0。 (3)REN允許串行接收位。 由軟件置“1”或清“0”。 REN=1,允許串行口接收數(shù)據(jù)。 REN=0,禁止串行口接收數(shù)據(jù)。,9,10,(4)TB8發(fā)送的第9位數(shù)據(jù) 方式2和方式3,TB8是要發(fā)送的第9位數(shù)據(jù),其值由軟件置“1”或清“0”。在雙機(jī)串行通信時(shí),一般作為奇偶校驗(yàn)位使用;在多機(jī)串行通信中用來表示主機(jī)發(fā)送的是地址幀還是數(shù)據(jù)幀,TB8=1為地址幀,TB8=0為數(shù)據(jù)幀。 (5)RB8接收的第9位數(shù)據(jù) 方式2和方式3,RB8存放接收到的第9位數(shù)據(jù)。在方式1,如SM2 = 0,RB8是接收到的停止位。在方式0,不使用RB8。 (6)TI發(fā)送中斷標(biāo)志位 方式0,串行發(fā)送的第8位數(shù)據(jù)結(jié)束時(shí)TI由硬件置“1”,在其他方式中,串行口發(fā)送停止位的開始時(shí)置TI 為“1”。,10,11,TI =1,表示一幀數(shù)據(jù)發(fā)送結(jié)束。TI的狀態(tài)可供軟件查詢,也可申請(qǐng)中斷。CPU響應(yīng)中斷后,在中斷服務(wù)程序中向SBUF寫入要發(fā)送的下一幀數(shù)據(jù)。TI必須由軟件清“0”。 (7)RI接收中斷標(biāo)志位 方式0時(shí),接收完第8位數(shù)據(jù)時(shí),RI由硬件置“1”。在其他工作方式中,串行接收到停止位時(shí),該位置“1”。RI = 1,表示一幀數(shù)據(jù)接收完畢,并申請(qǐng)中斷,要求CPU從接收SBUF取走數(shù)據(jù)。該位的狀態(tài)也可供軟件查詢。RI必須由軟件清“0”。,12,SCON的所有位都可進(jìn)行位操作清“0”或置“1”。 7.1.2 特殊功能寄存器PCON 字節(jié)地址為87H,不能位尋址。格式如圖7-3所示。,12,圖7-3 特殊功能寄存器PCON的格式,13,下面介紹PCON中各位功能。僅最高位SMOD與串口有關(guān),其他各位的功能已在第2章的節(jié)電工作方式一節(jié)中作過介紹。 SMOD:波特率選擇位。 例如,方式1的波特率計(jì)算公式為 方式1波特率 = 定時(shí)器T1的溢出率 當(dāng)SMOD = 1時(shí),要比SMOD = 0時(shí)的波特率加倍,所以也稱SMOD位為波特率倍增位。,13,14,7.2 串行口的4種工作方式 4種工作方式由特殊功能寄存器SCON中SM0、SM1位定義,編碼見表7-1。 7.2.1 方式0 方式0為同步移位寄存器輸入/輸出方式。該方式并不用于兩個(gè)AT89S51單片機(jī)之間的異步串行通信,而是用于串行口外接移位寄存器,擴(kuò)展并行I/O口。 8位數(shù)據(jù)為一幀,無(wú)起始位和停止位,先發(fā)送或接收最低位。波特率固定,為fosc/12。幀格式如圖7-4所示。 圖7-4 方式0的幀格式,14,15,1方式0發(fā)送 (1)方式0發(fā)送過程 當(dāng)CPU執(zhí)行一條將數(shù)據(jù)寫入發(fā)送緩沖器SBUF的指令時(shí),產(chǎn)生一個(gè)正脈沖,串行口開始把SBUF中的8位數(shù)據(jù)以fosc/12的固定波特率從RXD引腳串行輸出,低位在先,TXD引腳輸出同步移位脈沖,發(fā)送完8位數(shù)據(jù),中斷標(biāo)志位TI置“1”。 發(fā)送時(shí)序如圖7-5所示。,15,16,16,圖7-5 方式0發(fā)送時(shí)序,17,(2)方式0發(fā)送應(yīng)用舉例 圖7-6所示為方式0發(fā)送的一個(gè)具體應(yīng)用,通過串行口外接8位串行輸入并行輸出移位寄存器74LS164,擴(kuò)展兩個(gè)8位并行輸出口的具體電路。 方式0發(fā)送時(shí),串行數(shù)據(jù)由P3.0(RXD端)送出,移位脈沖由P3.1(TXD端)送出。 在移位脈沖的作用下,串行口發(fā)送緩沖器的數(shù)據(jù)逐位地從P3.0串行移入74LS164中。,17,18,圖7-6 外接串入并出移位寄存器74LS164擴(kuò)展的并行輸 出口,18,19,2方式0接收 (1)方式0接收過程 方式0接收,REN為串行口允許接收控制位,REN=0,禁止接收;REN = 1,允許接收。 當(dāng)向SCON寄存器寫入控制字(設(shè)置為方式0,并使REN位置1,同時(shí)RI = 0)時(shí),產(chǎn)生一個(gè)正脈沖,串行口開始接收數(shù)據(jù)。 引腳RXD為數(shù)據(jù)輸入端,TXD為移位脈沖信號(hào)輸出端,接收器以fosc/12的固定波特率采樣RXD引腳的數(shù)據(jù)信息,當(dāng)接收完8位數(shù)據(jù)時(shí),中斷標(biāo)志RI置1,表示一幀數(shù)據(jù)接收完畢,可進(jìn)行下一幀數(shù)據(jù)的接收,時(shí)序如圖7-7所示。,19,20,圖7-7 方式0接收時(shí)序,21,(2)方式0接收應(yīng)用舉例 圖7-8為串行口外接兩片8位并行輸入串行輸出的寄存器74LS165擴(kuò)展兩個(gè)8位并行輸入口的電路。 當(dāng)74LS165的S/ 端由高到低跳變時(shí),并行輸入端的數(shù)據(jù)被置入寄存器;當(dāng)S/ = 1,且時(shí)鐘禁止端(第15腳)為低電平時(shí),允許TXD(P3.1)串行移位脈沖輸入,這時(shí)在移位脈沖作用下,數(shù)據(jù)由右向左方向移動(dòng),以串行方式進(jìn)入串行口的接收緩沖器中。,21,22,22,圖7-8 擴(kuò)展74LS165作為并行輸入口,23,在圖7-8中: TXD(P3.1)作為移位脈沖輸出與所有75LS165的移位脈沖輸入端CP相連; RXD(P3.0)作為串行數(shù)據(jù)輸入端與74LS165的串行輸出端QH相連;P1.0與S/ 相連,用來控制74LS165的串行移位或并行輸入; 74LS165的時(shí)鐘禁止端(第15腳)接地,表示允許時(shí)鐘輸入。 當(dāng)擴(kuò)展多個(gè)8位輸入口時(shí),相鄰兩芯片的首尾(QH與SIN)相連。,23,24,在方式0,SCON中的TB8、RB8位沒有用到,發(fā)送或接收完8位數(shù)據(jù)由硬件使TI或RI中斷標(biāo)志位置“1”,CPU響應(yīng)TI或RI中斷,在中斷服務(wù)程序中向發(fā)送SBUF中送入下一個(gè)要發(fā)送的數(shù)據(jù)或從接收SBUF中把接收到的1B存入內(nèi)部RAM中。 注意,TI或RI標(biāo)志位必須由軟件清“0”,采用如下指令: CLR TI ;TI位清“0” CLR RI ;RI位清“0” 方式0時(shí),SM2位(多機(jī)通信控制位)必須為0。,24,25,7.2.2 方式1 方式1為雙機(jī)串行通信方式,如圖7-9所示。 當(dāng)SM0、SM1=01時(shí),串行口設(shè)為方式1的雙機(jī)串行通信。TXD腳和RXD腳分別用于發(fā)送和接收數(shù)據(jù)。 圖7-9 方式1雙機(jī)串行通信的連接電路,25,26,方式1一幀數(shù)據(jù)為10位,1個(gè)起始位(0),8個(gè)數(shù)據(jù)位,1個(gè)停止位(1),先發(fā)送或接收最低位。幀格式如圖7-10所示。 圖7-10 方式1的幀格式 方式1為波特率可變的8位異步通信接口。波特率由下式確定: 方式1波特率 = 定時(shí)器T1的溢出率 式中,SMOD為PCON寄存器的最高位的值(0或1)。,26,27,1方式1發(fā)送 方式1輸出時(shí),數(shù)據(jù)位由TXD端輸出,發(fā)送一幀信息為10位:1位起始位0,8位數(shù)據(jù)位(先低位)和1位停止位1。當(dāng)CPU執(zhí)行一條數(shù)據(jù)寫SBUF的指令,就啟動(dòng)發(fā)送。發(fā)送時(shí)序見圖7-11。 圖7-11中TX時(shí)鐘的頻率就是發(fā)送的波特率。 發(fā)送開始時(shí),內(nèi)部發(fā)送控制信號(hào) 變?yōu)橛行?,將起始位向TXD腳(P3.1)輸出,此后每經(jīng)過一個(gè)TX時(shí)鐘周期,便產(chǎn)生一個(gè)移位脈沖,并由TXD引腳輸出一個(gè)數(shù)據(jù)位。8位數(shù)據(jù)位全部發(fā)送完畢后,中斷標(biāo)志位TI置1。,27,28,圖7-11 方式1發(fā)送時(shí)序,28,29,2方式1接收 方式1接收時(shí)(REN = 1),數(shù)據(jù)從RXD(P3.0)引腳輸入。當(dāng)檢測(cè)到起始位的負(fù)跳變,則開始接收。接收時(shí)序見圖7-12。 接收時(shí),定時(shí)控制信號(hào)有兩種,一種是接收移位時(shí)鐘(RX時(shí)鐘),它的頻率和傳送的波特率相同,另一種是位檢測(cè)器采樣脈沖,頻率是RX時(shí)鐘的16倍。以波特率的16倍速率采樣RXD腳狀態(tài)。當(dāng)采樣到RXD端從1到0的負(fù)跳變時(shí)就啟動(dòng)檢測(cè)器,接收的值是3次連續(xù)采樣(第7、8、9個(gè)脈沖時(shí)采樣)取兩次相同的值,以確認(rèn)起始位(負(fù)跳變)的開始,較好地消除干擾引起的影響。,29,30,圖7-12 方式1接收時(shí)序,30,當(dāng)確認(rèn)起始位有效時(shí),開始接收一幀信息。每一位數(shù)據(jù),也都進(jìn)行3次連續(xù)采樣(第7、8、9個(gè)脈沖采樣),接收的值是3次采樣中至少兩次相同的值。當(dāng)一幀數(shù)據(jù)接收完畢后,同時(shí)滿,31,足以下兩個(gè)條件,接收才有效。 (1)RI = 0,即上一幀數(shù)據(jù)接收完成時(shí),RI = 1發(fā)出的中斷請(qǐng)求已被響應(yīng),SBUF中的數(shù)據(jù)已被取走,說明“接收SBUF”已空。 (2)SM2 = 0或收到的停止位 = 1(方式1時(shí),停止位已進(jìn)入RB8),則將接收到的數(shù)據(jù)裝入SBUF和RB8(裝入的是停止位),且中斷標(biāo)志RI置“1”。 若不同時(shí)滿足兩個(gè)條件,收的數(shù)據(jù)不能裝入SBUF,該幀數(shù)據(jù)將丟棄。,31,32,7.2.3 方式2 方式2和方式3,為9位異步通信接口。每幀數(shù)據(jù)為11位,1位起始位0,8位數(shù)據(jù)位(先低位),1位可程控為1或0的第9位數(shù)據(jù)和1位停止位。方式2、方式3幀格式如圖7-13所示。 圖7-13 方式2、方式3的幀格式 方式2波特率 = fosc,32,33,1方式2發(fā)送 發(fā)送前,先根據(jù)通信協(xié)議由軟件設(shè)置TB8(如奇偶校驗(yàn)位或多機(jī)通信的地址/數(shù)據(jù)標(biāo)志位),然后將要發(fā)送的數(shù)據(jù)寫入SBUF,即啟動(dòng)發(fā)送。TB8自動(dòng)裝入第9位數(shù)據(jù)位,逐一發(fā)送。發(fā)送完畢,使TI位置“1”。 發(fā)送時(shí)序如圖7-14所示。 圖7-14 方式2和方式3發(fā)送時(shí)序,33,34,【例7-1】方式2發(fā)送在雙機(jī)串行通信中的應(yīng)用 下面的發(fā)送中斷服務(wù)程序,以TB8作為奇偶校驗(yàn)位,偶校驗(yàn)發(fā)送。數(shù)據(jù)寫入SBUF之前,先將數(shù)據(jù)的偶校驗(yàn)位寫入TB8(設(shè)第2組的工作寄存器區(qū)的R0作為發(fā)送數(shù)據(jù)區(qū)地址指針)。 PIPTI: PUSH PSW ;現(xiàn)場(chǎng)保護(hù) PUSH Acc SETB RS1 ;選擇第2組工作寄存器區(qū) CLR RS0 CLR TI ;發(fā)送中斷標(biāo)志清“0” MOV A,R0 ;取數(shù)據(jù) MOV C,P ;校驗(yàn)位送TB8, 采用偶校驗(yàn) MOV TB8,C ;P=1,校驗(yàn)位TB8=1,P=0,校驗(yàn)位TB8=0,34,35,MOV SBUF ,A ;A數(shù)據(jù)發(fā)送,同時(shí)發(fā)TB8 INC R0 ;數(shù)據(jù)指針加1 POP Acc ;恢復(fù)現(xiàn)場(chǎng) POP PSW RETI ;中斷返回 2方式2接收 SM0、SM1=10,且REN = 1時(shí),以方式2接收數(shù)據(jù)。數(shù)據(jù)由RXD端輸入,接收11位信息。當(dāng)位檢測(cè)邏輯采樣到RXD的負(fù)跳變,判斷起始位有效,便開始接收一幀信息。在接收完第9位數(shù)據(jù)后,需滿足以下兩個(gè)條件,才能將接收到的數(shù)據(jù)送入SBUF(接收緩沖器)。 (1)RI = 0,意味著接收緩沖器為空。 (2)SM2 = 0或接收到的第9位數(shù)據(jù)位RB8 = 1。,35,36,當(dāng)滿足上述兩個(gè)條件時(shí),收到的數(shù)據(jù)送SBUF(接收緩沖器),第9位數(shù)據(jù)送入RB8,且RI置“1”。若不滿足這兩個(gè)條件,接收的信息將被丟棄。 串行口方式2和方式3接收時(shí)序如圖7-15所示。 圖7-15 方式2和方式3接收時(shí)序,36,37,【例7-2】方式2接收在雙機(jī)通信中的應(yīng)用。 本例對(duì)例7-1發(fā)送的數(shù)據(jù)進(jìn)行偶校驗(yàn)接收,程序如下(設(shè)1組寄存器區(qū)的R0為數(shù)據(jù)緩沖區(qū)指針)。 PIRI: PUSH PSW ;保護(hù)現(xiàn)場(chǎng) PUSH Acc SETB RS0 ;選擇1組寄存器區(qū) CLR RS1 CLR RI MOV A,SBUF ;將接收到數(shù)據(jù)送到累加器A MOV C,P ;接收到數(shù)據(jù)字節(jié)的奇偶性送入C位,37,38,JNC L1 ;C=0,收的字節(jié)1的個(gè)數(shù)為偶數(shù),跳L1處 JNB RB8,ERP ;C=1,再判RB8=0?如RB8=0,則 ;出錯(cuò),跳ERP出錯(cuò)處理 AJMP L2 ;C=1,RB8=1,收的數(shù)據(jù)正確,跳L2處 L1: JB RB8,ERP ;C=0,再判RB8=1?如RB8=1, ;則出錯(cuò),跳ERP出錯(cuò)處理 L2: MOV R0,A ;C=0,RB8=0或C=1,RB8=1, ;接收數(shù)據(jù)正確,存入數(shù)據(jù)緩沖區(qū) INC R0 ;數(shù)據(jù)緩沖區(qū)指針增1,為下次接收做準(zhǔn)備 POP Acc ;恢復(fù)現(xiàn)場(chǎng) POP PSW,38,39,ERP: ;出錯(cuò)處理程序段入口 RETI 7.2.4 方式3 SM0、SM1=11時(shí),方式3。為波特率可變的9位異步通信方式,除了波特率外,方式3和方式2相同。方式3發(fā)送和接收時(shí)序如圖7-11和圖7-12所示。 方式3波特率 = 定時(shí)器T1的溢出率,39,40,7.3 多機(jī)通信 多個(gè)單片機(jī)可利用串行口進(jìn)行多機(jī)通信,經(jīng)常采用如圖7-16所示的主從式結(jié)構(gòu)。系統(tǒng)中有1個(gè)主機(jī)(單片機(jī)或其他有串行接口的微機(jī))和多個(gè)單片機(jī)組成的從機(jī)系統(tǒng)。主機(jī)的RXD與所有從機(jī)的TXD端相連,TXD與所有從機(jī)的RXD端相連。從機(jī)地址分別為01H、02H和03H。 圖7-16 多機(jī)通信系統(tǒng)示意圖,40,41,主從式是指多機(jī)系統(tǒng)中,只有一個(gè)主機(jī),其余全是從機(jī)。主機(jī)發(fā)送的信息可以被所有從機(jī)接收,任何一個(gè)從機(jī)發(fā)送的信息,只能由主機(jī)接收。從機(jī)和從機(jī)之間不能進(jìn)行直接通信,只能經(jīng)主機(jī)才能實(shí)現(xiàn)。 多機(jī)通信的工作原理: 要保證主機(jī)與所選擇的從機(jī)通信,須保證串口有識(shí)別功能。SCON中的SM2位就是為滿足這一條件設(shè)置的多機(jī)通信控制位。其工作原理是在串行口以方式2(或方式3)接收時(shí),若SM2 = 1,則表示進(jìn)行多機(jī)通信,可能以下兩種情況:,41,42,(1)從機(jī)接收到的主機(jī)發(fā)來的第9位數(shù)據(jù)RB8=1時(shí),前8位數(shù)據(jù)才裝入SBUF,并置中斷標(biāo)志RI = 1,向CPU發(fā)出中斷請(qǐng)求。 在中斷服務(wù)程序中,從機(jī)把接收到的SBUF中的數(shù)據(jù)存入數(shù)據(jù)緩沖區(qū)中。 (2)如果從機(jī)接收到的第9位數(shù)據(jù)RB8=0時(shí),則不產(chǎn)生中斷標(biāo)志RI=1,不引起中斷,從機(jī)不接收主機(jī)發(fā)來的數(shù)據(jù)。 若SM2 = 0,則接收的第9位數(shù)據(jù)不論是0還是1,從機(jī)都將產(chǎn)生RI = 1中斷標(biāo)志,接收到的數(shù)據(jù)裝入SBUF中。,43,應(yīng)用這一特性,可實(shí)現(xiàn)AT89S51單片機(jī)的多機(jī)通信。多機(jī)通信的工作過程: (1)各從機(jī)初始化程序允許從機(jī)的串行口中斷,將串行口編程為方式2或方式3接收,即9位異步通信方式,且SM2和REN位置“1”,使從機(jī)處于多機(jī)通信且只接收地址幀的狀態(tài)。 (2)在主機(jī)和某個(gè)從機(jī)通信之前,先將從機(jī)地址(即準(zhǔn)備接收數(shù)據(jù)的從機(jī))發(fā)送給各個(gè)從機(jī),接著才傳送數(shù)據(jù)(或命令),主機(jī)發(fā)出的地址幀信息的第9位為1,數(shù)據(jù)(或命令)幀的第9位為0。當(dāng)主機(jī)向各從機(jī)發(fā)送地址幀時(shí),各從機(jī)的串行口接收到的第9位信息RB8為1,且由,43,44,于各從機(jī)的SM2=1,則RI置“1”,各從機(jī)響應(yīng)中斷,在中斷服務(wù)子程序中,判斷主機(jī)送來的地址是否和本機(jī)地址相符合,若為本機(jī)地址,則該從機(jī)SM2位清“0”,準(zhǔn)備接收主機(jī)的數(shù)據(jù)或命令;若地址不相符,則保持SM2 = 1。 (3)接著主機(jī)發(fā)送數(shù)據(jù)(或命令)幀,數(shù)據(jù)幀的第9位為0。此時(shí)各從機(jī)接收到的RB8 = 0。 只有與前面地址相符合的從機(jī)(即SM2位已清“0”的從機(jī))才能激活中斷標(biāo)志位RI,從而進(jìn)入中斷服務(wù)程序,接收主機(jī)發(fā)來的數(shù)據(jù)(或命令); 與主機(jī)發(fā)來的地址不相符的從機(jī),由于SM2保持為1,又RB8 = 0,因此不能激活中斷標(biāo)志RI,就不能接受主機(jī),44,45,發(fā)來的數(shù)據(jù)幀。從而保證主機(jī)與從機(jī)間通信的正確性。此時(shí)主機(jī)與建立聯(lián)系的從機(jī)已經(jīng)設(shè)置為單機(jī)通信模式,即在整個(gè)通信中,通信的雙方都要保持發(fā)送數(shù)據(jù)的第9位(即TB8位)為0,防止其他的從機(jī)誤接收數(shù)據(jù)。 (4)結(jié)束數(shù)據(jù)通信并為下一次的多機(jī)通信做好準(zhǔn)備。在多機(jī)系統(tǒng),每個(gè)從機(jī)都被賦予唯一的地址。例如,圖7-16三個(gè)從機(jī)的地址可設(shè)為:01H、02H、03H。 還要預(yù)留12個(gè)“廣播地址”,它是所有從機(jī)共有的地址,例如將“廣播地址”設(shè)為00H。當(dāng)主機(jī)與從機(jī)的數(shù)據(jù)通信結(jié)束后,一定要將從機(jī)再設(shè)置為多機(jī)通信模式,以便進(jìn)行下一次的多機(jī)通信。,46,這時(shí)要求與主機(jī)正在進(jìn)行數(shù)據(jù)傳輸?shù)膹臋C(jī)必須隨時(shí)注意,一旦接收的數(shù)據(jù)第9位(RB8)為“1”,說明主機(jī)傳送的不再是數(shù)據(jù),而是地址,這個(gè)地址就有可能是“廣播地址”。 當(dāng)收到“廣播地址”后,便將從機(jī)的通信模式再設(shè)置成多機(jī)模式,為下一次的多機(jī)通信做好準(zhǔn)備。,46,47,7.4 波特率的制定方法 串行通信,收、發(fā)雙方發(fā)送或接收的波特率必須一致。4種工作方式。 方式0和方式2的波特率是固定的; 方式1和方式3的波特率是可變的,由T1溢出率確定。 7.4.1 波特率的定義 波特率的定義:串行口每秒發(fā)送(或接收)的位數(shù)。設(shè)發(fā)送一位所需要的時(shí)間為T,則波特率為1/T。 定時(shí)器的不同工作方式,得到的波特率的范圍不一樣,這是由T1在不同工作方式下計(jì)數(shù)位數(shù)的不同所決定。,47,48,7.4.2 定時(shí)器T1產(chǎn)生波特率的計(jì)算 和串行口的工作方式有關(guān)。 (1)方式0時(shí),波特率固定為時(shí)鐘頻率fosc的1/12,不受SMOD位值的影響。若fosc = 12 MHz,波特率為1Mbit/s。 (2)方式2時(shí),波特率僅與SMOD位的值有關(guān)。 方式2波特率 = fosc 若fosc = 12 MHz: SMOD = 0,波特率 = 187.5 kbit/s;SMOD = 1,波特率 為375 kbit/s。 (3)方式1或方式3定時(shí),常用T1作為波特率發(fā)生器,其關(guān)系式為,48,49,波特率 = 定時(shí)器T1的溢出率 (7-1) 由式(7-1)見,T1溢出率和SMOD的值共同決定波特率。 在實(shí)際設(shè)定波特率時(shí),T1常設(shè)置為方式2定時(shí)(自動(dòng)裝初值),即TL1作為8位計(jì)數(shù)器,TH1存放備用初值。這種方式操作方便,也避免因軟件重裝初值帶來的定時(shí)誤差。 設(shè)定時(shí)器T1方式2的初值為X,則有 定時(shí)器T1的溢出率 = (7-2),49,50,將式(7-2)代入式(7-1),則有 波特率 = (7-3) 由式(7-3)可見,波特率隨fosc、SMOD和初值X而變化。 實(shí)際使用時(shí),經(jīng)常根據(jù)已知波特率和時(shí)鐘頻率fosc來計(jì)算T1的初值X。為避免繁雜的初值計(jì)算,常用的波特率和初值X間的關(guān)系常列成表7-2的形式,以供查用。,50,51,表7-2 用定時(shí)器T1產(chǎn)生的常用波特率,51,52,對(duì)表7-2有兩點(diǎn)需要注意: (1)在使用的時(shí)鐘振蕩頻率fosc為12MHz或6MHz時(shí),將初值X和fosc帶入式(7-3)中計(jì)算出的波特率有一定誤差。消除誤差可采用時(shí)鐘頻率11.0592MHz。(2)如果選用很低的波特率,如波特率選為55,可將定時(shí)器T1設(shè)置為方式1定時(shí)。但在這種情況下,T1溢出時(shí),需在中斷服務(wù)程序中重新裝入初值。中斷響應(yīng)時(shí)間和執(zhí)行指令時(shí)間會(huì)使波特率產(chǎn)生一定的誤差,可用改變初值的方法加以調(diào)整。,52,53,【例7-3】 若時(shí)鐘頻率為11.0592MHz,選用T1的方式2定時(shí)作為波特率發(fā)生器,波特率為2 400bit/s,求初值。 設(shè)T1為方式2定時(shí),選SMOD = 0。 將已知條件帶入式(7-3)中 波特率 = = 2400 從中解得X = 244 = F4H。 只要把F4H裝入TH1和TL1,則T1產(chǎn)生的波特率為2 400bit/s。該結(jié)果也可直接從表7-2中查到。 這里時(shí)鐘振蕩頻率選為11.0592MHz,就可使初值為整數(shù),從而產(chǎn)生精確的波特率。,53,54,7.5 串行口的應(yīng)用 利用串行口可實(shí)現(xiàn)單片機(jī)間的點(diǎn)對(duì)點(diǎn)串行通信、多機(jī)通信以及單片機(jī)與PC機(jī)間的單機(jī)或多機(jī)通信。限于篇幅,本節(jié)僅介紹單片機(jī)間的雙機(jī)串行通信的接口和軟件設(shè)計(jì)。 7.5.1 雙機(jī)串行通信的硬件連接 AT89S51串行口的輸入、輸出均為TTL電平??垢蓴_性差,傳輸距離短,傳輸速率低。為提高串行通信的可靠性,增大串行通信的距離和提高傳輸速率,都采用標(biāo)準(zhǔn)串行接口,如RS-232、RS-422A、RS-485等。 根據(jù)通信距離和抗干擾性要求,可選擇TTL電平傳輸、RS-232C、RS-422A、RS-485串口進(jìn)行串行數(shù)據(jù)傳輸。,54,55,1TTL電平通信接口 如果兩個(gè)單片機(jī)相距在1.5m之內(nèi),它們的串行口可直接相連,接口如圖7-9所示。甲機(jī)RXD與乙機(jī)TXD端相連,乙機(jī)RXD與甲機(jī)TXD端相連。 2RS-232C雙機(jī)通信接口 如果雙機(jī)通信距離在1.515m之間時(shí),可用RS-232C標(biāo)準(zhǔn)接口實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)的雙機(jī)通信,接口如圖7-17所示。圖7-17的MAX232A是美國(guó)MAXIM(美信)公司生產(chǎn)的RS-232C雙工發(fā)送器/接收器電路芯片。,55,56,圖7-17 RS-232C雙機(jī)通信接口電路,57,3RS-422A雙機(jī)通信接口 RS-232C有明顯缺點(diǎn):傳輸速率低、通信距離短、接口處信號(hào)容易產(chǎn)生串?dāng)_等。國(guó)際上又推出了RS-422A標(biāo)準(zhǔn)。與RS-232C的主要區(qū)別是,收發(fā)雙方的信號(hào)地不再共地,RS-422A采用了平衡驅(qū)動(dòng)和差分接收的方法。用于數(shù)據(jù)傳輸?shù)氖莾蓷l平衡導(dǎo)線,這相當(dāng)于兩個(gè)單端驅(qū)動(dòng)器。 兩條線上傳輸?shù)男盘?hào)電平,當(dāng)一個(gè)表示邏輯“1”時(shí),另一條一定為邏輯“0”。若傳輸中,信號(hào)中混入干擾和噪聲(共模形式),由于差分接收器的作用,就能識(shí)別有用信號(hào)并正確接收傳輸?shù)男畔?,并使干擾和噪聲相互抵消。,57,58,RS-422A能在長(zhǎng)距離、高速率下傳輸數(shù)據(jù)。它的最大傳輸率為10Mbit/s,電纜允許長(zhǎng)度為12m,如果采用較低傳輸速率時(shí),最大傳輸距離可達(dá)1219m。 為了增加通信距離,可采用光電隔離,利用RS-422A標(biāo)準(zhǔn)進(jìn)行雙機(jī)通信的接口電路如圖7-18所示。 圖中,每個(gè)通道的接收端都接有3個(gè)電阻R1、R2和R3,其中R1為傳輸線的匹配電阻,取值范圍在501k,其他兩個(gè)電阻是為了解決第一個(gè)數(shù)據(jù)的誤碼而設(shè)置的匹配電阻。為了起到隔離、抗干擾的作用,圖7-18中必須使用兩組獨(dú)立的電源。 圖中的SN75174、SN75175是TTL電平到RS-422A電平與RS-422A電平到TTL電平的電平轉(zhuǎn)換芯片。,58,59,59,圖7-18 RS-422A雙機(jī)通信接口電路,60,4RS-485雙機(jī)通信接口 RS-422A雙機(jī)通信需四芯傳輸線,這對(duì)長(zhǎng)距離通信很不經(jīng)濟(jì),故在工業(yè)現(xiàn)場(chǎng),通常采用雙絞線傳輸?shù)腞S-485串行通信接口,很容易實(shí)現(xiàn)多機(jī)通信。 RS-485是RS-422A的變型,它與RS-422A的區(qū)別:RS-422A為全雙工,采用兩對(duì)平衡差分信號(hào)線;RS-485為半雙工,采用一對(duì)平衡差分信號(hào)線。 RS-485對(duì)于多站互連是十分方便的,很容易實(shí)現(xiàn)多機(jī)通信。RS-485允許最多并聯(lián)32臺(tái)驅(qū)動(dòng)器和32臺(tái)接收器。圖7-19為RS-485通信接口電路。與RS-422A一樣,最大傳輸距離約為1219m,最大傳輸速率為10Mbit/s。,60,61,61,圖7-19 RS-485雙機(jī)通信接口電路,62,通信線路要采用平衡雙絞線。平衡雙絞線的長(zhǎng)度與傳輸速率成反比,在100kbit/s速率以下,才可能使用規(guī)定的最長(zhǎng)電纜。 只有在很短的距離下才能獲得最大傳輸速率。一般100m長(zhǎng)雙絞線最大傳輸速率僅為1Mbit/s。 圖7-19,RS-485以雙向、半雙工的方式來實(shí)現(xiàn)雙機(jī)通信。在AT89S51單片機(jī)系統(tǒng)發(fā)送或接收數(shù)據(jù)前,應(yīng)先將SN75176的發(fā)送門或接收門打開,當(dāng)P1.0=1時(shí),發(fā)送門打開,接收門關(guān)閉;當(dāng)P1.0=0時(shí),接收門打開,發(fā)送門關(guān)閉。,63,圖7-19中的SN75176芯片內(nèi)集成了一個(gè)差分驅(qū)動(dòng)器和一個(gè)差分接收器,且兼有TTL電平到RS-485電平、RS-485電平到TTL電平的轉(zhuǎn)換功能。 此外常用的RS-485接口芯片還有MAX485。 7.5.2 串行通信設(shè)計(jì)需要考慮的問題 單片機(jī)的串行通信接口設(shè)計(jì)時(shí),需考慮如下問題。 (1)首先確定通信雙方的數(shù)據(jù)傳輸速率。 (2)由數(shù)據(jù)傳輸速率確定采用的串行通信接口標(biāo)準(zhǔn)。,63,64,(3)在通信接口標(biāo)準(zhǔn)允許的范圍內(nèi)確定通信的波特率。為減小波特率的誤差,通常選用11.0592MHz的晶振頻率。 (4)根據(jù)任務(wù)需要,確定收發(fā)雙方使用的通信協(xié)議。 (5)通信線的選擇,這是要考慮的一個(gè)很重要的因素。通信線一般選用雙絞線較好,并根據(jù)傳輸?shù)木嚯x選擇纖芯的直徑。如果空間的干擾較多,還要選擇帶有屏蔽層的雙絞線。 (6)通信協(xié)議確定后,進(jìn)行通信軟件編程,請(qǐng)見下面介紹。,64,65,7.5.3 雙機(jī)串行通信軟件編程 串行口的方式13是用于串行通信的,下面介紹雙機(jī)串行通信軟件編程。 應(yīng)當(dāng)說明的是,下面介紹的雙機(jī)串行通信的編程實(shí)際上與上面介紹的各種串行標(biāo)準(zhǔn)的硬件接口電路無(wú)關(guān),因?yàn)椴捎貌煌臉?biāo)準(zhǔn)串行通信接口僅僅是由雙機(jī)串行通信距離、傳輸速率以及抗干擾性能來決定的。,65,66,1串行口方式1應(yīng)用編程 【例7- 4】 采用方式1進(jìn)行雙機(jī)串行通信,收、發(fā)雙方均采用6MHz晶振,波特率為2 400bit/s,一幀信息為10位,發(fā)送方把以78H、77H單元的內(nèi)容為首地址,以76H、75H單元內(nèi)容減1為末地址的數(shù)據(jù)塊通過串口發(fā)送給收方。 發(fā)送方要發(fā)送的數(shù)據(jù)塊的地址為2000H201FH。先發(fā)地址幀,再發(fā)數(shù)據(jù)幀;接收方在接收時(shí)使用一個(gè)標(biāo)志位來區(qū)分接收的是地址還是數(shù)據(jù),然后將其分別存放到指定的單元,67,中。發(fā)送方可采用查詢方式或中斷方式發(fā)送數(shù)據(jù),接收方可采用中斷或查詢方式接收。 (1)甲機(jī)發(fā)送程序 中斷方式的發(fā)送程序如下: ORG 0000H ;程序初始入口 LJMP MAIN ORG 0023H ;串行中斷入口 LJMP COM_INT ORG 1000H,68,MAIN: MOV SP,#53H ;設(shè)置堆棧指針 MOV 78H,#20H ;設(shè)發(fā)送的數(shù)據(jù)塊首、末地址 MOV 77H,#00H MOV 76H,#20H MOV 75H,#40H ACALL TRANS ;調(diào)用發(fā)送子程序 HERE: SJMP HERE TRANS:MOV TMOD,#20H ;設(shè)置定時(shí)器/計(jì)數(shù)器工作方式 MOV TH1,#0F3H ;設(shè)置計(jì)數(shù)器初值 MOV TL1,#0F3H MOV PCON,#80H ;波特率加倍,68,69,SETB TR1 ;接通計(jì)數(shù)器計(jì)數(shù) MOV SCON,#40H ;設(shè)置串行口工作方式 MOV IE,#00H ;先關(guān)中斷, 用查詢方式發(fā)送地址幀 CLR F0 MOV SBUF,78H ;發(fā)送首地址高8位 WAIT1:JNB TI,WAIT1 CLR TI MOV SBUF,77H ;發(fā)送首地址低8位 WAIT2:JNB TI,WAIT2 CLR TI MOV SBUF,76H ;發(fā)送末地址高8位 WAIT3:JNB TI,WAIT3 CLR TI,69,70,MOV SBUF,75H ;發(fā)送末地址低8位 WAIT4: JNB TI,WAIT4 CLR TI MOV IE,#90H ;打開中斷允許寄存器, ;采用中斷方式發(fā)送數(shù)據(jù) MOV DPH,78H MOV DPL,77H MOVX A,DPTR MOV SBUF,A ;發(fā)送首個(gè)數(shù)據(jù) WAIT: JNB F0,WAIT ;發(fā)送等待 RET,70,71,COM_INT: CLR TI ;關(guān)發(fā)送中斷標(biāo)志位TI INC DPTR ;數(shù)據(jù)指針加1, 準(zhǔn)備發(fā)送 :下個(gè)數(shù)據(jù) MOV A,DPH ;判斷當(dāng)前被發(fā)送的數(shù)據(jù) ;的地址是不是末地址 CJNE A,76H,END1 ;不是末地址則跳轉(zhuǎn) MOV A,DPL ;同上 CJNE A,75H,END1 SETB F0 ;數(shù)據(jù)發(fā)送完, 置1標(biāo)志位 CLR ES ;關(guān)串行口中斷 CLR EA ;關(guān)中斷 RET ;中斷返回,71,72,END1: MOVX A,DPTR ;將要發(fā)送的數(shù)據(jù)送累加器, ;準(zhǔn)備發(fā)送 MOV SBUF,A ;發(fā)送數(shù)據(jù) RETI ;中斷返回 END (2)乙機(jī)接收程序。 中斷方式的接收程序如下: ORG 0000H LJMP MAIN ORG 0023H LJMP COM_INT ORG 1000H,72,73,MAIN: MOV SP,#53H ;設(shè)置堆棧指針 ACALL RECEI ;調(diào)用接收子程序 HERE: SJMP HERE RECEI: MOV R0,#78H ;設(shè)置地址接收區(qū) MOV TMOD,#20H ;設(shè)置定時(shí)器/計(jì)數(shù)器工作方式 MOV TH1,#0F3H ;設(shè)置波特率 MOV TL1,#0F3H MOV PCON,#80H ;波特率加倍 SETB TR1 ;開計(jì)數(shù)器 MOV SCON,#50H ;設(shè)置串行口工作方式 MOV IE,#90H ;開中斷 CLR F0 ;標(biāo)志位清0 CLR 7FH,73,74,WAIT: JNB 7FH,WAIT ;查詢標(biāo)志位等待接收 RET COM_INT: PUSH DPL ;壓棧, 保護(hù)現(xiàn)場(chǎng) PUSH DPH PUSH Acc CLR RI ;接收中斷標(biāo)志位清0 JB F0,R_DATA ;判接收的是數(shù)據(jù)還是 ;地址, F0=0為地址 MOV A,SBUF ;接收數(shù)據(jù) MOV R0,A ;將地址幀送指定的寄存器,74,75,DEC R0 CJNE R0,#74H,RETN SETB F0 ;置標(biāo)志位, 地址接收完畢 RETN: POP Acc ;出棧, 恢復(fù)現(xiàn)場(chǎng) POP DPH POP DPL RETI ;中斷返回 R_DATA:MOV DPH,78H ;數(shù)據(jù)接收程序區(qū) MOV DPL, 77H MOV A,SBUF ;接收數(shù)據(jù) MOVX DPTR,A ;送指定的數(shù)據(jù)存儲(chǔ)單元中,75,76,INC 77H ;地址加1 MOV A,77H ;判當(dāng)前接收數(shù)據(jù)的地址是否向高8位進(jìn)位 JNZ END2 ; INC 78H END2: MOV A,76H CJNE A,78H,RETN;判是否最后一幀, 不是則繼續(xù) MOV A,75H CJNE A,77H,RETN;是最后一幀則各種標(biāo)志位清0 CLR ES CLR EA SETB 7FH SJMP RETN ;跳入返回子程序區(qū) END,76,77,2串行口方式2應(yīng)用編程 方式2和方式1有兩點(diǎn)不同之處。接收/發(fā)送11位信息,多出第9位程控位,該位可由用戶置TB8決定,這是一個(gè)不同點(diǎn)。另一不同點(diǎn)是方式2波特率變化范圍比方式1小, 方式2的波特率 = 振蕩器頻率/n。 當(dāng)SMOD=0時(shí),n=64。 當(dāng)SMOD=1時(shí),n=32。 鑒于方式2的使用和方式3基本一樣(只是波特率不同),所以方式2的應(yīng)用,可參照下面的方式3編程。,77,78,3串行口方式3應(yīng)用編程 【例7-5】用方式3進(jìn)行發(fā)送和接收。發(fā)送方采用查詢方式發(fā)送地址幀,采用中斷或查詢方式發(fā)送數(shù)據(jù),接收方采用中斷或查詢方式接收數(shù)據(jù)。發(fā)方和收方均采用6MHz的晶振,波特率為4 800bit/s。 發(fā)方首先將存在78H和77H單元中的地址發(fā)送給接收方,然后發(fā)送數(shù)據(jù)00HFFH,共256個(gè)數(shù)據(jù)。 (1)甲機(jī)發(fā)送程序 中斷方式的發(fā)送程序如下: ORG 0000H LJMP MAIN,78,79,ORG 0023H LJMP COM_INT ORG 1000H MAIN: MOV SP,#53H ;設(shè)置堆棧指針 MOV 78H,#20H ;設(shè)要存放數(shù)據(jù)單元的首地址 MOV 77H,#00H ACALL TRAN ;調(diào)用發(fā)送子程序 HERE: SJMP HERE TRANS:MOV TMOD,#20H ;設(shè)置定時(shí)器/計(jì)數(shù)器工作方式 MOV TH1,#0FDH ;設(shè)置波特率為4 800bit/s MOV TL1,#0FDH SETB TR1 ;開定時(shí)器 MOV SCON,#0E0H ;設(shè)置串行口工作方式為方式3,79,80,SETB TB8 ;設(shè)置第9位數(shù)據(jù)位 MOV IE,#00H ;關(guān)中斷 MOV SBUF,78H ;查詢方式發(fā)首地址高8位 WAIT: JNB TI,WAIT CLR TI MOV SBUF,77H ;發(fā)送首地址低8位 WAIT2:JNB TI,WAIT2 CLR TI MOV IE,#90H ;開中斷 CLR TB8 MOV A,#00H MOV SBUF,A ;開始發(fā)送數(shù)據(jù),80,81,WAIT1: CJNE A,#0FFH,WAIT1;判數(shù)據(jù)是否發(fā)送完畢 CLR ES ;發(fā)送完畢則關(guān)中斷 RET COM_INT:CLR TI ;中斷服務(wù)子程序段 INC A ;要發(fā)送數(shù)據(jù)值加1 MOV SBUF,A ;發(fā)送數(shù)據(jù) RETI ;中斷返回 END (2)乙機(jī)接收程序 接收方把先接收到的數(shù)據(jù)送給數(shù)據(jù)指針,將其作為數(shù)據(jù)存放的首地址,然后將接下來接收到的數(shù)據(jù)存放到以先前接收的數(shù)據(jù)為首地址的單元中去。,81,82,中斷方式接收: ORG 0000H LJMP MAIN ORG 0023H LJMP COM_INT ORG 1000H MAIN: MOV SP,#53H ;設(shè)置堆棧指針 MOV R0,#0FEH;設(shè)置地址幀接收計(jì)數(shù)寄存器初值 ACALL RECEI ;調(diào)用接收子程序 HERE: SJMP HERE,82,83,RECEI: MOV TMOD,#20H ;設(shè)定時(shí)器工作方式 MOV TH1,#0FDH ;設(shè)置波特率為4800bit/s MOV TL1,#0FDH SETB TR1 ;開定時(shí)器 MOV IE,#90H ;開中斷 MOV SCON,#0F0H ;設(shè)串口工作方式, 允許接收 SETB F0 ;設(shè)置標(biāo)志位 WAIT: JB F0,WAIT ;等待接收 RET,83,84,COM_INT:CLR RI ;接收中斷標(biāo)志位清0 MOV C,RB8;判第9位
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 筆的制造生產(chǎn)過程優(yōu)化與仿真技術(shù)考核試卷
- 紙板容器工廠環(huán)境噪聲治理考核試卷
- 石棉水泥制品的國(guó)內(nèi)外質(zhì)量標(biāo)準(zhǔn)對(duì)比考核試卷
- 外科個(gè)案護(hù)理專題分析
- 新生兒高膽紅素血癥業(yè)務(wù)查房
- 腦癱患者麻醉管理規(guī)范
- Heneicomycin-生命科學(xué)試劑-MCE
- 湖北省2025年中考第三次模擬考試道德與法治試卷(解析版)
- 房地產(chǎn)行業(yè)深度報(bào)告-“好房子”系列專題一:四代宅崛起政策紅利與產(chǎn)品創(chuàng)新驅(qū)動(dòng)居住升級(jí)
- 2025年下半年食品飲料行業(yè)寒來暑往結(jié)構(gòu)破局
- 變電工程施工合同協(xié)議書
- 電工技術(shù)-北京科技大學(xué)中國(guó)大學(xué)mooc課后章節(jié)答案期末考試題庫(kù)2023年
- 星海音樂學(xué)院樂理試題A卷
- 2019年4月27日山東省紀(jì)委監(jiān)委遴選公務(wù)員考試真題及答案
- ktv包房服務(wù)員崗位職責(zé)8篇
- 西安某大跨度鋼桁架人行天橋結(jié)構(gòu)設(shè)計(jì)分析
- 新疆全部及全國(guó)部分加氣站分布情況6
- 初中學(xué)段勞動(dòng)任務(wù)清單(七到九年級(jí))
- 2023年中國(guó)各地磁偏角
- 六維領(lǐng)導(dǎo)力專題知識(shí)
- 【護(hù)士資格考試】云南省精神病醫(yī)院模擬檢測(cè)練習(xí)題
評(píng)論
0/150
提交評(píng)論