教学机器人走黑线AVR汇编源程序_第1页
教学机器人走黑线AVR汇编源程序_第2页
教学机器人走黑线AVR汇编源程序_第3页
教学机器人走黑线AVR汇编源程序_第4页
教学机器人走黑线AVR汇编源程序_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

双龙教学机器人走黑线AVR单片机汇编源程序双龙教学机器人采用SL-DIY02-8D红外传感器板:图1 是SL-DIY02-8D电原理图及实物安装图。SL-DIY02-8D板上红外光电传感器安装方向根据实际工作需要安装。例如,作为机器人寻迹、避悬崖用,红外光电传感器面对地面或桌子。如果用于避障碍探测, 红外光电传感器面对避障物安装。红外光电反射对管FGK125,可以直接替代CNY70,检测距离远,灵敏度高!图1 SL-DIY02-8D电原理图及实物安装图【程序清单】;*;实验6.走黑线;*;mega48晶振:内部8m;北京双龙电子;刘成利20054;mail:;*;双龙SL积木式智能机器人的寻迹程序说明;程序说明:程序演示了双龙积木式机器人的寻迹功能; 声控起动后,运行 寻迹车 程序,白底黑线,探测黑线,沿黑线运动 ;DIY02-8a 组成寻迹机器人探测信号的说明;探测白底黑线 : 0 表示有反光,探测到白底;1 表示无反光,探测到黑线;PC3 PC2PC1 编码(十进制) 机器人的相应动作; 0 0 0 0x00 (0) 直行; 0 0 1 0x20 (32) 往右转弯; 0 1 0 0x40 (64) 直行; 0 1 1 0x60 (96) 往右转弯; 1 0 0 0x80 (128) 往左转弯; 1 0 1 0xA0 (160) 直行; 1 1 0 0xC0 (192) 往左转弯; 1 1 1 0xE0 (224)前行,再探测,连续长时间后,机器人停止待命 .include m48def.inc;器件配置文件.equ mic_in = $75.equ cny_in = $77.equ cny_times=$78.equ cny_delayms = $84.org$000rjmpcny_car;跳过中断区,跳转到寻迹机器人运行程序.org$020cny_car:;寻迹机器人运行程序ldi r16,low(ramend);栈指针初始化,SP 指向片内SRAM的末地址 ldi r17,high(ramend)out spl,r16out sph,r17rcallport_init ;调用芯片端口初始化子程序clr R2out MCUCR,R2;cnycar00:rcallmic_startup;调用声控起动子程序,等待声控起动cnycar01:ldi R24,30;设置延时时间常数sts cny_delayms,R24;对于不同的路线可改变时间常数,使机器人寻迹效果更好cnycar02:in R24,PINC;读取PC口管脚的状态andi R24,$0E;保留PC3,PC2,PC1的状态sts cny_in,R24;作为探测器检测到的信号(cny_in)tst R24breq cnycar03;cny_in = 0 ,跳转到 cnycar03cpi R24,4breq cnycar03;cny_in = 4 ,跳转到 cnycar03cpi R24,$Abrne cnycar04;cny_in != 10 ,跳转到 cnycar04cnycar03:;0,4,16 - 直行rcall forward;调用机器人向前行进的子程序clr R2sts cny_times,R2;cny_times = 0cnycar04:lds R24,cny_incpi R24,2breq cnycar05;cny_in = 2 ,跳转到 cnycar05cpi R24,6brne cnycar06;cny_in != 6 ,跳转到 cnycar06cnycar05:;32,96 - 往右转弯rcall turn_right_s;调用机器人慢速右转的子程序lds R16,cny_delayms;装入延时时间clr R17rcall delay_ms;调用延时子程clr R2sts cny_times,R2;cny_times = 0cnycar06:lds R24,cny_incpi R24,8breq cnycar07;cny_in = 8 ,跳转到 cnycar07cpi R24,$Cbrne cnycar08;cny_in != 12 ,跳转到 cnycar08cnycar07:;128,192 - 往左转弯rcall turn_left_s;调用机器人慢速左转的子程序lds R16,cny_delayms;装入延时时间clr R17rcall delay_ms;调用延时子程clr R2sts cny_times,R2;cny_times = 0cnycar08:lds R24,cny_incpi R24,$Ebrne cnycar02;cny_in != 14 ,跳转到 cnycar02rcall forward;cny_in = 14,调用前行子程序lds R24,cny_timessubi R24,255 ; cny_times = cny_times + 1sts cny_times,R24ldi R16,10;设置延时时间ldi R17,0rcall delay_ms;调用延时子程序lds R24,cny_timescpi R24,100brne cnycar02;cny_times != 100 ,跳转到 cnycar02rcall stop;cny_times = 100 ,机器人停止待命rjmp cnycar00;等待声控重新起动寻迹机器人程序;*port_init:;芯片端口初始化程序LDIR24,$F8out DDRB,R2;PB0、PB1、PB2输出(led控制信号)LDIR24,$FFout PORTB,R24;PB2PB0口输入,内部上拉,ldi R24,0out DDRC,R24;PC0PC4 CNY70探测信号输入端,PC5 声控开关信号输入口ldi R24,255out PORTC,R24;PC1PC5带内部上拉输入ldi R24,255out DDRD,R24;PD7PD4输出驱动电机,PD3PD0输出ldi R24,255out PORTD,R24;PD0PD3带输出,PD4PD7输出驱动电机ret;*mic_startup:;检测声音输入启动程序in R24,PINC;读入PB口管脚的状态andi R24,$20;分离出PB2脚(声音输入管脚)的状态 - mic_insts mic_in,R24tst R24;brne mic_startup;mic_in = 1 没有声音信号输入,循环检测ret;mic_in = 0 有声音信号输入,启动执行后面的程序;*; time - R16,R17delay_us:;微秒级延时程序,延时时间为 (R17:R16)subi R16,1sbci R17,0;(R17:R16) = (R17:R16) - 1ldi R24,1ldi R25,0cp R24,R16cpc R25,R17brlt delay_usret;*; time - R20,R21delay_ms:;毫秒级延时程序,延时时间为 (R21:R20)push r21push r20push r17push r16mov R20,R16;装入延时时间常数 (R21:R20) = (R17:R16)mov R21,R17rjmp delay_ms2delay_ms1:ldi R16,100ldi R17,3rcall delay_us;1ms延时subi R20,1sbci R21,0;(R21:R20) = (R21:R20) - 1delay_ms2:cpi R20,0;(R21:R20) = 0 延时时间到,延时子程返回cpc R20,R21brne delay_ms1;(R21:R20) != 0 延时时间未到,继续延时pop r16pop r17pop r20pop r21ret;子程序返回;*turn_right:;机器人右转子程ldi R24,144out PORTD,R24;输出电机控制信号,使机器人右转ldir24,$fboutPORTB,R24;设置机器人右转时对应的指示灯状态ret;*turn_left:;机器人左转子程ldi R24,96out PORTD,R24;输出电机控制信号,使机器人左转ldir24,$fDoutPORTB,R24;设置机器人左转时对应的指示灯状态ret;*turn_right_s:;机器人慢速右转子程ldi R24,128out PORTD,R24;输出电机控制信号,使机器人慢速右转ldir24,$fboutPORTB,R24;设置机器人慢速右转时对应的指示灯状态ret;*turn_left_s:;机器人慢速左转子程ldi R24,32out PORTD,R24;输出电机控制信号,使机器人慢速左转ldir24,$fDoutPORTB,R24;设置机器人慢速左转时对应的指示灯状态ret;*backward:;机器人向后倒退子程ldi R24,80out PORTD,R24;输出电机控制信号,使机器人向后倒退ldir24,$f8outPORTB,R24;设置机器人向后倒退时对应的指示灯状态ret;*forward:;

温馨提示

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

评论

0/150

提交评论