智能小车避障C程序.doc

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
智能小车的四路避障C程序 前,左,后避障传感器现在对应中,右,左三路寻线传感器. #include <stdio.h> #include <intrins.h> #include "STC12C5410AD.H" #include "sio.h" #define MIN9MS 0x0120?????? //9ms中心是0x0159 #define MAX9MS 0x01a0 #define MIN45MS 0x0090?????? //4.5ms中心是0x00ac #define MAX45MS 0x00d0 #define MIN225MS 0x0040?????? //2.25ms中心是0x0056 #define MAX225MS 0x0080 #define MIN056MS 0x000e?????? //0.56ms中心是0x0015 #define MAX056MS 0x001b #define MIN168MS 0x0020?????? //1.68ms中心是0x0040 #define MAX168MS 0x0060 sfr ISP_CUNTR = 0xE7; sbit LED1 = P1^1; sbit LED2 = P1^2; sbit IR_FRONT = P3^3; sbit IR_LEFT = P3^4; sbit IR_RIGHT = P3^5; sbit IR_BACK = P1^3; sbit IR_OUT = P1^0; sbit PWM0 = P3^7; sbit MOTO_IN_A1 = P1^7; sbit MOTO_IN_A2 = P1^6; sbit MOTO_IN_B1 = P1^5; sbit MOTO_IN_B2 = P1^4; bit power_stat; static unsigned char car_stat; //小车状态:0,停止;1,前进;2,后退;3,左转;4,右转;ff,自控寻线模式 static unsigned char code led_mod_table[3][20] = { ?? {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} }; unsigned char idata led_mod = 0; static unsigned char idata led_tick = 0; static unsigned char idata led_ptr = 0; #define IR_SIGNAL_TOTAL 21 #define IR_SIGNAL_VALID 18 static unsigned char code ir_table[IR_SIGNAL_TOTAL] = { ??? 1,1,1,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0 }; static unsigned char code ir_check_table[IR_SIGNAL_TOTAL] = { ??? 0,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,1,0,0,0,0 }; static unsigned char idata ir_ptr = 0; static unsigned char idata front_signal = 0; static unsigned char idata back_signal = 0; static unsigned char idata left_signal = 0; static unsigned char idata right_signal = 0; static bit front_obj = 0, back_obj = 0, left_obj = 0, right_obj = 0; static void delay(unsigned long v) { while (v--) { } } /* * PCA中断计数,根据位置判断信号区域和定义,位置0表示初始,1代表引导码信号,2表示引导码间隔, * 3表示第一个bit的信号,4表示第一个bit的间隔,以次类推... * 更具体见对应的红外线协议. */ static unsigned char idata pca_tick; static unsigned char idata pca_int_count; static unsigned char data pca_int_total;??? /* 根据引导头确

文档评论(0)

文档分享 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档