好文档 - 专业文书写作范文服务资料分享网站

【智能化制造】智能寻迹机器人实验指导书

天下 分享 时间: 加入收藏 我要投稿 点赞

else if(CountData<90) {

Delay(10000); }

else if(CountData<120) {

CountData=0; }

CountData=CountData+1; LED=~LED; } }

//判断闪动次数是否位于60-90之间

//用10000作为基数开始延时函数

//判断闪动次数是否位于90-120之间

//仅进行一次操作即可退出.

//闪动次数基数++

//将显示端口进行取反操作

四、 运行效果:

程序运行效果为:开机后程序以慢速闪动,一段时间后速度开始加快,再等待时间,闪灯的速度达到最快,之后一段时间后,闪动将回到开始状态。

实验二 流水灯演示

一、 实验简介:

本程序全面的表现了子程序的用法,它从对几个子程序的操作,显示不同的流灯技术,流水灯的不同需要不同的表现的形式,而这里主要介绍了移位操作和内部数据存储及读入操作。延时函数采用可重入标志,可进行函数的递归调用。

二、 实验原理图:

三、 实现代码:

//===================================================================== // // 开发日期: 2009/01/20

//

// 修改日期:

//

// 程序作者: guojun 邮箱:GuoGuoExkj@126.com

//

// 开发商:益芯科技某公司——技术部

//

// 程序备注: 此程序仅为表现本机功能而演示用,当用作实际工程时请慎用.

//

// 特别声明: 此程序可作研究之用,但引用,转载,使用请注明出处.

//

//===================================================================== //

#include //包含头文件 #define Led P1 unsigned int code BToM[]={0x7E,0x3C,0x18,0x00}; unsigned int code MToB[]={0xE7,0xC3,0x81,0x00}; 数据

void Delay() reentrant { unsigned int DelayTime=10000; while(DelayTime--); }

void LeftToRight() //定义从左边到右边显示函数 {unsigned char TempCount=0; //定义显示次数变量 Led=0xFE;

//定义初步显示数据 //定义可重入的延时函数

//定义延时时间基数 //定义显示端口号

//定义由俩边到中间显示数据

//定义由中间到俩边显示

//程序开始延时开始

for(TempCount=0;TempCount<8;TempCount++) //通过循环进行数据显示 {

Delay(); //延时,用在每次移动数据开始处 Led=Led<<1; }

return; //空返回语句,表明此子程序的结束. }

void RightToLeft() //定义从右边到左边显示函数 { unsigned char TempCount=0; //定义显示次数变量 Led=0x7F; //定义初步显示数据 for(TempCount=0;TempCount<8;TempCount++) {

Delay(); //延时,用在每次移动数据开始处 Led=Led>>1; //由左边向右移动数据 }

return; //空返语句,表明此子程序的结束. }

void BothToMid() 序

{ unsigned char TempCount=0; //定义临时次数变量 Led=0xFF;

for(TempCount=0;TempCount<5;TempCount++) //通过循环依次进行次数运行

//定义由俩边到中间显示子程

//通过循环进行数据显示 //由右边向左边移动数据

{

Delay(); //延时,在每次运行前. Led=BToM[TempCount]; //读入当次显示数据. }

return; //空返回,表明此子程序的结束. }

void MidToBoth()

//定义由中间到俩边子程序

{unsigned char TempCount=0; //定义临时次数变量 Led=0xFF;

for(TempCount=0;TempCount<5;TempCount++) //通过循环进行数据显示 {

Delay(); //延时,在每次数据显示前. Led=MToB[TempCount]; //读入当次显示数据. }

return; //空返回,表明此次子程序的结束. }

void main() {

while(1)

//无穷循环开始. //主程序入口处.

{ LeftToRight(); //从左到右进行显示 RightToLeft(); //从右到左进行显示 BothToMid();

//由俩边到中间进行显示

【智能化制造】智能寻迹机器人实验指导书

elseif(CountData<90){Delay(10000);}elseif(CountData<120){CountData=0;}CountData=
推荐度:
点击下载文档文档为doc格式
0x96p229qk8iiwn479cv9uewu2s0h401e45
领取福利

微信扫码领取福利

微信扫码分享