- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)