




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、/T0 产生双路 PWM 信号, L298N 为直流电机调速,接 L298N 时相应的管脚上最好接上 10K 的上拉电/*晶振采用12M,产生的PWM的频率约为100Hz */#include<reg51.h>#include<math.h>#define uchar unsigned char#define uint unsigned intsbit en仁P 34; /* L298sbit en 2=卩3人5; /* L298sbit s1= PWO;/* L298 sbit s2=PIF;/* L298 sbit s3=P 23;/* L298 sbit s4=P
2、1A2;/* L298 sbit R=P 29的 Enable A */ 的 Enable B */ 的 的 的 的Input 1 */Input 2 */Input 3 */Input 4 */sbit C=P 2人1;sbit L=P 2人2;sbit key=PIM;uchar t=0; /* 中断计数器*/uchar m1=0; /* 电机 1 速度值 */ uchar m2=0; /* 电机 2 速度值 */ uchar tmp1,tmp2; /* 电机当前速度值/*电机控制函数index-电机号(1,2); speed-电机速度(0-100) */void motor(uchar
3、index, char speed)*/if(speed<=100)if(index=1) /* 电机 1 的处理 */ m1=abs(speed); /* 取速度的绝对值 */s1=1;s2=0;if(index=2) /* 电机 2的处理 */m2=abs(speed); /* 电机 2 的速度控制 */s3=1;s4=O;void Back(void) s1=0;s2=1;s3=1;s4=0;void GO(void)s1=1;s2=0;s3=1;s4=0;void TL(void)s1=1;s2=0;s3=0;s4=1;void TR(void)s1=0;s2=1;s3=1;s4
4、=0;void STOP(void)s1=1;s2=1;s3=1;s4=1;/* void delay(uint j) /* 简易延时函数 */ for(j;j>0;j-);*/void delay(uint z)uint x,y;for(x=z;x>0;x-)*/for(y=110;y>0;y-);void main()uchar i=0,j=0;TMOD=0x02; /* 设定 T0 的工作模式为 2 ,8位自动重置定时器,每过几个机器周期,计数器加一TH0=0x9B; /* 装入定时器的初值,计数 100 次溢出 */TL0=0x9B; /* 装入时间常数 */EA=1
5、; /* 开中断 */ET0=1; /* 定时器 0 允许中断 */TR0=1; /* 启动定时器 0 */ while(1)if(key=1)/* 电机实际控制演示 */ if(i<=100) / 正转加速 motor(1,i);motor(2,i); delay(5000);i+;else GO(); else EA=0;while(1) if(L|C|R)=0) STOP();if(L&R)GO();if(L=0)while(C) TL();if(R=0) while(C)TR();*/void timer0() interrupt 1 /* T0 中断服务程序 */if(
6、t=0) /* 1 个 PWM 周期完成后才会接受新数值 tmp1=m1;tmp2=m2;if(t<tmp1) en1=1; else en1=0; /* 产生电机 1 的 if(t<tmp2) en2=1; else en2=0; /* 产生电机 2 的 t+;PWMPWM信号 */信号 */*/if(t>=100) t=0; /* 1 个 PWM 信号由 100 次中断产生 #include<intrins.h> #include<AT89X52.h> /* * * 宏定义区 * */*LCD 模块*/#defineLCD_RW P2_6 /#de
7、fineLCD_RS P2_7 /读写控制端数据命令选择端#defineLCD_E P2_5 / 执行使能端#defineLCD_Data P1 /P1 口 #defineWrite 0x00 / 低电平写入#defineRead 0x01 / 高电平读出#defineData 0x01 / 高电平选择数据#defineCmd 0x00 / 低电平选择命令 #defineEnable 0x00 / 跃变到低电平时执行命令#defineDisable 0x01 #defineTrue 0x01 #defineFalse 0x00 #defineLCD_Init 0x38 / 初始化模式#defi
8、neLCD_DispCtr 0x0C /开显示及光标设置#defineLCD_CloseCtr 0x08 / 关显示#defineLCD_CLS 0x01 / 清屏幕#defineLCD_EnterSet 0x06 / 显示光标#defineBusy P1_7 / 忙信号/#defineP31 P0 5 /控制液晶背光 #defineP33 P3 3/* 菜单选择模块#defineLine 0x00 /0 代表直线模式#defineCurve 0x01 /1 代表 S 型模式#defi neNormal 0x00 /0 代表正常速度#defi neLow 0x01 /1 代表低速#defi n
9、eHigh 0x02 /2 代表高速/* * 测速/测距/测时模块#defineCircleLength 0.132 / 小车转一轮的长度为.132m/* 控速模块#defineP03 P0_3 / 后电机#defineP04 P0_4 / 后电机 #defineP01 P0_1 / 前电机*/*/*/LCD 模块一初始化设置写命令模式 设置读命令模式 设置写数据模式*/*/#defineP02 P0 2 / 前电机voidSpeedlNT(void); / 测速中断voidCo mp uteTime(void);*/voidCom puteS peedANDDista nce(void);
10、/ 计算速度和距离/* 控速模块voidCtrSpeedlNT(void); / 控速中断 voidTime0INT(void);voidTime1INT(void); / 控速单位时间中断 voidClock0 _ln it(void); / 时钟中断初始化 voidClock1 _ln it(void); / 时钟中断初始化 voidCtrS peed(void);/* *全局变量区* */ float SpeedCount=0; / 测速计数脉冲float Sp eed=0.0;float Dista nce=0.0;char Time1INTCou nt=0; /T1 中断时间计时fl
11、oat PassTime=0.00; /小车行走的时间 short IsT0INT=1;bit IsT1INT; /判断T1是否已经响应中断 short lsT0INT2=1;char Thx5=0xf4,0xf4,0xc5,0xf4,0xff; /3ms,3ms,15ms,3mschar Tlx5=0x48,0x48,0x68,0x48,0xff;char Thx0=0xd8;char Tlx0=0xf0;char Thx1=0xb1; /20mschar Tlx1=0xe0;short Roun d=0;short Back=0;short Back0=0;bit Backid;bit S
12、top=0;char Area0=0;char Area1=0; / 区域变量char LowS peedArea1StartTime;char Lows peedArea1E ndTime;char HighS peedAreaE ndTime;char LowS peedArea2E ndTime;char LowSpeedArea1 PassTime=0; / 第一个低速区通过时间char HighSpeedAreaPassTime=0; / 高速区通过时间char LowSpeedArea2PassTime=0; / 第二个低速区通过时间 char ReadyToGo=4; / 倒计时
13、 char flag;bit Roundid=0;char Nocurve=0; char ChangeFlag;char Mode;bit Running;bit SelectedAll; / 模式和速度是否选择完毕标志 bit IsSelectingMode; / 模式选择标志 bit IsSelectingSpeed; / 速度选择标志 bit ModeSelected; / 已经被选择的模式标志 char SelectedMode=10; / 模式选择是否完毕标志 bit Next; /Next 键标志bit SpeedSelected; / 已经被选中的速度方案标志 char Sel
14、ectedSpeed; /速度选择是否完毕标志 bit ChoosingDisplay; / 人工选择菜单开始标志 bit SelectedShow; / 显示选择标志 bit SelectedReturn; / 返回选择标志 bit Selected; / 确定 /返回键选择标志 bit ReturnSelection; / 返回键启用标志 bit AVGSpeedShow; / 平均速度显示标志 bit TotalDistanceShow; / 总路程显示标志 bit ReturnMain; / 返回主菜单标志 bit AutoDisplay; / 自动显示标志 bit GoToChoos
15、ingDisplay; / 人工选择标志 bit AutoMode=0;char PassLineID=0;char PassLine=0;float PrepareDistance;float FirstDistance;float SecondDistance;float ThirdDistance;int FirstHigh;int SecondHigh;int ThirdHigh;float Rate=1.25; /5ms 时的速度float Count=4; / 时间的倍数/* * 全局函数实现区 * */主函数*/*- voidmain()P01=0;P02=0;P03=0; P0
16、4=0;P31=1; / 单片机复位,背光开 Delay(40); / 延时等待 LCD 启动 LCDInit(); / 初始化 LCD DisplayString(0x0,0," Starting. "); DisplayString(0x0,1,"DesignedBy202");Delay(300); WriteCmd(LCD_CLS);/*/EA=1; / 开总中断 EX0=1; / 开 INT0 中断 IT0=1; /INTO 边沿触发 EX1=1; / 开 INT1 中断 IT1=1; /INT1 边沿触发 SelectedAll=False;
17、 / 开始模式和速度选择 模式选择 DisplayString(0x0,0,"ChooseTheMode"); DisplayString(0x0,1,"youwant. ");Delay(50); WriteCmd(LCD_CLS);IsSelectingMode=True; while(1)WriteCmd(LCD_CLS); DisplayString(0x0,0," LineMode ");DisplayString(0x0,1,"Next Yes"); Delay(300); / 延时消除抖动 while
18、(1) / 不断检测中断,直到按确定键或是NEXT 键 if(Next=True) / 如果按 Next 键则直接跳出 break;if(ModeSelected=True) / 如果按确定键则设置模式为 Line 并跳出SelectedMode=Line;break; / 如果什么键都没有按下,那么一直 显示等待if(ModeSelected=True) / 按下了确定键,退出模式选择IsSelectingMode=False;break;if(Next=True) / 按下了 Next 键,显示下一个菜单项 Next=False;WriteCmd(LCD_CLS);DisplayStrin
19、g(0x0,0," CurveMode ");DisplayString(0x0,1,"Next Yes");Delay(300); / 延时消除抖动while(1) / 不断检测中断,直到按确定键或是 Next 键 if(Next=True) / 如果再一次按下 Next 键,则跳出 break;if(ModeSelected=True) / 如果按下确定键,则设置模式为 Curve,并跳岀SelectedMode=Curve;break;if(ModeSelected=True) / 按下了确定键,退岀模式选择 IsSelectingMode=Fal
20、se;break;if(Next=True) / 再一次按下了 Next 键,则循环模式 选择Next=False;WriteCmd(LCD_CLS);DisplayString(0x0,0," AutoMode ");DisplayString(0x0,1,"Next Yes");Delay(300); / 延时消除抖动 while(1)if(Next=True)break;if(ModeSelected=True)AutoMode=1;break;if(ModeSelected=True)IsSelectingMode=False;break;if(
21、Next=True)Next=False;continue;Delay(50);WriteCmd(LCD_CLS);速度选择*/* if(SelectedMode=Line&&AutoMode=0)DisplayString(0x0,0," NowChoosea ");DisplayString(0x0,1," kindofSpeed");Delay(50);WriteCmd(LCD_CLS);IsSelectingSpeed=True;while(1)WriteCmd(LCD_CLS);DisplayString(0x0,0,"
22、;NormalSpeed ");DisplayString(0x0,1,"Next Yes");Delay(300); / 延时消除抖动 while(1) if(Next=True) / 如果按 Next 键则直接跳出 break;if(SpeedSelected=True) / 如果按确定键则设置速度为 Normal 并跳出Thx0=0xec;Tlx0=0x78; /5msThx1=0xf0;Tlx1=0x60; /4msThx2=0x8a;Tlx2=0xd0; /30msThx3=0xf4;Tlx3=0x48; /3msSelectedSpeed=Normal
23、;break; / 如果什么键都没有按下,那么一 直显示等待if(SpeedSelected=True) / 按下了确定键,退出速度选择 IsSelectingSpeed=False; break; if(Next=True) Next=False;WriteCmd(LCD_CLS);DisplayString(0x0,0," Low Speed "); DisplayString(0x0,1,"Next Yes"); Delay(300); / 延时消除抖动 while(1) if(Next=True) / 如果再一次按下 Next 键,则跳出 bre
24、ak;if(SpeedSelected=True) / 如果按下确定键,则设置速度为 Low ,并跳出SelectedSpeed=Low; / 这里没有速度设置,因为默认 速度就是 Low break;if(SpeedSelected=True) / 按下了确定键,退出速度选择 IsSelectingSpeed=False;break;if(Next=True) Next=False;WriteCmd(LCD_CLS);DisplayString(0x0,0," High Speed "); DisplayString(0x0,1,"Next Yes")
25、;Delay(300); / 延时消除抖动 while(1) if(Next=True) / 如果再一次按下 Next 键,则跳出 break;if(SpeedSelected=True) / 如果按下确定键,则设置速度为High ,并跳出Thx0=0xe0;Tlx0=0xc0;/8msThx1=0xe0;Tlx1=0xc0; /8msThx2=0x63;Tlx2=0xc0; /40msThx3=0xec;Tlx3=0x78; /5ms SelectedSpeed=High;break;if(SpeedSelected=True) / 按下了确定键,退出速度选择 IsSelectingSpee
26、d=False;break;if(Next=True) / 再一次按下了 Next 键,则循环速度 选择Next=False;continue;SelectedAll=True; / 标志模式选择和速度选择完毕Running=True;Delay(50);WriteCmd(LCD_CLS);*/* 显示所选择的模式和速度方案if(SelectedMode=Line)DisplayString(0x0,0,"ChoosenModeis");DisplayString(0x0,1," Line ");Delay(50);WriteCmd(LCD_CLS);i
27、f(SelectedMode=Curve)DisplayString(0x0,0,"ChoosenModeis");DisplayString(0x0,1," Curve ");Delay(50);WriteCmd(LCD_CLS);if(AutoMode=1)DisplayString(0x0,0,"ChoosenModeis");DisplayString(0x0,1," AutoMode ");Delay(50);WriteCmd(LCD_CLS);if(SelectedMode=Line)if(Select
28、edSpeed=Normal)DisplayString(0x0,0,"ChoosenSpeedis");DisplayString(0x0,1," Normal ");Delay(50);WriteCmd(LCD_CLS);if(SelectedSpeed=Low)DisplayString(0x0,0,"ChoosenSpeedis");DisplayString(0x0,1," Low ");Delay(50);WriteCmd(LCD_CLS);if(SelectedSpeed=High)DisplaySt
29、ring(0x0,0,"ChoosenSpeedis");DisplayString(0x0,1," High ");Delay(50);WriteCmd(LCD_CLS);INTInit(); / 初始化所有中断DisplayString(0x0,0,"LeftTimesToGo"); while(ReadyToGo-)DisplaySingleChar(0x7,1,ReadyToGo+0x30);DisplaySingleChar(0x09,1,'s');Delay(300);WriteCmd(LCD_CLS);D
30、isplayString(0x05,0,"Go!");Delay(100);WriteCmd(LCD_CLS);DisplayString(0x0,0," Living. ");DisplayString(0x0,1,"Designedby202"); if(SelectedMode=Line&&AutoMode=0) flag=Area0;else flag=1;while(flag<5)if(AutoMode=1) / 自动模式switch(PassLineID)case0 :if(IsT0INT=1)P01
31、=P02=P04=0;P03=1;else P01=P02=P03=P04=0;break;case1 :P01=P02=P03=0;P04=1;break;case2 :P01=P02=P04=0;P03=1;break;default:break;elseif(SelectedMode=Line) / 直线模式flag=Area0;if(IsT0INT=1)P03=1;P04=0;P01=P02=0; else P03=0;P04=0;P01=P02=0;else /S 型模式if(Nocurve<2)&&Round!=0&&(Back0>0)&
32、amp;&Back!=0)if(Backid=1)P01=1;P02=0;P03=0;P04=1; else P01=0;P02=1;P03=0;P04=1;Back=1; elseif(Round=0)if(IsT0INT2=1)P01=0;P02=0;P03=1;P04=0;else P01=0;P02=0;P03=0;P04=0;else if(P33=0)if(IsT0INT2=1) P01=0;P02=0;P03=1;P04=0;else P01=0;P02=0;P03=0;P04=0;elseEX1=1;if(Round%2)if(IsT0INT2=1) P01=1;P02
33、=0;P03=1;P04=0;Backid=1;else P01=1;P02=0;P03=0;P04=0;elseif(IsT0INT2=1)P01=0;P02=1;P03=1;P04=0;Backid=0; else P01=0;P02=1;P03=0;P04=0;if(IsT1INT=1)IsT1INT=0;ComputeTime();ComputeSpeedANDDistance();/补中断路程,加上最后一次中断缺失的路程ComputeSpeedANDDistance();P04=1;P03=0;P01=P02=0;Delay(90);P03=0;P04=0; / 行程结束,小车停止P
34、31=1; / 行程结束,背光开ET0=0x0; / 关 T0 中断ET1=0x0; / 关 T1 中断EX1=0x01; / 开 INT1 中断Running=False;AutoDisplay=True; / 默认情况下直线模式会自动显示各个区域 经过的时间WriteCmd(LCD_CLS);if(SelectedMode=Line) / 直线模式才显示 while(1)if(GoToChoosingDisplay=True)break;Delay(200);WriteCmd(LCD_CLS);Delay(200);DisplayString(0,0,"LowSpeedArea1
35、");DisplayString(0,1,"Costed");DisplaySingleChar(0x0C,1,'s');LowSpeedArea1PassTime=LowSpeedArea1EndTime-LowSpeedArea1StartTime;DisplaySingleChar(0x0A,1,LowSpeedArea1PassTime%10+0x30);if(LowSpeedArea1PassTime>9) / 通过第一个低速区的时间超过sDisplaySingleChar(0x0B,1,LowSpeedArea1PassTime/
36、10+0x30);if(GoToChoosingDisplay=True)break;Delay(200);WriteCmd(LCD_CLS);Delay(200);DisplayString(0,0,"HighSpeedArea");DisplayString(0,1,"Costed");DisplaySingleChar(0x0C,1,'s');HighSpeedAreaPassTime=HighSpeedAreaEndTime-LowSpeedArea1EndTime;DisplaySingleChar(0x0A,1,HighSpe
37、edAreaPassTime%10+0x30);if(HighSpeedAreaPassTime>9) / 通过高速区的时间超过 sDisplaySingleChar(0x0B,1,HighSpeedAreaPassTime/10+0x30); if(GoToChoosingDisplay=True)break;Delay(200);WriteCmd(LCD_CLS);Delay(200);DisplayString(0,0,"LowSpeedArea2");DisplayString(0,1,"Costed");DisplaySingleChar
38、(0x0C,1,'s');LowSpeedArea2PassTime=LowSpeedArea2EndTime-HighSpeedAreaEndTime;DisplaySingleChar(0x0A,1,LowSpeedArea2PassTime%10+0x30); if(LowSpeedArea2PassTime>9) / 通过第二个低速区的时间超过sDisplaySingleChar(0x0B,1,LowSpeedArea2PassTime/10+0x30); AutoDisplay=False;-总时间、总路程以及平均速度*/*/* 菜单选择你想要看的内容Choos
39、ingDisplay=True; WriteCmd(LCD_CLS);*/*首先显示主菜单,然后显示第一个选项DisplayString(0x0,0,"NowChoosewhat");DisplayString(0x0,1,"youwanttosee");Delay(100); while(1) WriteCmd(LCD_CLS);DisplayString(0x0,0," CostedTime ");DisplayString(0x0,1,"Next Show");Delay(250); / 延时消除抖动/* 第
40、一次按键/*不断检测确定键和Next 键 */ while(1)if(Next=True) break;if(SelectedShow=True) break;*/*按下了确定键,显示第一个选项的内容 if(SelectedShow=True)SelectedShow=False;SelectedReturn=False;Selected=False;WriteCmd(LCD_CLS);DisplayString(0,0,"CostedTimeis");DisplayTime();DisplayString(0x0A,1,"s");ReturnSelec
41、tion=True; / 按下了确定键,那么这个时候开启返回 键的功能AVGSpeedShow=False; Delay(250); / 延时消除抖动 /* 按下了 Next 键,则显示第二个选项 */ if(Next=True) / 按下 Next 键,显示 AVGSpeed 菜单项 Next=False;WriteCmd(LCD_CLS); DisplayString(0x0,0," AVGSpeed ");DisplayString(0x0,1,"Next Show"); ReturnMain=False;那么这个时候关闭返选项已经显示过Retur
42、nSelection=False; / 按下了 Next 键, 回键的功能AVGSpeedShow=True; / 表明 AVGSpeed 了Delay(250); / 延时消除抖动 /*第二次按键 /*显示第一个选项的内容后又不断检测返回键(确定键)和 while(1) if(Next=True) break;*/Next 键 */if(Selected=True)break; if(Next=True)Next=False;ReturnMain=False;ReturnSelection=False; / 按下了 Next 键,那么这个时候关闭返 回键的功能if(AVGSpeedShow=
43、False) / 还没有显示 AVGSpeed 选项,显示它 / 即第一次选择了确定键WriteCmd(LCD_CLS);DisplayString(0x0,0," AVGSpeed ");DisplayString(0x0,1,"Next Show");TotalDistanceShow=False; / 显示了 AVGSpeed ,则表明 TotalDistance 还 没有显示Delay(250); / 延时消除抖动if(AVGSpeedShow=True) / 已经显示过 AVGSpeed 选项了,则显示 下一个选项 / 即第一次选择了 Next
44、 键WriteCmd(LCD_CLS); DisplayString(0x0,0,"TotalDistance");DisplayString(0x0,1,"Next Show");TotalDistanceShow=True; / 表明显示了 TotalDistance 选项Delay(250); / 延时消除抖动 if(Selected=True) / 按下了确定键或返回键SelectedShow=False;SelectedReturn=False;Selected=False;if(ReturnSelection=True) / 第一次选择了确定
45、键,故这次按下 的是返回键ReturnMain=True; if(ReturnSelection=False) WriteCmd(LCD_CLS); DisplayString(0,0,"TheAVGSpeedis"); DisplayAVGSpeed(); DisplayString(0x0A,1,"m/s"); ReturnSelection=True; / 按下了确定键,那么这个时候开启返回 键的功能Delay(250); / 延时消除抖动TotalDistanceShow=False; if(ReturnMain=True) / 按下了返回键,返
46、回主菜单 ReturnMain=False;continue;*/* 第三次按键 /* 如果没有返回主菜单,则继续检测Next 键和确定键 */while(1) if(Next=True) break;if(SelectedShow=True)break;/* 按下 Next 键,显示下一个选项 */if(Next=True)Next=False;ReturnMain=False;ReturnSelection=False; / 按下了 Next 键,那么这个时候关闭返 回键的功能if(TotalDistanceShow=True)ReturnMain=True;if(TotalDistanc
47、eShow=False) / 还没有显示 TotalDistance 选项,显示它 WriteCmd(LCD_CLS); DisplayString(0x0,0,"TotalDistance");DisplayString(0x0,1,"Next Show");TotalDistanceShow=True;Delay(250); / 延时消除抖动if(Selected=True) / 按下了确定键或返回键SelectedShow=False;SelectedReturn=False;Selected=False;if(ReturnSelection=Tr
48、ue) / 按下的是返回键ReturnMain=True;if(ReturnSelection=False)if(TotalDistanceShow=False) / 表明 AVGSpeed 选项的内容还没有 显示WriteCmd(LCD_CLS);DisplayString(0,0,"TheAVGSpeedis");DisplayAVGSpeed();DisplayString(0x0A,1,"m/s");ReturnSelection=True;Delay(250); / 延时消除抖动if(TotalDistanceShow=True)WriteCm
49、d(LCD_CLS);DisplayString(0,0,"TotalDistance");DisplayDistance();DisplayString(0x0A,1,"m");ReturnSelection=True; / 按下了确定键,那么这个时候开启返回 键的功能Delay(250); / 延时消除抖动if(ReturnMain=True) / 按下了返回键,返回主菜单 ReturnMain=False; continue;第四次按键*/ /* while(1) if(Next=True) break;if(SelectedShow=True)b
50、reak;if(Next=True) / 所有菜单项已经显示完毕,返 回主菜单Next=False;ReturnMain=False;ReturnSelection=False; if(TotalDistanceShow=False) WriteCmd(LCD_CLS);DisplayString(0x0,0,"TotalDistance");DisplayString(0x0,1,"Next Show");TotalDistanceShow=True;Delay(250); / 延时消除抖动if(SelectedShow=True)SelectedSh
51、ow=False;SelectedReturn=False;Selected=False; if(ReturnSelection=True) / 按下的是返回键ReturnMain=True; if(ReturnSelection=False) if(TotalDistanceShow=True)WriteCmd(LCD_CLS);DisplayString(0,0,"TotalDistance");DisplayDistance();DisplayString(0x0A,1,"m");ReturnSelection=True;/ 按下了确定键,那么这个
52、时候开启返回键的功 能Delay(250); / 延时消除抖动 if(ReturnMain=True) / 按下了返回键,返回主菜单ReturnMain=False;continue;第五次按键*/* while(1) if(Next=True) break;if(SelectedShow=True)break;if(Next=True) / 所有菜单项已经显示完毕,返回 主菜单Next=False;ReturnMain=False;ReturnSelection=False;if(TotalDistanceShow=True) / 最后一个选项已经显示完毕,返回 主菜单ReturnMain=True;if(SelectedShow=Tru
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 互联网产品经理工作总结与产品规划范文
- 特色餐厅资产重组与股权转让全面合作协议
- 生态环保型产业园厂房土地使用权抵押担保合作协议
- 绿色环保产业园厂房租赁合同样本
- 金属矿产资源采矿权质押借款合同范本
- 财务总监财务报表分析劳动合同
- 车贷逾期违约责任及追偿合同范本
- 企业员工职业发展培训教学计划
- 车间租赁及环保节能技术改造合同
- 住宅小区车位使用权转让及车位物业管理合同
- 客户沟通与交流课件
- 国家电网招投标培训课件
- BVI公司法全文(英文版)
- 社会责任手册-完整版
- 移动基站物业协调方案
- 技术服务合同(中国科技部范本)
- 城市轨道交通客运组织电子教案(全)完整版课件整套教学课件
- GB∕T 33917-2017 精油 手性毛细管柱气相色谱分析 通用法
- 高压氧治疗操作规程以及护理常规
- 高中人教物理选择性必修二专题05 单双杆模型-学生版
- 人民币小学学具图
评论
0/150
提交评论