版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
嵌入式系統(tǒng)導(dǎo)論主講教師:第9章STM32的定時(shí)器接口本章內(nèi)容提要9.1系統(tǒng)時(shí)鐘(SysTick)9.2STM32看門狗9.3STM32定時(shí)器(TIMx)9.4STM32實(shí)時(shí)時(shí)鐘(RTC)定時(shí)器基于計(jì)數(shù)器電路實(shí)現(xiàn)STM32微控制器的定時(shí)器接口系統(tǒng)時(shí)鐘(SysTick)看門狗WatchDog獨(dú)立看門狗(IWDG)獨(dú)窗口看門狗(WWDG)通用定時(shí)器基本定時(shí)器(TIM6和TIM7)通用定時(shí)器(TIM2、TIM3、TIM4和TIM5)高級控制定時(shí)器(TIM1和TIM8)實(shí)時(shí)時(shí)鐘RTC9.1系統(tǒng)時(shí)鐘(SysTick)Corte-M3在內(nèi)核包含的簡單定時(shí)器該定時(shí)器的時(shí)鐘源可以來自CM3內(nèi)部時(shí)鐘(FCLK),或CM3外部時(shí)鐘(STCLK)在STM32微控制器中,SysTick的時(shí)鐘源可以是:“AHB時(shí)鐘”、或者“AHB時(shí)鐘/8”SysTick定時(shí)器是一個24位遞減計(jì)數(shù)器設(shè)置初值、允許計(jì)數(shù),每來一個時(shí)鐘,計(jì)數(shù)值減1計(jì)數(shù)值減為0,計(jì)數(shù)器被自動載入初值、繼續(xù)計(jì)數(shù)同時(shí)內(nèi)部標(biāo)志COUNTFLAG被置位、并觸發(fā)中斷SysTick中斷連接中斷控制器NVIC,異常號為15SysTick寄存器SysTick是CM3內(nèi)核的定時(shí)單元參閱“Cortex-M3一般用戶手冊”(不是“STM32參考手冊”)寄存器縮寫寄存器中文名稱SysTick_CTRL控制和狀態(tài)寄存器SysTick_LOAD重載值寄存器SysTick_VAL當(dāng)前值寄存器SysTick_CALIB校準(zhǔn)值寄存器控制和狀態(tài)寄存器(SysTick_CTRL)用于控制SysTick工作和獲取計(jì)數(shù)歸0的狀態(tài)名稱功能ENABLE計(jì)數(shù)器使能:0=禁止SysTick定時(shí)器,1=允許SysTick定時(shí)器TICKINTSysTick異常請求使能:0=不觸發(fā)異常請求,1=觸發(fā)異常請求(中斷)CLKSOURCE選擇時(shí)鐘源:0=外部時(shí)鐘,1=處理器時(shí)鐘COUNTFLAG計(jì)數(shù)狀態(tài):上次讀取后定時(shí)器計(jì)數(shù)到0,返回1SysTick寄存器編程(1)禁止SysTick定時(shí)器(因?yàn)镾ysTick可能已經(jīng)被允許了)
SysTick->CTRL=0;//關(guān)閉SysTick(2)寫入重載值
SysTick->LOAD=256-1;//假設(shè)計(jì)數(shù)值為256(3)清除當(dāng)前值為0(向當(dāng)前值寄存器SysTick_VAL寫入任何值)
SysTick->VAL=0;(4)允許SysTick定時(shí)器
SysTick->CTRL=5;//使用處理器時(shí)鐘SysTick結(jié)構(gòu)定義系統(tǒng)時(shí)鐘SysTick屬于Cortex內(nèi)核部件驅(qū)動程序定義在core_cm3.h(不是core_cm3.c)文件SysTick寄存器的結(jié)構(gòu)類型
typedef
struct {__IOuint32_tCTRL; __IOuint32_tLOAD; __IOuint32_tVAL; __Iuint32_tCALIB; }SysTick_Type;有關(guān)地址定義的語句如下:
#defineSCS_BASE(0xE000E000) #defineSysTick_BASE(SCS_BASE+0x0010) #defineSysTick((SysTick_Type*)SysTick_BASE)SysTick配置函數(shù)_STATIC__INLINEuint32_tSysTick_Config(uint32_tticks){if((ticks-1UL)>SysTick_LOAD_RELOAD_Msk){return(1UL); }
SysTick->LOAD=(uint32_t)(ticks-1UL);NVIC_SetPriority(SysTick_IRQn,(1UL<<__NVIC_PRIO_BITS)-1UL);
SysTick->VAL=0UL;
SysTick->CTRL=SysTick_CTRL_CLKSOURCE_Msk|
SysTick_CTRL_TICKINT_Msk|
SysTick_CTRL_ENABLE_Msk;return(0UL);}初始化、并啟動SysTick計(jì)數(shù)器和中斷設(shè)置每隔ticks脈沖引起一次中斷配置成功返回0值,不成功則返回1值SysTick_Config函數(shù)-11、將ticks參數(shù)作為重載值賦給重載值寄存器(SysTick_LOAD)定時(shí)時(shí)間T是:T=ticks×(1/f)秒f是時(shí)鐘源的時(shí)鐘頻率2、使用NVIC_SetPriority函數(shù) 配置系統(tǒng)時(shí)鐘中斷(SysTickIRQ)為15如果要改變SysTick中斷的優(yōu)先級,使用
NVIC_SetPriority(SysTick_IRQn,...)(定義在core_cm3.h文件)SysTick_Config函數(shù)-23、復(fù)位SysTick計(jì)數(shù)器(清零)4、設(shè)置控制和狀態(tài)寄存器(SysTick_CTRL)允許計(jì)數(shù)和中斷選擇處理器時(shí)鐘源(STM32是“AHB時(shí)鐘”)如果使用STM32的“AHB時(shí)鐘/8”直接編程控制和狀態(tài)寄存器(SysTick_CTRL) 設(shè)置CLKSOURCE(D2位)為0使用STM32庫的SysTick_CLKSourceConfig函數(shù)(在misc.c文件中)SysTick應(yīng)用示例:精確定時(shí)SysTick可服務(wù)于操作系統(tǒng)也可用于精確定時(shí)、時(shí)間測量等系統(tǒng)時(shí)鐘72MHz,最小的計(jì)時(shí)單位(時(shí)鐘周期)(1/72)×10-6秒、即72分之一的微秒結(jié)合GPIO控制LED燈的示例【例9-1】使用SysTick精確的硬件定時(shí)主程序需要對SysTick進(jìn)行初始化例如配置1ms產(chǎn)生一次中斷SysTick初始化主程序SysTick_Config函數(shù)配置1ms產(chǎn)生一次中斷
if(SysTick_Config(SystemCoreClock/1000)){while(1);/*沒有初始化成功,死循環(huán)*/}
SysTick->CTRL&=~1;/*關(guān)閉SysTick定時(shí)器*/SystemCoreClock常量表示系統(tǒng)主時(shí)鐘頻率開發(fā)板的時(shí)鐘頻率是最高72MHz定時(shí)時(shí)間(SystemCoreClock與f相同):
T=(SystemCoreClock/1000)×(1/f)秒
=10-3
秒=1毫秒=1ms硬件定時(shí)的延時(shí)函數(shù)定義TimingDelay為靜態(tài)變量每次進(jìn)入函數(shù)時(shí),讓其保持上次退出的數(shù)值 這個變量的改變是在中斷服務(wù)程序中static__IOuint32_tTimingDelay=0;voidDelay_ms(__IOuint32_tnTime){TimingDelay=nTime;/*
nTime是延時(shí)時(shí)間
*/
SysTick->CTRL|=1;/*
啟動SysTick定時(shí)器*/
while(TimingDelay!=0);}
voidDecrement(void){if(TimingDelay!=0)TimingDelay--;}中斷服務(wù)程序voidSysTick_Handler(void){Decrement(); //每次中斷,TimingDelay減1}延時(shí)500ms的延時(shí)函數(shù)調(diào)用
Delay_ms(500);9.2STM32看門狗WatchDog看門狗是嵌入式應(yīng)用系統(tǒng)的一個安全機(jī)制常用于防止程序失去控制,避免系統(tǒng)導(dǎo)致嚴(yán)重后果各種干擾可能影響程序的正常執(zhí)行,導(dǎo)致“跑飛”如果系統(tǒng)在規(guī)定的時(shí)間內(nèi)沒有執(zhí)行特定的“喂狗”程序,看門狗就會報(bào)警,系統(tǒng)可以及時(shí)糾正錯誤看門狗機(jī)制的實(shí)質(zhì)是定時(shí)器,當(dāng)計(jì)數(shù)器達(dá)到給定的超時(shí)值時(shí),觸發(fā)一個中斷或產(chǎn)生系統(tǒng)復(fù)位STM32微控制器支持兩個看門狗獨(dú)立看門狗(IWDG)窗口看門狗(WWDG)9.2.1獨(dú)立看門狗(IWDG)由專門的低速時(shí)鐘(LSI)驅(qū)動即使系統(tǒng)主時(shí)鐘發(fā)生故障也仍然有效適合看門狗作為獨(dú)立于主程序之外的處理進(jìn)程、對時(shí)間精度要求不高的應(yīng)用場合一個獨(dú)立運(yùn)行的12位減量計(jì)數(shù)器啟動后,當(dāng)計(jì)數(shù)值減量為0,導(dǎo)致系統(tǒng)復(fù)位Independentwatchdog獨(dú)立看門狗結(jié)構(gòu)寄存器縮寫寄存器英文名稱寄存器中文名稱IWDG_KRKeyRegister關(guān)鍵寄存器IWDG_PRPrescalerRegister預(yù)分頻寄存器IWDG_RLRReloadRegister重載寄存器IWDG_SRStatusRegister狀態(tài)寄存器獨(dú)立看門狗的啟動和重載啟動獨(dú)立看門狗向關(guān)鍵寄存器(IWDG_KR)寫入數(shù)值0xCCCC計(jì)數(shù)器從復(fù)位值0xFFF開始減量計(jì)數(shù)當(dāng)計(jì)數(shù)值減至結(jié)束值0x000時(shí),觸發(fā)復(fù)位沒有及時(shí)“喂狗”導(dǎo)致系統(tǒng)復(fù)位、進(jìn)入初始狀態(tài)重載獨(dú)立看門狗(喂狗)向關(guān)鍵寄存器(IWDG_KR)寫入關(guān)鍵值0xAAAA重載寄存器(IWDG_RLR)內(nèi)的數(shù)值被重新加載到計(jì)數(shù)器,這樣就防止了看門狗復(fù)位及時(shí)進(jìn)行了“喂狗”,系統(tǒng)可以正常運(yùn)行IWDG寄存器關(guān)鍵寄存器(IWDG_KR)在待機(jī)模式被復(fù)位為0只能寫入0xCCCC(啟動看門狗)、0xAAAA(重載計(jì)數(shù)值)和0x5555(允許訪問預(yù)分頻和重載寄存器)預(yù)分頻寄存器(IWDG_PR)表示8種分頻系數(shù)(4/8/16/32/64/128/256)重載寄存器(IWDG_RLR)用于寫入重載的計(jì)數(shù)初值(12位計(jì)數(shù)器)可寫入編碼0x000~0xFFF依次表示1~4096計(jì)數(shù)值待機(jī)模式會將其復(fù)位為最大值0xFFFIWDG寄存器寄存器縮寫寄存器英文名稱寄存器中文名稱IWDG_KRKeyRegister關(guān)鍵寄存器IWDG_PRPrescalerRegister預(yù)分頻寄存器IWDG_RLRReloadRegister重載寄存器IWDG_SRStatusRegister狀態(tài)寄存器IWDG定時(shí)時(shí)間分頻系數(shù)最小定時(shí)(ms)最大定時(shí)(ms)40.1409.680.2819.2160.41638.4320.83276.8641.66553.61283.213107.22566.426214.4LSI=40KHzIWDG函數(shù)設(shè)置重載寄存器值voidIWDG_SetReload(uint16_tReload)
設(shè)置預(yù)分頻系數(shù)voidIWDG_SetPrescaler(uint8_tIWDG_Prescaler)將重載寄存器的值重新裝載給IWDG計(jì)數(shù)器voidIWDG_ReloadCounter(void)允許或禁止對重載寄存器和重載寄存器寫入voidIWDG_WriteAccessCmd(uint16_tIWDG_WriteAccess)允許IWDG(寫入重載寄存器和重載寄存器被禁止)voidIWDG_Enable(void)檢測IWDG標(biāo)志置位與否FlagStatus
IWDG_GetFlagStatus(uint16_tIWDG_FLAG)RCC標(biāo)志檢測和清除函數(shù)RCC_GetFlagStatus函數(shù)獲得系統(tǒng)復(fù)位原因
FlagStatus
RCC_GetFlagStatus(uint8_tRCC_FLAG)參數(shù)RCC_FLAG表示要檢測的標(biāo)志,例如復(fù)位標(biāo)志有RCC_FLAG_PINRST(引腳復(fù)位)RCC_FLAG_PORRST(電源開/電源關(guān)復(fù)位)RCC_FLAG_SFTRST(軟件復(fù)位)RCC_FLAG_IWDGRST(IWDG復(fù)位)RCC_FLAG_WWDGRST(WWDG復(fù)位)RCC_FLAG_LPWRRST(低電源電壓復(fù)位)FlagStatus返回置位(SET),表示發(fā)生了檢測的復(fù)位返回復(fù)位(RESET),表示沒有發(fā)生檢測的復(fù)位RCC_ClearFlag函數(shù)清除(復(fù)位)上述所有復(fù)位標(biāo)志
voidRCC_ClearFlag(void)【例9-2】IWDG應(yīng)用示例:IWDG復(fù)位啟用獨(dú)立看門狗,設(shè)置約10秒的喂狗間隔用戶在10秒內(nèi)按下KEY1按鍵(需要每隔10秒內(nèi),連續(xù)按下)、讓系統(tǒng)進(jìn)行喂狗如果在10s內(nèi)“喂狗”、LED3燈常亮,表示正常用戶(連續(xù))按下KEY1間隔超過10s程序沒有及時(shí)“喂狗”,系統(tǒng)將復(fù)位復(fù)位后,系統(tǒng)重新執(zhí)行程序檢測到是由于IWDG導(dǎo)致的復(fù)位,LED2指示燈亮如果是其他原因?qū)е碌膹?fù)位,LED1指示燈亮IWDG初始化配置voidIWDG_Config(void){//允許看門狗寄存器寫入IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);//時(shí)鐘分頻系數(shù)256IWDG_SetPrescaler(IWDG_Prescaler_256);//喂狗時(shí)間10s,設(shè)置計(jì)數(shù)值1562.5IWDG_SetReload(1563);//寫入計(jì)數(shù)值(喂狗)IWDG_ReloadCounter();//允許IWDG看門狗IWDG_Enable();}IWDG主程序-1int
main(void){KEY_Config();
LED_Config();IWDG_Config();LED_ON_all();Delay(0x990000);//LED等亮一會表示系統(tǒng)復(fù)位
LED_OFF_all();//LED燈全滅IWDG主程序-2//
如果上次復(fù)位是IWDG復(fù)位,LED2亮if(RCC_GetFlagStatus(RCC_FLAG_IWDGRST)==SET)
{LED_ON(2);
Delay(0x990000); //延時(shí),讓用戶觀察到
LED_OFF(2);
RCC_ClearFlag();
}//如果上次復(fù)位是不是IWDG復(fù)位,LED1亮else
{LED_ON(1); Delay(0x990000); //延時(shí),讓用戶觀察到
LED_OFF(1); }IWDG主程序-3//檢測按鍵,適時(shí)喂狗while(1)
{if(KEY_scan(1)==
0){while(KEY_scan(1)==0);
IWDG_ReloadCounter();
LED_ON(3); Delay(0x990000); LED_OFF(3);
}}}9.2.3窗口看門狗(WWDG)時(shí)鐘由APB1時(shí)鐘分頻后得到具有可配置的時(shí)間窗口用于檢測應(yīng)用程序過遲或過早的非正常操作適合在精確計(jì)時(shí)窗口起作用的應(yīng)用程序一個獨(dú)立運(yùn)行的可編程減量計(jì)數(shù)器啟動后,就設(shè)置了一個刷新時(shí)間間隔(窗口)在這個時(shí)間窗口內(nèi)寫入計(jì)數(shù)值,才保證系統(tǒng)不復(fù)位“喂狗”時(shí)間既不能太早、也不能太晚(或不喂)Windowwatchdog窗口看門狗結(jié)構(gòu)窗口看門狗的定時(shí)時(shí)間【例9-3】WWDG應(yīng)用示例:適時(shí)喂狗啟用WWDG,設(shè)置約43~58ms的喂狗時(shí)間窗口系統(tǒng)如果在刷新時(shí)間窗口內(nèi)“喂狗”LED2燈閃爍,表示正常工作使用按鍵KEY1按下模擬“喂狗”時(shí)間“喂狗”時(shí)間太早或時(shí)間太晚系統(tǒng)會復(fù)位讓LED1燈閃爍啟用提前喚醒中斷EWI當(dāng)喂狗時(shí)間太晚進(jìn)入EWI中斷服務(wù)程序讓LED3燈閃爍WWDG初始化函數(shù)voidWWDG_Config(void){RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG,ENABLE);WWDG_SetPrescaler(WWDG_Prescaler_8);WWDG_SetWindowValue(0x50);WWDG_Enable(0x7F);WWDG_ClearFlag();WWDG_EnableIT();}0x50=0x7F–0x2F啟用WWDG提前喚醒中斷NVIC初始化函數(shù)
……NVIC_InitStructure.NVIC_IRQChannel=WWDG_IRQn; ……WWDG中斷程序voidWWDG_IRQHandler(void){LED_On(3);//LED3燈閃爍1次
Delay(0xffff);LED_Off(3); WWDG_ClearFlag();//清除WWDG中斷標(biāo)志位
}WWDG應(yīng)用的主程序
WWDG_Config();//配置WWDGwhile(1){if(KEY_scan(1)==0){while(KEY_scan(1)==0); //等待按鍵結(jié)束
WWDG_SetCounter(0x7F);LED_On(2);
//喂狗時(shí)間合適時(shí),LED2燈閃爍1次
Delay(0xffff);LED_Off(2); }}9.3STM32定時(shí)器2個基本定時(shí)器(TIM6、TIM7)主要用于產(chǎn)生數(shù)字模擬轉(zhuǎn)換器(DAC)的觸發(fā)信號也可用于普通的16位時(shí)基計(jì)數(shù)器4個普通定時(shí)器(TIM2-TIM5)能夠測量輸入信號的脈沖長度(輸入捕獲功能)產(chǎn)生需要的輸出波形(輸出比較、脈沖寬度調(diào)制PWM脈沖和單脈沖輸出等)2個高級控制定時(shí)器(TIM1、TIM8)能夠產(chǎn)生3對PWM互補(bǔ)輸出的高級定時(shí)器常用于三相電機(jī)的驅(qū)動基本定時(shí)器(TIM6和TIM7)結(jié)構(gòu)基本定時(shí)器(TIM6和TIM7)工作原理分頻系數(shù)為2,計(jì)數(shù)值36基本定時(shí)器應(yīng)用示例:周期性定時(shí)中斷【例9-4】周期性定時(shí)中斷,控制LED燈閃爍利用基本定時(shí)器(TIM6)的基本定時(shí)功能產(chǎn)生周期性定時(shí)中斷控制LED燈每隔1秒閃爍一次定時(shí)時(shí)間=(計(jì)數(shù)值+1)×(預(yù)分頻值+1)÷定時(shí)器時(shí)鐘1s=2000×36000÷72M基本定時(shí)器的初始化配置voidTIM6_Config(void){TIM_TimeBaseInitTypeDefTIM_TimeBaseStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6,ENABLE);TIM_TimeBaseStructure.TIM_Prescaler=36000-1;TIM_TimeBaseStructure.TIM_Period=2000-1;TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;TIM_TimeBaseStructure.TIM_RepetitionCounter=0;
TIM_TimeBaseInit(TIM6,&TIM_TimeBaseStructure);
TIM_UpdateRequestConfig(TIM6,TIM_UpdateSource_Regular);
TIM_ITConfig(TIM6,TIM_IT_Update,ENABLE);TIM_Cmd(TIM6,ENABLE);}基本定時(shí)器的中斷服務(wù)程序voidTIM6_IRQHandler(void){if(TIM_GetITStatus(TIM6,TIM_IT_Update)==SET){TIM_ClearITPendingBit(TIM6,TIM_FLAG_Update);GPIOB->ODR^=GPIO_Pin_0; //LED1燈反轉(zhuǎn)
GPIOF->ODR^=GPIO_Pin_7; //LED2燈反轉(zhuǎn)
GPIOF->ODR^=GPIO_Pin_8; //LED3燈反轉(zhuǎn)
}}9.4STM32實(shí)時(shí)時(shí)鐘可以依靠后備電池供電、維持運(yùn)行的定時(shí)器提供日歷、時(shí)鐘以及數(shù)據(jù)存儲等功能可用于重新設(shè)置系統(tǒng)當(dāng)前的時(shí)間和日期RTC核心和時(shí)鐘配置處于微控制器的備份區(qū)域?qū)崟r(shí)時(shí)鐘RTC(RealTimeCounter)RTC的簡化結(jié)構(gòu)RTC可屏蔽中斷秒中斷(RTC_Second)RTC預(yù)分頻器用于生成RTC的時(shí)基(TR_CLK)這個時(shí)基可以編程為1秒每個TR_CLK周期,允許時(shí)可以產(chǎn)生一個秒中斷鬧鐘中斷(RTC_Alarm)系統(tǒng)時(shí)間以時(shí)基(TR_CLK)為單位增量可與保存在鬧鐘寄存器的可編程日期相比較用來產(chǎn)生鬧鐘中斷溢出事件(RTC_Overflow)32位計(jì)數(shù)值溢出可以記錄4294967296秒,約136年【例9-5】RTC應(yīng)用示例:鬧鐘RTC秒中斷控制LED1燈閃爍利用RTC的秒中斷讓LED1燈每0.5秒改變亮滅狀態(tài)實(shí)現(xiàn)閃爍效果鬧鐘中斷點(diǎn)亮LED2燈設(shè)置3s后產(chǎn)生鬧鐘中斷用鬧鐘中斷點(diǎn)亮LED2燈RTC初始化配置函數(shù)-1voidRTC_Config(void){RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR|RCC_APB1Periph_BKP,ENABLE);PWR_BackupAccessCmd(ENABLE);if(BKP_ReadBackupRegister(BKP_DR1)!=0x5555){BKP_DeInit(); RCC_LSEConfig(RCC_LSE_ON);while(RCC_GetFlagStatus(RCC_FLAG_LSERDY)==RESET);RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE);
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度綜合性服務(wù)承包協(xié)議樣本
- 2024年個人土地承包協(xié)議范例
- 2024年建筑工程承攬協(xié)議范本
- 高端裝飾材料訂購協(xié)議簡化范本2024
- 中小學(xué)德育教育工作實(shí)施方案與策略
- 教師教育轉(zhuǎn)型的關(guān)鍵策略與執(zhí)行路徑
- 車輛買賣與租賃專屬協(xié)議范本2024
- 二手房按揭購房交易協(xié)議模
- 鄉(xiāng)村教師培育反饋機(jī)制與改進(jìn)措施
- 數(shù)智驅(qū)動研究生教育治理重構(gòu)策略研究
- 合伙開工廠合同范例
- 二年級上冊《生態(tài) 生命 安全》教案
- 綿陽市高中2022級(2025屆)高三第一次診斷性考試(一診)地理試卷
- 全國職業(yè)院校技能大賽高職組(酒水服務(wù)賽項(xiàng))備賽試題庫(含答案)
- GA 667-2020防爆炸透明材料
- 幼兒園《警察職業(yè)介紹》PPT
- 樹立反對拜金主義人生觀教育教育PPT講座課件
- 壓路機(jī)維修服務(wù)合同協(xié)議書范本簡約版
- 新形勢下如何創(chuàng)新統(tǒng)計(jì)工作
- 民航服務(wù)心理學(xué)課程標(biāo)準(zhǔn)-
- 物業(yè)管理服務(wù)的整體設(shè)想及策劃
評論
0/150
提交評論