已閱讀5頁(yè),還剩74頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
.,第7章89C51串行口及串行通信技術(shù),教學(xué)目標(biāo)串行通信基本知識(shí)串行口及應(yīng)用89C51與89C51點(diǎn)對(duì)點(diǎn)異步通信89C51與PC機(jī)間通信軟件的設(shè)計(jì),.,7.1串行通信基本知識(shí),在實(shí)際工作中,計(jì)算機(jī)的CPU與外部設(shè)備之間常常要進(jìn)行信息交換,一臺(tái)計(jì)算機(jī)與其他計(jì)算機(jī)之間也往往要交換信息,所有這些信息交換均可稱為通信。通信方式有兩種,即并行通信和串行通信。通常根據(jù)信息傳送的距離決定采用哪種通信方式。例如,PC機(jī)與外部設(shè)備(如打印機(jī)等)通信時(shí),如果距離小于30m,可采用并行通信方式;當(dāng)距離大于30m時(shí),則要采用串行通信方式。89C51單片機(jī)具有并行和串行二種基本通信方式。,.,并行通信,并行通信是指數(shù)據(jù)的各位同時(shí)進(jìn)行傳送(發(fā)送或接收)的通信方式。優(yōu)點(diǎn):傳送速度快;缺點(diǎn):數(shù)據(jù)有多少位,就需要多少根傳送線。例如,右圖89C51單片機(jī)與外部設(shè)備之間的數(shù)據(jù)傳送就屬于并行通信。,.,串行通信,串行通信指數(shù)據(jù)是一位(bit)一位按順序傳送的通信方式。優(yōu)點(diǎn):只需一對(duì)傳輸線(利用電話線就可作為傳輸線),大大降低了傳送成本,特別適用于遠(yuǎn)距離通信;缺點(diǎn):傳送速度較低。假設(shè)并行傳送N位數(shù)據(jù)所需時(shí)間為T,那么串行傳送的時(shí)間至少為NT,實(shí)際上總是大于NT。,.,串行通信的傳輸方式,串行通信的傳輸方式通常有三種:?jiǎn)蜗颍ɑ騿喂ぃ┓绞?,只允許數(shù)據(jù)向一個(gè)方向傳送;半雙向(或半雙工)方式,允許數(shù)據(jù)向兩個(gè)方向中的任一方向傳送,但每次只能有一個(gè)站點(diǎn)發(fā)送;全雙向(或全雙工)方式,允許同時(shí)雙向傳送數(shù)據(jù),因此,全雙工配置是一對(duì)單向配置,它要求兩端的通信設(shè)備都具有完整和獨(dú)立的發(fā)送和接受能力。,.,串行通信中的數(shù)據(jù)傳送方式,.,異步通信和同步通信,串行通信有兩種基本通信方式,即異步通信和同步通信。異步通信在異步通信中,數(shù)據(jù)是一幀一幀(包括一個(gè)字符代碼或一字節(jié)數(shù)據(jù))傳送的。在幀格式中,一個(gè)字符由四個(gè)部分組成:起始位、數(shù)據(jù)位、奇偶校驗(yàn)位和停止位。首先是一個(gè)起始位(0),然后是58位數(shù)據(jù)(規(guī)定:低位在前,高位在后),接下來(lái)是奇偶校驗(yàn)位(可省略),最后是停止位(1)。,.,異步通信數(shù)據(jù)格式,(b)有空閑位,.,異步串行通信協(xié)議起始位(0)信號(hào)只占一位,用來(lái)通知接收設(shè)備一個(gè)待接收的字符開始到達(dá)。線路上在不傳送字符時(shí)應(yīng)保持為1。接收端不斷檢測(cè)線路的狀態(tài),若連續(xù)為1以后又測(cè)到一個(gè)0,就知道發(fā)來(lái)一個(gè)新字符,應(yīng)馬上準(zhǔn)備接收。字符的起始位還被用作同步接收端的時(shí)鐘,以保證以后的接收能正確進(jìn)行。起始位后面緊接著是數(shù)據(jù)位,它可以是5位(D0-D4)、6位、7位或8位(D0-D7)。若所傳字符為ASCII碼,則常取7位。奇偶校驗(yàn)(D8)只占一位,但在字符中也可以規(guī)定不用奇偶校驗(yàn)位,則這一位可省去。也可用這一位(1/0)來(lái)確定這一幀中的字符所代表信息的性質(zhì)(地址/數(shù)據(jù)等)。停止位用來(lái)表征字符的結(jié)束,它一定是高電位(邏輯1)。停止位可以是1位、1.5位或2位。接收端收到停止位后,知道上一字符已傳送完畢,同時(shí),也為接收下一個(gè)字符做好準(zhǔn)備。只要再接收到0,就是新的字符的起始位。若停止位以后不是緊接著傳送下一個(gè)字符,則使線路電平保持為高電平(邏輯1)。,.,同步通信,同步通信中,在數(shù)據(jù)開始傳送前用同步字符來(lái)指示(常約定1個(gè)-2個(gè)),并由時(shí)鐘來(lái)實(shí)現(xiàn)發(fā)送端和接收端同步,即檢測(cè)到規(guī)定的同步字符后,下面就連續(xù)按順序傳送數(shù)據(jù),直到通信告一段落。同步傳送時(shí),字符與字符之間沒(méi)有間隙,也不用起始位和停止位,僅在數(shù)據(jù)塊開始時(shí)用同步字符SYNC來(lái)指示。,.,同步通信,同步字符的插入可以是單同步字符方式或雙同步字符方式,然后是連續(xù)的數(shù)據(jù)塊。同步字符可以由用戶約定,也可采用ASCII碼中規(guī)定的SYNC代碼,即16H。按同步方式通信時(shí),先發(fā)送同步字符,接收方檢測(cè)到同步字符后,即準(zhǔn)備接收數(shù)據(jù)。在同步傳送時(shí),要求用時(shí)鐘來(lái)實(shí)現(xiàn)發(fā)送端與接收端之間的同步。為了保證接收正確無(wú)誤,發(fā)送方除了傳送數(shù)據(jù)外,還要同時(shí)傳送時(shí)鐘信號(hào)。同步傳送可以提高傳輸速率(達(dá)56kb/s或更高),但硬件比較復(fù)雜。,.,波特率(Baudrate),波特率,即數(shù)據(jù)傳送速率,表示每秒鐘傳送二進(jìn)制代碼的位數(shù),它的單位是b/s(bitspersecond)。假設(shè)數(shù)據(jù)傳送速率是120字符/s,而每個(gè)字符包含的代碼位有:1個(gè)起始位、8個(gè)數(shù)據(jù)位、1個(gè)停止位。這時(shí),傳送的波特率為:10b/字符120字符/s1200b/s每一位代碼的傳送時(shí)間Td為波特率的倒數(shù)。Td1/12000.833ms異步通信的傳送速率在50b/s19200b/s之間,常用于計(jì)算機(jī)到終端機(jī)和打印機(jī)之間的通信、直通電報(bào)以及無(wú)線電通信的數(shù)據(jù)發(fā)送等。,.,串行通信的過(guò)程,1、串并轉(zhuǎn)換與設(shè)備同步兩個(gè)通信設(shè)備在串行線路上成功地實(shí)現(xiàn)通信必須解決兩個(gè)問(wèn)題:1)串并轉(zhuǎn)換,即如何把要發(fā)送的并行數(shù)據(jù)串行化,把接收的串行數(shù)據(jù)并行化;2)設(shè)備同步,即發(fā)送設(shè)備與接收設(shè)備的工作節(jié)拍同步,以確保發(fā)送數(shù)據(jù)在接收端被正確讀出。,.,1、串并轉(zhuǎn)換與設(shè)備同步,1)串并轉(zhuǎn)換串行通信是將計(jì)算機(jī)內(nèi)部的并行數(shù)據(jù)轉(zhuǎn)換成串行數(shù)據(jù),將其通過(guò)一根通信線傳送;并將接收的串行數(shù)據(jù)再轉(zhuǎn)換成并行數(shù)據(jù)送到計(jì)算機(jī)中。在計(jì)算機(jī)串行發(fā)送數(shù)據(jù)之前,計(jì)算機(jī)內(nèi)部的并行數(shù)據(jù)被送入移位寄存器并一位一位地輸出,將并行數(shù)據(jù)轉(zhuǎn)換成串行數(shù)據(jù)。如圖7-5所示。在接收數(shù)據(jù)時(shí),來(lái)自通信線路的串行數(shù)據(jù)被壓入移位寄存器,滿8位后并行送到計(jì)算機(jī)內(nèi)部。如圖7-6所示。在串行通信控制電路中,串-并、并-串轉(zhuǎn)換邏輯被集成在串行異步通信控制器芯片中。89C51單片機(jī)的串行口和IBM-PC相同。,.,圖7-5,.,圖7-6,.,2)設(shè)備同步進(jìn)行串行通信的兩臺(tái)設(shè)備必須同步工作才能有效地檢測(cè)通信線路上的信號(hào)變化,從而采樣傳送數(shù)據(jù)的脈沖。設(shè)備同步對(duì)通信雙方有兩個(gè)共同要求:通信雙方必須采用統(tǒng)一的編碼方法;通信雙方必須能產(chǎn)生相同的傳送速率。采用統(tǒng)一的編碼方法確定了一個(gè)字符二進(jìn)制表示值的位發(fā)送順序和位串長(zhǎng)度,當(dāng)然還包括統(tǒng)一的邏輯電平規(guī)定,即電平信號(hào)高低與邏輯1和邏輯0的固定對(duì)應(yīng)關(guān)系。通信雙方只有產(chǎn)生相同的傳送速率,才能確保設(shè)備同步,這就要求發(fā)送設(shè)備和接收設(shè)備采用相同頻率的時(shí)鐘。發(fā)送設(shè)備在統(tǒng)一的時(shí)鐘脈沖上發(fā)出數(shù)據(jù),接收設(shè)備才能正確檢測(cè)出與時(shí)鐘脈沖同步的數(shù)據(jù)信息。,.,7.289C51串行口及應(yīng)用,89C51單片機(jī)除具有4個(gè)8位并行口外,還具有串行接口。此串行接口是一個(gè)全雙工串行通信接口,即能同時(shí)進(jìn)行串行發(fā)送和接收數(shù)據(jù)。它可以作UART(通用異步接收和發(fā)送器)用,也可以作同步移位寄存器用。使用串行接口可以實(shí)現(xiàn)89C51單片機(jī)系統(tǒng)之間點(diǎn)對(duì)點(diǎn)的單機(jī)通信和89C51與系統(tǒng)機(jī)(如IBM-PC機(jī)等)的單機(jī)或多機(jī)通信。,.,串行口結(jié)構(gòu),89C51通過(guò)引腳RXD(P3.0,串行數(shù)據(jù)接收端)和引腳TXD(P3.1,串行數(shù)據(jù)發(fā)送端)與外界進(jìn)行通信。有兩個(gè)物理獨(dú)立的接收、發(fā)送緩沖器SBUF,它們占用同一地址99H,可同時(shí)發(fā)送、接收數(shù)據(jù)。發(fā)送緩沖器只能寫入,不能讀出;接收緩沖器只能讀出,不能寫入。串行發(fā)送與接收的速率與移位時(shí)鐘同步。89C51用定時(shí)器T1作為串行通信的波特率發(fā)生器,T1溢出率經(jīng)2分頻(或不分頻)后又經(jīng)16分頻作為串行發(fā)送或接收的移位脈沖。移位脈沖的速率即是波特率。,.,串行口結(jié)構(gòu),串行口內(nèi)部結(jié)構(gòu)示意簡(jiǎn)圖,.,從圖中可看出,接收器是雙緩沖結(jié)構(gòu),在前一個(gè)字節(jié)被從接收緩沖器SBUF讀出之前,第二個(gè)字節(jié)即開始被接收(串行輸入至移位寄存器),但是,在第二個(gè)字節(jié)接收完畢而前一個(gè)字節(jié)CPU未讀取時(shí),會(huì)丟失前一個(gè)字節(jié)。(出現(xiàn)溢出錯(cuò)誤)串行口的發(fā)送和接收都是以特殊功能寄存器SBUF的名義進(jìn)行讀或?qū)懙摹.?dāng)向SBUF發(fā)“寫”命令時(shí)(執(zhí)行“MOVSBUF,A”指令),即是向發(fā)送緩沖器SBUF裝載并開始由TXD引腳向外發(fā)送一幀數(shù)據(jù),發(fā)送完便使發(fā)送中斷標(biāo)志位TI=1。在滿足串行口接收中斷標(biāo)志位RI(SCON.0)=0的條件下,置允許接收位REN(SCON.4)=1就會(huì)接收一幀數(shù)據(jù)進(jìn)入移位寄存器,并裝載到接收SBUF中,同時(shí)使RI=1。當(dāng)發(fā)讀SBUF命令時(shí)(執(zhí)行“MOVA,SBUF”命令),便由接收緩沖器(SBUF)取出信息通過(guò)89C51內(nèi)部總線送CPU。對(duì)于發(fā)送緩沖器,因?yàn)榘l(fā)送時(shí)CPU是主動(dòng)的,不會(huì)產(chǎn)生重疊錯(cuò)誤,一般不需要用雙緩沖器結(jié)構(gòu)來(lái)保持最大傳送速率。,.,串行口控制字及控制寄存器,89C51串行口是可編程接口,對(duì)它初始化編程只用兩個(gè)控制字分別寫入特殊功能寄存器SCON(98H)和電源控制寄存器PCON(87H)中即可。(1)SCON(98H)89C51串行通信的方式選擇、接收和發(fā)送控制以及串行口的狀態(tài)標(biāo)志等均由特殊功能寄存器SCON控制和指示。,.,串行口控制寄存器SCON,.,SCON(98H),SM0和SM1(SCON.7,SCON.6)串行口工作方式選擇位。兩個(gè)選擇位對(duì)應(yīng)4種通信方式,如下表所示。其中,fosc是振蕩頻率。,.,SM2(SCON.5)多機(jī)通信控制位,主要用于方式2和方式3。若置SM2=1,則允許多機(jī)通信。當(dāng)一片89C51(主機(jī))與多片89C51(從機(jī))通信時(shí),所有從機(jī)的SM2位都置1。主機(jī)首先發(fā)送的一幀數(shù)據(jù)為地址,即從機(jī)機(jī)號(hào),其中第9位為1,所有的從機(jī)接收到數(shù)據(jù)后,將其中第9位裝入RB8中。各個(gè)從機(jī)根據(jù)收到的第9位數(shù)據(jù)(RB8中)的值來(lái)決定從機(jī)可否再接收主機(jī)的信息。若(RB8)0,說(shuō)明是數(shù)據(jù)幀,則使接收中斷標(biāo)志位RI0,信息丟失;若(RB8)1,說(shuō)明是地址幀,數(shù)據(jù)裝入SBUF并置RI1,中斷所有從機(jī),被尋址的目標(biāo)從機(jī)清除SM2以接收主機(jī)發(fā)來(lái)的一幀數(shù)據(jù)。其他從機(jī)仍然保持SM21。若SM2=0,即不屬于多機(jī)通信情況,則接收一幀數(shù)據(jù)后,不管第9位數(shù)據(jù)是0還是1,都置RI=1,接收到的數(shù)據(jù)裝入SBUF。根據(jù)SM2這個(gè)功能,可實(shí)現(xiàn)多個(gè)89C51應(yīng)用系統(tǒng)的串行通信。在方式1時(shí),若SM2=1,則只有接收到有效停止位時(shí),RI才置1,以便接收下一幀數(shù)據(jù)。在方式0時(shí),SM2必須是0。,.,REN(SCON.4)允許接收控制位。由軟件置1或清0,只有當(dāng)REN1時(shí)才允許接收,相當(dāng)于串行接收的開關(guān);若REN0,則禁止接收。在串行通信接收控制過(guò)程中,如果滿足RI0和REN1(允許接收)的條件,就允許接收,一幀數(shù)據(jù)就裝載入接收SBUF中。TB8(SCON.3)發(fā)送數(shù)據(jù)的第9位(D8)裝入TB8中。在方式2或方式3中,根據(jù)發(fā)送數(shù)據(jù)的需要由軟件置位或復(fù)位。在許多通信協(xié)議中可用作奇偶校驗(yàn)位,也可在多機(jī)通信中作為發(fā)送地址幀或數(shù)據(jù)幀的標(biāo)志位。對(duì)于后者,TB81,說(shuō)明該幀數(shù)據(jù)為地址;TB80,說(shuō)明該幀數(shù)據(jù)為數(shù)據(jù)字節(jié)。在方式0或方式1中,該位未用。,.,RB8(SCON.2)接收數(shù)據(jù)的第9位。在方式2或方式3中,接收到的第9位數(shù)據(jù)放在RB8位。它或是約定的奇/偶校驗(yàn)位,或是約定的地址/數(shù)據(jù)標(biāo)識(shí)位。在方式2和方式3多機(jī)通信中,若SM21,如果RB81,說(shuō)明收到的數(shù)據(jù)為地址幀。在方式1中,若SM20(即不是多機(jī)通信情況),RB8中存放的是已接收到的停止位。在方式0中,該位未用。TI(SCON.1)發(fā)送中斷標(biāo)志。在一幀數(shù)據(jù)發(fā)送完時(shí)被置位。在方式0串行發(fā)送第8位結(jié)束或其他方式串行發(fā)送到停止位的開始時(shí)由硬件置位,可用軟件查詢。它同時(shí)也申請(qǐng)中斷,TI置位意味著向CPU提供“發(fā)送緩沖器SBUF已空”的信息,CPU可以準(zhǔn)備發(fā)送下一幀數(shù)據(jù)。串行口發(fā)送中斷被響應(yīng)后,TI不會(huì)自動(dòng)清0,必須由軟件清0。,.,RI(SCON.0)接收中斷標(biāo)志。在接收到一幀有效數(shù)據(jù)后由硬件置位。在方式0中,當(dāng)接受到數(shù)據(jù)的第8位時(shí),由硬件置位;在其他三種方式中,當(dāng)接收到停止位中間時(shí)由硬件置位。RI1,申請(qǐng)中斷,表示一幀數(shù)據(jù)接收結(jié)束,并已裝入接收SBUF中,要求CPU取走數(shù)據(jù)。CPU響應(yīng)中斷,取走數(shù)據(jù)。RI也必須由軟件(指令)清0,清除中斷申請(qǐng),并準(zhǔn)備接收下一幀數(shù)據(jù)。串行發(fā)送中斷標(biāo)志TI和接收中斷標(biāo)志RI是同一個(gè)中斷源,CPU事先不知道是發(fā)送中斷TI還是接收中斷RI產(chǎn)生的中斷請(qǐng)求,所以,在全雙工通信時(shí),必須由軟件來(lái)判別。復(fù)位時(shí),SCON所有位均清0。,.,(2)PCON(87H),電源控制寄存器PCON中只有SMOD位與串行口工作有關(guān)。復(fù)位時(shí),SMOD0。,.,串行通信工作方式,根據(jù)實(shí)際需要,89C51串行口可設(shè)置4種工作方式,可有8位、10位或11位幀格式。方式0:以8位數(shù)據(jù)為一幀,不設(shè)起始位和停止位,先發(fā)送或接收最低位。方式0為同步移位寄存器輸入/輸出方式,常用于擴(kuò)展I/O口。串行數(shù)據(jù)通過(guò)RXD輸入或輸出,而TXD用于輸出移位時(shí)鐘,作為外接部件的同步信號(hào)。其幀格式如下:,.,方式0的應(yīng)用,例如,74LS164可用于擴(kuò)展并行輸出口,74LS165可用于擴(kuò)展輸入口。在這種方式下,收/發(fā)的數(shù)據(jù)為8位,低位在前,無(wú)起始位、奇偶校驗(yàn)位及停止位,波特率是固定的。,.,74LS164功能概述74LS164是8位串行輸入平行輸出的移位寄存器;其中:Q0Q7為并行輸出端;DSA、DSB是串行輸入端。MR是清除端,為0時(shí),輸出清零。CP為時(shí)鐘輸入端。當(dāng)DSA、DSB任一輸入端為低電平時(shí),則禁止新數(shù)據(jù)輸入,在時(shí)鐘端CP脈沖上升沿作用下Q0為低電平。DSA、DSB有一個(gè)為高電平時(shí),則允許另一個(gè)輸入數(shù)據(jù),并在CP脈沖上升沿作用下決定Q0的狀態(tài)。兩個(gè)輸入端或者連接在一起,或者把不用的輸入端接高電平,一定不要懸空。時(shí)鐘(CP)每次由低變高時(shí),數(shù)據(jù)右移一位,輸入數(shù)據(jù)到Q0,Q0是兩個(gè)數(shù)據(jù)輸入端(DSA和DSB)的邏輯與。主復(fù)位(MR)輸入端上的一個(gè)低電平將使其它所有輸入端都無(wú)效,同時(shí)非同步地清除寄存器,強(qiáng)制所有的輸出為低電平。,.,方式1:以10位為一幀傳輸,設(shè)有1個(gè)起始位(0),8個(gè)數(shù)據(jù)位和1個(gè)停止位(1)。真正用于串行發(fā)送或接收,TXD與RXD分別用于發(fā)送與接收數(shù)據(jù)。在接收時(shí),停止位進(jìn)入SCON的RB8,此方式的傳送波特率可調(diào)。其幀格式為:,.,方式1的發(fā)送過(guò)程在TI=0的情況下(表示串行口發(fā)送控制電路處于空閑狀態(tài)),任何寫緩沖器SBUF指令,如“MOVSBUF,A”,會(huì)觸發(fā)串行發(fā)送過(guò)程:51機(jī)的串行口自動(dòng)在8個(gè)數(shù)據(jù)位的前、后分別添加1位起始位和停止位,構(gòu)成10位信息幀,按設(shè)定的波特率依次送出。當(dāng)8位數(shù)據(jù)發(fā)送結(jié)束后(即開始發(fā)送停止位)時(shí),串行口自動(dòng)將中斷標(biāo)志TI置1。TI標(biāo)志可用來(lái)查詢發(fā)送過(guò)程是否完成。在中斷處于開放狀態(tài)下,TI有效時(shí),將產(chǎn)生串行中斷。方式1的接收過(guò)程在接收中斷標(biāo)志RI=0(串行口接收緩沖器SBUF處于空閑)情況下,當(dāng)REN位置1時(shí),串行口處于接收狀態(tài)。按設(shè)定的波特率依次讀出數(shù)據(jù)位和停止位。在接收到第9數(shù)據(jù)位(即停止位時(shí)),接收電路必須同時(shí)滿足兩個(gè)條件:RI=0和SM2=0或接收到的停止位為“1”,才能把接收到的內(nèi)容存入接收緩沖器SBUF中,把停止位送入RB8中,并將RI置1和發(fā)出串行口中斷請(qǐng)求(若中斷開放)。否則,這次收到的數(shù)據(jù)將被舍去,而這是不被允許的。RI標(biāo)志可用來(lái)查詢接收過(guò)程是否完成。在方式1下,SM2應(yīng)設(shè)為0。,.,方式2和方式3(兩種方式唯一的區(qū)別是方式2的波特率固定,方式2和方式3的發(fā)送、接收時(shí)序與方式1類似,只是增加了一位第9位):以11位為1幀傳輸,設(shè)有1位起始位(0),8位數(shù)據(jù)位,1位可編程的第9位和1位停止位(1)。發(fā)送前,第9位數(shù)據(jù)位(D8)存放在TB8中,由軟件置1或清0。也可將奇偶位裝入TB8,從而進(jìn)行奇偶校驗(yàn)。發(fā)送時(shí)串行口能自動(dòng)把TB8取出,并裝入到第9位數(shù)據(jù)位的位置,再逐一發(fā)送出去。如指令“SETBTB8”將D8置1。當(dāng)滿足RI=0且SM2=0,或接收到的第9位數(shù)據(jù)為1時(shí),前8位數(shù)據(jù)送入SBUF,第9位數(shù)據(jù)位送入SCON中的RB8,置RI為1;否則,這次接收無(wú)效,也不置位RI。其幀格式為:,.,波特率設(shè)計(jì),方式0:波特率=fosc/12,方式2:SMOD=0時(shí),波特率=fosc/64;SMOD=1時(shí),波特率=fosc/32。方式1,方式3:波特率=T1溢出率/n當(dāng)SMOD=0時(shí),n=32;SMOD=1時(shí),n=16。所以,可用下式確定方式1和方式3的波特率:方式1、方式3波特率=2SMOD/32(T1溢出速率)其中,T1溢出速率取決于T1的計(jì)數(shù)速率(計(jì)數(shù)速率=fosc/12)和T1預(yù)置的初值。若定時(shí)器T1采用模式2時(shí),波特率公式如下:方式1、方式3波特率=2SMOD/32(fosc/12)/(256-初值),.,定時(shí)器T1用作波特率發(fā)生器時(shí),通常選用定時(shí)器模式2(自動(dòng)重裝初值定時(shí)器)比較實(shí)用。要設(shè)置定時(shí)器T1為定時(shí)方式(使C/T=0),讓T1計(jì)數(shù)內(nèi)部振蕩脈沖,即計(jì)數(shù)速率為fosc/12(注意應(yīng)禁止T1中斷,以免溢出而產(chǎn)生不必要的中斷)。先設(shè)定TH1和TL1的計(jì)數(shù)初值為X,那么每過(guò)“256-X”個(gè)機(jī)器周期,定時(shí)器T1就會(huì)產(chǎn)生一次溢出。因此,T1溢出速率為T1溢出速率=(fosc/12)/(256-X),.,波特率計(jì)算舉例,89C51單片機(jī)時(shí)鐘振蕩頻率為11.0592MHz,選用定時(shí)器T1工作模式2作為波特率發(fā)生器,波特率為2400b/s,求初值。解:設(shè)置波特率控制為(SMOD)=02400=2SMOD/32(fosc/12)/(256-初值)所以,(TH1)=(TL1)=F4H。,.,常用波特率與其它參數(shù)選取關(guān)系,.,串行口方式1的發(fā)送和接收,例2:89C51串行口按全雙工方式收、發(fā)ASCII字符,最高位用來(lái)作奇偶校驗(yàn)位,采用奇校驗(yàn)方式,要求傳送的波特率為1200b/s。編寫有關(guān)的通信程序。解:7位ASCII碼加1位奇校驗(yàn)位共8位數(shù)據(jù),故可采用串行口方式1。89C51單片機(jī)的奇偶校驗(yàn)位P:當(dāng)累加器A中1的個(gè)數(shù)為奇數(shù)時(shí),P=1,否則,P=0。如果直接把P的值放入ASCII碼的最高位,恰好成了偶校驗(yàn),與要求不符。因此,要把P的值取反后放入ASCII碼最高位,才是要求的奇校驗(yàn)。,.,雙工通信要求收、發(fā)能同時(shí)進(jìn)行。實(shí)際上,收、發(fā)操作主要是在串行接口進(jìn)行,CPU只是把數(shù)據(jù)從接收緩沖器讀出和把數(shù)據(jù)寫入發(fā)送緩沖器。數(shù)據(jù)傳送用中斷方式進(jìn)行,響應(yīng)中斷以后,通過(guò)檢測(cè)是RI置位還是TI置位來(lái)決定CPU是進(jìn)行發(fā)送操作還是接收操作。發(fā)送和接收都通過(guò)調(diào)用子程序來(lái)完成,設(shè)發(fā)送數(shù)據(jù)區(qū)的首地址為20H,接收數(shù)據(jù)區(qū)的首地址為40H,fosc為6MHz,通過(guò)查波特率初值(表7-2)可知定時(shí)器的初裝值為F3H。定時(shí)器T1采用工作模式2,可避免計(jì)數(shù)溢出后用軟件重裝定時(shí)初值的工作。,.,串行口初始化編程步驟,在串行口工作之前,應(yīng)對(duì)其進(jìn)行初始化,主要是設(shè)置產(chǎn)生波特率的定時(shí)器1,串行口控制寄存器SCON和中斷控制器IE,步驟如下:確定T1的工作方式(編程TMOD寄存器)計(jì)算T1的初值,裝載TH1、TL1;啟動(dòng)T1(編程TCON中的TR1位)確定串行口控制(編程SCON寄存器)串行口工作在中斷方式時(shí),要進(jìn)行中斷設(shè)置(編程IE、IP寄存器),.,主程序清單:ORG0000HAJMPSTARTORG0023H;串行口中斷入口AJMPSBR1;轉(zhuǎn)至中斷服務(wù)程序ORG0030HSTART:MOVTMOD,#20H;定時(shí)器1設(shè)為模式2MOVTL1,#0F3H;定時(shí)器初值MOVTH1,#0F3H;8位重裝值SETBTR1;啟動(dòng)定時(shí)器1MOVSCON,#50H;設(shè)置為方式1,;REN=1MOVR0,#20H;發(fā)送數(shù)據(jù)區(qū)首址MOVR1,#40H;接收數(shù)據(jù)區(qū)首址ACALLSOUT;先輸出一個(gè)字符SETBESSETBEASJMP$;等待中斷,中斷服務(wù)子程序ORG0100HSBR1:JNBRI,SEND;RI=0,為發(fā)送中斷ACALLSIN;否則,RI=1,為接;收中斷SJMPNEXT;轉(zhuǎn)至統(tǒng)一的出口SEND:ACALLSOUT;調(diào)用發(fā)送子程序NEXT:RETI;中斷返回,.,發(fā)送子程序SOUT:CLRTIMOVA,R0;取發(fā)送數(shù)據(jù)到AMOVC,P;奇偶標(biāo)識(shí)賦予CCPLC;奇校驗(yàn)MOVACC.7,C;ACC.7補(bǔ)0或1MOVSBUF,A;發(fā)送ASCII碼INCR0;修改發(fā)送數(shù)據(jù)指針RET;返回,接收子程序SIN:CLRRIMOVA,SBUF;讀出接收緩沖區(qū)內(nèi)容MOVC,P;取出校驗(yàn)位,P=1CPLC;奇校驗(yàn)JCERRORANLA,#7FH;刪去校驗(yàn)位MOVR1,A;讀入接收緩沖區(qū)INCRI;修改接收數(shù)據(jù)指針SJMPSIN_1ERROR:;出錯(cuò)處理,略SIN_1:RET;返回END,.,采用查詢方式由串行口發(fā)送帶奇偶校驗(yàn)位的數(shù)據(jù)塊。例3:設(shè)從內(nèi)部RAM單元30H-4FH取出ASCII碼數(shù)據(jù),在最高位上加偶校驗(yàn)位后由串行口發(fā)出。采用10位異步通信方式,波特率為1200b/s,fosc=11.059MHz。由要求可知,應(yīng)把串行口設(shè)置為方式1,采用定時(shí)器1模式2作為波特率發(fā)生器,預(yù)置值(TH1)=0E8H。,.,主程序;MOVTMOD,#20H;設(shè)置定時(shí)器1為模式2MOVTL1,#0E8H;初值,波特率為1200b/sMOVTH1,#0E8HSETBTR1;啟動(dòng)T1運(yùn)行MOVSCON,#01000000B;設(shè)置串行口為方式1MOVR0,#30H;設(shè)置數(shù)據(jù)塊起始地址MOVR7,#32;設(shè)置數(shù)據(jù)塊長(zhǎng)度LOOP:MOVA,R0ACALLS-OUT;調(diào)用發(fā)送子程序INCR0DJNZR7,LOOP,.,串行口發(fā)送子程序(偶校驗(yàn));S-OUT:MOVC,PSW.0;設(shè)置偶校驗(yàn)位MOVACC.7,C;ACC.7補(bǔ)0或1MOVSBUF,A;啟動(dòng)串行口發(fā)送過(guò)程JNBTI,$;等待發(fā)送完CLRTI;清TI標(biāo)志,允許再發(fā)送RETEND,.,串行口方式2和方式3的發(fā)送和接收,串行口方式2與方式3基本一樣(只是波特率設(shè)置不同),接收/發(fā)送11位信息:開始為1位起始位(0),中間8位數(shù)據(jù)位,數(shù)據(jù)位之后為1位程控位(由用戶置SCON的TB8決定),最后是1位停止位(1)。只比方式1多了一位程控位。,.,例4:設(shè)計(jì)一個(gè)發(fā)送程序,將片內(nèi)RAM50H5FH中的數(shù)據(jù)串行發(fā)送;串行口設(shè)定為方式2,TB8作奇偶校驗(yàn)位。在數(shù)據(jù)寫入發(fā)送緩沖器之前,先將數(shù)據(jù)的奇偶位P寫入TB8,這時(shí),第9位數(shù)據(jù)作奇偶校驗(yàn)用。,.,程序清單如下:TRT:MOVSCON,#80H;方式2設(shè)定MOVPCON,#80H;取波特率為fosc/32MOVR7,#10H;數(shù)據(jù)長(zhǎng)度10HR7LOOP:MOVA,R0;取數(shù)據(jù)AMOVC,PSW.0;PTB8MOVTB8,CMOVSBUF,A;數(shù)據(jù)SBUF,啟動(dòng)發(fā)送WAIT:JBCTI,CONT;判斷是否發(fā)送完SJMPWAITCONT:INCR0DJNZR7,LOOPRET,.,例5:編制一個(gè)串行口方式2接收程序,并核對(duì)奇偶標(biāo)志位。解:根據(jù)上面介紹的特點(diǎn),在方式2、方式3的發(fā)送過(guò)程中,將數(shù)據(jù)和附加在TB8中的奇偶標(biāo)志位一塊發(fā)向?qū)Ψ?。因此,作為接收的一方?yīng)設(shè)法取出該奇偶標(biāo)志位進(jìn)行核對(duì),相應(yīng)的接收程序段為:,.,RRR:MOVSCON,#90H;選方式2,并允許接收(REN=1)LOOP:JBCRI,RECEIV;等待接收數(shù)據(jù)并清RISJMPLOOPRECEIV:MOVA,SBUF;將接收到的字符取出后,送到A。注意,;傳送指令影響PSW,產(chǎn)生接收端的奇偶值JBPSW.0,ONE;判斷接收端的奇偶值JBRB8,ERR;判斷發(fā)送端的奇偶值SJMPRIGHTONE:JNBRB8,ERRRIGHT:;接收正確ERR:;接收有誤當(dāng)接收到一個(gè)字符時(shí),從SBUF轉(zhuǎn)移到A中時(shí)會(huì)產(chǎn)生接收端的奇偶值,而保存在RB8中的值為發(fā)送端的奇偶值,兩個(gè)奇偶值應(yīng)相等,否則接收字符有錯(cuò)。發(fā)現(xiàn)錯(cuò)誤要及時(shí)通知對(duì)方重發(fā)。,.,89C51與89C51點(diǎn)對(duì)點(diǎn)異步通信,1通信協(xié)議要想保證通信成功,通信雙方必須有一系列的約定,比如:作為發(fā)送方,必須知道什么時(shí)候發(fā)送信息,發(fā)什么,對(duì)方是否收到,收到的內(nèi)容有沒(méi)有錯(cuò),要不要重發(fā),怎樣通知對(duì)方結(jié)束等等。作為接收方,必須知道對(duì)方是否發(fā)送了信息,發(fā)的是什么,收到的信息是否有錯(cuò),如果有錯(cuò)怎樣通知對(duì)方重發(fā),怎樣判斷結(jié)束等。這種約定就叫做通信規(guī)程或協(xié)議,它必須在編程之前確定下來(lái)。要想使通信雙方能夠正確交換信息和數(shù)據(jù),在協(xié)議中對(duì)什么時(shí)候開始通信,什么時(shí)候結(jié)束通信,何時(shí)交換信息等等都必須作出明確的規(guī)定。只有雙方遵守這些規(guī)定才能順利地進(jìn)行通信。,.,2波特率設(shè)置在串行通信中,一個(gè)重要的指標(biāo)是波恃率,它反映了串行通信的速率,也反映了對(duì)于傳輸通道的要求。波特率越高,要求傳輸通道的頻帶越寬。一般異步通信的波特率在50b/s19200b/s之間。由于異步通信雙方各用自己的時(shí)鐘源,要保證捕捉到的信號(hào)正確,最好采用較高頻率的時(shí)鐘。一般選擇時(shí)鐘頻率比波特率高16倍或64倍。若是時(shí)鐘頻率等于波特率,則頻率稍有偏差便會(huì)產(chǎn)生接收錯(cuò)誤。,.,在異步通信中,收、發(fā)雙方必須事先規(guī)定兩件事:1、字符格式,即規(guī)定字符各部分所占的位數(shù)是否采用奇偶校驗(yàn)以及校驗(yàn)的方式(偶校驗(yàn)還是奇校驗(yàn))等通信協(xié)議;2、采用的波特率以及時(shí)鐘頻率和波特率的比例關(guān)系。89C51的串行通信的波特率(由圖7-16可知)由定時(shí)器T1的溢出率獲得(僅指串行口方式1、方式3時(shí)),當(dāng)串行口工作于方式1或方式3時(shí),波特率為:其中,k為定時(shí)器1的位數(shù),定時(shí)器模式0,k=13;定時(shí)器模式1,k=16;定時(shí)器模式2和摸式3,k=8。,.,例6:設(shè)甲機(jī)發(fā)送,乙機(jī)接收。串行接口工作于方式3(每幀數(shù)據(jù)為11位,第9位用于奇偶校驗(yàn)),兩機(jī)均選用6.0000MHz的振蕩頻率,波特率為2400b/s。通信的功能為:甲機(jī):將片外數(shù)據(jù)存儲(chǔ)器4000H-407FH單元的內(nèi)容向乙機(jī)發(fā)送,每發(fā)送一幀信息,乙機(jī)對(duì)接收的信息進(jìn)行偶校驗(yàn),將P位值放在TB8中。若校驗(yàn)正確,則乙機(jī)向甲機(jī)回發(fā)“數(shù)據(jù)發(fā)送正確”的信號(hào)(例中以00H作為應(yīng)答信號(hào))。甲機(jī)收到乙機(jī)“正確”的應(yīng)答信號(hào)后再發(fā)送下一個(gè)字節(jié)。若奇偶校驗(yàn)有錯(cuò),則乙機(jī)發(fā)出“數(shù)據(jù)發(fā)送不正確”的信號(hào)(例中以FFH作為應(yīng)答信號(hào))。甲機(jī)接收到“不正確”應(yīng)答信號(hào)后,重新發(fā)送原數(shù)據(jù),直至發(fā)送正確。甲機(jī)將該數(shù)據(jù)塊發(fā)送完畢后停止發(fā)送。乙機(jī):接收甲機(jī)發(fā)送的數(shù)據(jù),并寫入以4000H為首址的片外數(shù)據(jù)存儲(chǔ)器中。每接收一幀數(shù)據(jù),乙機(jī)對(duì)所接收的數(shù)據(jù)進(jìn)行偶校驗(yàn),并發(fā)出相應(yīng)的應(yīng)答信號(hào),直至接收完所有數(shù)據(jù)。,.,解:(1)計(jì)算定時(shí)器計(jì)數(shù)初值X將已知數(shù)據(jù)fosc=6MHz,波特率=2400b/s代入下式:若取SMOD=0時(shí),X=249.49。因取整數(shù)誤差過(guò)大,故設(shè)SMOD=1,則X=242.98243=F3H因此,實(shí)際波特率=2403.85bS。,.,甲機(jī)發(fā)送流程圖,乙機(jī)發(fā)送流程圖,.,(3)源程序甲機(jī)主程序ORG0000HLJMPMAIN;上電,轉(zhuǎn)向主程序ORG0023H;串行口的中斷入口地址LJMPSERVE1;轉(zhuǎn)向甲機(jī)中斷服務(wù)程序ORG2000H;主程序MAIN:MOVTMOD,#20H;設(shè)T1工作與模式2MOVTH1,#0F3H;賦計(jì)數(shù)初值MOVTL1,#0F3H;賦計(jì)數(shù)值SETBTR1;啟動(dòng)定時(shí)器T1MOVPCON,#80H;設(shè)SMOD=1MOVSCON,#0D0H;置串行口方式3,允許接收MOVDPTR,#4000H;置數(shù)據(jù)塊首址MOVR0,#80H;置發(fā)送字節(jié)數(shù)初值SETBES;允許串行口中斷SETBEA;CPU開中斷MOVXA,DPTR;取第一個(gè)數(shù)據(jù)發(fā)送MOVC,PMOVTB8,C;奇偶標(biāo)志送TB8MOVSBUF,A;發(fā)送數(shù)據(jù)SJMP$;等待中斷,.,甲機(jī)中斷服務(wù)程序SERVE1:JBCRI,LOOP;是接收中斷,清除RI,轉(zhuǎn)入接收乙機(jī)的應(yīng)答信息CLRTI;是發(fā)送中斷,清除此中斷標(biāo)志SJMPENDTLOOP:MOVA,SBUF;取乙機(jī)的應(yīng)答信息CLRCSUBBA,#01H;判應(yīng)答信號(hào)是#00嗎?JCLOOP1;是#00H,發(fā)送正確,(#00H-#01H),C=1,轉(zhuǎn)LOOP1LOOP2:MOVXA,DPTR;否則甲機(jī)重發(fā)MOVC,PMOVTB8,CMOVSBUF,A;甲機(jī)重發(fā)原數(shù)據(jù)SJMPENDTLOOP1:INCDPTR;修改地址指針,準(zhǔn)備發(fā)送下一個(gè)數(shù)據(jù);MOVXA,DPTR;MOVC,P;MOVTB8,C;MOVSBUF,A;發(fā)送;DJNZR0,ENDT;數(shù)據(jù)塊未發(fā)送完,返回繼續(xù)發(fā)送DJNZR0,LOOP2;數(shù)據(jù)塊未發(fā)送完,啟動(dòng)發(fā)送下一個(gè)數(shù)據(jù)CLRES;全部發(fā)送完,禁止串行口中斷ENDT:RETI;中斷返回END,.,乙機(jī)主程序;ORG0000HLJMPMAIN;上電,轉(zhuǎn)向主程序ORG0023H;串行口的中斷入口地址LJMPSERVE2;轉(zhuǎn)向乙機(jī)中斷服務(wù)程序ORG2000H;主程序MAIN:MOVTMOD,#20H;設(shè)T1工作于模式2MOVTH1,#0F3H;賦計(jì)數(shù)初值MOVTL1,#0F3H;賦計(jì)數(shù)初值SETBTR1;啟動(dòng)定時(shí)器T1MOVPCON,#80H;設(shè)SMOD=1MOVSCON,#0D0H;置串行口方式3,允許接收MOVDPTR,#4000H;置數(shù)據(jù)區(qū)首址MOVR0,#80H;置接收字節(jié)數(shù)初值SETBES;允許串行口中斷SETBEA;CPU開中斷SJMP$;等待中斷,.,乙機(jī)中斷服務(wù)程序:SERVE2:JBCRI,LOOP;是接收中斷,清除此中斷標(biāo)志,轉(zhuǎn)LOOP(接收)CLRTI;是發(fā)送中斷,清除此中斷標(biāo)志,中斷返回SJMPENDTLOOP:MOVA,SBUF;接收(讀入)數(shù)據(jù)MOVC,P;奇偶標(biāo)志送CJCLOOP1;為奇數(shù),轉(zhuǎn)LOOP1ORLC,RB8;為偶數(shù),檢測(cè)RB8JCLOOP2;奇偶校驗(yàn)錯(cuò),轉(zhuǎn)LOOP2SJMPLOOP3LOOP1:ANLC,RB8;檢測(cè)RB8JCLOOP3;奇偶校驗(yàn)正確,轉(zhuǎn)LOOP3LOOP2:MOVA,#0FFHMOVSBUF,A;發(fā)送“不正確”應(yīng)答信號(hào)SJMPENDTLOOP3:MOVXDPTR,A;存放接收數(shù)據(jù)MOVA,#00HMOVSBUF,A;發(fā)送“正確”應(yīng)答信號(hào)INCDPTR;修改數(shù)據(jù)區(qū)指針DJNZR0,ENDT;數(shù)據(jù)塊未接收完,返回CLRES;所有數(shù)據(jù)接收完畢,禁止串行口中斷ENDT:RETI;中斷返回END,.,89C51與PC機(jī)間通信軟件的設(shè)計(jì),一、PC機(jī)通信軟件設(shè)計(jì)1.通信協(xié)議波特率:1200b/s;信息格式:8位數(shù)據(jù)位,1位停止位,無(wú)奇偶檢驗(yàn);傳送方式:PC機(jī)采用查詢方式收發(fā)數(shù)據(jù);89C51采用中斷方式接收,查詢方式發(fā)送;校驗(yàn)方式:累加和校驗(yàn);握手信號(hào):采用軟件握手。發(fā)送方在發(fā)送之前先發(fā)一聯(lián)絡(luò)信號(hào)(用“?”號(hào)的ASCII碼,接收方接到“?”號(hào)后回送一個(gè)“”號(hào)作為應(yīng)答信號(hào)),隨后依次發(fā)送數(shù)據(jù)塊長(zhǎng)度(字節(jié)數(shù)),發(fā)送數(shù)據(jù),最后發(fā)送校驗(yàn)和。收方在收到發(fā)送方發(fā)過(guò)來(lái)的校驗(yàn)和后與自己所累加的校驗(yàn)和相比較,相同則回送一個(gè)“0”,表示正確傳送并結(jié)束本次的通信過(guò)程;若不相同則回送一個(gè)“F”,并使發(fā)送方重新發(fā)送數(shù)據(jù),直到接收正確為止。,.,2.PC機(jī)發(fā)送文件子程序首先介紹通過(guò)串口發(fā)送一個(gè)文件的函數(shù)sendf()。規(guī)定欲發(fā)送的這個(gè)文件存在當(dāng)前盤上,并且為了便于說(shuō)明問(wèn)題,只傳送總字節(jié)小于256個(gè)字符的文件。3、PC機(jī)接收文件子程序接收函數(shù)receivef()采用查詢方式從串口接收一個(gè)總字節(jié)數(shù)小于256個(gè)字符的文件,接收的文件也存于當(dāng)前盤上。,.,PC機(jī)發(fā)送文件子函數(shù)sendf()流程圖,PC機(jī)接收文件子函數(shù)receivef()流程圖,.,PC機(jī)發(fā)送文件子函數(shù)sendf()程序清單,.,.,.,4、PC機(jī)主程序(函數(shù))在有了上述發(fā)送和接收文件兩個(gè)子函數(shù)之后,主函數(shù)的編寫就非常簡(jiǎn)單了。主函數(shù)的工作只是在完成串口初始化后,根據(jù)鍵入的命令來(lái)決定是發(fā)送文件還是接收文件。PC機(jī)主函數(shù)如下:,.,PC機(jī)主函數(shù)流程圖,.,這里采用的是帶參主函數(shù)main(intargc,char*argv)。其中,argc是一個(gè)整型變量,argv是一個(gè)字符型指針數(shù)組。利用main函數(shù)的參數(shù)可以使主程序從系統(tǒng)得到所需數(shù)據(jù)(也就是說(shuō)帶參函數(shù)可直接從DOS命令行中得到參數(shù)值,當(dāng)然,這些值是字符串)。當(dāng)程序運(yùn)行時(shí)(在DOS下執(zhí)行.EXE文件),可以根據(jù)輸入的命令行參數(shù)進(jìn)行相應(yīng)的處理。例如,執(zhí)行程序mypro時(shí),若要從當(dāng)前盤上將名為f1.c的文件從串口發(fā)送出去,需鍵入下述命令:myprosf1.c其中,mypro是源文件mypro.c經(jīng)編譯連接后生成的可執(zhí)行文件mypro.exe。鍵入命令:myprorf2.c可以從串口接收若干字符,并寫入當(dāng)前盤上名為f2.c的文件中去。,.,二、89C51通信軟件設(shè)計(jì)1、單片機(jī)查詢發(fā)送子程序本程序?qū)⑵釸AM從1000H開始的小于256B的數(shù)據(jù)從串行口發(fā)送出去,發(fā)送的數(shù)據(jù)字節(jié)數(shù)在R7中,
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 洗手護(hù)士保持手部清潔
- 2025-2030全球游戲QA和測(cè)試服務(wù)行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025年全球及中國(guó)三維木質(zhì)墻板行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025年全球及中國(guó)電儲(chǔ)水熱水器行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025-2030全球加厚防爆高壓鍋行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025年全球及中國(guó)鋁箔膠囊行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025年全球及中國(guó)工作站用橋式起重機(jī)行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025-2030全球法務(wù)技術(shù)服務(wù)行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025合同模板房地產(chǎn)收購(gòu)合同昆山某國(guó)際廣場(chǎng)整體購(gòu)買協(xié)議
- 借款合同擔(dān)保書范本
- 2024年四川省成都市高新區(qū)中考數(shù)學(xué)二診試卷
- 礦井主要災(zāi)害事故防治應(yīng)急避災(zāi)知識(shí)培訓(xùn)課件
- 不老莓行業(yè)分析
- STARCCM基礎(chǔ)培訓(xùn)教程
- 地理標(biāo)志專題通用課件
- 《小英雄雨來(lái)》讀書分享會(huì)
- 中央導(dǎo)管相關(guān)血流感染防控
- 產(chǎn)時(shí)子癇應(yīng)急演練文檔
- 小學(xué)美術(shù)-《神奇的肥皂粉》教學(xué)設(shè)計(jì)學(xué)情分析教材分析課后反思
- 測(cè)量管理體系內(nèi)審檢查表
- 班組月度考核評(píng)分表
評(píng)論
0/150
提交評(píng)論