




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
./項(xiàng)目七單片機(jī)通信實(shí)踐知識(shí)目標(biāo):1.了解UART<UniversalAsynchronousReceive/Transmitter通用異步收發(fā)器。2.了解MAX232通信原理及標(biāo)準(zhǔn)的通信協(xié)議。3.了解MODBUS通信協(xié)議標(biāo)準(zhǔn)2.采用通信芯片MAX485,及多機(jī)通信原理。技能目標(biāo):1,根據(jù)數(shù)據(jù)格式的協(xié)議,數(shù)據(jù)交換的協(xié)議要求硬件連接,實(shí)現(xiàn)串行通訊的硬環(huán)境。2.MCU與PC機(jī)及多個(gè)單片機(jī)的硬件連接方法3.應(yīng)用PROTEUS仿真工具軟件繪制硬件連接圖4.使用KeilC完成程序的編寫和調(diào)試5.使用最小系統(tǒng)板實(shí)現(xiàn)硬件調(diào)試任務(wù)一基于RS232的點(diǎn)對(duì)點(diǎn)通信任務(wù)提出通過MAX232直接應(yīng)用UART<UniversalAsynchronousReceive/Transmitter通用異步收發(fā)器,實(shí)現(xiàn)單片機(jī)與單片機(jī),或單片機(jī)與PC微機(jī)之間數(shù)據(jù)傳送。知識(shí)準(zhǔn)備7.1.1串行與并行通信在實(shí)際工作中,計(jì)算機(jī)與外部設(shè)備之間常常要進(jìn)行信息交換,計(jì)算機(jī)與計(jì)算機(jī)之間也要交換信息,所有這些信息交換可稱為通信。在我們前面所學(xué)的知識(shí)中所涉及的數(shù)據(jù)傳送都是采用并行方式,如單片機(jī)與存儲(chǔ)器,的數(shù)據(jù)傳送,存儲(chǔ)器與存儲(chǔ)器的數(shù)據(jù)傳送,單片機(jī)與并行打印機(jī)之間的數(shù)據(jù)傳送,CPU處理數(shù)據(jù)以8位數(shù)據(jù)并行方式同時(shí)一次傳送一字節(jié)的數(shù)據(jù),這樣的傳送方式要求用8條數(shù)據(jù)線和若于條控制信號(hào)線,傳送距離較近。當(dāng)計(jì)算機(jī)與計(jì)算機(jī)之間的距離較遠(yuǎn)時(shí)過多的電纜使這種方式不夠經(jīng)濟(jì)。串行通信是用一位數(shù)據(jù)線傳送數(shù)據(jù),只用幾條電纜線作控制信號(hào)線,串行通信適合遠(yuǎn)距離數(shù)據(jù)傳送,處于兩地的計(jì)算機(jī)之間采用串行通信就非常的經(jīng)濟(jì),當(dāng)然串行通信要求通信雙方具有相同的數(shù)據(jù)轉(zhuǎn)換格式,規(guī)定的時(shí)間控制,相等的邏輯電路,通一的通信協(xié)議。7.1.1.1串行與并行通信基本概念1.串行通信與并行通信通信方式有兩種:并行通信和串行通信。通常是根據(jù)信息傳送的距離決定采用哪種通信方式,如果距離小于30cm則可采用并行通信方式,當(dāng)距離大于30cm時(shí)則要采用通信方式。并行通信方式是指數(shù)據(jù)的各位同時(shí)進(jìn)行傳送的通信方式,其優(yōu)點(diǎn)是傳送速度高,缺點(diǎn)是數(shù)據(jù)有多少位,就需要多少根數(shù)據(jù)傳送線,單片機(jī)與外部設(shè)備之間的數(shù)據(jù)傳送屬于并行通信圖7-1-1〔a所示為AT89C51系列單片機(jī)與外部設(shè)備間的8位數(shù)據(jù)并行通信的連接方法,并行通信方式在位數(shù)多、傳送距離遠(yuǎn)的情況下就不太合適了。串行通信間數(shù)據(jù)是一位一位按順序傳送的通信方式,圖7-1-1〔b所示為單片機(jī)與外部設(shè)備間的串行通信連接方式,可以看出最單間的串行連接只需三條線,因此利用電話線就可作為傳輸線,這樣大大降低了成本,特別適用于遠(yuǎn)距離通信;串行通信的缺點(diǎn)是傳送速度較低。假設(shè)并行傳送N位數(shù)據(jù)所需時(shí)間為T,那么串行傳送的時(shí)間至少為NT,實(shí)際上總是大于NT的。圖7-1-1兩種通信方式連接2.單工、半雙工和全雙工串行通信的傳送方式通常有3種:⑴單向<或單工>,只允許數(shù)據(jù)向一個(gè)方向傳送;⑵半雙向〔或半雙工,允許數(shù)據(jù)向兩個(gè)方向中的任一方向傳送,但每次只能有一個(gè)站點(diǎn)發(fā)送;⑶全雙向〔或全雙工,允許同時(shí)雙向傳送數(shù)據(jù),全雙工配置是一對(duì)單向配置,它要求兩端的通信設(shè)置具有完整和獨(dú)立的發(fā)送和接收能力。7.1.1.2單片機(jī)串行口發(fā)送與接受數(shù)據(jù)1.串行通信協(xié)議串行通信協(xié)議是通信雙方為保證通信成功而制定的一系列約定。包括數(shù)據(jù)格式定義和數(shù)據(jù)位定義等。通信雙方必須遵守統(tǒng)一的通信協(xié)議,串行通信協(xié)議包括同步協(xié)議的異步協(xié)議兩種。異步串行通信協(xié)議規(guī)定了字符的傳送格式和字符傳送的波特率。51系列單片機(jī)串行行口數(shù)據(jù)的發(fā)送的數(shù)據(jù)的接受采用異步通信方式,在MCU內(nèi)部有一個(gè)UART<UniversalAsynchronousReceive/Transmitter通用異步收發(fā)器。在異步通信中數(shù)據(jù)是一幀一幀〔包括一個(gè)字符代碼或一字節(jié)數(shù)據(jù)傳送的,每一幀的數(shù)據(jù)格式如圖7-1-2所示。圖7-1-2串行異步通信的數(shù)據(jù)格式在幀格式中,一個(gè)字符由4部分組成:起始位、數(shù)據(jù)位、奇偶校驗(yàn)位和停止位。首先是一個(gè)起始位〔0,起始位信號(hào)只占用一位,用來通知接收設(shè)備一個(gè)待接收的字符開始到達(dá),線路上在不傳送字符時(shí)應(yīng)保持為1。接收端不斷檢測(cè)線的狀態(tài),若連續(xù)為1以后又測(cè)到一個(gè)0,就知道發(fā)來一個(gè)新的字符,應(yīng)馬上準(zhǔn)備接收,字符的起始位還被用作同步接收端的的時(shí)鐘,以保證以后的接收能正確進(jìn)行。然后是5—8位數(shù)據(jù)位〔規(guī)定低位在前,高位在后,它可以是5位<D0—D4>、7位或8位〔D0—D7。其次是奇偶校驗(yàn)位〔該位可省略,但在字符中也可以規(guī)定不用奇偶校驗(yàn)位,則這一位就可省去。民可和這一位〔0/1來確定這一幀中的字符代表代表的性質(zhì)〔地址/數(shù)據(jù)等。最后是停止位〔1,用來表征字符的結(jié)束,它一定是高電位〔邏輯1。停止位可以是1位、1.5位或2位。接收端收到停止位后,知道上一字符已傳送完畢,同時(shí)也為接收下一個(gè)字符作好準(zhǔn)備,只要再接收藏夾0,就是新字符。2.波特率通信線上傳送的所有位信號(hào)都保持一致的信號(hào)持續(xù)時(shí)間,每一位的信號(hào)持續(xù)時(shí)間都由數(shù)據(jù)傳送速度確定,而傳送速度是以每秒多少個(gè)二進(jìn)制位來衡量的,這個(gè)速度叫波特率。波特率是串行通信中的一個(gè)重要指標(biāo),它反映了對(duì)傳輸通道的要求。波特率越高,要求傳輸通道的頻帶越寬。一般異步通信的波特率為50—9600b/s7.1.1.3單片機(jī)串行口控制寄存器1.串行口控制寄存器SCONSCON是串行口控制和狀態(tài)寄存器,其格式如下:D7D6D5D4D3D2D1D0SM0SM1SM2RENTB8RB8TIRI.SM0、SM1:串行口工作方式控制位,具體工作方式見表。表7-1-1串行口工作方式控制SMOSM1工作方式說明波特串00方式0同步移位寄存器fosc/1201方式110位異步收發(fā)由定時(shí)器控制10方式211位異步收發(fā)fosc/32或fosc/6411方式311位異步收發(fā)由定時(shí)器控制.SM2:多機(jī)通信控制位<方式2,3>。1一只有接收到第9位<RB8>為1,RI才置位。0一接收到字符N就置位。.REN:串行口接收允許位。1一允許串行口接收。0一禁止串行口接收。.TB8:方式2和方式3時(shí),為發(fā)送的第9位數(shù)據(jù),也可以作奇偶校驗(yàn)位。.RB8:方式2和方式3時(shí),為接收到的第9位數(shù)據(jù);方式1時(shí),為接收到的停止位.TI:發(fā)送中斷標(biāo)志。由硬件置位,必須由軟件清0。.RI:接收中斷標(biāo)志。由硬件置位,必須由軟件清0。2.電源控制寄存器PCONPCON的第7位SMOD是與串行口的波特率設(shè)置有關(guān)的選擇位。D7D6D5D4D3D2D1D0SMODGF1GF0PDIDL.SMOD:串行口波特率加倍位。1——方式1,3波特率=定時(shí)器1溢出率/16;方式2波特率為fosc/32;·0——方式1,3波特率=定時(shí)器1溢出率/32;方式2波特率為fosc/64。.GF0、GF1:兩個(gè)通用標(biāo)志位。.PD、IDL:CHMOS器件的低功耗控制位。7.1.1.4串行口工作模式及波特率設(shè)置1.串行通信的工作方式⑴方式0方式0為移位寄存器輸入/輸出方式。串行數(shù)據(jù)通過RXD輸入/輸出,TXD則用于輸出移位時(shí)鐘脈沖。方式0時(shí),收發(fā)的數(shù)據(jù)為8位,低位在前。波特率固定為fosc/12,其中fosc為單片機(jī)外接晶振頻率。數(shù)據(jù)發(fā)送是以寫SBUF寄存器的指令開始的,8位輸出結(jié)束時(shí)TI被置位。方式0接收是在REN=1和RI=0同時(shí)滿足時(shí)開始的。接收的數(shù)據(jù)裝入SBUF中,結(jié)束時(shí)RI被置位。移位寄存器方式在用最小的硬件擴(kuò)展接口時(shí)很有用。串行口外接一片移位寄存器74LSl64可構(gòu)成輸出接口電路;串行口外接一片移位寄存器74LSl65可構(gòu)成輸入接口電路。在典型1MHz時(shí)鐘,8位加載大約用10us。任何數(shù)目的移位寄存器可串接用于輸出和輸入,通過一系列的SBUF的寫和讀。若移位時(shí)的波動(dòng)不重要或移位寄存器中包含并行加載鎖存,這可構(gòu)成非常經(jīng)濟(jì)的I/O擴(kuò)展小系統(tǒng)。移位寄存器方式的第二種用法是用于兩個(gè)單片機(jī)之間的通信。與通常波特率9600相比,以1MHz通信能力對(duì)短距離通信很吸引人。⑵方式1方式1是10位異步通信方式,1位起始位<0>,8位數(shù)據(jù)位和1位停止位<1>。其中的起始位和停止位在發(fā)送時(shí)是自動(dòng)插入的。任何一條以SBUF為目的寄存器的指令都啟動(dòng)一次發(fā)送,發(fā)送的條件是TI=0,發(fā)送完置位TI。方式1接收的前提條件是SCON中的REN為1,同時(shí)以下兩個(gè)條件都滿足,本次接收有效,將其裝入SBUF和RB8位。否則放棄接收結(jié)果。兩個(gè)條件是:1>RI=0;2>SM2=0或接收到的停止位為1。方式1的波特率是可變的,波特率可由以下計(jì)算公式計(jì)算得到:方式1波特率=2SMOD·<定時(shí)器1的溢出率>/32其中的SMOD為PCON的最高位。定時(shí)器1的方式0,1,2,都可以使用,其溢出率為定時(shí)時(shí)間的倒數(shù)值。⑶方式2和方式3這兩種方式都是11位異步接收/發(fā)送方式,它們的操作過程完全一樣,所不同的是波特率:方式2波特率=×〔振蕩器頻率fosc方式3波特率同方式1<定時(shí)器1作波特率發(fā)生器>。方式2和方式3的發(fā)送起始于任何一條"寫SBUF"指令。當(dāng)?shù)?位數(shù)據(jù)<TB8>輸出之后,置位TI。方式2和方式3的前提條件也是REN為1。在第9位數(shù)據(jù)接收到后,如果下列條件同時(shí)滿足:1>RI=0;2>SM2=0或接收到的第9位為1則將已接收的數(shù)據(jù)裝入SBUF和RB8,并置位RI;如果條件不滿足,則接收無效。51系列單片機(jī)串行口的不同尋常的特征是包括第九位方式。這允許在串行口通信增加的第九位用于標(biāo)志特殊字節(jié)的接收。對(duì)簡單網(wǎng)絡(luò),第九位方案允許接收單片機(jī)僅當(dāng)字節(jié)具有一個(gè)第九位時(shí)才能被中斷。用這種方法,發(fā)送器可以廣播一個(gè)字節(jié)讓第九位為高作為"每個(gè)人請(qǐng)注意"字節(jié)。字節(jié)可以為節(jié)點(diǎn)地址,地址相同的節(jié)點(diǎn)可以打開接收接下來的字符。所接續(xù)字節(jié)<第九位為低>不能引起其它單片機(jī)中斷,因?yàn)槲此退鼈兊牡刂?。用這種方式。一個(gè)單片機(jī)可以和大量的其它單片機(jī)對(duì)話而不打擾不尋址的單片機(jī)。這種系統(tǒng)必須工作在嚴(yán)格的主從方式,由軟件進(jìn)行取舍安排。2.通信波特率設(shè)置在異步通信中,收、發(fā)雙方各用自己的的時(shí)鐘源,要保證捕捉到的信號(hào)正確,最好采用較高頻率的時(shí)鐘,一般選擇時(shí)鐘頻率比波特率16倍或64倍,若時(shí)鐘頻率等于波特率,則頻率稍有偏差便會(huì)產(chǎn)生接收錯(cuò)誤。各方式波特率的取值方法如下:⑴方式0狀態(tài):當(dāng)軟件設(shè)置SCON的SM0、SM1為"00"時(shí)串行通信則以方式0工作,串行通信工作在同步移位寄存器方式下。其波特率固定為<1/12>×fosc。⑵方式1狀態(tài):當(dāng)軟件設(shè)置SCON的SM0、SM1為"01"時(shí)串行通信則以方式1工作,串行通信的波特率由定時(shí)器T1的溢出率獲得:串行通信方式1波特率=×〔定時(shí)器/計(jì)數(shù)器1的溢出率定時(shí)器/計(jì)數(shù)器1的溢出率定義為:單位時(shí)間〔秒內(nèi)定時(shí)器/計(jì)數(shù)器回0溢出的次數(shù),即定時(shí)器/計(jì)數(shù)器1的溢出率=定時(shí)器/計(jì)數(shù)器1的溢出次數(shù)/秒。定時(shí)器/計(jì)數(shù)器1的溢出率=<次/秒>當(dāng)T1工作于方式2其初始值為:初值N=256-⑶串行通信方式2波特率=×〔振蕩器頻率通常情況下,使用單片機(jī)的串行口時(shí),選用的晶振比較固定6MHz,12MHz,11.0592MHz。常用于和微機(jī)的通信;選用的波特率也相對(duì)固定。串行口常用的波特率及相應(yīng)的設(shè)置見表7-1-1串行口常用波特率表。表7-1-1串行口常用波特率串行口工作方式波特率Fosc=6MHzFosc=12MHzFosc=11.0592MHzSMODTMODTH1SMODTMODTH1SMODTMODTH1方式01MHzXXX方式2375k187.5k1XX1XX0XX方式1或方式362.5k020FFH19.2k120FDH9.6k020FDH4.8k120F3H020FAH2.4k020FFH120F3H020F4H1.2k120E6H020E6H020E8H600120CCH020CCH020D0H300020CCH02098H020A0H137.51201DH0201DH0202EH11002072H010FEEBH010FEFFH7.1.1.5單片機(jī)之間的通信波特率查詢表51系列單片機(jī)內(nèi)部集成有一個(gè)功能很強(qiáng)的全雙工串行通信口,屬UART方式。設(shè)有2個(gè)互相獨(dú)立的接收、發(fā)送緩沖器,可以同時(shí)發(fā)送和接收數(shù)據(jù)。發(fā)送緩沖器只能寫入而不能讀出,接收緩沖器只能讀出而不能寫入,因而兩個(gè)緩沖器可以用一個(gè)地址碼〔99H。兩個(gè)緩沖器統(tǒng)稱串行通信特殊功能寄存器SBUF。51系列單片機(jī)的串行通信根據(jù)應(yīng)用可分為雙機(jī)通信和多機(jī)通信兩種,又可分為單片機(jī)與單片機(jī)間的通信和單片機(jī)與微機(jī)通信。1.單片機(jī)雙機(jī)通信技術(shù)如果兩個(gè)AT89S52系列單片機(jī)相距很近距離的機(jī)間通信可使用UART的TTL電平,可將它們的串行端口直接相連〔TXD—RXD,RXD—TXD,GND—GND—GND,即可實(shí)現(xiàn)雙機(jī)通信。2.單片機(jī)與微機(jī)通信為了增加通信距離,減少通道及電源干擾,可采用RS-232C或RS-422、RS-485標(biāo)準(zhǔn)進(jìn)行雙機(jī)通信。RS-232是串行數(shù)據(jù)接口標(biāo)準(zhǔn),最初都是美國EIA〔電子工業(yè)聯(lián)合會(huì)制訂并發(fā)布的,1969年公布的通信協(xié)議。國際上規(guī)定了一個(gè)標(biāo)準(zhǔn)波特率系列,標(biāo)準(zhǔn)波特率也是最常用的波特率,標(biāo)準(zhǔn)波特率系列為110、300、600、1200、4800、9600和19200。在通信為保證通信正確,必須通信雙方必須同一波特率。RS-232-C標(biāo)準(zhǔn):RS-232-C標(biāo)準(zhǔn)對(duì)邏輯電平的各種信號(hào)線的功能作了規(guī)定,即信號(hào)電平標(biāo)準(zhǔn)和控制信號(hào)線的定義。RS-232-C采用負(fù)邏輯規(guī)定邏輯電平,信號(hào)電平與通常的TTL電平不兼容,邏輯"1"=-3V~-15V邏輯"0"=+3V~+15V與TTL電平不一樣可用TTL/EIA轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換。RS232接口芯片實(shí)現(xiàn)了TTL標(biāo)準(zhǔn)和RS-232-C標(biāo)準(zhǔn)之間的電平轉(zhuǎn)換。使用驅(qū)動(dòng)芯片<MAX232或1488/1489>可接成RS232C和通用微機(jī)進(jìn)行通信。任務(wù)實(shí)施7.1.2通信系統(tǒng)設(shè)計(jì)應(yīng)用MCU內(nèi)部的增強(qiáng)型全雙工UART功能,實(shí)現(xiàn)智能開發(fā)板與智能開發(fā)板的通訊,可以用智能開發(fā)板上的4個(gè)鍵每個(gè)鍵發(fā)送一串不同的字符串,另一個(gè)智能開發(fā)板接收字符串,并顯示。實(shí)現(xiàn)與PC機(jī)通訊。將從智能開發(fā)板鍵盤上鍵入的數(shù)字,字母顯示到PC機(jī)顯示器上,將PC機(jī)鍵盤輸入的字符〔0-F顯示到實(shí)驗(yàn)機(jī)的數(shù)碼管上。1.單片機(jī)與微機(jī)通信的接口電路設(shè)計(jì)利用微機(jī)配置的異步通信適配器,可以很方便地完成微系列與AT89C51單片機(jī)的數(shù)據(jù)通信。微機(jī)與單片機(jī)的連接是零調(diào)制3線經(jīng)濟(jì)型,這是進(jìn)行全雙工通信所必須的最少數(shù)目的線路。由于AT89C52單片機(jī)輸入、輸出電平為TTL電平,而微機(jī)配置的RS-232C標(biāo)準(zhǔn)串行接口二的電氣規(guī)范不一致,因此,要完成微機(jī)與單片機(jī)的數(shù)據(jù)通信,必須進(jìn)行電平轉(zhuǎn)換。現(xiàn)在采用MAX232單芯片實(shí)現(xiàn)AT89C51單片機(jī)與微機(jī)的RS-232標(biāo)準(zhǔn)接口通信電路。MAX232芯片的接口連接如圖7-1-2所示。圖7-1-3MAX232接口芯片連接圖2.單片機(jī)與PC微機(jī)通信接口硬件連接:<PC端口是9針插口單片機(jī)板上是9針插頭<RS232>1腳DCD1腳2腳發(fā)出數(shù)據(jù)<RXD>3腳T1OUT3腳接受數(shù)據(jù)<TXD>2腳R1IN4腳DRT4腳5腳GND5腳地〔GND6腳DSR7腳RTS8腳CTS9腳RI現(xiàn)從MAX232芯片中兩路發(fā)送接收中任選一路作為接口,應(yīng)注意發(fā)送、接收的引腳要對(duì)應(yīng)。實(shí)現(xiàn)與PC機(jī)通訊。將從智能開發(fā)板鍵盤上鍵入的數(shù)字,字母顯示到PC機(jī)顯示器上,將PC機(jī)鍵盤輸入的字符〔1-8顯示到單片機(jī)的數(shù)碼管上。3.單片機(jī)和單片機(jī)通信連接單片機(jī)與單片機(jī)通信連接如圖7-1-4所示,P3.0<RXD>-P3.1<TXD>、P3.1<TXD>-P3.0<RXD>、GND-GND。要注意的是這樣的連接不能遠(yuǎn)距離。P3.1〔TXDP3.0〔RXDP3.1〔TXDP3.0〔RXDGND2#單片機(jī)P3.0〔RXDP3.1〔TXDGND1#單片機(jī)圖示7-1-4單片機(jī)與單片機(jī)通信連接圖4.通信程序設(shè)計(jì)流程圖通信程序中在使用串行口之前,應(yīng)對(duì)它進(jìn)行編程初始化,主要是設(shè)置產(chǎn)生波特率的定時(shí)器1、串行口控制和中斷控制。具體步驟如下:⑴確定定時(shí)器1的工作方式——編程TMOD寄存器;⑵計(jì)算定時(shí)器1的初值——裝載TH1、TL1;⑶啟動(dòng)定時(shí)器1——編程TCON中的TR1位;⑷確定串行口的控制——編程SCON和PCON;⑸串行口在中斷方式工作時(shí),須開CPU和源中斷——編程IE寄存器。圖7-1-5通信程序設(shè)計(jì)流程圖5.編程舉例⑴匯編程序例子ORG 30HSTART: MOV SP,#60H MOV SCON,#01010000B;設(shè)定串行方式: ;8位異步,允許接收 MOV TMOD,#20H ;設(shè)定計(jì)數(shù)器1為模式2 ORL PCON,#10000000B;波特率加倍 MOV TH1,#0FDH ;設(shè)定波特率為9600 MOV TL1,#0FDH SETB TR1 ;計(jì)數(shù)器1開始計(jì)時(shí)AGAIN: JNB RI,$ ;等待接收完成 CLR RI ;清接收標(biāo)志 MOV A,SBUF ;接收數(shù)據(jù)送緩沖區(qū) MOV SBUF,A ;發(fā)送收到的數(shù)據(jù) JNB TI,$ ;等待發(fā)送完成 CLR TI ;清發(fā)送標(biāo)志 SJMP AGAIN END⑵C51初始化串口程序i=0;//初值flag=0x00;//aa=0xfe;//位碼初值TMOD=0x20;//方式寄存器初值TH1=0xfd;TL1=0xfd;PCON=0x00;TR1=1;SCON=0x50;⑶單片機(jī)串行口發(fā)送程序,每發(fā)送一串字符"MCS—51"后延時(shí)一段時(shí)間重復(fù)發(fā)送,和微機(jī)相接后,微機(jī)運(yùn)行BASIC程序即可在屏幕上顯示接收到的字符串,此程序證明單片機(jī)串行口發(fā)送正常。程序tetr.c如下:#include<reg51.h>#defineucharunsignedchar#defineuintunsignedintucharidatatrdata[10]={‘M’,’C’,’S’,’-’,’5’,’1’,0x0d,0x0a,0x00};main<>{uchari;uintj;TMOD=0x20;/*設(shè)置9600波特串的定時(shí)器1方式*/TL1=0xfd;TH1=0xfd;/*設(shè)置初始值SCON=0xd8;PCON=0x00;/*設(shè)置串行口方式*/TR1=1;/*起動(dòng)定時(shí)器1while<1>{i=0;while<trdata[i]!=0x00>{/*發(fā)送字符串*/SBUF=trdata[i];while<TI==0>;TI=0;i++;}for<j=0;j<12500;j++;/*延時(shí)*/}}⑷單片機(jī)串行口發(fā)送/接收程序,每接收到字節(jié)即刻發(fā)送出去;和微機(jī)相接后微機(jī)鍵人的字符回顯在屏幕上,此程序證明單片機(jī)串行口發(fā)送/接收都正常??上扔么顺绦驕y(cè)試,若不正常,再使用單獨(dú)的發(fā)送程序測(cè)試以判斷是單片機(jī)串行口發(fā)送還是接收不正常。程序trrev.c如下:#include<reg51.h>voidmain<void>{unsignedchara;TMOD=0x20;/*在11.0592MHz下,設(shè)置串行口9600波特率,方式3*/TL1=oxfd;TH1=0xfd;SCON=0xd8;PCON=0x00;TR1=1;while<1>{while<RI==0>:RI=0;a=SBUF;/*接收到的字節(jié),立即發(fā)送出去*/SBUF=a;while<TI==0>;TI=0;}}7.1.3系統(tǒng)仿真1.在PROTEUS中畫好通信電路原理圖如圖7-1-6所示。圖7-1-6在PROTEUS中繪制智能系統(tǒng)通信原理圖2.在KEIL或WF中編寫單片機(jī)C51通訊程序。編好后調(diào)試產(chǎn)生HEX文件。3.在PROTEUS中鏈接HEX文件并仿真調(diào)試。4.PROTEUS仿真調(diào)試功能正確后,在最小系統(tǒng)板的擴(kuò)展部分按照PROTEUS中的電路原理圖安裝并焊接。5.利用EasyISP在線下載軟件將HEX文件燒入51系列單片機(jī)芯片中寫入電路圖中的單片機(jī),實(shí)現(xiàn)用單片機(jī)通訊。7.1.4安裝與調(diào)試1.硬件安裝⑴單片機(jī)與單片機(jī)間通信線連接,在硬件連線時(shí)要注意2、3腳對(duì)換,但用購買的串口線不用對(duì)換。⑵單片機(jī)與單片機(jī)間通信線通信線不易太長,最好小于50CM。⑶在焊接時(shí)要注意斷開5V電源,焊接時(shí)間不要太長,如果太長會(huì)使焊盤脫落。2.系統(tǒng)調(diào)試單片機(jī)的串行口主要用于和通用微機(jī)的通信、單片機(jī)間的通信和主從結(jié)構(gòu)的分布式控制系統(tǒng)機(jī)間通信。串行口通信常使用緩沖區(qū)。單片機(jī)和通用微機(jī)進(jìn)行通信時(shí),要求使用的波特率、傳送的位數(shù)等相同。要能夠進(jìn)行數(shù)據(jù)傳送也必須首先測(cè)試雙方是否可以可靠通信??稍谖C(jī)和單片機(jī)上各編制非常短小的程序,具體可分成微機(jī)串行口發(fā)送接收程序、單片機(jī)串行口發(fā)送程序和單片機(jī)串行口發(fā)送接收程序。這三個(gè)程序能運(yùn)行通過,即可證明串行口工作正常。通信程序接收程序盡量采用中斷程序,通信中斷函數(shù)不要太長,會(huì)影響接收數(shù)據(jù)。微機(jī)串行口發(fā)送接收程序設(shè)置串行口為波特率9600、8位數(shù)據(jù)、1位停止位、無奇偶校驗(yàn)的簡單設(shè)置。從鍵盤接收的字符可從串行口發(fā)送出去,從串行口接收的字符在屏幕上顯示。通過讓串行口發(fā)送線和接收線短接可測(cè)試微機(jī)串行口,通過讓串行口和單片機(jī)系統(tǒng)相接,使用此程序可進(jìn)一步測(cè)試單片機(jī)的串行通信狀況。具體程序用VB編制,簡單易懂。直接輸入即可運(yùn)行。思考與練習(xí):用中斷方式數(shù)據(jù)接收程序的練習(xí)。任務(wù)二基于RS485的點(diǎn)對(duì)多點(diǎn)通信任務(wù)提出:MAX485芯片與51系列單片機(jī)的仿硬件連接,PC機(jī)與多個(gè)站點(diǎn)智能單機(jī)的硬件連接,通信程序的編寫,熟悉Keil、偉福、AEDK系列實(shí)驗(yàn)機(jī)開發(fā)工具。VB程序?qū)W習(xí)。實(shí)現(xiàn)任務(wù)如圖7-2-1:圖7-2-1多機(jī)機(jī)通信原理圖如上圖PC通過RS232與485轉(zhuǎn)換接口與多個(gè)站點(diǎn)的智能機(jī)相連接,每個(gè)站點(diǎn)有一MAX485連接一個(gè)溫度傳感DS18B20。可將每個(gè)站點(diǎn)的溫度傳送到PC微機(jī)屏幕顯示。知識(shí)準(zhǔn)備:7.2.1點(diǎn)對(duì)多點(diǎn)通信7.2.1.1基于RS485的芯片1.MAX485芯片介紹在工業(yè)控制及測(cè)量領(lǐng)域較為常用的網(wǎng)絡(luò)之一就是物理層采用MAX485通信接口所組成的工控設(shè)備網(wǎng)絡(luò)。這種通信接口可以十分方便地將許多設(shè)備組成一個(gè)控制網(wǎng)絡(luò)。從目前解決單片機(jī)之間中長距離通信的諸多方案分析來看,MAX485總線通信模式由于具有結(jié)構(gòu)簡單、價(jià)格低廉、通信距離和數(shù)據(jù)傳輸速率適當(dāng)?shù)忍攸c(diǎn)而被廣泛應(yīng)用于儀器儀表、智能化傳感器集散控制、樓宇控制、監(jiān)控報(bào)警等領(lǐng)域。MAX485是芯片接口的一種類型,MAX485接口芯片是Maxim公司的一種RS-485芯片。采用單一電源+5V工作,額定電流為300μA,采用半雙工通訊方式。它完成將TTL電平轉(zhuǎn)換為RS-485電平的功能。MAX485芯片的結(jié)構(gòu)和引腳都非常簡單,內(nèi)部含有一個(gè)驅(qū)動(dòng)器和接收器。RO和DI端分別為接收器的輸出和驅(qū)動(dòng)器的輸入端,與單片機(jī)連接時(shí)只需分別與單片機(jī)的RXD和TXD相連即可;/RE和DE端分別為接收和發(fā)送的使能端,當(dāng)/RE為邏輯0時(shí),器件處于接收狀態(tài);當(dāng)DE為邏輯1時(shí),器件處于發(fā)送狀態(tài),因?yàn)镸AX485工作在半雙工狀態(tài),所以只需用單片機(jī)的一個(gè)管腳控制這兩個(gè)引腳即可;A端和B端分別為接收和發(fā)送的差分信號(hào)端,當(dāng)A引腳的電平高于B時(shí),代表發(fā)送的數(shù)據(jù)為1;當(dāng)A的電平低于B端時(shí),代表發(fā)送的數(shù)據(jù)為0。在與單片機(jī)連接時(shí)接線非常簡單。只需要一個(gè)信號(hào)控制MAX485的接收和發(fā)送即可。同時(shí)將A和B端之間加匹配電阻,一般可選100Ω的電阻??梢源锌谌‰?可以驅(qū)動(dòng)max232與max485實(shí)現(xiàn)通信。沒加負(fù)載時(shí)電壓有5.16V,加負(fù)載后降制3V左右。MAX485的特性、封裝及特性300μA低靜態(tài)電流共模輸入電壓范圍為-7V到+12V三態(tài)輸出30ns傳輸延遲時(shí)間,5ns的的沿變化時(shí)間半雙工模式5V電源總線最大允許負(fù)載32個(gè)收發(fā)器2,5Mbps數(shù)據(jù)傳輸速率過流保護(hù)、過熱保護(hù)±15kVESD保護(hù)MAX485的框圖與電路圖圖7-2-2MAX485引腳〔管腳圖及工作電路7.2.1.2通信方式⑴微機(jī)和智能儀器間基于RS485總線的主從方式點(diǎn)對(duì)多點(diǎn)通信,各為主/從屬設(shè)備,被呼叫到時(shí)響應(yīng),或主發(fā);主設(shè)備可單獨(dú)和從設(shè)備通信,也能以廣播方式和所有從設(shè)備通信。如果單獨(dú)通信,從設(shè)備返回一消息作為回應(yīng),如果是以廣播方式查詢的,則不作任何回應(yīng)。⑵微機(jī)和智能儀器可作為主從設(shè)備,主從設(shè)備中建立了主設(shè)備查詢和從設(shè)備回應(yīng)消息的格式;在通信接收過程中如果發(fā)生一錯(cuò)誤,或從設(shè)備不能執(zhí)行其命令,從設(shè)備將建立一錯(cuò)誤命令并把它作為回應(yīng)發(fā)送出去。盡管網(wǎng)絡(luò)通信方法是"對(duì)等"。如果一設(shè)備發(fā)送一消息,它只是作為主設(shè)備,并期望從從設(shè)備得到回應(yīng)。同樣,當(dāng)主設(shè)備接收到一消息,它將建立一從設(shè)備回應(yīng)格式并返回給發(fā)送的控制器⑶通訊方式全兼容,采用異步通信,起始位1位,數(shù)據(jù)位8位,停止位1位,無校驗(yàn)。數(shù)據(jù)傳輸速率為1.2kbps、2.4kbps、4.8kbps、9.6kbps、19.2kbps。7.2.1.3MODBUS協(xié)議的基本格式在協(xié)議中建立了主設(shè)備查詢的格式,和從設(shè)備回應(yīng)消息格式。協(xié)議的基本格式如表7-2-1,其格式如下:表7-2.1MODBUS協(xié)議的基本格式注解表序號(hào)12345678字節(jié)數(shù)11111N21格式SOIADR特征碼長度查詢/回應(yīng)信息CRC16EOI基本格式的注解見表7-2-1。SOI為起始位標(biāo)志〔STARTOFINFORMATION當(dāng)值為F1H時(shí)為主發(fā)標(biāo)志,值為F3H時(shí)為響應(yīng)標(biāo)志;ADR是信息幀的第一字節(jié)<8位>設(shè)備地址描述,在一個(gè)485總線上可以掛接多個(gè)設(shè)備,此處的設(shè)備地址表示想和哪一個(gè)設(shè)備〔1-254,0為廣播地址、255保留通訊,從0到255。它表明由用戶設(shè)置地址的從機(jī)將接收由主機(jī)發(fā)送來的信息。每個(gè)從機(jī)都必須有唯一的地址碼,并且只有符合地址碼的從機(jī)才能響應(yīng)回送。當(dāng)從機(jī)回送信息時(shí),相當(dāng)?shù)牡刂反a表明該信息來自于何處。特征碼是設(shè)備特征描述代碼;長度是該整條指令的總字節(jié)數(shù)〔包括起始位標(biāo)志、結(jié)束碼;查詢/回應(yīng)是控制標(biāo)識(shí)碼,也稱功能碼:查詢消息中的功能代碼告之被選中的從設(shè)備要執(zhí)行何種功能。數(shù)據(jù)段包含了從設(shè)備要執(zhí)行功能的任何附加信息。例如功能代碼03是要求從設(shè)備讀保持寄存器并返回它們的內(nèi)容。數(shù)據(jù)段必須包含要告之從設(shè)備的信息:從何寄存器開始讀及要讀的寄存器數(shù)量。錯(cuò)誤檢測(cè)域?yàn)閺脑O(shè)備提供了一種驗(yàn)證消息內(nèi)容是否正確的方法。如果從設(shè)備產(chǎn)生一正常的回應(yīng),在回應(yīng)消息中的功能代碼是在查詢消息中的功能代碼的回應(yīng)。數(shù)據(jù)段包括了從設(shè)備收集的數(shù)據(jù):象寄存器值或狀態(tài)。如果有錯(cuò)誤發(fā)生,功能代碼將被修改以用于指出回應(yīng)消息是錯(cuò)誤的,同時(shí)數(shù)據(jù)段包含了描述此錯(cuò)誤信息的代碼。錯(cuò)誤檢測(cè)域允許主設(shè)備確認(rèn)消息內(nèi)容是否可用。CRC16是冗余循環(huán)碼包含2個(gè)字節(jié),即16位二進(jìn)制。CRC碼由發(fā)送設(shè)備計(jì)算,放置于發(fā)送信息〔SOI、ADR、特征碼、長度、命令、的尾部。接收信息的設(shè)備再重新計(jì)算接收到信息的CRC碼,比較計(jì)算得到的CRC碼是否與接收到的相符,如果兩者不相符,則表明出錯(cuò)。主機(jī)或從機(jī)可用校驗(yàn)碼進(jìn)行判別接收信息是否出錯(cuò)。有時(shí),由于電子噪聲或其它一些干擾,信息在傳輸過程中會(huì)發(fā)生細(xì)微的變化,錯(cuò)誤校驗(yàn)碼保證了主機(jī)或從機(jī)對(duì)在傳送過程中出錯(cuò)的信息不起作用。這樣增加了系統(tǒng)的安全和效率。EOI為結(jié)束碼當(dāng)值為F2H是為主發(fā)結(jié)束,值為F4H時(shí)為響應(yīng)結(jié)束。7.2.1.4單片機(jī)與計(jì)算機(jī)的通信PC機(jī)通過串行口〔COM1或COM2來實(shí)現(xiàn)與通信MCU之間的通信。由于PC機(jī)的COM口輸入/輸出的是RS-232電平,往往只能用于實(shí)現(xiàn)單點(diǎn)通信,且傳送距離有限,為了對(duì)其進(jìn)行擴(kuò)展,我們采用RS-232/RS-485接口轉(zhuǎn)換器,將其轉(zhuǎn)換為RS-485電平,從而通過RS-485總線實(shí)現(xiàn)與16個(gè)通信MCU之間的通信。由于單片機(jī)的通用同步/異步收發(fā)器〔USART采用TTL電平,與標(biāo)準(zhǔn)RS-485電平不匹配,我們采用MAXIM公司生產(chǎn)的MAX485芯片將其轉(zhuǎn)換為RS-485標(biāo)準(zhǔn)電平,通過RS-485總線實(shí)現(xiàn)與PC機(jī)的對(duì)接。MAX485通訊程序與MAX232通訊程序在本質(zhì)上是一樣的,只是MAX485通訊程序需要加上通訊方向控制。下面通信程序,調(diào)試通過,晶振為外部11.0592M,MAX485的DE和RE短接連PC0口,圖7-2-3單片機(jī)與MAX485連接圖任務(wù)分析:分析1:硬件設(shè)計(jì)如下圖7-2-4有多個(gè)智能開發(fā)板每個(gè)開發(fā)板上安裝DS18B20溫度傳感器并顯示當(dāng)前檢測(cè)溫度值,板上的MAX485和RS232與485轉(zhuǎn)換接口與PC機(jī)連接。在PC微機(jī)上用VB建立一界面顯示多個(gè)智能板上所測(cè)的溫度。圖7-2-4智能溫度檢測(cè)系統(tǒng)分析2:編制VB界面,在VB軟件中編制界面如下圖7-2-6智能溫度檢測(cè)系統(tǒng)VB界面任務(wù)實(shí)施:1.準(zhǔn)備⑴微機(jī)⑵二個(gè)智能開發(fā)板極,二個(gè)DS18B20,二個(gè)MAX485⑶一個(gè)RS232—485轉(zhuǎn)接口2.實(shí)施過程⑴在PROTEUS中畫好電路原理圖并完成硬件設(shè)計(jì)按照原理圖正確焊接線路,用萬用表簡單測(cè)試線路是否有短路開路現(xiàn)象。⑵在KEIL或WF中編寫多機(jī)通訊程序。編好后調(diào)試產(chǎn)生HEX文件。利用STC-ISP在線下載軟件將HEX文件燒入51系列單片機(jī)芯片中⑶VB界面下設(shè)計(jì)多個(gè)窗口,通信接收,編寫VB程序,根據(jù)各站的數(shù)據(jù)顯示在指定指定窗口。⑷系統(tǒng)調(diào)試⑸實(shí)現(xiàn)多機(jī)通訊,在PC機(jī)上VB界面顯示溫度值,然后用數(shù)碼管顯示出通信信息用C語言編寫程序。注意事項(xiàng):各智能系統(tǒng)站的上的MAX485輸出A端連接在一起,B端連接在一起,一個(gè)工程項(xiàng)目的完成要經(jīng)過長時(shí)間的調(diào)試才能成功,本任務(wù)的完成有一定的難度,技術(shù)性較強(qiáng)。思考與練習(xí):1.根據(jù)MX485與單片機(jī)的連接圖和微機(jī)的連接圖,制作硬件。2.編制溫度檢測(cè)通信發(fā)送接收C51程序,編譯通過并用ISP下載到單片機(jī)中。3.在VB界面下編制數(shù)據(jù)檢測(cè)及顯示程序知識(shí)拓展:1.VB界面程序設(shè)計(jì)PublicfsStrAsStringPublicsqm$Publicsqm1$DimzhAsByte'''''''''''''''''''''''''''''''''''''''使用命令按鈕控件'關(guān)閉通信端口'結(jié)束系統(tǒng)''''''''''''''''''''''''''''''''''''''PrivateSubCmdExit_Click<>Comm1.PortOpen=FalseEndEndSub'''''''''''''''''''''''''''''''''''''''使用命令按鈕控件'使用Input屬性讀取串行端口的傳入值'并將結(jié)果顯示在Label控制的Caption屬性里''''''''''''''''''''''''''''''''''''''PrivateSubCmdReceive_Click<>Dimbuf$buf=Trim<Comm1.Input>IfLen<buf>=0ThenlblReceive.Caption="Empty"ElselblReceive.Caption=bufEndIfEndSub'''''''''''''''''''''''''''''''''''''''使用命令按鈕控件'使用Output屬性將用戶欲發(fā)送的字符串送出''''''''''''''''''''''''''''''''''''''PrivateSubCmdSend_Click<>Comm1.Output=Trim<txtSend.Text>EndSub'''''''''''''''''''''''''''''''''''''''MSComm的OnComm事件程序'由CommEvent屬性值的不同,將各別的程序代碼寫入'相關(guān)的子程序中'在此例中,只要RThresold中的設(shè)置字符數(shù)到達(dá)時(shí)'便會(huì)使得CommEvent屬性值變成comEvReceive'因此接收的子程序便被執(zhí)行''''''''''''''''''''''''''''''''''''''PrivateSubComm1_OnComm<>Dimbuf$SelectCaseComm1.CommEvent'借著取代底下每一個(gè)case語句來處理每個(gè)事件與錯(cuò)誤'事件'CasecomEvCD'CD線的狀態(tài)發(fā)生變化.'CasecomEvCTS'CTS線的狀態(tài)發(fā)生變化.'CasecomEvDSR'DSR線的狀態(tài)發(fā)生變化.CasecomEvRing'RingIndicator變化.CasecomEvReceive'收到RThreshold#ofbuf=buf+Trim<Comm1.Input>sqm=sqm+bufCasecomEvSend'傳輸緩沖區(qū)有Sthreshold個(gè)字符'EndSelectEndSub'''''''''''''''''''''''''''''''''''''''使用命令按鈕控件'將接收區(qū)的顯示范圍清空''''''''''''''''''''''''''''''''''''''PrivateSubCommand1_Click<>lblReceive.Caption=""EndSub'''''''''''''''''''''''''''''''''''''''窗體的加載事件'打開串行通信端口,參數(shù)亦可在打開之前先行指定,'指定完后,再打開該通信端口''''''''''''''''''''''''''''''''''''''PrivateSubForm_Load<>Comm1.PortOpen=Truezh="0"EndSubSubSJCL<>EndSubPrivateSubTimer1_Timer<>Timer1.Enabled=Falsezh=zh+1'站號(hào)記數(shù)器Ifzh>"4"Thenzh="0"Elsezh="0"+zhfsStr=zh'"F2"&zh&"FD"Label2.Caption=fsStrComm1.Output=fsStrTimer2.Enabled=TrueEndIfTimer1.Enabled=TrueEndSubPrivateSubTimer2_Timer<>'處理數(shù)據(jù)DimswzlAsIntegerDimsiAsIntegerDimqhAsStringDimxqlsAsStringDimwdzAsIntegerKS:Label4.Caption=sqmxqls=Trim<sqm>swzl=1'F2<起始標(biāo)志>,X<站號(hào)>,XXXXX<溫度值>,FD〔結(jié)束標(biāo)志swzl=InStr<xqls,"F2">'搜索"FFF2"出現(xiàn)的位置swz1=swz1+2sqm=Mid<xqls,swz1>'取出"F2"開始的字符wdz=Val<Mid<sqm,3,5>>Ifwdz<>0ThenForsi=1To4qh=Mid<sqm,si,1>SelectCaseqhCase"1"Text1.Text=wdzCase"2"Text2.Text=wdzCase"3"Text3.Text=wdzCase"4"Text4.Text=wdzEndSelectNextsisqm=""EndIfTimer2.Enabled=FalseTimer1.Enabled=TrueEndSubPrivateSubtxtSend_Change<>EndSub2.智能儀器程序#include<reg52.h>#include<INTRINS.h>unsignedcharcode;displaycode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0x9c,0xc6,0xf};unsignedcharcodedotcode[32]={0,3,6,9,12,16,19,2225,28,31,34,38,41,44,48,50,53,56,59,63,66,69,72,75,78,81,84,88,91,94,97};unsignedchardisplaycount;unsignedchardisplaybuf[8]={16,16,16,16,12,11,16,16};unsignedchartimecount,aa=0xfe,n;unsignedcharreaddata[8],dd;sbitDQ=P1^0;sbitCON_485=P1^1;bitsflag;bitreflag1,reflag2,reflag3,reflag4,reflag5,reflag6,reflag7,reflag8;//接收標(biāo)志voidfsdata<>;void delay_50us<unsignedchar_50us>;voidSerial_int<void>interrupt4using2//串行中斷接收{(diào) ES=0; RI=0;dd=SBUF;if<dd==0x32>{reflag6=1;}ES=1;}voidfsdata<>ES=0;CON_485=1;REN=0;TI=0;for<n=30;n>0;n-->; SBUF=0x46;//發(fā)送ACK0x06while<TI==0>;TI=0;for<n=30;n>0;n-->;SBUF=0x32;//發(fā)送ACK0x06 while<TI==0>;TI=0;for<n=30;n>0;n-->;SBUF=0x32;//發(fā)送ACK0x06 while<TI==0>;TI=0;for<n=30;n>0;n-->;SBUF=displaybuf[0x01]&0x0f|0x30;//發(fā)送ACK0x06 while<TI==0>;TI=0;for<n=30;n>0;n-->;SBUF=displaybuf[0x00]&0x0f|0x30;//發(fā)送ACK0x06 while<TI==0>;TI=0;for<n=30;n>0;n-->;SBUF=0x46;//發(fā)送ACK0x06 while<TI==0>;TI=0;for<n=30;n>0;n-->;SBUF=0x44;//發(fā)送ACK0x06 while<TI==0>; CON_485=0; REN=1; ES=1;}bitresetpulse<void>{unsignedchari;DQ=0;for<i=255;i>0;i-->;DQ=1;for<i=60;i>0;i-->;return<DQ>;for<i=200;i>0;i-->;}voidwritecommandtods18b20<unsignedcharcommand>{unsignedchari;unsignedcharj;for<i=0;i<8;i++>{if<<command&0x01>==0>{DQ=0;for<j=35;j>0;j-->;DQ=1;}else{DQ=0;for<j=2;j>0;j-->;DQ=1;for<j=33;j>0;j-->;}command=_cror_<command,1>;}}unsignedcharreaddatafromds18b20<void>{unsignedchari;unsignedcharj;unsignedchartemp;temp=0;for<i=0;i<8;i++>{temp=_cror_<temp,1>;DQ=0;_nop_<>;_nop_<>;DQ=1;for<j=10;j>0;j-->;if<DQ==1>{temp=temp|0x80;}else{temp=temp|0x00;}for<j=200;j>0;j-->;}return<temp>;}voidmain<void>{TMOD=0x21;TH0=<65536-2000>/256;TL0=<65536-2000>%256;PCON=0x00; SCON=0x50; //Mode1,8-bitUART,enablereceiptionIP=0x
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 復(fù)混肥料在農(nóng)業(yè)現(xiàn)代化進(jìn)程中的角色考核試卷
- 智能交通管理系統(tǒng)的運(yùn)營與維護(hù)考核試卷
- 體育表演跨國合作案例考核試卷
- 辦公設(shè)備培訓(xùn)課程考核試卷
- 推廣會(huì)議合同范本
- 工地噴錨合同范本
- 兼職項(xiàng)目加工合同范本
- 物聯(lián)網(wǎng)技術(shù)在智能家居領(lǐng)域的合同
- 年度項(xiàng)目進(jìn)度計(jì)劃及任務(wù)分配方案書
- 智慧農(nóng)業(yè)技術(shù)服務(wù)合同
- 2025年舞蹈培訓(xùn)機(jī)構(gòu)學(xué)員培訓(xùn)合同范本
- 2025年保險(xiǎn)銷售業(yè)務(wù)人員崗位職業(yè)技能資格知識(shí)考試題(附答案)
- 兒科護(hù)理模擬考試題與參考答案
- 注意缺陷與多動(dòng)障礙疾病科普幼兒心理健康教育課件
- 區(qū)域臨床檢驗(yàn)中心
- 2024年07月長沙農(nóng)村商業(yè)銀行股份有限公司2024年招考3名信息科技專業(yè)人才筆試歷年參考題庫附帶答案詳解
- 中醫(yī)預(yù)防流感知識(shí)講座
- 船舶水下輻射噪聲指南 2025
- 2024年黑龍江哈爾濱市中考英語真題卷及答案解析
- 房屋市政工程生產(chǎn)安全重大事故隱患判定標(biāo)準(zhǔn)(2024版)宣傳畫冊(cè)
- 2025年中國配音行業(yè)市場(chǎng)現(xiàn)狀、發(fā)展概況、未來前景分析報(bào)告
評(píng)論
0/150
提交評(píng)論