




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1.1 1.1 串行通信方式 通信雙方只要約定好通信格式和通信速度即可通信。 串行通信方式可分為兩類:異步通信:在異步串行通信中沒有同步時(shí)鐘信號(hào)。 同步通信:在同步串行通信中數(shù)據(jù)傳送受到同步時(shí)鐘的控制。 第1頁/共96頁1.2 1.2 異步通信 異步通信中,微處理器與外設(shè)之間必須有兩項(xiàng)規(guī)定。 第一項(xiàng)規(guī)定:雙方通信時(shí)采用怎樣的數(shù)據(jù)格式。 例如UART串行通信雙方規(guī)定:用ASCII編碼,字符為7位,加一個(gè)偶校驗(yàn)位、一個(gè)起始位以及一個(gè)停止位,則一個(gè)字符總共由10位組成,形成的數(shù)據(jù)格式如圖所示。第2頁/共96頁 第二項(xiàng)規(guī)定:即雙方通信過程中每發(fā)送一個(gè)數(shù)位需要多長的時(shí)間。在有些場(chǎng)合也稱之為波特率,即每秒
2、鐘傳送的二進(jìn)制位數(shù)(bps)。 數(shù)據(jù)傳送的速率為120字符/秒,每一個(gè)字符是10位,則波特率為1200bps。 PC串口:115200bps 921600bps Modem:19200bps 工業(yè)場(chǎng)合:4800bps UART和1-Wire通信標(biāo)準(zhǔn)就是常見的異步通信。在異步通信中發(fā)送器和接收器不必用同一個(gè)時(shí)鐘,只要求各局部時(shí)鐘同一標(biāo)稱頻率(波特率)。第3頁/共96頁1.3 1.3 同步通信 在大量數(shù)據(jù)傳送時(shí),采用通信雙方(發(fā)送器、接收器)在同一個(gè)時(shí)鐘控制下傳輸數(shù)據(jù)的同步通信 。 同步通信是先將許多的字符聚集成一字符塊,再將每塊信息(常稱為信息幀)之前加上12個(gè)同步字符,接著再加適當(dāng)?shù)腻e(cuò)誤檢測(cè)數(shù)
3、據(jù)到字符塊,最后才傳送出去。 注意:在同步通信時(shí),數(shù)據(jù)上沒有字符傳輸時(shí),必須發(fā)送專用的空閑字符或是同步字符。 n冗余:把傳輸?shù)臄?shù)據(jù)位當(dāng)做被除數(shù),發(fā)送器本身產(chǎn)生一個(gè)固定的除數(shù),前者除以后者得到的余數(shù)即為冗余字符。第4頁/共96頁1.4 1.4 串行通信制式 在單工制式下,數(shù)據(jù)只能從發(fā)送站向接收站傳送。如圖: 在半雙工制式下,數(shù)據(jù)能雙向傳送,但是不能同時(shí)在兩個(gè)方向上傳送。如圖: 全雙工制式下,接收數(shù)據(jù)和發(fā)送數(shù)據(jù)占用不同的線路。全雙工通信可以同時(shí)發(fā)送和接收。如圖:在串行通信中數(shù)據(jù)是在兩個(gè)站之間進(jìn)行傳送的,按照數(shù)據(jù)傳送方向,串行通信可分為單工、半雙工和全雙工3種制式。第5頁/共96頁1.5 1.5 串
4、行通信分類 串行通信標(biāo)準(zhǔn)有許多,下面僅對(duì)部分常見的串行通信標(biāo)準(zhǔn)進(jìn)行簡(jiǎn)單介紹 。串行通信標(biāo)準(zhǔn)引腳引腳說明通信方式通信制式UARTTXD、RXD、GND(三線)TXD:發(fā)送端RXD:接收端異步全雙工1-WireDQ (一線)DQ:發(fā)送/接收端異步半雙工SPISCK、MISO、MOSI(三線)SCK:同步時(shí)鐘MISO:主機(jī)輸入,從機(jī)輸出MOSI:主機(jī)輸出,從機(jī)輸入同步全雙工I2CSCL、SDA(二線)SCL:同步時(shí)鐘 SDA:數(shù)據(jù)輸入/輸出端同步半雙工第6頁/共96頁二、最簡(jiǎn)單的單工串行通信舉例 與外設(shè)串行通信過程中,數(shù)據(jù)是一位一位依次順序傳送的;而在微處理器內(nèi)部,數(shù)據(jù)是并行處理和傳送的。 當(dāng)微處理
5、器發(fā)送數(shù)據(jù)到外設(shè)時(shí),必須要先把并行的數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù)再傳送;當(dāng)微處理器接收來自外設(shè)的數(shù)據(jù)時(shí),必須要先把接收到的串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù)才能處理。 這種并/串之間的轉(zhuǎn)換既可用硬件實(shí)現(xiàn)也可用軟件實(shí)現(xiàn)。 本小節(jié)以74LS164芯片為例,介紹如何用軟件方法實(shí)現(xiàn)數(shù)據(jù)的串并轉(zhuǎn)換。(ARM與74LS164之間的串行通信)第7頁/共96頁1.1 1.1 實(shí)驗(yàn)?zāi)康呐c內(nèi)容 實(shí)驗(yàn)?zāi)康模簩W(xué)會(huì)用軟件方法模擬串行通信的時(shí)序,完成串行通信;深刻理解串行通信的原理,掌握時(shí)序分析的基本方法。 實(shí)驗(yàn)內(nèi)容:完成ARM芯片與74LS164芯片之間的串行通信,利用LED燈顯示傳輸?shù)臄?shù)據(jù);在完成基本通信的實(shí)驗(yàn)基礎(chǔ)上,實(shí)現(xiàn)流水燈效果。第8
6、頁/共96頁實(shí)驗(yàn)原理分析 A、B:串行數(shù)據(jù)輸入端。 Clock:時(shí)鐘輸入端。 Clear:清零端。低電平有效。 QAQH:數(shù)據(jù)輸出引腳。ClearClock74LS 164238745691011121314ABQAVCCQBQCQDGNDQHQGQFQE1第9頁/共96頁 74LS164真值表輸入輸入 輸出輸出 Clear ClockA BQA QB QHLXX X LLL HLX X H H H HHH H L X LLL H X L LLL 第10頁/共96頁 74LS164的時(shí)鐘是由ARM處理器產(chǎn)生,每來1個(gè)上升沿74LS164就接收1位數(shù)據(jù)。 假設(shè)要使QAQH=10110011,則A
7、RM要發(fā)送一串?dāng)?shù)據(jù)10110011給A、B輸入端,并產(chǎn)生相應(yīng)的時(shí)鐘信號(hào)。如下圖: 第11頁/共96頁1.3 1.3 電路原理圖#define LS164_DATA (125)/LS164_DATA=0 x0200 0000#define LS164_CLK (129) /LS164_CLK=0 x2000 0000#define LS164_CLR (117) /LS164_CLR=0 x0002 0000n74LS164通過ARM的3個(gè)I/O腳:P1.17、P3.29、P0.25,分別控制74LS164芯片的清零端口(CLR)、時(shí)鐘端口(CLK)和數(shù)據(jù)端口(DATA),引腳定義如下:第12頁
8、/共96頁程序清單-初始化子程序/*名稱: void LS164_Init(void)*功能: 初始化子程序。*入口參數(shù):無*出口參數(shù):無*/void LS164_Init(void)PINSEL1 = PINSEL1 & 0 xfff3ffff; / 設(shè)置Ls164引腳LS164_DATA(P0.25)為GPIOPINSEL2 = PINSEL2 & 0 xffffffb7; / 設(shè)置Ls164引腳LS164_CLK (P3.29)為GPIO / 設(shè)置Ls164引腳LS164_CLR(P1.17)為GPIO/- 設(shè)置各引腳輸出方向都為輸出-IO0DIR = IO0DIR |
9、LS164_DATA;/ 設(shè)置P0.25為輸出IO3DIR = IO3DIR | LS164_CLK;/ 設(shè)置P3.29為輸出IO1DIR = IO1DIR | LS164_CLR;/ 設(shè)置P1.17為輸出第13頁/共96頁程序清單-發(fā)送數(shù)據(jù)子程序void LS164_SendData (uint8 data) uint8 j;/定義一個(gè)8位無符號(hào)整型變量jIO1CLR = LS164_CLR; /74LS164輸出清零IO1SET = LS164_CLR; /-模擬時(shí)鐘信號(hào),循環(huán)8次完成數(shù)據(jù)傳送-for( j=0; j=1;/data右移一位IO3SET = LS164_CLK;/向74LS
10、164發(fā)送一個(gè)高電平時(shí)鐘信號(hào)IO3CLR = LS164_CLK;第14頁/共96頁程序清單-主程序uint8 const LS164_TAB32=0 x00,0 x01,0 x03,0 x07,0 x0F,0 x1F,0 x3F,0 x7F, 0 xFF,0 x7F,0 x3F, 0 x1F,0 x0F,0 x07,0 x03,0 x01,0 x00,0 x81,0 x42,0 x24, 0 x18,0 x3c,0 x7e,0 xff,0 x00,0 xff,0 x00,0 x55, 0 xaa,0 x55, 0 xaa,0 x00; /* * 名稱:main() * 功能:通過64LS16
11、4控制LED燈,實(shí)現(xiàn)流水燈 */ int main (void) uint8 i; LS164_Init(); / 引腳初始化 while(1) /-發(fā)送數(shù)據(jù)- for(i=1;i32;i+) LS164_SendData(LS164_TABi);DelayMS(100);/大約延時(shí)100毫秒,詳見第一章蜂鳴器控制程序 return(0); 第15頁/共96頁1.5 1.5 實(shí)驗(yàn)結(jié)果 觀看實(shí)驗(yàn)板,每次由ARM處理器向74LS164芯片發(fā)送一個(gè)8位數(shù)據(jù),LED的開關(guān)會(huì)發(fā)生相應(yīng)的變化。當(dāng)程序連續(xù)運(yùn)行時(shí),實(shí)驗(yàn)板上會(huì)出現(xiàn)各種燈閃爍的效果。第16頁/共96頁三、UART異步串行接口應(yīng)用 UART通信標(biāo)準(zhǔn)
12、就有專門的硬件UART,即異步接收發(fā)送器。 UART有2個(gè)對(duì)外連接的引腳:RxD、TxD: RxD是輸入引腳,用于串行數(shù)據(jù)接收; TxD是輸出引腳,用于串行數(shù)據(jù)發(fā)送。 第17頁/共96頁1.1 硬件UART的結(jié)構(gòu)框圖 第18頁/共96頁 UART數(shù)據(jù)的接收過程示意圖nUART數(shù)據(jù)的發(fā)送過程示意圖第19頁/共96頁1.2 1.2 UART的功能1傳輸轉(zhuǎn)換功能 UART既能發(fā)送,把并行數(shù)據(jù)轉(zhuǎn)換成串行數(shù)據(jù)輸出;又能接收,把接收的串行數(shù)據(jù)轉(zhuǎn)換成并行數(shù)據(jù)輸入。2奇偶校驗(yàn)功能 UART在發(fā)送時(shí),檢查每個(gè)要傳送的字符中的“1” 的個(gè)數(shù),自動(dòng)在奇偶校驗(yàn)位上添“l(fā)” 或“0”,使之滿足要求; UART在接收時(shí),
13、檢查每個(gè)字符的各位及奇偶校驗(yàn)位, “1” 的個(gè)數(shù)是否滿足要求。3出錯(cuò)標(biāo)識(shí)功能常用的有以下三種:l奇偶錯(cuò)誤l幀錯(cuò)誤l溢出錯(cuò)誤第20頁/共96頁1.3 1.3 UART通信協(xié)議 UART異步串行通信協(xié)議需要定義以下5個(gè)內(nèi)容:1起始位 2數(shù)據(jù)位3奇偶校驗(yàn)位 4停止位5波特率設(shè)置n 范例如圖:第21頁/共96頁1.4 1.4 UART的應(yīng)用 UART一般可以應(yīng)用到如下一些場(chǎng)合: 1.芯片間的近距離通信 2.與PC機(jī)之間的通信 3.模塊之間的遠(yuǎn)距離通信第22頁/共96頁1、芯片間的近距離通信 同一塊板卡上的芯片需要通信時(shí),我們可以采用UART異步串行通信。 連接示意圖 如下:第23頁/共96頁2、與PC
14、機(jī)的通信 RS-232-C接口是PC機(jī)目前最常用的一種串行通訊接口。芯片利用UART可以與PC機(jī)進(jìn)行通訊,由于接口不同從而電流不同,需要使用RS232轉(zhuǎn)換器對(duì)通訊信號(hào)進(jìn)行轉(zhuǎn)換 芯片接RS232轉(zhuǎn)換器與PC機(jī)通訊圖 第24頁/共96頁3、模塊之間的遠(yuǎn)距離通信 RS-485接口的最大傳輸距離可達(dá) 3000米,最高傳輸速率10Mbps,且抗噪聲干擾性好。 RS-485的電氣特性:邏輯“1”以兩線間的電壓差為 +2V +6V表示;邏輯“0”以兩線間的電壓差為 -2V -6V表示。接口信號(hào)電平比RS-232-C降低了,該電平與TTL電平兼容,可方便與TTL 電路連接 。RS-485通信電路示意圖第25頁
15、/共96頁n RS-485接口具有多站能力,能夠?qū)崿F(xiàn)多機(jī)間遠(yuǎn)距離通信。下圖是基于RS-485的多機(jī)通信系統(tǒng):第26頁/共96頁1.5 1.5 LPC2220內(nèi)部UART模塊 UART0具有16字節(jié)發(fā)送FIFO和16字節(jié)接收FIFO。 UART0內(nèi)置了波特率發(fā)生器。 第27頁/共96頁 UART0主要包括3個(gè)模塊: UART0接收器模塊(U0Rx) UART0發(fā)送器模塊(U0Tx) UART0波特率發(fā)生器模塊(U0RBG) UART0波特率發(fā)生器模塊(U0RBG),產(chǎn)生UART0所使用的定時(shí),U0BRG模塊時(shí)鐘源為VPB時(shí)鐘(pclk),它保存了VPB時(shí)鐘(pclk)的分頻值。 時(shí)鐘源(pclk
16、)與除數(shù)鎖存LSB寄存器(U0DLL)和除數(shù)鎖存MSB寄存器(U0DLM)所定義的除數(shù)相除得到UART0模塊所使用的時(shí)鐘,該時(shí)鐘必須為波特率的16倍。 波特率計(jì)算如下: 分頻后的時(shí)鐘 = pclk /(U0DLM * 256 + U0DLL) 波特率 = 分頻后的時(shí)鐘 / 16第28頁/共96頁問題:系統(tǒng)時(shí)鐘(pclk)為64MHz,UART0串行通信所需要的波特率為115200bps,如何設(shè)置U0DLL和U0DLM?除數(shù)=64MHz/(16*115200)U0DLM=除數(shù)/256=0U0DLL=除數(shù)%256=36n注意:當(dāng)U0DLM和UODLL中的值為0 x0000時(shí),系統(tǒng)默認(rèn)為0 x000
17、1。第29頁/共96頁1.6 1.6 寄存器介紹 UART0包含10個(gè)8位寄存器。U0RBR、U0THR、U0SCR、U0DLL、U0DLM、U0IER、U0FCR、U0LCR、U0IIR、U0LSR。名稱描述訪問權(quán)限地址復(fù)位值U0RBR接收緩沖寄存器只讀0 xE000 C000未定義U0THR發(fā)送緩沖寄存器只寫0 xE000 C000未定義U0IER中斷使能寄存器讀/寫 0 xE000 C0040U0IIR中斷標(biāo)識(shí)寄存器只讀0 xE000 C0080 x01UOFCRFIFO控制寄存器只寫0 xE000 C0080U0LCR線控制寄存器讀/寫0 xE000 C00C0UOLSR線狀態(tài)寄存器只
18、讀0 xE000 C0140 x60U0SCR高速緩存寄存器讀/寫0 xE000 C01C0U0DLL除數(shù)鎖存(低8位)寄存器讀/寫0 xE000 C0000 x01UODLM除數(shù)鎖存(高8位)寄存器讀/寫0 xE000 C0040除數(shù)鎖存訪問位DLAB=1時(shí)可以設(shè)置波特率第30頁/共96頁U0LCR線控制寄存器 U0LCR決定發(fā)送和接收數(shù)據(jù)字符的格式 。U0LCR功能描述復(fù)位值1:0字長度選擇00:5位字符長度 01:6位字符長度10:7位字符長度 11:8位字符長度02停止位0:1個(gè)停止位1:2個(gè)停止位03奇偶使能0:禁止奇偶產(chǎn)生和校驗(yàn)1:使能奇偶產(chǎn)生和校驗(yàn)05:4奇偶選擇00:奇數(shù) 01
19、:偶數(shù)10:強(qiáng)制為1 11:強(qiáng)制為006間隔控制0:禁止間隔發(fā)送1:使能間隔發(fā)送當(dāng)該位為1時(shí),輸出引腳UART0 TxD強(qiáng)制為邏輯007除數(shù)鎖存訪問位DLAB0:禁止訪問除數(shù)鎖存寄存器1:使能訪問除數(shù)鎖存寄存器0第31頁/共96頁U0LSR線狀態(tài)寄存器 U0LSR為只讀寄存器,它提供UART0的接收和發(fā)送模塊的當(dāng)前狀態(tài)信息。 U0LSR功能描述復(fù)位值0接收數(shù)據(jù)就緒(RDR)0:U0RBR為空1:U0RBR包含有效數(shù)據(jù)01溢出錯(cuò)誤(OE)0:溢出錯(cuò)誤狀態(tài)未激活1:溢出錯(cuò)誤狀態(tài)激活02奇偶錯(cuò)誤(PE)0:奇偶錯(cuò)誤狀態(tài)未激活1:奇偶錯(cuò)誤狀態(tài)激活03幀錯(cuò)誤(FE)0:幀錯(cuò)誤狀態(tài)未激活1:幀錯(cuò)誤狀態(tài)激活
20、04間隔中斷(BI)0:間隔中斷狀態(tài)未激活1:間隔中斷狀態(tài)激活05發(fā)送保持寄存器(THRE)0:U0THR包含有效數(shù)據(jù)1:U0THR為空16發(fā)送器(THRE)0:U0THR/U0TSR包含有效數(shù)據(jù)1:U0THR/U0TSR為空17Rx FIFO錯(cuò)誤(RXFE)0:U0RBR中沒有UART Rx錯(cuò)誤,或U0FCR的bit0為01:U0RBR中有UART Rx錯(cuò)誤(至少有一個(gè)錯(cuò)誤)0第32頁/共96頁UART0的初始化設(shè)置程序*名稱:UART0_Init(unit32 UART_BPS)*功能:初始化串口0,設(shè)置波特率,數(shù)據(jù)位長度,停止位長度,奇偶校驗(yàn)類型 默認(rèn)設(shè)置為8位數(shù)據(jù)位,1位停止位,無奇偶
21、校驗(yàn)*入口參數(shù):UART_BPS*出口參數(shù):無*Void UART0_Init(uinit32 UART_BPS) unit16 Fdiv; PINSEL0=0 x00000005; /設(shè)置P0.0(Txd)和P0.1(Rxd)連接到UART0 /*設(shè)置波特率*/ U0LCR=0 x83; /DLAB=1,可設(shè)置波特率 Fdiv=(Fpclk/16)/UART_BPS; /計(jì)算分頻值 U0DLM=Fdiv/256; U0DLL=Fdiv%256; /*設(shè)置數(shù)據(jù)格式/* U0LCR=0 x03; /8位數(shù)據(jù)長度、1個(gè)停止位、禁止奇偶校驗(yàn)位 UART0初始化包括三項(xiàng)內(nèi)容:1引腳連接功能的設(shè)置 2波
22、特率的設(shè)置 3通信數(shù)據(jù)格式的設(shè)置 第33頁/共96頁1.7 1.7 實(shí)驗(yàn)?zāi)康呐c內(nèi)容 實(shí)驗(yàn)?zāi)康模赫莆誏PC2220的UART模塊中各個(gè)控制寄存器的設(shè)置,并能使用UART 通信標(biāo)準(zhǔn)與PC機(jī)或其他板塊進(jìn)行通信。 實(shí)驗(yàn)內(nèi)容1:使用UART0通過RS-232接口向PC機(jī)發(fā)送數(shù)據(jù),并在PC機(jī)的超級(jí)終端上顯示。 實(shí)驗(yàn)內(nèi)容2:使用UART1通過RS485接口與另一個(gè)板塊進(jìn)行通信,通信數(shù)據(jù)通過8個(gè)LED燈顯示。 第34頁/共96頁實(shí)驗(yàn)1 PC機(jī)一般都會(huì)配有12個(gè)RS232串行通信接口(簡(jiǎn)稱COM口),利用COM口PC機(jī)可以與外部設(shè)備實(shí)現(xiàn)通信連接。 本實(shí)驗(yàn)中,我們用ARM實(shí)驗(yàn)平臺(tái)連接PC機(jī)。第35頁/共96頁/*
23、 名稱:UART0_SendByte(uint8 data)* 功能:向串口發(fā)送一個(gè)字節(jié)數(shù)據(jù),并等待發(fā)送完畢。* 入口參數(shù):data要發(fā)送的字節(jié)數(shù)據(jù)*/void UART0_SendByte(uint8 data) U0THR = data; / 發(fā)送數(shù)據(jù) while( (U0LSR&0 x40)=0 ); / 等待數(shù)據(jù)發(fā)送完畢/* 名稱:uint8 UART0_RcvByte()* 功能: 接收一個(gè)字節(jié)數(shù)據(jù)。* 出口參數(shù):接收到的數(shù)據(jù)*/uint8 UART0_RcvByte() uint8rcv_data;while(U0LSR & 0 x01)= 0);/當(dāng)U0RBR中沒
24、有數(shù)據(jù)就一直等待rcv_data = U0RBR;return(rcv_data);實(shí)驗(yàn)1 程序清單 第36頁/共96頁實(shí)驗(yàn)1 程序清單 uint8 const UART0_SEND_TAB = Oh,Succeed!n;/* 名稱:main()* 功能:向串口UART0發(fā)送字符串 Oh,Succeed!*/int main(void) uint8 *str,data; UART0_Init(115200); while(1) str = UART0_SEND_TAB;while(*str != 0) UART0_SendByte(*str+); / 向PC機(jī)發(fā)送數(shù)據(jù)data = UART0_
25、RcvByte();/ 等待PC發(fā)送數(shù)據(jù) return(0);第37頁/共96頁實(shí)驗(yàn)1結(jié)果在AXD調(diào)試軟件中全速運(yùn)行程序,串口調(diào)試助手,將會(huì)顯示一串字符“Oh,Succeed!”。當(dāng)PC臺(tái)式機(jī)向?qū)嶒?yàn)板發(fā)送任何字符后,串口調(diào)試助手的接收窗口會(huì)再多一串字符“Oh,Succeed!”。第38頁/共96頁實(shí)驗(yàn)2 當(dāng)設(shè)備間需要遠(yuǎn)距離通信時(shí)可以考慮采用RS485通信。Max483是一款半雙工的芯片板卡1用于數(shù)據(jù)發(fā)送(客戶端)板卡2用于數(shù)據(jù)接收(服務(wù)器端)第39頁/共96頁實(shí)驗(yàn)2 程序清單-服務(wù)端程序#define DERE (110) /連接 P0.10/* 名稱:UART1_Init(uint32 UA
26、RT_BPS)* 功能:ARM處理器UART1相關(guān)引腳與功能模塊的初始化* 入口參數(shù):UART_BPS 串口的波特率*/ void UART1_Init(uint32 UART_BPS) uint16 Fdiv; PINSEL0 = (PINSEL0 & 0 xfff0ffff)|(0 x05 16); /將 p0.8 P0.9設(shè)置為TxD1 RxD1功能 IO0DIR = IO0DIR | DERE ; /將連接 DE/RE 引腳的GPIO設(shè)置為輸出 /-設(shè)置波特率- U1LCR = 0 x83; / DLAB = 1,可設(shè)置波特率 Fdiv = (Fpclk / 16) / UAR
27、T_BPS; / 設(shè)置波特率 U1DLM = Fdiv / 256; U1DLL = Fdiv % 256; /-設(shè)置數(shù)據(jù)格式- U1LCR = 0 x03;/8位字符長度、1個(gè)停止位、禁止奇偶效驗(yàn) 第40頁/共96頁/*名稱: uint8 UART1_RcvByte(void)*功能: 通過RS-485接收一字節(jié)數(shù)據(jù)。*出口參數(shù): data接收到的數(shù)據(jù)*/uint8 UART1_RcvByte(void) uint8rcv_data;IO0CLR = DERE ; /RE引腳置低,使其處于接收狀態(tài)while(U1LSR & 0 x01)= 0);/當(dāng)U0RBR中沒有數(shù)據(jù)就一直等待rc
28、v_data = U1RBR;return(rcv_data);/* 名稱:main()* 功能:接收RS485發(fā)送過來的數(shù)據(jù),根據(jù)接收的數(shù)據(jù)控制LED燈的顯示*/int main(void) uint8 data; UART1_Init(115200); while(1) data = UART1_RcvByte(); / 接收一字節(jié)數(shù)據(jù),沒有接收則等待 LS164_SendData(data);/ 控制LED燈顯示 return(0);第41頁/共96頁實(shí)驗(yàn)2 參考程序清單-客戶端程序void UART1_SendData(uint8 data) IO0SET = DERE ; /DE引腳
29、置高,使Max483處于發(fā)送狀態(tài) U1THR = data ; /發(fā)送數(shù)據(jù) while(U1LSR & 0 x40) = 0) ; /等待數(shù)據(jù)發(fā)送完畢 uint8 const UART1_SEND_TAB = 1,2,3,4,5,6,7,8,7,6,5,4,3,2,1;int main(void) uint8 i; UART1_Init(115200); for(i=0; i15; i+) UART1_SendData(UART1_SEND_TABi);/ 發(fā)送一字節(jié)數(shù)據(jù) DelayMS(2000);/ 軟件延時(shí) return(0);第42頁/共96頁四、SPI串行接口應(yīng)用 SPI是由
30、Motorola公司提出的一種同步串行外圍接口。它在速度要求不高、低功耗、需保存少量參數(shù)的智能化傳感系統(tǒng)中得到了廣泛應(yīng)用。 SPI是一個(gè)全雙工的同步串行接口。在數(shù)據(jù)傳輸過程中,總線上只能是一個(gè)主機(jī)和一個(gè)從機(jī)進(jìn)行通信。n在數(shù)據(jù)傳輸中,主機(jī)總是向從機(jī)發(fā)送1字節(jié)的數(shù)據(jù)(MOSI),同時(shí)從機(jī)向主機(jī)發(fā)送1字節(jié)的數(shù)據(jù)(MISO)。第43頁/共96頁1.1 1.1 SPI接口的信號(hào)描述 1MISO(Master In Slave Out)主機(jī)輸入、從機(jī)輸出信號(hào)。 2MOSI(Master Out Slave In)主機(jī)輸出、從機(jī)輸入信號(hào)。 3SCK(Serial Clock)串行時(shí)鐘信號(hào)。 4SS(Slav
31、e Select) 從機(jī)選擇信號(hào)。低電平有效。注意:1、主設(shè)備必須為微處理器,從設(shè) 備可以是微處理器也可以是其他帶有SPI接口的芯片。2、主設(shè)備的SS應(yīng)接高電平。3、先發(fā)送MSB,在發(fā)送LSB。4、SCK由主設(shè)備產(chǎn)生。主設(shè)備和從設(shè)備必須在相同的時(shí)序下工作。第44頁/共96頁1.21.2 基于SPI接口的系統(tǒng)組成 SPI總線可在軟件的控制下構(gòu)成各種簡(jiǎn)單或復(fù)雜的系統(tǒng)。SPI總線與多從機(jī)連接示意圖 第45頁/共96頁1.3 1.3 SPI接口的工作原理 SPI的基本結(jié)構(gòu)相當(dāng)于兩個(gè)8位移位寄存器的首尾相接,構(gòu)成16位的環(huán)形移位寄存器。從而實(shí)現(xiàn)了主機(jī)與從機(jī)的數(shù)據(jù)交換。 SPI接口的基本結(jié)構(gòu)圖 第46頁/
32、共96頁1.4 1.4 LPC2220內(nèi)部SPI模塊 LPC2220中具有兩個(gè)完全獨(dú)立的SPI控制器:SPI0和SPI1。其中SPI0模塊有4個(gè)引腳:SCK0、SSEL0、MISO0、MOSI0,其功能如下:引腳名稱引腳名稱類型類型描述描述SCK0,SCK1輸入/輸出串行時(shí)鐘:用于同步SPI接口間數(shù)據(jù)傳輸?shù)臅r(shí)鐘信號(hào)。該時(shí)鐘信號(hào)總是由主機(jī)輸出。時(shí)鐘可編程為高有效或低有效。只有在數(shù)據(jù)傳輸時(shí)才被激活,其它任何時(shí)候都處于非激活狀態(tài)或三態(tài)。SSEL0,SSEL1輸入從機(jī)選擇:用于指示被選擇參與數(shù)據(jù)傳輸?shù)膹臋C(jī)。低電平有效。在數(shù)據(jù)處理前必須為低電平并在數(shù)據(jù)傳輸時(shí)保持低電平。如果SSEL在數(shù)據(jù)傳輸過程中變?yōu)楦?/p>
33、電平,傳輸將被中止,并將接收到的數(shù)據(jù)丟棄。從機(jī)返回到空閑狀態(tài)。配置LPC2220的SPI為主機(jī)必須選擇相應(yīng)的腳用作SSEL功能并保持高電平,這樣才能執(zhí)行主機(jī)的功能。MISO0,MISO1輸入/輸出主入從出:數(shù)據(jù)由從機(jī)傳輸?shù)街鳈C(jī),單向信號(hào)。MOSI0,MOSI1輸入/輸出主出從入:數(shù)據(jù)由主機(jī)傳輸?shù)綇臋C(jī),單向信號(hào)。第47頁/共96頁 一個(gè)SPI總線可以連接多個(gè)主機(jī)和多個(gè)從機(jī),但是在同一時(shí)刻只允許有一個(gè)主機(jī)操作總線??赏ㄟ^SSEL引腳設(shè)置LPC222為SPI主機(jī)或從機(jī)。第48頁/共96頁1.5 1.5 SPI數(shù)據(jù)傳輸 SPI接口可由CPOL和CPHA設(shè)定4種不同傳輸格式的時(shí)序。 CPOL決定時(shí)鐘脈沖
34、SCK的有效脈沖方式(正脈沖、負(fù)脈沖)。CPHA決定數(shù)據(jù)線MOSI什么時(shí)候輸出數(shù)據(jù)或采集數(shù)據(jù)。 根據(jù)CPOL和CPHA的組合數(shù)目,一共有4種設(shè)置情況 。第49頁/共96頁 4種時(shí)序下的數(shù)據(jù)傳輸,其中“第一位數(shù)據(jù)的輸出”和“其他位數(shù)據(jù)的輸出”欄是表示數(shù)據(jù)在什么時(shí)候更新輸出。還需注意數(shù)據(jù)采樣是上升沿還是下降沿有效。 數(shù)據(jù)與時(shí)鐘的相位關(guān)系如圖:CPOL/CPHACPOL/CPHA的設(shè)定的設(shè)定第一位數(shù)據(jù)的輸出第一位數(shù)據(jù)的輸出其它位的輸出其它位的輸出數(shù)據(jù)采樣數(shù)據(jù)采樣CPOL=0,CPHA=0在第一個(gè)SCK上升沿之前SCK下降沿SCK上升沿CPOL=1,CPHA=1第一個(gè)SCK下降沿SCK下降沿SCK上升
35、沿CPOL=1,CPHA=0在第一個(gè)SCK下降沿之前SCK上升沿SCK下降沿CPOL=0,CPHA=1第一個(gè)SCK上升沿SCK上升沿SCK下降沿第50頁/共96頁1.6 1.6 SPI寄存器 LPC的SPI內(nèi)部結(jié)構(gòu)框圖如表所示。第51頁/共96頁SPI內(nèi)部包括控制寄存器、數(shù)據(jù)寄存器、狀態(tài)寄存器、時(shí)鐘計(jì)數(shù)寄存器、中斷標(biāo)志寄存器 。具體描述見表 :名稱名稱描述描述復(fù)位值復(fù)位值SPCRSPI控制寄存器,該寄存器控制SPI的操作模式0SPSRSPI狀態(tài)寄存器,反映SPI模塊的當(dāng)前狀態(tài)0SPDRSPI數(shù)據(jù)寄存器,保存發(fā)送和接收的數(shù)據(jù)0SPCCRSPI時(shí)鐘計(jì)數(shù)寄存器,用于設(shè)置SPI時(shí)鐘分頻值0SPINTS
36、PI中斷標(biāo)志寄存器,保存SPI的中斷標(biāo)志0第52頁/共96頁SPI控制寄存器(SPCR)名稱名稱功能功能描述復(fù)位復(fù)位值值2:0保留不能寫入1NA3CPHA1:數(shù)據(jù)在第二個(gè)時(shí)鐘沿采樣,傳輸從第一個(gè)時(shí)鐘終開始在最后一個(gè)時(shí)鐘結(jié)束0:數(shù)據(jù)在第一個(gè)時(shí)鐘沿采樣,傳輸從SSEL激活開始,在SSEL無效后結(jié)束04CPOL1:SCK低有效0:SCK高有效05MSTR1:主模式0:從模式06LSBF1:數(shù)據(jù)傳輸?shù)臀辉谙?:數(shù)據(jù)傳輸高位在先07SPIE1:每次SPIF或 MODF置位時(shí)產(chǎn)生硬件中斷0:SPI被禁止第53頁/共96頁SPI狀態(tài)寄存器(SPSR)名稱名稱功能功能描述復(fù)位復(fù)位值值2:0保留不能寫入1NA3
37、ABRT1:從機(jī)終止,讀取該位則清零04MODF1:模式錯(cuò)誤,讀取該位可清零MODF,再寫SPI控制寄存器05ROVR1:讀溢出,讀取該位則清零06WCOL1:寫沖突,讀取該位則清零,在防偽SPI數(shù)據(jù)寄存器07SPIE1:每次SPIF或 MODF置位時(shí)產(chǎn)生硬件中斷0:SPI被禁止第54頁/共96頁SPI數(shù)據(jù)寄存器(SPDR)SPDR功能功能描述復(fù)位值復(fù)位值7:0數(shù)據(jù)SPI雙向數(shù)據(jù)0SPI時(shí)鐘寄存器(SPCCR)SPCCR功能功能描述復(fù)位值復(fù)位值0計(jì)數(shù)值SPI時(shí)鐘計(jì)數(shù)值設(shè)定0SPI中斷標(biāo)志寄存器(SPINT)SPCCR功能功能描述復(fù)位值復(fù)位值0SPI中斷SPI時(shí)鐘計(jì)數(shù)值設(shè)定07:1保留不能寫入1
38、NA第55頁/共96頁1.7 1.7 SPI的使用1主機(jī)操作SSEL0引腳接高電平,數(shù)據(jù)傳輸步驟為: 設(shè)置S0PCCR寄存器,確定分頻值。 設(shè)置S0PCR寄存器,控制SPI0為主機(jī)。 當(dāng)有多個(gè)從機(jī)情況下,控制片選信號(hào),選擇要通信的從機(jī)。 將要發(fā)送的數(shù)據(jù)寫入S0PDR寄存器,即啟動(dòng)SPI傳輸。 讀取S0PSR寄存器,等待SPIF位置位。 從SPI數(shù)據(jù)寄存器中讀出接收到的數(shù)據(jù)(可選)。 如果還有數(shù)據(jù)要傳送,則重復(fù)第46步驟,否則取消對(duì)從機(jī)選擇。第46步驟。 通過SSEL引腳的電平可以配置LPC2220為SPI主機(jī)或?yàn)镾PI從機(jī),LPC2220內(nèi)部SPI支持主機(jī)操作和從機(jī)操作。下面以SPI0模塊為例
39、分別介紹。第56頁/共96頁1.7 1.7 SPI的使用2從機(jī)操作SSEL0引腳接低電平,數(shù)據(jù)傳輸步驟為:設(shè)置S0PCR寄存器,控制SPI0為從機(jī)。不需要設(shè)置S0PCCR寄存器。將要發(fā)送的數(shù)據(jù)寫入S0PDR (可選)。讀取S0PSR寄存器,等待SPIF位置位。從SPI數(shù)據(jù)寄存器中讀出接收到的數(shù)據(jù)(可選)。如果還有數(shù)據(jù)要傳送,則跳到第2步。第57頁/共96頁74HC595芯片介紹 當(dāng)SCLR為低電平時(shí),輸出端Q清零; 當(dāng)SCLR=1,SCK出現(xiàn)上升沿時(shí),內(nèi)部寄存器移位并接收SER端發(fā)來的數(shù)據(jù); 當(dāng)RCK出現(xiàn)上升沿時(shí),74HC595內(nèi)部寄存器的數(shù)據(jù)輸出到QAQH。 74HC595在SCK上升沿進(jìn)行
40、數(shù)據(jù)采樣,因此CPOL=0,CPHA=0。 真值表 74HC595引腳圖 第58頁/共96頁1.81.8 電路原理圖分析n74HC595的控制端口和SPI串行通信端口連接LPC2220的相關(guān)引腳。 n并行輸出端口QAQH連接到數(shù)碼管上,數(shù)碼管輸出顯示的內(nèi)容完全取決于SPI0模塊所傳輸?shù)膬?nèi)容。 第59頁/共96頁1.9 1.9 程序清單/* 名稱:SPI0_SendData()* 功能:向SPI總線發(fā)送數(shù)據(jù),并接收從機(jī)發(fā)回的數(shù)據(jù)。* 入口參數(shù):data 待發(fā)送的數(shù)據(jù)* 出口參數(shù):返回值為接收到的數(shù)據(jù)*/uint8 SPI0_SendData(uint8 data) S0PDR = data; w
41、hile( 0=(S0PSR&0 x80) );/ 等待SPIF置位,即等待數(shù)據(jù)發(fā)送完畢 return(S0PDR);第60頁/共96頁/*名稱: void HC595_Init(void)*功能: 初始化引腳與SPI0模塊。*入口參數(shù):無*出口參數(shù):無*/void HC595_Init(void) /-引腳初始化-PINSEL0 = (PINSEL0 & 0 xffff00ff) | 0 x00005500; / 設(shè)置P0.4,P0.5,P0.6為SPI0引腳PINSEL2 = PINSEL2 & 0 xffffff7f;/ 設(shè)置HC595_nCS為GPIO口PINS
42、EL2 = PINSEL2 & 0 xfffffff7;/ 設(shè)置HC595_RCK為GPIOIO3DIR = IO3DIR | (128);IO1DIR = IO1DIR | (116);IO3CLR = (128);/ 選中HC595/-SPI寄存器初始化- S0PCCR = 0 x52;/ 設(shè)置SPI時(shí)鐘分頻S0PCR = 0 x30; / 設(shè)置SPI接口模式,MSTR=1,主模式/CPOL=0,CPHA=0,LSBF=1,LSB在前 第61頁/共96頁#define smgA1 (122) / p2.22連接數(shù)碼管的第一個(gè)位選端uint8 const TAB10= 0 xC0,0
43、 xF9,0 xA4,0 xB0,0 x99,0 x92,0 x82,0 xF8,0 x80,0 x98;/-int main(void) uint8 i;HC595_Init ();/HC595初始化/-打開數(shù)碼管- IO2DIR = IO2DIR | smgA1;IO2CLR = smgA1;while(1)/-向74HC595發(fā)送數(shù)據(jù)-for(i=0;i 400000) F_I2C = 40000;I2SCLH = (Fpclk/ F_I2C + 1) / 2; /設(shè)置I2C時(shí)鐘為F_I2CI2SCLL = (Fpclk/ F_I2C) / 2; I2CONCLR = Ox2C;I2CO
44、NSET = Ox40; /使能主I2C第77頁/共96頁主模式下的數(shù)據(jù)發(fā)送 主模式I2C的數(shù)據(jù)發(fā)送格式見圖所示,起始信號(hào)S和停止信號(hào)P用于指示串行傳輸?shù)钠鹗己徒Y(jié)束。數(shù)據(jù)的發(fā)送每次為8位,即一字節(jié),每發(fā)送完一個(gè)字節(jié),主機(jī)都接收到一個(gè)應(yīng)答位(是由從機(jī)回發(fā)的)。第78頁/共96頁操作步驟如下:1、置位STA進(jìn)入I2C主發(fā)送模式,I2C邏輯在總線空閑后,立即發(fā)送一個(gè)起始條件;2、當(dāng)發(fā)送起始條件后,等待SI置位(只有當(dāng)SI=1時(shí),I2DAT才能訪問并保持穩(wěn)定狀態(tài)),此時(shí)I2STAT的狀態(tài)為08H;3、把從地址和讀寫操作位裝入I2DAT,清零SI位,開始發(fā)送從地址和讀寫操作位;4、當(dāng)把從地址和讀寫操作位
45、已發(fā)送并且接受到從機(jī)應(yīng)答位后,SI位再次置位,現(xiàn)在的狀態(tài)碼可能為18H、20H、38H;5、如果狀態(tài)碼為18H,表明主機(jī)已經(jīng)接收到應(yīng)答位,則可以將數(shù)據(jù)裝入I2DAT寄存器,然后清零SI位,開始發(fā)送數(shù)據(jù);6、正確發(fā)送數(shù)據(jù)后,SI位再次置位,可能的狀態(tài)碼為28H,30H,此時(shí)可以根據(jù)狀態(tài)碼進(jìn)行下一個(gè)操作。第79頁/共96頁主模式下的數(shù)據(jù)發(fā)送/*名稱: I2C_Send()*功能: 主發(fā)送模式,與從器件進(jìn)行數(shù)據(jù)交互。*入口參數(shù): SlaveAddr從器件地址pSendData待發(fā)送的數(shù)據(jù)指針Num發(fā)送的數(shù)據(jù)長度 *出口參數(shù):1 代表發(fā)送成功; 0 代表發(fā)送失敗*/uint8 I2C_Send(uni
46、t8 SlaveAddr, uint8 *pSendData, uint32 Num) uint32 i;I2CONSET = 0 x20;/發(fā)送起始位while(I2CONSET&0 x08) = 0) ;/等待SI置位/*發(fā)送從器件地址和讀寫位*/I2CONCLR = 0 x08;/SI位清零I2DAT = SlaveAddr1 & 0 xFE;while(I2CONSET&0 x08) = 0) ; /等待SI置位第80頁/共96頁if(I2STAT != 0 x18) /未接收到應(yīng)答,則發(fā)送停止位,數(shù)據(jù)傳輸中止。 I2CONSET = 0 x10; return
47、 0;/*發(fā)送Num個(gè)字節(jié)數(shù)據(jù)數(shù)據(jù)*/for(i=0; iNum; i+) I2CONCLR = 0 x08;/SI位清零I2DAT = *(pSendData + i);while(I2CONSET&0 x08) = 0) ; /等待SI置位if(I2STAT = 0 x30)/接收非應(yīng)答位,則中斷數(shù)據(jù)傳輸I2CONSET = 0 x10; return 0; return 1; 第81頁/共96頁第82頁/共96頁主模式下的數(shù)據(jù)接收 主機(jī)所接收的數(shù)據(jù)字節(jié)來自從發(fā)送器(即從機(jī)) ,起始和停止條件用于指示串行傳輸?shù)钠鹗己徒Y(jié)束。第一個(gè)發(fā)送的數(shù)據(jù)包含接收器件的從地址(7位)和讀寫操作位(1
48、位)。第83頁/共96頁操作步驟如下: 1、置位STA進(jìn)入I2C主接收模式,I2C邏輯在總線空閑后,立即發(fā)送一個(gè)起始條件;2、當(dāng)發(fā)送起始條件后,等待SI置位(只有當(dāng)SI=1時(shí),I2DAT才能訪問并 保持穩(wěn)定狀態(tài)),此時(shí)I2STAT的狀態(tài)為08H;3、清零SI位,把從地址和讀寫操作位裝入I2DAT,開始發(fā)送從地址和讀寫操作位;4、當(dāng)把從地址和讀寫操作位已發(fā)送并且接受到從機(jī)應(yīng)答位后,SI位再次置位,現(xiàn)在的狀態(tài)碼可能為38H、40H、48H;5、如果狀態(tài)碼為40H,表明主機(jī)已經(jīng)接收到應(yīng)答位,設(shè)置AA位,用來控制接收數(shù)據(jù)后產(chǎn)生應(yīng)答位還是非應(yīng)答位,然后清零SI位,開始接收數(shù)據(jù);6、正確發(fā)送數(shù)據(jù)后,SI位
49、再次置位,可能的狀態(tài)碼為50H、58H,此時(shí)可以根據(jù)狀態(tài)碼進(jìn)行下一個(gè)操作。第84頁/共96頁從模式下的初始化操作 LPC2220系列器件配置為I2C從機(jī)時(shí),I2C主機(jī)可以對(duì)它進(jìn)行讀/寫操作。要初始化從接收模式,并向I2CONSET寫入0 x44實(shí)現(xiàn)I2C使能和AA位置1,向I2CONCLR寫入0 x28清零起始位和中斷標(biāo)識(shí),即可等待主機(jī)訪問。 通常初始化程序中加入了中斷的初始化。 I2C總線時(shí)鐘信號(hào)是由主機(jī)產(chǎn)生,所以從機(jī)不用初始化I2SCLH和I2SCLL寄存器。 第85頁/共96頁I2C從模式初始化設(shè)置/*名稱: I2C_SlaveInit() *功能:從模式I2C初始化,包括初始化其中斷為
50、向量IRQ中斷。 *入口參數(shù): adr 本從機(jī)地址*出口參數(shù):無*/void I2C_Slavlnit(uit8 adr) PINSELO = (PINSELO & OxFFFFFFOF) | Ox50; /設(shè)置I2C控制口有效I2ADR = adr&OxFE;/設(shè)置從機(jī)地址I2CONCLR = 0 x28; I2CONSET = Ox44;/I2C配置為從機(jī)模式/*設(shè)置I2C中斷允許*/VICIntselect = OxOOOOOOOO; /設(shè)置所有通道為IRQ中斷VICVectCntl0 = Ox29; /I2C通道分配到IRQ slot 0,即優(yōu)先級(jí)最高VICVectAddr0 = (int)IRQ_I2C; /設(shè)置I2C中斷向量地址VICIntEnale = Ox0200; /使能I2C中斷第86頁/共96頁從模式下的數(shù)據(jù)發(fā)送 當(dāng)主機(jī)訪問從機(jī)時(shí),若讀寫操作位為1(讀操作),則從機(jī)進(jìn)入從發(fā)送模式,向主機(jī)發(fā)送數(shù)據(jù),并等待主機(jī)的應(yīng)答信號(hào)。第87頁/共96頁從模式下的數(shù)據(jù)接收 當(dāng)主機(jī)訪問從機(jī)時(shí),若讀寫操作位為0(寫操作),則從機(jī)進(jìn)入從接收模式,接收主機(jī)發(fā)送 過來的數(shù)據(jù),并產(chǎn)生應(yīng)答信號(hào)。第88頁/共96頁六、附錄 - RS-232標(biāo)準(zhǔn) RS-232標(biāo)準(zhǔn)(協(xié)議)的全稱是EIA-RS-232標(biāo)準(zhǔn)。它是一個(gè)全雙工的通信標(biāo)準(zhǔn)。這些標(biāo)準(zhǔn)都是
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單位購柴油合同范例
- 和孩子簽合同范本
- 包裝禮盒合同范本
- 合同范例法院起訴
- 農(nóng)村木炭出售合同范本
- 變更購房合同范本
- 單項(xiàng)業(yè)務(wù)合作合同范本
- 鄉(xiāng)村步道施工合同范本
- 變更租賃合同范例
- 合同范本管理指引
- A320飛機(jī)空調(diào)系統(tǒng)正常操作匯總
- 小學(xué)數(shù)學(xué)解決問題題型及解題思路歸類匯總
- 英語15選10練習(xí)題
- 小學(xué)道德與法治-《改革創(chuàng)新謀發(fā)展》教學(xué)課件設(shè)計(jì)
- 2022年電鍍園區(qū)規(guī)范管理方案1122
- 氣管鏡進(jìn)修個(gè)人總結(jié)
- 酸堿平衡和酸堿平衡紊亂課件
- 有限空間作業(yè)專項(xiàng)施工方案
- 電力安全生產(chǎn)“十項(xiàng)嚴(yán)禁”【系列漫畫】
- 升壓站設(shè)備安裝調(diào)試工程施工質(zhì)量驗(yàn)收及評(píng)定范圍劃分表
- Unit 2 My family Part A Let's talk(教學(xué)設(shè)計(jì))人教PEP版英語三年級(jí)下冊(cè)
評(píng)論
0/150
提交評(píng)論