




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第6章 中斷系統與定時計數器模塊 中斷是51單片機程序運行的一種方式。計算機在執行正常程序的過程中,當出現某些緊急情況、異常事件或其他請求時,處理器暫時中斷正在運行的程序,轉而執行緊急情況或其他請求的操作處理。處理完成以后,處理器回到被中斷程序的斷點處繼續執行,這個過程稱為中斷。 在CPU與外設之間的傳送數據時,根據外設本身工作速度的差異,通常有四種不同的控制方式:無條件傳送方式、查詢方式、中斷方式和DMA方式。1、中斷定義和作用、中斷定義和作用6.1 中斷的概念及中斷系統中斷的概念及中斷系統 外設要求CPU為其服務,可在CPU工作的中間打斷它,要求CPU及時服務的一種數據交換方式。優點:外設
2、服務及時,CPU效率高,可用于實時控制中缺點:多級中斷發生時易丟數據2、中斷源、中斷源:引起中斷的原因或是能發出中斷申請的來源。(1)外部設備中斷源 外部設備主要為微型計算機輸入和輸出數據,故它是最原始和最廣泛的中斷源。(2)控制對象中斷源在計算機用作實時控制時,被控對象常常被用作中斷源,用于產生中斷請求信號,要求CPU及時采集系統的控制參量、越限參數以及要求發送和接收的數據。(3)故障中斷源故障中斷源是產生故障信息的源泉,把它作為中斷源是要CPU以中斷方式對已發生的故障進行分析處理。(4)定時脈沖中斷源定時脈沖中斷源又稱為定時器中斷源,實際上是一種定時脈沖電路或定時器。3、中斷的分類:、中斷
3、的分類:1)屏蔽中斷:有時直接稱為中斷,是最常見的一種中斷方式。 “屏蔽”實際是一種工作方式,指可以通過指令來設置使CPU或者允許接受屏蔽的中斷申請,或者不接受這種申請。 屏蔽中斷是一種CPU可用指令將中斷屏蔽,從而不與受理的中斷申請。 圖6-1-1 Z80 CPU對和中斷的輸入2)非屏蔽中斷:是CPU必須要處理的一種中斷,并不可以用指令將這種中斷申請屏蔽掉。 一般一些緊急的情況,如掉電中斷申請,就可安排這種中斷方式,以保證緊急情況下一定能得到處理。 并不是所有的微處理器都有這種中斷,MCS-51的中斷系統就沒有非屏蔽中斷。 3)軟件中斷:可以由程序員編寫相應的中斷指令使CPU響應中斷,CPU
4、只要執行這種指令就可以轉入相應中斷服務程序執行,以完成相應的中斷功能。4、中斷嵌套 中斷嵌套的條件:只有中斷級別比已經在服務的中斷源級別更高的中斷源,才可以打斷現在的中斷服務。 中斷嵌套深度:中斷過程再嵌套中斷的層次,是中斷系統的性能指標之一5中斷系統的功能中斷系統的功能通常有如下幾條:(1)進行中斷優先權排隊(2)實現中斷嵌套(3)自動響應中斷(4)實現中斷返回6.1.2 中斷系統1、MCS-51的中斷源和中斷標志 引起中斷原因的設備或部件,或是發出中斷請求信號的源泉,稱為中斷源。51單片機51子系列具有5個中斷源(52子系列有6個中斷源),分別是外部中斷兩個、定時中斷兩個和串行中斷一個,即
5、:外部中斷0-INT0,由P3.2提供,外部中斷1INT1,由P3.3提供,T0溢出中斷; 由片內定時/計數器0提供T1溢出中斷; 由片內定時/計數器1提供串行口中斷RI/TI; 由片內串行口提供 8051系統在檢測或收到申請以后,會將檢測的結果存放于TCON和SCON寄存器中,即使某些它們的中斷標志位置位。 中斷標志位的設置由硬件自動完成,只要檢測到中斷申請,響應的標志位就會置位。然后8051系統就通過檢測這些中斷標志位來決定是否有相應的中斷申請。若某個中斷位被置位,就認為存在著相應的中斷申請,需要進行中斷響應。 注意:在中斷處理結束之后,必須使中斷標志復位,以便可以接收新的中斷申請,但復位
6、并不都是自動完成的,使用者必須用指令來清除不能自動復位的中斷標志。 TCON寄存器可以用來存放外部中斷和定時/計數器中斷的中斷標志;可以用來選擇是外部中斷請求是電平方式還是邊沿方式;還可作為定時器控制寄存器。IE0:為外部中斷INT0的請求標志位。當INT0引腳上出現中斷請求信號(低電平或脈沖下降沿)時,硬件自動將IE0置“1”(硬件復位),產生中斷請求標志。IT0:外部中斷INT0觸發方式控制位。由軟件來置“1”或清“0”,以控制外部中斷INT0的觸發方式。 當IT0=1 時,外部中斷INT0為邊沿觸發。 即外部中斷INT0出現下降沿時, 觸發IE0,使其為“1”; 當IT0=0時,外部中斷
7、INT0為電平觸發。即外部中斷INT0出現低電平時,觸發IE0,使其為“1”。IT1:選擇外部中斷請求1為邊沿觸發方式的控制位, 與IT0類似。IE1:外部邊沿觸發中斷1請求標志,和IE0類似。 外部中斷輸入信號和中斷申請標志IEx及外部中斷申 請觸發方式控制位ITx三者關系如圖6-2所示。 TR0:定時/計數器0的運行控制位,由軟件置位/清除來控制其開啟/關閉。 TF0:定時計數器0的溢出中斷申請標志,在啟動T0計數后,定時計數器0從初值開始加1計數,當最高位產生溢出時,由硬件置位TF0,向CPU申請中斷,CPU響應TF0中斷時清零該標志位,TF0也可以用軟件清零(查詢方式)。 TR1:定時
8、計數器1的運行控制位。由軟件置位清除來控制其開啟關閉。 TF1:定時計數器1的溢出中斷申請標志,與TF0類似。SCON的低二位鎖存串行口的接收中斷和發送中斷標志(80C51復位后,SCON被清0), TI或者RI被置位,CPU就認為存在串行口中斷申請。TI:串行口發送中斷標志,當發送完一幀數據后置位,必須用軟件清除必須用軟件清除;RI:串行口接受中斷標志,當接收完一幀數據后置位,必須用軟件清除。必須用軟件清除。2、 中斷的控制 MCS-51可通過指令使IE的某些位置“1”或者置“0”來控制中斷的開和關。 IE在特殊功能寄存器中,字節地址A8H,位地址分別是A8HAFH。IE對于中斷的開放或關閉
9、實現兩級控制,即:控制CPU對中斷源總的開放或禁止,以及每個中斷源是否允許中斷。其格式如下圖所示:0: 關 INT 中 斷01: 開 INT 中 斷00: 關 T 中 斷1: 開 T 中 斷001: 開 T 中 斷0: 關 T 中 斷0: 關 INT 中 斷1: 開 INT 中 斷11110: 關 T 中 斷1: 開 T 中 斷221: 開 所 有 中 斷0: 關 所 有 中 斷1: 開 串 行 口 中 斷0: 關 串 行 口 中 斷位 地 址IEEAAFADETACESABETAAEXA9ETA8EX00112CPU中斷允許控制位串行口中斷允許位T1的溢出中斷允許位T0的溢出中斷允許位外部中
10、斷1中斷允許位外部中斷0中斷允許位中斷優先級別由中斷優先級寄存器IP來管理。 串行口中斷優先級控制位定時/計數器中斷優先級控制位外部中斷優先級控制位外部中斷優先級控制位定時/計數器中斷優先級控制位單片機復位后,IE和IP均被清0。用戶可根據自己的需要來置位或清零。整個中斷系統結構如圖6-4所示。80C51單片機對中斷優先級的處理原則如下。(1)不同級的中斷源同時申請中斷時,首先響應優先級別最高的中斷請求。(2)正在進行的低優先級中斷服務,能被高優先級中斷請求所中斷。(3)正在進行的中斷過程不能被新的同級或低優先級的中斷請求中斷。(4)同一級的中斷源同時申請中斷時:事先預定。(5)對于同一優先級
11、,單片機對其中斷次序如表6-5所示。中 斷 源中 斷 標 志自然優先級順序外部中斷0IE0高定時/計數器0TF0外部中斷1IE1定時器/計數器1TF1串行口RI或TI低3. 中斷響應中斷響應 1)中斷響應的條件:)中斷響應的條件: 無同級或高級正在服務。無同級或高級正在服務。 現行指令執行到最后一個機器周期且已結束。現行指令執行到最后一個機器周期且已結束。 若現行指令為若現行指令為RETI或需訪問特殊功能寄存器或需訪問特殊功能寄存器IE或或IP的指的指令時,執行完該指令且其緊接著的指令也已執行完。令時,執行完該指令且其緊接著的指令也已執行完。 2)CPU不是在任何情況下都對中斷請求予以響應,不
12、是在任何情況下都對中斷請求予以響應,而且不同的情況下對中斷響應的時間也是不同的。而且不同的情況下對中斷響應的時間也是不同的。 若系統中只有一個中斷源,則響應時間在若系統中只有一個中斷源,則響應時間在38個個機器周期之間。機器周期之間。3)中斷響應任務 中斷系統硬件自動完成下列任務,以實現響應:將相應觸發器置1(以阻斷后來的同級或低級的中斷請求)。執行一條硬件LCALL指令,即把程序計數器PC的內容壓入堆棧保護,再將相應的中斷服務的入口地址送入。 80C51中斷源的中斷服務入口地址是由硬件設計人員規定好的,如下表6-6所示。在編寫中斷服務程序時應注意如下問題。(1)在中斷服務程序中,用戶應注意用
13、軟件保護現場,以免中斷返回后丟失原寄存器、累加器中的信息。(2)若要在執行當前中斷程序時禁止更高優先級中斷,可以先用軟件關閉CPU中斷或禁止某中斷源中斷,在中斷返回前再開放中斷。4、中斷響應的時間響應時間響應時間-從查詢中斷請求標志位到轉向中斷服務入口地址所需的機器周期數。中斷的響應時間在一般情況下不考慮,但在某些精確的定時場合,則需對基本時間進行估計,以保證準確的定時控制。(1)最快響應時間(最短時間) 以外部中斷的電平觸發為最快。 當CPU查詢中斷標志的周期正好是執行一條指令的最后一個機器周期,則不需等待就可進行響應,那么,從查詢中斷請求信號到中斷服務程序需要三個機器周期: 1個周期(查詢
14、)2個周期(長調用LCALL)(2)最長時間 若當前指令是RET、RETI和IP、IE指令,緊接著下一條是乘除指令(周期數最長的指令)發生, 則最長為8個周期: 2個周期執行當前指令(其中含有1個周期查詢)4個周期乘除指令2個周期長調用8個周期。 一般可認為響應時間在三至八個機器周期之間。 若來的是同級或者低級中斷的申請,那么就得等當前的中斷結束后才能響應,那么時間就更長了。5、 中斷請求的撤除 來了申請,就得響應,響應時TCON和SCON的相應位置1,響應之后,就得撤除,否則連續響應。中斷響應后, 可通過硬件使標志位TF0和TF1自動復0: 如定時器0,當給它裝進一個數后,定時器0自動加1計
15、數,溢出后,TF0=1,產生中斷請求,CPU接到這個請求后,轉去服務前,從硬件上時它們自動歸零。也可以用戶自己加上:CLR TF0對于外中斷IE0、IE1,響應后,有的自動歸零,有的不能歸零: 8051的外部中斷有兩種觸發方式:電平和邊沿方式。則:脈沖邊沿型:一見到有脈沖,CPU就將它們寫成1,響應后,脈沖邊沿也結束了,將它們改寫成0,問題不大;低電平型的,響應后改寫成0,由于單片機沒有信號通知外設結束中斷申請,外部低電平并不撤消,又填為1,相當于又來了新的中斷申請,所以必須由用戶自行解決:3. 對于串行口的中斷申請標志TI和RI,中斷系統不予自動撤除,因為這兩個標志在中斷響應之后還要用作判斷
16、是接收還是發送操作的標志位,所以在使用完畢后用指令來使之復位,6、MCS-51中斷系統的初始化MCS-51 中斷系統由若干個SFR管理,故中斷系統的初始化就是對這些寄存器的各控制位的賦值,以完成如下操作:開中斷確定各中斷源的優先級若為外部中斷,則規定是電平觸發還是邊沿中斷例:規定外部中斷0為電平方式,高優先級,其中斷有關的初始化程序為: SETB EA SETBEX0 SETBPX0CLRIT0如果用字節操作指令:MOVIE,#81HORLIP,#01HANLTCON,#0FEH7.中斷服務函數在C51中,編譯器提供定義特定8051系列成員的寄存器頭文件。8051的頭文件為reg51.h。中斷
17、的C語言編程可如下所示:# include /*52單片機頭文件,一般不要改動,里面包含特殊功能寄存器的定義*/void service_int1() interrupt2 當有中斷請求時,程序運行轉移到標記有“interrupt”關鍵字的函數內進行相關中斷的處理。中斷請求的處理過程是以函數的方式來實現的,即中斷服務函數,它的格式如下:void 函數名(void) interrupt 中斷號 using 工作組中斷服務函數內容; P0.08031 P0.7 ALED0 Q0 D7 Q4 鎖 存 器 Q5 Q6 Q7G 8 Y0譯碼器 Y15 打印機DB0DB78# include# inclu
18、de /*可使用其中定義的宏來訪問絕對地址,包括CBYTE、XBYTE、PWORD、DBYTE、CWORD、XWORD、PBYTE、DWORD*/# define uchar unsigned char /*將unsigned char定義為uchar,簡化輸寫,提高編程速度*/# define PP5 XBYTE0 x00F0 /*打印機地址*/void printw(uchar *p) interrupt0 /*打印字符串中斷函數*/ p+;while(*p != /0 ) PP5=*p; /*輸出字符*/p+; /*指向下一個字符*/ viod main(void) uchar idat
19、a prn=”WELCOM”; /*設一測試用字符串*/IP=0 x01; /*令INT0為高優先級*/ IE=0 x84; /*開INT0中斷,CPU開中斷*/ if(*p != /0 ) PP5=*p; /*輸出第一個字符*/6.2 定時/計數器 在單片機應用系統中,常常會有定時需求,如定時輸出、定時檢測、定時掃描等;也經常對外部事件進行計數。80C51單片機片內集成有兩個可編程的定時/計數器:T0和T1。它們既可以工作于定時模式,也可以工作與外部事件技術模式。此外,T1還可以作為串行口的波特率發生器。 1. 定時/計數器的基本結構2. 定時/計數器的工作原理 當定時/計數器作為定時器工作
20、時,計數器的加1信號由振蕩器的12分頻信號產生,即每過一個機器周期,計數器加1,直至計滿溢出為止。顯然,定時器的定時時間與系統的振蕩頻率有關。因為一個機器周期等于12個振蕩周期,所以計數頻率fcfosc/12。例如,當晶振為12MHz時,則計數周期為1s,這是最短的定時周期。若要改變定時時間,則需通過改變定時器的初值及設置合適的工作方式來實現。與狀態寄存器2 2)C/TC/T:定時器:定時器/ /計數器方式選擇位計數器方式選擇位C/T=0C/T=0,設置為定時方式,對機器周期進行計數;,設置為定時方式,對機器周期進行計數;C/T=1C/T=1,設定為計數方式,對外部信號進行計數,外部信號,設定
21、為計數方式,對外部信號進行計數,外部信號接至接至T0T0(P3.4P3.4)或)或T1T1(P3.5P3.5)引腳。)引腳。3) GATE:3) GATE:門控位門控位GATE=0GATE=0時,只要用軟件使時,只要用軟件使TR0TR0(或(或TR1TR1)置)置1 1就能啟動定時器就能啟動定時器T0T0(或(或T1T1););GATE=1GATE=1時,只有在時,只有在INT0INT0(或(或INT1INT1)引腳為高電平的情況下,)引腳為高電平的情況下,且由軟件使且由軟件使TR0TR0(或(或TR1TR1)置)置1 1時,才能啟動定時器時,才能啟動定時器T0T0(或(或T1T1)工)工作。
22、作。1、 方式013位計數方式 定時器/計數器工作在方式0時,16位計數器只用了13位,即TH的高8位和TL的低5位,組成一個13位定時器/計數器。2、 工作方式1:16位計數方式定時器工作方式1與工作方式0類同,差別在于其中的計數器的位數。工作方式0以13位計數器參與計數,工作方式1則以16位計數器參與計數。 注意:當定時器T0工作在方式3時,定時器T1只能工作在方式02,并且工作在不需要中斷的場合。6.2.3 定時/計數器的初始設置 1. 初值計算80C51定時/計數初值X(也稱時間常數)計算公式: X2n定時時間機器周期時間其中,n與工作方式有關。方式0時,n13;方式1時,n16;方式
23、2時,n8;方式3時,n8。機器周期時間與主振頻率有關。因此,機器周期時間12/fosc。2. 定時計數器應用步驟(1)確定工作方式,寫入TMOD定時/計數器工作方式寄存器。(2)計算機定時/計數初值,裝入THx及TLx。(3)置位TRx以啟動計數。(4)置位ETx以允許定時/計數器x中斷(不需要可省略)。(5)置位EA以使CPU開放中斷,即接收中斷信號。3. 定時/計數器應用舉例【例】設T0選擇定時工作方式0,定時時間為1ms,晶振頻率fosc6MHz。試確定T0初值,并編程實現單片機的P1.2端口產生周期為2ms的方波。解:工作方式0為13位定時/計數器,最大計數值為2138192。晶振頻
24、率fosc6MHz時,每個機器周期為2s,現需定時1ms,則計數值為1ms/2s500,初始值X8 1925007692,轉換成二進制數為1111000001100,即:T0的高8位(TH0):11110000B0F0HT0的低5位(TL0):01100B0CH要產生周期為2ms的方波,只需P1.2端口每隔1ms取反一次,即會產生高低高低的電平,其控制程序如下: ORG0000H JMP START ORG000BHMOVTL0,#0CH ;重新裝入初始值,保證每次定時時間相同 MOVTH0,#0F0H CPL P1.0 ;取反,以輸出方波RETISTART:MOVTMOD,#00H ;T0設
25、為定時工作方式0MOVTL0,#0CH ;置定時初始值 MOVTH0,#0F0H SETBET0 ;允許T0溢出中斷 SETBEA SETBTR0 ;啟動定時器T0SJMP$ ;等待 END 【例】用定時器T1產生一個50Hz的方波,由P1.1輸出,已知fosc12MHz。解:方波周期1/50Hz0.02s20ms,則只需定時10ms即可。而機器周期為1s,計數值為10ms/1s10 000。所以,T1的初始值X65 53610 00055 536D8F0H。程序如下:ORG 00HJMP SRARTORG 50HSTART:MOVTMOD,#10H ;T1設為定時工作方式1SETBTR1 ;
26、啟動定時器T1LOOP: MOVTH1,#0D8H ;置定時初始值MOVTL1,#0F0HJNB TF1,$ ;沒有溢出,等待CLR TF1 ;產生溢出,清標志位CPL P1.1 SJMP LOOPEND【例】當P3.4引腳上的電平發生負跳變時,從P1.0輸出一個500s的同步脈沖,請編程實現該功能。假設單片機的晶振頻率為6MHz。解:首先對定時/計數的工作方式進行選擇。開始時T0應為計數工作方式2,對外部事件進行計數。當P3.4引腳上的電平發生負跳變時,T0計數器加1,溢出標志TF0置1;然后改變T0為定時工作方式,定時時間為500s,并使P1.0輸出由高電平變為低電平。T0定時時間到,使P
27、1.0引腳恢復輸出高電平,同時T0又恢復外部事件計數方式。其波形圖如圖6-12所示。 接下來計算初始值。T0開始為計數工作方式2,要求加1后計數器溢出,其初始值應為0FFH。T0為定時工作方式2時,要求定時500s,由于晶振頻率為6MHz,機器周期為2s,故計數值為250,其初始值應設置為X28250606H。程序如下:ORG0000HJMP STARTORG 0050HSTART:MOV TMOD,#06H ;T0設置為計數方式2MOV TH0,#0FFH ;賦計數初始值MOV TL0,#0FFHSETB TR0 ;啟動T0計數LOOP1:JBC TF0,NEXT;查詢T0溢出中斷標志SJM
28、P LOOP1 ;繼續等待T0溢出中斷NEXT:CLR TR0 ;停止計數MOV TMOD,#02H ;T0重新設為定時方式2MOV TH0,#06H ;賦定時初始值MOV TL0,#06HCLR P1.0 ;P1.0改為低電平SETB TR0 ;啟動T0定時LOOP2: JBC TF0,NEXT1 ;查詢T0溢出中斷標志SJMP LOOP2 ;繼續等待T0溢出中斷NEXT1: SETB P1.0 ;P1.0恢復高電平CLR TR0 ;停止定時SJMPSTARTEND【例】試編寫C程序,以不斷地從P1.7引腳取得數據的單個位,并將它發送到P1.0,同時在引腳P2.5上產生周期為200us的方波
29、。假設XTAL11.0592MHz。解:周期為200us的方波應為每100us變化一次信號的幅度,故定時值為100us。在時鐘頻率為11.0592MHz的情況下,可使用定時器0模式2(自動重新加載)。按照計算定時器初值的公式,計算過程為:81002 216411.0592)nX定時時間 機器周期時間12 (1/ 或A4HC語言編程如下:# includesbitSW= P1 7;sbitIND= P1 0;sbitWAVE= P2 5;voidtimer0(void)interrupt1WAVE = WAVE; /1號為定時器0中斷;定時時間到后,取反,輸出方波。voidmain()SW = 1;/輸入開關狀態TMOD = 0 x02; /對定時器0設置為定時方式2TH0 = 0 xA4;/賦定時器0的初值TL0 = 0 xA4;IE = 0 x82;/開中斷TR0 = 1;/啟動T0定時While(1)IND = SW; /輸出開關狀態【例】試編寫C程序,以在主程序中不斷地從P1.7引腳取得數據的單個位,并將它發送到P1.0,同時要求實現:(1)在引腳P2.5上產生周期為200us的方波(2)將字母“A”發送到串行端口。使用定時器0產生方波,假設XTAL11.0592MHz。使用9600波特率。解:使用定時器0模式2(自動重新加載),初值計算與上例相同。C語言編程如下:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 邢臺醫學高等專科學校《國民經濟核算》2023-2024學年第二學期期末試卷
- 2025-2030年中國afc自動售票檢票系統行業動態分析及應用前景預測研究報告
- 日間手術麻醉指南課件
- 甘肅省蘭州市城關區天慶實驗中學2023-2024學年中考數學考前最后一卷含解析
- 2024-2025新入職工職前安全培訓考試試題帶答案(基礎題)
- 2025企業安全管理人員安全培訓考試試題及參考答案【模擬題】
- 2025年公司及項目部安全培訓考試試題(答案)
- 2024-2025企業安全管理人員安全培訓考試試題(下載)
- 2025年公司、項目部、各個班組三級安全培訓考試試題考點精練
- 2025員工安全培訓考試試題答案能力提升
- 紅色研學策劃方案(2篇)
- 個人形象品牌代言協議
- 中職技能大賽“導游服務”賽項旅游政策與法規及旅游熱點問題題庫(含答案)
- 2018年西藏中考化學真題及答案
- 妊娠期糖尿病產后護理
- SJ-T 11841.2.2-2022 顯示系統視覺舒適度 第2-2部分:平板顯示-藍光測量方法
- 代收代付協議書模板(2篇)
- 政務新聞攝影技巧培訓課件
- 2024年放射工作人員放射防護培訓考試題及答案
- 《第七天》讀書分享交流會
- 老人疫苗接種健康知識講座
評論
0/150
提交評論