论文无忧网提供:计算机毕业论文范文|计算机毕业设计|计算机毕业论文
栏目导航 代写论文
当前位置: > 电子信息 >

A4003_基于单片机的多功能智能小车设计论文(电路+程序+论文)

6. 最终PCB板图:

该最小系统的最终PCB板图(包括LCD接口以及其他的外部扩展电路部分,考虑到最小系统的简洁以及容易看懂,外部扩展电路不在最小系统图上显示。)分别如(图11)、(图12)所示: 内容来自论文无忧网 www.paper51.com

paper51.com

(图11)

http://www.paper51.com

paper51.com

(图12)

内容来自论文无忧网 www.paper51.com

7.系统程序:

copyright paper51.com

按照预定的功能,系统实现预定的功能的程序如下所示: paper51.com

#include <intrins.h>                          

copyright paper51.com

#include <AT89X52.h>

http://www.paper51.com

/********************************************************************************\ 内容来自论文无忧网 www.paper51.com

**                                  宏定义区                                       **

paper51.com

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

copyright paper51.com

/*-------------------------------  LCD模块------------------------------------*/

paper51.com

#define LCD_RW              P2_6                  //读写控制端 http://www.paper51.com

#define LCD_RS              P2_7                   //数据命令选择端 copyright paper51.com

#define LCD_E               P2_5                   //执行使能端

http://www.paper51.com

#define LCD_Data            P1                     //P1口

内容来自www.paper51.com

#define Write               0x00                   //低电平写入

copyright paper51.com

#define Read                0x01                   //高电平读出

内容来自论文无忧网 www.paper51.com

#define Data                0x01                   //高电平选择数据 内容来自www.paper51.com

#define Cmd                 0x00                   //低电平选择命令

http://www.paper51.com

#define Enable              0x00                   //跃变到低电平时执行命令 copyright paper51.com

#define Disable             0x01    内容来自论文无忧网 www.paper51.com

#define True                0x01

内容来自论文无忧网 www.paper51.com

#define False               0x00

内容来自论文无忧网 www.paper51.com

#define LCD_Init            0x38                   //初始化模式                             

内容来自论文无忧网 www.paper51.com

#define LCD_DispCtr        0x0C                   //开显示及光标设置 内容来自www.paper51.com

#define LCD_CloseCtr        0x08                   //关显示

copyright paper51.com

#define LCD_CLS             0x01                   //清屏幕

copyright paper51.com

#define LCD_EnterSet       0x06                   //显示光标 copyright paper51.com

#define Busy                P1_7                   //忙信号 copyright paper51.com

/*--------------------------  测速/测距/测时模块 -------------------------------*/ copyright paper51.com

#define CircleLength        0.132                  //小车转一轮的长度为.132m http://www.paper51.com

/*--------------------------------  控速模块-----------------------------------*/ 内容来自www.paper51.com

#define P03                 P0_3                   //后电机 copyright paper51.com

#define P04                 P0_4                    //后电机 http://www.paper51.com

#define P01                 P0_1                   //前电机 http://www.paper51.com

#define P02                 P0_2                   //前电机

http://www.paper51.com

#define P31                 P0_5                    //控制液晶背光

内容来自www.paper51.com

#define P33                 P3_3

copyright paper51.com

/*------------------------------  菜单选择模块 ---------------------------------*/

内容来自论文无忧网 www.paper51.com

#define Line                0x00                   //0代表直线模式

内容来自论文无忧网 www.paper51.com

#define Curve               0x01                   //1代表S型模式

copyright paper51.com

#define Normal              0x00                   //0 代表正常速度 内容来自论文无忧网 www.paper51.com

#define Low                 0x01                   //1 代表低速

内容来自论文无忧网 www.paper51.com

#define High                0x02                   //2 代表高速 内容来自论文无忧网 www.paper51.com

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

内容来自论文无忧网 www.paper51.com

**                                 全局函数声明区                                 ** 内容来自论文无忧网 www.paper51.com

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

paper51.com

/*-------------------------------  LCD模块-------------------------------------*/ 内容来自论文无忧网 www.paper51.com

void LCDInit(void);                                     //LCD初始化 copyright paper51.com

void SetWriteCmd(void);                                 //设置写命令模式

内容来自论文无忧网 www.paper51.com

void SetReadCmd(void);                                  //设置读命令模式

paper51.com

void SetWriteData(void);                                //设置写数据模式 copyright paper51.com

void WriteCmd(char cmd);                                //写命令

http://www.paper51.com

void WriteData(char ddata);                             //写数据 paper51.com

void ExecuteCmd(void);                                  //执行命令 http://www.paper51.com

void SetXY(char x,char y);                              //定位显示地址

内容来自www.paper51.com

void DisplaySingleChar(char x,char y,char cchar);       //显示单个字符 内容来自论文无忧网 www.paper51.com

void DisplayString(char x,char y,char *str);            //显示一段字符串 http://www.paper51.com

void Delay(unsigned int time);                          //延时主程序

内容来自论文无忧网 www.paper51.com

void DelayUs(unsigned int time);                        //延时子程序 内容来自www.paper51.com

bit  IsBusy(void);                                      //判断忙标志函数

http://www.paper51.com

void DisplayTime(void);                                 //显示时间

copyright paper51.com

void DisplayAVGSpeed(void);                             //显示平均速度 copyright paper51.com

void DisplayDistance(void);                             //显示路程

内容来自论文无忧网 www.paper51.com

/*--------------------------  测速/测距/测时模块 -------------------------------*/                         http://www.paper51.com

void INTInit(void);                                    //所有中断初始化 内容来自www.paper51.com

void SpeedINT(void);                                    //测速中断 copyright paper51.com

void ComputeTime(void); 内容来自论文无忧网 www.paper51.com

void ComputeSpeedANDDistance(void);                     //计算速度和距离 copyright paper51.com

/*--------------------------------  控速模块-----------------------------------*/ 内容来自论文无忧网 www.paper51.com

void CtrSpeedINT(void);                                //控速中断 paper51.com

void Time0INT(void);     copyright paper51.com

void Time1INT(void);                                    //控速单位时间中断 内容来自www.paper51.com

void Clock0_Init(void);                                 //时钟中断初始化

http://www.paper51.com

void Clock1_Init(void);                                //时钟中断初始化

内容来自www.paper51.com

void CtrSpeed(void);

paper51.com

/********************************************************************************\ copyright paper51.com

**                                 全局变量区                                      **

paper51.com

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

copyright paper51.com

float  SpeedCount = 0;                                  //测速计数脉冲

paper51.com

float  Speed = 0.0;                                copyright paper51.com

float  Distance = 0.0;                           

内容来自www.paper51.com

char  Time1INTCount=0;                                 //T1中断时间计时

http://www.paper51.com

float  PassTime=0.00;                                   //小车行走的时间 paper51.com

short  IsT0INT=1;                                       内容来自www.paper51.com

bit     IsT1INT;                                        //判断T1是否已经响应中断

copyright paper51.com

short  IsT0INT2=1;

http://www.paper51.com

char   Thx[5]={0xf4,0xf4,0xc5,0xf4,0xff};               //3ms,3ms,15ms,3ms 内容来自www.paper51.com

char   Tlx[5]={0x48,0x48,0x68,0x48,0xff};          http://www.paper51.com

char   Thx0=0xd8; 内容来自www.paper51.com

char   Tlx0=0xf0; 内容来自论文无忧网 www.paper51.com

char   Thx1=0xb1;                                       //20ms 内容来自www.paper51.com

char   Tlx1=0xe0;

内容来自www.paper51.com

short  Round=0; 内容来自论文无忧网 www.paper51.com

short  Back=0; 内容来自www.paper51.com

short  Back0=0;

copyright paper51.com

bit    Backid;

copyright paper51.com

bit    Stop=0; http://www.paper51.com

char   Area0=0; copyright paper51.com

char   Area1=0;                                         //区域变量

http://www.paper51.com

char  LowSpeedArea1StartTime; paper51.com

char  LowSpeedArea1EndTime;

内容来自www.paper51.com

char  HighSpeedAreaEndTime;

paper51.com

char   LowSpeedArea2EndTime;

内容来自www.paper51.com

char  LowSpeedArea1PassTime=0;                         //第一个低速区通过时间

copyright paper51.com

char  HighSpeedAreaPassTime=0;                         //高速区通过时间

paper51.com

char  LowSpeedArea2PassTime=0;                         //第二个低速区通过时间 paper51.com

char   ReadyToGo=4;                                     //倒计时

内容来自论文无忧网 www.paper51.com

char   flag; copyright paper51.com

bit    Roundid=0;

copyright paper51.com

char   Nocurve=0;

http://www.paper51.com

char  ChangeFlag; paper51.com

char   Mode; 内容来自论文无忧网 www.paper51.com

------分隔线----------------------------
联系方式