教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 基础教育 >

89c52的单片机自动往返电动小汽车设计报告 - 图文(4)

来源:网络收集 时间:2026-05-25
导读: bit AVGSpeedShow; bit TotalDistanceShow; bit ReturnMain; bit AutoDisplay; bit GoToChoosingDisplay; bit AutoMode=0; char PassLineID=0; //区域变量 //第一个低速区通过时间 //高速区通过时间 //第二个低速区

bit AVGSpeedShow; bit TotalDistanceShow;

bit ReturnMain;

bit AutoDisplay;

bit GoToChoosingDisplay;

bit AutoMode=0; char PassLineID=0;

//区域变量

//第一个低速区通过时间 //高速区通过时间 //第二个低速区通过时间

//倒计时

//速度是否选择完毕标志 //速度选择标志 //Next键标志

//已经被选中的速度方案标志 //速度选择是否完毕标志 //人工选择菜单开始标志 //显示选择标志 //返回选择标志 //确定/返回键选择标志 //返回键启用标志 //平均速度显示标志 //总路程显示标志 //返回主菜单标志 //自动显示标志

//人工选择标志

11

char PassLine=0; float PrepareDistance; float FirstDistance; float SecondDistance; float ThirdDistance; int FirstHigh; int SecondHigh; int ThirdHigh; float Rate=1.25; float Count=4;

/********************************************************************************\\ **

/*-------------------------------- void main() {

SelectedAll=False;

//开始速度选择

/*------------------------------ 速度选择 ---------------------------------*/ if (SelectedMode==Line && AutoMode==0) {

DisplayString(0x0,0,\);

12

Delay(40); LCDInit();

//延时等待LCD启动 //初始化LCD

P02=0; P03=0; P04=0; P31=1;

//单片机复位,背光开

P01=0;

主函数 ------------------------------------*/

全局函数实现区

**

\\********************************************************************************/

//5ms时的速度 //时间的倍数

DisplayString(0x0,0,\); DisplayString(0x0,1,\); Delay(300); WriteCmd(LCD_CLS);

//开总中断

//开INT0中断 //INTO边沿触发 //INT1边沿触发

EA=1; EX0=1; IT0=1; EX1=1; IT1=1;

//开INT1中断

DisplayString(0x0,1,\); Delay(50);

WriteCmd(LCD_CLS);

IsSelectingSpeed=True; while(1) {

}

if (SpeedSelected==True) { }

if (Next==True) {

Next=False; WriteCmd(LCD_CLS);

DisplayString(0x0,0,\); DisplayString(0x0,1,\);

Delay(300); while(1)

13

//延时消除抖动

IsSelectingSpeed=False; break;

//按下了确定键,退出速度选择

WriteCmd(LCD_CLS);

DisplayString(0x0,0,\); DisplayString(0x0,1,\); Delay(300);

while(1) {

if (Next==True) { }

break;

//如果按确定键则设置速度为Normal并跳出

//5ms //4ms

Thx[0]=0xec;Tlx[0]=0x78; Thx[1]=0xf0;Tlx[1]=0x60; Thx[2]=0x8a;Tlx[2]=0xd0; Thx[3]=0xf4;Tlx[3]=0x48; SelectedSpeed=Normal; break;

//如果什么键都没有按下,那么一直显示等待

//如果按Next键则直接跳出

//延时消除抖动

if (SpeedSelected==True)

//30ms //3ms

}

{ }

if (Next==True) { }

break;

//如果按下确定键,则设置速度为Low,并跳出 //这里没有速度设置,因为默认速度就是Low

SelectedSpeed=Low; break;

//如果再一次按下Next键,则跳出

if (SpeedSelected==True)

if (SpeedSelected==True) { }

if (Next==True) { }

if (SpeedSelected==True) {

Next=False; WriteCmd(LCD_CLS);

//按下了确定键,退出速度选择

IsSelectingSpeed=False; break;

DisplayString(0x0,0,\); DisplayString(0x0,1,\); Delay(300); while(1) { }

if (Next==True) {

Thx[0]=0xe0;Tlx[0]=0xc0; //8ms break;

//如果按下确定键,则设置速度为High,并跳出

//如果再一次按下Next键,则跳出

//延时消除抖动

if (SpeedSelected==True)

Thx[1]=0xe0;Tlx[1]=0xc0; //8ms

Thx[2]=0x63;Tlx[2]=0xc0; //40ms Thx[3]=0xec;Tlx[3]=0x78; //5ms }

SelectedSpeed=High; break;

//按下了确定键,退出速度选择

IsSelectingSpeed=False;

14

}

}

}

break;

if (Next==True) { }

Next=False; continue;

//再一次按下了Next键,则循环速度选择

SelectedAll=True; //标志模式选择和速度选择完毕

Running=True; Delay(50);

WriteCmd(LCD_CLS);

/*------------------------- 显示所选择的模式和速度方案 -------------------------*/ if (SelectedMode==Line) { }

if (SelectedMode==Curve) { }

if (AutoMode==1) { }

DisplayString(0x0,0,\); DisplayString(0x0,1,\); Delay(50);

WriteCmd(LCD_CLS);

DisplayString(0x0,0,\); DisplayString(0x0,1,\); Delay(50);

WriteCmd(LCD_CLS);

DisplayString(0x0,0,\); DisplayString(0x0,1,\); Delay(50);

WriteCmd(LCD_CLS);

…… 此处隐藏:1241字,全部文档内容请下载后查看。喜欢就下载吧 ……
89c52的单片机自动往返电动小汽车设计报告 - 图文(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/565337.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)