版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第三節(jié)音樂(lè)播放程序TOC\o"1-2"\h\z\u1硬件編程21.1硬件開發(fā)的通用思路21.28253的功能與作用21.38253工作原理31.48253編程方法42音樂(lè)程序編寫62.1揚(yáng)聲器驅(qū)動(dòng)原理62.2音符頻率確實(shí)定62.3定時(shí)器8253編程72.4并口8255A編程73實(shí)驗(yàn)步驟104Turboc2的安裝與使用114.1turboc2的安裝114.2集成環(huán)境介紹114.3turboc2的配置134.4根本編程操作141硬件編程1.1硬件開發(fā)的通用思路 在學(xué)習(xí)的過(guò)程中,往往表達(dá)一個(gè)人的學(xué)習(xí)能力,并不是一個(gè)人在某一方面具體知識(shí)和技能掌握的如何,而是他是否掌握了有效的學(xué)習(xí)方法,是否能夠建立起一個(gè)夯實(shí)的知識(shí)框架。 在本次實(shí)驗(yàn)中,通過(guò)大家學(xué)習(xí)本次實(shí)驗(yàn),完成實(shí)驗(yàn)任務(wù)只是一個(gè)淺層次的目的,更重要的目的,也是通過(guò)實(shí)驗(yàn),讓大家親身體驗(yàn)下硬件編程,掌握硬件編程的方法。 其實(shí)不光是在硬件開發(fā)上,對(duì)于其他的任何事物和問(wèn)題,解決問(wèn)題的方法也是一樣的。以下我們以8253定時(shí)器的開發(fā),來(lái)簡(jiǎn)要介紹下我們的學(xué)習(xí)思路和方法,也可作為本小節(jié)內(nèi)容組織的一個(gè)縮影。是什么?是什么?為什么?怎么做?8253的功能和作用8253的工作原理如何編程控制8253圖1.11.28253的功能與作用 8253是可編程的定時(shí)器與計(jì)數(shù)器。為外設(shè)與CPU之間或外設(shè)與外設(shè)之間配合工作時(shí),提供有效的時(shí)間配合條件。 8253有三個(gè)獨(dú)立的16位計(jì)數(shù)器。 每個(gè)計(jì)數(shù)器均可按二進(jìn)制或者BCD碼計(jì)數(shù)。 各個(gè)計(jì)數(shù)器有6種不同的工作方式。1.38253工作原理8253內(nèi)部結(jié)構(gòu)圖1.28253內(nèi)部結(jié)構(gòu)框圖8253內(nèi)部有六個(gè)模塊,結(jié)構(gòu)框圖如圖1.2所示。數(shù)據(jù)總線緩沖器:數(shù)據(jù)總線緩沖器:數(shù)據(jù)總線緩沖器通過(guò)引腳D0~D7與系統(tǒng)數(shù)據(jù)總線的D0~D7相連,來(lái)實(shí)現(xiàn)CPU和8253的數(shù)據(jù)傳輸?shù)?。?shù)據(jù)包括8253的計(jì)數(shù)值,和工作方式命令字。傳輸?shù)姆绞綖樽x和寫。讀寫控制邏輯:讀寫控制邏輯:讀寫控制邏輯由CPU發(fā)出的讀寫控制信號(hào)和地址信號(hào),選擇讀出或?qū)懭氲拇娣牌?,并確定數(shù)據(jù)傳輸?shù)姆较颍鹤x/寫。控制字存放器:控制字存放器:控制字存放器接收CPU發(fā)來(lái)的控制字??刂谱钟糜谠O(shè)定8253的硬件狀態(tài),如計(jì)數(shù)器的選擇與工作方式等。計(jì)數(shù)器n:計(jì)數(shù)器n:計(jì)數(shù)器是8253中真正的“勞動(dòng)者”,8253的計(jì)數(shù)和定時(shí)功能是由計(jì)數(shù)器實(shí)際執(zhí)行完成的。8253內(nèi)部有3個(gè)獨(dú)立的計(jì)數(shù)器。對(duì)于每一個(gè)獨(dú)立的計(jì)數(shù)器,其都有三個(gè)引腳:CLKn、GATEn、OUTn。也可以簡(jiǎn)單的將這三個(gè)引腳的關(guān)系理解為輸入〔CLKn〕、輸出〔OUTn〕和控制〔GATEn〕。8253計(jì)數(shù)原理計(jì)數(shù)器的輸入為CLK時(shí)鐘信號(hào),為計(jì)數(shù)器工作提供計(jì)數(shù)的基準(zhǔn)參考。在8253工作時(shí),每輸入一個(gè)時(shí)鐘信號(hào)CLK,便使定時(shí)或計(jì)數(shù)值減1。當(dāng)計(jì)數(shù)器工作時(shí),定時(shí)或計(jì)數(shù)值減為0時(shí),就在OUT線上輸出OUT信號(hào),以指示定時(shí)或計(jì)數(shù)已到。GATE門選通信號(hào)用于控制計(jì)數(shù)器工作,主要用來(lái)禁止、允許或開始計(jì)數(shù)。1.48253編程方法端口與存放器圖1.38253讀寫操作及端口地址8253的讀寫操作主要是由控制邏輯模塊來(lái)實(shí)現(xiàn)的,A0、A1地址信號(hào)用來(lái)選擇計(jì)數(shù)器,而由圖。1.3可以看出,更確切的說(shuō)A0、A1地址信號(hào)的作用是在選擇端口。端口其實(shí)就是存放器,端口地址就是存放器的地址。當(dāng)我們寫數(shù)據(jù)到某個(gè)端口時(shí),總要有個(gè)存儲(chǔ)單元來(lái)接收存儲(chǔ)我們的數(shù)據(jù)吧,否那么數(shù)據(jù)還沒(méi)被送給CPU就不見(jiàn)了。當(dāng)我們讀取某個(gè)端口,那么一定也有一個(gè)存儲(chǔ)單元存儲(chǔ)著我們想要的數(shù)據(jù)吧,否那么我們的數(shù)據(jù)從哪里來(lái)呢?這樣應(yīng)該好理解吧,所以端口其實(shí)就是存放器。讀寫信號(hào)控制著數(shù)據(jù)的流向,數(shù)據(jù)是輸入還是輸出。這里大家可能會(huì)有疑問(wèn)了。那我在編程控制8253的時(shí)候,讀寫信號(hào)、地址信號(hào)是不是都要我在編程的時(shí)候直接進(jìn)行設(shè)定呢?答案是否認(rèn)的。其實(shí)我們?cè)诰幊痰臅r(shí)候要方便的多。硬件接口中每個(gè)端口都有特定的功能,編程時(shí)通過(guò)讀寫相應(yīng)端口來(lái)對(duì)硬件接口進(jìn)行控制和數(shù)據(jù)傳輸。8253端口:8253端口:40H——計(jì)數(shù)器0數(shù)據(jù)口。 寫該端口,可設(shè)置計(jì)數(shù)器1的初值。讀同之。41H——計(jì)數(shù)器1數(shù)據(jù)口。 42H——計(jì)數(shù)器2數(shù)據(jù)口43H——8253控制口 寫該端口,選定計(jì)數(shù)器及其工作方式等。當(dāng)我們要設(shè)置8253的工作狀態(tài)時(shí),我們要將工作方式命令字寫入43H端口即可,當(dāng)我們要對(duì)計(jì)數(shù)器2設(shè)置計(jì)數(shù)初值時(shí),將計(jì)數(shù)初值寫入42H端口即可。讀寫操作由匯編指令I(lǐng)N、OUT來(lái)完成,C語(yǔ)言中由inportb〔〕和outportb()函數(shù)完成。因此,在我們編程時(shí),我們只需要使用端口IO命令或函數(shù),指定要操作的端口號(hào)即可。至于硬件級(jí)別的引腳信號(hào)怎么做的都是由CPU在執(zhí)行代碼時(shí),CPU發(fā)出的,那是CPU的事。8253編程任何一個(gè)硬件設(shè)備在正常使用之前都需要進(jìn)行初始化。當(dāng)芯片剛加電時(shí),硬件的工作狀態(tài)都是混亂的,因此,第一步總是要初始化硬件,初始化完成后,就可以控制硬件完成功能任務(wù)。圖1.48253工作方式命令字格式由8253命令字可以看出,命令字主要控制著8253的計(jì)數(shù)器選擇、讀寫格式、工作方式和計(jì)數(shù)碼制。通過(guò)向8253的控制端口寫入工作方式命令字,實(shí)現(xiàn)對(duì)8253工作狀態(tài)的控制,主要用于8253的初始化。代碼1.1代碼1.1選擇計(jì)數(shù)器2,工作方式3,計(jì)數(shù)初值533〔2個(gè)字節(jié)〕,采用二進(jìn)制計(jì)數(shù)。選擇計(jì)數(shù)器2,工作方式3,計(jì)數(shù)初值533〔2個(gè)字節(jié)〕,采用二進(jìn)制計(jì)數(shù)。#define TIMER2_INIT 0xb6 //命令字#define TIMER2_INIT 0xb6 //命令字#define INIT_DATA 0x533 //計(jì)數(shù)初值#define PORT_T2 0x42 //計(jì)數(shù)器2數(shù)據(jù)口#define PORT_CTRL 0x43 //8253控制口 union //共用體暫存計(jì)數(shù)初值 { unsignedintdivisor; unsignedchard[2]; }tone; tone.divisor=INIT_DATA; outportb(CTRL_T,INIT_T2); //向控制端口寫入工作方式命令字,初始化 outportb(PORT_T2,tone.d[0]); //寫入計(jì)數(shù)初值的低字節(jié) outportb(PORT_T2,tone.d[1]); //寫入計(jì)數(shù)初值的高字節(jié)#include<dos.h>#include<dos.h>函數(shù)名:
inportb功能:返回從指定硬件端口讀入的一個(gè)8位二進(jìn)制〔一個(gè)字節(jié)〕。用法:int
inportb(intport);函數(shù)名:
outportb功能:輸出字節(jié)到硬件端口中用法:
voidoutportb(intport,charbyte);2音樂(lè)程序編寫2.1揚(yáng)聲器驅(qū)動(dòng)原理圖2.1揚(yáng)聲器硬件原理圖在PC機(jī)中,8253的通道2與計(jì)算機(jī)的揚(yáng)聲器相連,由通道2工作于方式3產(chǎn)生一定頻率的方波信號(hào)去驅(qū)動(dòng)揚(yáng)聲器按一定頻率發(fā)聲。其中8253是否工作取決于其片選信號(hào)GATE2,輸出的頻率大小受控于編程時(shí)寫入的計(jì)數(shù)初值。其原理如圖2.1所示。8253的端口地址為40H~43H。從圖中可見(jiàn),系統(tǒng)使用并行I/O接口8255A中PB端口的最低兩位用作兩個(gè)開關(guān),來(lái)控制該發(fā)聲驅(qū)動(dòng)系統(tǒng):PB0作為8253通道2的門控信號(hào)GATE2,控制通道2定時(shí)計(jì)數(shù)的啟停;PB1與通道2的OUT2信號(hào)相與后去控制揚(yáng)聲器接通與斷開。PC中8255A的端口地址為60H~63H??梢?jiàn),要使揚(yáng)聲器發(fā)聲,PB0置1,通道2才能工作;PB1置1,OUT2上產(chǎn)生的一定頻率的方波信號(hào)才能通過(guò)與門送到驅(qū)動(dòng)器,從而使揚(yáng)聲器發(fā)聲。 在明白了如何通過(guò)驅(qū)動(dòng)揚(yáng)聲器的原理后,我們應(yīng)該明白,實(shí)現(xiàn)本次實(shí)驗(yàn),關(guān)鍵點(diǎn)就在與兩個(gè)方面了:一是如何控制8253定時(shí)器,使其輸出音頻波形;二是如何控制8255A,使其起到控制開關(guān)的作用。接下來(lái)我們來(lái)深入探討。2.2音符頻率確實(shí)定樂(lè)曲是按照一定的上下、長(zhǎng)短和強(qiáng)弱關(guān)系組成的音調(diào)。在一首樂(lè)曲中,每個(gè)音符的音高與頻率有關(guān)。組成樂(lè)曲的每個(gè)音符的頻率值是樂(lè)曲程序發(fā)聲所需要的數(shù)據(jù)。音符的頻率根據(jù)不同的音樂(lè)是不同的,可以預(yù)先查知,但實(shí)際送入計(jì)數(shù)器的是輸入頻率1.193MHz(1193180)與音符頻率相除的值。8度音:8度音:1234567i1300Hz1462.5Hz1625Hz1733Hz1950Hz2166.7Hz2437.5Hz2600Hz918 816 734 689612550489469音符頻率表音符頻率初值例如我們計(jì)算揚(yáng)聲器發(fā)出音符1時(shí)的計(jì)數(shù)初值,音符1的頻率為1300Hz,那么計(jì)數(shù)初值就為1193180/1300,各個(gè)音符的頻率以及相關(guān)8253的計(jì)數(shù)初值在上表中。2.3定時(shí)器8253編程定時(shí)器8253主要實(shí)現(xiàn)音樂(lè)頻率的產(chǎn)生。在8253的三個(gè)獨(dú)立的計(jì)數(shù)器中,計(jì)數(shù)器2用于控制揚(yáng)聲器,兩外兩個(gè)計(jì)數(shù)器分別用于控制系統(tǒng)軟時(shí)鐘和動(dòng)態(tài)存儲(chǔ)器刷新。在音樂(lè)播放程序中,首先要初始化8253,使計(jì)數(shù)器2工作在方式3,隨后對(duì)計(jì)數(shù)器2賦初值,它就根據(jù)系統(tǒng)時(shí)鐘對(duì)初始值進(jìn)行減1計(jì)數(shù),當(dāng)計(jì)數(shù)值到0時(shí),定時(shí)器就向揚(yáng)聲器發(fā)出一個(gè)脈沖,同時(shí)重新從初始值開始減計(jì)數(shù)??傊〞r(shí)器能根據(jù)要求的頻率向揚(yáng)聲器發(fā)出脈沖,于是揚(yáng)聲器就產(chǎn)生指定頻率的聲音。定時(shí)器的輸入頻率固定為1193180,計(jì)數(shù)初值決定了向揚(yáng)聲器發(fā)出脈沖的時(shí)間間隔,他們之間的關(guān)系如下公式計(jì)算:頻率=1193180/計(jì)數(shù)初值計(jì)數(shù)初值=1193180/頻率其中各個(gè)音符的頻率,可參考2.2小節(jié)中的音符頻率表,表中給出了各個(gè)音符的頻率,以及相應(yīng)的計(jì)數(shù)器的初值。定時(shí)器8253的編程可參考代碼1.1。2.4并口8255A編程聲音的停頓以及開關(guān)是由8255A來(lái)實(shí)現(xiàn)的。8255A是通用可編程并口芯片。片內(nèi)有3個(gè)8位并行I/O口,分別稱為PA口、PB口和PC口,可以通過(guò)編程對(duì)8255A輸入不同的指令改變I/O口的工作方式。在音樂(lè)播放程序中,并口8255A中的PB口中d0和d1兩位控制著定時(shí)器8253的GATE2和揚(yáng)聲器,其作用相當(dāng)于一個(gè)開關(guān)。只有當(dāng)d0為1時(shí),8253的計(jì)數(shù)器2才允許計(jì)數(shù),因此d0作為8253工作與否的開關(guān);同時(shí)d1位控制著8253的計(jì)數(shù)器2的OUT信號(hào)是否能夠順利送達(dá)揚(yáng)聲器,因此,當(dāng)音樂(lè)播放的時(shí)候,PB口的d0、d1位要置1。代碼2.1代碼2.1 unsignedcharvalue;value=inportb(PORT_PB); //取出8255A的PB口狀態(tài) outportb(PORT_PB,(value|0x03)); //將PB口的低2位值1 u_delay(ms); //延時(shí)子函數(shù),控制音符的節(jié)拍 outportb(PORT_PB,value); //恢復(fù)PB口狀態(tài),即關(guān)閉在代碼2.1中,定義了一個(gè)unsignedchar型變量value,用于讀取8255APB口的狀態(tài),隨后將value與0x3相與寫入PB口,等待一個(gè)延時(shí),這個(gè)延時(shí)控制著一個(gè)音符發(fā)聲的時(shí)長(zhǎng),即節(jié)拍。隨后將value值再寫入PB口。這樣就防止了對(duì)PB口中其他位產(chǎn)生影響。在代碼2.1中,有個(gè)延時(shí)子程序u_delay(),這個(gè)延時(shí)主要是控制每個(gè)音符發(fā)聲的長(zhǎng)短,從而實(shí)現(xiàn)整個(gè)音樂(lè)的節(jié)拍。該延時(shí)子程序的實(shí)現(xiàn)與CPU主頻無(wú)關(guān),能夠到達(dá)不依賴于硬件主頻的準(zhǔn)確延時(shí)。有興趣同學(xué)可以分析下該延時(shí)程序,代碼如下:代碼2.2代碼2.2voidu_delay(unsignedintms){ structtimetimep; floattime0,time1; gettime(&timep); time0=timep.ti_hour*3600+timep.ti_min*60+timep.ti_sec+timep.ti_hund*1.00/100; do { gettime(&timep); time1=timep.ti_hour*3600+timep.ti_min*60+timep.ti_sec+timep.ti_hund*1.00/100; if(time1<time0) { time1+=86400; } }while(time1-time0<ms*1.00/1000);}2.5音樂(lè)程序流程圖〔參考music.asm源碼〕讀取音符頻率讀取音符頻率開始音樂(lè)結(jié)束?調(diào)用SOUND子程序結(jié)束圖2.2主程序music.asm流程圖NY設(shè)置8253狀態(tài)和分頻初值設(shè)置8253狀態(tài)和分頻初值讀入8255A的PB口狀態(tài)8255A的PB口D0和D1置1延時(shí)恢復(fù)8255A的PB口狀態(tài)保護(hù)現(xiàn)場(chǎng)返回圖2.3SOUND子程序流程圖保護(hù)現(xiàn)場(chǎng)3實(shí)驗(yàn)步驟〔匯編代碼music.asm為例〕a.編輯匯編源程序music.asm
b.將文件music.asm放入masm5.0目錄下
c.計(jì)算機(jī)重啟進(jìn)入MAXDOS
d.輸入命令ntfsdos加載NTFS分區(qū)
e.進(jìn)入masm.5.0目錄
f.匯編:輸入命令masmmusic.asm
g.鏈接:輸入命令linkmusic
h執(zhí)行:輸入命令music〔C語(yǔ)言為例〕a.在dos環(huán)境下,進(jìn)入turboc2目錄,輸入命令tc啟動(dòng)turboc2。b.編輯C語(yǔ)言源代碼〔或者用其他C代碼編輯器編輯后,在turboc2中加載〕。c.編譯C源程序,生成可執(zhí)行程序。d.假設(shè)編譯有錯(cuò),根據(jù)turboc提示,查錯(cuò)修改。亦可使用調(diào)試功能查錯(cuò)。e.重啟進(jìn)入MAXDOS,輸入命令ntfsdos加載NTFS分區(qū)f.進(jìn)入可執(zhí)行文件所在文件夾,輸入可執(zhí)行文件的文件名,執(zhí)行程序4Turboc2的安裝與使用4.1turboc2的安裝同學(xué)們得到turboc2的壓縮包后,可以直接解壓即可使用。本人將turboc2解壓在了F分區(qū)下,因此以此路徑為例進(jìn)行講解。如果你turboc2解壓的位置與我的不同,請(qǐng)注意相關(guān)路徑,以你實(shí)際路徑為準(zhǔn)。圖4.1在圖4.1中,顯示了進(jìn)入turboc2安裝目錄的情況,可以看到turboc2目錄下有兩個(gè)文件夾INCLUDE和LIB。在使用turboc2之前,我們需要先設(shè)置turboc2的頭文件和庫(kù)文件的路徑,設(shè)置方法稍后會(huì)介紹。4.2集成環(huán)境介紹進(jìn)入dos環(huán)境進(jìn)入dos環(huán)境f:cdturboc2tc圖4.2輸入tc命令,就開始執(zhí)行turboc2的集成開發(fā)環(huán)境。圖下列圖所示:編輯區(qū)編輯區(qū)圖4.3如圖4.3所示,集成環(huán)境有四個(gè)區(qū)域組成:主菜單、編輯區(qū)、信息窗口、狀態(tài)行。主菜單包括File、Edit、Run、Compile、Options、Debug、Break/watch子菜單。編輯區(qū)用來(lái)編輯文件的,也是turboc2的主窗口,在次窗口可以輸入、編輯和調(diào)試C語(yǔ)言文件。在編輯狀態(tài)下,閃爍的“_”為光標(biāo),表示當(dāng)前輸入文字將出現(xiàn)的位置。信息窗口在編譯、調(diào)試程序的時(shí)候會(huì)顯示出相關(guān)的信息。在編譯/連接時(shí)輸出編譯/連接的結(jié)果,在程序調(diào)試中,此窗口又稱為跟蹤窗口,用于顯示跟蹤表達(dá)式或變量的當(dāng)前值。編輯窗口和信息窗口的切換通過(guò)功能鍵F6實(shí)現(xiàn)。狀態(tài)行即圖4.3紅線處,為用戶提供最根本的幫助信息,以及當(dāng)前鍵盤狀態(tài)。在turboc2的集成環(huán)境中,是不能用鼠標(biāo)的,只能使用鍵盤。在圖4.3中,可以看到主菜單File的背景色為黑色,按下回車,即可展開File下的子菜單。如圖4.4圖4.4在File的子菜單中,可以使用鍵盤上下方向鍵來(lái)選擇子選項(xiàng)。退到主菜單可按“ESC”鍵,也可使用“F10”快捷鍵切到主菜單。 在不同的子菜單中切換,可以在主菜單下使用左右方向鍵,黑色背景即為當(dāng)前操作的子菜單。也可以使用“Alt”快捷鍵,如我想進(jìn)入Compile子菜單,可以使用“Alt+C”即可,在主菜單中每個(gè)子菜單的首字母都是大寫紅色,Alt和各個(gè)子菜單的首字母組合都可進(jìn)入相應(yīng)的子菜單。如圖4.5所示。圖4.5 如果要退出turboc2集成環(huán)境,可以進(jìn)入File子菜單中,選擇Quit即可,也可使用“Alt+X”快捷鍵。4.3turboc2的配置在4.1小節(jié)我們提到需要配置turboc2的一些路徑,這里我們來(lái)完成這個(gè)任務(wù)。進(jìn)入turboc2集成環(huán)境,切到Options子菜單,選擇Directories選項(xiàng)。如圖4.6所示:圖4.6進(jìn)入Directories后如圖4.7所示:圖4.7如圖4.7顯示,有四個(gè)工程,如果你的安裝路徑和我的不同,請(qǐng)做相應(yīng)的修改。Includedirectories:頭文件的路徑,如圖4.1所示,設(shè)為turboc2目錄下的INCLUDE文件夾。Librarydirectories:庫(kù)文件路徑,設(shè)為turboc2目錄下LIB文件夾。Outputdirectories:輸出文件夾,即用來(lái)存放編譯程序時(shí)的生成文件,包括目標(biāo)文件和可執(zhí)行文件等。由于turboc2目錄下文件太多,為了方便程序管理,我在turboc2目錄下新建了一個(gè)Project文件夾,來(lái)存放源程序和編譯生成的程序。TurboCdirectory:該路徑為turboc2的安裝目錄即可。到此,turboc2環(huán)境就可以正常使用了。4.4根本編程操作創(chuàng)立一個(gè)C源文件在每次啟動(dòng)turboc2后,系統(tǒng)會(huì)自動(dòng)創(chuàng)立名為NONAME.C的新文件。在編輯窗口輸入程序代碼,并保存,就可以創(chuàng)立一個(gè)C源文件。另外,在File菜單下“New”選項(xiàng)也可創(chuàng)立一個(gè)新文件。如圖4.8所示:圖4.8程序文本輸入在插入點(diǎn)處輸入文檔的內(nèi)容。如果當(dāng)前的編輯狀態(tài)為Insert〔插入〕,輸入程序文本后,插入點(diǎn)自動(dòng)向后移動(dòng)。如果當(dāng)前的編輯狀態(tài)為改寫,輸入程序文本后,當(dāng)前輸入的文本會(huì)顯示在窗口中,并自動(dòng)覆蓋插入點(diǎn)后的文本,直到停止輸入。插入和改寫狀態(tài)切換是通過(guò)按Insert功能鍵來(lái)實(shí)現(xiàn)的,在編輯窗口上的提示行中有“Insert”信息時(shí)表示當(dāng)前的狀態(tài)為插入狀態(tài),否那么為改寫狀態(tài)。在
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度會(huì)展中心場(chǎng)地租賃及配套服務(wù)補(bǔ)充協(xié)議3篇
- 2025年個(gè)人承包文化創(chuàng)意產(chǎn)業(yè)合同(創(chuàng)意設(shè)計(jì))2篇
- 2024版支付擔(dān)保合同范本
- 2024生物質(zhì)鍋爐燃料供應(yīng)及銷售合同3篇
- 2024石膏板供應(yīng)商戰(zhàn)略合作采購(gòu)合同模板3篇
- 2025年度專業(yè)廚師團(tuán)隊(duì)廚房服務(wù)承包協(xié)議3篇
- 2024綠化土地租賃與生態(tài)補(bǔ)償及綠化管理合同3篇
- 2024鐵路貨運(yùn)車輛安全檢測(cè)及維護(hù)服務(wù)合同實(shí)施細(xì)則3篇
- 多媒體應(yīng)用基礎(chǔ)知到智慧樹章節(jié)測(cè)試課后答案2024年秋安徽大學(xué)
- 2025年充電樁充電站運(yùn)營(yíng)維護(hù)及升級(jí)改造合同3篇
- 汽車租賃流程圖
- 兒童糖尿病的飲食
- “以案促改”心得體會(huì)
- 干細(xì)胞項(xiàng)目商業(yè)計(jì)劃書
- 安全事故現(xiàn)場(chǎng)處置方案(3篇)
- 中國(guó)通 用技術(shù)集團(tuán)招聘筆試題庫(kù)
- 【MOOC】工程材料學(xué)-華中科技大學(xué) 中國(guó)大學(xué)慕課MOOC答案
- 就業(yè)招聘服務(wù)行業(yè)市場(chǎng)前瞻與未來(lái)投資戰(zhàn)略分析報(bào)告
- 收購(gòu)居間服務(wù)合同
- 無(wú)人機(jī)航拍技術(shù)教案(完整版)
- 手繪pop教學(xué)課件
評(píng)論
0/150
提交評(píng)論