




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片机课程设计报告数字 万 年 历学院: 电气与控制工程学院 班级: 自动化1005班 姓名: 摘 要单片机就是微控制器,是面向应用对象设计、突出控制功能的芯片。单片机接上晶振、复位电路和相应的接口电路,装载软件后就可以构成单片机应用系统。将它嵌入到形形色色的应用系统中,就构成了众多产品、设备的智能化核心。本设计就是应用单片机强大的控制功能制作而成的电子万年历,该电子万年历包括四大功能:实时显示年、月、日、时、分、秒;实时监测环境温度;可根据需要启动高温报警;电子闹钟。本设计采用的是STC89C52RC单片机,该单片机采用的MCU51内核,因此具有很好的兼容性,内部带有8KB的ROM,能够存储
2、大量的程序,最突出特点是具有ISP在系统烧写功能,使得烧写程序更加方便。计时芯片采用DALLAS公司的涓细充电时钟芯片DS1302,该芯片通过简单的串行通信与单片机进行通信,时钟/日历电路能够实时提供年、月、日、时分、秒信息,采用双电源供电,当外部电源掉电时能够利用后备电池准确计时。温度检测采用DALLAS公司的数字化温度传感器,该芯片采用的是独特的“一线总线”的方式与单片机进行通信,一线总线独特而且经济的特点,是用户可以轻松的组建传感器网络,为测量系统的构建引入全新的概念。实时温度采用一线总线的方式传输大大的提高了信号的抗干扰性,分辨率可通过软件设置,其小巧的体积为各种环境下测量温度提供了方
3、便。显示器件采用通用型1602液晶,可显示32个字符,如果使用数码管来做显示器件需消耗大量的系统资源,因此采用低功耗的1602液晶,该液晶显示方便,功能强大,完全能满足数字万年历的显示要求。通过此次课程设计,我们的单片机的应用技术得到了加强,同时增强了我们的动手能力、硬件设计能力以及软件设计能力。关键词:单片机 万年历 温度计 高温报警 闹钟 一作品简介本作品以AT89S52单片机为控制核心,通过与DS1302和DS18B20通信获取实时时间和实时环境温度,并将得到的数据通过1602液晶显示,兼具高温报警和闹钟功能,同时通过四个按键来调整相应的数值。二器件选用主器件:STC89C52RC单片机
4、、时钟芯片DS1302、温度传感器DS18B20、1602液晶。系统介绍:本系统以STC89C52RC单片机为控制核心,通过与DS1302和DS18B20通信获取实时时间和实时环境温度,并将得到的数据通过1602液晶显示出来,同时通过相应的按键调整相应的值。因此本设计可分为一下模块:显示模块、实时时间计算模块、实时环境温度采集模块、报警模块、设置模块(时间设置模块、最高温度设置模块、闹钟设置模块)。STC89C52RC单片机,该单片机采用的MCU51内核,因此具有很好的兼容性,内部带有8KB的ROM,能够存储大量的程序,最突出特点是具有ISP在系统烧写功能,使得烧写程序更加方便。 时钟芯片DS
5、1302是DALLAS公司推出的涓流充电时钟芯片,内含一个实时时钟/日历和31字节静态RAM,可以通过串行接口与单片机进行通信。实时时钟/日历电路提供秒、分、时、日、星期、月、年的信息,每个月的天数和闰年的天数可自动调整,时钟操作可通过AM/PM标志位决定采用24或12小时时间格式。DS1302与单片机之间能简单地采用同步串行的方式进行通信,仅需三根I/O线:复位(RST)、I/O数据线、串行时钟(SCLK)。时钟/RAM的读/写数据以一字节或多达31字节的字符组方式通信。DS1302工作时功耗很低,保持数据和时钟信息时,功耗小于1mW。温度传感器DS18B20该产品采用美国DALLAS公司生
6、产的 DS18B20可组网数字温度传感器芯片封装而成,具有耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。 1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。 因为1602识别的是ASCII码,试验可以用ASCII码直接赋值,在单片机编程中还可以用字符型常量或变量赋值,如“A”。三模块设计液晶
7、显示模块1602液晶也叫1602字符型液晶 它是一种专门用来显示字母、数字、符号等的点阵型液晶模块 它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔,每行之间也有也有间隔,起到了字符间距和行间距的作用。1602的驱动电路带有11条指令,可以很方便的控制液晶的现实效果如:清屏、左移右移、光标显示。而且1602显示的字符在下一条指令为到来之前不会改变,也就是能够维持显示的字符,1602液晶占用的系统资源也少。因此采用1602可以达到很好的效果。实时时间计算模块DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟芯片,附加31字
8、节静态RAM,采用SPI三线接口与CPU进行通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。实时时钟可提供秒、分、时、日、星期、月和年,一个月小与31天时可以自动调整,且具有闰年补偿功能。工作电压宽达2.55.5V。采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后备电源进行涓细电流充电的能力。利用单片机强大的控制功能就可实现实时计时的功能,而且消耗的系统资源少,程序简单。虽然STC89C52单片机内部带有定时/计数功能,但是单片机通过对外部晶振的脉冲进行计数,他的单一的功能无法满足万年历的功能所以放弃单片机自带的定时计数功能,而采用DS1302进行时间的计数
9、。实时环境温度采集模块DS18B20是美国DALLAS公司生产的数字温度传感器,采用单总线的接口方式与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20 的双向通讯。 单总线具有经济性好,抗干扰能力强,适合于恶劣环境的现场温度测量,使用方便等优点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。测量温度范围宽,测量精度高 ,在使用中不需要任何外围元件,支持多点组网功能 多个 DS18B20 可以并联在惟一的单线上,实现多点测温,供电方式灵活 DS18B20 可以通过内部寄生电路从数据线上获取电源。因此,当数据线上的时序满足一定的要求时,可以不接外部电源,从而使系统结构更趋
10、简单,可靠性更高。因此非常适合本系统使用。尽管热敏电阻也可以采用,但是作为万年历的高精度测量,热敏电阻的精度是无法达到的。所以最终还是采用DS18B20来实现温度的感应。报警模块此模块采用蜂鸣器来实现高温报警,闹铃。总体模块设计报警模块(蜂鸣器)显示模块(1602液晶)STC89C52RC时间计算模块DS1302实时温度采集模块(DS18B20)设置模块(独立按键)四系统软件设计判断是否有按键按下时间、日期、上限温度、闹钟设置模块没有按键按下 温度检测模块开机初始化显示欢迎界面从DS1302读取信息1602液晶显示相关信息五电路图设计六制作过程万年历的制作总的来说是由两部分组成的一部分是硬件系
11、统,一部分是软件系统。硬件部分无外乎器件的选择,焊接,调试等,软件部分就是电路图的绘制,程序的编写,仿真的实现等。在确定了题目之后,我们都积极寻找资料,经过充分的探讨,我们决定采用一个液晶显示器显示年、月、日、时、分、秒和温度,在一个显示中集成显示,并将各个不同的功能采用不同的器件来实现,比如说采用DS18B20来实现温度的采取和传输,采用DS1302来实现年、月、日、时、分、秒和温度的控制。在确定好方案后,开始着手绘制电路图。绘制电路图采用了protues这集绘图与仿真于一体的工具,很快就初步绘制出电路图。另一方面,我们通过硬件电路着手程序编制的编制。在编程过程中,我们查阅了大量的资料及网站
12、,并对硬件电路进行修改,以利于编程。在这些工作做完之后,我们进行了仿真的工作,显示一切正常。由此,电路和程序都确定下来了。接下来就是统计并采购元件、焊接电路并调试的工作。通过一系列的改进,我们最终完成了我们的设计。七仿真实现欢迎界面2显示时间显示当前温度温度控制报警设置6、闹钟响铃:7:秒变显示八、设计及制作心得设计心得体会史冲为期两周的单片机课程设计眼看着就要结束了,我们组做的是万年历,在整个过程中我学到了很多东西,也遇到了很多意想不到的问题。在设计中,我深深地体会到了团队协作的重要性。我负责的是元器件的统计、报告的撰写、协助程序编写以及布局焊接。在这期间,由于我涉及的东西比较多,所以我和我
13、的队友不止一次不止一次为了某些问题而争论不休,我想真论是必须的,否则,我们怎么会进步?我们又如何拿出我们的作品?这次的课程设计,让我提高了实践动手能力,提高了 我发现问题,解决问题的能力,也加深了我对单片工作原理及一些相应器件功能和原理的理解。 这次实习让我受益匪浅,无论从知识上还是其他的各个方面。上课的时候的学习从来没有见过真正的单片机,只是从理论的角度去理解枯燥乏味。但在实习中见过甚至使用了单片机及其系统,能够理论联系实际的学习,开阔了眼界,提高了单片机知识的理解和水平。在这次课程设计中又让我体会到了合作与团结的力量,当遇到不会或是设计不出来的地方,我们就会在QQ群里讨论或者是同学之间相互
14、帮助。团结就是力量,无论在现在的学习中还是在以后的工作中,团结都是至关重要的,有了团结会有更多的理念、更多的思维、更多的情感。设计心得体会廖翔首先,在这次结伴而组织的比赛中让我切实明白了团结的力量。从刚开始的什么都没有信心,没有想法,没有目的到最后成功完成作品,这期间少不了我们团队之间的商量、探讨和协作,从开始的想法层不出穷,到后来的切实落实,这期间层有过激烈的探讨,但最终拿定主意后,才能明白原来的想法和现实之间总还隔着一条沟壑。诸如时间能力之类的东西。后期的合作还算愉快,布置电路、焊板子时大家那专注的眼神,默契的配合都是成功拿出作品的必要条件。其次,明白了详细的计划与策划的重要性。我负责的是
15、焊接的工作。在组长把布局图设计好之后,我就负责把它焊好。不过,人总是在摸索中前进的,通过这次的实践训练让我意识到人的潜力是巨大的,只要不断的挖掘总会有的。另外,我还学会了新的焊接技巧,学会了一些布局规律。最重要的是,我深刻地体会到了严谨思维与计划的重要性。当然,这只是我的一点心得,相信在未来的学习和摸索中还有着更多的知识宝藏等着我去发掘。最后,像杨老师说的,学校给我们提供了很多的机会去学习和实践,我们必须把握机会,不要等到毕业时候抱怨没有学到东西,说学校不行之类的话。学校已经给我们提供了这样良好的条件,如果我们不珍惜的话,只能是自己的损失。设计心得体会 罗军峰
16、; 通过本次课程设计,使我加深了对单片机的认识,并且熟悉了单片机系统的设计流程,收获丰硕。功能上基本达标:时钟的显示,调时功能,闹钟功能,温度显示,高温报警功能,精确度完全可以满足日常生活显示时间的需要;调时功能,方便快捷。硬件设施基本合乎要求,软件设计可以配合硬件实现其功能。 感谢学院给我们提供了一个自己动手的平台,给我们一次难得煅炼的机会,使得我们的动手能力和专业技能都有了很大的提高。 在做作品的日子里我们团结协作共同研究,认真查资料,遇到问题,请教老师同学,同学也很耐心,在此向他们致以诚挚的谢意。感谢提供相关技术帮助的老师和同学,在完成作品的过程中我们收获很多,充分锻炼了自己的动手能力,
17、和团队协作能力。技术在不断进步,电子时代已经到来。做为新时代的我们,更应该提高自身能力,适应新时代的发展。知识来自实践,多从生活中探寻所需要的。互联网成了我们生活中不可或缺的一部分,网络在本次设计中起到了很大作用,很多芯片资料,传统的纸质图书里是没有的。网络只是一个平台,正是由于大家的无私奉献,才使得它丰富多彩。 从这次的课程设计中,我真正的体会到,知识的重要性,特别是要理论联系实际,把我们所学的理论知识运用到实际生活当中,要学会用知识改变我们实际的生产生活。九、附录1、原件清单名称数量属性DS13021CRYSTAL/晶振 32768HZSPEAKER/蜂鸣器1DS18B201LM016L/
18、显示器1RESPACK-811K排线5*8=40排针5*8=40电阻4*3=122K,100欧姆,10K,1K红色发光二级管24NPN三极管(8050)1自锁开关1PCB版容纳三节五号电池的电池夹1BUTTON(复位开关)42、程序代码:#include<reg52.h>#include<intrins.h>#define uchar unsigned char #define uint unsigned intsbit lcdrs=P20; sbit lcden=P21;sbit DATA=P26; /时钟数据接口sbit RST=P27; sbit SCLK=P25
19、;sbit DQ=P22;/ds18b20与单片机连接口sbit gneng=P14;sbit menu=P15; /菜单sbit add=P16; /加一sbit dec=P17;sbit beep=P23; /减一 uchar data disdata5;uchar data alarmdata2;uchar data tempdata5;uchar data aflag1;uchar code displaywelcome="Welcome! _"/欢迎界面uchar code displaywish="Happy Every Day"uchar
20、code table2= "THUFRISATSUNMONTUEWES"uchar codetable=" 20 - - "uchar code table1=" : : . "uchar code alarm="ALARM TIME:"uchar code alarm1=" 00:00 "uchar code miaobiao=" MIAO BIAO "uchar code miaobiao1=" 00:00:00 "uchar second,minut
21、e,hour,day,month,year,week,count=0; uchar ReadValue,num,time; uint tvalue;/温度值uchar tflag,mflag=1;uchar miao,shi,fen;uchar mfen,mmiao,pmiao;char tbai,tshi,tge,txiao,ashi,afen;void delay(uint x)uint i,j;for(i=x;i>0;i-)for(j=125;j>0;j-);void delay1(uint z)for(;z>0;z-);/蜂鸣器子程序void di()beep=0;/
22、delay(10);/beep=1;/1602写指令void write_com(uchar com)lcdrs=0;P0=com;delay(5);lcden=1;delay(5);lcden=0;/1602写数据void write_data(uchar date)lcdrs=1;P0=date;delay(5);lcden=1;delay(5);lcden=0;/1602初始化void init()uchar num;lcden=0;write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x01);write_com(0x80
23、);delay(5);write_com(0x80+3);for(num=0;num<12;num+)write_data(displaywelcomenum);delay(5);write_com(0x80+0x41);for(num=0;num<15;num+)write_data(displaywishnum);delay(5);/1602指定地址写数据void write_com_data(uchar x,uchar y)write_com(x);write_data(y);delay(5);void miaobiaojishi()if(mflag=0)/delay(1);
24、pmiao+;if(pmiao=100)pmiao=0;mmiao+;if(mmiao=60)mmiao=0;mfen+;if(mfen=100)mfen=0;void mkeyscan()if(menu=0) delay(3); if(menu=0) while(!menu);mfen=0;mmiao=0;pmiao=0; if(add=0) delay(3); if(add=0) while(!add);mflag=1; if(dec=0) delay(3); if(dec=0) while(!dec);mflag=0;/闹钟初始化void ainit()uchar num;lcden=0
25、;write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x01);write_com(0x80);delay(5);write_com(0x80+2);for(num=0;num<11;num+)write_data(alarmnum);delay(5);write_com(0x80+0x42);for(num=0;num<7;num+)write_data(alarm1num);delay(5);/write_com(0x01);/清屏指令 void DisplayON() write_com(0x80+0x4c);
26、 write_data('O'); write_data('N'); write_data(' '); void DisplayOFF() write_com(0x80+0x4c); write_data('O'); write_data('F'); write_data('F'); /1302写字节void Write1302(uchar dat) uchar i; SCLK=0; /拉低SCLK,为脉冲上升沿写入数据做好准备 delay1(2); /稍微等待,使硬件做好准备 for(i=0;i&
27、lt;8;i+) /连续写8个二进制位数据 DATA=dat&0x01; /取出dat的第0位数据写入1302 delay(2); /稍微等待,使硬件做好准备 SCLK=1; /上升沿写入数据 delay1(2); /稍微等待,使硬件做好准备 SCLK=0; /重新拉低SCLK,形成脉冲 dat>>=1; /将dat的各数据位右移1位,准备写入下一个数据位 /1302向指定地址写数据 void WriteSet1302(uchar Cmd,uchar dat) RST=0; /禁止数据传递 SCLK=0; /确保写数居前SCLK被拉低 RST=1; /启动数据传输 dela
28、y1(2); /稍微等待,使硬件做好准备 Write1302(Cmd); /写入命令字 Write1302(dat); /写数据 SCLK=1; /将时钟电平置于已知状态 RST=0; /禁止数据传递 /1302读字节uchar Read1302(void) uchar i,dat; delay(2); /稍微等待,使硬件做好准备 for(i=0;i<8;i+) /连续读8个二进制位数据 dat>>=1; /将dat的各数据位右移1位,因为先读出的是字节的最低位 if(DATA=1) /如果读出的数据是1 dat|=0x80; /将1取出,写在dat的最高位 SCLK=1;
29、/将SCLK置于高电平,为下降沿读出 delay1(2); /稍微等待 SCLK=0; /拉低SCLK,形成脉冲下降沿 delay1(2); /稍微等待 return dat; /将读出的数据返回 /1302从指定地址读数据uchar ReadSet1302(uchar Cmd) uchar dat; RST=0; /拉低RST SCLK=0; /确保写数居前SCLK被拉低 RST=1; /启动数据传输 Write1302(Cmd); /写入命令字 dat=Read1302(); /读出数据 SCLK=1; /将时钟电平置于已知状态 RST=0; /禁止数据传递 return dat; /将读
30、出的数据返回/1302初始化void Init_DS1302(void) WriteSet1302(0x8E,0x00); /根据写状态寄存器命令字,写入不保护指令 WriteSet1302(0x80,(0/10)<<4|(0%10); /根据写秒寄存器命令字,写入秒的初始值 WriteSet1302(0x82,(45/10)<<4|(45%10); /根据写分寄存器命令字,写入分的初始值 WriteSet1302(0x84,(15/10)<<4|(15%10); /根据写小时寄存器命令字,写入小时的初始值 WriteSet1302(0x86,(29/10)
31、<<4|(29%10); /根据写日寄存器命令字,写入日的初始值 WriteSet1302(0x88,(11/10)<<4|(11%10); /根据写月寄存器命令字,写入月的初始值 WriteSet1302(0x8c,(10/10)<<4|(10%10); /nian WriteSet1302(0x8a,(4/10)<<4|(4%10);void DisplaySecond(uchar x) uchar i,j; i=x/10; j=x%10; write_com(0xc7); write_data(0x30+i); write_data(0x3
32、0+j); void DisplayMinute(uchar x) uchar i,j; i=x/10; j=x%10; write_com(0xc4); write_data(0x30+i); write_data(0x30+j); void DisplayHour(uchar x) uchar i,j; i=x/10; j=x%10; write_com(0xc1); write_data(0x30+i); write_data(0x30+j); void DisplayDay(uchar x) uchar i,j; i=x/10; j=x%10; write_com(0x89); wri
33、te_data(0x30+i); write_data(0x30+j); void DisplayMonth(uchar x) uchar i,j; i=x/10; j=x%10; write_com(0x86); write_data(0x30+i); write_data(0x30+j); void DisplayYear(uchar x) uchar i,j; i=x/10; j=x%10; write_com(0x83); write_data(0x30+i); write_data(0x30+j); void DisplayWeek(uchar x) uchar i; x=x*3;
34、write_com(0x8c); for(i=0;i<3;i+) write_data(table2x);x+; void aDisplayMinute(uchar x) uchar i,j; i=x/10; j=x%10; write_com(0x80+0x40+6); write_data(0x30+i); write_data(0x30+j); void aDisplayHour(uchar x) uchar i,j; i=x/10; j=x%10; write_com(0x80+0x40+3); write_data(0x30+i); write_data(0x30+j); vo
35、id adisplay()ashi=alarmdata0;afen=alarmdata1;aDisplayMinute(afen);aDisplayHour(ashi);if(aflag0=1)DisplayON();elseDisplayOFF(); void MDisplayfen(uchar x) uchar i,j; i=x/10; j=x%10; write_com(0x80+0x40+3); write_data(0x30+i); write_data(0x30+j); void MDisplaymiao(uchar x) uchar i,j; i=x/10; j=x%10; wr
36、ite_com(0x80+0x40+6); write_data(0x30+i); write_data(0x30+j); void MDisplaypmiao(uchar x) uchar i,j; i=x/10; j=x%10; write_com(0x80+0x40+9); write_data(0x30+i); write_data(0x30+j); void tDisplaybai(uchar x) write_com(0x80+0x40+9); write_data(0x30+x); void tDisplayshi(uchar x) write_com(0x80+0x40+10)
37、; write_data(0x30+x); void tDisplayge(uchar x) write_com(0x80+0x40+11); write_data(0x30+x); void tDisplayxiao(uchar x) write_com(0x80+0x40+13); write_data(0x30+x); void Tdisplay()tbai=tempdata0;tshi=tempdata1;tge=tempdata2;txiao=tempdata3;tDisplaybai(tbai);tDisplayshi(tshi);tDisplayge(tge);tDisplayx
38、iao(txiao);void mdisplay()MDisplayfen(mfen);write_com_data(0x80+0x45,':');MDisplaymiao(mmiao);write_com_data(0x80+0x48,':');MDisplaypmiao(pmiao);void read_data(void) ReadValue = ReadSet1302(0x81); second=(ReadValue&0x70)>>4)*10 + (ReadValue&0x0F); ReadValue = ReadSet130
39、2(0x83); minute=(ReadValue&0x70)>>4)*10 + (ReadValue&0x0F); ReadValue = ReadSet1302(0x85); hour=(ReadValue&0x70)>>4)*10 + (ReadValue&0x0F); ReadValue = ReadSet1302(0x87); day=(ReadValue&0x70)>>4)*10 + (ReadValue&0x0F); ReadValue = ReadSet1302(0x89); month=(R
40、eadValue&0x70)>>4)*10 + (ReadValue&0x0F); ReadValue = ReadSet1302(0x8d); year=(ReadValue&0x70)>>4)*10 + (ReadValue&0x0F); ReadValue=ReadSet1302(0x8b); /读星期 week=ReadValue&0x07; DisplaySecond(second); DisplayMinute(minute); DisplayHour(hour); DisplayDay(day); DisplayMo
41、nth(month); DisplayYear(year); DisplayWeek(week); void turn_val(char newval,uchar flag,uchar newaddr,uchar s1num) newval=ReadSet1302(newaddr); /读取当前时间 newval=(newval&0x70)>>4)*10+(newval&0x0f); /将bcd码转换成十进制 if(flag) /判断是加一还是减一 newval+; switch(s1num) case 1: if(newval>99) newval=0; D
42、isplayYear(newval); break; case 2: if(newval>12) newval=1; DisplayMonth(newval); break; case 3: if(newval>31) newval=1; DisplayDay(newval); break; case 4: if(newval>6) newval=0; DisplayWeek(newval); break; case 5: if(newval>23) newval=0; DisplayHour(newval); break; case 6: if(newval>5
43、9) newval=0; DisplayMinute(newval); break; case 7: if(newval>59) newval=0; DisplaySecond(newval); break; default:break; else newval-;switch(s1num) case 1: if(newval=0) newval=99; DisplayYear(newval); break; case 2: if(newval=0) newval=12; DisplayMonth(newval); break; case 3: if(newval=0) newval=3
44、1; DisplayDay(newval); break; case 4: if(newval<0) newval=6; DisplayWeek(newval); break; case 5: if(newval<0) newval=23; DisplayHour(newval); break; case 6: if(newval<0) newval=59; DisplayMinute(newval); break; case 7: if(newval<0) newval=59; DisplaySecond(newval); break; default:break; WriteSet1302(newaddr-1),(newval/10)<<4)|(newval%10); /将新数据写入寄存器 /键盘扫描程序时间设置/*void key_scan(void)uchar miao,s1num=0;if(menu=0) delay(5); if(menu=0) while(!menu); s1num+;while(1) if(menu=0) delay(5); if(menu=0) while(!menu); s1num+; / rd=0;miao=ReadSet
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 假发采购合同范例
- 劳务承包拆除合同范例
- 加油站站长解聘合同范例
- 北京燃气 安装合同范例
- 印刷采购合同范本
- 厨房易耗品采购合同范例
- 兜底售电公司合同范例
- 包装纸盒合同范例
- 厂家服务合同范例
- 企业广告合同范例
- 有关高中生英文励志演讲稿3篇
- 消防应急疏散演练课件
- hsk5-成语学习知识
- GB/T 16799-2018家具用皮革
- 南京市2018小升初简历
- 重症感染与抗生素的选择课件
- 截流式合流制管道系统的特点与使用条件课件
- 四年级下册英语课件:Unit 4 There are seven days in a week-Lesson 19人教精通版
- 千分尺公开课教案
- 加油站承重罐区安全风险及管理
- 箱变施工安全文明保证措施
评论
0/150
提交评论