版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、/9ms中心是0 x0159/9ms中心是0 x0159/4.5ms中心是0 x00ac/2.25ms中心是/0.56ms中心是/1.68ms中心是智能小车的四路避障程序默认分类2009-08-2410:35阅读164评论4字号:大中小前,左,后避障传感器现在对应中,右,左三路寻线传感器.#include#include#includeSTC12C5410AD.H#includesio.h#defineMIN9MS0 x0120#defineMAX9MS0 x01a0#defineMIN45MS0 x0090#defineMAX45MS0 x00d0#defineMIN225MS0 x0040
2、0 x0056#defineMAX225MS0 x0080#defineMIN056MS0 x000e0 x0015#defineMAX056MS0 x001b#defineMIN168MS0 x00200 x0040#defineMAX168MS0 x0060sfrISP_CUNTR=0 xE7;sbitLED1=P1八1;sbitLED2=P1八2;sbitIR_FRONT=P3八3;sbitIR_LEFT=P3A4;sbitIR_RIGHT=P3A5;sbitIR_BACK=P1A3;sbitIR_OUT=P1A0;sbitPWM0=P3A7;sbitMOTO_IN_A1=P1八7;sb
3、itMOTO_IN_A2=P1八6;sbitMOTO_IN_B1=P1八5;sbitMOTO_IN_B2=P1八4;bitpower_stat;staticunsignedcharcar_stat;/小车状态:0,停止;1,前进;2,后退;3,左转;4,右转;ff,自控寻线模式staticunsignedcharcodeled_mod_table320=1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0;un
4、signedcharidataled_mod=0;staticunsignedcharidataled_tick=0;staticunsignedcharidataled_ptr=0;#defineIR_SIGNAL_TOTAL21#defineIR_SIGNAL_VALID18staticunsignedcharcodeir_tableIR_SIGNAL_TOTAL=1,1,1,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0;staticunsignedcharcodeir_check_tableIR_SIGNAL_TOTAL=0,0,0,0,1,1,1,0,0,0,
5、0,0,0,1,1,1,1,0,0,0,0;staticunsignedcharidatair_ptr=0;staticunsignedcharidatafront_signal=0;staticunsignedcharidataback_signal=0;staticunsignedcharidataleft_signal=0;staticunsignedcharidataright_signal=0;staticbitfront_obj=0,back_obj=0,left_obj=0,right_obj=0;staticvoiddelay(unsignedlongv)while(v-)/*
6、PCA中断计数,根据位置判断信号区域和定义,位置0表示初始,1代表引导码信号,2表示引导码间隔,3表示第一个bit的信号,4表示第一个bit的间隔,以次类推.更具体见对应的红外线协议.*/staticunsignedcharidatapca_tick;staticunsignedcharidatapca_int_count;staticunsignedchardatapca_int_total;/*根据引导头确定总长度*/staticunsignedintidataperiod;/*红外信号占或空周期计数*/staticunsignedcharidatadata_buf6;/*红外线协议数据缓
7、冲区*/staticunsignedintidataccap1;/PCA0上一次的的计数staticunsignedcharidataframe_dog;/红外帧看门狗,限定时间未接收完成清除工作voidtime0_isr()interrupt1unsignedchartmp;if(ir_tableir_ptr+)IR_OUT=0;elseIR_OUT=1;ir_ptr%=IR_SIGNAL_TOTAL;tmp=ir_check_tableir_ptr;if(!IR_FRONT&tmp)|(IR_FRONT&!tmp)front_signal+;if(!IR_LEFT&tmp)|(IR_LEF
8、T&!tmp)if(!IR_RIGHT&tmp)|(IR_RIGHT&!tmp)right_signal+;if(!IR_BACK&tmp)|(IR_BACK&!tmp)back_signal+;if(ir_ptr=0)/com_putchar(front_signal);if(front_signal=IR_SIGNAL_VALID)front_obj=1;elsefront_obj=0;if(back_signal=IR_SIGNAL_VALID)back_obj=1;elseback_obj=0;if(left_signal=IR_SIGNAL_VALID)left_obj=1;else
9、left_obj=0;if(right_signal=IR_SIGNAL_VALID)right_obj=1;elseright_obj=0;front_signal=0;back_signal=0;left_signal=0;right_signal=0;voidtime0_initialize(void)TMOD&=0 x0F;/*cleartimer0modebits*/TMOD|=0 x02;/*puttimer0intoMODE2*/TH0=0 x5C;/*256-XTAL*dur/T1_12/1000000,dur=定时器的周期,以us为单位*/TL0=0 x5C;/*100us*
10、/PT0=0;/*时钟0中断低优先级*/TR0=1;ET0=1;staticvoidwakeup(void)interrupt2staticvoidpca_isr(void)interrupt6unsignedchari,j;if(CCF1)CCF1=0;/清PCA1中断标志LED1=IR_RIGHT;LED2=IR_RIGHT;if(!pca_int_count)/第一次收到信号if(!IR_RIGHT)ccap1=pca_tick*256+CCAP1H;pca_int_count+;else/已经收到一些信号period=pca_tick*256+CCAP1H-ccap1;ccap1=pc
11、a_tick*256+CCAP1H;/com_putchar(period/256);/com_putchar(period%256);if(pca_int_count=1)if(periodMAX9MS)/9mspca_int_count=0;frame_dog=0;elsepca_int_count+;elseif(pca_int_count=2)if(periodMIN225MS&periodMIN45MS&periodMIN056MS&period=pca_int_total)/帧接收完毕,下面进行有效分析.if(pca_int_total=67)/完整信号,含有引导信号,设备码8bi
12、t,设备反码8bit,命令字8bit,命令字反码8bitif(data_buf0八data_buf1=0 xff)&(data_buf2八data_buf3=0 xff)com_putchar(data_buf0);com_putchar(data_buf2);if(data_buf0=0 x40)switch(data_buf2)case0 x5F:/左car_stat=3;break;case0 x5B:/右car_stat=4;break;case0 x5A:/上car_stat=1;break;case0 x5E:/下car_stat=2;break;case0 x56:/菜单car_
13、stat=0;break;case0 x0:/数字0car_stat=0 xff;break;case0 x12:/POWER/power_stat=power_stat;break;default:break;else/重复信号,仅含有引导信号pca_int_count=0;frame_dog=0;elsepca_int_count+;elsepca_int_count=0;frame_dog=0;elsej=(pca_int_count-3)/2;i=j/8;j=j%8;if(periodMIN168MS&periodMAX168MS)/1.68ms/com_putchar(0 x01);
14、data_buf|=(0 x01MIN056MS&periodMAX056MS)/0.56ms/com_putchar(0 x00);data_buf&=(0 x01=10)led_tick=0;if(led_mod_tableled_modled_ptr+)LED1=0;LED2=0;elseLED1=1;LED2=1;led_ptr%=20;if(pca_int_count)frame_dog+;if(frame_dog=15)/100ms后重新开始分析新的红外线数据包pca_int_count=0;frame_dog=0;voidauto_power_down()delay(30000)
15、;ISP_CUNTR=0 x20;/从AP复位并从AP执行voidmain(void)unsignedchari;unsignedlongj;MOTO_IN_A1=0;MOTO_IN_A2=0;MOTO_IN_B1=0;MOTO_IN_B2=0;P1M1=0 xf0;/P1.7P1.4强推挽输出EA=0;power_stat=0;time0_initialize();com_initialize();/*initializeinterruptdrivenserialI/O*/com_baudrate(4800);/*setupfor1200baud*/*CMOD=0 x01;/#0000000
16、0B,PCA空闲计数,PCA计数源=Fosc/12,PCA溢出中断(做一个定时器使用)CCON=0 x00;/PCA中断标志清0,PCA停止计数CL=0 x0;CH=0 x0;CCAPM1=0 x31;/PCA1上升下降沿捕获*/CMOD=0 x03;/*#00000010B,PCA空闲计数,PCA计数源=fosc/2,PCA溢出中断*/CCON=0 x00;/PCA中断标志清0,PCA停止计数CL=0 x0;CH=0 x0;CCAPM1=0 x31;/PCA1上升下降沿捕获CCAPM00 x42;/PCA0工作模式:8位pwmPCA_PWM0=0 x00;CCAP0L=0 x20;CCAP0
17、H=0 x20;EPCA_LVD=1;/允许PCA和低压检测中断car_stat=0;pca_tick=0;pca_int_count=0;frame_dog=0;EA=1;CR=1;EA=1;CR=1;启动PCA计数while(1)if(power_stat)/auto_power_down();if(left_obj|right_obj|front_obj|back_obj)LED1=0;LED2=0;switch(car_stat)case0:MOTO_IN_A1=0;MOTO_IN_A2=0;MOTO_IN_B1=0;MOTO_IN_B2=0;break;case0 xff:if(!front_obj)/中线传感器检测到黑线MOTO_IN_A1=1;MOTO_IN_A2=0;MOTO_IN_B1=1;MOTO_IN_B2=0;j=50000;while(j)j-;if(front_obj)break;elseTURNLEFT:MOTO_IN_A1=0;MOTO_IN_A2=1;MOTO_IN_B1=1;MOTO_IN_B2=0;j=1000000;while(1)j-;if(!front_obj)gotoEXIT;if(!left_obj)gotoTURNLEFT;if(!back_obj)gotoTURNRIGH
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 北京化工大学实验室安全教育与在线考试题库A卷
- 小学数学二年级整十整百整千数加减法口算练习990道
- 《如何玩转转介营销》课件
- 《抽样检验相关知识》课件
- 金融行业采购标书撰写技巧
- 旅游行业服务员培训感悟
- 运输行业安全生产工作总结
- 制造业人才培养策略
- 内科部门全面工作总结
- 网络科技企业保安工作总结
- 女排精神课件教学课件
- 2024年湖南省公务员考试《行测》真题及答案解析
- 超市消防安全巡查制度
- 《美洲》名师课件(第2课时)
- GB/T 9445-2024无损检测人员资格鉴定与认证
- 超声科危急值内容及报告制度
- 河南省郑州市2023-2024学年高二上学期期末考试 物理 含解析
- 财务岗位招聘笔试题及解答(某大型国企)2025年
- 2024年代打包发货合作协议书模板
- 天津市2023-2024学年七年级上学期期末考试数学试题(含答案)
- 《地方导游基础知识》3.4 安徽 地方导游基础知识-题库及答案
评论
0/150
提交评论