基于51单片机万年历c语言程序_第1页
基于51单片机万年历c语言程序_第2页
基于51单片机万年历c语言程序_第3页
基于51单片机万年历c语言程序_第4页
基于51单片机万年历c语言程序_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

#include #include #include #include “SoundPlay.h“/音乐文件 #define uchar unsigned char #define uint unsigned int /*/ /扬声器定义 sbit beep = P37;/扬声器 /*/ /温度传感器定义 sbit DQ = P2 0;/ds18B20 uint tvalue;/温度值 uchar tflag,flagdat,t,hh1;/温度正负标志 /*/ /键盘引脚定义 /sbit KEY_1 = P27; /左上,在音乐文件 SoundPlay.h 中已定义 sbit KEY_2 = P26; /左下 sbit KEY_3 = P25; /右上 sbit KEY_4 = P24; /右下 /*/ /定义 DS1302 时钟接口 sbit clock_clk = P2 1;/ds1302_clk(时钟线) sbit clock_dat = P2 2;/ds1302_dat(数据线) sbit clock_Rst = P2 3;/ds1302_Rst(复位线) /定义累加器 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; /*/ /定义全局变量 unsigned char yy,mo,dd,xq,hh,year,year1;/定义时间映射全局变量(专用寄存器) unsigned char shi,ge,sec_temp,min_temp,hour_temp,secl,selx,e=0,hh1,mm1,k,n1,n2,mm,ss,n; bit w = 0; /调时标志位 static unsigned char menu = 0;/定义静态小时更新用数据变量 static unsigned char keys = 0;/定义静态小时更新用数据变量 static unsigned char timecount = 0;/定义静态软件计数器变量 /*/ /- /TS12864 并口相关设定/ #defineBUSY_FLAG P0_7/液晶模块忙标志 #defineMPU_RS_CH P1_5/寄存器选择输入 #defineMPU_RW_CHP1_6/读写控制 #defineMPU_ENABLEP1_7/使能控制 #defineLCD_DATA P0/液晶数据口 /- #define LOW0/低电平 #defineHIGH1/高电平 #defineOFF0/逻辑关 #defineON1/逻辑开 /- /液晶模块指令集定义 #definecClearDisplay 0x01/清显示指令 #definecEntryModeSet0x06/设置输入模式 #definecDisplayOnCtrl0x0c/设置开显控制 #definecFunctionSetB0x30/功能设定(基本指令) #definecFunctionSetE0x34/功能设定(扩充指令) #definecFuncDrawOn0x36/设置绘图功能 /- uchar xdata lcdPosX, lcdPosY;/X,Y 坐标 uchar xdata halfScr, halfLineCnt, basicBlock;/半屏,半屏行数,N*8 块 /- /子程序声明和用法 bit scanKey1 (void); /按键 1 检测 void procKey (void); /按键处理子程序 void lcdInit (void); /初始化 LCD 子程序 void lcdClear (void); /清除 LCD 文本屏幕子程序 void lcdWriteCommand (uchar Command); /写入控制命令到 LCD 子程序 /输入参数:LCD 控制指令 void lcdWriteData (uchar Data); /写入显示数据到 LCD 子程序 /输入参数:显示数据 void checkLcdBusy (void); /检测 LCD 忙碌子程序 void displayPhoto (uchar *bmp, uchar bmpCls); /全屏显示图形子程序 /输入参数:*bmp=图形数据 /bmpCls=清除图形屏幕选项(OFF 为不清屏,即显示图形,ON 为清屏) 智芯锐电子: void convertChar (uchar CX, CY, width); /字符反白显示 /输入参数:CX=要反白字符的行(0-3) /CY=要反白字符的列(0-7) /width=要反白字符的长度(1-16) void wrPosition (void); /坐标写入子程序 void dispString (uchar X, Y, speed, uchar *msg); /显示字符串子程序 /输入参数:X=行(0-3), Y=列(0-7), speed=显示速度(毫秒), msg=字符数据 void beepBl (void); /蜂鸣器响一声子程序 void delayMs (uchar ms); /延时(毫秒)子程序 /输入参数:毫秒数 void delaySec (uchar sec); /延时(秒)子程序 /输入参数:秒数 void init_dz(); void clear_img(); /= /= void lcdInit (void) lcdWriteCommand(cFunctionSetE); lcdWriteCommand(cFunctionSetB); lcdClear(); lcdWriteCommand(cEntryModeSet); lcdWriteCommand(cDisplayOnCtrl); if(k=1)clear_img();lcdClear(); if(k=0)lcdClear(); clear_img();init_dz(); /= void lcdClear (void) lcdWriteCommand(cClearDisplay); /= void lcdWriteCommand (uchar Command) checkLcdBusy(); MPU_RS_CH = LOW; MPU_RW_CH = LOW; LCD_DATA = Command; MPU_ENABLE = HIGH; delayMs(1); MPU_ENABLE = LOW; /= void lcdWriteData (uchar Data) checkLcdBusy(); MPU_RS_CH = HIGH; MPU_RW_CH = LOW; LCD_DATA = Data; MPU_ENABLE = HIGH; delayMs(1); MPU_ENABLE = LOW; /= void checkLcdBusy (void) LCD_DATA = 0xff; MPU_RS_CH = LOW; MPU_RW_CH = HIGH; MPU_ENABLE = HIGH; while (BUSY_FLAG); MPU_ENABLE = LOW; /= void displayPhoto (uchar *bmp, uchar bmpCls) lcdPosX = 0x80; halfScr = 2; for (;halfScr != 0; halfScr-) lcdPosY = 0x80; halfLineCnt = 32; for (;halfLineCnt != 0; halfLineCnt-) basicBlock = 16; wrPosition (); 智芯锐电子: for (; basicBlock != 0; basicBlock-) if (bmpCls = OFF) lcdWriteData (*bmp+); else if (bmpCls = ON) lcdWriteData (0x00); lcdPosY+; lcdPosX = 0x88; lcdWriteCommand(cFuncDrawOn); lcdWriteCommand(cFunctionSetB); /= void convertChar (uchar CX, CY, width) displayPhoto(OFF,ON); lcdPosY = 0x80; if (CX = 0) CX = 0x80; halfLineCnt = 16; else if (CX = 1) CX = 0x80; halfLineCnt = 32; else if (CX = 2) CX = 0x88; halfLineCnt = 16; else if (CX = 3) CX = 0x88; halfLineCnt = 32; lcdPosX = CX + CY; for (; halfLineCnt != 0; halfLineCnt-) basicBlock = width; wrPosition(); for (;basicBlock != 0; basicBlock-) if (halfLineCnt 16) lcdWriteData(0x00); else lcdWriteData (0xff); lcdPosY+; lcdWriteCommand(cFuncDrawOn); lcdWriteCommand(cFunctionSetB); /= void wrPosition (void) lcdWriteCommand(cFunctionSetE); lcdWriteCommand(lcdPosY); lcdWriteCommand(lcdPosX); lcdWriteCommand(cFunctionSetB); /= void dispString (uchar X, Y, speed, uchar *msg) if (X = 0) X = 0x80; else if (X = 1) X = 0x90; else if (X = 2) 智芯锐电子: X = 0x88; else if (X = 3) X = 0x98; Y = X + Y; lcdWriteCommand(Y); while (*msg) lcdWriteData(*msg+); delayMs(speed); /= void delayMs (uchar ms) uchar i; while (-ms) for (i = 0; i hex 先把数据转换为十六进制 temp2=year%16; year=temp1*10+temp2; temp1=month/16; temp2=month%16; month=temp1*10+temp2; temp1=day/16; temp2=day%16; day=temp1*10+temp2; /定位数据表地址 if(c=0) table_addr=(year)*0x3; /else / /table_addr=(year-1)*0x3; / /定位数据表地址完成 /取当年春节所在的公历月份 temp1=year_codetable_addr+2 temp1=_cror_(temp1,5); /取当年春节所在的公历月份完成 /取当年春节所在的公历日 temp2=year_codetable_addr+2 /取当年春节所在的公历日完成 / 计算当年春年离当年元旦的天数,春节只会在公历 1 月或 2 月 if(temp1=0x1) temp3=temp2-1; else temp3=temp2+0x1f-1; / 计算当年春年离当年元旦的天数完成 /计算公历日离当年元旦的天数,为了减少运算,用了两个表 /day_code19,day_code23 /如果公历月在九月或前,天数会少于 0xff,用表 day_code19, /在九月后,天数大于 0xff,用表 day_code23 /如输入公历日为 8 月 10 日,则公历日离元旦天数为 day_code18-1+10-1 /如输入公历日为 11 月 10 日,则公历日离元旦天数为 day_code211-10+10-1 if (month0x2) /计算公历日离当年元旦的天数完成 /判断公历日在春节前还是春节后 if (temp4=temp3) /公历日在春节后或就是春节当日使用下面代码进行运算 temp4-=temp3; month=0x1; month_p=0x1; /month_p 为月份指向,公历日在春节前或就是春节当日 month_p 指向首月 flag2=get_moon_day(month_p,table_addr); /检查该农历月为大小还是小月,大月返回 1,小月返回 0 flag_y=0; if(flag2=0)temp1=0x1d; /小月 29 天 else temp1=0x1e; /大小 30 天 temp2=year_codetable_addr temp2=_cror_(temp2,4); /从数据表中取该年的闰月月份,如为 0 则该年无闰月 while(temp4=temp1) temp4-=temp1; month_p+=1; if(month=temp2) flag_y=flag_y; if(flag_y=0) month+=1; else month+=1; flag2=get_moon_day(month_p,table_addr); if(flag2=0)temp1=0x1d; else temp1=0x1e; day=temp4+1; else /公历日在春节前使用下面代码进行运算 temp3-=temp4; if (year=0x0) year=0x63;c=1; else year-=1; table_addr-=0x3; month=0xc; temp2=year_codetable_addr temp2=_cror_(temp2,4); if (temp2=0) month_p=0xc; else month_p=0xd; / /*month_p 为月份指向,如果当年有闰月,一年有十三个月,月指向 13,无闰月指向 12*/ flag_y=0; flag2=get_moon_day(month_p,table_addr); if(flag2=0)temp1=0x1d; else temp1=0x1e; while(temp3temp1) temp3-=temp1; month_p-=1; if(flag_y=0)month-=1; if(month=temp2)flag_y=flag_y; flag2=get_moon_day(month_p,table_addr); if(flag2=0)temp1=0x1d; else temp1=0x1e; day=temp1-temp3+1; c_moon=c; /HEX-BCD ,运算结束后,把数据转换为 BCD 数据 temp1=year/10; temp1=_crol_(temp1,4); temp2=year%10; year_moon=temp1|temp2; temp1=month/10; temp1=_crol_(temp1,4); temp2=month%10; month_moon=temp1|temp2; temp1=day/10; temp1=_crol_(temp1,4); temp2=day%10; day_moon=temp1|temp2; /*函数功能:输入 BCD 阳历数据,输出 BCD 星期数据(只允许 1901-2099 年) 调用函数示例:Conver_week(c_sun,year_sun,month_sun,day_sun) 如:计算 2004 年 10 月 16 日 Conversion(0,0x4,0x10,0x16); c_sun,year_sun,month_sun,day_sun 均为 BCD 数据,c_sun 为世纪标志位,c_sun=0 为 21 世 纪,c_sun=1 为 19 世纪 调用函数后,原有数据不变,读 week 得出阴历 BCD 数据 */ code uchar table_week12=0,3,3,6,1,4,6,2,5,0,3,5; /月修正数据表 智芯锐电子: /* 算法:日期+年份+所过闰年数+月较正数之和除 7 的余数就是星期但如果是在 闰年又不到 3 月份上述之和要减一天再除 7 星期数为 0 */ /*void Conver_week(bit c,uchar year,uchar month,uchar day) /c=0 为 21 世纪,c=1 为 19 世纪 输入输出数据均为 BCD 数据 uchar temp1,temp2; temp1=year/16; /BCD-hex 先把数据转换为十六进制 temp2=year%16; year=temp1*10+temp2; temp1=month/16; temp2=month%16; month=temp1*10+temp2; temp1=day/16; temp2=day%16; day=temp1*10+temp2; if (c=0)year+=0x64; /如果为 21 世纪,年份数加 100 temp1=year/0x4; /所过闰年数只算 1900 年之后的 temp2=year+temp1; temp2=temp2%0x7; /为节省资源,先进行一次取余,避免数大于 0xff,避免使用整型数据 temp2=temp2+day+table_weekmonth-1; if (year%0x4=0 else return (0); if(d=15) return (0); if(d15) temp=d-15; if(jieqi_codeaddr else return (0); /* / /公历节日数据库表 /* / void days () /公历节日数据库 uchar j; j=jieqi(yy,mo,dd); if(t/3%3=0)/设置变化的时间,默认是 2 秒 /以下自己添加生日、节日信息 if ( month_moon= 0x10 /if ( month_moon= 0x10 /if ( month_moon= 0x08 /if ( month_moon= 0x08 /if ( month_moon= 0x08 /农历节日 else if ( month_moon= 0x12 if ( month_moon= 0x12 if ( month_moon= 0x05 if ( month_moon= 0x08 if ( month_moon= 0x01 if ( month_moon= 0x02 if ( month_moon= 0x07 if ( month_moon= 0x07 if ( month_moon= 0x09 if ( month_moon= 0x12 /二十四节气 else if (j=1)dispString(3, 0, 1, “ 今天小寒 “); if (j=2)dispString(3, 0, 1, “ 今天大寒 “); if (j=3)dispString(3, 0, 1, “ 今天立春 “); if (j=4)dispString(3, 0, 1, “ 今天雨水 “); if (j=5)dispString(3, 0, 1, “ 今天惊蛰 “); 智芯锐电子: if (j=6)dispString(3, 0, 1, “ 今天春分 “); if (j=7)dispString(3, 0, 1, “ 今天清明 “); if (j=8)dispString(3, 0, 1, “ 今天谷雨 “); if (j=9)dispString(3, 0, 1, “ 今天立夏 “); if (j=10)dispString(3, 0, 1, “ 今天小满 “); if (j=11)dispString(3, 0, 1, “ 今天芒种 “); if (j=12)dispString(3, 0, 1, “ 今天夏至 “); if (j=13)dispString(3, 0, 1, “ 今天小暑 “); if (j=14)dispString(3, 0, 1, “ 今天大暑 “); if (j=15)dispString(3, 0, 1, “ 今天立秋 “); if (j=16)dispString(3, 0, 1, “ 今天处暑 “); if (j=17)dispString(3, 0, 1, “ 今天白露 “); if (j=18)dispString(3, 0, 1, “ 今天秋分 “); if (j=19)dispString(3, 0, 1, “ 今天寒露 “); if (j=20)dispString(3, 0, 1, “ 今天霜降 “); if (j=21)dispString(3, 0, 1, “ 今天立冬 “); if (j=22)dispString(3, 0, 1, “ 今天小雪 “); if (j=23)dispString(3, 0, 1, “ 今天大雪 “); if (j=24)dispString(3, 0, 1, “ 今天冬至 “); /国立节日 else if ( mo = 0x01 /1 月 if ( mo = 0x01 if ( mo = 0x02 /2 月 /if ( mo = 0x02 if ( mo = 0x02 if ( mo = 0x03 /3 月 if ( mo = 0x03 if ( mo = 0x03 if ( mo = 0x03 if ( mo = 0x03 if ( mo = 0x03 if ( mo = 0x03 if ( mo = 0x03 if ( mo = 0x03 if ( mo = 0x03 if ( mo = 0x03 if ( mo = 0x04 /4 if ( mo = 0x04 if ( mo = 0x04 if ( mo = 0x04 if ( mo = 0x05 /5 if ( mo = 0x05 if ( mo = 0x05 if ( mo = 0x05 if ( mo = 0x05 if ( mo = 0x05 if ( mo = 0x05 if ( mo = 0x06 /6 if ( mo = 0x06 if ( mo = 0x06 if ( mo = 0x06 if ( mo = 0x06 if ( mo = 0x06 if ( mo = 0x07 /7 if ( mo = 0x07 if ( mo = 0x07 if ( mo = 0x08 /8 if ( mo = 0x08 if ( mo = 0x08 if ( mo = 0x09 /9 if ( mo = 0x09 if ( mo = 0x09 if ( mo = 0x09 if ( mo = 0x10 /10 if ( mo = 0x10 if ( mo = 0x10 if ( mo = 0x10 if ( mo = 0x10 if ( mo = 0x11 /11 if ( mo = 0x11 if ( mo = 0x12 /12 if ( mo = 0x12 if ( mo = 0x12 if ( mo = 0x12 智芯锐电子: if ( mo = 0x12 else/非节日时显示时晨信息 if ( hh = 0x04 i-) DQ = 0; /给脉冲信号 dat=1; DQ = 1; /给脉冲信号 if(DQ) dat|=0x80; delay_18B20(10); return(dat); void ds1820wr(uchar wdata)/写数据 unsigned char i=0; for (i=8; i0; i-) DQ = 0; DQ = wdata delay_18B20(10); DQ = 1; wdata=1; read_temp()/读取温度值并转换 uchar a,b; ds1820rst(); ds1820wr(0xcc);/跳过读序列号 ds1820wr(0x44);/启动温度转换 ds1820rst(); ds1820wr(0xcc);/跳过读序列号 ds1820wr(0xbe);/读取温度 a=ds1820rd(); b=ds1820rd(); tvalue=b; tvalue6) y3-; switch(y3) case 0: dispString(0, 6, 1, “子鼠“); break; case 1: dispString(0, 6, 1, “丑牛“); break; case 2: dispString(0, 6, 1, “寅虎“); break; case 3: dispString(0, 6, 1, “卯兔“); break; case 4: dispString(0, 6, 1, “辰龙“); break; case 5: dispString(0, 6, 1, “巳蛇“); break; case 6: dispString(0, 6, 1, “午马“); break; case 7: dispString(0, 6, 1, “未羊“); break; case 8: dispString(0, 6, 1, “申猴“); break; case 9: dispString(0, 6, 1, “酉鸡“); break; case 10: dispString(0, 6, 1, “戌狗“); break; case 11: dispString(0, 6, 1, “亥猪“); break; /*/ /调时用加 1 程序 void Set_time(unsigned char sel)/根据选择调整的相应项目加 1 并写入 DS1302 智芯锐电子: signed char address,item; signed char max,mini; dispString(3, 2, 1, “设置“); if(sel=6) dispString(3, 4, 1, “秒钟“);address=0x80; max=59;mini=0; /秒 7 if(sel=5) dispString(3, 4, 1, “分钟“);address=0x82; max=59;mini=0; /分钟 6 if(sel=4) dispString(3, 4, 1, “小时“);address=0x84; max=23;mini=0; /小时 5 if(sel=3) dispString(3, 4, 1, “星期“);address=0x8a; max=7;mini=1; /星期 4 if(sel=2) dispString(3, 4, 1, “日期“);address=0x86; max=31;mini=1; /日 3 if(sel=1) dispString(3, 4, 1, “月份“);address=0x88; max=12;mini=1; /月 2 if(sel=0) dispString(3, 4, 1, “年份“);address=0x8c; max=99; mini=0; /年 1 /读取 1302 某地址上的数值转换成 10 进制赋给 item item=(read_clock(address+1)/16)*10 + (read_clock(address+1)%16; if(KEY_2 = 0) item+;/数加 1 if(KEY_4 = 0) item-;/数减 1 if(itemmax) item=mini;/查看数值有效范围 if(item0;a-)/第一个声音的长度 beep = beep;/取反扬声器驱动口,以产生音频 Delay(100);/音调设置延时 for(a=100;a0;a-)/同上 beep = beep; Delay(80);/ for(a=100;a0;a-)/同上 beep = beep; Delay(30);/ beep = 1;/音乐结束后扬声器拉高关闭 /*/ void Beep_set(void)/BELL -扬声器-确定设置 unsigned char a;/定义变量用于发声的长度设置 for(a=50;a0;a-)/第一个声音的长度 beep = beep;/取反扬声器驱动口,以产生音频 Delay(100);/音调设置延时 for(a=100;a0;a-)/同上 beep = beep; Delay(50);/ for(a=50;a0;a-)/同上 beep = beep; Delay(100);/ beep = 1;/音乐结束后扬声器拉高关闭 /*/ void Beep_key(void)/-扬声器-按键音 unsigned char a;/定义变量用于发声的长度设置 for(a=100;a0;a-)/声音的长度 beep = beep; Delay(50);/音调设置延时 beep = 1;/音乐结束后扬声器拉高关闭 /*/ /*/ /电子钟应用层程序设计 /*/ /向 LCM 中填写 年 数据 void lcm_w_yy(void) /if(read_clock(0x8d) != yy) yy = read_clock(0x8d); dispString(0, 0, 1, “20“); lcdWriteCommand(0x81); lcdWriteData(yy/16)+0x30); lcdWriteData(yy%16+0x30); / /*/ /向 LCM 中填写 月 数据 void lcm_w_mo(void) /if(read_clock(0x89) != mo) mo = read_clock(0x89); lcdWriteCommand(0x82); lcdWriteData(0x2d); lcdWriteData(mo/16)+0x30);/十位消隐 lcdWriteData(mo%16+0x30); lcdWriteData(0x2d); year=(mo/16*10)+mo%16; / /*/ /星期处理并送入 LCM 的指定区域 智芯锐电子: void lcm_w_xq(void) /if(read_clock(0x8b) != xq) xq = read_clock(0x8b); selx = (read_clock(0x8b)%16; /字节低 4 位的 BCD 码放入 selx if(selx=7) dispString(1, 7, 1, “日“); / if(selx=6) dispString(1, 7, 1, “六“); / if(selx=5) dispString(1, 7, 1, “五“); / if(selx=4) dispString(1, 7, 1, “四“); / if(selx=3) dispString(1, 7, 1, “三“); / if(selx=2) dispString(1, 7, 1, “二“); / if(selx=1) dispString(1, 7, 1, “一“); /星期一 dispString(1, 5, 1, “星期“); / /*/ /向 LCM 中填写 日 数据 void lcm_w_dd(void) /if(read_clock(0x87) != dd) dd = read_clock(0x87); lcdWriteCommand(0x84); lcdWriteData(dd/16)+0x30);/十位消隐 lcdWriteData(dd%16+0x30); / /*/ /向 LCM 中填写 小时 数据 void lcm_w_hh(void) if(read_clock(0x85) != hh) hh = read_clock(0x85); if (hh 0x07 /*/ /向 LCM 中填写 分钟 数据 void lcm_w_mm(void) if(read_clock(0x83) != mm) mm = read_clock(0x83); lcdWriteCommand(0x89); if(t/1%2=0)lcdWriteData(0x3a); /“:“ elselcdWriteData(0x20); lcdWriteData(mm/16)+0x30); lcdWriteData(mm%16+0x30); if(t/1%2=0) lcdWriteData(0x3a); /“:“ elselcdWriteData(0x20); void disp_temper()/温度值显示 uint temper; uchar temper_ge,temper_shi,temper_bai; temper=read_temp();/读取温度 temper_ge=temper%10+0x30; temper_shi=temper%100/10+0x30; temper_bai=temper/100+0x30; if(tflag=1) dispString(2, 4, 1, “ -“); if(temper_bai=0x30) temper_bai=0x20; lcdWriteCommand(0x8d); lcdWriteData(temper_bai); lcdWriteData(temper_shi); lcdWriteData(.); lcdWriteData(temper_ge); dispString(2, 7, 1, “); /* * 处理显示函数(被调用层) * */ void deal(uchar sfm) shi=sfm/16; ge=sfm%16; /* * 12864 显示时分秒函数(被调用层) * 智芯锐电子: */ void display(uchar a

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论