




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、南或t船博單片機原理課程設計題 目:基于AT89C52的電子時鐘設計姓 名:學 院:專 業(yè):班 級:學 號:指導教師:年月日農業(yè)大學教務處制aortiu目錄摘要 2關鍵詞2引言 21 設計要求與方案論證 21.1設計要求 21. 2系統(tǒng)方案選擇方案和論證 21.1.1 單片機芯片的選擇方案和論證 21.1.2 顯示模塊選擇方案和論證 31.1.3 時鐘芯片的選擇方案和論證 31.1.4 硬件設計與實現(xiàn)32. 1電路設計框圖32. 2系統(tǒng)硬件概述32. 3主要單元電路的設計42.1.1 單片機主控制模塊的設計 42.1.2 時鐘電路模塊的設計 42.1.3 鍵盤模塊設計 52.1.4 蜂鳴器模塊
2、的設計 52.1.5 顯示模塊的設計 52.1.6 軟件設計 63. 1程序流程框圖 63. 2程序的設計74. 系統(tǒng)調試 74.1軟件調試74.2硬件調試84.3實驗箱調試結果 85.總結心得體會 9附錄一:系統(tǒng)程序9基于AT89C52的電子時鐘設計指導教師:呂成緒 胡飛摘要: 單片機在電子產品中的應用越來越廣泛,特別是51 系列的單片機,由于其使用方便、價格低廉等優(yōu)勢,在市場上占有很大的份額。AT89C52就是51系列中的一個比較成熟的型號。本設計是一個多功能的實時時鐘,帶秒表、整點報時、鬧鈴、調整時間等功能??砂存I直接設置鬧鈴時間。由AT89C51單片機、DS1302、LCD1602等模
3、塊組成。現(xiàn)代社會,時間就是金錢,時鐘是每個人的必備品。本設計實現(xiàn)了所需功能,給大家?guī)矸奖?,整體性好、人性化強、可靠性高,實現(xiàn)了時鐘的多功能應用。關鍵詞: 電子時鐘;DS1302; LCD1602;引言:隨著科技的快速發(fā)展,時間的流逝, 從觀太陽、擺鐘到現(xiàn)在電子鐘,人類不斷研究,不斷創(chuàng)新紀錄。美國 DALLAS公司推出的具有涓細電流充電能的低功耗實時時鐘電路 DS1302它可以對年、月、日、周、時、分、秒進行計時,還具有閏年補償?shù)榷喾N功能, 而且DS1302的使用壽命長,誤差小。對于數(shù)字電子時鐘采用直觀的數(shù)字顯示,可以同 時顯示年、月、日、周日、時、分、秒和溫度等信息,還具有時間校準等功能。該
4、設計以AT89C51i1片機作為核心,功耗小,能在3V的低壓工作,電壓可選用35V電壓供電 綜上所述,此電子時鐘具有讀取方便、顯示直觀、功能多樣、電路簡潔、成本低廉等諸多優(yōu)點,符合電子儀器儀表的發(fā)展趨勢,具有廣闊的市場前景。1 .設計要求與方案1.1 設計要求:(1) 啟動時顯示制作的年、月、日、制作者的學號等信息。(2)24 小時計時功能(精確到秒)(3) 整點報時功能。(4) 秒表功能(5) 省電功能模式(未設計)1.2 系統(tǒng)基本方案選擇1.2.1 單片機芯片的選擇方案和論證方案一 :采用89C51芯片作為硬件核心,采用 Flash ROM,部具有4KB ROM存儲空間,能于 3V的超低壓
5、工作,而且與MCS-51系列單片機完全兼容,但是運用于電路設計中時由于不 具備ISP在線編程技術,當在對電路進行調試時,由于程序的錯誤修改或對程序的新增 功能需要燒入程序時,對芯片的多次拔插會對芯片造成一定的損壞。方案二 :采用AT89S52片ROMir者B采用Flash ROM能以3V的超底壓工作;同時也與MCS-51 系列單片機完全該芯片部存儲器為 8KBROh#儲空間,同樣具有89C51的功能,且具有 在線編程可擦除技術,當在對電路進行調試時,由于程序的錯誤修改或對程序的新增功 能需要燒入程序時,不需要對芯片多次拔插,所以不會對芯片造成損壞。相比之下,我們在實驗箱實際仿真時選擇采用AT8
6、9S52作為主控制系統(tǒng),由于proteus庫中沒有AT89S52在原理圖仿真時采用了 AT89C51.1.2.2 顯示模塊選擇方案和論證方案一:采用點陣式數(shù)碼管顯示,點陣式數(shù)碼管是由八行八列的發(fā)光二極管組成,對于 顯示文字比較適合,如采用在顯示數(shù)字顯得太浪費,且價格也相對較高,所以也不用此種 作為顯示.方案二:采用LCD夜晶顯示屏,液晶顯示屏的顯示功能強大,顯示多樣,清晰可見. 本設計采用LCD1602.1.2.3 時鐘芯片的選擇方案和論證萬桑一:直接采用單片機定時計數(shù)器提供秒信號,使用程序實現(xiàn)年、月、日、時、分、秒計 數(shù)。采用此種方案雖然減少芯片的使用,節(jié)約成本,但是,實現(xiàn)的時間誤差較大。所
7、以 不采用此方案。方 ' :采用DS1302時鐘芯片實現(xiàn)時鐘,DS1302K片是一種高性能的時鐘芯片,可自動對秒、分、時、日、周、月、年以及閏年補償?shù)哪赀M行計數(shù),而且精度高,位的RAM做為數(shù)據(jù)暫存區(qū),工作電壓 2.5V5.5V圍,2.5V時耗電小于300nA.綜上各方案所述,對此次作品的方案選定:采用AT89C52乍為主控制系統(tǒng),DS1302 提供時鐘計時,LCD1602W幕顯示.2 .系統(tǒng)的硬件設計與實現(xiàn)2.1 電路設計框圖本電路是由AT89C5H1片機為控制核心,具有在線編程功能,低功耗,能在3V超低壓工作;時鐘電路由DS130的供,它是一種高性能、低功耗、帶 RAM勺實時時鐘電
8、路,它可以對年、月、日、時、分、秒進行計時,具有閏年補償功能,工作電壓為2.5V 5.5V。采用三線接口與CPU!行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘 信號或RAMft據(jù)。DS1302部有一個31*8的用于臨時性存放數(shù)據(jù)的RAMff存器??僧a生 年、月、日、周日、時、分、秒,具有使用壽命長,精度高和低功耗等特點,同時具有掉電自動保存功能;顯示部份由LCD160幽成.2.3 主要單元電路的設計2.3.1單片機主控制模塊的設計13RW-.n X2 .CH-rarr,圖-1主控制系統(tǒng)C2Hk,尹,,gCLKHSTwcz VCQ1Ml. a-L .D0 1皿-=TE-:TT=i-XTML
9、IXTALZFQITADI ra.iADi T口 "工 rajrADS 叩口 且/口 W0TFZL IfflB PSi'AlCPS4EMALEFZA-ni rz.KAizEAnjuKUPia p i.iF2WA1S中口繪F3.ir?KBP US PO P 1.4P3J1HT13 njmTt p 工!tonPisP3LST1ri.amPITFMifM工J73szi任1:1P u 13 口AT89C51單片機為40引腳雙列直插芯片,有四個I/O 口 P0,P1,P2,P3。單片機的最小系統(tǒng)如上圖所示,18引腳和19引腳接時鐘電路,XTAL1接外部晶振和微 調電容的一端,在片它是振
10、蕩器倒相放大器的輸入,XTAL2接外部晶振和微調電容的另一 端,在片它是振蕩器倒相放大器的輸出.第9引腳為復位輸入端,接上電容,電阻及開關后 夠上電復位電路.如圖-1所示.2.3.1 時鐘電路模塊的設計圖-2 DS1302的引腳圖圖-2示出DS1302的弓唧排歹【,其中Vcc1為后備電源,Vcc2為主電源。在主電源 關閉的情況下,也能保持時鐘的連續(xù)運行。DS1302由Vcc1或Vcc2兩者中的較大者供電。 當 Vcc2大于 Vcc1+0.2V 時,Vcc2 給 DS1302供電。當 Vcc2小于 Vcc1 時,DS1302由 Vcc1 供電。X1和X2是振蕩源,外接32.768KHz晶振。RS
11、T是復位/片選線,通過把RST俞入 驅動置高電平來啟動所有的數(shù)據(jù)傳送。 RST俞入有兩種功能:首先,RST接通控制邏輯, 允許地址/命令序列送入移位寄存器;其次,RSTS供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手 段。當RST為高電平時,所有的數(shù)據(jù)傳送被初始化,允許對 DS1302進行操作。如果在 傳送過程中RSTSS為低電平,則會終止此次數(shù)據(jù)傳送,I/O引腳變?yōu)楦咦钁B(tài)。上電動行 時,在Vcc大于等于2.5V之前,RST必須保持低電平。中有在SCLKM氐電平時,才能 將RST置為高電平,I/O為串行數(shù)據(jù)輸入端(雙向)。SCLK!臺終是輸入端。2.3.2 鍵盤模塊設計圖-3鍵盤模塊如圖-3, K1、K2、
12、K3 K4均為多功能鍵。K1為秒表設置鍵,按K4鍵時為時鐘確定 鍵;K2在K4按下時為時鐘下調鍵,在 K3按下時為鬧鐘確定鍵,在 K1按下時為秒表開 始鍵;K3為鬧鐘設置鍵,在K4按下時為時鐘上調鍵,在 K1按下時為秒表暫停鍵;K4 為時鐘設置鍵,在K3按下時為鬧鐘移位鍵,在 K1按下時為秒表退出鍵。2.3.3 蜂鳴器模塊的設計圖-4聲音輸出模塊鬧鈴時間到和整點時,P3_7給低電平,蜂鳴器響2.3.4 顯示模塊的設計LQLHLdkhsl' 8 ' ATfem' ' 'naN或 hW1D1112 2心11底13"悟 fl S圖-5 LCD顯示輸出
13、模塊如圖一5, 1腳VS*口 3腳VEE為電源接地,第2管腳VDDg電源,第4管腳RS為 寄存器選擇,高電平1時選擇數(shù)據(jù)寄存器、低電平0時選擇指令寄存器;RW的讀寫信號 線,高電平1時進行讀操作,低電平0時進行寫操作;E(或EN調為使能(enable)端; 第714腳DAD7為8位雙向數(shù)據(jù)端??刂坪蛿?shù)據(jù)端都接了上拉電阻用來驅動。3 .系統(tǒng)的軟件設計3.1 程序流程框圖產始定時器。初始化進入正常顯示搐式港昌巳示器LCD16初始圖-A主程序流程圖時間調整程序流程圖圖-B3.2 程序的設計 見附錄4 .系統(tǒng)調試4.1 軟件調試結果用戶時鐘主界面秒表界面設置鬧鈴界面-1rn.UALl!r * y* *
14、 "時鐘仿真圖U3:m 一1116C2-.- , i口 HlFMl 事FsE , 1 1 <hV, Q=-MH:'rEP"FUJHJU miffin 而乖:巾i±”下:mAiit FZJMII ,工網(wǎng)RF7 ,MAirSir3im4叫JU©P3;Hm4m p31smFJTE4.2 硬件調試結果起初蜂鳴器有點問題不響,后來發(fā)現(xiàn)是定義錯端口引起的。其他功能正常。4.3 實驗箱調試結果實現(xiàn)功能的具體方法:時鐘主界面時按下K1鍵進入秒表功能,按K2秒表開始,再按K3秒表停,按鍵K4 返回時間顯示;按K4開始調試(移位“年一秒”),接著按K2、K3調
15、節(jié)時間增減;按K2 開啟鬧鐘,K3調節(jié)時間,K4(移位“時分”);按“年一秒”的順序移位,按鍵 K2進行 減運算,按鍵K3進行加運算,按鍵K1返回到主界面并顯示設置值。按下K3鍵,實現(xiàn)鬧鐘定時調整,按鍵 K4進行“分-秒”移位,按鍵K3進行上調, 按鍵K2返回到主界面。主界面K2實現(xiàn)開啟/關閉鬧鐘的功能。按下K1鍵進入秒表,按鍵K2開始計時,K3暫停計時,K4返回到主界面。5 .總結心得體會:這次實習我們組選擇的是電子時鐘設計。實習任務包括理論設計、調試與仿真、撰 寫設計報告等。其中理論設計又包括選擇總體方案,硬件系統(tǒng)設計、軟件系統(tǒng)設計;硬 件設計包括單元電路,選擇元器件及計算參數(shù)等;軟件設計
16、包括模塊化層次結構圖,程 序流程圖。程序設計是課程設計的關鍵環(huán)節(jié),開始以為時鐘會很簡單,就算遇到問題應 該也很好解決,但當自己真正去做的時候,發(fā)現(xiàn)了好多困難。于是查資料,問同學。經(jīng) 過和同學的探討,通過調試進一步完善程序設計,最后雖然省電模式?jīng)]實現(xiàn)但其他基本達到課題所要求的指標。完成了實習任務。這次實習我更加了解了單片機的應用,更加 牢牢的掌握了書本知識與現(xiàn)實的結合,總之這是實習收獲很大,以后還需多動手實踐, 多練習編程,才能熟練掌握單片機。附錄一:程序:#include<reg52.h>#include<INTRINS.H>#include<lcd1602.h&
17、gt;#include<ds18b20.h>#define uchar unsigned char#define uint unsigned int#define TIME (0X10000-50000)#define FLAG 0xf4 / 鬧鐘標志sbit rst=P1A2;/DSsbit clk=P1A0;sbit dat=P1A1;sbit rs=P2A0; /LCDsbit rw=P2A1;sbit e=P2A2;sbit beep=P1A3;sbit mbkey=P1A4;uchar k;uchar flag;uchar i=20,j,time116;uchar ala
18、rm2,time215,time3;time53;個月的最大日期/ms 秒表進數(shù),uchar code Day=31,28,31,30,31,30,31,31,30,31,30,31; /12( 非閏年 )uchar key2num,ms=0,mbmiao=0,mbfen=0,mbkeynum,num;mbmiao.mbfen秒表的秒.分,key2num是key5的計數(shù) uchar code table=" 32210324 GYY"uchar code table1=" 32210326 GLQ"uchar code table4=" 00:
19、00:00 MB "void delay(uint z) uint x,y;for(x=z;x>0;x-)for(y=110;y>0;y-);delay1ms(uchar time) / 延時 1ms uchar i,j;for(i=0;i<time;i+) for(j=0;j<250;j+);/LCD 驅動部分 enable() rs=0;rw=0; e=0; delay1ms(3); e=1;write2(uchar i) P0=i;rs=1; rw=0; e=0; delay1ms(2); e=1;write1(uchar data *address,m
20、) uchar i,j;for(i=0;i<m;i+,address+) j=*address;write2(j);/LCD 顯示 lcdshow() P0=0XC;/ 顯示器開、光標關enable();P0=0x80;/ 第一行 015enable(); write1(time1,16);P0=0xc1;/ 第二行 114enable(); write1(time2,15);/DS1302 讀寫子程序 write(uchar address) uchar i;clk=0;_nop_();rst=1;_nop_();for(i=0;i<8;i+) dat=address&1
21、;_nop_();clk=1;address>>=1;clk=0;uchar read() uchar i,j=0;for(i=0;i<8;i+) j>>=1;_nop_();clk=0;_nop_();if(dat)j|=0x80;_nop_();clk=1;return(j);/ 部分顯示數(shù)據(jù)初始化timestart()time16=time19='-'time12='2',time13='0'time22=time25=':'write(0xc1);alarm0=read();rst=0;wri
22、te(0xc3);alarm1=read();rst=0;write(0xc5);time10=read();rst=0;/ 讀取時間readtime() uchar i,m,n;write(0x8d);/ 讀取年份m=read();rst=0;time14=m/16+0x30;time15=m%16+0x30;time115=m+0x30;for(i=7,n=0x89;i<11;i+=3,n-=2)/ 讀取月份和日期 write(n);m=read();rst=0;time1i=m/16+0x30;time1i+1=m%16+0x30;for(m=0,i=0,n=0x85;i<7
23、;i+=3,n-=2,m+)/ 讀取時, 分, 秒 write(n);timem=read();/ 將實時的時分秒給timerst=0;time2i=timem/16+0x30;time2i+1=timem%16+0x30;baoshi()/ 整點報時 beep=1;if(time1=0)if(time2=0)beep=0;delay(10);beep=1;/ 鬧鐘部分showalarm() uchar i;for(i=1;i<10;i+)beep=0;delay(1000);beep=1;/ 根據(jù)日期的變動自動調整星期/ 設置時間settime()uchar i=0x85,year,m
24、onth,day,n;time26=time27=0x30,time114=time115=0x20;lcdshow();while(1)P0=0x0e;/ 顯示器開顯示、開光標enable();P0=i;/ 定光標enable();P1=0xf0;/ 有按鈕按下/ 延時 0.1s 去抖動/K1 ,設置時鐘/K2 ,上調if(P1!=0Xf0)delay1ms(100);if(P1!=0Xf0)j=7;if(P1=0X70)i+=3;if(i=0x8e)i=0xc2;else if(i>0xc5) i=0x85;else if(P1=0xb0) year=(time14&0xf)
25、*10+(time15&0xf);month=(time17&0xf)*10+(time18&0xf); day=(time110&0xf)*10+(time111&0xf); if(i=0x85)year+;if(year>99)year=0;if(year%4)!=0)if(month=2&&day=29) day=28;else if(i=0x88)month+;if(month>12)month=1;if(day>Daymonth-1)day=Daymonth-1;if(month=2&&(yea
26、r%4)=0)day=29;else if(i=0x8b)day+;if(day>Daymonth-1)if(month=2&&(year%4)=0)if(day>29)day=1;if(month!=2) day=1;else if(i=0xc2)n=(time20&0xf)*10+(time21&0xf);n+;if(n>23)n=0;time20=n/10+0x30;time21=n%10+0x30;elsen=(time23&0xf)*10+(time24&0xf);n+;if(n>59)n=0;time23=n/
27、10+0x30;time24=n%10+0x30;time14=year/10+0x30;time15=year%10+0x30;time17=month/10+0x30;time18=month%10+0x30;time110=day/10+0x30;time111=day%10+0x30;lcdshow();/K3 ,下調else if(P1=0xd0) year=(time14&0xf)*10+(time15&0xf);month=(time17&0xf)*10+(time18&0xf); day=(time110&0xf)*10+(time111
28、&0xf); if(i=0x85)year-;if(year<1)year=99;if(year%4)!=0)if(month=2&&day=29) day=28;else if(i=0x88)month-;if(month<1)month=12;if(day>Daymonth-1)day=Daymonth-1;if(month=2&&(year%4)=0) day=29;else if(i=0x8b)day-;if(day<1)if(month=2&&(year%4)=0)day=29;if(month!=2)
29、day=Daymonth-1;else if(i=0xc2)n=(time20&0xf)*10+(time21&0xf);n-;if(n<0)n=23;time20=n/10+0x30;time21=n%10+0x30;elsen=(time23&0xf)*10+(time24&0xf);n-;if(n<0)n=59;time23=n/10+0x30;time24=n%10+0x30;time14=year/10+0x30;time15=year%10+0x30;time17=month/10+0x30;time18=month%10+0x30;ti
30、me110=day/10+0x30;time111=day%10+0x30;lcdshow();else if(P1=0xe0)/K4, 確定設置 delay1ms(1000);write(0x8c);write(time14&0xf)*16+(time15&0xf);rst=0;write(0x8a);rst=0;for(i=7,n=0x88;i<11;i+=3,n-=2)write(n);write(time1i&0xf)*16+(time1i+1&0xf); rst=0;for(i=0;i<7;i+=3,n-=2)write(n);write(
31、time2i&0xf)*16+(time2i+1&0xf); rst=0;TR0=0;return; else TR0=0; return; if(j=0) TR0=0; return; / 設置鬧鐘 setalarm() uchar i,n; for(i=1;i<16;i+) time1i=0x20;time20=alarm0/16+0x30;time21=(alarm0&0x0f)+0x30;time23=alarm1/16+0x30;time24=(alarm1&0x0f)+0x30;time26=time27=0x30;lcdshow();i=0x
32、c2;while(1) P0=0xe;/ 顯示器開、光標開enable(); P0=i;/ 定光標enable(); P1=0xf0; if(P1!=0Xf0)/ 有按鈕按下 delay1ms(100);/ 延時 0.1s 去抖動if(P1!=0Xf0) j=7; if(P1=0X70)i+=3;if(i>0xc5)i=0xc2;else if(P1=0xb0)/ 按 K2,設鬧鐘if(i=0xc2)n=(time20&0xf)*10+(time21&0xf);n+;if(n>23)n=0;time20=n/10+0x30;time21=n%10+0x30;else
33、n=(time23&0xf)*10+(time24&0xf);n+;if(n>59)n=0;time23=n/10+0x30;time24=n%10+0x30;lcdshow();確定鬧鐘設置else if(P1=0xd0)/write(0xc0);write(time20&0x0f)*16+(time21&0x0f);rst=0;write(0xc2);write(time23&0xf)*16+(time24&0xf);rst=0;time10=FLAG;write(0xc4);write(time10);rst=0;TR0=0;time
34、start();return;elseTR0=0;timestart(); return;if(j=0)TR0=0;timestart();return;/lcdwrite() LCD 寫指令void lcdwrite(uchar write)rs=0;P0=write;delay(1);e=1;delay(1);e=0;/lcdshuju() LCD 寫數(shù)據(jù)void lcdshuju(uchar shuju)rs=1;P0=shuju;delay(1);e=1;delay(1);e=0;/ 秒表部分秒顯示函數(shù)void write_sfm(uchar add ,uchar date)/ uch
35、ar shi,ge;shi=date/10;ge=date%10;lcdwrite(0x80+0x40+add);lcdshuju(0x30+shi);lcdshuju(0x30+ge); void mbiao( ) lcdwrite(0x80+0x40);for(num=0;num<16;num+) lcdshuju(table4num);start:while(1) if(P1!=0Xf0) delay1ms(100);if(P1!=0Xf0) if(P1=0xd0) TR1=1;ET1=1;else if(P1=0xb0) TR1=0;else if(P1=0x70) return;goto start;/ 秒表函數(shù)/ 延時 0.1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【重型載貨汽車驅動橋主減速器設計計算案例3600字】
- 【酒店業(yè)發(fā)展視角下合肥市“十四五”城市規(guī)劃分析2100字】
- 飼料市場調研與產蛋雞飼料采購協(xié)議
- 生產事故應急演練方案
- 安全生產管理考試系統(tǒng)
- 融資租賃抵押貸款合同范本:融資租賃抵押借款協(xié)議
- 股東對公司無息借款及股權代持協(xié)議范本
- 二下第7單元數(shù)學試卷
- 第六單元人教版數(shù)學試卷
- 量子流體力學在航空航天中的應用
- 改變觀念提高效率課件
- 立責于心履責于行全面落實企業(yè)安全生產主體責任課件
- 建筑工程模板施工工藝技術要點講義豐富課件
- 醫(yī)療垃圾廢物處理課件
- 位置度公差以及其計算
- DBJ03-107-2019 房屋建筑和市政工程施工危險性較大的分部分項工程安全管理規(guī)范
- 《煤的發(fā)熱量測定方法》ppt課件
- 三寶、四口、五臨邊安全培訓PPT課件
- 護理崗位管理與績效考核-PPT課件
- 李墨林按摩療法(李墨林)237頁
- 幕墻施工安全技術交底
評論
0/150
提交評論