




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
PAGEPAGE6用單片機(jī)實(shí)現(xiàn)溫度遠(yuǎn)程顯示摘要:文章介紹了用AT89S8252單片機(jī)的串行接口與智能溫度巡回檢測儀(XJ-08S)通過RS—485總線相互通訊實(shí)現(xiàn)熱水溫度遠(yuǎn)程顯示的一種低成本解決方案,內(nèi)容涉及RS—485總線通訊、單片機(jī)驅(qū)動數(shù)碼管顯示、數(shù)據(jù)轉(zhuǎn)換以及鍵盤處理軟硬件設(shè)計(jì)等內(nèi)容。關(guān)鍵詞:單片機(jī)RS—485總線數(shù)碼管顯示數(shù)據(jù)轉(zhuǎn)換鍵盤處理一、前言目前檢測溫度一般采用熱電偶或熱敏電阻作為傳感器,這種傳感器至儀表之間一般都要用專用的溫度補(bǔ)償導(dǎo)線,而溫度補(bǔ)償導(dǎo)線價(jià)格很貴,并且線路太長也會影響測量精度。在實(shí)際應(yīng)用中往往需要對較遠(yuǎn)處(1KM左右)的溫度信號進(jìn)行監(jiān)視?,F(xiàn)有的解決方案有很多,例如:在現(xiàn)場用智能儀表對溫度信號進(jìn)行測量,用計(jì)算機(jī)作上位機(jī)與智能儀表進(jìn)行通訊來實(shí)現(xiàn)遠(yuǎn)程溫度監(jiān)測(采用這種方案要增加計(jì)算機(jī)設(shè)備及相關(guān)計(jì)算機(jī)軟件)。NCU+DDC實(shí)現(xiàn)遠(yuǎn)程溫度監(jiān)測。用兩個(gè)DDC,一個(gè)安裝在現(xiàn)場測量溫度,另一個(gè)安裝在監(jiān)視地,兩個(gè)DDC通過NCU進(jìn)行通訊從而實(shí)現(xiàn)遠(yuǎn)程溫度監(jiān)測。但以上方案都存在成本高的問題,有沒有低成本的解決方案呢?其實(shí),在單片機(jī)應(yīng)用日益廣泛的今天,完全可以用單片機(jī)以極低的成本來實(shí)現(xiàn)遠(yuǎn)程溫度監(jiān)測。二、問題的提出我單位管理的鍋爐房同時(shí)給兩棟建筑物內(nèi)的兩家酒店供應(yīng)蒸汽,由安裝在兩棟建筑物地下室的熱交換器進(jìn)行熱交換后產(chǎn)生熱水送給客房。從鍋爐房至兩個(gè)熱交換站的距離分別約600米,值班人員要不停地奔波于兩個(gè)熱交換站與鍋爐房之間進(jìn)行設(shè)備巡視,檢查熱水溫度是否控制在規(guī)定的范圍,這樣不僅增加了值班人員的勞動強(qiáng)度,同時(shí)也使鍋爐房經(jīng)常無人(因每班1三、控制要求及解決方案選擇1、兩個(gè)熱交換站分高低區(qū)共安裝有8個(gè)熱交換器,正常水溫在45oC至65oC之間;兩個(gè)熱交換站與鍋爐房的距離分別為500米和600米左右。要求在鍋爐房能以巡回及定點(diǎn)兩種方式顯示8個(gè)熱交換器的熱水溫度,巡回方式以3秒為周期輪流更新及顯示各熱交換器熱水溫度。定點(diǎn)方式時(shí)每按上鍵或下鍵一次則顯示上或下一個(gè)熱交換器熱水溫度,每3秒自動更新數(shù)據(jù)一次。根據(jù)控制要求選擇單片機(jī)+智能儀表的解決方案:用帶通訊接口的智能儀表安裝在現(xiàn)場測量溫度,設(shè)計(jì)制作一個(gè)單片機(jī)裝置完成與智能儀表的通訊及數(shù)據(jù)顯示。四、通訊協(xié)議、智能儀表選擇及其參數(shù)介紹因熱水溫度信號變化較慢,因而對通信的速度要求不高,對于這種低速率遠(yuǎn)距離的通訊選用RS-485總線適宜。RS-485是EIA(美國電子工業(yè)聯(lián)合會)在1983年公布的新的平衡傳輸標(biāo)準(zhǔn),是工業(yè)界使用最為廣泛的雙向、平衡傳輸線標(biāo)準(zhǔn)接口,它以半雙工方式通信,支持多點(diǎn)連接,傳統(tǒng)驅(qū)動器允許創(chuàng)建多達(dá)32個(gè)節(jié)點(diǎn)的網(wǎng)絡(luò),且其具有傳輸距離遠(yuǎn)(最大傳輸距離為1200M),傳輸速度快(1200M時(shí)為100KBPSDTRRDTRRTDD-發(fā)送器R-接收器T-接收/發(fā)送器120Ω120Ω(一)該儀表主要特點(diǎn)如下:多量程方式,熱電偶、熱電阻,1-5V標(biāo)準(zhǔn)信號混合輸入,可通過鍵盤進(jìn)行設(shè)置;最多8個(gè)測量通道(能測量8個(gè)溫度信號);采用RS-485通訊標(biāo)準(zhǔn),可將各通道最新數(shù)據(jù)向上位機(jī)傳送。
重要的是,該儀表的說明書詳細(xì)介紹了與該儀表進(jìn)行數(shù)據(jù)交換的命令及格式,其通訊協(xié)議也相對較簡單,這給我們用單片機(jī)實(shí)現(xiàn)溫度遠(yuǎn)程顯示降減低了難度(雖然有RS-485端口的儀表很多,但大多沒有通訊命令的詳細(xì)說明,給我們用單片機(jī)編程增加了難度)。(二)XJ-08S巡回檢測儀通訊協(xié)議1、通訊口設(shè)置通訊方式:RS-485標(biāo)準(zhǔn)電平同步方式:起停同步方式波特率:9600BPS通訊距離:不大于1200M通訊線:二線數(shù)據(jù)代碼:ASCII碼數(shù)據(jù)格式:每字符10位,1個(gè)起始位,8個(gè)數(shù)據(jù)位,1個(gè)停止位數(shù)據(jù)傳輸格式地址:2字節(jié)(高字節(jié)在前,低字節(jié)在后);數(shù)據(jù):按地址順序,儀表數(shù)據(jù)傳輸格式為十六進(jìn)制2字節(jié)定點(diǎn)數(shù); 2字節(jié)定點(diǎn)數(shù)=低字節(jié)高4位(ASCII碼)+低字節(jié)低4位(ASCII碼)高字節(jié)高4位(ASCII碼)+高字節(jié)低4位(ASCII碼) 若數(shù)據(jù)為負(fù)數(shù),則采用補(bǔ)碼方式傳輸;在傳輸實(shí)時(shí)測量值時(shí),傳輸完2字節(jié)定點(diǎn)數(shù)后,緊接著又傳輸2字節(jié)定點(diǎn)數(shù),其中高字節(jié)低4位為小數(shù)點(diǎn)位數(shù)。例 :(50.0)10表示為4634303130303031 低字節(jié)高字節(jié) 小數(shù)位數(shù)儀表通訊格式:@ DE 幀類型 幀數(shù)據(jù) CRC CR@ :通訊起始符DE :儀表設(shè)備號(地址)幀類型 :操作命令幀數(shù)據(jù) :各種操作命令所對應(yīng)的命令及數(shù)據(jù)CRC :校驗(yàn)字節(jié)(除@外CRC之前的其他幾個(gè)字節(jié)的異或值)CR :結(jié)束符(回車符) 4、應(yīng)用中用到的命令及數(shù)據(jù)格式:讀儀表全部動態(tài)數(shù)據(jù)命令幀 @DERDCRCCR命令回送幀 正確 @DERD幀數(shù)據(jù)CRCCR 錯(cuò)誤 @DE**CRCCR 例:讀28號儀表的全部動態(tài)數(shù)據(jù) 命令:’@1CRD64’,0D(ASCII碼403143524436340d) 錯(cuò)誤返回碼 ‘@1C**72’,0D(ASCII碼4031432A2A37320D) 正確返回?cái)?shù)據(jù)’@1CRDXXXXXXXXXXXXXXXXXXXXXXXX 第0通道 第1通道 第2通道XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX第3通道 第4通道 第5通道 第6通道XXXXXXXXXX’,0D第7通道 校驗(yàn)五、單片機(jī)選擇及硬件電路設(shè)計(jì)選用ATMEL公司生產(chǎn)的AT89S8252-24PC單片機(jī),其主要參數(shù)及特點(diǎn)如下:與MCS-51產(chǎn)品兼容(其引腳圖見原理圖)具有8K字節(jié)可擦寫的FLASH內(nèi)部程序存儲器,可擦寫1000次;2K字節(jié)EEPROM,可擦寫100,000次,SPI口(用PC機(jī)的并口連接5條線即可通過SPI口下載程序,下載軟件可從網(wǎng)上下載,這樣可節(jié)省購買編程器的費(fèi)用;)。注:筆者現(xiàn)已制作成了ISP2000三合一燒寫器,詳情見256字節(jié)RAM,32根可編程I/O線,可編程串行口,內(nèi)置看門狗。與看門狗有關(guān)的特殊功能寄存器WMCON地址=96H,與看門狗有關(guān)的控制位為96h第0、1、5、6、7位,第5、6、7位用于設(shè)置看門狗定時(shí)時(shí)間(具體見第5頁表格),本應(yīng)用中第5、6、7位均置1,設(shè)置看門狗溢出時(shí)間為2048ms,第0位為看門狗使能控制位,該位置1將使能看門狗,其第1位為復(fù)用位,向第1位寫1將復(fù)位看門狗定時(shí)器,具體操作如下:a,使能看門狗,并將其溢出時(shí)間設(shè)定為2048ms:ORL96H,#0E1H;b,看門狗定時(shí)器清0:ORL96H,#22、按鍵設(shè)計(jì):為方便使用,設(shè)計(jì)了三個(gè)按鍵,分別為巡回/定點(diǎn)切換鍵、上鍵、下鍵。切換鍵用于巡檢與定點(diǎn)模式的切換,上鍵向上切換通道,下鍵向下切換通道;其中巡檢/定點(diǎn)切換鍵通過外部中斷1以中斷方式工作,中斷程序?qū)⒀不?定點(diǎn)標(biāo)志取反后直接跳到主程序中巡回/定點(diǎn)標(biāo)志判斷程序前運(yùn)行,由判斷程序完成巡回/定點(diǎn)的切換。按鍵信號由單片機(jī)P3.3,P3.4,P3.5引腳輸入。3、顯示電路設(shè)計(jì)為方便觀察,選用三個(gè)二位共陽級8段數(shù)碼顯示管(TOD5201AE)動態(tài)顯示,一位顯示儀表地址(從A至F),一位顯示通道號(從0至7通道),其余四位用來顯示實(shí)時(shí)溫度值;用單片機(jī)P1口驅(qū)動一片74HC244以吸收電流的方式控制段碼,用單片機(jī)P0.0至P0.5引腳驅(qū)動六個(gè)PNP三極管(9012)控制位選。4、電源選用5V/1A市售成品開關(guān)電源。巡回/定點(diǎn)下儀表地址通道號實(shí)時(shí)溫度巡回/定點(diǎn)下巡回/定點(diǎn)下儀表地址通道號實(shí)時(shí)溫度巡回/定點(diǎn)下儀表地址通道號實(shí)時(shí)溫度A B Gnd上熱水溫度遠(yuǎn)程顯示器ABGnd120ΩXJ-08S巡回檢測儀AABGnd120ΩXJ-08S巡回檢測儀B系統(tǒng)方框圖如右示:單片機(jī)裝置電原理圖見下頁:7 6 5 7 6 5 定時(shí)值0 0 0 16ms0 0 1 32ms0 1 0 64ms0 1 1 128ms1 0 0 256ms1 0 1 512ms1 1 0 1024ms1 1 1 2048ms看門狗溢出時(shí)間表
六、單片機(jī)軟件設(shè)計(jì)說明及程序流程圖為方便調(diào)試,采用模塊化編程,共分1個(gè)主模塊及5個(gè)子模塊,各模塊功能說明及流程圖如下(源程序見附錄):主模塊(rand_main.a51)上電后程序顯示初始化標(biāo)志并等待3秒,然后進(jìn)入巡回模式,自動檢測地址為A(10)至F(15)的智能儀表,對在線的儀表及已使用通道以3秒為周期自動巡回讀取實(shí)時(shí)溫度并送數(shù)碼管顯示,儀表未在線或未用通道則自動跳過;定點(diǎn)模式時(shí)根據(jù)上、下按鍵情況自動向前或向后移動一個(gè)通道后等待下一次按鍵(向上至最高通道號時(shí)跳到上一個(gè)儀表的最低在用通道,向下至最低通道號時(shí)跳到下一個(gè)儀表的最高在用通道);等待期間以3秒為周期讀取當(dāng)前儀表當(dāng)前通道實(shí)時(shí)溫度并送數(shù)碼管顯示,另外,為了區(qū)分巡回、定點(diǎn)工作模式,定點(diǎn)工作模式時(shí)最低位數(shù)碼管以約0.5Hz的頻率閃爍顯示。當(dāng)檢測到巡回/定點(diǎn)切換鍵按下時(shí)自動在巡回及定點(diǎn)模式間轉(zhuǎn)換,當(dāng)檢測到溫度值低于-199.9度時(shí)顯示-199.9度。 主模塊流程圖見下頁:
YD_N100=儀表地址TD_N=通道號YN開始YD_N100=儀表地址TD_N=通道號YN開始上電初始化置SP巡回/定點(diǎn)標(biāo)志=1?#0ah=>yd_n100,#0=>td_n清閃爍、調(diào)用命令發(fā)送模塊接收正確嗎?調(diào)用數(shù)據(jù)轉(zhuǎn)換程序正常嗎?YN送顯示并延時(shí)3秒Td_n+1=>td_nTd_n=8?YN0=>Td_nNYYd_n100+1=>yd_n100Yd_n100=10h?0ah=>yd_n100startTd_n=0?開外部中斷1并置最低位閃爍清軟硬看門狗2秒定時(shí)到?下鍵?上鍵?NNNYYY調(diào)用命令發(fā)送程序調(diào)用數(shù)據(jù)轉(zhuǎn)換程序正確嗎?正確嗎?送顯示YNNY7=>td_nYd_n100-1=>yd_100Yd_n100=9?0fh=>yd_100NNYYTd_n-1=>td_n調(diào)用命令發(fā)送程序正確嗎?正確嗎?調(diào)用數(shù)據(jù)轉(zhuǎn)換程序NYYN送顯示、置2S定時(shí)初值上鍵處理流程與下鍵相似,此處從略。NY功能: 本模塊先將ASCII碼轉(zhuǎn)換成BIN碼,然后將BIN碼轉(zhuǎn)換成BCD碼并將數(shù)據(jù)轉(zhuǎn)換成可直接顯示的格式入口: a=通道號出口: r1=個(gè)位,r2=十位,r3=百位,r4=千位(顯示數(shù)據(jù))a=非0表示該通道未用注:本子模塊中直接將小數(shù)點(diǎn)信息加到相應(yīng)位數(shù)據(jù)上,如需在某位顯示小數(shù)點(diǎn),則將該位數(shù)據(jù)加10H,顯示子模塊根據(jù)此信息顯示小數(shù)點(diǎn)。各子程序功能介紹:bcd2_bcd1:將r3,r4中的4位bcd碼由低至高分別存入r1,r2,r3,r4中;ascii4_bcd3:將(r0)為首地址的4字節(jié)ascii碼轉(zhuǎn)換成bcd碼并將bcd碼由低至高依次存放在r3,r4,r5中,r3,r4中各存放2位bcd碼,r5中存放一位bcd碼;bin_bcd:將r1,r2中的bin碼轉(zhuǎn)換成bcd碼并將bcd碼由低至高依次存放在r3,r4,r5中,r3,r4中各存放2位bcd碼,r5中存放一位bcd碼;ascii4_bin2:將(r0)為首地址的4字節(jié)ascii碼轉(zhuǎn)換成2位bin碼存放在r1(低字節(jié)),r2(高字節(jié))中;注:[(r0)指r0中內(nèi)容]ascii_bin:將(r0)為地址的一位ascii碼轉(zhuǎn)換成bin碼存A中。(高級子程序調(diào)用低級子程序以實(shí)現(xiàn)更強(qiáng)的功能,源程序中對各子程序有較詳細(xì)的注釋,故此處僅畫出主流程圖)開始計(jì)算通道數(shù)據(jù)首地址調(diào)用數(shù)據(jù)轉(zhuǎn)換程序還原小數(shù)位數(shù)存R6BCD碼超過5位嗎?該通道數(shù)據(jù)為0X開始計(jì)算通道數(shù)據(jù)首地址調(diào)用數(shù)據(jù)轉(zhuǎn)換程序還原小數(shù)位數(shù)存R6BCD碼超過5位嗎?該通道數(shù)據(jù)為0X0ffff嗎?返回該通道未用信息YYNN退出轉(zhuǎn)換成可顯示數(shù)據(jù)存R1-R4有效位前的零消除處理返回?cái)?shù)據(jù)正確信息負(fù)數(shù)處理,當(dāng)數(shù)據(jù)小于-199.9時(shí)顯示-199.9功能: 通過定時(shí)器0以1MS為周期動態(tài)顯示緩沖區(qū)中的內(nèi)容;同時(shí)完成20ms定時(shí)器及軟件看門狗計(jì)數(shù);當(dāng)軟件看門狗定時(shí)器溢出時(shí)自動復(fù)位。入口: 以disp_buf為首地址依次存放從個(gè)位至十萬位待顯示數(shù)據(jù),以disp_wc為首地址(位地址)依次存放個(gè)位至千位閃爍控制位信息,為'0'常亮,為'1'閃爍.T0中斷入口保護(hù)現(xiàn)場顯示碼表地址=>dptrDisp_s_c取反Disp_c+1=>disp_cDisp_c=>R0Disp_s-1=>disp_s,Disp_s=0?YN個(gè)位數(shù)據(jù)及閃爍信息=>A,C
a閃閃爍T0中斷入口保護(hù)現(xiàn)場顯示碼表地址=>dptrDisp_s_c取反Disp_c+1=>disp_cDisp_c=>R0Disp_s-1=>disp_s,Disp_s=0?YN個(gè)位數(shù)據(jù)及閃爍信息=>A,C
a閃閃爍NR0=1?Y十位數(shù)據(jù)及閃爍信息=>A,C
a閃閃爍百位數(shù)據(jù)及閃爍信息=>A,C
a閃閃爍千位數(shù)據(jù)及閃爍信息=>A,C
a閃閃爍萬位數(shù)據(jù)=>A
a閃閃爍十萬位數(shù)據(jù)=>A
a閃閃爍百萬位數(shù)據(jù)=>A(未用)
a閃閃爍千萬位數(shù)據(jù)=>A(未用)
a閃閃爍NR0=2?YNR0=3?YNR0=4?YNR0=5?YNR0=6?YNR0=7?YNR0=8?YDisp_s:閃爍控制計(jì)數(shù)器Disp_s_c:閃爍控制標(biāo)志Disp_c:顯示控制計(jì)數(shù)器輸出處理
a閃閃爍Disp_c=10?NY0=>disp_c輸出處理
a閃閃爍Disp_c=10?NY0=>disp_c20ms計(jì)數(shù)處理軟看門狗計(jì)數(shù)溢出YN跳至0000H
a閃閃爍恢復(fù)現(xiàn)場閃閃爍T0中斷返回模塊流程圖如本頁所示:
4、命令發(fā)送及接收控制子模塊(rand_send.a51)功能: 發(fā)送命令緩沖區(qū)中命令并等待接收完畢,然后檢查接收到的數(shù)據(jù),接收錯(cuò)誤則重發(fā)命令,達(dá)到設(shè)定的次數(shù)仍錯(cuò)則存入錯(cuò)誤碼后退出.入口: A=儀表地址開始清除命令及接收緩沖區(qū)設(shè)置允許錯(cuò)誤次數(shù)計(jì)算儀表命令偏移地址,取出命令及送入命令緩沖區(qū)開始清除命令及接收緩沖區(qū)設(shè)置允許錯(cuò)誤次數(shù)計(jì)算儀表命令偏移地址,取出命令及送入命令緩沖區(qū)校驗(yàn)通過?YN發(fā)送命令在80ms內(nèi)檢測到正在接收標(biāo)志?YN在200ms內(nèi)檢測到接收結(jié)束標(biāo)志?YN接收到命令錯(cuò)信息?YN返回命令錯(cuò)信息允許錯(cuò)誤次數(shù)-1允許錯(cuò)誤次數(shù)=0?YN緩沖區(qū)結(jié)束標(biāo)志符正確?YN清正在接收標(biāo)志返回錯(cuò)誤信息校驗(yàn)接收緩沖區(qū)中數(shù)據(jù)返回正確信息退出返回校驗(yàn)錯(cuò)信息模塊流程圖如下:5、串行接收子模塊(rand_rec.a51)功能: 串行接收模塊通過中斷自動執(zhí)行,程序檢測到@時(shí)置ri_f標(biāo)志并開始接收,檢測到回車符時(shí)清ri_f后退出,接收到的數(shù)據(jù)存放在以rec_buf為首地址的緩沖區(qū)中。外部中斷1入口斷按鍵釋放?NY延時(shí)40外部中斷1入口斷按鍵釋放?NY延時(shí)40ms去抖延時(shí)40ms去抖清看門狗定時(shí)器關(guān)中斷巡回/定點(diǎn)標(biāo)志取反跳至主程序start處斷串行中斷入口斷接收中斷?接收緩沖區(qū)首地址=>rec_buf_zYRI_F:正在接收標(biāo)志REC_BUF_Z:接收指針中斷返回?cái)喾礜RI_F=0?接收到@?1=>RI_F數(shù)據(jù)存入接收緩沖區(qū)接收到0dh?YYYNNN0=>RI_F接收緩沖區(qū)溢出?YN0=>RI_F保護(hù)現(xiàn)場恢復(fù)現(xiàn)場清RI6、巡回/定點(diǎn)轉(zhuǎn)換檢測模塊(rand_key.a51)功能: 模塊通過外部中斷1自動執(zhí)行,檢測到巡回/定點(diǎn)按鍵后先延時(shí)去抖動,并等待按鍵釋放后將巡回/定點(diǎn)標(biāo)志位取反,然后自動跳至主模塊中start處,并不返回原中斷點(diǎn)。模塊流程圖如見本頁:七、調(diào)測及運(yùn)行情況介紹調(diào)試步驟:硬件連接:將各芯片插在面包板上并用導(dǎo)線按原理圖連接軟件開發(fā)環(huán)境:KeiluVision2forWindows,該軟件的模擬調(diào)試器支持C語言及匯編語言源代碼調(diào)試,其匯編程序支持宏匯編及模塊化編程,使用方便。首先在模擬調(diào)試器中調(diào)試各子模塊,各子模塊調(diào)試正常后再將各子模塊及主模塊全部匯編連接成目標(biāo)文件,最后將目標(biāo)代碼下載到單片機(jī)中并連接智能儀表進(jìn)行統(tǒng)調(diào)。該系統(tǒng)軟件部分除報(bào)警子模塊外已全部開發(fā)完成并實(shí)際測試通過,測試時(shí)用一對長度約1100M的0.5mm2普通電話線作為單片機(jī)裝置與兩個(gè)智能儀表的通訊線,經(jīng)過一個(gè)多星期的連續(xù)運(yùn)行觀察,運(yùn)行可靠穩(wěn)定,完全滿足使用要求。[注:報(bào)警子模塊的開發(fā)及硬件制版工作正在進(jìn)行中。]八、結(jié)束語用單片機(jī)+智能儀表構(gòu)成的溫度遠(yuǎn)程顯示系統(tǒng)總造價(jià)約人民幣7000元(兩塊智能儀表+溫度傳感器約3500元,通訊電纜約2000元,單片機(jī)裝置及施工費(fèi)用約1500元),與采用其它方案的系統(tǒng)比較造價(jià)較低,其硬件及軟件的設(shè)計(jì)、制作都較簡單,有一定的電子及單片機(jī)知識便可完成。同時(shí)對該裝置軟件稍加修改即可與其他帶有RS-485通訊端口的儀器儀表通訊(如變頻器、電路傳感器等),實(shí)現(xiàn)遠(yuǎn)程測量、監(jiān)視及控制。與發(fā)達(dá)國家相比,我國單片機(jī)應(yīng)用的普及程度較低。通過該實(shí)例說明,我們完全可以把我們學(xué)到的單片機(jī)知識應(yīng)用到實(shí)際工作中,直接創(chuàng)造經(jīng)濟(jì)效益。九、參考資料<<單片機(jī)高級語言C51Windows環(huán)境編程與應(yīng)用>> 電子工業(yè)出版社 徐愛鈞 彭秀華 編著 <<ATMEL89系列Flash單片機(jī)原理與應(yīng)用>> 電子工業(yè)出版社 余永權(quán) 主編 <<標(biāo)準(zhǔn)集成電路數(shù)據(jù)手冊高速CMOS電路>> 電子工業(yè)出版社 <<ATMELAT89S8252數(shù)據(jù)手冊>> ATMEL公司 <<XJ-08H(S)巡回檢測儀使用說明書>> 重慶川儀十八廠 <<工業(yè)控制計(jì)算機(jī)組成原理>> 清華大學(xué)出版社 孫廷才王杰孫中健編著<<電子技術(shù)>>2001年11期十、附錄(源程序)1、主模塊(rand_main.a51);1rand_main.a51namerand_mainEXTRNCODE(I_T0,send_order,rec_si,ascii_bcd,key)extrndata(DISP_buf,disp_wc,time_20ms,wdt)extrnidata(rec_buf)publicTH0_H,TL0_L,START,ri_f,wdt_time,key_work,key_fprogSEGMENTCODE ;定義代碼段byte_buffsegmentdata ;定義字節(jié)數(shù)據(jù)段1byte_buffIsegmentidata ;定義字節(jié)數(shù)據(jù)段2bit_buffsegmentdatabitaddressable ;定義位數(shù)據(jù)段bit_flagsegmentbitstacksegmentidata ;定義堆棧數(shù)據(jù)段 rsegstack ;為堆棧保留20個(gè)字節(jié) ds20 CSEGAT00H ;定義絕對代碼段 USING0 ;選擇工作寄存器組第0組 lJMPrand ;復(fù)位時(shí)程序執(zhí)行執(zhí)行點(diǎn) CSEGAT03H ;外部中斷0 RETI CSEGAT0BH ;定時(shí)器0中斷 lJMPI_T0 CSEGAT13H ;外部中斷1 ljmpkey RETI CSEGAT1BH ;定時(shí)器1中斷 RETI CSEGAT23H ;串行中斷 ljmprec_si RSEGBYTE_BUFF td_temp:ds1 TD_n:DS1 ;通道號 YD_n100:ds1 ;儀表地址; rsegbit_flag key_work:dbit1 ri_f:dbit1 ;串行口正在接收標(biāo)志;主程序 RSEGprog;符號定義 key_fequp3.3 key_upequp3.4 key_downequp3.5 wdt_timeequ100 ;軟件看門狗定時(shí)器計(jì)數(shù)值 scon_cequ01010000b ;串行口設(shè)置為10位UART,允許接收 th1_hequ0fdh ;晶振為11.0592M,波特率為9600時(shí)初值 tmod_nequ21h ;設(shè)置定時(shí)器(T1作為波特率發(fā)生器工作在模式2,T0為模式1) ie_nequ82h ;設(shè)置串行,定時(shí)器0中斷 ip_nequ12h ;設(shè)置串行,定時(shí)器0中斷為高級中斷 TH0_HEQU0FCH TL0_LEQU06BH ;設(shè)定定時(shí)器0為1MS中斷初值;初始化代碼clear_wdtmacro ;清硬看門狗宏定義 orl96h,#2 ENDMrand: ORL96H,#0E1H ;啟動硬件看門狗 movp0,#0ffh movr0,#20h mova,#0start_300:mov@r0,a incr0 cjner0,#128,start_300 setbkey_work ;置巡回/定點(diǎn)標(biāo)志 movp3,#0ffh movp2,#0ffh movdisp_wc,#0 ;初始化閃爍控制位 movip,#ip_n ;設(shè)置串行,定時(shí)器0中斷為高級中斷 movscon,#scon_c MOVTMOD,#tmod_n MOVTH0,#TH0_H ;設(shè)定定時(shí)器初值 MOVTL0,#TL0_L movth1,#th1_h movtl1,#th1_h movie,#ie_n movpcon,#0 SETBtr1 SETBTR0;顯示初始化提示 acallchuhao CLEAR_WDT start: clrea movsp,#stack-1 setbea clrri_f ;清接收中標(biāo)志 clrp3.2 ;置75176為接收狀態(tài) jnbkey_work,db_work; setbex1 movyd_n100,#0ah movtd_n,#0s_0: anldisp_wc,#0f0h movwdt,#0 ;清看門狗定時(shí)器 clear_wdt mova,yd_n100 lcallsend_order JNZs_1 movdisp_buf+5,yd_n100 mova,td_n lcallascii_bcd jnzs_2 movdisp_buf+4,td_n acallmov_to_disp movwdt,#0 clear_wdt mova,#75 adda,time_20ms cjnea,time_20ms,$ movwdt,#0 clear_wdt mova,#75 adda,time_20ms cjnea,time_20ms,$s_2: inctd_n mova,td_n cjnea,#8,s_0 movtd_n,#0s_1: incyd_n100 MOVA,YD_N100 cjnea,#10h,s_0 movyd_n100,#0ah ajmps_0;db_work:setbex1 orldisp_wc,#01hd_3: movwdt,#0 ;清看門狗定時(shí)器 clear_wdt jbkey_up,d_4 mova,#2 adda,time_20ms cjnea,time_20ms,$ jbkey_up,d_4d_5: movwdt,#0 clear_wdt jnbkey_up,d_5 ;等待向上鍵松開;d_53: mova,td_n cjnea,#7,d_50 movtd_n,#0d_52: incyd_n100 mova,yd_n100 cjnea,#10h,d_51 movyd_n100,#0ah ajmpd_51d_50: inctd_nd_51: mova,yd_n100 lcallsend_order JNZd_52 movdisp_buf+5,yd_n100 mova,td_n lcallascii_bcd jnzd_53 movdisp_buf+4,td_n acallmov_to_disp mova,#100 ;2秒鐘定時(shí)設(shè)定 adda,time_20ms ajmpd_3;d_4: jbkey_down,d_10 mova,#2 adda,time_20ms cjnea,time_20ms,$ jbkey_down,d_3d_6: movwdt,#0 clear_wdt jnbkey_down,d_6 ;等待向下鍵松開;d_43: mova,td_n cjnea,#0,d_40 movtd_n,#7d_42: decyd_n100 mova,yd_n100 cjnea,#9h,d_41 movyd_n100,#0fh ajmpd_41d_40: dectd_nd_41: mova,yd_n100 lcallsend_order JNZd_42 movdisp_buf+5,yd_n100 mova,td_n lcallascii_bcd jnzd_43 movdisp_buf+4,td_n acallmov_to_disp mova,#100 ;2秒鐘定時(shí)設(shè)定 adda,time_20ms ajmpd_3;d_10: cjnea,time_20ms,d_30 mova,yd_n100 lcallsend_order jnzd_30 mova,td_n lcallascii_bcd jnzd_30 acallmov_to_dispmova,#100 adda,time_20msd_30:ajmpd_3;mov_to_disp:movdisp_buf,r1 movdisp_buf+1,r2 movdisp_buf+2,r3 movdisp_buf+3,r4 retchuhao: movr1,#1eh ;初始化等待提示 movr2,#22h movr3,#21h movr4,#1fh movdisp_buf+4,#21h movdisp_buf+5,#20h acallmov_to_disp mova,#75 adda,time_20ms cjnea,time_20ms,$ movwdt,#0 clear_wdt mova,#75 adda,time_20ms cjnea,time_20ms,$ ret end2、數(shù)據(jù)轉(zhuǎn)換子模塊(rand_data.a51);2rand_data.a51namerand_dataextrnidata(rec_buf)publicascii_bcdprogSEGMENTCODE ;定義代碼段byte_buffsegmentdata ;定義字節(jié)數(shù)據(jù)段1byte_buffIsegmentidata ;定義字節(jié)數(shù)據(jù)段2bit_buffsegmentdatabitaddressable ;定義位尋址區(qū)字節(jié)數(shù)據(jù)段 rsegprog using0;ASCII_BCD:movb,#8 ;計(jì)算該通道數(shù)據(jù)偏移首地址 mulab adda,#5 movr0,#rec_buf adda,r0 movb,a movr0,a acallascii4_bcd3 mova,b ;還原小數(shù)位數(shù) adda,#7 movr0,a acallascii_bin movr6,a ;小數(shù)位數(shù)暫存在R6中 mova,r5 jzasc_oK mova,dpl cpla clrc inca movdpl,a mova,dph cpla addca,#0 movdph,a jnzasc_basc_0: mova,dpl deca jnzasc_b movr1,#0fh movr2,#0fh movr3,#0fh movr4,#0fh mova,#0fh ajmpasc_outasc_b: movr1,dpl ;為負(fù)數(shù)處理 movr2,dph acallbin_bcd mova,b ;還原小數(shù)位數(shù) adda,#7 movr0,a acallascii_bin movr6,a ;小數(shù)位數(shù)暫存r6 acallbcd2_bcd1 mova,r4 deca jnzasc_100 ;數(shù)據(jù)小于-199.9時(shí)顯示-199.9 movr4,#23h ajmpasc_swasc_100:movr4,#23h movr3,#9 movr2,#19h movr1,#9 ajmpasc_sw_1asc_ok: acallbcd2_bcd1 ;正常數(shù)據(jù)處理程序asc_sw: mova,r4 ;清除有效位前面的0 jnzasc_sw_1 movr4,#1ch mova,r3 jnzasc_sw_1 movr3,#1chasc_sw_1:clraasc_out:ret;每字節(jié)兩位BCD碼轉(zhuǎn)換為每字節(jié)一位BCD碼子程序;入口:r3=個(gè)位及十位BCD碼,r4=百位及千位BCD碼,r6=小數(shù)位數(shù);出口:r1=個(gè)位BCD碼,r2=十位BCD碼,r3=百位BCD碼,r4=千位BCD碼bcd2_bcd1:mova,r3 ;個(gè)位及十位BCD數(shù)處理 anla,#0fh movr1,a mova,r3 anla,#0f0h swapa movr2,a mova,r4 ;百位及千位BCD數(shù)處理 anla,#0fh movr3,a mova,r4 anla,#0f0h swapa movr4,a mova,r6 ;加入小數(shù)點(diǎn)信息 jzbcd2_out adda,#ar1 movr0,a mova,@r0 adda,#10h mov@r0,abcd2_out:ret;ASCii4_BCD3轉(zhuǎn)換子程序;入口:r0=四字節(jié)ASCII碼首地址;出口:r5,r4,r3從高至低依次存放BCD碼(r3,r4各存2位,r5存1位)ascii4_bcd3:acallascii4_bin2 movdpl,r1 movdph,r2 acallbin_bcd ret;BIN_BCD轉(zhuǎn)換子程序;入口:r1=BIN低字節(jié),r2=BIN高字節(jié)共2字節(jié);出口:r3=低2位BCD碼,r4=高2位BCD碼,r5=可能的最高位BCD碼 bin_bcd:PUSHACC PUSHPSW movr3,#0 ;BCD單元清0 movr4,#0 movr5,#0 movr6,#16 ;設(shè)置二進(jìn)制數(shù)位數(shù) clrcbin_0: mova,r1 rlca movr1,a mova,r2 rlca movr2,a movr0,#ar3 movr7,#3 ;設(shè)置BCD字節(jié)數(shù)bin_1: mova,@r0 addca,@r0 daa mov@r0,a incr0 djnzr7,bin_1 djnzr6,bin_0 POPPSW POPACC ret;ASCII4_BIN2轉(zhuǎn)換子程序;入口:R0=ASCII碼首地址(共四字節(jié)ASCII碼);出口:r1=BIN碼低字節(jié),R2=BIN碼高字節(jié)ascii4_bin2:PUSHACC acallascii_bin anla,#0fh swapa movr1,a incr0 acallascii_bin anla,#0fh orlar1,a incr0 acallascii_bin anla,#0fh swapa movr2,a incr0 acallascii_bin anla,#0fh orlar2,a POPACC ret;ASCII_BIN轉(zhuǎn)換子程序;入口:R0=ASCII地址;出口:A=BIN碼ascii_bin:mova,@r0 clrc subba,#3ah jncascii_0 adda,#7ascii_0:adda,#3 ret end3、顯示、軟件看門狗及20ms定時(shí)器子模塊(rand_disp.a51);3rand_disp.a51namerand_disp extrnnumber(TH0_H,TL0_L,wdt_time) PUBLICI_T0,disp_buf,disp_wc,time_20ms,wdtprogSEGMENTCODE ;定義代碼段BYTE_BUFFsegmentdata ;定義字節(jié)數(shù)據(jù)段1byte_buffIsegmentidata ;定義字節(jié)數(shù)據(jù)段2bit_buffsegmentdatabitaddressable ;定義位數(shù)據(jù)段 RSEGBYTE_BUFF wdt:ds1 time_s_c:ds1 time_20ms:ds1 DISP_C:ds11 ;顯示位 disp_bufdatadisp_c+1 ;個(gè)位緩沖區(qū),此個(gè)位并非真正的個(gè)位,指最右一位,以下類推 disp_2datadisp_c+2 ;十個(gè)位緩沖區(qū) disp_3datadisp_c+3 ;百位緩沖區(qū) disp_4datadisp_c+4 ;千位緩沖區(qū) disp_5datadisp_c+5 ;通道位緩沖區(qū) disp_6datadisp_c+6 ;地址位緩沖區(qū) disp_7datadisp_c+7 ;無 disp_8datadisp_c+8 ;無 disp_sdatadisp_c+9 ;閃爍計(jì)數(shù)器 rsegbit_buff disp_wc:ds1 disp_c_1bitdisp_wc.0 ;個(gè)位閃爍標(biāo)志位1-閃爍 disp_c_2bitdisp_wc.1 ;十位閃爍標(biāo)志位 disp_c_3bitdisp_wc.2 ;百位閃爍標(biāo)志位 disp_c_4bitdisp_wc.3 ;千位閃爍標(biāo)志位 disp_s_cbitdisp_wc.4 ;閃爍控制位 1-閃爍 RSEGPROG using0 dsbequp3.4 cr_notequp3.5 cpequp3.6I_T0: pushacc pushar0 pushdph pushdpl pushpsw movth0,#th0_h movtl0,#tl0_l movdptr,#tab; djnzdisp_s,d_20 cpldisp_s_c;d_20: INCDISP_C MOVR0,DISP_C CJNER0,#1,DISP2 ;r0=1顯示個(gè)位 movc,disp_c_1 movA,disp_buf movp1,#0FFH movp0,#0feh ajmpd_10DISP2: CJNER0,#2,DISP3 ;顯示十位 setbp0.0 movc,disp_c_2 movA,disp_2 movp1,#0FFH movp0,#0fdh ajmpd_10DISP3: CJNER0,#3,DISP4 ;顯示百位 movc,disp_c_3 movA,disp_3 movp1,#0FFH movp0,#0fbh ajmpd_10DISP4: CJNER0,#4,DISP5 ;顯示千位 movc,disp_c_4 movA,disp_4 movp1,#0FFH movp0,#0f7h ajmpd_10DISP5: CJNER0,#5,DISP6 ;顯示通道號 movA,disp_5 movp1,#0FFH movp0,#0efh ajmpd_10DISP6:CJNER0,#6,DISP7 ;顯示儀表地址 movA,disp_6 movp1,#0FFH movp0,#0dfh ajmpd_10DISP7: CJNER0,#7,DISP8 ;無 movA,disp_7 movp1,#0FFH movp0,#0bfh ajmpd_10DISP8: CJNER0,#8,d_10 ;無 movA,disp_8 movp1,#0FFH movp0,#7fhd_10: acalldisp_w movr0,disp_c cjner0,#10,d_12 ;若disp_c=10則清disp_c movdisp_c,#0 inctime_s_c ;MS,S計(jì)數(shù)處理程序 mova,time_s_c cjnea,#2,d_12 movtime_s_c,#0 inctime_20ms incwdt ;軟看門狗處理程序 mova,wdt cjnea,#wdt_time,d_12 movwdt,#0 mova,#0 pushacc pushacc reti;d_12: poppsw popdpl popdph popar0 popacc RETIdisp_w: jncd_0 jnbdisp_s_c,d_0 movp1,#0FFH ajmpd_1d_0: movca,@a+dptr cpla movp1,aD_1: ret;TAB: DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;0123456789 db77H,7CH,39H,5EH,79H,71H ;ABCDEF DB0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,87H,0FFH,0EFH ;0.1.2.3.4.5.6.7.8.9. db40H,80H,00H,37h,5ch,1ch,58h,74h,0dch,46h ;-.空 no ucha-1 ;1a1b1c 1d1e1f202122 23 END4、命令發(fā)送及接收控制子模塊(rand_send.a51);4rand_send.a51namesend_orderextrnidata(rec_buf) ;rec_buff 接收緩沖區(qū)extrndata(time_20ms)extrnbit(ri_f) ;ri_f 正在接收標(biāo)志PUBLICsend_orderprogSEGMENTCODE ;定義代碼段byte_buffsegmentdata ;定義字節(jié)數(shù)據(jù)段1byte_buffIsegmentidata ;定義字節(jié)數(shù)據(jù)段2bit_buffsegmentdatabitaddressable ;定義位數(shù)據(jù)段 rsegbyte_buff send_n:ds1 order_buf:ds10 rsegprog dd_cequ4 ;等待回應(yīng)20m數(shù) cw_nequ7 ;設(shè)置允許錯(cuò)誤次數(shù) using0;清命令緩沖區(qū)send_order: movdpl,#8 movr0,#order_bufsend_0: mov@r0,#0 incr0 djnzdpl,send_0 MOVDPL,#72 ;清接收緩沖區(qū) MOVR0,#REC_BUFSEND_A: MOV@R0,#0 INCR0 DJNZDPL,SEND_A ;發(fā)送命令控制程序 movsend_n,#cw_n ;設(shè)置允許錯(cuò)誤次數(shù) movb,#10 clrc subba,b movb,#8 mulab movdptr,#a_order movr0,#order_buf-1 movr1,#10start_mov:incr0 pushacc movca,@a+dptr mov@r0,a incdptr popacc cjne@r0,#0dh,start_mov;發(fā)送命令子程序send_start:setbp3.2 ;切換75176至發(fā)送狀態(tài) movr0,#order_buf-1send_10:incr0 movsbuf,@r0 jnbti,$ ;等待一幀數(shù)據(jù)發(fā)完 CLRTI cjne@r0,#0dh,send_10 ;檢測到結(jié)束標(biāo)志退出;檢測接收標(biāo)志 movr0,#30 ;延時(shí)60uS等待停止位發(fā)送完畢 djnzr0,$ setbes clrp3.2 ;切換75176至接收狀態(tài) mova,#dd_c ;延時(shí)檢測儀表有無回應(yīng) adda,time_20ms send_21:jbri_f,send_20 cjnea,time_20ms,send_21 mova,#'N' ajmpsend_23;檢測接收是否正確send_20:mova,#10 ;延時(shí)200MS等待接收結(jié)束 adda,time_20mssend_28:jnbri_f,send_29 cjnea,time_20ms,send_28 clrri_f ;200MS仍未結(jié)束清接收中標(biāo)志send_29:movr0,#rec_buf+4 cjne@r0,#'*',send_22 mova,#'*'send_23:djnzsend_n,send_start ;達(dá)到允許錯(cuò)誤次數(shù)退出 ajmpsend_outsend_22:movr0,#rec_buf+71 cjne@r0,#0dh,send_23 ;接收緩沖區(qū)第72字節(jié)不為回車符轉(zhuǎn)出錯(cuò)處理;還原校驗(yàn)碼 movr0,#rec_buf+70 mova,@r0 clrc subba,#3ah jncSEND_25 adda,#7send_25:adda,#3 mov@r0,a decr0 mova,@r0 clrc subba,#3ah jncSEND_26 adda,#7send_26:ADDA,#3 swapa incr0 xchda,@r0 decr0 xcha,@r0 incr0 mov@r0,#0dh ;檢驗(yàn)碼后加回車符;檢驗(yàn)接收緩沖區(qū)數(shù)據(jù) movr0,#rec_buf+1 mova,@r0 incr0send_24:xrla,@r0 incr0 cjne@r0,#0dh,send_24 cjnea,#0,send_200 ;接收校驗(yàn)未通過轉(zhuǎn)出錯(cuò)處理send_out:clres retsend_200:mova,#1 ajmpsend_23 ;a_order:db'@0ARD67',0DH ;讀A表全部動態(tài)數(shù)據(jù)命令b_order:db'@0BRD64',0DH ;讀B表全部動態(tài)數(shù)據(jù)命令c_order:db'@0CRD65',0DH ;讀c表全部動態(tài)數(shù)據(jù)命令d_order:db'@0DRD62',0DH ;讀d表全部動態(tài)數(shù)據(jù)命令e_order:db'@0ERD63',0DH ;讀e表全部動態(tài)數(shù)據(jù)命令f_order:db'@0FRD60',0DH ;讀f表全部動態(tài)數(shù)據(jù)命令 END5、串行接收子模塊(rand_rec.a51);5rand_rec.a51namerec_siextrnbit(ri_f)publicrec_si,rec_bufprogSEGMENTCODE ;定義代碼段byte_buffsegmentdata ;定義字節(jié)數(shù)據(jù)段1byte_buffIsegmentidata ;定義字節(jié)數(shù)據(jù)段2bit_buffsegmentdatabitaddressable ;定義位數(shù)據(jù)段 rsegbyte_buff rec_buf_z:ds1 ;接收區(qū)指針 rec_err:ds1 ;接收緩沖區(qū)溢出計(jì)數(shù)器 rsegbyte_buffi rec_buf:ds75 rsegprog using0rec_si: PUSHPSW pushar0 pushacc JNBRI,REC_OUT ;為發(fā)送中斷跳出 clrri jbri_f,rec_0 mova,sbuf cjnea,#'@',rec_out ;無效命令過濾處理 setbri_f ;置接收中標(biāo)志 movrec_buf_z,#rec_buf ;接收緩沖區(qū)首地址給接收指針 movrec_err,#73 ;設(shè)置最大接收字節(jié)數(shù) ajmprec_1rec_0: mova,sbuf cjnea,#0dh,rec_1 clrri_frec_1: movr0,rec_buf_z mov@r0,a increc_buf_z djnzrec_err,rec_out ;接收溢出清接收標(biāo)志 clrri_frec_out:popacc popar0 POPPSW reti end6、巡回/定點(diǎn)轉(zhuǎn)換檢測子模塊(rand_key.a51);6rand_key.a51namekeyEXTRNCODE(START)extrnbit(key_work,key_f)EXTRNDATA(DISP_buf,disp_wc,time_20ms,wdt)PUBLICKEYprogSEGMENTCODE ;定義代碼段 RSEGPROG;KEY: mova,#2 adda,time_20ms cjnea,time_20ms,$key_1: movwdt,#0 orl96h,#0e1h jnbkey_f,key_1 mova,#2 adda,time_20ms cjnea,time_20ms,$ jnbkey_f,key_1 clrea clrex1 cplkey_work;key_out:movdptr,#start pushdpl pushdph reti end
rand_js.hex:100026007582087823760008D582FA75824878406A:10003600760008D582FA75220775F00AC395F07521:10004600F008A49000D07822790A08C0E093F6A3BD:10005600D0E0B60DF5D2B278220886993099FDC265:1000660099B60DF5781ED8FED2ACC2B27404252F0F:10007600200907B52FFA744E0193740A252F30090B:1000860005B52FFAC2097844B62A07742AD522C5BF:1000960001C97887B60DF67886E6C3943A500224ED:1000A600072403F618E6C3943A500224072403C42F:1000B60008D618C608760D7841E6086608B60DFB20:1000C600B40003C2AC22740101934030415244365D:1000D600370D403042524436340D40304352443698:1000E600350D403044524436320D40304552443688:0A00F600330D403046524436300D01:10010000C0E0C000C083C082C0D0758CFC758A6B13:100110009001CDD53902B2040530A830B8010CA247:1001200000E5317590FF7580FE218CB8020ED280FB:10013000A201E5327590FF7580FD218CB8030CA2F9:1001400002E5337590FF7580FB218CB8040CA20387:10015000E5347590FF7580F7218CB8050AE5357593:1001600090FF7580EF218CB8060AE5367590FF7513:1001700080DF218CB8070AE5377590FF7580BF21B5:100180008CB80808E5387590FF75807F31BEA830BF:10019000B80A20753000052EE52EB40216752E0023:1001A00005
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 皖西衛(wèi)生職業(yè)學(xué)院《語言數(shù)據(jù)分析與應(yīng)用》2023-2024學(xué)年第一學(xué)期期末試卷
- 漢江師范學(xué)院《英美文學(xué)(二)》2023-2024學(xué)年第一學(xué)期期末試卷
- 衡陽師范學(xué)院南岳學(xué)院《基礎(chǔ)英語技能拓展》2023-2024學(xué)年第一學(xué)期期末試卷
- 河南科技大學(xué)《基礎(chǔ)生物學(xué)二》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025產(chǎn)品購銷合同
- 安徽無為開城中學(xué)2025年高三5月綜合測試(三模)英語試題文試題含解析
- 江蘇大學(xué)《新媒體廣告研究》2023-2024學(xué)年第二學(xué)期期末試卷
- 電力行業(yè)交流發(fā)言
- 云南國土資源職業(yè)學(xué)院《海洋與食品生物技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 湖北省陽新縣興國高級中學(xué)2025年高三教學(xué)質(zhì)量統(tǒng)一檢測試題(一)化學(xué)試題含解析
- 房屋市政工程生產(chǎn)安全重大事故隱患判定標(biāo)準(zhǔn)(2024版)宣傳海報(bào)
- 湖北省黃岡八模2025屆高三第一次模擬考試數(shù)學(xué)試卷含解析
- 道路工程交通安全設(shè)施施工方案及保障措施
- 勞務(wù)派遣信息管理系統(tǒng)
- 極地安全課件教學(xué)課件
- GB/T 44588-2024數(shù)據(jù)安全技術(shù)互聯(lián)網(wǎng)平臺及產(chǎn)品服務(wù)個(gè)人信息處理規(guī)則
- 2024年全國半導(dǎo)體行業(yè)職業(yè)技能競賽(半導(dǎo)體分立器件和集成電路裝調(diào)工賽項(xiàng))理論考試題庫(含答案)
- 2024年深圳技能大賽-鴻蒙移動應(yīng)用開發(fā)(計(jì)算機(jī)程序設(shè)計(jì)員)職業(yè)技能競賽初賽理論知識
- 課件:《中華民族共同體概論》第四講 天下秩序與華夏共同體的演進(jìn)(夏商周時(shí)期)
- 統(tǒng)編版高中語文教材的“三種文化”內(nèi)容及價(jià)值實(shí)現(xiàn)
- 杜仲葉培訓(xùn)課件
評論
0/150
提交評論