版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第七章C8051F系列單片機(jī)應(yīng)用系統(tǒng)的開發(fā)7.1C8051F020實(shí)驗(yàn)系統(tǒng)7.2C8051F單片機(jī)實(shí)驗(yàn)項(xiàng)目7.3在KeiluVision2中進(jìn)行C8051F系列單片機(jī)的軟件開發(fā)和調(diào)試7.1C8051F020實(shí)驗(yàn)系統(tǒng)NMC-20XX核心模塊壓力傳感器和調(diào)理電路電位調(diào)節(jié)直流電機(jī)測(cè)速和控制模塊步進(jìn)電機(jī)實(shí)驗(yàn)?zāi)K輕觸按鍵和撥動(dòng)開關(guān)12864點(diǎn)陣液晶顯示模塊HD7279芯片、按鍵和七段碼顯示模塊紅綠LED數(shù)碼管RS232串口以太網(wǎng)接口電源開關(guān)7.1C8051F020實(shí)驗(yàn)系統(tǒng)實(shí)驗(yàn)系統(tǒng)可進(jìn)行SOC單片機(jī)典型應(yīng)用的實(shí)驗(yàn),包含三部分:SiliconLaboratories的SOC單片機(jī)開發(fā)工具;可用于以太網(wǎng)測(cè)控的NMC-20XX核心模塊;系統(tǒng)實(shí)驗(yàn)板。系統(tǒng)性能和運(yùn)行環(huán)境系統(tǒng)的主要性能指標(biāo):系統(tǒng)時(shí)鐘最高可達(dá)25MHz。通過(guò)RS232接口(或USB)與PC機(jī)連接。支持匯編語(yǔ)言和C51源代碼級(jí)調(diào)試。支持第三方軟件工具(KeilC)。IDE軟件運(yùn)行環(huán)境Windows2000/XP操作系統(tǒng)32MbRAM40Mb自由硬盤空間空閑的COM口,配USB接口的調(diào)試電纜可以用USB接口。C8051F020實(shí)驗(yàn)系統(tǒng)連接和使用將JTAG扁平電纜一端與適配器(EC2)連接,另一端與目標(biāo)系統(tǒng)連接;將RS232串行電纜的一端與EC2連接,另一端接到PC機(jī);給目標(biāo)系統(tǒng)上電;插入CD并運(yùn)行“SETUP.EXE”,將IDE軟件安裝到您的PC機(jī),在PC機(jī)的開始菜單的“程序”項(xiàng)中選擇SiliconLaboratoriesIDE,運(yùn)行IDE軟件。7.1.1C8051F單片機(jī)開發(fā)工具SiliconLaboratories的開發(fā)工具由IDE調(diào)試環(huán)境軟件、適配器和電纜組成。C8051F系列所有的單片機(jī)片內(nèi)均設(shè)計(jì)有調(diào)試電路,該調(diào)試電路通過(guò)邊界掃描方式獲取單片機(jī)片內(nèi)信息,通過(guò)4線的JTAG接口(有的型號(hào)使用二線(C2)接口)與開發(fā)工具連接,對(duì)單片機(jī)在片編程調(diào)試。適配器(EC2)一端與計(jì)算機(jī)相連,另一端與C8051F單片機(jī)JTAG口相連,應(yīng)用SiliconLaboratories提供的IDE調(diào)試環(huán)境或Keil
的uVision2調(diào)試環(huán)境就可以進(jìn)行非侵入式、全速的在系統(tǒng)編程(ISP)和調(diào)試。IDE調(diào)試環(huán)境運(yùn)行在PC機(jī)的Windows系統(tǒng)下,在調(diào)試狀態(tài)下可以觀察和修改單片機(jī)的存儲(chǔ)器和寄存器;支持?jǐn)帱c(diǎn)設(shè)置、觀察點(diǎn)設(shè)置、堆棧指示器設(shè)置及單步運(yùn)行、全速運(yùn)行和停止運(yùn)行等命令。調(diào)試時(shí)不需要額外的目標(biāo)RAM、程序存儲(chǔ)器、定時(shí)器或通信通道,并且所有的模擬和數(shù)字外設(shè)都能正常工作。開發(fā)工具支持所有C8051Fxxx系列單片機(jī),根據(jù)不同單片機(jī)型號(hào)的調(diào)試接口,采用JTAG或C2接口的適配器。7.1.2NMC-20XX核心模塊簡(jiǎn)介NMC-20XX核心模塊的外觀可參見圖中的標(biāo)注,結(jié)構(gòu)框圖。該模塊是為用于工業(yè)測(cè)控(包括以太網(wǎng)測(cè)控功能)而設(shè)計(jì)的,模塊中使用C8051F020單片機(jī),片外擴(kuò)展了128KB的SRAM(UT62L1024芯片),以串行方式擴(kuò)展了1MB的Flash存儲(chǔ)器(AT45DB081芯片);模塊用4層PCB板設(shè)計(jì),面積僅為42.5mm×53.8mm,模塊上設(shè)計(jì)有連接C8051F020單片機(jī)的JTAG調(diào)試接口,有用于擴(kuò)展和應(yīng)用連接的2×40P雙排針,該雙排針可與不同用戶設(shè)計(jì)的應(yīng)用系統(tǒng)連接,在該實(shí)驗(yàn)系統(tǒng)上和系統(tǒng)實(shí)驗(yàn)板連接。NMC-20XX核心模塊示意圖單片機(jī)(C8051F020)F020I/O、AD引出2×40P雙5排插針SRAM(UT6L1024)Flash(AT45DB081)網(wǎng)絡(luò)芯片(RTL8019)日歷時(shí)鐘(P3530)JTAG調(diào)試接口實(shí)驗(yàn)箱實(shí)驗(yàn)?zāi)K步進(jìn)電機(jī)NMC-20XX
核心模塊直流電機(jī)RJ-45以太網(wǎng)測(cè)控RS-485串行口通訊RS232串行口通訊壓力傳感器模擬量輸入JTAG適配器HD7279(4×4鍵6位LED)16個(gè)LED(D1~D16)8路開關(guān)量入(K1~K8)溫度傳感器DS18B20電位器電位AD輸入實(shí)驗(yàn)箱和核心模塊資源介紹(1)系統(tǒng)實(shí)驗(yàn)板除與NMC-20XX核心模塊連接外,還配置了豐富的硬件資源,可根據(jù)需要安排多個(gè)實(shí)驗(yàn)內(nèi)容。系統(tǒng)實(shí)驗(yàn)板與核心模塊組成實(shí)驗(yàn)的目標(biāo)系統(tǒng),然后由運(yùn)行在PC機(jī)上的集成開發(fā)軟件、JTAG口的協(xié)議轉(zhuǎn)換器(EC2),實(shí)現(xiàn)在系統(tǒng)開發(fā)調(diào)試。實(shí)驗(yàn)者可參照本章后面的實(shí)驗(yàn)例程編譯和下載各應(yīng)用程序,也可獨(dú)立設(shè)計(jì)程序(C或匯編),然后就可開始在系統(tǒng)調(diào)試了。該系統(tǒng)實(shí)驗(yàn)板由多個(gè)相對(duì)獨(dú)立,又能組合的實(shí)驗(yàn)硬件模塊組成。實(shí)驗(yàn)箱模塊資源介紹(2)(1)HD7279芯片,6位LED數(shù)碼顯示與4×4鍵盤掃描電路;(2)開關(guān)量輸出的D1~D16發(fā)光二極管;(3)8路開關(guān)量輸入接口K1~K8,AN1~AN8;(4)DS18B20數(shù)字溫度傳感器;(5)電位器測(cè)量電壓模擬輸入電路;(6)壓力應(yīng)變片傳感器模擬輸入電路;(7)128×64點(diǎn)陣液晶顯示模塊;(8)RS-232通訊接口;(9)RS-485通訊接口;(10)RJ-45以太網(wǎng)接口;(11)直流電機(jī)及調(diào)速電路;(12)步進(jìn)電機(jī)及控制電路;7.2C8051F單片機(jī)實(shí)驗(yàn)項(xiàng)目下面介紹7個(gè)典型的C8051F020單片機(jī)的實(shí)驗(yàn)實(shí)驗(yàn)一:數(shù)據(jù)傳送實(shí)驗(yàn);實(shí)驗(yàn)二:查表實(shí)驗(yàn);實(shí)驗(yàn)三:HD7279鍵盤和顯示實(shí)驗(yàn);實(shí)驗(yàn)四:定時(shí)器和走馬燈實(shí)驗(yàn);實(shí)驗(yàn)五:步進(jìn)電機(jī)實(shí)驗(yàn);實(shí)驗(yàn)六:直流電機(jī)測(cè)速和控制實(shí)驗(yàn);實(shí)驗(yàn)七:溫度數(shù)據(jù)采集實(shí)驗(yàn)。 實(shí)驗(yàn)一和實(shí)驗(yàn)二采用匯編語(yǔ)言編寫代碼和實(shí)現(xiàn);實(shí)驗(yàn)三~實(shí)驗(yàn)七采用C51語(yǔ)言編寫代碼。7.2.1數(shù)據(jù)傳送實(shí)驗(yàn)實(shí)驗(yàn)?zāi)康恼莆諏?duì)C8051F020內(nèi)部RAM及外部RAM的數(shù)據(jù)操作方法。實(shí)驗(yàn)內(nèi)容本例程將內(nèi)部RAM地址為70H~7FH的16個(gè)字節(jié)數(shù)據(jù)依次送到外部RAM地址為7000H~700FH的單元中。實(shí)驗(yàn)分析本實(shí)驗(yàn)中要訪問(wèn)單片機(jī)的內(nèi)外部RAM,涉及到的匯編語(yǔ)言指令是MOV和MOVX,訪問(wèn)內(nèi)部RAM使用指令MOV,而訪問(wèn)外部RAM使用指令MOVX。實(shí)驗(yàn)分析(1)MOV指令較為靈活、變化較多,但是本實(shí)驗(yàn)中要求進(jìn)行讀取內(nèi)部RAM并且需要連續(xù)讀取多個(gè)字節(jié),適合使用間接尋址的“MOVA,@R0”或者“MOVA,@R1”指令,此處R0或者R1作為間接尋址寄存器,存放要讀取的RAM單元的地址。比如本實(shí)驗(yàn)采用R1來(lái)間接尋址訪問(wèn)內(nèi)部RAM。寫外部RAM的MOVX指令相對(duì)而言格式較為固定,本實(shí)驗(yàn)使用DPTR間接尋址的“MOVX@DPTR,A”指令,能夠較容易的實(shí)現(xiàn)對(duì)相應(yīng)單元的訪問(wèn),DPTR作為將要訪問(wèn)的外部RAM的地址寄存器。實(shí)驗(yàn)分析(2)因?yàn)閷?shí)驗(yàn)要求傳送16個(gè)字節(jié),可以考慮采用循環(huán)程序結(jié)構(gòu)。而實(shí)現(xiàn)循環(huán)結(jié)構(gòu)較容易想到的MCS-51的匯編語(yǔ)言指令是“DJNZRn,label”,這里Rn是循環(huán)計(jì)數(shù)器,可以是R0~R7中間的任何一個(gè),一般使用R2~R7中任何一個(gè),而把R0和R1留給間接尋址使用;而標(biāo)號(hào)label代表跳轉(zhuǎn)的目的標(biāo)號(hào),用于循環(huán)結(jié)構(gòu)中就是循環(huán)體部分的首條指令。本實(shí)驗(yàn)選用R7作為循環(huán)計(jì)數(shù)器。實(shí)驗(yàn)分析(3)作為一個(gè)結(jié)構(gòu)完整的匯編語(yǔ)言程序,必須指令程序的入口點(diǎn),對(duì)于MCS-51系列單片機(jī),因?yàn)槌绦虼鎯?chǔ)器的開始部分一般預(yù)留給中斷入口的向量區(qū)域,故初始化一般安排在處理器的中斷向量區(qū)域之后,可以使用匯編語(yǔ)言的偽指令“ORGxxxxH”的形式進(jìn)行匯編語(yǔ)言指令的定位。考慮到C8051F020單片機(jī)一共有21個(gè)中斷,每個(gè)中斷入口的8個(gè)字節(jié)不宜安排它用,最好程序跳過(guò)這些區(qū)域。比如從0100H這個(gè)地址開始就完全不會(huì)和中斷的區(qū)域重疊。本實(shí)驗(yàn)主程序就從0100H的程序存儲(chǔ)器地址開始安排。單片機(jī)復(fù)位后執(zhí)行的第一條指令是程序存儲(chǔ)器地址為0的指令,所以一般安排一個(gè)跳轉(zhuǎn)指令,轉(zhuǎn)移到主程序開始的地方執(zhí)行。程序的流程圖開始結(jié)束傳送完成?跳轉(zhuǎn)到主程序R7<-16R1<-70HDPTR<-7000H@R1->@DPTRR1自增1DPTR自增1實(shí)驗(yàn)參考程序
ORG
0000H
AJMPMAIN
ORG
0100HMAIN:
MOVR7,#16
MOVR1,#70H
;內(nèi)部RAM地址70H送R1
MOVDPTR,#7000H
;DPTR指向XRAM地址7000HLOOP1:
MOVA,@R1;內(nèi)部RAM內(nèi)容送累加器A
MOVX@DPTR,A;將累加器A的值送到XRAM
INCDPTR
INCR1
DJNZR7,LOOP1;判斷數(shù)據(jù)是否送完HERE:
AJMPHERE
END調(diào)試要點(diǎn)(1)可單步執(zhí)行、可設(shè)斷點(diǎn)執(zhí)行程序。(2)打開RAM及EXTERNALMEMORY窗口,觀察相對(duì)應(yīng)的數(shù)據(jù)區(qū)的數(shù)據(jù)在程序執(zhí)行前后是否一致。7.3.2查表實(shí)驗(yàn)
實(shí)驗(yàn)?zāi)康氖煜CS-51的查表指令功能和使用方法,掌握查表程序的設(shè)計(jì)和調(diào)試。實(shí)驗(yàn)內(nèi)容程序存儲(chǔ)器中存放有一常數(shù)表,表中的每個(gè)元素為一個(gè)字(兩個(gè)字節(jié)),表的內(nèi)容與索引號(hào)的對(duì)應(yīng)關(guān)系如下表所示?,F(xiàn)已經(jīng)將索引號(hào)放入工作寄存器R0中,試用匯編語(yǔ)言編寫根據(jù)R0的值查找表中對(duì)應(yīng)元素的程序,將結(jié)果放入內(nèi)部RAM的20H(高字節(jié))和21H(低字節(jié))單元中。比如給定索引6,則查表得到最終結(jié)果在內(nèi)部RAM中的(20H)=8BH,(21H)=0DCH。查表實(shí)驗(yàn)的表格01234567898000H1001H8002H5203H4817H69A2H8BDCH7FEDH30F3H04BFH實(shí)驗(yàn)分析(1) 本實(shí)驗(yàn)主要練習(xí)MOVC指令。查表指令有兩條:“MOVCA,@A+DPTR”和“MOVCA,@A+PC”這兩條指令都采用基址加變址的尋址方式,并且訪問(wèn)的是程序存儲(chǔ)器空間,因?yàn)槌绦虼鎯?chǔ)器空間一般是只讀存儲(chǔ)器,所以往往存放一些常數(shù)表格,進(jìn)行代碼轉(zhuǎn)換的應(yīng)用。使用查表指令時(shí),一般使用DPTR或者PC作為基址寄存器存放表格的起始地址(首個(gè)字節(jié)的地址),而用變址寄存器A存放待查的偏移量,二者之和就是待查項(xiàng)的地址,然后通過(guò)間接尋址的形式取得對(duì)應(yīng)的字節(jié)值。實(shí)驗(yàn)分析(2)而本實(shí)驗(yàn)中,一個(gè)索引對(duì)應(yīng)連續(xù)的兩個(gè)字節(jié)內(nèi)容,一次查表指令的執(zhí)行只能取得一個(gè)字節(jié)內(nèi)容,要完成要求必須通過(guò)執(zhí)行兩次查表指令來(lái)完成。待查元素的地址=表格首地址+2×索引值+字節(jié)索引。這里索引值乘以2是因?yàn)槊總€(gè)待查項(xiàng)占用程序存儲(chǔ)器連續(xù)的兩個(gè)字節(jié)空間,而字節(jié)索引為0或者1,可以在取第二個(gè)字節(jié)使地址寄存器加1獲得。本實(shí)驗(yàn)采用“MOVCA,@A+DPTR”的形式訪問(wèn)程序存儲(chǔ)器。實(shí)驗(yàn)程序參考框圖開始DPTR+1→DPTR表格首址送DPTR結(jié)果目的地址送R1結(jié)束索引送A查表得數(shù)據(jù)高位并送入RAM查表得數(shù)據(jù)低位并送入RAMA左移一位實(shí)驗(yàn)參考程序ORG
0000H
AJMPMAIN
ORG
0100HMAIN:
MOVR0,#6
;假如要查表格中第6項(xiàng)
MOVR1,#20H
;將查表所得結(jié)果存入內(nèi)部RAM,地址分別為20H、21H
MOV
DPTR,#Table
;DPTR指向表格首地址
MOVA,R0;R0內(nèi)容送累加器A
RL A
MOVCA,@A+DPTR;查表指令
MOV@R1,A;存放結(jié)果
MOVA,R0;下面進(jìn)行第二次查表
RLA
INCDPTR
MOVCA,@A+DPTR;查表得第二字節(jié)
INCR1;間接尋址指針自增
MOV@R1,A;存放第二個(gè)字節(jié)的結(jié)果HERE:
AJMPHERETABLE:
DW
8000H,1001H,8002H,5203H,4817H,69A2H,8BDCH,7FEDH,30F3H,04BFH
END調(diào)試要點(diǎn)(1)在讀取鍵后設(shè)置斷點(diǎn),觀察DATA_IN的內(nèi)容與鍵入值是否相同。(2)在調(diào)用查表程序后設(shè)置斷點(diǎn),觀察R2,R3的內(nèi)容與表中的內(nèi)容是否相同。(3)全速運(yùn)行程序,鍵入數(shù)字鍵,觀察顯示器上的內(nèi)容是否為鍵值對(duì)應(yīng)的數(shù)值。7.3.3七段碼顯示與按鍵實(shí)驗(yàn)實(shí)驗(yàn)?zāi)康母鶕?jù)實(shí)驗(yàn)電路,閱讀HD7279芯片的數(shù)據(jù)手冊(cè),使用C51語(yǔ)言編程實(shí)現(xiàn)按鍵的讀取和七段碼顯示器的控制,加深對(duì)HD7279芯片功能的理解,培養(yǎng)單片機(jī)應(yīng)用設(shè)計(jì)的能力。HD7279A介紹HD7279A是一片具有串行接口的、可同時(shí)驅(qū)動(dòng)8位共陰式數(shù)碼管(或64只獨(dú)立LED)的顯示驅(qū)動(dòng)芯片,該芯片同時(shí)還可連接多達(dá)64鍵的鍵盤矩陣。HD7279A內(nèi)部含有譯碼器,可直接接受16進(jìn)制碼,HD7279A還同時(shí)具有2種譯碼方式,HD7279A還具有多種控制指令,如消隱、閃爍、左移、右移、段尋址等。HD7279芯片外觀和引腳HD7279引腳介紹和功能說(shuō)明引腳名稱說(shuō)明1,2VDD正電源3,5NC無(wú)連接,必須懸空4VSS接地6CS片選輸入端,此引腳為低電平時(shí),可以向芯片發(fā)送指令和讀取鍵盤數(shù)據(jù)7CLK同步時(shí)鐘輸入端,向芯片發(fā)送數(shù)據(jù)及讀取鍵盤數(shù)據(jù)時(shí),此引腳電平上升沿表示數(shù)據(jù)有效8DATA串行數(shù)據(jù)輸入/輸出端,芯片接收指令時(shí),為輸入端,讀取鍵盤數(shù)據(jù)時(shí),此引腳在讀指令的最后一個(gè)時(shí)鐘周期的下降沿變?yōu)檩敵龆?KEY按鍵有效輸出端,平時(shí)為高電平,當(dāng)檢測(cè)到有效按鍵時(shí),此引腳變?yōu)榈碗娖?0-16SG-SA段g-段a驅(qū)動(dòng)輸出17DP小數(shù)點(diǎn)驅(qū)動(dòng)輸出18-25DIG0-DIG7數(shù)碼管0-數(shù)碼管7驅(qū)動(dòng)輸出26CLKO振蕩器輸出端27RCRC振蕩器連接端28RESET復(fù)位端HD7279應(yīng)用電路圖圖中用藍(lán)色框圈中的是本實(shí)驗(yàn)箱安裝的數(shù)碼管和按鍵HD7279指令介紹(1)HD7279A的顯示以及各種控制是靠接收到的指令來(lái)完成的,指令有不帶數(shù)據(jù)的純指令和帶有數(shù)據(jù)的指令,詳細(xì)指令和指令格式請(qǐng)參考HD7279A數(shù)據(jù)手冊(cè),下面介紹本實(shí)驗(yàn)中用到的幾個(gè)7279的指令。(1)復(fù)位指令A(yù)4HD7D6D5D4D3D2D1D010100100HD7279指令介紹(2)(2)下載顯示數(shù)據(jù)但不譯碼其中a2,a1,a0是位地址,選擇顯示到哪一個(gè)七段碼上,DP,A,B,C,D,E,F,G是段碼,對(duì)應(yīng)了選中的七段碼的各段,當(dāng)相應(yīng)的段對(duì)應(yīng)的位是1是,點(diǎn)亮,否則熄滅。D7D6D5D4D3D2D1D0D7D6D5D4D3D2D1D010010a2a1a0DPABCDEFG段的定義HD7279指令介紹(3)(3)閃爍控制指令此命令控制各個(gè)數(shù)碼管的閃爍特性,d0~d7分別對(duì)應(yīng)數(shù)碼管1~8,值是1表示不閃爍,為0表示閃爍,開機(jī)默認(rèn)是不閃爍。D7D6D5D4D3D2D1D0D7D6D5D4D3D2D1D010001000d7d6d5d4d3d2d1d0HD7279指令介紹(4)(4)讀鍵盤數(shù)據(jù)指令從HD7279A讀出當(dāng)前的按鍵代碼,與其他指令不同,此命令的前一個(gè)字節(jié)15H是送給HD7279A的指令,而后一個(gè)字節(jié)d0~d7是HD7279A返回的按鍵代碼,范圍是0~3FH(無(wú)鍵按下時(shí)返回FFH),各個(gè)按鍵的鍵盤代碼的定義如圖所示,圖中的鍵號(hào)就是鍵的代碼。指令的前半段,HD7279A的DATA引腳處于高阻輸入狀態(tài),接收來(lái)自微處理器的指令,指令的后半段,DATA引腳從輸入狀態(tài)轉(zhuǎn)為輸出狀態(tài),輸出鍵盤的代碼。當(dāng)HD7279A檢測(cè)到有效的按鍵時(shí),KEY引腳從高電平變?yōu)榈碗娖剑3值桨存I結(jié)束,在此期間,如果HD7279A收到讀鍵盤數(shù)據(jù)的指令,則輸出當(dāng)前按鍵的代碼,如果在收到讀鍵盤指令的時(shí)候沒有按鍵,則輸出FFH。D7D6D5D4D3D2D1D0D7D6D5D4D3D2D1D000011111d7d6d5d4d3d2d1d0HD7279的讀寫時(shí)序(1)HD7279A采用串行方式與微處理器通訊,串行數(shù)據(jù)從DATA引腳送入芯片,并與CLK引腳同步,當(dāng)片選信號(hào)變?yōu)榈碗娖胶?,DATA引腳上的數(shù)據(jù)在CLK引腳的上升沿被寫入HD7279A的緩沖寄存器。HD7279A的指令結(jié)構(gòu)有三種類型:①不帶數(shù)據(jù)的純指令,指令的寬度為8個(gè)BIT,即微處理器需發(fā)送8個(gè)CLK脈沖,時(shí)序如下;HD7279的讀寫時(shí)序(2)②帶有數(shù)據(jù)的指令,寬度為16個(gè)BIT,即微處理器需發(fā)送16個(gè)CLK肪沖,時(shí)序如下;HD7279的讀寫時(shí)序(3)③讀取鍵盤數(shù)據(jù)指令,寬度為16個(gè)BIT,前8個(gè)為微處理器發(fā)送到HD7279的指令,后8個(gè)BIT為HD7279A返回的鍵盤代碼,時(shí)序如下圖所示。實(shí)驗(yàn)系統(tǒng)上使用的顯示和按鍵的控制芯片就是HD7279A,在實(shí)驗(yàn)板上采用了6位共陰式數(shù)碼管和16個(gè)按鍵。實(shí)驗(yàn)內(nèi)容(1)本實(shí)驗(yàn)例程通過(guò)C8051F020的P1.6,P1.7連接7279A的CLK和DATA實(shí)現(xiàn)串行數(shù)據(jù)編程,而HD7279A的片選引腳CS連在P5.7,KEY連在比較器1的同相輸入端CP1P,比較器1的反相輸入端CP1N接2.4V,利用比較器的輸出來(lái)判斷有無(wú)按鍵按下,當(dāng)無(wú)鍵按下時(shí),KEY引腳保持高電平,所以比較器CP1輸出高電平,而當(dāng)有鍵按下時(shí),KEY引腳輸出低電平,比較器CP1輸出低電平??梢圆捎弥袛嗟姆绞揭部梢圆捎貌樵兊姆绞?,本實(shí)驗(yàn)中采用查詢的方式來(lái)判斷按鍵。實(shí)現(xiàn)數(shù)據(jù)的顯示,左移,右移及閃爍。(2)編寫并調(diào)試一個(gè)實(shí)驗(yàn)程序,完成數(shù)據(jù)的顯示,左移,右移及閃爍。完成從鍵盤上輸入數(shù)據(jù)并顯示的功能。開始時(shí)閃爍顯示“—”(即最右邊的LED閃爍顯示“-”),等待用戶輸入數(shù)據(jù)。每輸入一個(gè)數(shù)據(jù)后原數(shù)據(jù)左移一位,新輸入的數(shù)據(jù)顯示在右起第二位,最右邊的一位仍然閃爍顯示“-”,等待輸入下一個(gè)數(shù)據(jù)。實(shí)驗(yàn)箱上HD7279接口電路程序流程圖開始關(guān)看門狗初始化時(shí)鐘使能比較器復(fù)位7229在最右端數(shù)碼管閃爍顯示“-”讀取按鍵有效按鍵?數(shù)碼管更新顯示按鍵是否參考程序分析(1)①實(shí)驗(yàn)主程序main.c//-------------------------------------------------------------------------//包含頭文件聲明//-------------------------------------------------------------------------#include"c8051f020.h"#include<intrins.h>//-------------------------------------------------------------------------//外部函數(shù)聲明//-------------------------------------------------------------------------extern
voidTest7279(void);參考程序分析(2)//-------------------------------------------------------------------------//函數(shù)定義//-------------------------------------------------------------------------//系統(tǒng)時(shí)鐘初始化函數(shù)void
SYSCLK_Init
(void){
inti;
//延遲計(jì)數(shù)
OSCXCN=
0x67;
//啟動(dòng)外部晶體振蕩器,頻率11.0592MHz
for
(i=0;i<
256;i++)
;
//等待外部晶振啟動(dòng)
while
(!(OSCXCN&
0x80))
;
//等待外部晶振穩(wěn)定
OSCICN=
0x88;
//選擇外部晶振作為系統(tǒng)時(shí)鐘
//使能丟失時(shí)鐘檢測(cè)器}//端口初始化函數(shù)void
PORT_Init
(void){XBR2=
0x40;
//使能交叉開關(guān)和弱上拉}參考程序分析(3)//主函數(shù)voidmain(void)
{WDTCN=
0xde;WDTCN=
0xad;
//關(guān)看門狗
SYSCLK_Init
();
//初始化時(shí)鐘
PORT_Init();
//初始化端口
CPT1CN|=0x80;
//使能比較器1Test7279();}參考程序分析(4)②HD7279的測(cè)試程序test7279.c//------------------------------------------------------------------------//包含頭文件聲明//------------------------------------------------------------------------#include<c8051f020.h>#include<intrins.h>//------------------------------------------------------------------------//特殊功能位聲明//------------------------------------------------------------------------sbitHD7279_DAT=P1^7;sbitHD7279_CLK=P1^6;參考程序分析(5)//------------------------------------------------------------------------//宏定義//------------------------------------------------------------------------#defineNOSELECT7279P5|=0x80//SPICS4(P57)=1#defineSELECT7279P5&=~(0x80)//SPICS4(P57)=0;#defineSet7279DATHD7279_DAT=1#defineClr7279DATHD7279_DAT=0#defineSet7279CLKHD7279_CLK=1#defineClr7279CLKHD7279_CLK=0//------------------------------------------------------------------------//全局變量定義//------------------------------------------------------------------------unsigned
charcodeBdSeg[]={
0x7e,0x30,0x6d,0x79,
//0123的七段碼
0x33,0x5b,0x5f,0x70,
//4567的七段碼
0x7f,0x7b,0x77,0x1f,
//89ab的七段碼
0x4e,0x3d,0x4f,0x47,
//cdef的七段碼
0x00,0x01};
參考程序分析(6)//------------------------------------------------------------------------//函數(shù)定義//------------------------------------------------------------------------//延時(shí)1us函數(shù)voidDelay1us(unsigned
charus){
while
(us){_nop_();_nop_();_nop_();_nop_();_nop_();
--us;
}}//給7279發(fā)送一個(gè)字節(jié)函數(shù)voidSend7279Byte(unsigned
char
ch)
{
chari;SELECT7279;
//置CS低電平
Delay1us(50);
//延時(shí)50μ
for
(i=0;i<8;i++)
{
if
(ch&0x80)Set7279DAT;
//輸出7位到HD7279A的DATA端
elseClr7279DAT;Set7279CLK;
//置CLK高電平
ch=ch<<1;
//待發(fā)數(shù)據(jù)左移
Delay1us(8);
//延時(shí)8μClr7279CLK;
//置CLK低電平
Delay1us(8);
//延時(shí)50μ
}Clr7279DAT;
//發(fā)送完畢,DATA端置低,返回}參考程序分析(7)//從7279接收一個(gè)字節(jié)函數(shù)unsigned
charReceive7279Byte(void)
{
unsigned
char
i,ch;
ch=0;
Set7279DAT;
//DATA端置為高電平,輸入狀態(tài)
Delay1us(50);
//延時(shí)50μ
for
(i=0;i<8;i++)
{Set7279CLK;
//置CLK高電平
Delay1us(8);
//延時(shí)8μ
ch=ch<<1;
//接收數(shù)據(jù)左移1位
if
(HD7279_DAT)
ch+=1;
//接收1位數(shù)據(jù)
Clr7279CLK;
//置CLK低電平
Delay1us(8);
//延時(shí)8μ
}Clr7279DAT;
//接收完畢,DATA端重新置成低電平(輸出狀態(tài))
return
ch;}參考程序分析(8)void
DispLED(char
*DispBuf,char
ShowDot)
{
//ShowDot
顯示小數(shù)點(diǎn)位
char
i,ch;
ShowDot--;
for
(i=0;i<6;i++)
{
ch=DispBuf[i];
if
((ch>='a')
&&
(ch<='f'))
{
ch-='a';ch+=0xa;
}
if
((ch>='A')
&&
(ch<='F'))
{
ch-='A';ch+=0xa;
}Send7279Byte(0x90+5-i);
//不譯碼
if
(ch=='')Send7279Byte(0x00);
else
if
(ch=='-')Send7279Byte(0x01);
else
{
if
(ShowDot==i)Send7279Byte(0x80|BdSeg[ch&0x0f]);
elseSend7279Byte(BdSeg[ch&0x0f]);
}
}NOSELECT7279;
//置CS高電平}
//控制6個(gè)七段碼顯示的函數(shù)/*;b6;----;b1|b0|b5;----small;b2|b3|b4;----.b7*/參考程序分析(9)//讀取按鍵函數(shù),無(wú)鍵按下返回-1,否則返回鍵值char
GetKeyValue(void)
{
char
KeyValue;
if
(CPT1CN&0x40)
return
-1;
//無(wú)鍵按下返回-1,否則返回鍵值
Send7279Byte(0x15);
//發(fā)讀鍵盤指令
KeyValue=Receive7279Byte();NOSELECT7279;
//置CS高電平
return
KeyValue;
}//等待按鍵釋放函數(shù)void
WaitKeyOff(void)
{
while
(!(CPT1CN&0x40));
//判斷按鍵是否釋放}
參考程序分析(10)//HD7279測(cè)試/演示函數(shù)voidTest7279(void)
{
chari,KeyValue,buf[6]="-";
Send7279Byte(0xA4);
//發(fā)復(fù)位指令
DispLED(buf,0);
//顯示"-"Send7279Byte(0x88);
//發(fā)閃爍指令
Send7279Byte(0xFE);
//最右邊一個(gè)七段碼閃爍顯示
while(1)
{
KeyValue=GetKeyValue();
//讀取鍵盤按鍵
if(KeyValue!=-1)
{
//如果有按鍵則刷新顯示
for(i=0;i<4;i++)
buf[i]=buf[i+1];
//數(shù)據(jù)左移一位
buf[4]=0x30|KeyValue;
//新輸入的顯示到右端
DispLED(buf,0);
//更新顯示內(nèi)容
WaitKeyOff();
//等待按鍵釋放
}
}}
調(diào)試要點(diǎn)(1)運(yùn)行程序,觀察顯示的數(shù)值是否與框圖一致,若有錯(cuò)可單步執(zhí)行,排除程序錯(cuò)誤。(2)全速運(yùn)行程序,實(shí)現(xiàn)所要求的顯示功能。7.3.4定時(shí)器實(shí)驗(yàn)實(shí)驗(yàn)?zāi)康恼莆斩〞r(shí)器T0~T4的方式選擇和編程方法、定時(shí)器中斷服務(wù)程序的設(shè)計(jì)方法。實(shí)驗(yàn)內(nèi)容(1)使用片內(nèi)T3定時(shí)器產(chǎn)生中斷,控制軟件計(jì)數(shù),計(jì)數(shù)器每0.1秒加1,當(dāng)計(jì)數(shù)器加到5時(shí),改變P2、P3口的狀態(tài),P2,P3口驅(qū)動(dòng)發(fā)光管實(shí)現(xiàn)走馬燈效果。(2)設(shè)置定時(shí)器T3的時(shí)鐘基準(zhǔn)為系統(tǒng)時(shí)鐘的12分頻。系統(tǒng)時(shí)鐘采用片內(nèi)2MHz的時(shí)鐘源。(3)試編寫一個(gè)程序,可采用T0~T4中任一個(gè)定時(shí)器,實(shí)現(xiàn)上述效果。實(shí)驗(yàn)分析將撥碼開關(guān)S1和S2置于OFF位置,用連接線將CN7(CN8)及CN10(CN11)按順序連到發(fā)光管。CN7(CN8)在實(shí)驗(yàn)箱的電路板上被連接到了C8051F020單片機(jī)的P2端口,CN10(CN11)被連接到了單片機(jī)的P3端口。程序流程圖開始關(guān)看門狗初始化端口初始化定時(shí)器T3結(jié)束開中斷等待計(jì)數(shù)器等于5?開始清TF3計(jì)數(shù)器加1返回計(jì)數(shù)器清零驅(qū)動(dòng)P2、P3口實(shí)現(xiàn)走馬燈效果NY參考程序分析(1)//---------------------------------------------------------------------//Blinky.c//本程序使用定時(shí)器3的中斷服務(wù)實(shí)現(xiàn)走馬燈的效果,//P2口和P3口所連接的指示燈0.5秒改變一次狀態(tài)//---------------------------------------------------------------------//---------------------------------------------------------------------//包含頭文件//---------------------------------------------------------------------#include<c8051f020.h>//SFR的聲明在該頭文件中//---------------------------------------------------------------------//為方便賦值,進(jìn)行C8051F020的16位SFR定義//---------------------------------------------------------------------sfr16TMR3RL=
0x92;
//Timer3重裝特殊功能寄存器sfr16TMR3=
0x94;
//Timer3計(jì)數(shù)器特殊功能寄存器//---------------------------------------------------------------------//常量聲明//---------------------------------------------------------------------#undefSYSCLK#defineSYSCLK2000000//系統(tǒng)時(shí)鐘2MHz參考程序分析(2)//---------------------------------------------------------------------//函數(shù)原型聲明//---------------------------------------------------------------------void
PORT_Init
(void);voidTimer3_Init(intcounts);voidTimer3_ISR(void);unsigned
int
xdatap2led[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//---------------------------------------------------------------------//函數(shù)定義//---------------------------------------------------------------------//main函數(shù)voidmain(void)
{
//禁用看門狗定時(shí)器
WDTCN=
0xde;WDTCN=
0xad;
PORT_Init
();Timer3_Init(SYSCLK/
12
/
10);
//初始化定時(shí)器3以0.1秒為周期產(chǎn)生中斷
EA=
1;
//全局中斷使能
while
(1)
{
}
//循環(huán)等待中斷發(fā)生}參考程序分析(3)//配置交叉開關(guān)和IO端口void
PORT_Init
(void)
{XBR2=
0x40;
//使能交叉開關(guān)和端口弱上拉}//配置定時(shí)器3:自動(dòng)重裝,定時(shí)中斷周期由counts指明,//以系統(tǒng)時(shí)鐘的12分頻為計(jì)數(shù)時(shí)鐘voidTimer3_Init(intcounts)
{TMR3CN=
0x00;
//停止定時(shí)器3并且清零TF3
//使用SYSCLK/12作為計(jì)數(shù)時(shí)鐘
TMR3RL=
-counts;
//初始化重裝寄存器
TMR3=
0xffff;
//使得定時(shí)器立即溢出重裝初值
EIE2|=
0x01;
//使能定時(shí)器3中斷
TMR3CN|=
0x04;
//啟動(dòng)定時(shí)器3開始定時(shí)}參考程序分析(4)//-----------------------------------------------------------------------//中斷服務(wù)子程序//-----------------------------------------------------------------------//定時(shí)器3的中斷服務(wù)子程序當(dāng)定時(shí)器3溢出時(shí)改變LED指示燈的狀態(tài).voidTimer3_ISR(void)interrupt14
{
static
intcount;
static
inti=9,j=0;
static
intled=0xff;
TMR3CN&=
~(0x80);
//清除定時(shí)器3的溢出標(biāo)志位TF3count++;
if(count==5)
{count=0;P3=led;P2=p2led[j];led=led<<1;i--;j++;
if(j==8)j=0;
if(i==0){i=9;led=0xff;
}
}}
調(diào)試要點(diǎn)觀察發(fā)光管的顯示是否實(shí)現(xiàn)了走馬燈的效果。如有錯(cuò)誤應(yīng)檢查定時(shí)器的配置是否正確及P2、P3口的輸出是否正確。7.3.5直流電機(jī)轉(zhuǎn)速測(cè)量控制實(shí)驗(yàn)實(shí)驗(yàn)?zāi)康牧私庵绷麟姍C(jī)的工作方式,掌握轉(zhuǎn)速測(cè)量及控制的基本原理。轉(zhuǎn)速測(cè)量和控制的基本原理直流電機(jī)的轉(zhuǎn)速與施加于電機(jī)兩端的電壓大小有關(guān)。本例程采用片內(nèi)的D/A轉(zhuǎn)換器DAC0的輸出控制直流電機(jī)的電壓,從而控制電機(jī)的轉(zhuǎn)速。本例程中采用差動(dòng)方法調(diào)節(jié)DAC0的輸出控制電機(jī)的轉(zhuǎn)速。實(shí)際操作中可調(diào)整算法為PI或PID算法,以達(dá)到較好的動(dòng)態(tài)特性和靜態(tài)特性。轉(zhuǎn)速單位為:轉(zhuǎn)/分。實(shí)驗(yàn)板中選用美國(guó)普拉格公司生產(chǎn)的3013霍爾開關(guān)傳感器測(cè)量轉(zhuǎn)速,根據(jù)霍爾效應(yīng)原理,將一塊磁鋼固定在電機(jī)轉(zhuǎn)軸的邊沿,在轉(zhuǎn)盤下方安裝一個(gè)霍爾器件,當(dāng)轉(zhuǎn)盤旋轉(zhuǎn)到霍爾元件上方時(shí),霍爾器件輸出脈沖信號(hào),其頻率和轉(zhuǎn)速成正比,測(cè)量輸出脈沖的周期和頻率即可計(jì)算出轉(zhuǎn)速。直流電機(jī)的接口電路測(cè)速霍爾元件3013直流電機(jī)控制電路實(shí)驗(yàn)準(zhǔn)備和實(shí)驗(yàn)內(nèi)容實(shí)驗(yàn)準(zhǔn)備用線將JH端子的CKMOT(轉(zhuǎn)速的反饋信號(hào))與P10(INT0)連接。實(shí)驗(yàn)內(nèi)容(1)采用INT0中斷對(duì)轉(zhuǎn)速脈沖CKMOT計(jì)數(shù),每秒讀一次計(jì)數(shù)值,將此值與預(yù)設(shè)的轉(zhuǎn)速值比較,若大于預(yù)設(shè)的轉(zhuǎn)速值則減小DAC0的數(shù)值,若小于預(yù)設(shè)的轉(zhuǎn)速值則增加DAC0的值,不斷調(diào)整電機(jī)的轉(zhuǎn)速,直到轉(zhuǎn)速值等于預(yù)設(shè)定的值。(2)編寫并調(diào)試一個(gè)實(shí)驗(yàn)程序,將電機(jī)當(dāng)前的轉(zhuǎn)速值在七段數(shù)碼管上顯示出來(lái),在電機(jī)的可控范圍內(nèi)控制電機(jī)轉(zhuǎn)速等于預(yù)設(shè)值。程序流程圖結(jié)束開始初始化系統(tǒng)時(shí)鐘初始化定時(shí)器0初始化I/O端口使能比較器1使能片內(nèi)參考電壓使能DAC0初始化7279調(diào)用電機(jī)控制程序到1S?開始返回讀取轉(zhuǎn)速值并與設(shè)定值比較,若轉(zhuǎn)速高則減少ADC轉(zhuǎn)換值,若轉(zhuǎn)速低則增加ADC轉(zhuǎn)化值NY參考程序分析(1)實(shí)驗(yàn)參考程序①主程序main.c//-------------------------------------------------------------------//包含頭文件//-------------------------------------------------------------------#include"c8051f020.h"#include<intrins.h>//-------------------------------------------------------------------//特殊功能寄存器聲明//-------------------------------------------------------------------sfr16DAC0=
0xd2;
//DAC0數(shù)據(jù)寄存器//-------------------------------------------------------------------//常量聲明//-------------------------------------------------------------------#defineSetSpeed30參考程序分析(2)//-------------------------------------------------------------------//全局變量定義//-------------------------------------------------------------------unsigned
intCount1s=1000;unsigned
int
SaveMotorCount,MotorCount=0;unsigned
intiDAC0=2048;intSD;unsigned
charCount1ms;//-------------------------------------------------------------------//外部函數(shù)聲明//-------------------------------------------------------------------extern
void
TestMotor(void);//-------------------------------------------------------------------//函數(shù)定義//-------------------------------------------------------------------//系統(tǒng)時(shí)鐘初始化void
SYSCLK_Init
(void){
inti;
//延遲計(jì)數(shù)
OSCXCN=
0x67;
//啟動(dòng)外部晶體振蕩器,頻率11.0592MHz
for
(i=0;i<
256;i++)
;
//等待外部晶振啟動(dòng)
while
(!(OSCXCN&
0x80))
;
//等待外部晶振穩(wěn)定
OSCICN=
0x88;
//選擇外部晶振作為系統(tǒng)時(shí)鐘
//使能丟失時(shí)鐘檢測(cè)器}參考程序分析(3)//端口初始化void
PORT_Init
(void){XBR0=
0x07;
//EnableSMBus,SPI0,andUART0XBR1=
0x04;
//P10<---int0XBR2=
0x40;
//使能交叉開關(guān)和弱上拉}//定時(shí)器初始化voidTimer0_Init(void){CKCON|=0x8;TMOD|=0x1;
//選擇16定時(shí)模式
Count1ms=10;TR0=
0;
//定制定時(shí)器0TH0=
(-SYSCLK/1000)
>>
8;
//設(shè)置定時(shí)器溢出周期1msTL0=
-SYSCLK/1000;TR0=
1;
//啟動(dòng)Timer0IE|=
0x2;
}參考程序分析(4)//延時(shí)1ms函數(shù)voidDelay1ms(unsigned
charT){Count1ms=T;
while
(Count1ms);}//主函數(shù)voidmain(void)
{WDTCN=
0xde;WDTCN=
0xad;
//關(guān)看門狗
SYSCLK_Init
();
//初始化時(shí)鐘
Timer0_Init();
//初始化定時(shí)器
PORT_Init
();
//初始化IO口
REF0CN=
0x03;
//使能片內(nèi)參考電壓
DAC0CN|=
0x80;
//使能DAC0DAC0H=0;DAC0L=0;IT0=1;IE|=
0x01;
//使能INT0中斷
EA=1;
//開中斷
TestMotor();}
參考程序分析(5)//--------------------------------------------------------------------//中斷服務(wù)函數(shù)定義//--------------------------------------------------------------------//定時(shí)器0中斷服務(wù)函數(shù)voidTimer0_ISR(void)interrupt1
//1ms定時(shí)中斷服務(wù)程序
{
TH0=
(-SYSCLK/1000)
>>
8;
TL0=
-SYSCLK/1000;
if
(Count1ms)Count1ms--;
if
(Count1s)Count1s--;
else{Count1s=1000;
SaveMotorCount=MotorCount;
MotorCount=0;SD=SaveMotorCount/2-SetSpeed;
SaveMotorCount*=30;
if
(SD){
if
((SD>5)||(SD<-5))iDAC0-=SD*4;
elseiDAC0-=SD;DAC0=iDAC0;
}
}}//外部中斷0服務(wù)函數(shù)voidInt0_ISR(void)interrupt0
{
MotorCount++;}
參考程序分析(6)②數(shù)模轉(zhuǎn)換程序dac.c/*實(shí)驗(yàn)準(zhǔn)備:用連接線將JH端子的CKMOT與P10(INT0)連接*///---------------------------------------------------------------------//包含頭文件//---------------------------------------------------------------------#include"c8051f020.h"#include<intrins.h>//--------------------------------------------------------------------//特殊功能寄存器聲明//--------------------------------------------------------------------sfr16DAC0=
0xd2;
//DAC0數(shù)據(jù)寄存器參考程序分析(7)//--------------------------------------------------------------------//外部變量聲明//--------------------------------------------------------------------extern
unsigned
int
SaveMotorCount;extern
unsigned
intiDAC0;//--------------------------------------------------------------------//外部函數(shù)聲明//--------------------------------------------------------------------extern
voidDelay1ms(unsigned
charT);extern
void
DispLED(char
*DispBuf,char
ShowDot);
//ShowDot
顯示小數(shù)點(diǎn)位void
TestMotor(void){
charbuf[6];DAC0=iDAC0;
for
(;;){Delay1ms(100);buf[0]='F';buf[1]='';buf[2]=(SaveMotorCount%10000)/1000;buf[3]=(SaveMotorCount%1000)/100;buf[4]=(SaveMotorCount%100)/10;buf[5]=(SaveMotorCount%10);DispLED(buf,0);
}}參考程序分析(8)③7279顯示程序7279disp.c//---------------------------------------------------------------------//包含頭文件//---------------------------------------------------------------------#include"c8051f020.h"#include<intrins.h>//---------------------------------------------------------------------//特殊功能位聲明//---------------------------------------------------------------------sbitHD7279_DAT=P1^7;sbitHD7279_CLK=P1^6;//--------------------------------------------------------------------//宏定義//--------------------------------------------------------------------#defineNOSELECT7279P5|=0x80//SPICS4(P57)=1#defineSELECT7279P5&=~(0x80)//SPICS4(P57)=0;#defineSet7279DATHD7279_DAT=1#defineClr7279DATHD7279_DAT=0#defineSet7279CLKHD7279_CLK=1#defineClr7279CLKHD7279_CLK=0
參考程序分析(9)//--------------------------------------------------------------------//全局變量定義//-----
溫馨提示
- 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ù)覽,若沒有圖紙預(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度新能源車間承包管理合同范本4篇
- 二零二五版影視制作公司聯(lián)合借款合同樣本
- 二零二五版電商一件代發(fā)合作企業(yè)品牌授權(quán)協(xié)議3篇
- 教育與醫(yī)療共促學(xué)生創(chuàng)造力的發(fā)展與提升
- 2025年飼料行業(yè)環(huán)保責(zé)任合同3篇
- 二零二五年度港口碼頭租賃及港口物流服務(wù)合同4篇
- 教育機(jī)構(gòu)實(shí)驗(yàn)設(shè)備的節(jié)能環(huán)保設(shè)計(jì)理念
- 2025版城市道路照明設(shè)備采購(gòu)合同范本4篇
- 二零二五年度城市軌道交通鋁合金軌道板鋪設(shè)合同3篇
- 2025標(biāo)志牌材質(zhì)研發(fā)與生產(chǎn)合作協(xié)議3篇
- 春節(jié)聯(lián)歡晚會(huì)節(jié)目單課件模板
- 中國(guó)高血壓防治指南(2024年修訂版)
- 糖尿病眼病患者血糖管理
- 心理調(diào)適教案調(diào)整心態(tài)積極應(yīng)對(duì)挑戰(zhàn)
- 噴漆外包服務(wù)合同范本
- 2024年電信綜合部辦公室主任年度述職報(bào)告(四篇合集)
- 微機(jī)原理與接口技術(shù)考試試題及答案(綜合-必看)
- 濕瘡的中醫(yī)護(hù)理常規(guī)課件
- 初中音樂聽課筆記20篇
- NUDD新獨(dú)難異 失效模式預(yù)防檢查表
- 內(nèi)蒙古匯能煤電集團(tuán)有限公司長(zhǎng)灘露天煤礦礦山地質(zhì)環(huán)境保護(hù)與土地復(fù)墾方案
評(píng)論
0/150
提交評(píng)論