毕业设计 - 图文(8)

2020-02-20 22:38

#defineCmd

0x00 0x00 0x01 0x01 0x00 0x38 0x0C 0x08 0x01 0x06 P1_7

//低电平选择命令 //跃变到低电平时执行命令

#define Enable #defineDisable #define True #defineFalse

#define LCD_Init #define LCD_CloseCtr

//初始化模式 //关显示 //清屏幕 //显示光标 //忙信号

#define LCD_DispCtr #define LCD_CLS #define LCD_EnterSet #define Busy

//开显示及光标设置

/*-------------------------- 测速/测距/测时模块 -------------------------------*/ #define CircleLength

/*-------------------------------- 控速模块 -----------------------------------*/ #define P03 #define P04 #define P01 #define P02 #define P31 #define P33

/*------------------------------ 菜单选择模块 ---------------------------------*/ #define Line #define Curve #define Normal #define Low #define High

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

/*------------------------------- LCD模块 -------------------------------------*/ void LCDInit(void);

//LCD初始化 //设置写命令模式 //设置读命令模式 //设置写数据模式 //写命令 //写数据 //执行命令 //定位显示地址

void SetWriteCmd(void); void SetReadCmd(void); void SetWriteData(void); void WriteCmd(char cmd); void ExecuteCmd(void);

全局函数声明区

**

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

0x00 0x01 0x00 0x01 0x02

//0代表直线模式 //1代表S型模式 //0 代表正常速度 //1 代表低速 //2 代表高速

P0_3 P0_4 P0_1 P0_2 P3_3

//后电机 //后电机 //前电机 //前电机 //控制液晶背光

0.132

//小车转一轮的长度为.132m

P0_5

void WriteData(char ddata); void SetXY(char x,char y);

void DisplaySingleChar(char x,char y,char cchar); void DisplayString(char x,char y,char *str); void Delay(unsignedint time); bit IsBusy(void);

void DelayUs(unsignedint time); void DisplayTime(void);

//显示单个字符 //显示一段字符串 //延时主程序 //延时子程序 //判断忙标志函数 //显示时间 //显示平均速度 //显示路程

void DisplayAVGSpeed(void); void DisplayDistance(void);

/*-------------------------- 测速/测距/测时模块 -------------------------------*/

//所有中断初始化

//测速中断 //计算速度和距离

void INTInit(void); void SpeedINT(void);

void ComputeTime(void);

void ComputeSpeedANDDistance(void);

/*-------------------------------- 控速模块 -----------------------------------*/ void CtrSpeedINT(void); void Time0INT(void); void Time1INT(void);

//控速单位时间中断

//时钟中断初始化 //时钟中断初始化

//控速中断

void Clock0_Init(void); void CtrSpeed(void);

void Clock1_Init(void);

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

float SpeedCount = 0; float Speed = 0.0;

//测速计数脉冲

//T1中断时间计时 //小车行走的时间

//判断T1是否已经响应中断

全局变量区

**

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

float Distance = 0.0; char Time1INTCount=0; float PassTime=0.00; short IsT0INT=1; bit IsT1INT; short IsT0INT2=1;

char Thx[5]={0xf4,0xf4,0xc5,0xf4,0xff}; char Tlx[5]={0x48,0x48,0x68,0x48,0xff}; char Thx0=0xd8; char Tlx0=0xf0; char Thx1=0xb1; char Tlx1=0xe0;

//3ms,3ms,15ms,3ms

//20ms

short Round=0; short Back=0; short Back0=0; bit Backid; bit Stop=0;

char Area0=0; char Area1=0;

char LowSpeedArea1StartTime; char LowSpeedArea1EndTime; char HighSpeedAreaEndTime; char LowSpeedArea2EndTime; char LowSpeedArea1PassTime=0; char HighSpeedAreaPassTime=0; char LowSpeedArea2PassTime=0; char ReadyToGo=4;

char flag; bit Roundid=0; char Nocurve=0; char ChangeFlag; char Mode;

bit Running; bit SelectedAll;

bit IsSelectingMode; bit IsSelectingSpeed; bit ModeSelected; char SelectedMode=10; bit Next;

bit SpeedSelected; char SelectedSpeed;

bit ChoosingDisplay; bit SelectedShow; bit SelectedReturn; bit Selected; bit ReturnSelection;

bit AVGSpeedShow; bit TotalDistanceShow;

bit ReturnMain;

//区域变量

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

//模式和速度是否选择完毕标志//模式选择标志 //速度选择标志 //已经被选择的模式标志 //模式选择是否完毕标志 //Next键标志

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

bit AutoDisplay;

bit AutoMode=0; char PassLineID=0; char PassLine=0;

//自动显示标志 //人工选择标志

bit GoToChoosingDisplay;

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

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

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

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中断

SelectedAll=False;

/*------------------------------ 模式选择 ---------------------------------*/

//开始模式和速度选择

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

IsSelectingMode=True; while(1) {

WriteCmd(LCD_CLS);

DisplayString(0x0,0,\);

DisplayString(0x0,1,\);

Delay(300);

while (1)

{ if (Next==True)

break;

if (ModeSelected==True)

{

SelectedMode=Line; break; }

}

if (ModeSelected==True)

{

IsSelectingMode=False; break;

}

if (Next==True)

{ Next=False; WriteCmd(LCD_CLS);

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

Delay(300);

while(1)

//延时消除抖动

//不断检测中断,直到按确定键或是NEXT键

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

//如果按确定键则设置模式为Line并跳出

//如果什么键都没有按下,那么一直显示等待//按下了确定键,退出模式选择

//按下了Next键,显示下一个菜单项

//延时消除抖动

//不断检测中断,直到按确定键或是Next键


毕业设计 - 图文(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:《普通心理学笔记》(彭聃龄版)第十三章:学习

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: