




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、單片機數(shù)字鬧鐘/電子表設計報告一、本設計功能描述1、采用stc89c52單片機作為主控芯片,實現(xiàn)數(shù)字鐘表主控功能。2、采用液晶屏顯示當前年、月、日、時、分、秒,鬧鈴時間及狀態(tài)等信息。3、采用六鍵鍵盤設定時間初始值,具體方法是按時間設定鍵依次進入年、月、日、時、分、秒設定狀態(tài),然后通過向上、向下鍵修改設定值。正在設定的變量以閃爍狀態(tài)突出顯示。4、采用六鍵鍵盤設定鬧鈴時間,具體方法是按鬧鈴設定鍵依次進入時、分設定狀態(tài),然后通過向上、向下鍵修改設定值。正在設定的變量以閃爍狀態(tài)突出顯示。5、采用ds1302實時時鐘芯片完成后臺計時功能,要求具有后備電源,即使主電源掉電時間仍然保持運行。6、可設定鬧鈴使
2、能,具體方法是按鬧鈴使能鍵,按一次打開,再按一次關閉。鬧鈴使能關閉時不報警。7、當鬧鈴使能打開,且當前時間到達鬧鈴設置時間,則蜂鳴器和led紅燈同時報警,如不按取消鍵,報警時間為1分鐘。報警狀態(tài)可以通過按取消鍵退出。8、系統(tǒng)通過usb電源供電,單片機程序也可通過usb線串行下載。二、相關基礎介紹1ds1302芯片(1) ds1302的性能特性l 實時時鐘,可對秒、分、時、日、周、月以及帶閏年補償?shù)哪赀M行計數(shù);ds1302時鐘芯片包括實時時鐘/日歷和31字節(jié)的靜態(tài)ram。它經(jīng)過一個簡單的串行接口與微處理器通信。實時時鐘/日歷提供秒、分、時、日、周、月和年等信息。對于小于31天的月和月末的日期自動
3、進行調(diào)整,還包括閏年校正的功能。時鐘的運行可以采用24h或帶am(上午)/pm(下午)的12h格式。采用三線接口與cpu 進行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或ram數(shù)據(jù)。ds1302有主電源/后備電源雙電源引腳:vcc1在單電源與電池供電的系統(tǒng)中提供電源,并提供低功率的電池備份;vcc2在雙電源系統(tǒng)中提供主電源,在這種運用方式中vcc1連接到備份電,以便在沒有主電源的情況下能保存時間信息以及數(shù)據(jù)。ds1302由vcc1或vcc2中較大者供電。當vcc2大于vcc10.2v時,vcc2給ds1302供電;當vcc2小于vcc1時,ds1302由vcc1供電。(2) ds13
4、02數(shù)據(jù)操作原理 ds1302在任何數(shù)據(jù)傳送時必須先初始化,把rst腳置為高電平,然后把8位地址和命令字裝入移位寄存器,數(shù)據(jù)在sclk的上升沿被輸出。無論是讀周期還是寫周期,開始8位指定40存器中哪個將被訪問到。在開始8個時鐘周期,把命令字節(jié)裝入移位寄存器之后,另外的始終周期在讀操作時輸出數(shù)據(jù),在寫操作時寫入數(shù)據(jù)。時鐘脈沖的個數(shù)在單字節(jié)方式下為8加8,在多字節(jié)方式下為8加字節(jié)數(shù),最大可達248字數(shù)。 如果在傳送過程中置rst腳為低電平,則會中止本次數(shù)據(jù)傳送,并且i/o引腳變?yōu)楦咦钁B(tài)。上電運行時,在vcc 2.5v之前,rst腳必須保持低電平。只有在sclk為低電平時,才能將rst置為高電平。d
5、s1302的引腳及內(nèi)部結(jié)構(gòu)圖如圖1所示。 圖1 ds1302引腳圖及內(nèi)部結(jié)構(gòu)ds1302的控制字如圖2所示??刂谱止?jié)的最高有效位(位7)必須是邏輯1;如果它為0。則不能把數(shù)據(jù)寫入到ds1302中。位6如果為0則表示存取日歷時鐘數(shù)據(jù);為1表示存取ram數(shù)據(jù)。位51(a4a0)指示操作單元的地址。最低有效位(位0)如為0,表示要進行寫操作;為1表示進行讀操作。控制字節(jié)總是從最低位開始輸入/輸出。圖2 ds1302的控制字ds1302的讀寫時序如圖3所示。為了提高對32個地址的尋址能力(地址/命令位15 = 邏輯1),可以把時鐘/日歷或ram寄存器規(guī)定為多字節(jié)(burst)方式。位6規(guī)定時鐘或ram
6、,而位0規(guī)定讀或?qū)?。在時鐘/日歷寄存器中的地址931或ram寄存器中的地址31不能存儲數(shù)據(jù)。在多字節(jié)方式中,讀或?qū)憦牡刂?的位0開始。必須按數(shù)據(jù)傳送的次序?qū)懽钕鹊?個寄存器。但是,當以多字節(jié)方式寫ram時,為了傳送數(shù)據(jù)不必寫所有31字節(jié),不管是否寫了全部31字節(jié),所寫的每一字都將傳送至ram。圖3 ds1302數(shù)據(jù)讀/寫時序ds1302共有12個寄存器,其中有7個寄存器與日歷、時鐘相關,存放的數(shù)據(jù)位為bcd碼形式。時鐘暫停:秒寄存器的位7定義位時鐘暫停位。當它為1時,ds1302停止振蕩,進入低功耗的備份方式。通常在對ds1302進行寫操作時(如進入時鐘調(diào)整程序),停止振蕩。當它為0時,時鐘將
7、開始啟動。am-pm/12-24小時方式:小時寄存器的位7定義為12或24小時方式選擇位。它為高電平時,選擇12小時方式。在此方式下,位5是am/pm位,此位是高電平時表示pm,低電平表示am。在24小時方式下,位5為第二個10小時位(2023h)。 ds1302的晶振選用32.768khz,電容推薦值為6pf,因為振蕩頻率較低,也可以不接電容,對記時精度影響不大。2stc89c52單片機(1) stc89c52 單片機概述stc89c52系列單片機是宏晶科技生產(chǎn)的單時鐘/機器周期(1t)的單片機,是高速/低功耗/超強抗干擾的新一代8051單片機,指令代碼完全兼容傳統(tǒng)8051,但速度快8-12
8、倍,內(nèi)部集成max810專用復位電路。 (2) stc89c52 單片機管腳及封裝stc89c52 單片機有多種封裝形式,本設計中選用40dip封裝,其管腳定義如圖4所示。其最小應用系統(tǒng)如圖5所示。圖4 stc89c52 管腳圖 三、portel硬件開發(fā)軟件protel是目前國內(nèi)最流行的通用eda軟件,它是將電路原理圖設計、pcb板圖設計、電路仿真和pld設計等多個實用工具軟件組合后構(gòu)成的eda工作平臺,是第一個將eda軟件設計成基于windows的普及型產(chǎn)品。2pcb板設計(1) 定元件的封裝 (2) 建立pcb板框 (3) 載入網(wǎng)絡表 (4) 布局 (5) pcb設計遵循的規(guī)則 地線回路規(guī)
9、則:圖7 地線回路規(guī)則 竄擾控制 屏蔽保護圖8 屏蔽保護 走線方向控制規(guī)則 電源與地線層的完整性規(guī)則四、硬件電路設計單片機數(shù)字鬧鐘硬件框圖如圖9所示。圖9 硬件框圖其中ds1302完成計時功能,單片機主控芯片讀取ds1302的時間數(shù)據(jù),在液晶屏上顯示出來。用戶可以通過按鍵設定時間初始值、鬧鈴初始值等。主電源和備份電源給各芯片供電。1 單片機電路 單片機采用stc89c52芯片,電路采用11.0592mhz外部無源晶體,振蕩電容采用20pf。復位電路采用10uf(c1)電容和10k(r2)組成的阻容復位電路。單片機管腳連接標號中,p00p07為液晶屏數(shù)據(jù)線,p25p27為液晶屏控制線。標號rxd
10、和txd是單片機的異步串行通信引腳,用于單片機程序的isp下載。2 ds1302時鐘電路ds1302時鐘電路如圖11所示,其中bt1是后備電池,以保證在主電源掉電時時鐘依然運行。y2是時鐘晶振,因為頻率較低,故可以不加電容。r10r12為上拉電阻。ds1302通過sclk、i/o和rst管腳和單片機相連。圖11 ds1302時鐘電路3 液晶屏顯示電路顯示部分采用smc 1602液晶屏進行數(shù)據(jù)顯示與單片機接口電路如圖12所示。圖12 lcd與單片機接口電路4 按鍵電路u盤驅(qū)動芯片ch375不僅提供了與usb設備的硬件連接,還內(nèi)置了文件系統(tǒng)底層程序,使得讀、寫u盤中的文件變得容易。圖中ch375使
11、用12mhz外部晶體,振蕩電容為20pf。管腳連接標號d0d7是與單片機并口進行數(shù)據(jù)傳輸?shù)臄?shù)據(jù)線,ch375int為單片機提供中斷信號,ch375cs、ch375a0、ch375wr和ch375rd是控制信號線。ch375通過ru2和ru3兩個電阻與u盤的ud+和ud-數(shù)據(jù)線連接,同時通過lu發(fā)光管輸出u盤狀態(tài)。 3鍵盤驅(qū)動電路鍵盤驅(qū)動電路如圖14所示。圖14 鍵盤驅(qū)動程序電路使用與單片機管腳直接相連的按鍵實現(xiàn)鍵盤。當按鍵按下時管腳為低電平,無按鍵時為高電平。單片機采用查詢方式獲取按鍵信息。4鬧鈴電路圖15 鬧鈴電路 鬧鈴電路由單片機管腳驅(qū)動蜂鳴器和報警燈實現(xiàn),當鬧鈴時間到時,蜂鳴器鳴響,紅燈
12、報警。5電源電路本設計采用usb接口供電,電源電壓5v。同時,usb接口通過內(nèi)含pl2303芯片的轉(zhuǎn)換電路對單片機進行程序編寫。其電路原理如圖所示。圖16 供電及程序下載電路五、 軟件設計1、軟件流程圖本設計軟件流程如圖17所示。 圖17 軟件流程圖 2、時間調(diào)整程序設計調(diào)整時間用4個調(diào)整按紐,1個作為移位、控制用,另外2個作為加個減用,分別定義為時間設置按紐、加按紐、減按紐。在調(diào)整時間過程中,要調(diào)整的位與別的位應該有區(qū)別,所以增加了閃爍功能,即調(diào)整的位一直在閃爍,直到調(diào)整下一位。閃爍原理就是,讓要調(diào)整的一位每隔一定時間熄滅一次,比如說50ms。利用定時器記時,當?shù)竭_50ms溢出時,就送給該位
13、熄滅符,在下一次溢出時,再送正常顯示的值,不斷交替,直到調(diào)整該位結(jié)束。此時送正常顯示值給該位,再進入下一位調(diào)整閃爍程序。時間調(diào)整程序流程圖如圖18所示??刂奇I有效,進入月調(diào)整程序控制鍵有效,進入年調(diào)整程序等待按鍵程序等待按鍵程序減鍵有效加鍵有效加鍵有效減鍵有效月減1年加1月加1年減1控制鍵有效,進入星期調(diào)整程序控制鍵有效,進入日調(diào)整程序等待按鍵程序等待按鍵程序減鍵有效加鍵有效加鍵有效減鍵有效星期減1日加1星期加1日減1控制鍵有效,進入分調(diào)整程序控制鍵有效,進入小時調(diào)整程序等待按鍵程序等待按鍵程序減鍵有效加鍵有效加鍵有效減鍵有效分減1小時加1分加1小時減1控制鍵有效,跳出時間調(diào)整程序,進入主循環(huán)
14、程序圖18 時間設定程序流程圖 鬧鈴時間設定方法類似,不再贅述。3、主程序 下面介紹main.c主程序編寫,其他程序略。(1) 頭文件和一些宏定義#include #include #include 1602.h#include ds1302.h#define amhouraddr 0xc0 /存鬧鈴時的地址#define amminuteaddr 0xc2 /存鬧鈴分的地址#define amenaddr 0xc4 /存鬧鐘使能標志的地址(2) 管腳、常量、變量定義/定義管腳sbit led_alarm=p21;/報警燈sbit beep_alarm=p20; /蜂鳴器sbit key_tm
15、set = p32; /時間設置sbit key_amset = p33;/鬧鈴設置sbit key_up = p34;/上調(diào)sbit key_down = p35;/下調(diào)sbit key_amen = p36;/鬧鈴開關sbit key_review = p37;/查看/定義標識volatile bit flagkeypress = 0; /有鍵按下標志volatile bit flagshow = 0; /顯示標志volatile bit flagtmset = 0; /時間設置狀態(tài)標志volatile bit flagamset = 0; /鬧鈴設置狀態(tài)標志volatile bit fl
16、agamen = 0; /鬧鈴使能標志,0為鬧鈴不使能,1為鬧鈴使能volatile bit flagalarm = 0; /鬧鈴狀態(tài)標志/按鍵響應用變量uchar keyvalue,keytmset,keyamset,keyup,keydown,keyset,keyamen,keyreview;/ds1302時鐘用變量systemtime currenttime;uchar year, month, day, hour, minute, second;uchar amhour, amminute,amstart;/報警及存儲用變量/char * psave;/字符串顯示用變量uchar st
17、r16 = 000000;uchar date9=00-00-00, time9=00:00:00;uchar hide, setnum;uint counter; (3) 函數(shù)聲明/函數(shù)聲明void int2str(int x, char* str);void delay1ms(unsigned int count);void data_init();void timer0_init();void timer0_isr () ;void keyprocess(uint num);(4) 各子程序/整型轉(zhuǎn)字符串的函數(shù),轉(zhuǎn)換范圍0-65536void int2str(int x, char* s
18、tr) int i=1; int tmp=10; while(x/tmp!=0) i+; tmp*=10; tmp=x; stri=0; while(i1) str-i=0+(tmp%10); tmp/=10; str0=tmp+0; void delay1ms(unsigned int count)unsigned int i,j;for(i=0;icount;i+)for(j=0;j= 450) flagshow = 1; counter = 0; /設定閃爍標志 if (hide = 1) hide = 0; else hide = 1; void keyprocess(uint num
19、) switch (num) case 1: /tmset鍵被按下。setnum=0-管設置;1-年;2-月;3-日;4-時;5-分;6-秒,按一下setnum加1。 if (flagamset=1) /從鬧鈴時間設置進入當前時間設置 flagamset = 0;flagtmset = 1;setnum = 1; else if (flagtmset=0)/從正常狀態(tài)進入當前時間設置 flagtmset = 1;setnum = 1; else /已經(jīng)在時間設置狀態(tài) setnum +; if (setnum = 7) /已經(jīng)設定完畢,則存盤退出 setnum = 0;flagtmset = 0
20、; break; case 2: /amset鍵被按下。setnum=0-關設置;1-時;2-分,按一下setnum加1。 if (flagtmset=1) /從當前時間設置進入鬧鈴時間設置 flagtmset = 0;flagamset = 1;setnum = 1; /清屏l1602_string(1,1, );l1602_string(2,1, );/讀出當前鬧鈴時間并顯示 int2str(amhour,str1); l1602_string(2,1,str1);int2str(amminute,str1); l1602_string(2,4,str1); else if (flagam
21、set=0)/從正常狀態(tài)進入鬧鈴時間設置 flagamset = 1;setnum = 1; /清屏l1602_string(1,1, );l1602_string(2,1, );/讀出當前鬧鈴時間并顯示 int2str(amhour,str1); l1602_string(2,1,str1);int2str(amminute,str1); l1602_string(2,4,str1); else /已經(jīng)在鬧鈴時間設置狀態(tài) setnum +; if (setnum = 3) /已經(jīng)設定完畢,則存盤退出并返回正常顯示界面 /存入鬧鈴時間 write1302(0x8e,0x00); /寫入允許 w
22、rite1302(amhouraddr,amhour);delay1ms(500); write1302(amminuteaddr,amminute);delay1ms(500); write1302(0x8e,0x80); /寫入禁止amhour=read1302(amhouraddr);amminute=read1302(amminuteaddr); setnum = 0;flagamset = 0; break; case 3: /up鍵被按下 if (flagtmset = 1) /如果在當前時間設置狀態(tài) switch (setnum) case 0: case 1: /年 if (y
23、ear99)year+; write1302(0x8e,0x00); /寫入允許 ds1302_settime(ds1302_year,year); write1302(0x8e,0x80); /禁止寫入 break; case 2: /月 if (month12) month+; write1302(0x8e,0x00); /寫入允許 ds1302_settime(ds1302_month,month); write1302(0x8e,0x80); /禁止寫入 break; case 3: /日 if (day31) day+; write1302(0x8e,0x00); /寫入允許 ds1
24、302_settime(ds1302_day,day); write1302(0x8e,0x80); /禁止寫入 break; case 4: /時 if (hour23) hour+; write1302(0x8e,0x00); /寫入允許 ds1302_settime(ds1302_hour,hour); write1302(0x8e,0x80); /禁止寫入 break; case 5: /分 if (minute59) minute+; write1302(0x8e,0x00); /寫入允許 ds1302_settime(ds1302_minute,minute); write1302
25、(0x8e,0x80); /禁止寫入 break; case 6: /秒 if (second59) second+; write1302(0x8e,0x00); /寫入允許 ds1302_settime(ds1302_second,second); write1302(0x8e,0x80); /禁止寫入 break; if (flagamset=1) /如果在鬧鈴設置狀態(tài) switch (setnum) case 1: /時 if (amhour23) amhour+; break; case 2: /時 if (amminute0)year-; write1302(0x8e,0x00);
26、/寫入允許 ds1302_settime(ds1302_year,year); write1302(0x8e,0x80); /禁止寫入 break; case 2: /月 if (month0) month-; write1302(0x8e,0x00); /寫入允許 ds1302_settime(ds1302_month,month); write1302(0x8e,0x80); /禁止寫入 break; case 3: /日 if (day0) day-; write1302(0x8e,0x00); /寫入允許 ds1302_settime(ds1302_day,day); write130
27、2(0x8e,0x80); /禁止寫入 break; case 4: /時 if (hour0) hour-; write1302(0x8e,0x00); /寫入允許 ds1302_settime(ds1302_hour,hour); write1302(0x8e,0x80); /禁止寫入 break; case 5: /分 if (minute0) minute-; write1302(0x8e,0x00); /寫入允許 ds1302_settime(ds1302_minute,minute); write1302(0x8e,0x80); /禁止寫入 break; case 6: /秒 if
28、 (second0) second-; write1302(0x8e,0x00); /寫入允許 ds1302_settime(ds1302_second,second); write1302(0x8e,0x80); /禁止寫入 break; if (flagamset=1) /如果在鬧鈴設置狀態(tài) switch (setnum) case 1: /時 if (amhour0) amhour-; break; case 2: /時 if (amminute0) amminute-; break; break; break; case 5: /鬧鈴使能鍵被按下 if (flagamen = 0) /
29、存入鬧鈴時間 write1302(0x8e,0x00); /寫入允許 write1302(amenaddr,1); delay1ms(500); write1302(0x8e,0x80); /寫入禁止 flagamen = 1; l1602_string(2,11,open ); else /存入鬧鈴時間 write1302(0x8e,0x00); /寫入允許 write1302(amenaddr,0); delay1ms(500); write1302(0x8e,0x80); /寫入禁止 flagamen = 0; l1602_string(2,11,close); break; case
30、6: /鬧鈴review鍵按下,實際功能就是在鬧鈴響的時候關鈴聲 led_alarm = 1; beep_alarm = 1; flagalarm = 0; break; /* 名稱 : main()* 功能 : 主函數(shù)*/void main() uint i, j,temp; ea = 0;timer0_init(); /定時器0初始化 data_init();initial_ds1302();ea = 1;/載入鬧鐘使能信號 temp = read1302(amenaddr);if (temp = 1) flagamen = 1;else if (temp = 0) flagamen =
31、0;else /存入鬧鈴時間 write1302(0x8e,0x00); /寫入允許 write1302(amenaddr,0); delay1ms(500); write1302(0x8e,0x80); /寫入禁止 flagamen = 0;/載入鬧鈴時間amhour = read1302(amhouraddr);if (amhour23)|(amhour59)|(amminute0) amminute = 0; /存入鬧鈴時間 write1302(0x8e,0x00); /寫入允許 write1302(amminuteaddr,amminute); delay1ms(500); write
32、1302(0x8e,0x80); /寫入禁止 amminute=read1302(amminuteaddr); /顯示初始化l1602_init();l1602_string(1,1, welcome to my );l1602_string(2,1, digital timer! );/延時for (i=0;i1000;i+) for (j=0;j1000;j+) ; /初始化屏幕l1602_string(1,1, alarm );if (flagamen = 1) l1602_string(2,1, open );else l1602_string(2,1, close ); while(
33、1) if (flagalarm = 1) led_alarm = 0; beep_alarm = 0; else led_alarm = 1; beep_alarm = 1; /時間顯示 if (flagshow = 1) /讀出日期時間值 ds1302_gettime(¤ttime); year = currenttime.year; month = currenttime.month; day = currenttime.day; hour = currenttime.hour; minute = currenttime.minute; second = currenttim
34、e.second; datetostr(¤ttime); timetostr(¤ttime); /flagalarm=0為鬧鈴關閉狀態(tài),flagalarm=1為鬧鈴打開狀態(tài), if (flagamen = 1)&(hour = amhour)&(minute = amminute)&(amstart = 0) flagalarm = 1; amstart = 1; else if (flagamen != 1)|(hour != amhour)|(minute != amminute) flagalarm = 0; amstart = 0; /如果不在鬧鈴設置狀態(tài)則顯示
35、當前日期時間 if (flagamset = 0) l1602_string(1,1,currenttime.datestring); l1602_string(2,1,currenttime.timestring); else /如果在鬧鈴狀態(tài)則顯示鬧鈴時和分 int2str(amhour,str1); l1602_string(2,1,str1); l1602_string(2,3,:); int2str(amminute,str1); l1602_string(2,4,str1); /產(chǎn)生時間設定時的閃爍效果,只在閃爍標志置位時運行 /setnum=0-未設定;1-年;2-月;3-日;4
36、-時;5-分;6-秒 if (flagtmset=1)&(hide=1) switch (setnum) case 0: break; case 1: /年 l1602_string(1,1, ); break; case 2: /月 l1602_string(1,4, ); break; case 3: /日 l1602_string(1,7, ); break; case 4: /時 l1602_string(2,1, ); break; case 5: /分 l1602_string(2,4, ); break; case 6: /秒 l1602_string(2,7, ); break
37、; default: break; else if (flagamset=1)&(hide=1) switch (setnum) case 0: break;case 1: /時 l1602_string(2,1, ); break; case 2: /分 l1602_string(2,4, ); break;default: break; flagshow = 0; /以下為鍵盤查詢,當有按鍵從按下到彈起時,該按鍵被響應。 if (key_tmset)&(keytmset=0) flagkeypress = 1;keyvalue = 1; else if (key_amset)&(keyamset=0) flagkeypress = 1; keyvalue = 2; else if (key_up)&(keyup=0) flagkeypress = 1; keyvalue = 3; else if (key_down)&(keydown=0) flagkeypress = 1; keyvalue = 4; else if (key_amen)&(keyamen=0) flagkeypress = 1; keyvalue = 5
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T-ZSA 278-2024 軌道交通.用銑磨機器人
- 2025年度高新技術(shù)企業(yè)員工離職競業(yè)限制補償金合同
- 二零二五年度教育行業(yè)人才招聘定金協(xié)議
- 二零二五年度金融機構(gòu)間反洗錢合作協(xié)議
- 2025年度金融項目評審合同風險控制
- 二零二五商場合同管理操作手冊附小時計費服務條款
- 2025年度環(huán)保產(chǎn)業(yè)合作開發(fā)合伙協(xié)議書
- 二零二五年度供用熱力合同糾紛司法解釋及執(zhí)行難點解析
- 二零二五年度超市促銷活動商品陳列策劃合同
- 2025沈陽公司總經(jīng)理聘用合同全面規(guī)范管理細則
- Vue.js前端開發(fā)實戰(zhàn)(第2版)全套完整教學課件
- 2023風力發(fā)電機組延壽評估技術(shù)規(guī)范
- 鞋業(yè)-品質(zhì)培訓
- 小學思政課《愛國主義教育》
- 瓜豆原理【模型專題】(含答案解析)
- 單價、數(shù)量、總價-教學課件【A3演示文稿設計與制作】
- 中小學生安全教育手冊全面版
- 變電站安裝工程安全風險分級管控清單
- DDI-能力解構(gòu)詞典
- 燃氣管道工程監(jiān)理實施細則
- 安全經(jīng)驗分享之行車安全經(jīng)驗分享
評論
0/150
提交評論