飞思卡尔车模竞赛基础Word格式文档下载.docx

上传人:b****2 文档编号:5733468 上传时间:2023-05-05 格式:DOCX 页数:14 大小:18.30KB
下载 相关 举报
飞思卡尔车模竞赛基础Word格式文档下载.docx_第1页
第1页 / 共14页
飞思卡尔车模竞赛基础Word格式文档下载.docx_第2页
第2页 / 共14页
飞思卡尔车模竞赛基础Word格式文档下载.docx_第3页
第3页 / 共14页
飞思卡尔车模竞赛基础Word格式文档下载.docx_第4页
第4页 / 共14页
飞思卡尔车模竞赛基础Word格式文档下载.docx_第5页
第5页 / 共14页
飞思卡尔车模竞赛基础Word格式文档下载.docx_第6页
第6页 / 共14页
飞思卡尔车模竞赛基础Word格式文档下载.docx_第7页
第7页 / 共14页
飞思卡尔车模竞赛基础Word格式文档下载.docx_第8页
第8页 / 共14页
飞思卡尔车模竞赛基础Word格式文档下载.docx_第9页
第9页 / 共14页
飞思卡尔车模竞赛基础Word格式文档下载.docx_第10页
第10页 / 共14页
飞思卡尔车模竞赛基础Word格式文档下载.docx_第11页
第11页 / 共14页
飞思卡尔车模竞赛基础Word格式文档下载.docx_第12页
第12页 / 共14页
飞思卡尔车模竞赛基础Word格式文档下载.docx_第13页
第13页 / 共14页
飞思卡尔车模竞赛基础Word格式文档下载.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

飞思卡尔车模竞赛基础Word格式文档下载.docx

《飞思卡尔车模竞赛基础Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《飞思卡尔车模竞赛基础Word格式文档下载.docx(14页珍藏版)》请在冰点文库上搜索。

飞思卡尔车模竞赛基础Word格式文档下载.docx

相应的定时器设置参考xs128技术手册,然后在同学或是。

(3)先进行基本的波特率和一些必要的设置;

主要过程是对SCI0SR1_TDRE的监测和判断,当空的时候SCI0SR1_TDRE=1,当接受传输数据未结束时SCI0SR1_TDRE=0。

中断法不同于查询法的地方时,前者不同于后者一直在占用内存执行查询,前者只是中断的时候执行查询程序。

同时我们可以比较在相同的时间里完成中断然后进行从1的自加。

比较这两种方法的效率,中断法较好。

(4)N5110D的部件的应用需要了解部件的初始化,对其进行一些一些基本的初始化,然后加上一些自己定义的函数,然后加载到程序的主要步骤中。

(5)PWM波的产生方法科协的学长给我们上过课,范例也给了,应用到这里基本不用改变多少语句。

如何将PWM波的波形显示到5110上是通过对占空比的控制实现的。

(6)通过串口选择,我们可以提高速度,达到实时性要求,目前达到1兆每秒数据存储。

4.程序清单

每一个子程序上面都要有详细说明

里面代码注释。

#include<

hidef.h>

/*commondefinesandmacros*/

#include"

derivative.h"

/*derivative-specificdefinitions*/

5110.h"

key.h"

LCDshow.H"

byteflag=0;

byteWidth=20;

voidmain(void)

{

N5110_Init();

for(;

;

{

LCD_show();

Key_Init();

}

}

说明:

P1口产生周期为5毫秒的PWM波

#ifndef_PWM_H_

#define_PWM_H_

voidPWM_Init(void);

#endif

PWM.h"

voidPWM_Init(void)

PWME_PWME0=0;

//禁止要设置的通道,因为要级联,该通道被屏蔽即使打开也没波形

PWME_PWME1=0;

//禁止要设置的通道

PWMCTL_CON01=1;

//合并通道0和1形成16位PWM通道,通道0和通道0的设置被屏蔽

PWMPOL_PPOL1=1;

//设置通道极性,起始输出高电平,占空比就是高电平

PWMCAE_CAE1=0;

//设置对其方式,左对齐方式

PWMCLK_PCLK1=0;

//设置参考时钟,A时钟为参考时钟

PWMPRCLK_PCKA=0;

//设置A时钟的分频系数

PWMPER01=40000;

//设置周期计数值

PWMDTY01=20000;

//设置占空比,初始为0

PWME_PWME1=1;

//使能通道3,即开启PWM

}

#ifndef_KEY_H_

#define_KEY_H_

voidKey_Init(void);

externbyteflag;

externbyteWidth;

voidKey_Init(void)

DDRB=0X00;

//检测B口所以设置B口的输出

PORTB=0XFF;

DDRT=0Xff;

PTT=0XFE;

if(flag>

2)

flag=0;

if(PORTB_PB4==0)

while(PORTB_PB4==0);

N5110_Clean_Screen();

flag++;

elseif(PORTB_PB5==0)

while(PORTB_PB5==0);

flag--;

elseif(PORTB_PB6==0)

while(PORTB_PB6==0);

Width++;

elseif(PORTB_PB7==0)

while(PORTB_PB7==0);

Width--;

}

#ifndef_LCDSHOW_H_

#define_LCDSHOW_H_

voidLCD_show(void);

#include"

voidLCD_show(void)

bytei,j;

if(flag==0)

{

for(i=0;

i*Width<

84;

i++)

N5110_Write_Coord(i*Width,2);

N5110_Write_Data('

D'

0xff);

N5110_Write_Coord(i*Width,3);

for(j=Width*i+1;

j<

Width*(i+1);

j++)

if(i%2==0)

N5110_Write_Coord(j,2);

0x01);

else

N5110_Write_Coord(j,3);

0x80);

elseif(flag==1)

N5110_Write_Coord(i*Width,1);

N5110_Write_Coord(i*Width,4);

N5110_Write_Coord(j,1);

N5110_Write_Coord(j,4);

elseif(flag==2)

N5110_Write_Coord(i*Width,0);

N5110_Write_Coord(i*Width,5);

N5110_Write_Coord(j,0);

N5110_Write_Coord(j,5);

#ifndef_5110_H_

#define_5110_H_

#defineRET_5110_HPORTE_PE7=1

#defineRET_5110_LPORTE_PE7=0

#defineCE_5110_HPTM_PTM0=1

#defineCE_5110_LPTM_PTM0=0

#defineDC_5110_DPTJ_PTJ7=1

#defineDC_5110_CPTJ_PTJ7=0

#defineSDIN_5110_HPTM_PTM4=1

#defineSDIN_5110_LPTM_PTM4=0

#defineSCLK_5110_HPTM_PTM5=1

#defineSCLK_5110_LPTM_PTM5=0

voidN5110_Init(void);

voidN5110_Write_Data(byteDC,byteData);

voidN5110_Write_Coord(byteCoord_X,byteCoord_Y);

voidN5110_Clean_Screen(void);

voidN5110_Write_Char(charascii);

voidMenu_Write_String(char*string);

//N5110初始化函数

voidN5110_Init(void)

PORTE_PE7=0;

PTM=0x00;

PTT_PTT7=0;

DDRM|=(1<

<

0)|(1<

4)|(1<

5);

//M口方向寄存器

DDRE_DDRE7=1;

//E口方向寄存器

DDRJ_DDRJ7=1;

//J口方向寄存器

RET_5110_L;

//N5110芯片复位

RET_5110_H;

CE_5110_L;

//初始不选通N5110芯片,仅在需要写入数据的时候选通芯片

C'

0x21);

//设置功能设置寄存器,芯片活动,水平寻址,使用扩展命令

0xbf);

//设置液晶偏置电压

0x06);

//温度校正

0x13);

//设置偏置系统1:

48

0x20);

//使用基本指令集

0x0c);

//设置显示模式为普通模式

//清屏

//N5110同步串行函数

voidN5110_Write_Data(byteDC,byteData)

bytei;

//片选芯片使得数据可以写入

if(DC=='

)//区分数据类型

DC_5110_D;

else

DC_5110_C;

for(i=0;

i<

8;

i++)//同步串行发送数据

SCLK_5110_L;

//时钟信号拉低

if((Data&

0x80)!

=0)//每一次判断第八位数据来确定数据引脚的状态,通过左移数据位到第八位实现八位输出

{

SDIN_5110_H;

}

SDIN_5110_L;

}

SCLK_5110_H;

//时钟信号拉高,上升沿写入数据

Data<

=1;

//把要发送的数据左移到第八位用于判断

CE_5110_H;

//不选通芯片

//N5110设置坐标函数

voidN5110_Write_Coord(byteCoord_X,byteCoord_Y)

Coord_X|0x80);

//设置X坐标,X坐标命令字要求第八位为1所以与上0x80

Coord_Y|0x40);

//设置Y坐标,X坐标命令字要求第五位为1所以与上0x40

//N5110清屏函数

voidN5110_Clean_Screen(void)

wordi;

N5110_Write_Coord(0,0);

//设置初始坐标为0,0

504;

i++)//写84*6组0x00数据完成清屏

0x00);

//N5110写一个字符函数

voidN5110_Write_Char(charascii)

wordcoord=(ascii-'

'

)*5;

//计算该字符的模在ASCII码表的位置

5;

i++)//依次写入模值

ascii_dot[coord+i]);

//N5110写一个字符串函数

voidMenu_Write_String(char*string)

{

while(*string!

=0x00)//输出直到遇到0x00

N5110_Write_Char(*string);

string++;

5.期末总结

车模竞赛基础课,既然说明了这是一个基础课,所以我们不太依靠在课堂的那么多时间,因为每周两节课90分钟,再加上有时候实验课,显然课上的讲解并不能让我们很好的解决问题。

科普讲解让我们对飞思卡尔智能车有了个大概的认识与了解,对智能车各个部分的组件都进行了讲解。

也许我们需要的是自己的求知的欲望,我们可以询问学长,XX搜索,请教老师。

这将不仅仅培养了我们的自学能力,同时也加强了同学间的沟通与合作,信息共享提高效率。

只是很遗憾的说,我并没有很好地顿悟,没有投入百分百的精力去做这个,然后只剩下了遗憾。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 自然景观

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2