




已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
带日历电子钟1、 摘要本设计采用AT89S52系列单片机作为时钟的控制核心,电路使用了2个四位数码管,利用动态来实现显示功能,用于自动同步显示时间温度、日期星期,其切换时间为5秒。利用单片机定时中断程序设计出一秒钟的精确定时,可通过按钮实现了秒表、闹钟、倒计时、自动更新、可进行单倍速和24倍速计两种时等功能的切换,并用指示灯指示当前的工作状态,系统具有可设置年、月、日或时、分、秒的功能,调时过程中通过编程实现可调位的闪烁来标志,本设计具有农历功能,通过按键可实现输入特定的日期就可现实对应的农历。其中倒计时和闹钟到达预设的时间时,利用指示灯发出报警信号,系统还通过语音模块实现整点报时功能,另外,在设计中时附加了测温功能,实时测试环境的温度。做出实物后,我们将时钟连续工作了4天,测得平均每24小时的误差小于1秒。关键词:单片机、控制、显示、调时。2、 设计任务1、 基本要求 (1)用六位数码管显示年、月、日或时、分、秒,日历由时间自动同步。(2)可设置年、月、日或时、分、秒。(3)可进行单倍速和24倍速计两种时。(4)24小时误差小于4秒。(5)具有倒计时功能。2、 发挥部分(1)具有秒表功能。(2)24小时误差小于1秒。(3)具有自动日历功能,改变年、月能自动显示日和星期(切换显示年、月、日和星期、时、分)。(4)具有农历功能,改变日期能自动显示对应的农历(切换显示年、月、日和农历、时、分)。3、附加功能(1)测温功能(2)语音整点报时功能3、 方案设计1、 总体功能的描述1.1硬件的设计1)电路原理图本设计电路连接如上图所示,通过软件编程,配合外部硬件电路,实现带日历电子钟的多种功能。2) PCB图1.2软件的设计程序流程图主程序流程图:定时器0函数流程图: 定时器1函数流程图: 1.3模块分析显示模块单片机控制模块温度传感器模块按键输入模块工作指示灯模块语音报时模块1) 单片机控制模块:单片机控制模块在系统中处于核心地位。其工作包括读取并处理键盘输入、显示模块控制、处理各种功能的切换等任务。2) 按键输入模块:此模块完成对各种功能的控制,功能的切换在硬件上通过此部分来操作完成。3) 温度传感器模块:此模块配合完成测温功能。通过温度传度器对外部温度的读取,并将信号输入单片机,单片机将此信号进行处理,并做出判断,最终在数码管上显示。4) 工作指示灯模块:此部分是对各种功能操作的标志。为了知道系统工作在什么状态下,增加此模块进行指示。5) 语音报时模块:此模块实现时钟的整点报时,在系统工作前将人的声音录入系统。系统正常工作后,每到整点时系统会发出录入的声音,发出报时信号。2、 基本部分功能的实现 2.1自动更新、设置显示年、月、日或时、分、秒 本设计利用单片机中断程序设计出一秒钟的精确计数,自动更新显示年、月、日或时、分、秒,其显示切换时间设置为5秒。在显示过程中系统内部一直在扫描是否有按键设置时间的操作,其程序流程图如下所示: 2.2单倍速和24倍速计两种时 和2.1的程序流程图一样,系统原本工作在24小时制,通过按键可以调整为12小时制。 2.3倒计时功能同以上功能类似,由软件编程配合一部分外部电路可实现倒计时功能,其倒计时初值由外部按键输入实现,其最大初值可设为99天23小时59分59秒。当预设时间到达时,会有特定的指示灯进行指示。3、 发挥部分功能的实现 3.1秒表功能 秒表功能由按键输入进行设置开始结束,其最大时间可计时到23小时59分59秒。 3.2自动日历、农历功能功能 本系统可切换显示时间温度和日期星期,其切换时间为5秒。系统还具有农历功能,可任意查询对应日期的农历。 3.3闹钟功能 此功能使得系统具有闹钟提醒效应,当预设时间到达时,电路板上有指示灯进行指示。 3.4测温功能 本设计外接温度传感器,利用其接受的外部信号,输入到单片机进行处理,最后在数码管上显示,实现外部温度的实时测试。 3.5语音整点报时功能 此功能实现时钟的报时,通过软件编程,外接语音系统模块,从而实现语音的报时响应效果。4、 测试方法、数据及测试结果分析 基本原理弄清楚后,我们利用单片机开发板,通过Keil uVision3软件将程序反复的调试、修改,直至预期的功能全部实现。之后使用Protel 99 SE软件画出PCB图,做出实物,并在实物上进行试验,除了误差不能立即在实物上体现出来外,所有的功能都成功实现。因此我们将实物连续工作了4天,测得平均每24小时的误差小于1秒。4、 参考文献【1】张毅刚,单片机原理与应用,北京:高等教育出版社,2008.12。【2】张齐 杜群贵,单片机应用系统设计技术基于C语言编程,北京:电子工业出版社,2004.8。5、 附录单片机源程序:#include#include /包含_nop_()函数定义的头文件#define uchar unsigned char#define uint unsigned int/*全局变量声明部分*/sbit DQ=P31;sbit beep=P30;/蜂鸣器sbit LED1=P32;sbit LED2=P33;sbit LED3=P34;sbit LED4=P36;sbit LED5=P35;sbit LED6=P37;uchar code DIS_SEG711=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff;/*数码管09代码*/uchar code DIS_BIT8=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;/*数码管位选通*/uchar clockstr8;/*日历模式时间显示的数组*/uchar datestr8; /*日历模式日期显示的数组*/uchar yindatestr8;/*阴历日期显示的数组*/uchar miaostr8;/*秒表模式显示的数组*/uchar daoclockstr8;/*倒计时模式时间显示的数组*/uchar naoclockstr8; /*闹钟模式日期显示的数组*/uchar code year_code597=0x04,0xAe,0x53,0x0A,0x57,0x48,0x55,0x26,0xBd, / 1901-1903 00x0d,0x26,0x50,0x0d,0x95,0x44,0x46,0xAA,0xB9, / 1904-1906 90x05,0x6A,0x4d,0x09,0xAd,0x42,0x24,0xAe,0xB6, / 1907-1909 180x04,0xAe,0x4A,0x6A,0x4d,0xBe,0x0A,0x4d,0x52, / 1910-1912 270x0d,0x25,0x46,0x5d,0x52,0xBA,0x0B,0x54,0x4e, / 1913-1915 360x0d,0x6A,0x43,0x29,0x6d,0x37,0x09,0x5B,0x4B, / 1916-1918 450x74,0x9B,0xC1,0x04,0x97,0x54,0x0A,0x4B,0x48, / 1919-1921 540x5B,0x25,0xBC,0x06,0xA5,0x50,0x06,0xd4,0x45, / 1922-1924 630x4A,0xdA,0xB8,0x02,0xB6,0x4d,0x09,0x57,0x42, / 1925-1927 720x24,0x97,0xB7,0x04,0x97,0x4A,0x66,0x4B,0x3e, / 1928-1930 810x0d,0x4A,0x51,0x0e,0xA5,0x46,0x56,0xd4,0xBA, / 1931-1933 900x05,0xAd,0x4e,0x02,0xB6,0x44,0x39,0x37,0x38, / 1934-1936 990x09,0x2e,0x4B,0x7C,0x96,0xBf,0x0C,0x95,0x53, / 1937-1939 1080x0d,0x4A,0x48,0x6d,0xA5,0x3B,0x0B,0x55,0x4f, / 1940-1942 1170x05,0x6A,0x45,0x4A,0xAd,0xB9,0x02,0x5d,0x4d, / 1943-1945 1260x09,0x2d,0x42,0x2C,0x95,0xB6,0x0A,0x95,0x4A, / 1946-1948 1350x7B,0x4A,0xBd,0x06,0xCA,0x51,0x0B,0x55,0x46, / 1949-1951 1440x55,0x5A,0xBB,0x04,0xdA,0x4e,0x0A,0x5B,0x43, / 1952-1954 1530x35,0x2B,0xB8,0x05,0x2B,0x4C,0x8A,0x95,0x3f, / 1955-1957 1620x0e,0x95,0x52,0x06,0xAA,0x48,0x7A,0xd5,0x3C, / 1958-1960 1710x0A,0xB5,0x4f,0x04,0xB6,0x45,0x4A,0x57,0x39, / 1961-1963 1800x0A,0x57,0x4d,0x05,0x26,0x42,0x3e,0x93,0x35, / 1964-1966 1890x0d,0x95,0x49,0x75,0xAA,0xBe,0x05,0x6A,0x51, / 1967-1969 1950x09,0x6d,0x46,0x54,0xAe,0xBB,0x04,0xAd,0x4f, / 1970-1972 2070x0A,0x4d,0x43,0x4d,0x26,0xB7,0x0d,0x25,0x4B, / 1973-1975 2160x8d,0x52,0xBf,0x0B,0x54,0x52,0x0B,0x6A,0x47, / 1976-1978 2250x69,0x6d,0x3C,0x09,0x5B,0x50,0x04,0x9B,0x45, / 1979-1981 2340x4A,0x4B,0xB9,0x0A,0x4B,0x4d,0xAB,0x25,0xC2, / 1982-1984 2430x06,0xA5,0x54,0x06,0xd4,0x49,0x6A,0xdA,0x3d, / 1985-1987 2520x0A,0xB6,0x51,0x09,0x37,0x46,0x54,0x97,0xBB, / 1988-1990 2610x04,0x97,0x4f,0x06,0x4B,0x44,0x36,0xA5,0x37, / 1991-1993 2700x0e,0xA5,0x4A,0x86,0xB2,0xBf,0x05,0xAC,0x53, / 1994-1996 2790x0A,0xB6,0x47,0x59,0x36,0xBC,0x09,0x2e,0x50, / 1997-1999 2880x0C,0x96,0x45,0x4d,0x4A,0xB8,0x0d,0x4A,0x4C, / 2000-2002 2970x0d,0xA5,0x41,0x25,0xAA,0xB6,0x05,0x6A,0x49, / 2003-2005 3060x7A,0xAd,0xBd,0x02,0x5d,0x52,0x09,0x2d,0x47, / 2006-2008 3150x5C,0x95,0xBA,0x0A,0x95,0x4e,0x0B,0x4A,0x43, / 2009-2011 3240x4B,0x55,0x37,0x0A,0xd5,0x4A,0x95,0x5A,0xBf, / 2012-2014 3330x04,0xBA,0x53,0x0A,0x5B,0x48,0x65,0x2B,0xBC, / 2015-2017 3420x05,0x2B,0x50,0x0A,0x93,0x45,0x47,0x4A,0xB9, / 2018-2020 3510x06,0xAA,0x4C,0x0A,0xd5,0x41,0x24,0xdA,0xB6, / 2021-2023 3600x04,0xB6,0x4A,0x69,0x57,0x3d,0x0A,0x4e,0x51, / 2024-2026 3690x0d,0x26,0x46,0x5e,0x93,0x3A,0x0d,0x53,0x4d, / 2027-2029 3780x05,0xAA,0x43,0x36,0xB5,0x37,0x09,0x6d,0x4B, / 2030-2032 3870xB4,0xAe,0xBf,0x04,0xAd,0x53,0x0A,0x4d,0x48, / 2033-2035 3960x6d,0x25,0xBC,0x0d,0x25,0x4f,0x0d,0x52,0x44, / 2036-2038 4050x5d,0xAA,0x38,0x0B,0x5A,0x4C,0x05,0x6d,0x41, / 2039-2041 4140x24,0xAd,0xB6,0x04,0x9B,0x4A,0x7A,0x4B,0xBe, / 2042-2044 4230x0A,0x4B,0x51,0x0A,0xA5,0x46,0x5B,0x52,0xBA, / 2045-2047 4320x06,0xd2,0x4e,0x0A,0xdA,0x42,0x35,0x5B,0x37, / 2048-2050 4410x09,0x37,0x4B,0x84,0x97,0xC1,0x04,0x97,0x53, / 2051-2053 4500x06,0x4B,0x48,0x66,0xA5,0x3C,0x0e,0xA5,0x4f, / 2054-2056 4590x06,0xB2,0x44,0x4A,0xB6,0x38,0x0A,0xAe,0x4C, / 2057-2059 4680x09,0x2e,0x42,0x3C,0x97,0x35,0x0C,0x96,0x49, / 2060-2062 4770x7d,0x4A,0xBd,0x0d,0x4A,0x51,0x0d,0xA5,0x45, / 2063-2065 4860x55,0xAA,0xBA,0x05,0x6A,0x4e,0x0A,0x6d,0x43, / 2066-2068 4950x45,0x2e,0xB7,0x05,0x2d,0x4B,0x8A,0x95,0xBf, / 2069-2071 5040x0A,0x95,0x53,0x0B,0x4A,0x47,0x6B,0x55,0x3B, / 2072-2074 5130x0A,0xd5,0x4f,0x05,0x5A,0x45,0x4A,0x5d,0x38, / 2075-2077 5220x0A,0x5B,0x4C,0x05,0x2B,0x42,0x3A,0x93,0xB6, / 2078-2080 5310x06,0x93,0x49,0x77,0x29,0xBd,0x06,0xAA,0x51, / 2081-2083 5400x0A,0xd5,0x46,0x54,0xdA,0xBA,0x04,0xB6,0x4e, / 2084-2086 5490x0A,0x57,0x43,0x45,0x27,0x38,0x0d,0x26,0x4A, / 2087-2089 5580x8e,0x93,0x3e,0x0d,0x52,0x52,0x0d,0xAA,0x47, / 2090-2092 5670x66,0xB5,0x3B,0x05,0x6d,0x4f,0x04,0xAe,0x45, / 2093-2095 5760x4A,0x4e,0xB9,0x0A,0x4d,0x4C,0x0d,0x15,0x41, / 2096-2098 5850x2d,0x92,0xB5, / 2099 594;uchar code day_code19=0x0,0x1f,0x3b,0x5a,0x78,0x97,0xb5,0xd4,0xf3;uint code day_code23=0x111,0x130,0x14e;/月修正数据表uchar code week_code12=0,3,3,6,1,4,6,2,5,0,3,5; structuint year;/日历结构体变量 uchar year1;/year1=year%100; uchar month; uchar day; uchar week; uchar h; uchar h12; uchar m; uchar s; uint time; uchar wei;/调整时指示调的是哪一位 rili=2011,11,3,9,3,23,11,59,50,0,0;struct uchar year; uchar month; uchar day; yinli=0,0,0;structuchar h; uchar m;/秒表结构体变量 uchar s; uint ms; uint time; miao=0,0,0,0,0;structuchar h;/倒计时结构体变量 uchar m; uchar s; uint time; uchar day; uchar wei; daoji=0,0,0,0,0,0;struct uchar h; uchar m; uchar s; uchar wei; nao=0,0,0,0;uchar time;/用于测温函数中 uchar goneng=0;/*0-日历功能,1-秒表,2-倒计时,3-闹钟*/uchar wendu=18;uchar keynumber=0;/键值,uchar shanshou;bit yinyang=0;/1-显示阳历bit on24=0;/0-单倍速 1-24倍速bit on12=0;/0-24小时制,1-12小时制bit clte=1;/*0时显示日期,1时显示时间*/bit onoff=0;/*1-秒表开始,0-停止;*/bit daojionoff=0;/*1-开始倒计时,0-停止*/bit daojizhishi=0;/*1-倒计时结束*/bit naoonoff=0;/*1-闹钟开始*/bit naozhishi=0;/*1-闹钟响*/*1ms基准延时*/void delay(uint i) uchar j; while(i-) for(j=0;j115;j+) ; /*计算某月的天数的子函数*/uchar getmonthdays(uint year,uchar month) uchar days; switch(month) case 4: case 6: case 9: case 11:days=30;break; case 2:if(year%4=0)days=29; else days=28; break; default:days=31;break; return days;/*根据日期计算星期*/void getweek(uint aa,uchar bb,uchar cc) uchar c;/公元年份的前两位数 uchar y;/公元年份的后两位数 uint a1; char w;/表示星期 if(bb=1)aa=aa-1;bb=13; if(bb=2)aa=aa-1;bb=14; c=aa/100; y=aa%100; a1=26*(bb+1); w=(c/4+y+y/4+a1/10+cc-2*c-1); while(w0)w=w+7; rili.week=w%7; if(rili.week=0) rili.week=7;/*初始化程序*/void sys(void) TMOD=0x22; / TMOD=0000 0010B,使定时器T0的模式2 EA=1; /开总中断 ET0=1; /允许定时器T0的中断 ET1=1; TR0=1; /启动T0 TH0=TL0=6; /计数器T0高8位赋初值6 TH1=TL1=255;/*刷新数码管一次*/void display( uchar a8)uchar cnt; for(cnt=0;cnt(month_p+3)%8);temp5=(month_p+3)/8;temp=year_codecode_addr+temp5&temp;if(temp=0)return(29);elsereturn(30);void zhuanhuan(uint a,char b,uchar c)/*=转换当前农历信息=*/uchar temp1,temp2,temp3,month_p,d,t,year,month,day;uint temp4,code_addr;bit flag_y;if(a=2000)d=0;else d=0x80;t=(a%100)|(d&0x80);year=t&0x7f; /加载年月日数据,如为BCD则需转为十进制 month=b;day =c;code_addr=year-1; /定位数据表地址if(t7=0)code_addr+=0x64; code_addr*=3;temp1=(year_codecode_addr+2&0x60)5; /取当年春节所在的公历月份 temp2=year_codecode_addr+2&0x1f; /取当年春节所在的公历日 temp3=temp2-1; /计算当年春节离当年元旦的天数,春节只会在公历1月或2月if(temp1!=1)temp3+=31; /如果不在1月则天数加上31天(1月)if(month10)temp4=day_code1month-1+day;elsetemp4=day_code2month-10+day;if(month4; /从数据表中取该年的闰月月份,如为0则该年无闰月if (temp4=temp3) /判断公历日在春节前还是春节后/公历日在春节后或就是春节当日使用下面代码进行运算temp4 -=temp3;month = 1; flag_y = 0;month_p= 1; /month_p为月份指向,公历日在春节前或就是春节当日month_p指向首月temp1=get_moon_day(month_p,code_addr); /检查该农历月为大小还是小月,大月返回1,小月返回0 while(temp4=temp1) temp4-=temp1; month_p+=1; if(month=temp2) flag_y=flag_y; if(flag_y=0)month+=1; elsemonth+=1; temp1=get_moon_day(month_p,code_addr);day=temp4+1;else /公历日在春节前使用下面代码进行运算temp3-=temp4;if(year=0)year=0xe3;elseyear-=1;code_addr-=3;month = 12;flag_y = 0;if(temp2=0)month_p=12;elsemonth_p=13; /如果当年有闰月,一年有十三个月,月指向13,无闰月指向12 temp1=get_moon_day(month_p,code_addr);while(temp3temp1) temp3-=temp1; month_p-=1; if(flag_y=0)month-=1; if(month=temp2)flag_y=flag_y; temp1=get_moon_day(month_p,code_addr);day=temp1-temp3+1;yinli.year=year%100;yinli.month=month;yinli.day=day;/*测温函数*/*函数功能:将DS18B20传感器初始化,读取应答信号出口参数:flag */bit Init_DS18B20(void) bit flag; /储存DS18B20是否存在的标志,flag=0,表示存在;flag=1,表示不存在 DQ = 1; /先将数据线拉高 for(time=0;time2;time+) /略微延时约6微秒 ; DQ = 0; /再将数据线从高拉低,要求保持480960us for(time=0;time200;time+) /略微延时约600微秒 ; /以向DS18B20发出一持续480960us的低电平复位脉冲 DQ = 1; /释放数据线(将数据线拉高) for(time=0;time10;time+) ; /延时约30us(释放总线后需等待1560us让DS18B20输出存在脉冲) flag=DQ; /让单片机检测是否输出了存在脉冲(DQ=0表示存在) for(time=0;time80;time+) /延时足够长时间,等待存在脉冲输出完毕 ; return (flag); /返回检测成功标志/*函数功能:从DS18B20读取一个字节数据出口参数:dat*/ unsigned char ReadOneChar(void) unsigned char i=0;unsigned char dat; /储存读出的一个字节数据for (i=0;i8;i+) DQ =1; / 先将数据线拉高 _nop_(); /等待一个机器周期 DQ = 0; /单片机从DS18B20读书据时,将数据线从高拉低即启动读时序 _nop_(); /等待一个机器周期 DQ = 1; /将数据线人为拉高,为单片机检测DS18B20的输出电平作准备 for(time=0;time=1; if(DQ=1) dat|=0x80; /如果读到的数据是1,则将1存入datelsedat|=0x00;/如果读到的数据是0,则将0存入dat /将单片机检测到的电平信号DQ存入ri for(time=0;time20;time+) ; /延时60us,两个读时序之间必须有大于1us的恢复期 return(dat); /返回读出的十六进制数据/*函数功能:向DS18B20写入一个字节数据入口参数:dat*/ WriteOneChar(unsigned char dat)unsigned char i=0;for (i=0; i8; i+) DQ =1; / 先将数据线拉高 _nop_(); /等待一个机器周期 DQ=0; /将数据线从高拉低时即启动写时序 DQ=dat&0x01; /利用与运算取出要写的某位二进制数据, /并将其送到数据线上等待DS18B20采样 for(time=0;time10;time+) ;/延时约30us,DS18B20在拉低后的约1560us期间从数据线上采样 DQ=1; /释放数据线 for(time=0;time=1; /将dat中的各二进制位数据右移1位 for(time=0;time=12) rili.h12=rili.h-12; else rili.h12=rili.h;update(clockstr,rili.h12,rili.m,rili.s,wendu);else update(clockstr,rili.h,rili.m,rili.s,wendu); if(rili.wei=3) shanshou+; if(shanshou=20) switch(rili.wei) case 1:datestr1=10;break;case 2:datestr3=10;break;default:datestr5=10;break; else if(shanshou=40)shanshou=0; display(datestr);else shanshou+; if(shanshou=12) rili.h12=rili.h-12; else rili.h12=rili.h;update(clockstr,rili.h12,rili.m,rili.s,wendu); else update(clockstr,rili.h,rili.m,rili.s,wendu); if(clte=1) display(yindatestr); else display(clockstr); else getweek(rili.year,rili.month,rili.day); rili.year1=rili.year%100; update(datestr,rili.year1,ri
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025北京大兴国际机场临空经济区(廊坊)幼儿园招聘合同制教师3名考前自测高频考点模拟试题附答案详解(模拟题)
- 2025年河北唐山滦南县第二批选聘事业编制卫生专业技术人员5名模拟试卷完整参考答案详解
- 2025广西柳钢集团技术技能人才社会招聘考前自测高频考点模拟试题及参考答案详解1套
- 2025湖北十堰市城市发展控股集团有限公司及所属子公司招聘拟聘用人员模拟试卷及完整答案详解1套
- 安全培训教师个人事迹课件
- 2025年节能型空气分离设备项目合作计划书
- 2025广西钦州市钦南区林业局招聘1人模拟试卷参考答案详解
- HIV-1-tat-Protein-1-9-生命科学试剂-MCE
- 安全培训效果评估方法课件
- GSPT1-degrader-7-生命科学试剂-MCE
- 钢结构厂房基础施工承包合同
- 肿瘤患者全程健康管理
- 劳务分包加采购合同标准文本
- 非标设备维护培训
- 带状疱疹护理课件
- 会计实务:浅谈农业专项资金审计的方式方法
- 呼吸功能障碍的支持
- 【MOOC】理解马克思-南京大学 中国大学慕课MOOC答案
- 《燃烧基础知识》课件
- 编织教材初中校本课程
- 高三家长会 携手共进-圆梦高考家长会 课件
评论
0/150
提交评论