已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
一 摘要 單片計算機即單片微型計算機。( Single-Chip Microcomputer ) ,是 集 CPU ,RAM ,ROM , 定時,計數和多種接口于一體的微控制器。他體積小,成本低,功能強,廣泛應用于智能產 品和工業(yè)自動化上。而 51 單片機是各單片機中最為典型和最有代表性的一種。這次畢業(yè)設 計通過對它的學習,應用,從而達到學習、設計、開發(fā)軟、硬的能力。 二 說明 系統(tǒng)由 AT89C51、 LED 數碼管、按鍵、發(fā)光二極管等部分構成,能實現(xiàn)時間的調整、定 時時間的設定,輸出等功能。系統(tǒng)的功能選擇由 SB0、 SB1、 SB2、 SB3、 SB4 完成。其中SB0 為時間校對,定時器調整功能鍵,按 SB 0 進入調整狀態(tài)。 SB1 為功能切換鍵。第一輪按動 SB1 依次進入一路、二路、三路定時時間設置提示程序,按 SB3 進入各路定時調整狀態(tài)。定 時時間到,二極管發(fā)亮。到了關斷時間后滅掉。如果不進入繼續(xù)按 SB1 鍵,依次進入時間 年 位校對、 月 位校對、 日 位校對、 時 位校對、 分 位校對、 秒 位 校對狀態(tài)。不管是進入那種狀態(tài),按動 SB2 皆可以使被調整位進行不進位增量加 1 變化。各 預置 量設置完成后,系統(tǒng)將所有的設置存入 RAM 中,按 SB1 退出調整狀態(tài)。上電后,系統(tǒng)自 動進入計時狀態(tài),起始于 00 時 00 分。 SB4 為年月日顯示轉換鍵,可使原來顯示時分 秒轉換顯示年月日。 三、電路原理分析 1. 顯示原理 電原理圖見附圖 1。由 6 個共陰極的數碼管組成時、分、秒的顯示。 P0 口的 8 條數據線 P0.0 至 P0.7 分別與兩個 CD4511 譯碼的 ABCD 口相接, P2 口的 P2.0 至 P2.2 分別通過電阻 R10 至 R13 與 VT1 至 VT3 的基極相連接。這樣通過 P0 口送 出一個存儲單元的高位、低位 BCD 顯示代碼,通過 P2 口送出掃描選通代碼輪流點亮 LED1 至 LED6,就會將要顯示的數據在數 碼管中顯示出來。從 P0 口輸出的代碼是 BCD 碼,從 P2 口輸出的就是位選碼。這是掃描顯示 原理。 。 2 鍵盤及讀數原理 鍵盤是人與微機打交道的主要設備,按鍵的讀取容易引起誤動作。可采用軟件去 抖動的方法處理,軟件的觸點在閉合和斷開的時候會產生抖動,這時觸點的邏輯電 平是不穩(wěn)定的,如不采取妥善處理的話,將引起按鍵命令錯誤或重復執(zhí)行,在這里 采用軟件延時的方法來避開抖動,延時時間 20ms. 3 連擊功能的實現(xiàn) 按下某鍵時,對應的功能鍵解釋程序得到執(zhí)行,如操作者沒有釋放按鍵,則對應 的功能會反復執(zhí)行,好象連續(xù)執(zhí)行,在這里我們采用軟件延時 250ms,當按鍵沒釋放則 執(zhí)行下一條對應程序。利用連擊功能,能實現(xiàn)快速調時操作。 四、程序設計思想和相關指令介紹 本系統(tǒng)的主程序主要完成時間顯示和定時輸出判斷功能。而年月日顯示和各時間單元進 位,時間設定時,調定時間設定時等功能全部在中斷服務程序中完成。 1數據與代碼轉換 。 由前述可知,從 P2 口輸出位選碼,從 P0 口輸出段選碼, LED 就會顯示出數字 來。但 P0 口的輸出的數據是要 BCD 碼,各存儲單元存儲的是二進制數,也就是和要顯示出的字符表達 的含義是不一致的??梢?,將要顯示的存儲單元的數據直接送到 P0 口去驅動 LED 數碼管顯 示是不能正確表達的,必須在系統(tǒng)內部將要顯示的數據經過 BCD 碼行轉換后,將各個單元數 據的段選代碼送入 P0 口,給 CD4511 譯碼后去驅動數碼管顯示。 具體轉換過程如下: 我們先將要顯示的數據裝入累加器 A 中,再將 A 中的數據轉換成高低兩位的 BCD 碼, 再放回 A 中,然后將 A 中的值輸出。如:有一個單元存儲了 45 這樣一 位數,則需轉換成四 位的 BCD 碼:( 0100)( 0101)然后放入 A 中。 A 中 BCD 碼,高位四位代表 4低四位代 表 5同時送給兩個譯碼器中,譯碼后 45 字就在兩個 LED 中顯示出來。 2計時功能的實現(xiàn)與中斷服務程序 時間的運行依靠定時中斷子程序對時鐘單元數值進位調整來實現(xiàn)的。計數器 T0 打開后, 進入計時,滿 100 毫秒后,重裝定時。中斷一次,滿一秒后秒進位,滿 60 秒后即為 1 分鐘, 分鐘單元進位, 60 分到了后,時單元進位, 24 小時滿后,天單元進位。這樣然后根據進率, 得到年、月 、日、時、分、秒存儲單元的值,并經譯碼后,通過掃描程序送 LED 中顯示出來, 實現(xiàn)時鐘計時功能。累加是用指令 INC 來實現(xiàn)的。 進入中斷服務程序以后,執(zhí)行 PUSH PSW 和 PUSH A 將程序狀態(tài)寄存器 PSW 的內容和累 加器 A 中的數據保存起來,這便是所謂的 保護現(xiàn)場 . 以保護現(xiàn)場和恢復現(xiàn)場時存取關鍵 數據的存儲區(qū)叫做堆棧。在軟件的控制之下,堆棧可在片內 RAM 中的任一區(qū)間設定,而堆棧 的數據存取與一般的 RAM 存取又有區(qū)別,對它的操作,要遵循 后進先出 的原則。 3 時間控制功能與比較指令 系統(tǒng)的另一功能就是實現(xiàn)對執(zhí)行設備的定時開關控制,其主要控制思想是這樣的:先 將執(zhí)行設備開啟的時間和關閉時間置入 RAM 某一單元,在計時主程序當中執(zhí)行幾條比較指 令,如果當前計時時間與執(zhí)行設備的設定開啟時間相等,就執(zhí)行一條 CLR 指令,將對應的 那路 P3 置為高電位,開啟;如果當前計時時間與執(zhí)行設備設定的關閉時間相等,就執(zhí)行SETB 對應的 P3 置低電位,二極管截止,。實現(xiàn)此控制功能用到的比較指令為 CJNE A, #direct, rel,其轉移條件是累加器 A 中的值與立即數不等則轉移。 參考文獻 1、 謝自 美,電子線路設計、實驗、測試 武漢:華中理工大學出版社, 2000 2、 何書森、何華斌實用數字電路原理與設計速成福州:福建科學技術出版社, 2000.6 3、 白駒衍, 單片計算機及應用北京:電子工業(yè)出版社, 1999.2 五:程序 SEC EQU 32H ;秒 即時時間 偽指令 MIN EQU 31H ;分 HOUR EQU 30H ;時 DAY EQU 35H ;日 MON EQU 34H ;月 YEAR EQU 33H ;年 MIN_1 EQU 41H ;分 定時器 1 路、開存儲單元 HOUR_1 EQU 42H ;時 DAY_1 EQU 43H ; MON_1 EQU 44H ; YEAR_1 EQU 45H ; MIN_11 EQU 40H ;分 定時器 1 路、關存儲單元 HOUR_11 EQU 46H ;時 DAY_11 EQU 47H ;日 MON_11 EQU 48H ;月 YEAR_11 EQU 49H ;年 ;* ORG 0000H ljmp MAIN ORG 0003H ;中斷轉換顯示年月日、 INT0( SB4 鍵) LJMP SHOW ORG 000BH ;計數中斷 T0、方式 1 LJMP TIME ORG 0013H LJMP CHANGE; 調整時間、定時、 INT1( SB0 鍵) ;-主程序 ORG 0030H MAIN: ;-初始化付值 MOV YEAR , #02 MOV MON , #05 MOV DAY , #01 MOV HOUR , #00 MOV MIN , #00 MOV SEC , #00 CLR 40H ;定時單元 1 路清零 CLR 41H CLR 42H CLR 43H CLR 44H CLR 45H CLR 46H CLR 47H CLR 48H CLR 49H ;-開中斷 MOV TMOD , #01H ;計數、模式 1、 T0 MOV TL0, #0B0H ;100SM 計數定時 MOV TH0, #3CH ; clr p3.0 MOV 20H, #0AH ;10 次 *100SM SETB PT0 ;T0 為最高級 SETB TR0 ;允許計數 SETB ET0 ;允許 T0 中斷 SETB EX0 ;允許 INT0 中斷 SETB EX1 ;允許 INT1 中斷 SETB EA ;開總中斷 ;-顯示、定時器啟動判斷 LOOP: MOV R1, #30H; 存儲單元 MOV R4, #01H; 位選通 MOV R3, #03H; 三組顯示 NEXT: MOV A , R1 ; MOV B , #10 ;將存儲單元轉換成兩高低兩組的BCD 碼 DIV AB SWAP A ORL A, B MOV P0, A;輸出 MOV P2, R4 INC R1 ;下一單元 MOV A, R4 ; RL A ;位移 MOV R4, A LCALL DE5SM ;延時 0.5SM DJNZ R3, NEXT ;全掃描顯示一偏 ;-判斷定時輸出 (只編寫了一路 ) CJNE R7, #88H,LOOP ;是 8 則開,否則、定時已關、轉 ;-開 MOV A, YEAR CJNE A, YEAR_1, LOOP_1;年比較,不等轉關 MOV A, MON CJNE A, MON_1, LOOP_1 MOV A, DAY CJNE A , DAY_1,LOOP_1 MOV A, HOUR CJNE A, HOUR_1,LOOP_1 MOV A, MIN CJNE A, MIN_1, LOOP_1 CPL P3.0 ;-關 LOOP_1: MOV A, YEAR CJNE A, YEAR_11, LOOP;年比較 MOV A, MON CJNE A, MON_11, LOOP MOV A, DAY CJNE A , DAY_11,LOOP MOV A, HOUR CJNE A, HOUR_11,LOOP MOV A, MIN CJNE A, MIN_11, LOOP CPL P3.0 LJMP LOOP ;-年月日顯示中斷子程序 SHOW: PUSH PSW push ACC PUSH B PUSH 01H PUSH 02H PUSH 03H PUSH 04H MOV R2, #0FFH ;中斷掃描次數 TURN: MOV R1 , #33H MOV R4 , #01H MOV R3 , #03H NEXT_1: MOV A, R1 MOV B , #10 DIV AB SWAP A ORL A, B MOV P0, A MOV P2, R4 INC R1 RL A MOV R4 ,A LCALL DE5SM DJNZ R3, NEXT_1 DJNZ R2, TURN ;反復顯示一定時間后返回 POP 04H POP 03H POP 02H POP 01H POP B POP ACC POP PSW RETI ;-計數中斷服務子程序 TIME: PUSH PSW PUSH ACC PUSH B PUSH 06H MOV TH0 , #3CH;重裝計數 MOV TL0 , #0BH; DJNZ 20H, OUT ;轉到中斷跳出 pop 程序 MOV 20H, #0AH ; 重裝: 100*10=1000 ;-進位程序 INC SEC MOV R6, SEC ; CJNE R6, #60, OUT;比較 MOV SEC , #00 ; INC MIN MOV R6, MIN CJNE R6, #60, OUT MOV MIN , #00 INC HOUR MOV R6 , HOUR CJNE R6 , #25 , OUT MOV HOUR ,#00 INC DAY MOV R5, MON CJNE R5, #1, MON_22;是否 1 月、不是轉 2 月 MOV R5, DAY CJNE R5, #32, OUT ; 本月是否益出 INC MON MOV DAY,#1 LJMP OUT OUT: POP 06H POP B POP ACC POP PSW RETI MON_22: MOV R5, MON CJNE R5 , #2 , MON_33;是否 2 月、不是轉 3 月 MOV A, YEAR ;判斷是否瑞年 MOV B, #4 DIV AB MOV A , B JNZ OUT_1;不是則轉( A 不為零則轉) MOV R5 ,DAY CJNE R5,#30, OUT;如是瑞年、判斷是否到 29 天 INC MON MOV DAY ,#1 LJMP OUT OUT_1: MOV R5, DAY CJNE R5, #29, OUT ;平年二月判斷 INC MON MOV DAY , #1 LJMP OUT MON_33: MOV R5, MON CJNE R5, #3 , MON_44 MOV R5, DAY CJNE R5 , #32, OUT INC MON MOV DAY , #1 LJMP OUT MON_44: MOV R5, MON CJNE R5,#4, MON_55 MOV R5, DAY CJNE R5 ,#31,OUT INC MON MOV DAY , #1 LJMP OUT MON_55: MOV R5,MON CJNE R5,#5, MON_66 MOV R5,DAY CJNE R5,#32,OUT INC MON MOV DAY,#1 LJMP OUT MON_66: MOV R5, MON CJNE R5,#6, MON_77 MOV R5, DAY CJNE R5 ,#31,OUT INC MON MOV DAY , #1 LJMP OUT MON_77: MOV R5, MON CJNE R5,#7, MON_88 MOV R5, DAY CJNE R5,#32,L1 INC MON MOV DAY , #1 L1: LJMP OUT MON_88: MOV R5, MON CJNE R5,#8, MON_99 MOV R5, DAY CJNE R5 ,#32,L2 INC MON MOV DAY , #1 L2: LJMP OUT MON_99: MOV R5, MON CJNE R5,#9, MON_00 MOV R5,DAY CJNE R5 ,#31,L3 INC MON MOV DAY , #1 L3: LJMP OUT MON_00: MOV R5, MON CJNE R5,#10, MON_AA MOV R5, DAY CJNE R5 ,#32,L4 INC MON MOV DAY , #1 L4: LJMP OUT MON_AA: MOV R5, MON CJNE R5,#11, MON_BB MOV R5,DAY CJNE R5,#31,L5 INC MON MOV DAY , #1 L5: LJMP OUT MON_BB: MOV R5, DAY CJNE R5 ,#32,L6 INC YEAR MOV MON, #1 MOV DAY , #1 L6:LJMP OUT ;-按 SB2定時器年單元加 1 子程序 SB3_2: LJMP SHOW_2 ;二路沒編返回 SB3_3: LJMP SHOW_3 ;三路沒編返回 SB3_1: MOV A , YEAR_1 ; 調時年單元 MOV B ,#10 DIV AB SWAP A ORL A,B MOV P0, A MOV P2, #01H LCALL READ LCALL DE250SM CJNE A, 01H, SB3_1 CJNE A, #0FBH, KEY2_7 ;按 SB2 轉年調整 LJMP MON_111 ;按 SB1 往下調月單元 KEY2_7:CJNE A, #0FDH, SB3_1 INC YEAR_1 ; 1 路年單元加 1 MOV R5,YEAR_1 CJNE R5,#09,SB3_1 ;益出 MOV YEAR_1, #00H AJMP SB3_1 ; ;-月單元加 1 子程序 MON_111: MOV A , MON_1 ; 調時月單元顯示 MOV B ,#10 DIV AB SWAP A ORL A,B MOV P0, A MOV P2, #02H LCALL READ LCALL DE250SM CJNE A, 01H, MON_111 CJNE A, #0FBH, KEY2_8 ;按 SB2 轉月調整 LJMP DAY_111 KEY2_8: CJNE A,#0FDH,MON_111 INC MON_1 ;1 路月單元加 1 MOV R5,MON_1 CJNE R5,#13,MON_111;益出 MOV MON_1, #01H AJMP MON_111 ; 轉到月顯 ;_-日單元加 1 子程序 DAY_111: MOV A , DAY_1 ; 調時日單元顯示提示 MOV B ,#10 DIV AB SWAP A ORL A,B MOV P0, A MOV P2, #04H LCALL READ LCALL DE250SM CJNE A, 01H,DAY_111 CJNE A, #0FBH, KEY2_9 ;按 SB2 轉日調整 LJMP HOUR_111 KEY2_9: CJNE A,#0FDH,DAY_111 INC DAY_1 ;1 組日單元加 1 MOV R5, DAY_1 CJNE R5,#32,DAY_111;益出 MOV DAY_1, #01H AJMP DAY_111 ; 轉到日顯 ;-按 SB2 時單元加 1 子程序 HOUR_111: MOV A , HOUR_1 ; 調時時單元顯示提示 MOV B ,#10 DIV AB SWAP A ORL A,B MOV P0, A MOV P2, #01H LCALL READ LCALL DE250SM CJNE A, 01H,HOUR_111 CJNE A, #0FBH, KEY2_10 ; 按 SB2 轉時調整 LJMP MIN_111 KEY2_10:CJNE A,#0FDH,HOUR_111 INC HOUR_1 MOV R5,HOUR_1 CJNE R5,#24,HOUR_111;益出 MOV HOUR_1, #00H AJMP HOUR_111 ; 轉到時顯 ;-分單元加 1 子程序 MIN_111: MOV A , MIN_1 ; 調時分單元、并顯示提示 MOV B ,#10 DIV AB SWAP A ORL A,B MOV P0, A MOV P2, #02H LCALL READ LCALL DE250SM CJNE A, 01H,MIN_111 CJNE A, #0FBH, KEY2_11 ;按 SB2 轉分調整 AJMP OFF_CH ;按 SB3 往下調定時:關單元 KEY2_11: CJNE A, #0FDH, MIN_111 INC MIN_1 ;1 路分單元加 1 MOV R5, MIN_1 CJNE R5,#60,MIN_111;益處 MOV MIN_1, #00H AJMP MIN_111 ; 轉到分顯 年單元調整 OFF_CH: MOV A , YEAR_11 ; 調時年單元 MOV B ,#10 DIV AB SWAP A ORL A,B MOV P0, A MOV P2, #01H LCALL READ LCALL DE250SM CJNE A, 01H, OFF_CH CJNE A, #0FBH, KEY2_F7 ;按 SB2 轉年調整 LJMP MON_OFF ;按 SB1 往下調月單元 KEY2_F7:CJNE A, #0FDH, OFF_CH INC YEAR_11 ; 1 路年單元加 1 MOV R5,YEAR_11 CJNE R5,#09,OFF_CH ;益出 MOV YEAR_11, #00H AJMP OFF_CH ; ;-月單元加 1 子程序 MON_OFF: MOV A , MON_11 ; 調時月單元顯示 MOV B ,#10 DIV AB SWAP A ORL A,B MOV P0, A MOV P2, #02H LCALL READ LCALL DE250SM CJNE A, 01H, MON_OFF CJNE A, #0FBH, KEY2_F8 ;按 SB2 轉月調整 LJMP DAY_OFF KEY2_F8: CJNE A,#0FDH,MON_OFF INC MON_11 ;1 路月單元加 1 MOV R5,MON_11 CJNE R5,#13,MON_OFF;益出 MOV MON_11, #01H AJMP MON_OFF ; 轉到月顯 ;_-日單元加 1 子程序 DAY_OFF: MOV A , DAY_11 ; 調時日單元顯示提示 MOV B ,#10 DIV AB SWAP A ORL A,B MOV P0, A MOV P2, #04H LCALL READ LCALL DE250SM CJNE A, 01H,DAY_OFF CJNE A, #0FBH, KEY2_F9 ;按 SB2 轉日調 整 LJMP HOUR_OFF KEY2_F9: CJNE A,#0FDH,DAY_OFF INC DAY_11 ;1 組日單元加 1 MOV R5, DAY_11 CJNE R5,#32,DAY_OFF;益出 MOV DAY_11, #01H AJMP DAY_OFF ; 轉到日顯 ;-按 SB2 時單元加 1 子程序 HOUR_OFF: MOV A , HOUR_11 ; 調時時單元顯示提示 MOV B ,#10 DIV AB SWAP A ORL A,B MOV P0, A MOV P2, #01H LCALL READ LCALL DE250SM CJNE A, 01H,HOUR_OFF CJNE A, #0FBH, KEY2_F10 ; 按 SB2 轉時調整 LJMP MIN_OFF KEY2_F10:CJNE A,#0FDH,HOUR_OFF INC HOUR_11 MOV R5,HOUR_11 CJNE R5,#24,HOUR_OFF;益出 MOV HOUR_11, #00H AJMP HOUR_OFF ; 轉到時顯 ;-分單元加 1 子程序 MIN_OFF: MOV A , MIN_11 ; 調時分單元、并顯示提示 MOV B ,#10 DIV AB SWAP A ORL A,B MOV P0, A MOV P2, #02H LCALL READ LCALL DE250SM CJNE A, 01H,MIN_OFF CJNE A, #0FBH, KEY2_F11 ;按 SB2 轉分調整 LJMP ON_1 ;按 SB3 往下調定時:開與關 KEY2_F11: CJNE A, #0FDH, MIN_OFF INC MIN_11 ;1 路分單元加 1 MOV R5, MIN_11 CJNE R5,#60,MIN_OFF;益處 MOV MIN_11, #00H LJMP MIN_OFF ; 轉到分顯 ;-開、關定時 ON_1:CJNE A, #0FBH, MIN_OFF K1: MOV A, #88H MOV R7, A MOV P0, A MOV P2, #0FFH;三組都顯示開 LCALL READ LCALL DE250SM CJNE A, 01H, ON_1;去抖后比較 CJNE A, #0FBH,KEY2_12 ;按 SB2 轉關 LJMP OUT_A ;按 SB3 調出、處于開 狀態(tài) KEY2_12: CJNE A, #0FDH, K1 k2: MOV A, #00H; 顯示 0 關 MOV R7, A MOV P0, A MOV P2, #0FFH; LCALL READ LCALL DE250SM CJNE A, 01H, K2;去抖后比較 CJNE A, #0FBH,KEY2_13 ;按 SB2 轉開 LJMP OUT_A ;SB3 調出、處關狀態(tài) KEY2_13: CJNE A, #0FDH, K2 ; 比較按了沒 LJMP K1 ; 按了 SB2、轉開 OUT_A: POP 00H POP B POP ACC POP PSW RETI ;_-讀取按鍵程序 READ:MOV A , P1;讀取按鍵 MOV R1, A LCALL DE10MS MOV A, P1 RET ;_-延時程序 DE5SM:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 承包工廠飯店協(xié)議合同
- 廣告保密合同協(xié)議范本
- 小項目發(fā)包合同協(xié)議書
- 工廠租賃續(xù)租合同范本
- 小學職工聘用合同范本
- 學員與駕校簽合同范本
- 學校配送食材合同范本
- 年會禮品采購合同范本
- 戶外廣告工程合同范本
- 房東合同水電續(xù)租協(xié)議
- 2025年安吉縣輔警招聘考試真題匯編附答案
- 物業(yè)管理條例實施細則全文
- 電化學儲能技術發(fā)展與多元應用
- 2026年安全員之C證(專職安全員)考試題庫500道及完整答案【奪冠系列】
- 課堂翻轉教學效果調查問卷模板
- 銅陵市郊區(qū)2025年網格員筆試真題及答案解析
- 掩體構筑與偽裝課件
- 2026年廣東省春季高考模擬數學試卷試題(含答案解析)
- 微帶貼片天線基礎知識
- 部編版初三化學上冊期末真題試題含解析及答案
- GB/T 46561-2025能源管理體系能源管理體系審核及認證機構要求
評論
0/150
提交評論