第八届画画小车_第1页
第八届画画小车_第2页
第八届画画小车_第3页
第八届画画小车_第4页
第八届画画小车_第5页
免费预览已结束,剩余32页可下载查看

下载本文档

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

文档简介

1、低调画画小车小组组长:组员:翟文豪,目录1方案设计与论证1.1 主控系统电机驱动模块测距模块1.4 机械系统2主要器件介绍2.1 AT89S52 的介绍L298N 的介绍L298 的引脚功能2.2.2 L298 的运行参数2.2.3 L298 的逻辑控制硬件设计总体设计WYHC2010 测编码盘电路3.3LM324 电压比较电路3.4 AT89C52 单片机控制电路时钟电路复位电路EA/VPP(31 脚)的功能和接法P0 口外接上拉电阻3.5 L298N 马达驱动电路控制电路3.6程序设计主程序4. 2 51 单片机串口通讯程序4. 3 上位机程序附录方案设计与论证根据要求,确定如下方案:在现

2、有玩具电动车的基础上,加装光电检测器,实现对电动车的速度、所走过距离的实时测量,并将测量数据传送至单片机进行处理,然后由单片机根据所检测的各种数据实现对电动车的智能控制。这种方案能实现对电动车的运动状态进行实时控制,控制灵活、可靠,精度高,可满足对系统的各项要求。2.1 主控系统根据设计要求,我认为此设计属于多输入量的复杂程序控制问题。据此,决定采用单片机作为整个系统的,用其控制行进中的小车,以实现其既定的性能指标。充分分析的系统,其关键在于实现小车的自动控制,而在这一点上,单片机就显现出来它的优势控制简单、方便、快捷。这样一来,单片机就可以充分发挥其资源丰富、有较为强大的控制功能及可位寻址操

3、作功能、价格低廉等优点。因此,这种方案是一种较为理想的方案。针对本设计特点多开关量输入的复杂程序控制系统,需要擅长处理多开关量的标准单片机,而不能用精简 I/O 口和程序器的小体积单片机,D/A、A/D 功能也不必选用。根据这些分析,我选定了 AT89S52 单片机作为本设计的主控装置,51 单片机具有功能强大的位操作指令,I/O 口均可按位寻址,程序空间多达 8K,对于本设计也绰绰有余,更可贵的是 51 单片机价格非常低廉。在综合考虑了传感器、两部电机的驱动等诸多片机,充分利用 AT89S52 单片机的资源。后,决定采用一片单2.2 电机驱动模块方案一:采用继电器对电的开或关进行控制,通过开

4、关的切换对小车的方向进行调整.此方案的优点是电路较为简单,缺点是继电器的响应时间慢,易损坏,较短,可靠性不高。方案二:采用电阻网络或数字电位器调节电的分压,从而达到分压的目的。但电阻网络只能实现有级调速,而数字电阻的元器件价格比较昂贵。更主要在于一般的电方案三:电阻很小,但电流很大,分压不仅会降低效率,而且实现很。用单片机控制使之工作在占空比可调的开关状态下,精确调整电转速。是一种广泛采用的调速技术。现市面上有很多此种,我选用了 L298N。这种调速方式有调速特性优良、调整平滑、调速范围广、过载能力大,能承受频繁的负载冲击,还可以实现频繁的无级快速启动、制动和反转等优点。2.3 测速模块方案一

5、采用定时器对小车运行距离的的控制,虽然控制简单,电路简单,但由于小车运行速度的不稳定,输出电压的不稳定,造成了所走距离产生较大的误差,不符合的要求。方案二采用红外对管实现对走过圈数的测量,从而通过圈数求出距离来实现测距。WYCH2010 红外对管槽中无遮挡时,接收管导通,模块 D0 输出低电平,遮挡时,D0所示:输出。通过脉冲数的数数,从而确定距离。其电路如下2.4 机械系统本题目要求小车的机械系统稳定、灵活、简单,可选用三轮和四轮式,考虑到要完成 90的转角,采驱动部分:采用直流驱动轮加万向轮。电机,由 L298N 双通道马达驱动模块驱动两个马达,其力矩完全可以达到模拟效果。电源模块:采用干

6、电池给电机供电,再用稳压对电池电压进行降压给单片机。采用一套电源可减少小车的负重。整体组装效果如图 3 所示。图 3 小车组装效果主要器件介绍3.1 AT89C52 的介绍采用的 STC89S52,其片内带有 8K 字节闪速可编程、可擦除1000次程序器。该产品与工业标准 8051 中单片机完全兼容,并且还可支持两种可选的省电模式,工作时钟最高可达到 24MHz。使实时控制、实时处理的功能更加完善,简化了硬件配置。与 MCS-51 单片机产品兼容 、8K 字节在系统可编程 Flash器、 1000 次擦写周期、全静态操作:0Hz33Hz 、三级加密程序器 、 32 个可编程 I/O 口线、三个

7、 16 位定时器/计数器八个中断源、全双工 UART 串行通道、 低功耗空闲和掉电模式 、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符。AT89S52 实物如图 4。图 4 AT89S52 引脚示意图AT89C52 是一种低功耗、高性能CMOS8 位微控制器,具有在系统可编8K程 Flash器。使用高密度非易失性器技术制造,与工业 80C51 产品指器在系统可编程,亦适于常规编程系统可编程 Flash,使得 STC89C52令和引脚完全兼容。片上 Flash 允许程序器。在单上,拥有灵巧的 8 位CPU 和为众多控制应用系统提供高灵活、超有效的解决方案。 STC89C52 具有以下标

8、准功能: 8k 字节 Flash,256 字节RAM, 32 位I/O 口线,看门狗定时器,2 个数据指针,三个 16 位 定时器/计数器,一个 6 向量 2 级中断结构,全双工串行口,片内晶振及时钟电路。另外,STC89C52 可降至 0Hz 静态逻辑操作,支持 2 种可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM 内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。8 位微控制器 8K字节在系统可编程 FlashP0 口:P0 口是一个 8 位漏极开路的双向I/O 口。作为输出口,每位能驱动 8

9、个TTL 逻辑电平。对P0 端口写“1”时,引脚用作抗输入。当外部程序和数据器时,P0 口也被作为低 8 位地址/数据复用。在这种模式下, P0 具有上拉电阻。在flash 编程时,P0 口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1 口:P1 口是一个具有上拉电阻的 8 位双向I/O 口,p1 输出缓冲器能驱动 4 个此时可以作为输TTL 逻辑电平。对 P1 端口写“1”时上拉电阻把端口拉高,使用。作为输入使用时,被外部拉低的引脚由于电阻的原因,将输出电流(IIL)。此外,P1.0 和P1.2 分别作定时器/计数器 2 的外部计数输入(P1.0/T2)和

10、时器/计数器 2 的触发输入(P1.1/T2EX),具体如下表所示。 在flash 编程和校验时,P1 口接收低 8 位地址字节。引脚号第二功能P1.0 T2(定时器/计数器T2 的外部计数输入),时钟输出P1.1 T2EX(定时器/计数器 T2 的捕捉/重载触发信号和方向控制)P1.5 MOSI( P1.6 MISO(P1.7 SCK(系统编程用)系统编程用)系统编程用)P2 口:P2 口是一个具有上拉电阻的 8 位双向I/O 口,P2 输出缓冲器能驱动 4 个此时可以作为输TTL 逻辑电平。对 P2 端口写“1”时上拉电阻把端口拉高,使用。作为输入使用时,被外部拉低的引脚由于电阻的原因,将

11、输出电流(IIL)。在外部程序器或用 16 位地址外部数据器(例如执行MOVX DPTR) 时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的上拉发送 1。在使用 8 位地址(如MOVX RI)外部数据器时,P2口输出P2 锁存器的内容。在flash 编程和校验时,P2 口也接收高 8 位地址字节和一些控制信号。P3 口:P3 口是一个具有上拉电阻的 8 位双向I/O 口,p2 输出缓冲器能驱动 4 个此时可以作为输TTL 逻辑电平。对 P3 端口写“1”时上拉电阻把端口拉高,使用。作为输入使用时,被外部拉低的引脚由于电阻的原因,将输出电流(IIL)。P3 口亦作为 STC89C52

12、 特殊功能(第二功能)使用,如下表所示。在flash 编程和校验时,P3 口也接收一些控制信号。端口引脚 第二功能P3.0 RXD(串行输)P3.1 TXD(串行输出口) P3.2O(外中断 0)P3.31(外中断 1)P3.4 TO(定时/计数器 0)P3.5 T1(定时/计数器 1)P3.6 WR(外部数据P3.7 RD(外部数据器写选通)器读选通)此外,P3 口还接收一些用于 FLASH 闪存编程和程序校验的控制信号。RST复位输入。当振荡器工作时,RST 引脚出现两个机器周期以上高电平将是单片机复位。ALE/PROG当外部程序器或数据器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低

13、 8 位字节。一般情况下,ALE 仍以时钟振荡频率的 1/6 输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当外部数据器时将跳过一个ALE 脉冲。对 FLASH器编程期间,该引脚还用于输入编程脉冲(PROG)。必要,可通过对特殊功能寄存器(SFR)区中的 8EH 单元的D0 位ALE 操作。该位置位后,只有一条 MOVX 和MOVC 指令才能将ALE置位,可激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置 ALE无效。位PSEN程序当 STC89C52 由外部程序允许(PSEN)输出是外部程序器的读选通信号,器取指令(或数据)时,每个机器周期两次 PSEN有

14、效,即输出两个脉冲,在此期间,当信号。外部数据器,将跳过两次 PSENEA/VPP外部允许,欲使CPU 仅外部程序器(地址为0000H-FH),EA 端必须保持低电平(接地)。需注意的是:如果加密位 LB1 被编程,复位时会锁存 EA 端状态。如 EA 端为FLASH(接 Vcc 端),CPU 则执行程序器的指令。器编程时,该引脚加上+12V 的编程允许电源Vpp,当然这必须是该器件是使用 12V 编程电压 Vpp。3.2 L298N 的介绍L298 是 ST 公司生产的一种高电压、大电流电机驱动。该的主要特点是:工作电压高,最高工作电压可达 46V;输出电流大,瞬间峰值电流可达 3A,持续工

15、作电流为 2A;内含两个 H 桥的高电压大电流全桥式驱动器,可以用来驱动直流电和步进电、继电器、线圈等感性负载;采用标准 TTL 逻辑电平信号控制;具有两个使能控制端,在不受输入信号影响的情况下允许或器件工作;有一个逻辑电源输入端,使逻辑电路部分在低电压下工作;可以外接检测电阻,将变化量反馈给控制电路。3.2.1L298 的引脚功能L298的引脚图如下图 5,其引脚功能见表 1。图 5 L298 引脚图表 1 L298 引脚功能表引脚符号功能115234576SENSING A SENSING B OUT1 OUT2Vs IN1 IN2ENABLE A ENAB GNDVss IN3 IN4

16、OUT3OUT4与地连接电流检测电阻,并向驱动与地连接电流检测电阻,并向驱动反馈检测到的信号反馈检测到的信号此脚是全桥式驱动器A 的两个输出端,用来连接负载此脚是全桥式驱动器A 的两个输出端,用来连接负载电机驱动电源输入端输入标准的 TTL 逻辑电平信号,控制全桥式驱动器A 的开关输入标准的 TTL 逻辑电平信号,控制全桥式驱动器A 的开关使能控制端.输入标准 TTL 逻辑电平信号;低电平时全桥式驱动器禁使能控制端.输入标准 TTL 逻辑电平信号;低电平时全桥式驱动器工作。工作。11接地端,本身的散热片与 8 脚相通逻辑控制部分的电源输人端口输入标准的 TTL 逻辑电平信号,控制全桥式驱动器B

17、 的开关输入标准的 TTL 逻辑电平信号,控制全桥式驱动器B 的开关此脚是全桥式驱动器B 的两个输出端,用来连接负载此脚是全桥式驱动器B 的两个输出端,用来连接负载89101213143.2.2 L298 的运行参数L298 的运行参数见如下表 3表 2L198 的运行参数参数测试环境最小值最大值驱动电源电压 Vs逻辑电源电压 Vss输入低电平电压持续工作时-ViL-ViH-2.5V4.5V0.3V2.3V0.3V2.3V1.8V46V7V1.5VVss 1.5VVss4.9V输入电压使能端低电平电压 Ven=L-电压 Ven=H-使能端全桥式驱动电压Vat) IL=1A IL=2A3.2.3

18、 L298 的逻辑控制L298 的逻辑控制见如下表 3。其中 C、D 分别为 IN1、IN2 或 IN3、IN4;L为低电平,H 为,为不管是低电平还是。表 3 L298 对直流电机控制的逻辑真值表输入输出Ven=HC=H;D=L正转C=L;D=H反转硬件设计4.1 总体设计从画画小车的设计要求出发,经过前面的方案论证我决定用原有的玩具小车作为设计模型。再在小车身上加上测圈模块和马达驱动装置来完成整个功能。智能小车采用后轮驱动,前轮转换方向。测圈 U 型槽分别装在马达配备的编码盘的上边,当电压比较器输出不平时,对编码盘圈数加一,若达到的理想的圈数,所示。便对电机驱动或关闭,从而画出理想的直线。

19、信号流程如图 11图 11 整体设计框图4.红外对管测编码盘圈数WYCH2010 红外对管槽中无遮挡时,接收管导通,模块 D0 输出低电平,遮挡时,D0 输出。通过脉冲数的数数,从而确定距离。其电路如下所示:电压比较马达驱动模块单片机控制系统编码盘转动时电平变换C=D制动Ven=LC=;D=没有输出,电机不工作4.3LM324 电压比较电路电压比较器式在运放的基础上去掉反馈电阻使放大倍数趋于无穷大。此时形成了一个电压比较器。当同相端电压大于反相端电压时比较器输出,当反相端电压高于同相端电压时输出端输出度电平。如图 13 电压比较电路,用了 LM324 3 个单独的运放外接一个可调电阻输入基准电

20、压。基准电压加在反相输入端上,上一级电路反馈过来的电压从电压比较器的同相端输入。当 WYCH2010 反馈的电压高于基准电压时,比较器输出。当 WYCH2010 反馈的电压低于基准电压时,比较器输出低电平。这样就使探头把地面的反射光线的程度只分成了两种情况,易于单片机识别。考虑到地面的粗超程度不一样可以用可调电位器去调节基准电压,经过轨道实际测量后确定基准电压的值。图 13 电压比较电路4.4 AT89S52 单片机控制电路单片机控制电路由但单片机最小系统组成,主要作用是接受探头传来的电压信号,再通过程序设定的逻辑算法给出下一级马达驱动电路的指令。单片机最小系统包括主控 IC,外部时钟电路,复

21、位电路和电源组成。本设计采用如图 14 所示的单片机最先系统。在此就图 14 为参照解释一下 51 单片机最小系统各子电路的特点。图 14 单片机主控电路4.4.1 时钟电路XTAL1 和 XTAL2 是独立的输入和输出反相放大器,它们可以被配置为使用石英晶振的片内振荡器,或者是器件直接由外部时钟驱动。图 14 中采用的是内时钟模式,即采用利用的振荡电路,在 XTAL1、XTAL2 的引脚上外接定时元件(一个石英晶体和两个电容),振荡器便能产生自激振荡。一般来说晶振可以在 1.2 12MHz 之间任选,甚至可以达到 24MHz 或者更高,但是频率越高功耗也就越大。在本实验套件中采用的 11.0

22、592M 的石英晶振。和晶振并联的两个电容的大小对振荡频率有微小影响,可以起到频率微调作用。当采用石英晶振时,电容可以在 20 40pF 之间选择(本实验套件使用 30pF);当采用陶瓷谐振器件时,电容要适当地增大一些,在 30 50pF 之间。通常选取 33pF 的陶瓷电容就可以了。另外值得一提的是如果在设计单片机系统的印刷电路板(PCB) 时,晶体和电容应尽可能与单片机靠近,以减少引线的寄生电容,保证振荡器可靠工作。检测晶振是否起振的方法可以用示波器可以观察到 XTAL2输出的十分漂亮的正弦波,也可以使用万用表测量( 把挡位打到直流挡,这个时候测得的是有效值)XTAL2 和地之间的电压时,

23、可以看到 2V 左右一点的电压。4.4.2 复位电路在单片机系统中,复位电路是非常关键的,当程序跑飞(运行不正常)或死机(停止运行)时,就需要进行复位。MCS-5l 系列单片机的复位引脚 RST( 第9 管脚) 出现 2 个机器周期以上的时,单片机就执行复位操作。如果 RST持续为,单片机就处于循环复位状态。复位操作通常有两种基本形式:上电自动复位和开关复位。图 14 中所示的复位电路就包括了这两种复位方式。上电瞬间,电容两端电压不能突变,此时电容的负极和 RESET 相连,电压全部加在了电阻上,RESET 的输入为高,上的电压逐渐减小,最后约等于 0,被复位。随之+5V 电源给电容充电,电阻

24、正常工作。并联在电容的两端为复位按键,当复位按键没有被按下的时候电路实现上电复位,在正常工作后,通过按下按键使 RST 管脚出现脚上保持 10ms 以上的达到手动复位的效果。一般来说,只要 RST 管,就能使单片机有效的复位。图中所示的复位电阻和电容为经典值,实际制作是可以用同一数量级的电阻和电容代替,读者也可自行计算 RC 充电时间或在工作环境实际测量,以确保单片机的复位电路可靠。4.4.3 EA/VPP(31 脚)的功能和接法51 单片机的 EA/VPP(31脚) 是程序外部和外部程序器的选择管脚。当EA 保持是否有时,单片机程序器,只器;当 EA 保持低电平时,则不管器。对于现今的绝大部

25、分单片机来说,其的程序器(一般为 flash)容量都很大,因此基本上不需要外接程序器,而是直接使用的器。器。在本实验套件中,EA 管脚接到了 VCC 上,只使用的程序4.4.4 P0 口外接上拉电阻51 单片机的 P0 端口为开漏输出,无上拉电阻(见图 15)。所以在当做普通 I/O 输出数据时,由于 V2 截止,输出级是漏极开路电路,要使“1”信号(即)正常输出,必须外接上拉电阻。图 15 P0 端口的 1 位结构另外,避免输入时数据出错,也需外接上拉电阻。在这里简要的说下其原因:在输入状态下,从锁存器和从引脚上读来的信号一般是一致的,但也有例外。例如,当从总线输出低电平后,锁存器Q 0,

26、Q 1,场效应管 V1开通,端口线呈低电平状态。此时无论端口线上外接的信号是低电平还是,从引脚读入单片机的信号都是低电平,因而不能正确地读入端口引脚上的信号。又如,当从总线输出后,锁存器Q 1, Q 0,场效应管 V1 截止。如外接引脚信号为低电平, 从引脚上读入的信号就与从锁存器读入的信号不同。所以当 P0 口作为通用 I/O 接口输入使用时,在输入数据前,应先向 P0 口写“1”,此时锁存器的Q 端为“0”,使输出级的两个场效应管 V1、V2 均截止,引脚处于悬浮状态,才可作动 NMOS 电路和避免输入时外加一个 10K 排阻。此外,51输入。总结来说:为了能使 P0 口在输出时能驱数据出

27、错,需外接上拉电阻。在设计中采用的是单片机在对端口 P0P3 的输入操作上,为避免读错,应先向电路中的锁存器写入“1”,使场效应管截止,以避免锁存器为“0”状态时对引脚读入的干扰。4.5 L298N 马达驱动电路电机驱动一般采用H 桥式驱动电路,L298N集成了H 桥式驱动电路,从而可以采用 L298N 电路来驱动电机。通过单片机给予 L298N 电路信号来控制小车的速度,起停。为了设计方便我采用了市面上已有的 L298N 电机驱动模块,其特点便宜稳定性高。为了是设计达到更加好的效果我选用了 L298N 马达驱动模块。其原理图如图 16 所示。实物图如图 17 所示。图 16 L298N 引脚

28、图4.6 红外电路4.20.2 红外接收原理void tim0_isr (void)errupt 1 using 1irtime+; /用于计数 2 个下降沿之间的时间flag+;/*-外部中断 0 中断处理-*/errupt 0 /外部中断 0 服务函数void EX0_ISR (void)/接收红外信号处理/是否开始处理标志位sic unsigned chari;sic bit startflag;if(startflag)if(irtime=33)/引导码 TC9012 的头码,9ms+4.5msi=0;每个电平的持续时间,用于以后判断是 0 还是 1irdatai=irtime;/ir

29、time=0; i+;if(i=33)irok=1; i=0;elseirtime=0; startflag=1;/*-定时器 0 初始化-*/void TIM0init(void)/定时器 0 初始化TMOD=0 x02;/定时器 0 工作方式 2,TH0 是重装值,TL0 是初值TH0=0 x00; /重载值 TL0=0 x00; /初始化值/开中断ET0=1;TR0=1;/*-外部中断 0 初始化-*/void EX0init(void)/指定外部中断 0 下降沿触发,/使能外部中断/开总中断IT0 = 1;EX0 = 1;EA = 1;0 (P3.2)/*-键值处理-*/void Ir

30、_work(void)/红外键值散转程序switch(IRcord2)/判断第三个数码值case 0X16:in1=1; in2=0; in3=1; in4=0;显示相应的按键值break;/0case 0X0C:in1=0; in2=1; in3=0; in4=1;break;/1 case 0X18: stop(); break;/2 case 0X5E: case 0X08: forty(); break;/4 case 0X1C: sixty(); break;/5 case 0X5A:dred(); break;/6 case 0X42:/7 forty(); turnright()

31、; sixty(); turnright(); forty(); turnright(); sixty();break; case 0X52: case 0X4A:default:break;break;/3;break;/8;break;/9irpro_ok=0;/处理完成标志/*-红外码值处理-*/void Ircordpro(void)/红外码值处理函数unsigned char i, j, k; unsigned char cord,value;k=1;for(i=0;i4;i+)/处理 4 个字节for(j=1;j7)/大于某值为 1,这个和晶振有绝对关系,这里使用 12M 计算,此

32、值可以有一定误差value|=0 x80; if(j=1; k+;IRcordi=value; value=0;irpro_ok=1;/处理完毕标志位置 1/*void hongwai()EX0init(); /初始化外部中断 TIM0init();/初始化定时器while(1)/主循环if(irok)Ircordpro(); irok=0;/如果接收好了进行红外处理/如果处理好后进行工作处理,如按对应的按键后显示if(irpro_ok)对应的数字等Ir_work();*/void main()in1=0; in2=0; in3=0; in4=0;EX0init(); /初始化外部中断 TIM

33、0init();/初始化定时器 while(1)if(irok)Ircordpro(); irok=0;/如果接收好了进行红外处理/如果处理好后进行工作处理if(irpro_ok)Ir_work();程序设计5.1 主程序主程序流程图如图 18 所示。开始选择结束控制程序#include#define uunsigned#define uchar unsigned charsbit in1=P10;sbit in2=P11;/用作电机端口NO执行自选模式凹形矩形100cm80cm40cmsbitsbitin3=P12;in4=P13;sbitsbitleftled=P24;rightled=P

34、23;/连红外对管,用作检测左轮和右轮走过圈数sbitIR=P32;/红外接口标志void delay(uz);void fifteen(); void thirty(); void forty(); void sixty(); void eighty(); ukeyscan();void cecarquan();/void straight(); void turnleft(); void turnright(); void rectangle(); void stop();voidu ustraight();flag=0; num=0;uuleftquanshu=0; /左编码盘圈数rig

35、htquanshu=0; /右编码盘圈数/*红外部分生*/unsigned char irtime;/红外用全局变量 bit irpro_ok,irok;unsigned char IRcord4; unsigned char irdata33; void Ir_work(void);void Ircordpro(void);void delay(uz)ux,y;for(x=z;x0;x-)for(y=110;y0;y-);void fifteen()while(leftquanshu8)cecarquan();stop(); leftquanshu=0;void thirty()while(

36、leftquanshu15)cecarquan();stop(); leftquanshu=0;void forty()/40cm 线while(leftquanshu25)cecarquan();/straight();stop(); leftquanshu=0;void sixty()while(leftquanshu35)/60cm 线cecarquan();/straight();stop(); leftquanshu=0;void eighty()while(leftquanshu50)/80cm 线cecarquan();stop(); leftquanshu=0;voiddred

37、()while(leftquanshu65)/100cm 线cecarquan();/straight();stop(); leftquanshu=0;void rectangle()forty(); turnright(); sixty();turnright(); forty();turnright();sixty();voixing()leftquanshu=0;sixty(); turnright(); leftquanshu=0;fifteen(); turnright(); leftquanshu=0; thirty(); turnleft(); leftquanshu=0; th

38、irty(); turnleft(); thirty(); turnright(); leftquanshu=0; fifteen(); turnright();leftquanshu=0;sixty(); turnright(); leftquanshu=0;sixty();voidcecarquan()/测num=0; in3=0; in4=1; in1=1;in2=1;圈数while(num11); in1=0; in2=1; in3=0;in4=1;in1=0; in2=1; in3=1; in4=1;while(numrightquanshu)num=0; while(num!=50)in1=1; in2=0; in3=0; in4=0;in1=1; in2=0; in3=1; in4=0;if (rightquanshuleftquanshu)num=0; while(num!=50)in3=1; in4=0; in1=0; in2=0;in3=1; in4=0; in1=1; in2=0;*/*/红外部分/*/void tim0_isr (void)errupt 1 using 1irtime+; /用于计数 2 个下降沿之间的时间flag+; num+;/*外部中断 0 中断处理*/void EX0_ISR (void)errupti;0/外部中

温馨提示

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

评论

0/150

提交评论