




免費(fèi)預(yù)覽已結(jié)束,剩余70頁可下載查看
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
Scream8051andtool Microprocessor 微處理機(jī)系統(tǒng)為控制 監(jiān)視或輔助某個設(shè)備 機(jī)器或甚至工廠運(yùn)作的裝置 微處理器名稱的由來 因?yàn)楫?dāng)初各大晶片廠之製程 已經(jīng)進(jìn)入了1微米的階段 用微米製程所產(chǎn)製出來的處理器晶片 廠商就會在產(chǎn)品名稱上用 微 字 在1971年 由Intel公司推出有史以來第一顆四位元微處理器4004 圖片來源 Intel官方網(wǎng)頁 一般簡單的微處理器架構(gòu)包含三個主要元件 輸入 輸出單元 中央處理單元 記憶體 輸入單元 InputUnit 透過外部裝置將的資料送到CPU作運(yùn)算 輸出單元 OutputUnit 將CPU運(yùn)算的結(jié)果送往外部裝置 中央處理單元 CenterProcessingUnit 簡稱CPU 籠統(tǒng)來說是一個可以執(zhí)行程式的邏輯機(jī)器 包含ALU和CU 算術(shù)邏輯單元 ArithmeticLogicUnit 簡稱ALU 在CPU中用於執(zhí)行算術(shù)運(yùn)算和邏輯運(yùn)算 控制單元 ControlUnit 簡稱CU 在CPU中負(fù)責(zé)指揮各元件的運(yùn)作 解碼指令後執(zhí)行該指令 使微電腦可以依照指令完成工作 記憶體單元 MemoryUnit 儲存輸入單元傳來的資料 或者CPU處理完的資料 而記憶體根據(jù)存取的方式不同可分為唯讀記憶體 ReadOnlyMemory 簡稱ROM 和隨機(jī)存取記憶體 RandomAccessMemory 簡稱RAM ROM由名稱可知只能被讀取但不能寫入 但不會因?yàn)閿嚯婈P(guān)機(jī)而導(dǎo)致資料流失 RAM可被讀取和寫入 但裡面儲存的資料會因?yàn)殛P(guān)機(jī)斷電而流失 8051介紹 8051為Intel公司所推出的微處理器 八位元的單晶片微電腦 屬於MCS 51單晶片的一種 圖片來源 wikihttp zh wikipedia org wiki Intel 8051 8051microarchitecture 圖片來源 wikihttp zh wikipedia org wiki Intel 8051 8051Importantfeatures 80518 bitALU 累加器 accumulator 暫存器 16 bitprogramcounter PC datapointer DPTR 8 bitprogramstatusword PSW stackpointer SP 4KB程式記憶體 可擴(kuò)充至64KB 128Bytes資料記憶體 可擴(kuò)充至64KB 四個8 bitport組成的32 bitI OpinsP0 32組16 bit計時器T0 T15個中斷源INT0 INT1 T0 T1 RXD TXD 1組全雙工串列埠 UART 8051BasicRegisters 以下是針對幾個比較簡單且常用到的8051暫存器作介紹 Accumulator A 8 bit 所有8051的暫存器裡最常被用到的 A正如其名 累計多個指令執(zhí)行完後的結(jié)果 例如5 8 其結(jié)果13最後會存到A裡 程式設(shè)計者之後可以再拿去做其他運(yùn)算或者存到別的位值 B8 bit B的作用和A有點(diǎn)類似 不過只會出現(xiàn)在兩個指令 MULAB和DIVAB 對A做乘除 將乘數(shù)或除數(shù)存到B再執(zhí)行以上的指令 例如A 0 x80 B 0 x70 相乘結(jié)果為0 x3800 但是之前提到AB皆為8 bit暫存器 所以結(jié)果分成upper byteB和lower byteA B 0 x38 A 0 x00 除法也是類似 只是結(jié)果商存在A 餘數(shù)存在B Rn也有人直接稱為R 一共八個 分別為R0 R1 R7 每個皆為8 bit 可以把它想成輔助A的暫存器 譬如之前提到的例子 5 8 原本的數(shù)字5可能存在A裡 這需要另一個暫存器保存8 假設(shè)用R6 則整個指令可以寫成 ADDA R6 Rx也是用來暫時存放資料的 接下來舉一個更複雜的例子會更容易看出Rx暫存器的重要性 R1 R2 R3 R4 其8051指令如下 MOVA R3 先處理R3 R4這部分 把R3放到AADDA R4 運(yùn)算A R4 結(jié)果存在AMOVR5 A 將R3 R4的結(jié)果先暫存到R5MOVA R1 再來處理R1 R2的部分 把R1存到AADDA R2 運(yùn)算A R2 結(jié)果存在ASUBA R5 最後運(yùn)算A R5 結(jié)果存在A從範(fàn)例可以看出 用了R5作為暫時存放R3 R4的結(jié)果 運(yùn)算 R1 R2 R3 R4 或許有更有效的指令可以表示 但此範(fàn)例主要是表示利用Rx作為暫時存放資料的變數(shù) DataPointer DPTR 唯一一個使用者可以自由存取的16 bit暫存器 用來指向一筆資料的位值 通常是用於存取ExternalMemory數(shù)值 8051要存取ExternalMemory時會先去查看DPTR 再根據(jù)DPTR指向的位子前去ExternalMemory作存取 StackPointer SP 指向stack中下一筆要被移除的資料的位子 用更明確的方式來說 當(dāng)8051push一筆資料到stack SP會先 1再將資料存到SP指到的地方 當(dāng)8051從stackpop一筆資料 先回傳SP指向的資料再使SP 1 SP會直接被以下指令改變 PUSH POP ACALL LCALL RET RETI ProgramCounter PC 16 bit 指向下一個指令的位值 也就是ProgramMemory的位值 初始化時為零 並隨著指令的執(zhí)行而增加 不過並不是每執(zhí)行完一個指令就加1 因?yàn)橛行┲噶钚枰? 3Byte 在那情況下PC會加2 3而不是1 PC並不是一個公開的暫存器 所以無法直接對其作存取 8051Memory 對於撰寫8051程式而言 了解其記憶體架構(gòu)可以讓程式執(zhí)行的更有效率 8051的記憶體是Harvard架構(gòu) 也就是程式和資料是用相同位值 address 但位於不同記憶體類別裡 8051裡主要區(qū)分成以下記憶體類別 Programmemory on chipmemory Externaldatamemory 圖片來源 8051ProgramMemory Programmemory 也稱為Codememory 存放binarycode和constants的空間 所以通常是唯讀的記憶體 ROM Programmemory的大小可能只有on chipROM4KB 也可以外加ExternalROM延伸到64KB 或者完全為off chipExternalROM64KB 裡面的參數(shù)可以透過指令MOVC來取得 8051On chipMemory on chipmemory 256Bytes 包含register Bitmemory等 位於on chip的揮發(fā)性記體 所以存取速度也是最快的 8051reset後其儲存的資料也會被清空 主要存放常用的變數(shù)和指標(biāo) compiler一般用於基本的資料運(yùn)算和stack存放的區(qū)域 on chipmemory是由InternalRAM和SFR兩部分組成的 8051InternalRAM InternalRAM 位於on chipmemory的前128Bytes 位值0 x00 0 x7F 包含四組registerbank 剩下的可被使用者直接使用 或者被compiler安排為stack的空間 Registerbank0 3可以藉由PSW暫存器的RB0和RB1選擇使用哪一組 同一時間只有一組為啟動狀態(tài) 由下圖可知每組registerbank皆包含8個8 bit暫存器 R0 R7 也就是之前介紹的Rn 8051reset時預(yù)設(shè)使用bank0 由PWS和暫存器編號就可以找到對應(yīng)的位值 例如指定bank0時ADDA R4就等於ADDA 04h 指定bank2時就是ADDA 14h 8051SFR SFR SpecialFunctionRegister 位於on chipmemory的後128Bytes 位值0 x80 0 xFF 8051裡除了之前提到的register0 7以外還有其他register 譬如說registerA和B主要是被用於算數(shù)邏輯運(yùn)算 SP儲存stack的指標(biāo)等 而這些register在SFR裡都會有一個對應(yīng)的位值 換一個角度來說SFR儲存的數(shù)值主要是用來控制8051指令的行為 會因?yàn)?051指令而改變 也可以和InternalRAM一樣被使用者直接存取 不過並非所有位值皆有定義一個SFR 對未定義的SFR位值做存取會導(dǎo)致無法預(yù)測的結(jié)果 圖片來源 8051xRAM Externaldatamemory 64KB的off chipmemory 和前面on chipmemory相比存取速度較慢 不過空間大的多 在高階程式中如果需求的memory過大 compiler就會使用到 8051AddressingMode CPU可以存取資料的方式有很多種 資料可能在暫存器 記憶體 或者直接指定 存取資料的方式就是定址模式 8051有以下幾個定址模式 ImmediateAddressingMOVA 20hDirectAddressingMOVA 30hIndirectAddressingMOVA R0RegisterAddressingMOVA R0 ImmediateAddressing ImmediateAddressing指定資料最簡單的方式就是直接塞在執(zhí)行碼 operationcode 後面 在執(zhí)行碼後面直接指定所要存取的數(shù)值 也就是說要存取的數(shù)值已經(jīng)寫在整個指令裡了 例如 MOVA 20h8051讀到opcode時解讀到此為immediatedatamov 所以自動將PC值加1 再將PC值指到的1byte資料 也就是0 x20存到A 其中 表示此為資料而不是記憶體位值 和接下來的DirectAddressing有所區(qū)隔 20h表示十六進(jìn)位0 x20 此指令執(zhí)行完後 暫存器A裡的數(shù)值就是0 x20 DirectAddressing DirectAddressing用於存取128Byte的RAM和SFRs裡的資料 指定記憶體位值接在執(zhí)行碼 operationcode 後面 也就是說存取的數(shù)值的來源用一個數(shù)字或者名子表示 例如 MOVA 20h將RAM位值0 x20的儲存值複製到暫存器A 20h表示十六進(jìn)位0 x20 此指令執(zhí)行完後 暫存器A裡的數(shù)值和RAM位值0 x20的數(shù)值是一樣的 IndirectAddressing IndirectAddressing指令所要存取的數(shù)值之位值從一個暫存器裡取得 指向目標(biāo)位值的暫存器 pointingregister 前面會加上一個 符號 表示 at 例如 MOVA R08051分析R0存的數(shù)值作為on chipmemory位值 將此on chipmemory位值存放的數(shù)值複製到暫存器A 用一個更直接的範(fàn)例 R0存放的值為40h on chipmemory位值40h存放的值為67h 8051先分析R0的數(shù)值得到40h 再去尋找on chipmemory位值40h存放的數(shù)值 最後得到67h這筆資料並存到暫存器A RegisterAddressingMode RegisterAddressingMode指令所要存取的數(shù)值在暫存器中 執(zhí)行碼 operationcode 存取的目標(biāo)是暫存器裡的資料 例如 MOVA R0 8051解讀完此執(zhí)行碼後直接從暫存器R0將資料複製到暫存器A 圖片來源 文件8051 Microcontroller Architecture Programming and Applications 8051programflow 當(dāng)8051初始化時 PC會設(shè)為零 從ProgramROM位值0 x0000開始讀取指令並執(zhí)行 除非遇到改變PC值的指令 不然8051指令會連續(xù)的 sequential 一行行執(zhí)行下去 改變PC值的指令有以下類別 ConditionalBranchDirectJumpDirectCallReturnsInterrupt ConditionalBranch 類似於 IF THEN 的架構(gòu) 分析當(dāng)下的condition判斷是否使PC跳 jump 到指定位值 DirectJump 類似於 GoTo 指定PC從一指定位值開始執(zhí)行 DirectCall 類似於呼叫subroutines 先把目前的PC值推到stack中 在jumpPC到指定位值 Returns 既然會呼叫subroutines 那工作結(jié)束後應(yīng)該要回傳到原來位值 將PC值改變成之前存在stack的數(shù)值 Interrupt 想像成事件 event 來解釋會比較容易了解 當(dāng)Interrupt被對應(yīng)的事件觸發(fā) 8051會停住當(dāng)下的工作並使PC跳到稱之為InterruptHandler的程式區(qū)塊 InterruptHandler裡除了包含事件所需的程式 還有恢復(fù)之前停下的工作 彷彿不曾發(fā)生Interrupt一樣 8051InstructionSet 8051的指令集主要可以粗分成五大項(xiàng) 以下會一一列出並大略講解 ArithmeticOperationsLogicalOperationsDataTransferOperationsSingleBit BooleanVariable OperationsProgramFlowControl ArithmeticOperations LogicalOperations DataTransferOperations SingleBit BooleanVariable Operations ProgramFlowControl Notefortheaboveinstructionset Byte instruction的大小 Byte數(shù) Cycle instruction執(zhí)行完所需要的instructioncycle數(shù)Rn registerR0 R7來源 wiki http en wikipedia org wiki Intel 8051 Detailsforinstructions 以上只是大略的講解所有8051的指令 詳細(xì)的8051教學(xué)文件在網(wǎng)路上皆容易取得 其中也包含著8051的指令集 以下列了幾個指令集的網(wǎng)址供參考 8051toolchain toolchain是指整套工具列包含編譯器 compiler 連結(jié)器 linker 組譯器 assembler 偵錯 debug 等 最後能產(chǎn)生執(zhí)行檔下載到硬體上執(zhí)行 關(guān)於8051的工具列網(wǎng)路上有不少免費(fèi)的軟體可以下載來使用 比較著名的有SDCC和KeilC51EvaluationSoftware KeilC51 以下用Keil公司的C51來介紹 C51EvaluationSoftware和其範(fàn)例檔案可以到Keil的官方網(wǎng)站 KeilC51newproject 1 安裝完後開啟一個新的project 指定此project儲存的路徑 產(chǎn)生一個 Uv2檔 下圖我是用test Uv2作為範(fàn)例 KeilC51newproject 2 device選擇Intel的8051AH 這樣就簡單的產(chǎn)生一個C51project 但是project裡面沒有任何東西 接下來講解如何加入一個C程式並成功編譯 KeilC51compileccode 1 這是我範(fàn)例C程式test c裡的內(nèi)容 根據(jù)一個變數(shù)是否為零做上數(shù) 累加 與下數(shù) 累減 的動作 變數(shù)count up宣告在ExternalRAM的位值0 x0上 用來判斷上數(shù)或下數(shù)的依據(jù) 初始化為一 變數(shù)counter宣告在ExternalRAM的位值0 x10上 判斷count up是否為零執(zhí)行上數(shù)或者下數(shù) 初始化為零 charxdatacount up at 0 x0 intxdatacounter at 0 x10 intmain count up 1 counter 0 while 1 if count up 0 counter elsecounter KeilC51compileccode 2 projectworkspace的視窗裡 裡面有預(yù)設(shè)的Target1 SourceGroup1 在底下新增自己要加入的C程式 下圖我是用test c作為範(fàn)例 KeilC51compileccode 3 在sourcegroup裡除了加入的test c外還有一個STARTUP A51 那是project產(chǎn)生時自動加上的 內(nèi)容主要是8051啟動前要做的動作 例如清除記憶體 初始化C的全域變數(shù) 設(shè)定stackpointer等 接下來的範(fàn)例並不會更動到這檔案 所以不會再多做講解 對此設(shè)定上有興趣可以參考 KeilC51compileccode 4 接下來開始編譯 編譯的選項(xiàng)在project Rebuildalltargetfiles 或者直接尋找工具列上的按鈕 就是下圖紅色框框住的按鈕 編譯成功與否 下面的outputwindow會顯示 接下來講解simulation 也就是Keil提供的debugger KeilC51Debugging 1 編譯成功後 Debug Start StopDebugSession進(jìn)入debug介面 Debugging的工具列類似於VisualStudio 有stepinto stepover等 利用這些工具可以看到單步執(zhí)行C程式時 暫存器和記憶體的變化 觀看方式接下來會說明 Debugger工具列 KeilC51Debugging 2 在debug介面裡view DisassemblyWindow可以叫出編譯完成的8051組語 KeilC51Debugging 3 在projectworkspace底下有很多觀看模式 其中Regs那一頁可以觀看8051所有暫存器的數(shù)值 KeilC51Debugging 4 Memroy 1 4可以選擇觀看不同記憶體 在Address欄位輸入記憶體類別和位值即可 例如c 0 x100表示codememory位值0 x100開始列出 i iRAM x xRAM KeilC51Debugging 5 以test c為例 目前預(yù)設(shè)為上數(shù)的動作 test c裡指定了counter這變數(shù)的位值 intxdatacounter at 0 x10 可以看到counter在xRAM的0 x10位值隨著程式的執(zhí)行而增加 現(xiàn)在臨時想改成下數(shù)的動作 必須修改變數(shù)count up為零 KeilC51Debugging 6 test c裡指定了count up這變數(shù)的位值 charxdatacount up at 0 x0 將count up的數(shù)值由01改成00 滑鼠點(diǎn)兩下紅框的位子即可輸入修改 繼續(xù)執(zhí)行下去 觀察counter的數(shù)值就會隨著程式的執(zhí)行而減少 8051HardwareSimulator Scream8051硬體是用verilog程式模擬8051的行為透過XilinxISE編譯成 bit映像檔燒入至FPGA中 目標(biāo)FPGA為XilinxVIRTEX 4XC4VLX60 安裝完驅(qū)動程式 FPGA附贈的光碟裡 就可以利用SIMIS提供的VeriEnterpriseUSBV2介面控制FPGA AboutUSBInterface 簡略介紹VeriEnterpriseUSB介面 使用者可自 設(shè)計電 處 使用者應(yīng)用程式 透過USB送過 的資 或是準(zhǔn)備好資 等待 使用者應(yīng)用程式 抓取回去 資 的傳輸使用 FIFO 的介面 主要構(gòu)成的訊號群組有 Write Read DataInput DataOutput等 這也就意味著 使用者FPGA 把自己本身看成是 FIFO 讓PC端 存取資 整個硬體模擬器架構(gòu)如下圖 主要可以分成Software端和Hardware端 8051 圖片來源 文件SMIMSEngineSoftwareDevelopmentKitsUserGuide Software端也就是PC x86的平臺 這裡application是用C寫成的 開發(fā)環(huán)境是用VisualStudio透過USB介面與FPGA溝通 Hardware端就是FPGA 初始化時Software端要先指定FPGA初始化時要燒入的映像檔 也就是透過XilinxISE編譯成 bit映像檔的位值 還有FPGA的序號 8051Circuit Hardware端裡有兩個FIFO的buffer 大小皆為4096個WORD 2Byte 一個做寫入 一個做讀取 PC端要給8051控制訊號和讀寫資料都是透過這兩個buffer 在設(shè)計電路 Verilogcode 裡 8051會透過一個介面 ez if 負(fù)責(zé)存取這兩個buffer PC WriteBuffer ReadBuffer 8051 R W R W Ez if Software端控制Hardware端的方式就是呼叫SIMIS提供的介面對兩個buffer作存取 介面ez if預(yù)設(shè)每個WORD其lowerbyte為資料 upperbyte為控制訊號 所以每個WORD都當(dāng)成一筆資料 Software端對ez if的控制訊號方面已經(jīng)包成一個個function所以使用者無須深入理解就可以直接下達(dá)參數(shù)和呼叫 但是仍然可以看到原始程式碼 接下來會講解如何將一個8051執(zhí)行檔燒入FPGA並順利執(zhí)行 8051executablefile 8051的執(zhí)行檔為IntelHexformat 格式如下 llaaaatt dd cc IntelHEXrecord的開頭 ll表示這行記錄了多少byte的data aaaa開始的addressttHEXrecordtype 00表示datarecord 01表示end of file dd 就是程式碼了 但是長度不一 ccchecksum 將所有hexnumber兩兩一組相加 256 舉個例子 10246200464C5549442050524F46494C4500464C33表示有0 x10byte的data data用綠色的標(biāo)起來了 起始位值0 x2462 0 x00是為datarecord checksum 0 x33 KeilC51可以產(chǎn)生hexformat的執(zhí)行檔 只是不是預(yù)設(shè) 由之前的範(fàn)例延續(xù) Project OptionsForTarget Target1 在Output頁面 CreateHEXFile打勾 Rebuildalltargetfile 編譯成功即可在project目錄下找到 hex Downloadtohardware 1 以下用一範(fàn)例講解如何下載8051程式到硬體模擬 許多複雜的溝通方式包成function以方便解釋 不過有興趣仍可以去看function裡的程式碼 下載8051程式到FPGA執(zhí)行需要兩樣?xùn)|西 8051電路 由XilinxISE編譯出來的映像檔 bit 這裡的範(fàn)例用top bit8051執(zhí)行檔 由KeilC51編譯出來的執(zhí)行檔 hex 沿用之前介紹的範(fàn)例test hex環(huán)境方面FPGA序號與USB驅(qū)動程式 X86環(huán)境 windowOS 用VisualStudio開發(fā) Downloadtohardware 2 這是整個main 的程式碼 底下會在更細(xì)部的講解 範(fàn)例的內(nèi)容和之前在KeilC51Debugger裡的範(fàn)例一樣 先觀察其上數(shù)的情況 再改變count up變數(shù)使程式行為改為下數(shù) Downloadtohardware 3 Software端的準(zhǔn)備工作就是指定top bit test hex的路徑和FPGA的序號 我將這些設(shè)定提到全域變數(shù)以方便修改 之前已經(jīng)提到FPGA是透過兩個FIFOBuffer和Hardware端溝通的 所以宣告兩個Buffer Downloadtohardware 4 FPGA工作前需要初始化 裡面包含下載top bit和序號註冊等 FPGA初始化已經(jīng)包含在functionAppStart 裡 直接呼叫即可 FPGA和8051電路透過AppStart 都已經(jīng)準(zhǔn)備好了 接下來要下載8051執(zhí)行檔 Downloadtohardware 5 透過functionOpenIntelCode 將test hex的內(nèi)容解讀並放置到WriteBuffer 透過functionWriteMemory 將WriteBuffer的資料寫入FPGA 目標(biāo)記憶體為ROM 大小為0 x200Byte 其實(shí)整的test hex沒到0 x200Byte這麼大 只是個大概值以防少寫 8051開始執(zhí)行前要下達(dá)reset的指令 functionP51 reset Downloadtohardware 6 一切都準(zhǔn)備好了 可以叫8051開工了 呼叫functionP51 run開始執(zhí)行 P51 stop停下來 由於FPGA的特性 在執(zhí)行和停止間並不知道中間已經(jīng)執(zhí)行了多少指令
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 六年級家庭講座活動方案
- 蘭州社區(qū)送溫暖活動方案
- 共享中心活動方案
- 共享植樹活動方案
- 共享面膜活動方案
- 共讀教學(xué)名著活動方案
- 共青團(tuán)家風(fēng)建設(shè)活動方案
- 關(guān)于中秋大學(xué)生活動方案
- 煙草崗位考試試題及答案
- 面試題目及答案高三
- 福建省福州市第十九中學(xué)2025屆七下英語期末復(fù)習(xí)檢測試題含答案
- 2025年“國資贛將”贛州旅游投資集團(tuán)第一批社會公開招聘【46人】筆試參考題庫附帶答案詳解析
- 兒童樂園用工合同范本
- 燒烤店加盟合同協(xié)議書
- 慢性疼痛管理的多學(xué)科綜合療法研究
- 小兒燙傷個案護(hù)理
- 山東省肥城市2025年化學(xué)高二下期末監(jiān)測試題含解析
- 2025年數(shù)字重慶大數(shù)據(jù)應(yīng)用發(fā)展有限公司招聘筆試參考題庫附帶答案詳解
- 2025年春季《中華民族共同體概論》第三次平時作業(yè)-國開(XJ)-參考資料
- 會計領(lǐng)軍筆試題目及答案
- (重慶康德三診)2025年重慶市高三第三次聯(lián)合診斷檢測政治試卷(含答案解析)
評論
0/150
提交評論