




已阅读5页,还剩45页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
简易数字时钟的设计(完整程序附在最后)摘要:本电子钟利用单片机at89s52控制日历时钟芯片ds12c887实现多功能数字时钟。该时钟由单片机控制日历时钟芯片实现年份、月份、日期、时间信息的获取,并且通过lcd12864对年份、月份、日期、星期、节日、时间信息进行显示,可以对年份、月份、日期、星期、时间进行修改,具有掉电后时间信息不丢失的功能。另外具有闹钟功能和具有整点报时功能,可设置闹铃时间,当闹铃时间到时,进行闹铃,通过任意按键可解除闹铃;当整点到来,鸣奏音乐。采用18b20进行温度测控,超出温度阈值将会进行报警。我们将程序固化到单片机中,并且设有程序下载口,可以方便对程序进行升级。关键词:多功能数字时钟,单片机at89s52,日历时钟芯片ds12c887,闹铃,整点报时。1 设计要求基本设计要求(1)单片机控制日历时钟芯片实现年份、月份、日期、星期、时间信息的获取。(2)在lcd上对年份、月份、日期、星期、时间、信息进行显示。(2)可以对年份、月份、日期、星期、时间进行修改。(3)具有掉电后时间信息不丢失的功能。发挥部分(1)具有闹钟功能。可设置闹铃时间,当闹铃时间到时,进行闹铃。通过按键可解除闹铃。(2)具有整点报时功能。(3)程序固化到单片机中,并且可直接进行程序下载和更新。2 总体设计2.1 系统组成及工作原理本电子钟由单片机、定时、显示、按键、定时提醒、isp在线编程6部分组成。产品以at89s52单片机、ds12c887时钟芯片为核心,显示部分采用lcd12864,使用6个按键、1蜂鸣器和一个温度传感器,加上isp在线编程模块。ds12c887时钟芯片产生时钟信号和存放闹铃数据,其精度和可靠性高,在单片机掉电状态下能正确走时、保存闹铃数据长达10年,故能实现停电重起后定时设计不变的关键设计指标。at89s52单片机实时获取ds12c887的时间和闹铃数据,驱动lcd和蜂鸣器。显示部分的lcd有高亮度,低成本等诸多优点。蜂鸣器作闹铃提示切合实际、直观。按键方面采用软件消抖,减少硬件电路的同时增加了可靠性。本产品完全达到设计要求,辅助的isp在线编程让产品具有强大的扩展功能,使其不仅仅是一个电子钟,更是一个单片机试验平台。2.2 ds12c887时钟芯片原理ds12c887能够自动产生世纪、 年、月、日、时、分、秒等时间信息,其内部又增加了世纪寄存器,从而利用硬件电路解决 “千年”问题;ds12c887 中自带有锂电池,外部掉电时,其内部时间信息还能够保持10年之久;对于一天内的时间记录,有12 小时制和 24 小时制两种模式。在 12 小时 制模式中,用 am 和 pm 区分上午和下午; 时间的表示方法也有两种,一种用二进制数 表示,一种是用 bcd 码表示;ds12c887 中 带有 128 字节 ram,其中有 11 字节 ram 用来存储时间信息,4 字节 ram 用来存储 ds12c887 的控制信息,称为控制寄存器,113 字节通用 ram 使用户使用;此外用户还 可对 ds12c887 进行编程以实现多种方波输出,并可对其内部的三路中断通过软件进行屏蔽。3 硬件设计3.1 硬件组成用visio画出硬件组成框图,并进行描述 本万年历以at89s52单片机、ds12c887时钟芯片为核心,显示部分采用lcd12864,使用6个按键、1蜂鸣器和一个温度传感器,加上isp在线编程模块。ds12c887时钟芯片产生时钟信号和存放闹铃数据。3.2 单片机核心模块单片机最小系统3.2.1主要特性单片机at89s52是 atmel公司生产的低电压、高性能coms 8位单片机,它有128byte ram、8kbyte可编程flash rom,指令系统与mcs-51系列兼容。采用keilc51编译软件,protues仿真平台,能方便实现程序的仿真。isp在线编程,能方便的更新程序。可对选用的单片机特点进行描述,可画出单片机最小系统并描述电路连接。3.2.2单片机引脚说明at89s52 采用 40pin 封装的双列直接 dip 结构,40 个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4 组 8 位共 32 个 i/o 口,中断口线与 p3 口线复用。现在我们对这些引脚的功能加以说明:pin20: 接地脚。 pin40: 正电源脚,正常工作或对片内 eprom 烧写程序时,接 +5v 电源。 pin19: 时钟 xtal1 脚,片内振荡电路的输入端。 pin18: 时钟 xtal2 脚,片内振荡电路的输出端。 时钟有两种方式,一种是片内时钟振荡方式,但需在 18 和 19 脚外接石英晶体 (2-12mhz) 和振荡 电容,振荡电容的值一般取 10p-30p 。另外一种是外部时钟方式,即将 xtal1 接地,外部时钟信号 从 xtal2 脚输入。 输入输出 (i/o) 引脚: pin32-pin39 为 p0.0-p0.7 输入输出脚, pin1-pin8 为 p1.0-p1.7 输入输出脚, pin21-pin28 为 p2.0-p2.7 输入输出脚,pin10-pin17 为p3.0-p3.7输入输出脚,这些输入输出脚的功能阐述如下: p0 口( 32 脚 39 脚):是双向 8 位三态 i/o 口,在外接存储器时,与地址总线的低 8 位及数据 总线复用,能以吸收电流的方式驱动 8 个 ttl 负载。p1 口( 1 脚 8 脚):是 8 位准双向 i/o 口。由于这种借口输出没有高阻状态,输入也不能锁存, 故不是真正的双向 i/o 口。 p1 口能驱动(吸收或输出电流) 4 个 ttl 负载。 p2 口( 21 脚 28 脚):是 8 位准双向 i/o 口。访问外部存储器时,它可以作为高 8 位地址总线 送出高 8 位地址。 p2 可以驱动(吸收或输出电流) 4 个 ttl 负载。 p3 口( 10 脚 17 脚):是 8 位准双向 i/o 口, p3 口能驱动(吸收或输出电流) 4 个 ttl 负载。 p3 口除了作为一般的准双向通用 i/o 口使用外,每个引脚还有第二功能。 p3 口的 8 条线都定义有第二功能 6 ,如表 4.1 所列。 p3引脚第二功能:p3.0 rxd (串行口输入端) p3.1 txd (串行口输出端) p3.2 int0 (外部中断 0 请求输入端,低电平有效) p3.3 int1 (外部中断 0 请求输入端,低电平 有效) p3.4 t0 (定时器 / 计数器 0 的技数脉冲输入端) p3.5 t1 (定时器 / 计数器 0 的技数脉冲输入端) p3.6 wr (片外数据存储器写选通信号输出端,低电平有效) p3.7 rd (片外数据存储器写选通信号输出端,低电平有效) pin9:reset/vpd 复位信号复用脚,当单片机通电,时钟电路开始工作,在 reset 引脚上出现 24 个时钟周期以上的高电平,系统即初始复位。初始化后,程序计数器 pc 指向 0000h , p0-p3 输出 口全部为高电平,堆栈指钟写入 07h ,其它专用寄存器被清 “0” 。 reset 由高电平下降为低电平后, 系统即从 0000h 地址开始执行程序。然而,初始复位不改变 ram (包括工作寄存器 r0-r7 )的状态, 单片机复位后的状态如下: p0 p3=ffh ,各口可用于输出,也可用于输入; sp=07h ,第一个入栈内容将写入 08h 单元; ip、ie 和 pcon 的有效位为 0 ,各中断源处于低优先级且均被关断,串行通讯的波特率不加倍; psw=00h ,当前工作寄存器为 0 组。 pin30:ale/prog 当访问外部程序器时, ale( 地址锁存 ) 的输出用于锁存地址的低位字节。而访 问内部程序存储器时, ale 端将有一个 1/6 时钟频率的正脉冲信号,这个信号可以用于识别单片机 是否工作,也可以当作一个时钟向外输出。更有一个特点,当访问外部程序存储器, ale 会跳过一 个脉冲。 如果单片机是 eprom ,在编程其间, prog 将用于输入编程脉冲。 pin29:pesn 当访问外部程序存储器时,此脚输出负脉冲选通信号, pc 的 16 位地址数据将出现 在 p0 和 p2 口上,外部程序存储器则把指令数据放到 p0 口上,由 cpu 读入并执行。pin31:ea/vpp 程序存储器的内外部选通线, 8051 和 8751 单片机,内置有 4kb 的程序存储器, 当 ea 为高电平并且程序地址小于 4kb 时,读取内部程序存储器指令数据,而超过 4kb 地址则读取 外部指令数据。如 ea 为低电平,则不管地址大小,一律读取外部程序存储器指令。显然,对内部 无程序存储器的 8031,ea 端必须接地。 3.3晶振电路振荡器是数字钟的核心。振荡器的稳定度及频率的精确度决定了数字钟计时的准确程度,通常选用石英晶体构成振荡器电路。石英晶体振荡器的作用是产生时间标准信号。3.4显示电路本电路采用1602lcd,由于数码管只能显示数字数码管显示内容单一,液晶则比较丰富,而这个实验中,要求功能较多,为了使电路显示的更清晰明了,本实验最终决定采用1602lcd显示。且液晶显示已占居社会主流,优势明显。模块引脚功能表: 引脚号引脚名称方向功能说明1vss-模块的电源地2vdd-模块的电源正端3v0-lcd驱动电压输入端4rs(cs)h/l并行的指令/数据选择信号;串行的片选信号5r/w(sid)h/l并行的读写选择信号;串行的数据口6e(clk)h/l并行的使能信号;串行的同步时钟7db0h/l数据08db1h/l数据19db2h/l数据210db3h/l数据311db4h/l数据412db5h/l数据513db6h/l数据614db7h/l数据715psbh/l并/串行接口选择:h-并行;l-串行16nc空脚17/reth/l复位 低电平有效18nc空脚19led_a-背光源正极(led+5v)20led_k-背光源负极(led-ov)3.5时钟电路3.6独立按键电路独立按键电路图鉴于使用中断电路会增加硬件电路的复杂度,本电路采用独立按键的方法,只需在程序中加入扫描程序即可。其中p1.4接按键1,p1.5接按键2,p1.6接按键3,p1.7接按键4,其中按键4为确定,通过按键已可以切换至不同的工作方式,譬如时间,日期,闹铃设置,秒表;按键2为加键,通过按键2可以调整时间和闹钟的加键,按键3为减键,按键1为退出键。在秒表中键4为开始键和暂停,2和3为清零键。3.7蜂鸣器电路4 程序设计4.1 主程序设计main() char e=0,f=0,w2=0,w3=0;s1=1;s2=1;s3=1;s4=1;ea=1;/打开总中断 ex0=1;/开外部中断1 it1=1;/设置负跳变沿触发中断ds_int(); /初始化ds12cr887lcm_init(); /初始化液晶显示器lcm_clr(); /清屏welcome(); /显示欢迎信息delaym(3000); /显示停留3秒lcm_clr(); /清屏while(1) if(flag_ri=1)/当闹钟中断时进入这里 w3=1;/这里用来取消闹钟报警,任一键取消报警if(s1=0)|(s2=0)|(s3=0)|(s4=0)|(s5=0)|(s6=0) delaym(5); if(s1=0)|(s2=0)|(s3=0)|(s4=0)|(s5=0)|(s6=0) while(!(s1&s2&s3&s4&s5&s6); di(); flag_ri=0;/清除报警标志w3=0; di(); delaym(100); di(); delaym(500); if (w = 0&w2=0)/正常走时 lcm_w_year(); /显示年lcm_w_month();/显示月 lcm_w_date();/显示日lcm_w_day();/显示星期lcm_w_shi();/显示时lcm_w_fen();/显示分lcm_w_miao();/显示秒days(); /显示节日提示else if (s1 = 0&w3=0) / 设置时间+ delaym(20); /按键消抖if(s1 = 0 & w = 1&w3=0) /当是调时状态 本键用于调整下一项di();e+;if (e = 6 )e = 0; set_time(e);/调整if(s1 = 0 & w = 0&w3=0) /当是正常状态时就进入调时状态 di();lcm_clr();/清屏w=1; /进入调时set_time(e);/调整w2=0; while(s1 = 0); /等待键松开 if (s6 = 0&w3=0) / 设置时间- delaym(20); /按键消抖if(s6 = 0 & w = 1&w3=0) /当是调时状态 本键用于调整下一项di();e-;if (e = 3 )f = 0; set_alarm(f);/调整if(s5 = 0 & w2 = 0&w3=0) /当是正常状态时就进入调闹钟状态 di();lcm_clr();/清屏w2=1; /进入调闹钟set_alarm(f);/调整w=0; while(s5 = 0); /等待键松开 if (s2 = 0&w3=0) / 当在调时状态时就退出调时 delaym(20);/按键消抖if(s2 = 0 & w = 1&w3=0)di();w = 0; /退出调时e = 0;/下一项计数器清0if(s2 = 0 & w2 = 1&w3=0)di();w2 = 0; /退出调时f = 0;/下一项计数器清0if(s2 = 0 & w = 0&w3=0) di();lcm_clr();/清屏 lunar();/显示农历while(s2 = 0); /等待键松开 lcm_clr();/清屏lcm_w_year(); /年lcm_w_month();/月 lcm_w_date();/日lcm_w_day();/星期lcm_w_shi();/时lcm_w_fen();/分lcm_w_miao();/秒days(); /显示节日提示 while(s2 = 0);/等待键松开 if (s3 = 0 & w = 1&w3=0)/加调整 delaym(20);/按键消抖 if(s3 = 0 & w = 1&w3=0)di();set_time(e);/调整 while(s3 = 0);/等待键松开if (s3 = 0 & w2 = 1&w3=0)/加调整 delaym(20);/按键消抖 if(s3 = 0 & w2 = 1&w3=0)di();set_alarm(f);/调整 while(s3 = 0);/等待键松开if (s4 = 0 & w = 1&w3=0) /减调整 delaym(20);/按键消抖 if(s4 = 0 & w = 1&w3=0)di();set_time(e);/调整 while(s4 = 0);/等待键松开if (s4 = 0 & w2 = 1&w3=0) /减调整 delaym(20);/按键消抖 if(s4 = 0 & w2 = 1&w3=0)di();set_alarm(f);/调整 while(s4 = 0);/等待键松开/否则启动调时5 调试及结果本万年历硬件电路并不复杂,重在程序的编写与调试,为了便于后期调试与产品升级,特加上isp下载口,既能给万年历供电又能方便烧写程序。调试初期我们为了熟悉时钟芯片的使用,采用开发板搭接杜邦线的方法调试出程序,克服了无法从时钟芯片中采集出数据的问题。等成功在开发板上实现后,我们制作了如下图的完整的电子万年历。焊好完整电路后,出现了lcd12864屏幕无显示的问题,经过有序的查线,发现单片机的ea管脚没有接高电平,接好后,正常显示。正常显示后,我们发现程序本身还存在着许多缺陷和不足,首先是没有闹铃功能,我们加上有关闹铃的程序段后,发现不能用按键取消闹铃状态,但确实有取消闹铃的代码,这是怎么回事呢?后来发现该段程序和后面的按键选择冲突了,在加上了w2标识变量后解决了这个问题。而后在原有程序的基础上我们还加入了时辰显示、按键铃音、星期自动调整、日期调整等功能,当然还有一些不足以待后续完善。完整程序:/*-电子智能时钟程序单片机:stc89c52rc晶振:12mhz时钟芯片:ds12cr887+5液晶屏:lcm-12864-st7920时间:2009年2月11日lcm12864使用并口连接方式-*/*头文件-*/#include #include #include soundplay.h#define uint unsigned int#define uchar unsigned char/*定义全局变量-*/uchar miao,fen,shi,date,month,year,amiao,afen,ashi,lunard,lunarm,lunary;/秒,分,小时,星期,日期,月, 年bit w = 0; /调时标志位bitflag_ri;/*定义12864液晶屏数据线-*/sbit lcm_rs = p20; /模式位,为0输入指令,为1输入数据 sbit lcm_rw = p21; /读写位,为0读,为1写 sbit lcm_en = p22; /使能位sbit lcm_psb = p23; /h=并口; l=串口sbit lcm_rst = p25; #define lcd_bus p0 /lcm12864数据总线/*定义按键-*/sbit s1 = p12; /s1-设置sbit s2 = p13; /s2-确认sbit s3 = p14; /s3-加sbit s4 = p15; /s4-减sbit s5 = p17;sbit s6 = p16;/*定义ds18b20数据线-*/sbit dq = p11;/*定义ds12cr887数据线-*/sbit dscs = p34;sbit dsas = p35;sbit dsrw = p36;sbit dsds = p37;sbit dsirq=p32;#define ds_bus p0 /ds12cr887数据总线/*定义累加器a中的各位-*/sbit a0 = acc 0;sbit a1 = acc 1;sbit a2 = acc 2;sbit a3 = acc 3;sbit a4 = acc 4;sbit a5 = acc 5;sbit a6 = acc 6;sbit a7 = acc 7;void lcm_w_test(bit i,uchar word);void lcm_w_word(uchar *s);/*延时程序-*/延时函数 1ms/次void delaym(uint a) uchar i;while( -a != 0) for(i = 0; i 125; i+); /一个 ; 表示空语句,cpu空转。 /i 从0加到125,cpu大概就耗时1毫秒/延时函数void delay(int num)while(num-);void delay500us()unsigned char j; for(j=0;j57;j+) /500us基准延时程序 ; void delay1ms(unsigned int count)unsigned int i,j;for(i=0;icount;i+)for(j=0;j120;j+);/两只蝴蝶 unsigned char code music_two = 0x19,0x03, 0x19,0x03, 0x1a,0x03, 0x1f,0x03, 0x1b,0x03, 0x1b,0x03, 0x1a,0x03, 0x17,0x0d, 0x16,0x03, 0x16,0x03, 0x16,0x0d, 0x17,0x01, 0x17,0x03, 0x17,0x03, 0x19,0x03, 0x1a,0x02, 0x1a,0x02, 0x10,0x03, 0x17,0x0d, 0x16,0x03, 0x16,0x01, 0x17,0x03, 0x19,0x03, 0x19,0x03, 0x17,0x03, 0x19,0x02, 0x1f,0x02, 0x1b,0x03, 0x1a,0x03, 0x1a,0x0e, 0x1b,0x04, 0x17,0x02, 0x1a,0x03, 0x1a,0x03, 0x1a,0x0e, 0x1b,0x04, 0x1a,0x03, 0x19,0x03, 0x17,0x03, 0x16,0x03, 0x17,0x0d, 0x16,0x03, 0x17,0x03, 0x19,0x01, 0x19,0x03, 0x00, 0x00,0x00 ;void di()/产生1khz频率声音的函数int t;for(t=0;t 0 ) year-; else year = 4; / 返回星期几(星期一用1表示,而星期天用7表示) return 1+( day + 2*month + 3*(month+1)/5 + year + year/4 ) %7);/*ds12cr887驱动程序-*/往ds12cr887写数据函数void write_ds(uchar add,uchar date) dscs=0;dsds=1;dsrw=1;dsas=1;ds_bus=add; dsas=0;dsrw=0;ds_bus=date;dsrw=1;dsas=1;dscs=1;/读取ds12cr887的数据uchar read_ds(uchar add)uchar z;dscs=0;dsrw=1;dsds=1;dsas=1;ds_bus=add;dsas=0;dsds=0; ds_bus=0xff;z=ds_bus;dsds=1;dsas=1;dscs=1;return z;/ds12cr887初始化void ds_int()dsas=0;dsds=0;dsrw=0;write_ds(0x0a,0x20);/ds12cr887寄存器a功能设置,开启时钟振荡器/*12864液晶显示屏并口驱动程序-*/检查忙位(底层)void chk_busy() lcm_rs=0; lcm_rw=1; lcm_en=1; lcd_bus=0xff; while(lcd_bus&0x80)=0x80); lcm_en=0;/写指令到lcd(底层)void write_com(uchar cmdcode)chk_busy();lcm_rs=0;lcm_rw=0;lcm_en=1;lcd_bus=cmdcode;lcm_en=0;/写数据到lcd(底层)void write_data(uchar dispdata) chk_busy();lcm_rs=1;lcm_rw=0;lcm_en=1;lcd_bus=dispdata;lcm_en=0;/初始化lcd屏(被调用层)void lcm_init() lcm_psb=1; /如果液晶屏的psb在电路板中接了高电平的,这里可以屏蔽 lcm_rst=1; /如果液晶屏的rst在电路板中接了高电平的,这里可以屏蔽 write_com(0x30); /选择8bit数据流 write_com(0x0c); /开显示(无游标、不反白) write_com(0x01); /清除显示,并且设定地址指针为00h/向lcm发送一个字符串,长度64字符之内。(被调用层)/应用:lcm_w_word(您好!);void lcm_w_word(uchar *s)while(*s0) write_data(*s); s+; /写指令或数据(被调用层)void lcm_w_test(bit i,uchar word)if(i = 0)write_com(word);/写指令或数据(0,指令)elsewrite_data(word);/写指令或数据(1,数据)/清屏函数void lcm_clr(void)lcm_w_test(0,0x01);/*ds18b20驱动程序-*/初始化ds1820函数void init_ds18b20(void)uchar x=0;dq = 1; /dq复位delay(8); /稍做延时dq = 0; /单片机将dq拉低delay(80); /精确延时 大于 480usdq = 1; /拉高总线delay(14);x=dq; /稍做延时后 如果x=0则初始化成功 x=1则初始化失败delay(20);/读一个字节函数uchar readonechar(void)uchar i=0;uchar dat = 0;for (i=8;i0;i-)dq = 0; / 给脉冲信号dat=1;dq = 1; / 给脉冲信号if(dq)dat|=0x80;delay(4);return(dat);/写一个字节函数void writeonechar(uchar dat)uchar i=0;for (i=8; i0; i-)dq = 0;dq = dat&0x01;delay(5);dq = 1;dat=1;/读取温度函数uint readtemperature(void)uchar a=0;uchar b=0;uint t=0;float tt=0;init_ds18b20();writeonechar(0xcc); / 跳过读序号列号的操作writeonechar(0x44); / 启动温度转换init_ds18b20();writeonechar(0xcc); /跳过读序号列号的操作writeonechar(0xbe); /读取温度寄存器a=readonechar(); /读低8位b=readonechar(); /读高8位t=b;t=8;t=t|a;tt=t*0.0625;t= tt*10+0.5; /放大10倍输出并四舍五入return(t);/*公历节日数据库-*/void days (viod) lcm_w_test(0,0x98);/在液晶屏的第四行第一列显示以下节日提示if ( month = 1 & date = 1 ) lcm_w_word( 元旦快乐 ); /1月if ( month = 1 & date = 28 ) lcm_w_word( 世界麻风日 ); if ( month = 2 & date = 2 ) lcm_w_word( 世界湿地日 ); /2月if ( month = 2 & date = 13 ) lcm_w_word( 明天情人节了 ); if ( month = 2 & date = 14 ) lcm_w_word( 今天是情人节 ); if ( month = 3 & date = 1 ) lcm_w_word( 国际海豹日 ); /3月if ( month = 3 & date = 3 ) lcm_w_word( 全国爱耳日 ); if ( month = 3 & date = 8 ) lcm_w_word(国际劳动妇女节 ); if ( month = 3 & date = 12 ) lcm_w_word( 植树节 ); if ( month = 3 & date = 14 ) lcm_w_word( 国际警察日 ); if ( month = 3 & date = 15 ) lcm_w_word( 消费者权益日 ); if ( month = 3 & date = 17 ) lcm_w_word( 国际航海日 ); if ( month = 3 & date = 21 ) lcm_w_word( 世界森林日 ); if ( month = 3 & date = 22 ) lcm_w_word( 世界水日 ); if ( month = 3 & date = 23 ) lcm_w_word( 世界气象日 ); if ( month = 3 & date = 24 ) lcm_w_word(世界防治结核病日); if ( month = 4 & date = 1 ) lcm_w_word(愚人节 小心上当); /4if ( month = 4 & date = 7 ) lcm_w_word( 世界卫生日 ); if ( month = 4 & date = 8 ) lcm_w_word( 复活节 ); if ( month = 4 & date = 13 ) lcm_w_word( 黑色星期五 ); if ( month = 5 & date = 1 ) lcm_w_word(五一国际劳动节 ); /5if ( month = 5 & date = 4 ) lcm_w_word( 青年节 ); if ( month = 5 & date = 8 ) lcm_w_word( 世界红十字日 ); if ( month = 5 & date = 12 ) lcm_w_word( 国际护士节 ); if ( month = 5 & date = 5 ) lcm_w_word(近日请注意母亲节); if ( month = 5 &
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 共享办公空间服务协议书
- 农业种植技术培训和指导协议
- 2025年湖北大数据集团有限公司扩岗增招校园招聘5人考试模拟试题及答案解析
- 人力资源外包服务合作协议条款说明及
- 建筑工程材料供应及质量保证协议
- 互联网保险服务销售协议
- 农业生产项目区划分合作协议
- 快递业务承揽及合作协议
- 劳务分包合同协议书要求
- 物流合作协议范本及法律风险提示
- 《医院感染监测与控制》课程教学大纲(本科)
- 访问控制安全管理制度
- 小学生青春期教学课件
- NEDD4在非小细胞肺癌EGFR-TKIs继发耐药中的作用机制与临床启示
- 车辆按揭押金合同协议
- 耳穴压豆法在临床中的应用
- 2024心肺复苏操作考核评分标准
- 2025春季学期国开电大专科《政治学原理》一平台在线形考(形考任务二)试题及答案
- 内镜标本规范处理
- 汽车电工电子基础电子教案2电流、电压和电位
- 2025年通力扶梯e1试题及答案
评论
0/150
提交评论