飞思卡尔实验报告

时间:2019-05-12 02:20:21下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《飞思卡尔实验报告》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《飞思卡尔实验报告》。

第一篇:飞思卡尔实验报告

中南大学

Central South University

飞思卡尔实验报告

学生姓名:叶吉东

指导老师:王击

学院:信息科学与工程学院

专业班级:自动化1204班

完成日期:2014年09月21日

目录

实验1.1 流水灯………………………………..………………………………...3 实验1.2 拨码开关控LED 灯…………………....…………………………........4 实验1.3 动态数码管显示…………………………….………………………....5 实验1.4 矩阵键盘……………………………………………………………....6 实验1.5 LCD(0802)显示………………………………………………………..8 实验1.6 LCD(12864)显示…………………………………….………………..10 实验1.7 蜂鸣器驱动………………………………………………………..….11 实验1.8 继电器驱动…………………………………..……………………….12

实验1.1 流水灯

一、实验目的:

1、掌握GPIO 口基本寄存器的使用,掌握如何将GPIO 作为输出口。

2、初步了解如何使用C 语言编写飞思卡尔单片机程序。

二、实验内容

利用PORTB 口的低4 位驱动4 位LED 灯,实现4 位LED 灯明灯流水操作。

三、实验电路图

四、实验说明

1、PORTB 口寄存器初始化。

2、送数据给PORTB 口显示,并延时一定时间。

3、改变数据,重复2。

五、实验方法及步骤

1、接线说明:

本实验无需外部接线,只需要使用跳线帽短接核心板上JP_1 处标号为PB0~ PB3 的跳线即可。

2、运行程序,观察LED 灯亮灭情况。

六、心得体会

这是我利用单片机进行的第一次实验,之前也没有接触过单片机,通过这次实验我大概了解了单片机的编程方法。它跟我们上个学期学过的微机原理很像,编程方法非常类似,这使得我也很容易看懂这个程序。最后我还做了课后思考题,发现只要延时时间缩短就可以达到闪烁的效果了。通过这一次实验让我对单片机有了初步的了解。为接下来的实验打下了基础。实验1.2 拨码开关控LED 灯

一、实验目的:

1、掌握GPIO 口的读写操作。

2、进一步了解C 语言在飞思卡尔单片机中的编程规范及技巧。

二、实验内容:

读取PORTB 口高4 位连接的4 位拨码开关状态,将读取到的拨码开关状态用 PORTB 口低4 位连接的LED 灯显示。

三、实验电路图:

四、实验说明:

1、PORTB 口寄存器初始化;

2、读取PORTB 数据,将数据右移4 位;送PORTB 口显示;

3、重复2。

五、实验方法及步骤:

1、接线说明:

本实验无需外部接线,只需要使用跳线帽短接核心板上JP_1 处标号为PB0~ PB7 的跳线即可。

2、运行程序,改变拨码开关的状态,观察LED 灯的显示变化。

六、心得体会

这一次的实验跟第一次的实验基本类似,知识这次所需要连的线要多一些而已。通过这一次的实验,进一步了解GPIO 口的读写操作。进一步了解C 语言在飞思卡尔单片机中的编程规范及技巧。

实验1.3 动态数码管显示

一、实验目的:

1、了解数码管动态显示的方法。

2、掌握2803 的驱动原理。

二、实验内容:

系统上电后首先单8 左移显示,然后0-7 顺次左移显示,紧接着7-0 顺次 右移显示,再 0-7 全部闪烁显示,并重复以上动作。

三、实验电路图:

四、实验说明:

1、GPIO 相关寄存器初始化;

2、选中数码管第一位,送段码显示第一个数据;

3、移动位码,送下个数据的段码,以此类推,实现移位显示与动态显示。

五、实验方法及步骤:

1、接线说明: 实验系统底板的8 位8 段数码管模块的段码接线说明: J_SEG-1(A)----IO065(PA0)J_SEG-2(B)----IO066(PA1)J_SEG-3(C)----IO067(PA2)J_SEG-4(D)----IO068(PA3)J_SEG-5(E)----IO069(PA4)J_SEG-6(F)----IO070(PA5)J_SEG-7(G)----IO071(PA6)J_SEG-8(DP)----IO072(PA7)8 位8 段数码管模块的位码接线说明: J_DIG-1(COM0)----IO046(PH7)J_DIG-2(COM1)----IO045(PH6)J_DIG-3(COM2)----IO048(PH5)J_DIG-4(COM3)----IO047(PH4)J_DIG-5(COM4)----IO050(PH3)J_DIG-6(COM5)----IO049(PH2)J_DIG-7(COM6)----IO052(PH1)J_DIG-8(COM7)----IO051(PH0)

六、心得体会:

这次的实验连线比较复杂,这使得我第一次的连线并没有连正确,演示的时候出来的是乱码。然后我就慢慢检查,终于发现了错误所在,是我并没有看清实验指导书连线而是凭着自己的感觉经验然后连线的,结果就出错了,所以我们做实验额时候一定得细心,要不然就会容易出错。看着实验箱上的实验结果,就联想到了我们日常生活中到处可见的LED灯。这让我越来越觉得单片机实现的功能在生活中到处可见。

实验1.4 矩阵键盘

一、实验目的:

1、了解矩阵键盘扫描原理。

2、掌握矩阵键盘编程方法。

二、实验内容:

编写键盘扫描程序,当矩阵键盘模块有按键按下时,读取键值,并利用数码 管显示键值。系统上电后8 位数码管以5-4-3-2-1 倒计数显示,待显示值为1 后,数码管清除显示,此时按下矩阵键盘按键,数码管显示对应键值。

三、实验电路图:

四、实验说明:

1、GPIO 相关寄存器的初始化。2、8 位数码管以5-4-3-2-1 倒计数显示。

3、扫描按键,键值送数码管显示。

4、重复操作3。

五、实验方法及步骤:

1、接线说明:

实验系统底板的4x4 矩阵键盘接线说明: J_Key-1(R0)-----IO092(PS0)J_Key-2(R1)-----IO091(PS1)J_Key-3(R2)-----IO094(PS2)J_Key-4(R3)-----IO093(PS3)J_Key-5(C0)-----IO096(PS4)J_Key-6(C1)-----IO095(PS5)J_Key-7(C2)-----IO098(PS6)J_Key-8(C3)-----IO097(PS7)实验系统底板的8 位8 段数码管模块的段码接线说明: J_SEG-1(A)----IO065(PA0)J_SEG-2(B)----IO066(PA1)J_SEG-3(C)----IO067(PA2)J_SEG-4(D)----IO068(PA3)J_SEG-5(E)----IO069(PA4)J_SEG-6(F)----IO070(PA5)J_SEG-7(G)----IO071(PA6)J_SEG-8(DP)----IO072(PA7)8 位8 段数码管模块的位码接线说明: J_DIG-1(COM0)----IO046(PH7)J_DIG-2(COM1)----IO045(PH6)J_DIG-3(COM2)----IO048(PH5)J_DIG-4(COM3)----IO047(PH4)J_DIG-5(COM4)----IO050(PH3)J_DIG-6(COM5)----IO049(PH2)J_DIG-7(COM6)----IO052(PH1)J_DIG-8(COM7)----IO051(PH0)

2、运行程序,观察数码管显示变化。按下按键,观察数码管显示变化。

六、心得体会:

这次做的是矩阵键盘的实验,通过前几次实验,对单片机实验有了一定的了解,所以我这次并没有一开始就连线,我先打开程序然后花了好长一段时间了解矩阵键盘扫描原理,发现程序是通过不断循环扫描的方法来检测按键是否按下。通过这次试验我基本了解矩阵键盘的编程方法。

实验1.5 LCD(0802)显示

一、实验目的:

1、掌握GPIO 口控制外设的方法。

2、熟悉LCD(0802)的指令系统。

二、实验内容: 利用LCD(0802)液晶显示器,显示两排数字。

三、实验电路图:

四、实验说明:

1、驱动LCD(0802)GPIO 口相关寄存器初始化;

2、LCD(0802)初始化;

3、在LCD 屏上分行显示“01234567”和“ABCDEFGH”。

五、实验方法及步骤:

1、接线说明:

实验系统底板0802 液晶模块的LCD 数据口信号接线说明: J_0802B_1-5(DB0)----IO065(PA0)J_0802B_1-6(DB1)----IO066(PA1)J_0802B_1-7(DB2)----IO067(PA2)J_0802B_1-8(DB3)----IO068(PA3)J_0802B_1-9(DB4)----IO069(PA4)J_0802B_1-10(DB5)----IO070(PA5)J_0802B_1-11(DB6)----IO071(PA6)J_0802B_1-12(DB7)----IO072(PA7)

实验系统底板0802 液晶模块的LCD 控制口信号接线说明: J_0802B_1-1(RS)-----IO013(PK5)J_0802B_1-2(R/W)----IO014(PK4)J_0802B_1-3(EN)-----IO015(PK3)

2、运行程序,观察实验现象。

六、心得体会:

这次实验我还是像上次一样,先把实验内容看一下,然后就直接看程序。刚开始的程序是LCD(0802)GPIO 口相关寄存器初始化和LCD(0802)初始化,看了半个多小时也是似懂非懂,接下来看的是LCD显示“01234567”和“ABCDEFGH”的程序,这些程序应该都是应该查表得出来的,我也没有必要看懂,所以我就连线进行实验了,通过这次试验我还是能够初步掌握GPIO 口控制外设的方法和熟悉LCD(0802)的指令系统。

实验1.6 LCD(12864)显示

一、实验目的:

1、掌握GPIO 口控制外设的方法。

2、熟悉LCD(12864)的指令系统。

二、实验内容:

使用OCM12864-2 液晶显示器,显示汉字。

三、实验电路图:

四、实验说明:

1、驱动LCD(12864)的GPIO 相关寄存器初始化;

2、LCD(12864)控制器的初始化,延时及清屏;

3、在LCD 屏上显示“欢迎使用”。

五、实验方法及步骤:

1、接线:

实验系统底板128x64 液晶模块的液晶数据口信号接线说明: J_12864-4(DB0)-----IO065(PA0)J_12864-5(DB1)-----IO066(PA1)J_12864-6(DB2)-----IO067(PA2)J_12864-7(DB3)-----IO068(PA3)J_12864-8(DB4)-----IO069(PA4)J_12864-9(DB5)----IO070(PA5)J_12864-10(DB6)---IO071(PA6)J_12864-11(DB7)---IO072(PA7)实验系统底板128x64 液晶模块的液晶控制口信号接线说明: J_12864-1(D/I)-----IO011(PK6)J_12864-2(R/W)-----IO013(PK5)J_12864-3(E)-------IO014(PK4)J_12864-12(CS1)----IO015(PK3)J_12864-13(CS2)----IO016(PK2)实验1.7 蜂鸣器驱动

一、实验目的:

了解蜂鸣器的使用和驱动方法。

二、实验内容:

利用GPIO 端口中的某一位驱动蜂鸣器。

三、实验电路图:

四、实验说明:

1、相应端口寄存器初始化;

2、送数据到相应I/O 口,间断驱动蜂鸣器。

五、实验方法及步骤:

1、接线说明:

实验系统底板的蜂鸣器控制模块区域的蜂鸣器控制端接线说明: J_ Beep(Beep)----IO061(PE3)

2、运行程序,观察现象。

六、心得体会:

通过本次实验,熟悉了实验板中蜂鸣器工作原理,掌握编程控制蜂鸣器播 放音乐。掌握单片机编程控制蜂鸣器发出不同频率声音的方法;虽然在本次试验中遇到了的问题,都在同学和老师的帮助下解决了,同时还进一步了解了单片机方面的有关知识。

实验1.8 继电器驱动

一、实验目的:

了解继电器的使用和驱动方法。

二、实验内容:

利用GPIO 端口中的某一位驱动蜂鸣器。

三、实验电路图:

四、实验说明:

1、相应端口寄存器初始化;

2、送数据到相应I/O 口,驱动继电器间歇动作。

五、实验方法及步骤:

1、接线说明:

实验系统底板的继电器控制模块的继电器控制端接线说明: J_Relay(Relay)----IO061(PE3)使用跳线帽短接实验系统底板继电器控制模块JP_LED 处的跳线。使用跳线帽短接实验系统底板继电器控制模块JP_Power 处的跳线。

2、运行程序,观察现象。

六、心得体会:

通过这八天的实验和八次实验,让我学会了很多新的知识。能够利用该软件熟练地编译下载程序。通过这几天的学习,让我对飞思卡尔试验箱也有了一定的了解,而且这八个实验做下来也感觉很有意思,每次对代码进行一些小的改动出来效果以后,都感觉挺有趣的。不过在这几天的学习,我也发现了一些问题,那就是才编程方面的缺陷,有些以前的知识都已经忘了,有些程序都看不太懂了,我觉得以后我应该好好复习一下,把以前学的知识都拿回来。

第二篇:飞思卡尔实习报告

中南大学

Central South University

飞思卡尔实验报告

学生姓名:应晓伟 指导老师:李志民 学院:信息科学与工程学院 专业班级:自动化1106班 完成日期:2013年9月12日

目录

一、实验目的………………………………………………………..2

二、实验内容………………………………………………………..2

三、实验电路图…………………………………………………….3

四、实验说明………………………………………………………..6

五、实验方法及步骤…………………………………………....7

六、实验总结……………………………………………………….10

一、实习目的

1、熟悉飞思卡尔试验箱的操作。

2、掌握codewarrierr软件的使用方法。

3、初步了解如何使用c语言编写飞思卡尔单片机程序。

二、实验内容

实验1.1

流水灯

利用PORTB 口的低4 位驱动4 位LED 灯,实现4 位LED 灯明灯流水操作。

实验1.2

拨码开关控LED 灯

读取PORTB 口高4 位连接的4 位拨码开关状态,将读取到的拨码开关状态用 PORTB 口低4 位连接的LED 灯显示。

实验1.3

动态数码管显示

系统上电后首先单8 左移显示,然后0-7 顺次左移显示,紧接着7-0 顺次 右移显示,再 0-7 全部闪烁显示,并重复以上动作。

实验1.4 矩阵键盘

编写键盘扫描程序,当矩阵键盘模块有按键按下时,读取键值,并利用数码 管显示键值。系统上电后8 位数码管以5-4-3-2-1 倒计数显示,待显示值为1 后,数码管清除显示,此时按下矩阵键盘按键,数码管显示对应键值。

实验1.5 LCD(0802)显示

利用LCD(0802)液晶显示器,显示两排数字。

实验1.6 LCD(12864)显示

使用OCM12864-2 液晶显示器,显示汉字。

实验1.7 蜂鸣器驱动

利用GPIO 端口中的某一位驱动蜂鸣器。

实验1.8 继电器驱动

利用GPIO 端口中的某一位驱动继电器。

三、实验电路图

实验1.1 流水灯

实验1.2 拨码开关控LED 灯

实验1.3 动态数码管显示

实验1.4 矩阵键盘

实验1.5 LCD(0802)显示

实验1.6 LCD(12864)显示

实验1.7 蜂鸣器驱动

实验1.8 继电器驱动

四、实验说明

实验1.1 流水灯

1、PORTB 口寄存器初始化。

2、送数据给PORTB 口显示,并延时一定时间。

3、改变数据,重复2。

实验1.2 拨码开关控LED 灯

1、PORTB 口寄存器初始化;

2、读取PORTB 数据,将数据右移4 位;送PORTB 口显示;

3、重复2。

实验1.3 动态数码管显示

1、GPIO 相关寄存器初始化;

2、选中数码管第一位,送段码显示第一个数据;

3、移动位码,送下个数据的段码,以此类推,实现移位显示与动态显示。

实验1.4 矩阵键盘

1、GPIO 相关寄存器的初始化。2、8 位数码管以5-4-3-2-1 倒计数显示。

3、扫描按键,键值送数码管显示。

4、重复操作3。

实验1.5 LCD(0802)显示

1、驱动LCD(0802)GPIO 口相关寄存器初始化;

2、LCD(0802)初始化;

3、在LCD 屏上分行显示“01234567”和“ABCDEFGH”。

实验1.6 LCD(12864)显示

1、驱动LCD(12864)的GPIO 相关寄存器初始化;

2、LCD(12864)控制器的初始化,延时及清屏;

3、在LCD 屏上显示“欢迎使用”。

实验1.7 蜂鸣器驱动

1、相应端口寄存器初始化;

2、送数据到相应I/O 口,间断驱动蜂鸣器。

实验1.8 继电器驱动

1、相应端口寄存器初始化;

2、送数据到相应I/O 口,驱动继电器间歇动作。

五、实验步骤与方法

实验1.1 流水灯

1、接线说明:

本实验无需外部接线,只需要使用跳线帽短接核心板上JP_1 处标号为PB0~ PB3 的跳线即可。

2、运行程序,观察LED 灯亮灭情况。

实验1.2 拨码开关控LED 灯

1、接线说明:

本实验无需外部接线,只需要使用跳线帽短接核心板上JP_1 处标号为PB0~ PB7 的跳线即可。

2、运行程序,改变拨码开关的状态,观察LED 灯的显示变化。

实验1.3 动态数码管显示

实验系统底板的8 位8 段数码管模块的段码接线说明: J_SEG-1(A)----IO065(PA0)J_SEG-2(B)----IO066(PA1)J_SEG-3(C)----IO067(PA2)J_SEG-4(D)----IO068(PA3)J_SEG-5(E)----IO069(PA4)J_SEG-6(F)----IO070(PA5)J_SEG-7(G)----IO071(PA6)J_SEG-8(DP)----IO072(PA7)* 注1:J_SEG-1 表示插座的标识名称,后面括号中的A 表示该引脚的作用,后文均使用该方法描述,就不再重复说明了。

*注2:IO065 后括号中的PA0 表示当HF-ExBoard 实验系统使用 HF-MC9S12XS128EVB-A 核心板时,实验系统底板 的IO065 接口对应 MC9S12XS128EVB 的PA0,后文均使用该方法描述,就不再重复说明了。8 位8 段数码管模块的位码接线说明: J_DIG-1(COM0)----IO046(PH7)J_DIG-2(COM1)----IO045(PH6)J_DIG-3(COM2)----IO048(PH5)J_DIG-4(COM3)----IO047(PH4)J_DIG-5(COM4)----IO050(PH3)J_DIG-6(COM5)----IO049(PH2)J_DIG-7(COM6)----IO052(PH1)J_DIG-8(COM7)----IO051(PH0)*注3:IO051(PH7)对应的COM0 为8 位数码管中最左边第一位。

2、运行程序,观察数码管的显示。

实验1.4 矩阵键盘

实验系统底板的4x4 矩阵键盘接线说明: J_Key-1(R0)-----IO092(PS0)J_Key-2(R1)-----IO091(PS1)J_Key-3(R2)-----IO094(PS2)J_Key-4(R3)-----IO093(PS3)J_Key-5(C0)-----IO096(PS4)J_Key-6(C1)-----IO095(PS5)J_Key-7(C2)-----IO098(PS6)J_Key-8(C3)-----IO097(PS7)实验系统底板的8 位8 段数码管模块的段码接线说明: J_SEG-1(A)----IO065(PA0)J_SEG-2(B)----IO066(PA1)J_SEG-3(C)----IO067(PA2)J_SEG-4(D)----IO068(PA3)J_SEG-5(E)----IO069(PA4)J_SEG-6(F)----IO070(PA5)J_SEG-7(G)----IO071(PA6)J_SEG-8(DP)----IO072(PA7)8 位8 段数码管模块的位码接线说明: J_DIG-1(COM0)----IO046(PH7)J_DIG-2(COM1)----IO045(PH6)J_DIG-3(COM2)----IO048(PH5)J_DIG-4(COM3)----IO047(PH4)J_DIG-5(COM4)----IO050(PH3)J_DIG-6(COM5)----IO049(PH2)J_DIG-7(COM6)----IO052(PH1)J_DIG-8(COM7)----IO051(PH0)

2、运行程序,观察数码管显示变化。按下按键,观察数码管显示变化。

实验1.5 LCD(0802)显示

实验系统底板0802 液晶模块的LCD 数据口信号接线说明: J_0802B_1-5(DB0)----IO065(PA0)J_0802B_1-6(DB1)----IO066(PA1)J_0802B_1-7(DB2)----IO067(PA2)J_0802B_1-8(DB3)----IO068(PA3)J_0802B_1-9(DB4)----IO069(PA4)J_0802B_1-10(DB5)----IO070(PA5)J_0802B_1-11(DB6)----IO071(PA6)J_0802B_1-12(DB7)----IO072(PA7)实验系统底板0802 液晶模块的LCD 控制口信号接线说明: J_0802B_1-1(RS)-----IO013(PK5)J_0802B_1-2(R/W)----IO014(PK4)J_0802B_1-3(EN)-----IO015(PK3)

2、运行程序,观察实验现象。

实验1.6 LCD(12864)显示 实验系统底板128x64 液晶模块的液晶数据口信号接线说明: J_12864-4(DB0)-----IO065(PA0)J_12864-5(DB1)-----IO066(PA1)J_12864-6(DB2)-----IO067(PA2)J_12864-7(DB3)-----IO068(PA3)J_12864-8(DB4)-----IO069(PA4)J_12864-9(DB5)----IO070(PA5)J_12864-10(DB6)---IO071(PA6)J_12864-11(DB7)---IO072(PA7)实验系统底板128x64 液晶模块的液晶控制口信号接线说明: J_12864-1(D/I)-----IO011(PK6)J_12864-2(R/W)-----IO013(PK5)J_12864-3(E)-------IO014(PK4)J_12864-12(CS1)----IO015(PK3)J_12864-13(CS2)----IO016(PK2)注:实验指导书提供的接线说明根据金鹏OCM12864-2 型液晶编写,如果 使用其它型号的12864 液晶模块,可能液晶模块的引脚定义有差异,只需要依据

具体使用的液晶引脚修改接线即可完成该实验。

2、运行程序,观察实验现象。

实验1.7 蜂鸣器驱动

实验系统底板的蜂鸣器控制模块区域的蜂鸣器控制端接线说明: J_ Beep(Beep)----IO061(PE3)

2、运行程序,观察现象。

实验1.8 继电器驱动

实验系统底板的继电器控制模块的继电器控制端接线说明: J_Relay(Relay)----IO061(PE3)使用跳线帽短接实验系统底板继电器控制模块JP_LED 处的跳线。使用跳线帽短接实验系统底板继电器控制模块JP_Power 处的跳线。

2、运行程序,观察现象。

六、实验总结

通过这几天的上机实验,让我学会了很多新的知识。基本掌握了codewarrierr的使用方法,能够利用该软件熟练地编译下载程序。通过这几天的学习,让我对飞思卡尔试验箱也有了一定的了解,而且这八个实验做下来也感觉很有意思,每次对代码进行一些小的改动出来效果以后,都感觉挺有趣的。不过在这几天的学习,我也发现了一些问题,那就是才编程方面的缺陷,有些以前的知识都已经忘了,有些程序都看不太懂了,我觉得以后我应该好好复习一下,把以前学的知识都拿回来。

第三篇:单片机(飞思卡尔)课程设计报告

2011年 6 月

1设计要求:

LCD的第一行显示运算式,第二行显示运算结果。比如要计算机12+34,在键盘上按下相应键后,LCD的第一行显示“12+34”,按下“=”号后,LCD的第二行显示“=46”。其他功能参考普通计算器。

扩展功能:负数、小数运算、复合运算。连续运算、2进制、8进制运算。

亦可直接在LCD上显示一个计算器,用触摸屏操作。

2设计思路

在LCD上显示一个与键盘功能相同的计算器,可实现用键盘、触摸屏混合操作。

1、在LCD显示屏上按下某一个符号或者在键盘上某一个按键符号时,将相应字符存入数组中

并显示在LCD上。

2按下“=”就运算处理并在第二行显示计算结果。

3、按下“C”就进行退格操作。

4、按下“=”后显示结果,并且能连续运算,其中,将操作数和操作码全部显示在第一行,第二行显示当前计算结果。

5、当出现连续按两个操作符、按等号前一个字符为操作符、最开始按下的不是操作数等非法输

入时,自动在LCD屏幕上报错并实现清屏重启计算器。

3设计步骤

1、添加基本计算器的+、-、*、/ 四则运算和退格功能;

2、在1的基础上实现复合运算和连续操作;

3、在LCD上通过调用函数在下方画出计算器的按键图画并实现与键盘同等的功能;

4、综合调试并进行优化。

4程序流程(含流程图及详细步骤解释)

详细步骤解释

程序运行时即进行初始化,在LCD显示屏上显示计算器界面。接着判断是否有键盘按键按下或者有触屏,没有就继续扫描判断,有则将按下的键所对应的字符存入数组savedata。在此之中,也在判断键入的字符是否是退格键,如果是则将上一个字符清除掉。当检测到字符“=”时,将savedata数组中所存储的字符分离,其中,数值存在操作数数组op1中,操作符存在操作符数组op2中,然后进行运算。运算开始时,先扫描op2数组,当检测到操作符则将op1数组中对应操作符前后的两个操作数进行运算(先乘除后加减),结果放在两个操作数的前一个的位置,将op1和op2数组向前移动一个位置以覆盖已经运算过的操作数和操作符。当继续进行连续运算时,将字符继续存到savedata数组后面,否则清除op1的值,将字符存到savedata数组第一个开始的位置。

程序中考虑了各种非法输入的情况:当连续输入两个操作符时、当按“=”时检测到前一个字符是操作符时、当程序第一个字符不是操作数时,都报错,自动清屏并重启计算器。

按照实际中计算器的原则,当按下“=”后,退格键不能清除,比如1+2=3;不能将“2”、“+”、“1”退格。如果是连续运算,继续按下“-3+8/2”时,退格键有效,能清“-3+8/2”中的字符。清除后继续连续运算。

5操作步骤及方法

下载完程序后:

1、普通计算:例如计算123+456,直接在显示屏上连续触发“123+456”,然后触“=” 就可以在第二行显示=579;

2、连续运算。例如先计算123+456,结果为579,此时再按下“+” “1” 先在第一行显示123+456+1,在第二行就会显示=580,再按下“-” “9”,第一行显示123+456+1-9,在第二行就会显示=571,依次类推。

3、当输入的字符是非法输入时,在LCD第三行显示 illeagle enter!然后自动清屏重启计算器。

6设计过程遇到的问题、原因及解决方法

第四篇:飞思卡尔直立车经验总结

飞思卡尔直立车经验总结

1.车模运动任务分解:车模平衡、车模速度、车模方向。其中,车模的平衡是通过电机的正反向运动实现的;车模的速度是通过控制电机的转速(实质是通过输出不同占空比的PWM波来实现的);车模的方向控制则是通过电机的转动差速来实现的。其中,车模的直立控制是关键,车模的速度控制在小车上表现为调节自身车模倾角达到以给定速度运行的目的。归根结底,车模的三种控制最终都要回归到通过调节PWM波分别控制两个电机的转速来实现。

2.陀螺仪和加速度计的安装问题:两传感器最好安装在车模中心或偏下位置,稍微偏上或偏一侧也可以,偏一侧的话会使方向陀螺仪在左右转向时输出有差异,造成不对称的输出,对于车模的方向调节会有一定的影响。另外需要注意:陀螺仪输出的模拟电压值很小,一般需要放大10倍左右,而加速度计的输出相对陀螺仪而言较大,并且也符合AD转换的模拟电压的范围,无需再放大。由于购买的陀螺仪和加速度计模块都是厂家集成处理好的,外接的放大电路已经连接好了,故只需买现成的模块使用就行了,无需再自个搭建陀螺仪的外接放大电路了。

3.陀螺仪和加速度计的功能:陀螺仪是用来测量车模的角加速度的,其输出是与车模前倾或后仰的角速度成正比的模拟电压值。加速度计是用来测量车模倾角的,其输出是与车模倾斜角度成正比的模拟电压值。注意,两个传感器的输出的模拟电压值都是正值,如果使用12位的AD转换精度,那么它们输出的电压值都在0~4095之间,且都是整数。

4.车模的三种控制之间的关系:由于车模的直立控制是关键,因此,在控制其他两个量时,应尽量减少对车模直立控制的干扰。三种控制最终都是通过控制车模的两个电机来实现,故它们之间存在着一定的联系。在分析一种控制时,可以先假设另外两种控制都以达到平衡。从控制的角度看,车模作为一个控制对象,其控制输入量是两个电机的转动速度。

5.传感器极性问题:传感器安装在车模的前面或后面(在同一面正着按或反着按)时车模前倾或后仰对应的模拟电压值可能会相反,这就是传感器的极性问题。比如在车模的转向控制中使用的车模转向陀螺仪的Z轴朝上与朝下,对应的车模转向角速度的极性恰相反,从而影响车模方向控制微分控制量与比例控制量之间的加减关系。测量车模倾角的陀螺仪应该水平安装(必须注意),而测量车模转向的陀螺仪则应该竖直安装。车模在转弯时既有平动又有转动,如果陀螺仪安装的不水平,就会在Z轴方向存在一个分量,该分量可能正也可能负,从而使车模控制仿佛感觉是在上下坡,引起车模的加减速运动。

6.电机控制的注意事项:对电机的控制要有一个过渡阶段,不能一下子使其电压从正变为负,否则输出电流变化太大对电机不利。另外也要注意电机的死区电压(在0的正负附近区域内)。电机控制中的PWM波的占空比值总是正的,最小为0.7.软件部分说明:由于牵涉到车模的直立控制,算法的实现对时间要求较为苛刻,可用定时中断实现相应的控制,但应注意每一步的用时都不应超过定时周期的最小划分时间(如果是1ms定时,就不能超过1ms)。为了达到平滑控制的目的,可以将速度控制划分在20*5的控制周期内来实现。算法的优化有时候也很重要,注意编程时的灵活性。

8.传感器采集信息的处理:模拟量的采集的处理方法是多次采集求均值作为最终有效值,有时还要舍去前面刚上电时的几个坏值。对采集回来的模拟电压值要做单位的统一,故需要经过一定的系数的乘除的转换才行。

9.直立控制中涉及到的几个待定参数:车模的角度补偿时间常数Tz(Tg)、陀螺仪比例系数Rgyro、加速度计比例系数Rz、直立陀螺仪的零偏值GyroZeroOffset_stand、方向陀螺仪的零偏值GyroZeroOffset_direction、加速度计的零偏值AccZeroOffset、加速度计的最大值ACC_MAX、最小值ACC_MIN、角度PID参数的P值和D值、速度PID参数的P值和I值、方向PID参数的P值和D值以及电机的死区电压(也可以不管)等。建议以上各参数尽量都使用动态测量值,比如零偏值可以采用在当前环境下实时采集的值作为有效零偏值,这比预先在一种环境下采集好,到另一种环境下使用效果好,因为可以有效地抑制陀螺仪的温漂所带来的影响。

10.角度补偿时间常数Tz的整定:该参数决定了抑制陀螺仪积分漂移的能力,也决定了车模速度控制中角度跟踪的速度,同时决定了抑制重力加速度中干扰信号的能力。该参数的调整会同时影响到角度和速度的控制,其中对角度的影响较为显著。一般取Tz在1~4之间的某个数值(可以是小数),最好取得稍微大一点,开始时可以取3~4秒左右。如果陀螺仪零点漂移很小,可以适当增加该补偿时间常数;如果陀螺仪零点漂移大,那么可以逐步减小这个补偿时间常数。在减小时间补偿常数时,会发现车模会出现来回摆动的现象。这个现象和车模角度控制时,比例值过大时产生的车模摆动现象一致。故此时可以适当增加角度控制参数中微分参数D来抑制车模摆动的现象。其他参数的整定见官方方案及视频。

11.程序中变量的管理:全局变量的定义形式为:g_fGyroscopeAngleSpeed(陀螺仪角速度变量),打头的g表示global,全局的意思;下划线后面的f表示float,单精度浮点型数据,后面的即为要定义的变量,使用英文定义,简单、易读。其中f可以换成c:char,n:int,lf:double,ln:long int。12.关于滤波的研究:传感器采集回来的模拟电压值总会掺杂很多干扰信号,为了滤除这些干扰必须进行合理的滤波处理。滤波可以采用软件滤波和硬件滤波。两种滤波方法各有优劣,但我们一般采用软件滤波。软件滤波常用的有互补滤波和卡尔曼滤波。互补滤波的效果不及卡尔曼滤波,但对于车模的直立控制已经足够,为取得更好地滤波效果可以对卡尔曼滤波进行研究。看懂理论不难,关键是如何用程序去实现,这才是关键。

13.角度和速度PID参数正定的说明:角度调节:先调P后调D,P值过大,车模震荡,此时增加D值,D过大,车模高频抖动,此时再增加P值。P参数相当于倒立摆的回复力,这个参数必须大于重力加速度g的等效数值时车模才能够保持直立。微分参数D相当于阻尼力,它会使车模尽快恢复稳定,保持静止。速度调节:先调I后调P,I参数可以加快调速速度,过大则会造成车模的震荡,车模来回摆动,此时增加P值,P过大车模前后震荡。P参数的作用是抑制速度调节过程中的过冲,该参数过大会反过来削弱角度调节的P参数的作用。车模的各个参数分别整定完毕后,在车模进入赛道运行时有可能还要调节个别参数以使车模运行的效果更佳。

14.硬件部分介绍:硬件部分主要分为三个模块:电源模块、驱动模块、控制模块(主板部分<最小系统>)。设计电路时一定要考虑共地问题,设计的电路板必须要做到所有的元器件的参考地是同一个地。最好为每一个模块设计一个开关,并配上指示灯。电路结构尽量精巧紧凑,充分利用空间。尽量减少杜邦线的使用,避免车模连线的复杂性。 感悟:做一辆精致漂亮的小车是一门艺术,所以一开始就要为它的结构布局做好考虑,美的东西自己也

会喜欢,做工粗糙、瑕疵就会影响小车的整体美感,这无形中也影响到了自己对待所做小车的态度。车模的制作

过程喜悦与失落交替,但每个问题的解决都在证明着你的进步,你在收获。做自己喜欢的,喜欢自己做的。

奋斗吧,骚年!

第五篇:飞思卡尔智能车总结

关于飞思卡尔智能车寻迹

飞思卡尔智能车竞赛是飞思卡尔公司赞助的由全国本科院校共同参与的一项大学生科技竞赛。今年安徽省作为第一届省级赛区,很荣幸我们专科院校也有机会共同参与。因为专业知识的匹配我们系在我们专业选拔了一些同学,我很高兴能和我的队员们并肩作战。由于我们学校是第一参加一点经验都没有,指导老师也是和我们一步步探索。我们这次使用B型车做的是光电寻迹。根据需要老师把这次任务划分为几个模块(寻迹模块、电源模块、驱动模块、测速模块)我的任务是做好寻迹模块。刚开始对于黑白寻迹,我唯一的感觉就是“神奇”。后来查阅资料,通过老师的讲解,知道了它的寻迹原理。所谓的寻迹就是根据黑白颜色的反光程度不一样(白色全部反射,黑色全部吸收),来判别黑白线。

对于我们来说没有学过传感器的知识,在这方面还是有点含糊,所以自己专门花了一段时间来学习传感器,通过自己的学习懂得了传感器在电路中的作用。之后的一段时间就是对材料的选取,市场上的光电管品类繁多,每个学校用的也不一样,我们要的是一款适合自己车的光电管,刚开始我在网上找了一些电路图,并在南京买进了一些光电管,焊接好电路候发现跟本没有达到自己想要的那种结果,之前一直以为是光电管的原因,后来又把光电发射与接受一体管改上去还是不行。那段时间一直耗在那个电路上停滞不前,一直想不通是什么原因。也许是灵感的,也许是出于好玩我改变了和接收管串联的电阻阻值(把

来的10K

100K)得到了意想不到的效果——在不加套管的情况下接收距离提高到了十几厘米。但是对于这样的结果还是有些不理想因为为防止光电管之间互相的影响每个光电管得加上套管,在这种情况下我们买的光电管达不到要求。通过上网查询,翻阅资料,和一次次的实验我们最后选用了合肥一家的光电管(型号)。在这里我想说的是别人的经验可以做参考但是不一定能做为自己的,就像我前面选择光电管的电路图,那也许对有些场合适用。作为探索阶段一步步的实验永远是最关键的。

选好光电管之后就是焊接电路,通过借鉴其他学校的经验,我们的初定方案是用14对光电管。由于条件的限制我们采用的是普通的面包板焊接电路,普通的板子最大的缺点就是长度和宽度不够,而且布局也不自由,通过决定我们用两块板子拼接在一起,多用外接电路线来搭接电路。因为我们学校提倡的是动手能力,焊接这样普通的板子我们每个同学都能很好的完成,唯一的区别就是走线比较多那就要看每个人设计和审美观。

把板子焊好后我制作的硬件就告一段落。

下载飞思卡尔实验报告word格式文档
下载飞思卡尔实验报告.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    飞思卡尔总结—电磁组(★)

    飞思卡尔赛后心得 通过近四个月的努力学习和制作,我们组的作品最后在第六届全国大学生“飞思卡尔”杯华东赛区取得电磁组三等奖的成绩,虽为未能取得二等奖以上而遗憾,但我们从......

    飞思卡尔智能车获奖感言

    脚踏实地 艰苦风斗 我有幸能够参加 2011年全国点学生飞思卡尔智能车竞赛,在这次竞赛中我们学到了很多,有专业方面的知识,比如单片机,各类传感器,不同芯片间的通信等等,也学会了一......

    飞思卡尔MC56F827xx系列数字信号控制器(合集)

    飞思卡尔MC56F827xx系列数字信号控制器飞思卡尔半导体日前推出MC56F827xx系列数字信号控制器,它具有同类最佳的性能和功效。这一全新系列旨在应对从模拟到数字技术日益增长的......

    飞思卡尔智能车邀请赛毕业论文

    “飞思卡尔”杯全国大学生智能车邀请赛 作 者专业班级学 号成 绩指导教师——技术报告 中国·北京 二○ 年 月 1 目录 目录 ................................................

    飞思卡尔智能车比赛个人经验总结

    先静下心来看几篇技术报告,可以是几个人一起看,边看边讨论,大致了解智能车制作的过程及所要完成的任务。 看完报告之后,对智能车也有了大概的了解,其实总结起来,要完成的任务也很......

    飞思卡尔智能车大赛总结(精选五篇)

    飞思卡尔智能车大赛总结 刚进入大学半年,我就有幸参加飞思卡尔智能车比赛。说实话,刚报名参加这项赛事的时候我只是抱着好奇的心态去参加,可是真的进入了这个团队的时候,我发现......

    第十届飞思卡尔参赛题目及相关要求(小编推荐)

    第十届全国大学生飞思卡尔杯智能汽车大赛校内选拔赛 参赛题目及相关要求 1、题目A低频功率放大器 设计并制作低频功率放大器。其原理示意图如下: 要求: 1)基本要求 在放大通道......

    飞思卡尔杯全国大学生智能车竞赛

    飞思卡尔杯全国大学生智能车竞赛 全国大学生“飞思卡尔”杯智能汽车竞赛起源于韩国,是韩国汉阳大学汽车控制实验室在飞思卡尔半导体公司资助下举办的以HCS12单片机为核心的大......