矿大飞思卡尔实验指导书及程序.docx

上传人:b****2 文档编号:2110485 上传时间:2023-05-02 格式:DOCX 页数:42 大小:21.71KB
下载 相关 举报
矿大飞思卡尔实验指导书及程序.docx_第1页
第1页 / 共42页
矿大飞思卡尔实验指导书及程序.docx_第2页
第2页 / 共42页
矿大飞思卡尔实验指导书及程序.docx_第3页
第3页 / 共42页
矿大飞思卡尔实验指导书及程序.docx_第4页
第4页 / 共42页
矿大飞思卡尔实验指导书及程序.docx_第5页
第5页 / 共42页
矿大飞思卡尔实验指导书及程序.docx_第6页
第6页 / 共42页
矿大飞思卡尔实验指导书及程序.docx_第7页
第7页 / 共42页
矿大飞思卡尔实验指导书及程序.docx_第8页
第8页 / 共42页
矿大飞思卡尔实验指导书及程序.docx_第9页
第9页 / 共42页
矿大飞思卡尔实验指导书及程序.docx_第10页
第10页 / 共42页
矿大飞思卡尔实验指导书及程序.docx_第11页
第11页 / 共42页
矿大飞思卡尔实验指导书及程序.docx_第12页
第12页 / 共42页
矿大飞思卡尔实验指导书及程序.docx_第13页
第13页 / 共42页
矿大飞思卡尔实验指导书及程序.docx_第14页
第14页 / 共42页
矿大飞思卡尔实验指导书及程序.docx_第15页
第15页 / 共42页
矿大飞思卡尔实验指导书及程序.docx_第16页
第16页 / 共42页
矿大飞思卡尔实验指导书及程序.docx_第17页
第17页 / 共42页
矿大飞思卡尔实验指导书及程序.docx_第18页
第18页 / 共42页
矿大飞思卡尔实验指导书及程序.docx_第19页
第19页 / 共42页
矿大飞思卡尔实验指导书及程序.docx_第20页
第20页 / 共42页
亲,该文档总共42页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

矿大飞思卡尔实验指导书及程序.docx

《矿大飞思卡尔实验指导书及程序.docx》由会员分享,可在线阅读,更多相关《矿大飞思卡尔实验指导书及程序.docx(42页珍藏版)》请在冰点文库上搜索。

矿大飞思卡尔实验指导书及程序.docx

矿大飞思卡尔实验指导书及程序

中国矿业大学信电学院飞思卡尔实验指导书及实验程序

实验一(4学时)

一、实验题目

实验硬件与软件认识

二、实验目的与要求

1.正确认识硬件系统

2.掌握IAR软件的基本使用方法

三、主要实验内容

1.硬件评估板认识与MCU的外观识别

a.根据原理图找到不同器件与MCU相连接的管脚

b.理解系统的基本稳压电路

2.IAR安装与基本使用

3.评估板升级与例程下载

四、检验方式

1.结合原理图找到不同器件和MCU的连接管脚

2.成功下载例程,并能简单演示。

即随着手势的变化,三色LED呈现不同状态。

实验二(4学时)

一、实验题目

LED发光与变色实验

二、实验目的与要求

1.掌握I/O口的基本编程方法

2.掌握基本工程构建方法

三、主要实验内容

1.开关控制LED及其编程方法

a.找到LED对应MCU的管脚

b.编程控制三个不同颜色LED亮灭

2.程序修改与调试

四、检验方式

1.控制单个LED闪烁,要求能编程控制闪烁频率

2.控制三个LED交叉闪烁,要求能编程控制闪烁的顺序和频率

实验三(4学时)

一、实验题目

串行通信实验

二、实验目的与要求

1.掌握MCU串行通信基本编程方法

2.学会MCU与微机的串行通信编程

三、主要实验内容

1.轮询方式串口通信

2.中断方式串口通信

3.程序修改与调试

四、验证方式

1.连接上位机,从串口以不同波特率发送字符,并得到下位机的反馈

实验四(4学时)

一、实验题目

串口控制LED实验

二、实验目的与要求

1.熟练应用三色LED控制

2.熟练应用串口通信

三、主要实验内容

1.利用串口控制LED显示赤橙黄绿青蓝紫七色

2.程序修改与调试

四、验证方式

1.演示,要求三色LED能从赤逐渐显示到紫

实验五(8学时)

一、实验题目

加速度传感器读取

二、实验目的与要求

1.认识I2C通信协议

2.利用I2C协议与传感器进行通信

3.熟练应用三色LED控制

三、主要实验内容

1.读取加速度传感器三轴加速度和根据不同加速度改变LED颜色

2.程序修改与调试

四、验证方式

1.从加速度传感器读取数据,并在串口打印输出

2.根据加速度传感器不同状态改变三色LED的颜色

实验六(4学时)

一、实验题目

打飞机小游戏设计

二、实验目的与要求

1.加速度传感器熟练应用

2.熟练运用串口

三、主要实验内容

1.综合利用多个构件读取加速度传感器数据控制游戏中的飞机运动

2.程序修改与调试

四、验证方式

完成游戏获得5000分

实验七(4学时)

一、实验题目

简单计步器

二、实验目的与要求

1.加速度传感器熟练应用

2.计步算法理解

三、主要实验内容

1.综合利用多个构件读取加速度传感器数据完成简单人体计数

2.程序修改与调试

四、验证方式

1.走10步、20步、30步,LED成不同颜色

 

实验程序

实验一实验硬件与软件认识

intmain(void)

{

#ifdefCMSIS//IfweareconformingtoCMSIS,weneedtocallstarthere

start();

#endif

printf("\n\rRunningtheGGGGGGproject.\n\r");

SIM_SCGC5|=SIM_SCGC5_PORTB_MASK;

SIM_SCGC5|=SIM_SCGC5_PORTD_MASK;

PORTB_PCR19=PORT_PCR_MUX

(1);

PORTB_PCR18=PORT_PCR_MUX

(1);

PORTD_PCR1=PORT_PCR_MUX

(1);

GPIOB_PDDR|=1<<19;

GPIOB_PDDR|=1<<18;

GPIOD_PDDR|=1<<1;

GPIOB_PDOR|=(1<<19);

GPIOD_PDOR|=(1<<1);

while

(1)

{

GPIOB_PDOR&=~(1<<18);

for(uint32i=0;i<0x4fffff;i++);

GPIOB_PDOR|=(1<<18);

for(uint32i=0;i<0x4fffff;i++);

}

}

intmain(void)

{

#ifdefCMSIS//IfweareconformingtoCMSIS,weneedtocallstarthere

start();

#endif

printf("\n\rRunningthe2222222project.\n\r");

SIM_SCGC5|=SIM_SCGC5_PORTB_MASK;

SIM_SCGC5|=SIM_SCGC5_PORTD_MASK;

PORTB_PCR19=PORT_PCR_MUX

(1);

PORTB_PCR18=PORT_PCR_MUX

(1);

PORTD_PCR1=PORT_PCR_MUX

(1);

GPIOB_PDDR|=1<<19;

GPIOB_PDDR|=1<<18;

GPIOD_PDDR|=1<<1;

while

(1)

{

GPIOB_PDOR&=~(1<<18);

GPIOB_PDOR|=(1<<19);

GPIOD_PDOR|=(1<<1);

for(uint32i=0;i<0x4fffff;i++);

GPIOB_PDOR|=(1<<18);

GPIOB_PDOR&=~(1<<19);

GPIOD_PDOR|=(1<<1);

for(uint32i=0;i<0x4fffff;i++);

GPIOB_PDOR|=(1<<18);

GPIOB_PDOR|=(1<<19);

GPIOD_PDOR&=~(1<<1);

for(uint32i=0;i<0x4fffff;i++);

}

 

实验二LED发光与变色实验

voidUART_Init(uint16baud_rate)

{

uint16uart0_clk_khz=24000;

uint16sbr;

PORTA_PCR1=PORT_PCR_MUX(0x02);

PORTA_PCR2=PORT_PCR_MUX(0x02);

SIM_SCGC4|=SIM_SCGC4_UART0_MASK;

SIM_BASE_PTR->SOPT2|=SIM_SOPT2_UART0SRC

(1);

UART0_C2&=~(UART0_C2_TE_MASK|UART0_C2_RE_MASK);

sbr=(uint16)((uart0_clk_khz*1000)/(baud_rate*16));

UART0_BDH=UART0_BDH&(~UART0_BDH_SBR_MASK);

UART0_BDL=(uint8)(sbr&UART0_BDL_SBR_MASK);

UART0_C4=UART0_C4_OSR(15);

UART0_C1=0x00;

UART0_S1|=0x1F;

UART0_S2|=(UART0_S2_LBKDE_MASK|UART0_S2_RXEDGIF_MASK);

UART0_C2|=(UART_C2_TE_MASK|UART_C2_RE_MASK);

}

intmain(void)

{

charch;

#ifdefCMSIS//IfweareconformingtoCMSIS,weneedtocallstarthere

start();

#endif

UART_Init(9600);

printf("\n\rRunningthesixianghuibaoproject.\n\r");

while

(1)

{

while(!

(UART0_S1&UART0_S1_RDRF_MASK));

ch=UART0_D;

while(!

(UART0_S1&UART0_S1_TDRE_MASK));

UART0_D=ch;

}

}

voidUART_Init(uint32baud_rate)

{

uint16uart0_clk_khz=24000;

uint16sbr;

PORTA_PCR1=PORT_PCR_MUX(0x02);

PORTA_PCR2=PORT_PCR_MUX(0x02);

SIM_SCGC4|=SIM_SCGC4_UART0_MASK;

SIM_SOPT2|=SIM_SOPT2_UART0SRC

(1);

UART0_C2&=~(UART0_C2_TE_MASK|UART0_C2_RE_MASK);

sbr=(uint16)((uart0_clk_khz*1000)/(baud_rate*16));

UART0_BDH=0x00;

UART0_BDL=0x0D;

UART0_C4=UART0_C4_OSR(15);

UART0_C1=0x00;

UART0_S1|=0x1f;

UART0_C2|=(UART_C2_TE_MASK|UART_C2_RE_MASK);

}

voidUART_irq_enable()

{

UART0_C2|=UART0_C2_RIE_MASK;

enable_irq(12);

}

voiduart0_isr()

{

charch;

ch=UART0_D;

while(!

(UART0_S1&UART0_S1_TDRE_MASK));

UART0_D=ch;

}

intmain(void)

{

charch;

#ifdefCMSIS

start();

#endif

UART_Init(115200);

UART_irq_enable();

printf("\n\rhollomoto\n\r");

while

(1)

{

}

}

/********************************************************************/

Isr.h

#ifndef__ISR_H

#define__ISR_H1

/*Example*/

/*

#undefVECTOR_101

#defineVECTOR_101lpt_isr

//ISR(s)aredefinedinyourprojectdirectory.

externvoidlpt_isr(void);

*/

#undefVECTOR_028

#defineVECTOR_028uart0_isr

externvoiduart0_isr(void);

#endif//__ISR_H

 

实验三串行通信实验

/*

*File:

i2c_accel.c

*Purpose:

Mainprocess

*

*/

#include"common.h"

#ifdefCMSIS

#include"start.h"

#endif

#defineSENSOR_I2C_ADDRESS0x1D

#defineIICWRITE(iicaddress)((iicaddress<<1)&0xFE)

#defineIICREAD(iicaddress)((iicaddress<<1)|0x01)

#defineSENSOR_I2C_ADDRESS_WIICWRITE(SENSOR_I2C_ADDRESS)

#defineSENSOR_I2C_ADDRESS_RIICREAD(SENSOR_I2C_ADDRESS)

voidi2c_Init()

{

SIM_SCGC4|=SIM_SCGC4_I2C0_MASK;

SIM_SCGC5|=SIM_SCGC5_PORTC_MASK;

PORTE_PCR24=PORT_PCR_MUX(5)|PORT_PCR_PE_MASK|PORT_PCR_PS_MASK;

PORTE_PCR25=PORT_PCR_MUX(5)|PORT_PCR_PE_MASK|PORT_PCR_PS_MASK;

I2C0_F=0x00;

I2C0_C1=I2C_C1_IICEN_MASK;

I2C0_FLT|=I2C_FLT_FLT(16);

}

uint8i2c_read_byte(uint8reg)

{

uint16ch;

uint8c;

I2C0_C1|=I2C_C1_TX_MASK;

I2C0_C1&=~I2C_C1_TXAK_MASK;

I2C0_S|=I2C_S_IICIF_MASK;

I2C0_C1|=I2C_C1_MST_MASK;

I2C0_D=SENSOR_I2C_ADDRESS_W;

while((I2C0_S&I2C_S_IICIF_MASK)==0);

I2C0_S|=I2C_S_IICIF_MASK;

while((I2C0_S&I2C_S_RXAK_MASK)==1);

I2C0_D=reg;

while((I2C0_S&I2C_S_IICIF_MASK)==0);

I2C0_S|=I2C_S_IICIF_MASK;

while((I2C0_S&I2C_S_RXAK_MASK)==1);

I2C0_C1|=I2C_C1_RSTA_MASK;

for(ch=0;ch<100;ch++)

{

asm("nop");

}

I2C0_D=SENSOR_I2C_ADDRESS_R;

while((I2C0_S&I2C_S_IICIF_MASK)==0);

I2C0_S|=I2C_S_IICIF_MASK;

I2C0_C1&=~I2C_C1_TX_MASK;

I2C0_C1|=I2C_C1_TXAK_MASK;

c=I2C0_D;

while((I2C0_S&I2C_S_IICIF_MASK)==0);

I2C0_S|=I2C_S_IICIF_MASK;

I2C0_C1&=~I2C_C1_MST_MASK;

c=I2C0_D;

for(ch=0;ch<500;ch++)

{

asm("nop");

}

returnc;

}

voidi2c_write_byte(uint8reg,uint8m)

{

uint16ch;

I2C0_C1|=I2C_C1_TX_MASK;

I2C0_C1&=~I2C_C1_TXAK_MASK;

I2C0_S|=I2C_S_IICIF_MASK;

I2C0_C1|=I2C_C1_MST_MASK;

I2C0_D=SENSOR_I2C_ADDRESS_W;

while((I2C0_S&I2C_S_IICIF_MASK)==0);

I2C0_S|=I2C_S_IICIF_MASK;

while((I2C0_S&I2C_S_RXAK_MASK)==1);

I2C0_D=reg;

while((I2C0_S&I2C_S_IICIF_MASK)==0);

I2C0_S|=I2C_S_IICIF_MASK;

while((I2C0_S&I2C_S_RXAK_MASK)==1);

I2C0_D=m;

while((I2C0_S&I2C_S_IICIF_MASK)==0);

I2C0_S|=I2C_S_IICIF_MASK;

while((I2C0_S&I2C_S_RXAK_MASK)==1);

I2C0_C1&=~I2C_C1_MST_MASK;

for(ch=0;ch<500;ch++)

{

asm("nop");

}

}

voidUART_Init(uint32baud_rate)

{

uint16uart0_clk_khz=24000;

uint16sbr;

PORTA_PCR1=PORT_PCR_MUX(0x02);

PORTA_PCR2=PORT_PCR_MUX(0x02);

SIM_SCGC4|=SIM_SCGC4_UART0_MASK;

SIM_SOPT2|=SIM_SOPT2_UART0SRC

(1);

UART0_C2&=~(UART0_C2_TE_MASK|UART0_C2_RE_MASK);

sbr=(uint16)((uart0_clk_khz*1000)/(baud_rate*16));

UART0_BDH=UART0_BDH&(~UART0_BDH_SBR_MASK);

UART0_BDL=(uint8)(sbr&UART0_BDL_SBR_MASK);

UART0_C4=UART0_C4_OSR(15);

UART0_C1=0x00;

UART0_S1|=0x1F;

UART0_C2|=(UART_C2_TE_MASK|UART_C2_RE_MASK);

}

voidpwm_Init(uint16period,uint16duty)

{

//SIM_SOPT2=SIM_SOPT2_PLLFLLSEL_MASK;

SIM_SOPT2|=SIM_SOPT2_TPMSRC

(1);

SIM_SCGC6|=SIM_SCGC6_TPM0_MASK

|SIM_SCGC6_TPM2_MASK;

PORTD_PCR1|=PORT_PCR_MUX(4);

TPM0_BASE_PTR->SC=0|TPM_SC_CMOD(0);

TPM0_BASE_PTR->CNT=0;

TPM0_BASE_PTR->MOD=period;

TPM0_C1SC=0|TPM_CnSC_MSB_MASK

|TPM_CnSC_ELSB_MASK;

TPM0_C1V=duty;

TPM0_BASE_PTR->SC=0|TPM_SC_CMOD

(1)

|TPM_SC_PS(4);

PORTB_PCR18|=PORT_PCR_MUX(3);

PORTB_PCR19|=PORT_PCR_MUX(3);

TPM2_BASE_PTR->SC=0|TPM_SC_CMOD(0);

TPM2_BASE_PTR->CNT=0;

TPM2_BASE_PTR->MOD=period;

TPM2_C0SC=0|TPM_CnSC_MSB_MASK

|TPM_CnSC_ELSB_MASK;

TPM2_C0V=duty;

TPM2_C1SC=0|TPM_CnSC_MSB_MASK

|TPM_CnSC_ELSB_MASK;

TPM2_C1V=duty;

TPM2_BASE_PTR->SC=0|TPM_SC_CMOD

(1)

|TPM_SC_PS(4);

}

voidpwm_Set(uint8ch,uint16duty)

{

switch(ch)

{

case1:

TPM0_C1V=duty;

break;

case2:

TPM2_C0V=duty;

break;

case3:

TPM2_C1V=duty;

break;

}

}

/********************************************************************/

uint8x;

uint8XH,XL,YH,YL,ZH,ZL;

int8xh,yh,zh;

uint8temp;

/********************************************************************/

intmain(void)

{

#ifdefCMSIS//IfweareconformingtoCMSIS,weneedtocallstarthere

start();

#endif

printf("\n\rRunningtheexperiment_5project.\n\r");

UART_Init(9600);

i2c_Init();

pwm_Init(100,50);

x=i2c_read_byte(0x0D);

if(x==0x1A)

{

i2c_write_byte(0x2A,0x19);

i2c_write_byte(0x0E,0x01);

}

else

{

printf("\n\rPleasecheckoutyourMMA81451!

\n\r");

}

while

(1)

{

x=i2c_read_byte(0x00);

if(x&0x08==0x08)

{

XH=i2c_read_byte(0x01);

XL=i2c_read_byte(0x02);

YH=i2c_read_byte(0x03);

YL=i2c_read_byte(0x04);

ZH=i2c_read_byte(0x05);

ZL=i2c_read_byte(0x06);

uart0_putchar(UART0_BASE_PTR,0xFF);

uart0_putchar(UART0_BASE_PTR,XH-1);

uart0_putchar(UART0_BASE_PTR,XL);

uart0_putchar(UART0_BASE_PTR,YH-1);

uart0_putchar(UART0_BASE_PTR,YL);

uart0_putchar(UART0_BASE_PTR,ZH-1);

uart0_putchar(UART0_BASE_PTR,ZL);

xh=i2c_read_byte(0x01);

yh=i2c_read_byte(0x03);

zh=i2c_read_byte(0x05);

temp=(uint8)((128+xh)/256.0*100.0);

pwm_Set(1,temp);

temp

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

当前位置:首页 > 小学教育 > 语文

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

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