资源简介
迷宫小车代码.c
代码片段和文件信息
//示例迷宫信息
/*uchar map[8][8] = {{0x070x050x090x030x010x050x090x0b}
{0x030x050x000x080x0a0x0b0x0a0x0a}
{0x0a0x0b0x0a0x0e0x0e0x020x000x0c}
{0x0a0x020x000x050x050x080x0a0x0b}
{0x060x0c0x0a0x0b0x0b0x0a0x0a0x0a}
{0x030x010x0c0x0a0x020x080x060x08}
{0x0a0x020x050x040x080x020x050x0c}
{0x0e0x060x050x0d0x0e0x060x050x0d}};
uchar map[8][8] = {{0x070x050x090x030x050x050x090x0b}
{0x030x010x080x060x010x0d0x0a0x0a}
{0x0a0x0a0x060x050x000x050x000x0c}
{0x0e0x020x050x0d0x0a0x070x040x09}
{0x070x040x010x0d0x0a0x070x050x08}
{0x030x010x040x050x040x010x0d0x0a}
{0x0a0x0a0x030x050x050x000x050x0c}
{0x0e0x060x040x050x0d0x060x050x0d}};*/
/*
地图默认从左下角为起点,右上角为终点,按照坐标的记忆方式,这样的上下左右是固定的
07 17 27 37 47 57 67 77
06 16 26 36 46 56 66 76
05 15 25 35 45 55 65 75
04 14 24 34 44 54 64 74
03 13 23 33 43 53 63 73
02 12 22 32 42 52 62 72
01 11 21 31 41 51 61 71
00 10 20 30 40 50 60 70
跟数组的方向转了90°
数组的记忆方式是
00 01 02 03 04 05 06 07
10 11 12 13 14 15 16 17
20 21 22 23 24 25 26 27
30 31 32 33 34 35 36 37
40 41 42 43 44 45 46 47
50 51 52 53 54 55 56 57
60 61 62 63 64 65 66 67
70 71 72 73 74 75 76 77
因此示例迷宫信息在看的时候注意将地图信息逆时针旋转90°来观认
注意:“全体代码均按照坐标方式进行记忆和标记,非数组的排列方式 ”
全篇信息记录也可以改做为数组记忆方式,不过得重新确定上下左右的方向以及修改通过A(小车方向)来执行命令的代码
*/
#include
#define uchar unsigned char
#define uint unsigned int
uchar map[8][8] = {0xff}; //地图信息
uint t = 5000; //坐标,定时器时间
uchar x = 0y = 0 i j A = 0 m n flag count;//标记 ,A用于记录方向,0是上,1是右,2是下,3是左
uchar code forw[8] = {0x110x930x820xc60x440x6c0x280x39}; //前进
uchar code tR[8] = {0x110x330x220x660x440xcc0x880x99}; //往左偏
uchar code tL[8] = {0x110x990x880xcc0x440x660x220x33}; //往右偏
char r[8][8] = {0}; //等高表的存储
uchar irC = 0irL = 0irR = 0irLU = 0irRU = 0;//传感器
uchar code table[]={0xc00xf90xa40xb00x990x920x820xf80x800x90};//数码管的显示数字
sfr P4 = 0xe8; //定义P4
sbit beep = P3^7; //蜂鸣器
sbit irR1 = P2^1; //前
sbit irR2 = P2^2; //左前
sbit irR3 = P2^3; //左
sbit irR4 = P2^4; //右
sbit irR5 = P2^5; //右前
sbit well = P4^3; //数码管
sbit welr = P4^2; //数码管
sbit A0 = P4^0;
sbit A1 = P2^0;
sbit A2 = P2^7;
void Delay_ms(uint ms) //延时函数
{
uchar k;
while(ms--)
for(k = 0; k < 114; k++);
}
/*void Display(uint s) //数码管显示
{
uint ab;
a = s/10;
b = s%10;
well=0;
P0=table[b];
Delay_ms(5);
well=1;
welr=0;
P0=table[a];
Delay_ms(5);
welr=1;
}*/
void CorrectR() //向右修正
{
for(m = 0; m < 4; m++)
for(n = 0; n < 8; n++)
{
P1 = tR[n];
Delay_ms(2);
}
}
void CorrectL() //向左修正
{
for(m = 0; m < 4; m++)
{
for(n = 0; n < 8; n++)
{
P1 = tL[n];
Delay_ms(2);
}
}
}
void Forward() //前进一格
{
for(i = 0; i < 105; i++)
{
for(j = 0; j < 8; j++)
{
P1
相关资源
- PID_AutoTune_v0.rar
- vspd7.2.308.zip
- 价值2k的H漫画小说系统
- Pythonamp;课堂amp;笔记(高淇amp;400;集第
- ddos压力测试工具99657
- UML建模大全
- 开源1A锂电池充电板TP4056原理图+PCB
- m1卡 ic卡可选择扇区初始化加密软件
- TSCC.exe
- FTP课程设计(服务端+客户端)
- 计算机图形学 边填充算法实现代码
- 电力系统潮流计算程序集合
- oracle数据迁移项目实施方案
- Web Api 通过文件流 文件到本地
- Visio图标-最新最全的网络通信图标库
- Spire API文档
- OpenGL参考手册
- Python中Numpy库最新教程
- SPD博士V5.3.exe
- 直流无刷电机方波驱动 stm32 例程代码
- layui后台管理模板
- 仿知乎界面小程序源代码
- 云平台-阿里云详细介绍
- photoshop经典1000例
- scratch垃圾分类源码(最终版本).sb
- IAR ARM 7.8破解
- TI CCS V5.4 安装步骤及破解文件
- 松下plc FP-XH的驱动
- 局域网硬件信息收集工具
- 加快Windows XP操作系统开机速度
评论
共有 条评论