当前位置:文档之家› 基于飞思卡尔Cortex-M0+微控制器的计步器设计

基于飞思卡尔Cortex-M0+微控制器的计步器设计

基于飞思卡尔Cortex-M0+微控制器的计步器设计
基于飞思卡尔Cortex-M0+微控制器的计步器设计

2013届毕业生

目次

1 概述 (1)

1.1 背景与意义 (1)

1.2 国内外发展现状 (1)

1.3 课题介绍 (2)

2 课题方案论证 (3)

2.1 总体设计框图 (3)

2.2 功能描述 (3)

2.3 微控制器的选择 (4)

2.4 传感器的选择 (6)

2.5 显示器的选择 (7)

2.6 输入设备的选择 (8)

2.7 存储器的选择 (10)

2.8 电源的选择 (10)

2.9 关键指标 (10)

2.10 可行性分析 (11)

3 系统硬件设计 (15)

3.1 硬件整体设计 (15)

3.2 各模块设计与分析 (16)

3.3 小结 (22)

4 系统软件设计 (24)

4.1 软件整体设计 (24)

4.2 各模块设计与分析 (25)

4.3 小结 (34)

5 系统测试 (36)

5.1 滤波性能测试 (36)

5.2 计步器准确度测试 (37)

5.3 功耗测试 (38)

5.4 小结 (38)

总结 (39)

致谢 (40)

参考文献 (41)

附录A 计步器原理图图纸 (42)

附录B 计步器部分程序 (44)

1 概述

1.1 背景与意义

随着生活水平的提高,人们越来越注重自己的身体健康。与此同时,科学技术的迅猛发展也催生了“可穿戴健康跟踪设备”的问世。研究如何通过“便携式健康跟踪器”改善人们的健康状况,将对人类的未来产生深远的影响。

计步器作为一款可穿戴健康跟踪设备,可以记录人的行走步数,反馈给用户准确的运动数据,帮助佩戴者量化锻炼强度、制定合理的健身方案,提醒佩戴者适当调节运动量,激励佩戴者坚持锻炼。

计步器起源于奶牛养殖业,后经外观和测量精度的改善,逐渐推广到医疗器械上面,并向个人保健养生方面延伸,曾一度引发了人们的锻炼热潮。随着人口老龄化时代的到来,计步器等相关产品的需求量持续增加,市场持续扩大。由此可见,计步器仍具有巨大的商业前景和研究价值。

1.2 国内外发展现状

早期的计步器设计采用机械一维振动传感器,利用机械球的来回运动来控制触点的通断,从而实现人体运动的检测,但是这种传感器的固有缺点是精度不高,灵敏度不可调。

近年来,随着三轴加速度传感器的出现,计步器得到了迅速地发展,其精确度也越来越高。三轴加速度传感器能够检测人运动时X、Y、Z轴三个方向的加速度分量,灵敏度较高。同时三轴加速度传感器的超低功耗和高集成度也使得计步器更加轻便。

目前,市面上计步器的基本功能有时间显示、跑表功能、步数检测、距离计算、能量消耗计算及个性化步幅设计。此外还有FM收音机、行走时间、闹钟提醒功能、步距设置、10000步提示、速度显示、能量消耗计算、心率检测、数据浏览等特色功能。市场上,国外知名品牌主要有:acumen(安康盟)、casio(卡西欧)、欧姆龙品牌等,而国产知名品牌有Green Forest/绿森林(武汉产)多功能计步器和康都牌计步器(广东产),价格在168-398元不等。

整体上,计步器正朝着功能多元化、体积小型化、寿命长、精度高,价格低等方面发展。

1.3 课题介绍

本课题的设计要求为:所设计的计步器须使用寿命长、检测精度高、系统功耗低、人机界面操作友好,能满足用户的日常需求。本课题设计的计步器的基本功能是计步,除此之外,还有行走距离换算、能量消耗计算、提醒是否满足日常运动需求等增值功能,并通过USB将采集的数据传送到上位机。拓展功能为对温度、湿度、气压等环境变量的检测。整个系统的设计理念为高精度,低功耗。

本课题选用了功耗极低、处理数据能力较强的基于Cortex-M0+内核的32位微控制器MKL25Z作为主控芯片。计步传感器采用三轴加速度传感器MMA8451Q,分辨率更高、反应速度更快、功耗更低。同时,在低功耗的基础上,为了改善用户界面,在输出设备中,我们选用了一块84×48分辨率的液晶屏作为显示器;在输入设备中,我们采用MKL25Z内置的TSI模块设计了5个电容触摸按键作为输入按键。

2 课题方案论证

2.1 总体设计框图

系统总体设计框图如图2.1所示。

图2.1 系统总体设计框图

2.2 功能描述

本设计利用三轴加速度传感器获取佩戴者运动时身体在三个轴的加速度分量,通过滤波算法和计步算法分析获取步数,配合佩戴者的身高、体重、步距等信息,换算得到行走距离和消耗的能量,并将相关信息显示在液晶屏上。利用本设计的电容触摸按键可快捷地控制屏幕显示相应信息。温湿度传感器采集到环境的温湿度参数后也可将环境的温湿度变化显示在液晶屏上。当佩戴者的特征信息和运动数据确定后,通过电容触摸按键的相关操作将其储存到微控制器的内部Flash中,保证信息在系统掉电后不丢失。用户也可以通过USB数据线将计步器连接至电脑终端,将记录的信息上传至上位机显示。

此外,在开发调试阶段,为实现对计步器的远程监控,本设计又另外增加了无线模块,将佩戴者X、Y、Z三个方向的加速度分量实时传送至上位机显示,可视化效果明显。为配合上述功能,本设计运用C#语言编写了一个计步器专用的上位机软件。

2.3 微控制器的选择

2.3.1 方案一:采用8位微控制器

8位微控制器的典型代表是8051微控制器。8051微控制器是一款入门级微控制器,它内核简易,应用广泛,资料齐全,非常适合入门学习。同时它的价格低廉,是一款适用于追求低成本,不追求实时性的电子产品。在我国很长一段时间内,8051微控制器占据了小型家电市场,其中的原因正是超低的成本。

2.3.2 方案二:采用16位微控制器

MSP430微控制器是一款以低功耗闻名的16位微控制器,有许多低功耗的工作模式,采用了精简指令集(RISC)结构,具有丰富的寻址方式,高效率的查表处理指令。这些特点都保证了用它可以编写出高效率的源程序。

2.3.3 方案三:采用32位微控制器

Cortex-M0+内核基于ARMv6架构,支持Thumb/Thumb-2子集ISA,单核心,采用低成本的90nmLP工艺制造,核心面积仅0.04mm2,每MHz单位频率消耗的电流、功耗分别有9μA、11μW,是现今其它8/16位微控制器的大约三分之一,而性能上又比它们高出很多。

飞思卡尔的Kinetis L系列微控制器基于ARM Cortex-M0+内核,是目前市场上能效极高的32位微控制器,每微安数据吞吐量居业内领先水平;超低功耗模式多种灵活的功率模式,适合不同的应用情形,可最大限度延长电池寿命;多种技术优化功耗,包括90nm薄膜存储(TFS)技术、时钟和电源门控技术,以及带有位处理引擎、外围交叉桥和零等待闪存控制器的高效平台等;深度睡眠模式下,可在不唤醒内核的情况下进行智能决策并处理数据。

2.3.4 方案对比

为选择一款最适合本课题的微控制器,我们列出了上述三种方案的微控制器特性对比表,如表2.1和表2.2所示。

表2.1 微控制器特性对比表1

表2.2 微控制器特性对比表2

通过两表的对比可知,8051微控制器的片上资源少、功耗高,因此它很难充当复杂系统的微控制器,而只适用于低性能的产品开发。MSP430系列的微控制器比8051系列微控制器的功耗低很多,但是处理速度不及Cortex-M0+微控制器,而且Cortex-M0+微控制器的功耗更低一些,价格上也有一定优势。此外,我们也参考了目前市面上比较热门的微控制器,如Cortex-M3和Cortex-M4系列微控制器,考虑到它们功耗稍和成本稍高、内部资源无TSI,暂不采用。

综上所述,本设计选择基于Cortex-M0+内核的Kinetis L系列MCU,具体型号选择MKL25Z128VLK4。

2.4 传感器的选择

2.4.1 计步传感器的选择

一共有三种方案,第一种是选择机械式振动传感器,第二种是选择加速度传感器,第三种选择压力传感器。此外还有GPS定位等方案,在此不再考虑。

机械式振动传感器内部有一个平衡锤,当传感器振动时,平衡被破坏,如此会造成上下触点的通断。佩戴者在跑步过程中,身体起伏重心高低产生变化,计步器内部的振动传感器就会将这一变化转换为数字量送至控制单元,从而获得佩戴者的运动信息。机械式振动传感器原理简单、精度和成本低,适用于振幅较大的场合。

三轴加速度传感器分为压阻式,压电式和电容式。加速度的变化能够改变电阻、电压或者电容的变化,从而获得空间位置三个垂直方向的加速度分量。佩戴者在跑步过程中,身体上下起伏,计步器内部的微控制器读取三轴加速度传感器的三组模拟量,通过计步算法分析,获取运动信息。三轴加速度传感器具有精度高、反应速度快、通讯协议简单可靠等特点,广泛使用于汽车、数码产品、航天设备等领域。

压力传感器是将压力的变化转化为电压的变化。利用这一特性,可将压力传感器内置在鞋的底部,当用户在行进过程中,压力传感器受到的压力不同(抬脚时脚对鞋无压力,放脚时脚对鞋有持续压力),这样,计步器的主控单元读取压力值,经过计步算法即可判断运动状态。

为选择一款最适合本课题的计步传感器,表2.3列出了三种传感器的特性对比表。

表2.3 计步传感器特性对比表

目前内置于鞋底的压力传感器属于柔性传感器。在2008年北京奥运会上曾将它用于检测运动员的蹬地力、蹬地时间、足底接触形状、运动速度、离心力等信息,以便指导运动员取得更好的成绩。这种传感器价格昂贵,设计难度较大,不适合本设计。机械设振动传感器应用于早期的计步器,测量精度低,误判、漏判严重,不符合本课题高精度的设计原则。随着加速度传感器的工艺逐渐成熟,测量精度也逐

渐提高,功耗已达到微安级别,随着市场的大量使用,价格也降了下来,非常符合本课题的设计理念。表2.4列出了不同型号的三轴加速度传感器的特性。

表2.4 加速度传感器特性对比表

结合价格、功耗和精度等多方面考虑,本课题选择飞思卡尔公司的三轴加速度传感器MMA8451Q作为计步传感器。

2.4.2 温湿度传感器的选择

在本课题中,采集环境的温湿度变化为扩展要求,故对温湿度传感器的要求并不高。同时,为简化硬件电路和软件设计,应选择数字式的温湿度传感器模块。最终本课题选择目前市面上常用的温湿度传感器模块DHT11,它采用的是单总线协议。

2.5 显示器的选择

一共有两种方案,第一种是选择数码管,第二种是选择LCD(如笔段式、TFTLCD 等)。方案对比如表2.5所示。

表2.5 显示屏对比表

通过对比可以看出,数码管的体积大,当使用多个数码管静态显示时,需增加锁存电路,不适合作为小型携带设备的显示部分;同时数码管每段所需要的电流也比较大,不适合作为低功耗产品的设计。液晶屏机身薄,节省空间,省电,发热量小,画面柔和不伤眼,满足本项目设计的性能需求和低功耗的设计理念。

TFT液晶屏的显示效果很好,但是功耗稍高。最后折中选择了一款功耗较低的液晶屏,具体型号为诺基亚LCD5110(单色,分辨率为84×48)。

2.6 输入设备的选择

2.6.1 方案一,机械式按键

机械式按键使用最为普遍,型号繁多,价格低廉。缺点是有一定的使用寿命,易损坏,手感较差。

2.6.2 方案二:电容触摸按键

根据采用触摸传感器类型的不同,触摸输入方式可以分为电阻式、电波式、光学式、电感式、电容式和电磁式等几种类型。电容式触摸输入方式凭借其工艺成本低、触摸检测方便、硬件免维护、按键精度高、灵敏度可调、外观时尚等特点,成为触摸输入方式的主要选择。

TSI模块(Touch Sensing Interface)是飞思卡尔公司为简化硬件设计人员开发过程而嵌入到Kinetis架构的电容触控驱动模块,结构简单,使用简单的驱动接口连接到一定面积的覆铜区即可。(TSI)模块具有高灵敏度和强鲁棒性的特点,提供了较强的触摸检测的能力,它最高支持和带有16个电容性触摸输入引脚,TSI模块拥有可编程模块和相应的结果寄存器。

2.6.3 方案对比

方案对比如表2.6所示。

表2.6 按键对比表

与触摸键盘相比,机械按键易老化,寿命短,而且工作电流比触摸按键的高很多,在成本上,他们相差不大,但是从整体性能上考虑,触摸式按键更加符合本项目的性能设计需求。

综上所述,本课题选择电容触摸式按键作为本项目的输入输入设备。

2.6.4 TSI触摸感应原理

根据电子学知识可知,未接地的电极与地之间存在电容。而人体可以当做一个接地面(虚地),当手指接近电极板时,等效的增大了电极与地之间的有效面积,使电极板电容增大(如图2.2)。TSI模块的内部机制能实现对电极电容值的检测,并

且可以设定触发事件的阈值。当检测到电容值大于设定阈值时,TSI触发标志位将被置位,并可激活发出中断请求,从而实现对触摸感应事件的响应。

图2.2 电容检测电路

TSI模块测量电容的简易电路图如图2.2所示。可以看出,两个电流源对外接电极进行充放电,在电极板上产生三角波信号,此电压的峰峰值可以通过配置TSI模块中的寄存器来配置,电极上的三角波信号的频率随电极电容的变化而变化,当电极电容增大时,三角波信号的频率减小,周期变大。TSI模块以一个内部振荡器产生的时钟信号为信号参考节拍,对电极的周期进行计数,当三角波周期增大时,则对应的计数值也会增大,如图2.3所示,红色为扫描结果存放在TSI的数值寄存器中,可通过程序访问。

TSI模块将每次取得的计数值与存放在阈值寄存器中的预设阈值进行比较,若超出设定阈值范围,则会导致TSI扫描计数器超出标志位,此时,若使能TSI溢出中断,则进入TSI中断服务程序响应事件。

图2.3 参考时钟对信号频率进行计数

2.7 存储器的选择

一共有两种方案。方案一、选用外扩SPI-Flash;方案二、选用内部Flash。对比如表2.7所示。

表2.7 存储器对比表

本课题的主控芯片拥有128KB的Flash,对于本项目的软件设计来说是有剩余的,所以可以从128KB存储空间中分配4KB空间作为系统的存储器,这样不但降低了系统的功耗,而且还节约了成本,在读写速度上也比外扩的存储器要快。

综上所述,本设计不再外扩Flash存储器空间,将运动数据直接存储在微控制器内部Flash中。

2.8 电源的选择

一共有三种方案,第一种是选择干电池,第二种是选择纽扣电池,第三种是选择聚合物锂电池。如表2.8所示。

表2.8 电池对比表

计步器本来就是小型便携型的设备,电池太大会影响到整体的美观。为减小计步器尺寸,电池体积越小越好,不再考虑普通的干电池。为增加计步器的续航能力,应采用大容量的可充电电池。通过对比,最终选择聚合物锂电池作为本设计的电源。

为此在设计硬件电路时须增加充电电路。

2.9 关键指标

●精准记录行走步数,实现灵敏度可调;

●降低计步器的功耗,要求整机电流在1-2mA范围内;

●完成电容触摸按键的设计,通过点触、滑动等操作,有效控制显示界面;

●记录用户特征、运动步数等信息,保证掉电不丢失;

●通过USB与上位机通信,将用户的运动参数上传至上位机显示。

2.10 可行性分析

2.10.1 低功耗的可行性分析

本设计采用基于Cortex-M0+内核的微控制器KL25Z128VLK4。另外,本设计采用LCD显示屏,功耗低,正常工作电流在μA级别,符合我们设计的要求。采用的三轴数字加速度传感器的正常工作电流也在30μA左右。电容触摸按键灵敏度高,且正常工作电流在10μA左右。各模块具体电流如表2.9。

表2.9 模块电流

综上,本设计可以实现整机电流在1-2mA的低功耗计步器。

2.10.2 TSI触摸按键的可行性分析

图2.4为TSI模块示意图,该图反映了模块各部分的连接关系。TSI模块拥有从低功耗中唤醒CPU的能力。具有可配置的TSI中断,当结尾扫描、TSI计数寄存器超过阈值寄存器的值和VDD/VSS的短暂停留等事件发生时都会触发中断。另外,它还拥有补充温度补偿、电压变化补偿的功能,支持在低电压模式下不使用外部晶振等功能。对于高灵敏的可编程电平极性振荡器和TSI索引振荡器,具有极小的扫描时间。它为触摸键盘、旋转式机器、滑块等提供了一种稳定有力的措施。该TSI 模块被集成在KL25Z芯片上,写出该触摸按键的驱动即可实现用触摸感应技术实现控制,所以,使用TSI触摸按键来实现输入控制可行。

图2.4 TSI模块示意图

2.10.3 灵敏度可控的可行性分析

飞思卡尔公司的MMA8451Q是14位/8位精度可选的智能低功耗三轴加速度传感器,工作电压为1.95V-3.6V,动态可选择满刻度为±2g/±4g/±8g,输出数据速率(ODR)的范围为1.56Hz到800Hz,噪声为99μg/√Hz,利用I2C总线进行通信,在实时方向检测(如3D定位反馈)和实时行为分析上具有很大的优势。MMA8451Q提供了一系列特殊的感测功能:动态和静态感测功能可以检测有无运动的发生以及在任何轴上的加速度是否超过用户设置的水平;点击感测功能可以检测单击和双击动作。

这些功能都可以映射到中断信号输出的引脚上。MMA8451Q拥有一个集成的32级FIFO,可用于储存数据,利用此特性可以将主机处理负荷降至最低,从而降低系统

总功耗。

图2.5 不同姿态下的X、Y、Z重力输出

显而易见,无论用户如何携带计步器,至少有一个轴具有相对较大的周期性加速度变化。因此只要做好峰值检测和设定好加速度阈值即可判断目标是否在跑动,图2.5是MMA8451Q在不同姿X、Y、Z重力输出。综上,可以实现灵敏度可控。

2.10.4 上位机通信的可行性分析

本次设计使用的飞思卡尔自由开发平台FRDM-KL25Z支持USB功能,通过将微控制器的USB虚拟成串口,与上位机进行数据通信。在USB标准子类中,有一类称之为CDC类,可以实现虚拟串口通信。

CDC类由两个接口子类组成,这两个接口子类称为接口通信类(Communication Interface Class)和数据接口类(Data Interface Class)。它们占有不同数量和类型的终端点,如图2.6所示。通信接口类需要一个控制终端点和一个可选的中断型终端点,数据接口子类需要一个方向为输入(IN)的周期性型终端点和一个方向为输出(OUT)的周期性型终端点。其中控制终端点主要用于USB设备的枚举和虚拟串口的波特率和数据类型(数据位数、停止位和起始位)设置的通信。输出方向的非同步终端点

用于主机向从设备发送数据,相当于传统物理串口中的TXD线(从微控制器的角度

看),输入方向的非同步终端点用于从设备向主机发送数据,相当于传统物理串口中的RXD线。这样即可保证与上位机的正常通信。

图2.6 CDC分类

3 系统硬件设计

3.1 硬件整体设计

为尽可能的降低功耗,可只引出使用到的一些端口,未使用的资源一律不引出。

对于功耗高的模块,可通过一个IO口控制P沟道MOS管的通断,从而控制对模块的供电。为方便调试程序,增加了无线模块,故需要预留SPI接口。表3.1列出了计步器最小系统所使用的硬件资源。

表3.1 最小系统资源使用表

为了实现远程监控计步器的工作状态,确保计步器正常工作,同时为了直观的快捷的观测传感器数据,本设计增加了NRF24L01模块和UART接口作为系统的调试接口。表3.2列出了系统调试工具所占用的资源。

表3.2 系统调试资源使用表

表3.3列出了系统所有外设所使用的微控制器的引脚。

表3.3 外设资源使用表

确定了所使用的微控制器的引脚资源后,我们就可以着手设计硬件电路。

3.2 各模块设计与分析

3.2.1 最小系统电路

最小系统电路由以下几部分组成:电源电路,SW 下载电路,复位电路,系统时钟电路,RTC 时钟电路和滤波电路。

本设计采用聚合物锂电池供电,故需要低压差稳压器件。MIC5203是一种低压差稳压器(LDO ),最低压差可达到0.2V ,完全满足本设计要求,同时我们又设计了简易的充电电路,可通过USB 方便地为锂电池充电。电路如图3.1所示。

图3.1 电源电路

复位引脚低电平可导致该MCU 复位。电阻R4的作用是防止复位按键按下时,电容放电电流过大。电路如图3.2所示。由于飞思卡尔的这一款芯片支持SW 下载方式,故预留了下载接口,电路如图3.3所示。多组VSS/VDD 可保证内部信号完整性,故芯片电源引脚的滤波电容要尽量靠近其引脚,电源线中的电流应先通过滤波电容,再通过芯片引脚,如此有利于抑制高频噪音,电路如图3.4所示。

图3.2 系统复位电路

图3.3 下载接口电路图

图3.4 芯片电源滤波电路

无源晶振是有两个引脚的无极性元件,需借助时钟电路(即晶振谐振器)才能产生震荡信号,自身无法振荡起来。有源晶振一般有四个引脚,它是一个完整的振荡器,其中除了石英晶体外,还有晶体管和阻容元件。本设计系统时钟电路采用无源晶振,电路如图3.5所示。RTC 时钟电路采用有源晶振电路,电路如图3.6所示。

图3.5 系统时钟电路

图3.6 RTC 时钟电路

3.2.2 电容触摸按键电路

电容式触摸按键的硬件电路仅将TSI 引脚连接到一定面积的覆铜区即可。 在PCB 制作过程中,应注意以下几点:

(1) 应尽量使触摸按键到MCU 触摸引脚的走线尽量短和细(建议7~10 mil ),以保证信号的稳定性。如图3.7为理想的布线方式和不理想的布线方式。

图3.7 TSI 理想走线与不理想走线

(2) 走线间的间距尽量保持两倍以上距离,最小不能小于7mil ,如果空间允

许尽量大。

(3)同一条线尽量不使用过孔,若要使用不要超过两个以上,避免干扰源增加。

(4)触摸按键走线尽量远离其他元件和走线,尤其是远离信号线(如IIC,SPI,高频通信线),因为信号线会产生一个变化的磁场,变化的磁场产生电流,若触摸按键走线与信号线相邻,那么就会影响触摸按键的充放电,从而影响触摸按键的性能,在没有办法避免的情况下,让两条线垂直布线,而不能走平行线。如图3.8和图3.9分别为传感线与通讯线在同层与不同层的分布示范。

图3.8 传感线与通讯线在同层的分布图3.9 传感线与通讯线在不同层的分布

(5)不推荐将传感器的走线放在任何电源层上。充满在传感器下面的地层或电源层会增加对地的寄生电容,并降低灵敏度。当将地层放在传感器下面时,地层必须使用十字交叉形以保证铜的覆盖率小于40%,并置于最远的一层,以降低对地的寄生电容,同时保证较好的屏蔽效果。本次设计在按键背面采用网格铺地。

按键与地层之间的间隔设定,若间隔太大,触摸按键的基本电容值越小,RC震荡的频率越大,灵敏度也越高,地对电场的约束越小,干扰越大。若间隔太小,基本电容值越大,灵敏度越低,且电场对地的约束太大,一般建议在0.5mm~2.0mm,若PCB允许,则建议在1mm以上的间隔。本次PCB设计中按键与地层之间的距离在0.6mm左右。

(6)关于按键形状设计。任何形状的按键均可用于电容感应式触摸中,如图3.10所示。不同的形状不会影响感应的性能,仅与板子的美观程度有关。本次设计采用圆形按键和锯齿条状按键。

飞思卡尔单片机LED控制例程详解

我的第一个LED程序 准备工作: 硬件:Freescale MC9S08JM60型单片机一块; 软件:集成开发环境codewarrior IDE; 开发板上有两个LED灯,如下图所示: 实验步骤: 1.首先,确保单片机集成开发环境及USBDM驱动正确安装。其中USBDM的安装步骤如下:?假设之前安装过单片机的集成开发环境6.3版本:CW_MCU_V6_3_SE; ?运行USBDM_4_7_0i_Win,这个程序会在c盘的程序文件夹下增加一个目录C:\Program Files\pgo\USBDM 4.7.0,在这个目录下: 1〉C:\ProgramFiles\pgo\USBDM 4.7.0\FlashImages\JMxx下的文件 USBDM_JMxxCLD_V4.sx是下载器的固件文件; 2〉C:\Program Files\pgo\USBDM 4.7.0\USBDM_Drivers\Drivers下有下载器的usb 驱动 所以在插入usb下载器,电脑提示发现新的usb硬件的时候,选择手动指定驱动 安装位置到以上目录即可。 ?运行USBDM_4_7_0i_Win之后,还会在目录: C:\Program Files\Freescale\CodeWarrior for Microcontrollers V6.3\prog\gdi 下增加一些文件,从修改时间上来看,增加了6个文件,这些文件是为了在codewarrior 集成开发环境下对usb下载器的调试、下载的支持。

2.新建一个工程,工程建立过程如下: ?运行单片机集成开发环境codewarrior IDE ?出现如下界面 ●Create New Project :创建一个新项目工程 ●Load Example Project :加载一个示例工程 ●Load Previous Project :加载以前创建过的工程 ●Run Getting started Tutorial:运行CodeWarrior软件帮助文档 ●Start Using CodeWarrior:立刻使用CodeWarrior ?点击Create New project按钮,以创建一个新的工程,出现选择CPU的界面 如下,请选择HCS08/HCS08JM Family/MC9S08JM60,在右边的Connection窗口

飞思卡尔单片机寄存器及汇编指令详解

附录I:寄存器地址列表 直接页面寄存器总结

高页面寄存器总结

非易失寄存器总结 注:直接页面寄存器表地址的低字节用粗体显示,直接寻址对其访问时,仅写地址低字节即可。第2列中寄存器名用粗体显示以区别右边的位名。有0的单元格表示未用到的位总是读为0,有破折号的单元格表示未用或者保留,对其读不定。

附录II 指令接与寻址方式 HCS08指令集概括 运算符 () = 括号种表示寄存器或存储器位置的内容 ← = 用……加载(读: “得到”) & = 布尔与 | = 布尔或 ⊕= 布尔异或 ×= 乘 ÷ = 除 : = 串联 + = 加 - = 求反(二进制补码) CPU registers A =>累加器 CCR =>条件代码寄存器 H =>索引寄存器,高8位 X => 索引寄存器,低8位 PC =>程序计数器 PCH =>程序计数器,高8位 PCL =>程序计数器,低8位 SP =>堆栈指针 存储器和寻址 M =>一个存储区位置或者绝对值数据,视寻址模式而定 M:M + 0x0001 => 两个连续存储位置的16位值.高8位位于M的地址,低8位位于更高的连续地址. 条件代码寄存器(CCR)位 V => 二进制补码溢出指示,第7位 H => 半进位,第4位 I => 中断屏蔽,第 3位 N => 求反指示器, 第2位 Z => 置零指示器, 第1位 C => 进/借, 第0位 (进位第 7位 ) CCR工作性符号 – => 位不受影响 0 = > 位强制为0 1 = > 位强制为1

= >根据运算结果设置或清除位 U = > 运算后没有定义 机器编码符号 dd =>一个直接寻址0x0000–0x00FF的低8位(高字节假设为0x00) ee => 16位偏移量的高8位 ff => 16位偏移量的低8位 ii => 立即数的一个字节 jj => 16位立即数值的高位字节 kk => 16位立即数值的低位字节 hh => 16位扩展寻址的高位字节 ll => 16位扩展寻址的低位字节 rr => 相对偏移量 n —任何表达范围在0–7之间的一个有符号数的标号或表达式 opr8i —任何一个表达8位立即值的标号或表达式 opr16 —任何一个表达16位立即值的标号或表达式 opr8a —任何一个表达一个8位值的标号或表达式.指令对待这个8位值为直接页面64K 字节地址空间(0x00xx)中地址的低8位. opr16a —任何一个表达16位值的标号或表达式.指令对待这个值为直接页面64K字节地址空间. oprx8 —任何一个表达8位无符号值的标号或表达式,用于索引寻址. oprx16 —任何一个16位值的标号或表达式.因为HCS08有一个16位地址总线,这可以为一个有符号或者无符号值. rel —任何指引在当前指令目标代码最后一个字节之后–128 to +127个字节之内的标号或表达式.汇编器会计算包括当前指令目标代码在内的8位有符号偏移量. 寻址方式 隐含寻址(Inherent)如CLRA,只有操作码,无操作数,需要操作的数据一般为CPU寄存器,因此不需要再去找操作数了。(INH) 立即寻址 (Immediate)如LDA #$0A,“$”表示16进制,此时操作数位于FLASH空间,与程序一起存放。(IMM) 直接寻址 (Direct)如 LDA $88,只能访问$0000-$00FF的存储器空间,指令短速度快; (DIR) 扩展寻址 (Extended)如果操作数地址超出了$00FF,自动为扩展寻址;(EXT) 相对寻址(Relative)如BRA LOOP,指令中一般给出8位有符号数表示的偏移量。(REL) 变址寻址 (Indexed) 采用[H:X]或SP作为指针的间接寻址方式。( IX )( IX1 )( IX2 ) 变址寻址 (Indexed) 1〉无偏移量:CLR ,X 简写(IX) 2〉无偏移量,指令完成后指针加1(H:X = H:X + 0x0001) ,简写(IX+)只用于指令MOV和CBEQ指令中;

飞思卡尔单片机编程

关于Codewarrior 中的 .prm 文件 网上广泛流传的一篇文章讲述的是8位飞思卡尔单片机的内存映射,这几天,研究了一下Codewarrior 5.0 prm文件,基于16位单片机MC9S12XS128,一点心得,和大家分享。有什么错误请指正。 正文: 关于Codewarrior 中的.prm 文件 要讨论单片机的地址映射,就必须要接触.prm文件,本篇的讨论基于Codewarrior 5.0 编译器,单片机采用MC9S12XS128。 通过项目模板建立的新项目中都有一个名字为“project.prm”的文件,位于Project Settings->Linker Files文件夹下。一个标准的基于XS128的.prm文件起始内容如下: .prm文件范例: NAMES END SEGMENTS RAM = READ_WRITE DATA_NEAR 0x2000 TO 0x3FFF;

READ_ONLY DATA_NEAR IBCC_NEAR 0x4000 TO 0x7FFF; ROM_C000 = READ_ONLY DATA_NEAR IBCC_NEAR 0xC000 TO 0xFEFF; //OSVECTORS = READ_ONLY 0xFF10 TO 0xFFFF; EEPROM_00 = READ_ONLY DATA_FAR IBCC_FAR 0x000800 TO 0x000BFF; EEPROM_01 = READ_ONLY DATA_FAR IBCC_FAR 0x010800 TO 0x010BFF; EEPROM_02 = READ_ONLY DATA_FAR IBCC_FAR 0x020800 TO 0x020BFF; EEPROM_03 = READ_ONLY DATA_FAR IBCC_FAR 0x030800 TO 0x030BFF; EEPROM_04 = READ_ONLY DATA_FAR IBCC_FAR 0x040800 TO 0x040BFF; EEPROM_05 = READ_ONLY DATA_FAR IBCC_FAR 0x050800 TO 0x050BFF; EEPROM_06 = READ_ONLY DATA_FAR IBCC_FAR 0x060800 TO 0x060BFF; EEPROM_07 = READ_ONLY DATA_FAR IBCC_FAR 0x070800 TO 0x070BFF; PAGE_F8 = READ_ONLY DATA_FAR IBCC_FAR 0xF88000 TO 0xF8BFFF;

飞思卡尔16位单片机MC9S12XS128加密(程序下载不进去,正负极未短路,通电芯片不发烫)后解锁的方法及步骤w

飞思卡尔16位单片机MC9S12XS128加密(程序下载不进去,正负极未短路,通电芯片不发烫)后解锁的方法及步骤 /*****************************************************************************/ *本人用此法成功解救了4块板子【窃喜!】,此说明是本人边操作边截图拼成的,有些是在别的说明上直接截图【有些图本人不会截取,就利用现成的了,不过那也是本人用豆和财富值换来的】,表达不清之处还望见谅,大家将就着看吧!如能有些许帮助,我心甚慰!!! ————武狂狼2014.4.23 /*****************************************************************************/ 编译软件:CW5.1版本,下载器:飞翔BDMV4.6 【1】,连接好单片机,准备下载程序,单击下载按钮出现以下界面 或 (图1.1) 图 1.1——4中所有弹出窗口均单击“取消”或红色“关闭”按钮依次进入下一界面

(图1.2) (图1.3)

(图1.4) ******************************************************************************* ******************************************************************************* 【2】单击出现如下图所示下拉列表,然后单击 (图2.1) 出现下图(图2.2)对话框,按下面说明操作 (图2.2)

飞思卡尔单片机知识点

1、单片机组成:1> CPU 2> 存储器3>I/O ; 2、存储器包括2大类:ROM , RAM 3、标准ASCII码使用(1)个字节表示字符; 4、BCD码是用()进制表示的()的数据; 5、HCS08QG8的最小系统包括(电源电路,复位电路,下载口,(内部时钟)); 6、QG8管脚数量(16)、只能输入的是(PTA5)、只能输出的是(PTA4)、程序下载的是、接外部时钟的是; 7、QG8的管脚可以作为数字输入输出、也可以作为模拟输入,可以作为模拟输入的有(); 8、QG8管脚复用优先级最低的功能是(I/O); 9、QG8存储器配置中,不同资源的分界线……; 10、CPU寄存器有(A, HX, PC, CCR, SP); 11、可以执行位操作的地址范围(0X0000~0X005F); 12、有地址的寄存器分成了(3)块(0页,高页,非易失); 13、如何在C语言中定义常数(数据类型变量名;),如何指定变量的地址(数据类型变量名@ 地址;); 14、堆栈的管理者是寄存器(SP); 15、SP的复位缺省值是(0X00FF); 16、堆栈对数据的操作特点是(向上生长型:先压后涨、先减后弹); 17、堆栈一般在RAM的高地址区域还是低地址区域?高地址区 18、内部时钟源包括哪4大部分? 19、外部时钟分哪2大类;振荡器,整形外部时钟 20、内部时钟中FLL固定倍频(512倍频); 21、ICS的7种工作模式(FEI, FEE, FBI, FBILP, FBE, FBELP, stop); 22、ICS的内部参考时钟是可以校准、微调的,调整的寄存器名(ICSTRM);该寄存器的数值越大,输出时钟频率越(低); 23、FLASH是按页管理的,页大小(512)字节,每页分(8)行; 24、高页寄存器位于FLASH的最后一页的(第六行/0xFFB0~0xFFBF)位置; 25、FLASH的最后一页最后一行是(中断向量); 26、FLASH块保护寄存器(FPROT);块加密寄存器(FOPT);对应的非易失寄存器分别是(NVOPT, NVPROT); 27、FLASH操作的一般过程是(); 28、FLASH操作的有效命令有(空检查,字节编程,突发模式编程,页擦除,全部ROM 擦除); 29、记录程序运行状态的CPU寄存器是(CCR); 30、指令系统包括6大类指令,分别是(算术运算指令、数据传送指令、数据和位操作、逻辑运算、程序控制、堆栈处理); 31、寻址方式是指(CPU访问操作数和数据的方法); 32、寻址方式包括7大类16种,分别是: INH IMM DTR EXT IX,IX1,IX2,SP1,SP2,IX+,IX1+ REL IMD, DD,IX+D,DIX+ 33、8指令模板和6指令模板分别是(); 34、QG8是高电平复位还是低电平复位?低电平 35、QG8数据存储器RAM的大小为(512)字节; 36、上电复位期间将管脚(A4)设置为(低)电平可以进入调试模式 37、QG8的存储器结构为冯·诺伊曼还是哈佛结构?冯诺依曼

基于飞思卡尔单片机的智能汽车设计毕业设计(论文)

基于飞思卡尔单片机的智能汽车设计 摘要 本智能车系统设计以 MC9S12DG128B 微控制器为核心,通过一个CMOS 摄像头检测模型车的运动位置和运动方向,使用LM1881视频分离芯片对图像进行处理,用光电传感器检测模型车的速度并使用PID 控制算法调节驱动电机的转速和舵机的方向,完成对模型车运动速度和运动方向的闭环控制。为了提高智能车的行驶速度和可靠性,采用了自制的电路板,在性能和重量上有了更大的优势,对比了各种方案的优缺点。实验结果表明,系统设计方案可行 关键词:MC9S12DG128,CMOS 摄像头,PID

The Research of Small and Medium-sized Electric Machines in Fuan City Author:Yao fang Tutor:Ma shuhua Abstract Fujian Fuan City industry of electric motor and electrical equipment is the one of the most representative phenomenon of industry cluster in Fujian Province mechanical industry. Its output value of small and medium-sized electric machines accounts for 20% of the whole province’s electrical equipment indu stry. The output amount of small and medium-sized electric machines from this region takes up 1/3 of that of the whole nation. Fuan electric motor and electrical equipment industry plays a significant role in the development of local national economy, being considered to be the main growth point of local economy and called "the Chinese electric motor and electrical equipment city ". This paper launched a research on small and medium- sized electric machines in Fuan city from two angles. The first one inferred the situation of Fuan electric machine industrial cluster as well as the analysis of the temporary existed problems, and then propose a few of suggestions on the part of local government. The second part focus on the improvement of the competitiveness of Fuan electric machine enterprises, through the application of Michael Porter's Five Forces Model into the local industry of electric machine, consequently carried out some strategies local enterprises should take. Key Words: small and medium-sized electric machines, Five Forces Model, industrial cluster

飞思卡尔MC9S12XS128单片机中断优先级设置简易教程

本教程试图用最少的时间教你飞思卡尔XS128单片机的中断优先级设置方法和中断嵌套的使用,如果是新手请先学习中断的基本使用方法。 先来看看XS128 DataSheet 中介绍的相关知识,只翻译有用的: 七个中断优先级 每一个中断源都有一个可以设置的级别 高优先级中断的可以嵌套低优先级中断 复位后可屏蔽中断默认优先级为1 同一优先级的中断同时触发时,高地址(中断号较小)的中断先响应 注意:高地址中断只能优先响应,但不能嵌套同一优先级低地址的中断 下面直接进入正题,看看怎么设置中断优先级: XS128中包括预留的中断一共有128个中断位,如果为每个中断都分配一个优先级寄存器的话会非常浪费资源,因此飞思卡尔公司想出了这样一种办法:把128个中断分为16个组,每组8个中断。每次设置中断时,先把需要的组别告诉某个寄存器,再设置8个中断优先寄存器的某一个,这样只需9个寄存器即可完成中断的设置。 分组的规则是这样的:中断地址位7到位4相同的中断为一组,比如MC9SX128.h中 这些中断的位7到位3都为D,他们就被分成了一组。0~F正好16个组。

INT_CFADDR就是上面说到的用来设置组别的寄存器: 我们需要设置某个组别的中断时,只要写入最后8位地址就行了,比如设置SCI0的中断优先级,就写入0xD0。 设置好组别之后,我们就要该组中相应的中断进行设置,设置中断的寄存器为 这其实是一组寄存器,一共有8个,每个都代表中断组中的一个中断。对应规则是这样的:中断地址的低四位除以2 比如还是SCI0,低四位是6,除以二就是3,那么我们就需要设置INT_CFDATA3 往INT_CFDATAx中写入0~7就能设置相应的中断优先级了 拿我本次比赛的程序来举个例子:我们的程序中需要3个中断:PIT0,PORTH,SCI0。PIT0定时检测传感器数值,PORTH连接干簧管进行起跑线检测,SCI0接收上位机指令实现急停等功能。因此中断优先级要SCI0>PORTH>PIT0。 我们先要从头文件中找出相应中断的地址: PIT0【7:4】位为7,选择中断组: INT_CFADDR=0x70;

飞思卡尔HC12系列单片机USBDM烧录操作指导

飞思卡尔HC12系列单片机USBDM烧录操作指导 步骤一 将USBDM烧录器连接到电脑的USB口,然后,双击桌面的“hiwave.exe”图标,出现图1的窗口。 图1 假如USBDM没有连接或者连接不良,会出现如下图2的窗口,关掉程序,检查连接,再启动程序,直到出现图1的窗口。

步骤二. 将USBDM连接到需要烧录的仪表上,点击图1的“OK”按钮,将窗口最大化,然后看显示器的右下角,见图3所示,有“ACKN SYNC STOPPED”,表示连接正常。假如出现图4的窗口,表示BDM没有和仪表连接上,检查下载线。点击Cancel按钮。直到出现图3的“ACKN SYNC STOPPED”状态。 图3 图4 步骤三 点击图5的菜单栏的“TBDML HCS12”,然后点击“Load”,出现目标文件选择的窗口。见图6

图6 选择烧录的目标文件,目标文件的后缀名为“.abs”, 这里举例 1:选择DM281HZ-V1.2.abs, 2:勾选Automatically erase and program into FLASH and EEPROM 3:不勾选V erify memory image after loading code,为了节省烧录时间,不勾选这个选项。 3: 勾选Run after successful load.(可以在程序烧完的时候,自动的运行程序,看仪表是否能工作,可以作为仪表的第一次粗测) 4:点击“打开” 5:等待烧录完成, 图7,正在擦除……

图8,正在编程…… 图8 6:如果在完成编程后,仪表没有自动的进入工作状态,有以下几种可能: a.仪表有问题 b.烧录时出现问题,这个问题可以通过配置烧录选项来排除,见图6, 可以勾选选项V erify memory image after loading code ,在编程后会进行程序校验,如果校验错误表示烧录出现问题,一般来说出现烧录错误的几率很小,但也不排除。为了在批量烧录的时候,节省时间,没有选择校验。 c.烧录文件选择错误 7:如果仪表正常,拔掉USBDM和仪表的下载线,直接换上新的仪表,重复步骤三。 给程序建立快捷方式,方便操作 由于hiwave.exe程序在桌面没有快捷方式,可以自己建立一个快捷方式。 1. 打开路径C:\Program Files\Freescale\CodeWarrior for S12(X) V5.0\Prog,找到“hiwave.exe”文件 (如果CodeWarrior不是安装在C盘,则请按照…Freescale\CodeWarrior for S12(X) V5.0\Prog 寻找。)2.在文件上点击右键选择“发送到”—选择“桌面快捷方式”,就可以在桌面看到一个“hiwave.exe”程 序文件的快捷图标。以后再启动程序的时候,只需点击桌面的这个图标即可。 图1

基于飞思卡尔单片机自动循迹小车控制的设计

摘要 随着我国的电子科技的不断发展,我们生活中的自动化设备越来越多,也为嵌入式在智能化上的研究提供了一个广阔的平台。 本系统以MK60DN512VMD100微控制器为核心控制单元,选用OV7620 CMOS 模拟摄像头检测赛道信息,高速AD转换芯片选用TCL5510,将提取后的灰度图像进行软件二值化,进而提取赛道信息;用光电编码器实时检测小车的实时速度,采用PID控制算法调节电机的速度以及舵机转向,从而实现速度和方向的闭环控制。 关键字:MK60DN512VMD100,OV7620 CMOS,软件二值化,PID

Abstract With the continuous development of electronic technology, more and more automation equipment into the production life of the people, the rapid development of embedded intelligent study provides a broader platform. In this paper, the design of intelligent vehicle system MK60DN512VMD100 microcontroller as the core control unit, the selection of OV7620 CMOSanalog cameras to detect the track information, to using TCL5510 high-speed AD converter chip, software binarization image, extract the white guide line for identification of the track information; optical encoder to detect the real-time speed of the model car, using the PID control algorithm to adjust the speed of the drive motor and steering the angle of the steering gear, in order to achieve closed-loop control of velocity and direction of the model car. Keywords: MK60DN512VMD100,OV7620 CMOS,software binarization, PID

飞思卡尔单片机各种功能程序

流水灯四种效果: #include /* common defines and macros */ #include #include /* derivative information */ #pragma LINK_INFO DERIV ATIVE "mc9s12xdp512" #include "main_asm.h" /* interface to the assembly module */ unsigned char temp; //unsigned char pa @0x200; //unsigned char pb @0x202; unsigned char key; static void delay(void) { volatile unsigned long i; for(i=0;i<100000;i++); } static unsigned char random; static void Random(void) { random = (unsigned char)rand(); } void effect1() { unsigned char c; for(c=0;c<=6;c++) { delay(); PORTB = ~(1<=1;c--) { delay(); PORTB = ~(1<=1;c--) {

毕业论文--基于飞思卡尔单片机的智能车设计(含外文翻译)

毕业设计(论文)任务书 课题名称:基于飞思卡尔单片机的智能车设计 完成期限:2009年12月 1日至2010年 5月 10日

一、课题训练内容 通过以全国大学生“飞思卡尔”杯智能车竞赛为背景,设计一台能够自主循迹的小车。整个开发中,严格执行“飞思卡尔”杯智能车竞赛的比赛规则。 二、设计(论文)任务和要求 (1)查阅课题相关参考文献、技术资料,做好备份,以便以后查找; (2)充分分析相关素材,比较多个方案,选择一种完成设计任务; (3)分析和选取完成任务的技术途径和实施方法,第四周前上交毕业设计开题报 告一份。开题报告内容与学校模板要求一致,字数不少于2000字;经指导老师检查合格后才能进行后续工作; (4)补充必要的理论和技术知识,查找相关的元件、器件的参数资料; (5)给出详细的系统设计说明书,画出原理电路图,分析各部分电路功能及原理; (6)根据系统要求,进行硬件设计以及理论数据计算,给出相关参数; (7)根据系统要求,给出系统控制的流程图,编写详细程序; (8)根据系统要求,制作实物和安装调试; (9)撰写毕业设计论文,内容和格式按学校要求执行,(具体要求在学校教务网 的下载专区下载:设计论文规范、格式模板、任务书、开题报告、成绩记录等9个文件)。 三、毕业设计(论文)主要参数及主要参考资料 主要参数: (1)赛道为普通白色板,宽度为60cm,赛道正中间为2.5cm的黑色普通胶带, 铺设赛道地板颜色不作要求,它和赛道之间可以但不一定有颜色差别, 跑道最小曲率半径不小于 50 厘米,跑道可以交叉,交叉角为90 °, 赛道有一个长为1米的出发区,计时起始点两边分别有一个长度10厘米 黑色计时起始线,赛车前端通过起始线作为比赛计时开始或者结束时刻。 (2)须采用飞思卡尔半导体公司的 8 位、 16 位处理器 ( 单核 ) 作为唯一 的微控制器,推荐使用 9S12XS128 ,9S08AW60 微控制器; (3)比赛车模采用官方规定的本成品车模; (4)模型车的电源采用官方的7.2V/2000mA的电池,舵机采用制定的s3010;

基于飞思卡尔的Bootloader程序下载更新

基于飞思卡尔的Bootloader程序下载更新 前言 写这篇文档是因为大三暑假时在一家公司实习,做一个基于飞思卡尔的bootloader远程更新项目,刚开始定的技术指标是基于MC9S12XS128单片机的Bootloader程序、远程(基于GSM网络)和CAN总线通信。但因为我只是一个本科实习生而且实习时间只有一个多月,所以只完成了基于SCI的本地写入.S19文件的更新。这大概也就是这篇文档所包含的内容啦。 整个程序是存在瑕疵甚至基本上可以说是不成功的,但是我觉得自己在做这个项目的过程中确实也解决了网上没有提到或者没有答案的一些问题,特写此文档,希望大家各取所需,如果有什么高见或者发现了我明显错误的地方,也非常欢迎大家给我指出。欢迎大家前来指教。 小目录 一、Bootloader的含义---------------------------------------------------------2 二、SCI串口的使用------------------------------------------------------------3 三、Flash的擦除和写入--------------------------------------------------------5 四、.S19文件的写入-----------------------------------------------------------13 五、心得体会-----------------------------------------------------------------14

飞思卡尔单片机编程 之天职师大

天职师大期末必考 关于Codewarrior 中的 .prm 文件 网上广泛流传的一篇文章讲述的是8位飞思卡尔单片机的内存映射,这几天,研究了一下Codewarrior 5.0 prm文件,基于16位单片机MC9S12XS128,一点心得,和大家分享。有什么错误请指正。 来源:(https://www.doczj.com/doc/5f12600594.html,/s/blog_60281b700100gbp6.html) - 关于Codewarrior 中的 .prm 文件_LiangXiangTai_新浪博客 正文: 关于Codewarrior 中的.prm 文件 要讨论单片机的地址映射,就必须要接触.prm文件,本篇的讨论基于Codewarrior 5.0 编译器,单片机采用MC9S12XS128。 通过项目模板建立的新项目中都有一个名字为“project.prm”的文件,位于Project Settings->Linker Files文件夹下。一个标准的基于XS128的.prm文件起始内容如下: .prm文件范例:

NAMES END SEGMENTS RAM = READ_WRITE DATA_NEAR 0x2000 TO 0x3FFF; ROM_4000 = READ_ONLY DATA_NEAR IBCC_NEAR 0x4000 TO 0x7FFF; ROM_C000 = READ_ONLY DATA_NEAR IBCC_NEAR 0xC000 TO 0xFEFF; //OSVECTORS = READ_ONLY 0xFF10 TO 0xFFFF; EEPROM_00 = READ_ONLY DATA_FAR IBCC_FAR 0x000800 TO 0x000BFF; EEPROM_01 = READ_ONLY DATA_FAR IBCC_FAR 0x010800 TO 0x010BFF;

飞思卡尔讲解

哈尔滨工程大学本科生毕业论文 第1章绪论 1.1论文研究的背景 闭环控制是自动控制论的一个基本概念,也称反馈控制,在日常生活的各种控制实例中有具体的表现方式,比如常用交通工具中电车的速度控制,汽车的速度控制,冰箱的温度调节等,其中采用闭环控制方案对直流电机进行调速是生产生活中最常见的一种闭环控制实例。在工业自动化飞速发展的今天,利用高性能单片机来完成对仪器设备的自动化控制是其中最重要的一个环节。本文研究对象是基于Freescale单片机的移动小车控制系统设计,涉及到对直流电机的速度控制,倒车防撞报警器设计,LCD(Liquid Crystal Display)显示等功能,既应用了本科阶段所学的电路基础知识、自动控制理论知识,又充分利用了Freescale单片机的高性能与可靠性。 1.1.1速度闭环控制系统 随着工业自动化以及电子信息技术和自动控制技术的不断发展,电机的种类不断增加,性能也更加出色。以电机为动力的车辆的自动化程度也越来越高,对车辆自动化程度的要求也越来越高,电车近几十年来发展十分迅速,直流电机电瓶车的速度控制水平也得到了极大的提高。转速控制作为电机控制中最关键的部分,具体反映到电车就是在车体速度控制上,而速度闭环控制作为重要的控制方式,得到了最广泛的应用。 直流电机速度闭环控制系统包括以下内容: (1)直流电机在接到起动电压后起动; (2)转速达到预设速度后,利用PWM脉宽调制电路产生方波,并通过单片机设定占空比,达到无级调速; (3)采用直流电机反接制动原理来调速,在增量PID控制算法下达到稳定转速的效果。 1

哈尔滨工程大学本科生毕业论文 速度闭环控制系统硬件组成: (1)PWM脉宽调制电路 (2)测速装置(电压输出型光电码盘) (3)动力装置(直流电机) (4)直流电机驱动器 1.1.2超声波倒车防撞系统 改革开放以后,我国经济快速发展,汽车的拥有量大大增加,一些大中型城市交通拥挤,导致交通事故频发。安全驾驶逐渐成为大家关注的焦点,倒车防撞系统的需求非常迫切,因此对其进行设计生产显得非常重要。此倒车防撞系统利用了超声波的特点和优点,将超声波测距和飞思卡尔单片机结合为一体,设计出一种基于MC9S12DG128B单片机的超声波倒车防撞报警系统。 1、超声波测距模块 在本系统中,超声波模块的主要任务是:通过单片机产生40KHz的脉冲,来激发发射探头发出超声波,接收探头接收到超声波后反馈给单片机一段脉冲。单片机定时器记录发射跟接收的40KHz脉冲的时间,算出时间间隔,然后通过编程算法计算出距离。 2、防撞报警系统 本系统采用LED发光二极管作为报警器。在车体逐渐逼近障碍物的过程中,通过编程使单片机引脚产生一定频率的脉冲,驱动发光二极管。当倒车时候,如果逼近障碍物,则发光二极管闪烁频率会加快,进而判定有障碍物,达到防撞报警的作用。 1.1.3LCD液晶显示系统 在日常生活中,我们对液晶显示器并不陌生。液晶显示模块已作为很多电子产品的最大辅助功能,如在计算器、万用表、电子表及很多家用电子产品中都可以看到,显示的主要是数字、专用符号和图形。在单片机的人机交 2

单片机(飞思卡尔)课程设计

课程设计报告 课程设计名称: 系: 学生姓名: 班级: 学号: 成绩: 指导教师: 开课时间:学年学期

目录 第一章系统概要 (1) 1.1 系统背景 (1) 第二章系统硬件设计 (2) 2.1 系统原理图 (2) 2.2 单片机(MCU)模块 (3) 2.2.1 MC9S08AW60单片机性能概述 (3) 2.2.2 内部结构简图 (3) 2.3 串行通信模块 (4) 2.3.1 MAX232引脚图 (4) 2.3.2 串行通信的电路原理 (5) 2.4 液晶显示模块 (6) 第三章系统软件设计 (8) 3.1 MCU方(C)程序 (8) 3.1.1串行通信子程序 (14) 3.1.2 LCD子程序 (18) 第四章系统测试 (21) 第五章总结展望 (24) 5.1 总结 (24) 5.2 展望 (24) 参考文献 (24)

第一章系统概要 1.1 系统背景 单片机(MCU)的基本定义是:在一块芯片上集成了中央处理器(CPU)、存储器(RAM/ROM等)、定时器/计数器及多种输入输出(I/O)接口的比较完整的数字处理系统。单片机自1976年由Intel公司推出MCS-48开始,迄今已有二十多年了。由于单片机集成度高、功能强、可靠性高、体积小、功耗地、使用方便、价格低廉等一系列优点,目前已经渗入到人们工作和生活的方方面面,几乎“无处不在,无所不为”。单片机的应用领域已从面向工业控制、通讯、交通、智能仪表等迅速发展到家用消费产品、办公自动化、汽车电子、PC机外围以及网络通讯等广大领域。 Freescale的S08系列8位MCU由于稳定性高、开发周期短、成本低、型号多样、兼容性好被广泛应用。HC08是Freescale的08系列之一S08表示增强型HC08,它是在HC08基础上发展起来的,兼容HC08系列。S08是2004年左右推出8位MCU,资源丰富,功耗低,性价比很高,是08系列MCU发展趋势,其性能与许多16位MCU相当。MC9S08AW60是低成本、高性能8位微处理器S08家族中的成员,本次课程设计就是以该芯片为基础,来进行嵌入式的设计。 1.2 系统功能 当按下启动键,电子时钟从当前设定值开始走时。按秒刷新,要求在LCD 屏上显示。若按启动键,则时间暂停,再按,时间继续按秒刷新。 时间格式是”时:分:秒”(00:00:00)。通过向通用I/O端口的引脚输入高或低(1或0)电平,作为启动键,对电子钟进行控制——电子钟开始运行、暂停和继续运行。显示数据时,先把要显示的数据送到数据寄存器中,再通过发送寄存器将数据输入要LCD中显示。

飞思卡尔单片机中断序号

/**************** interrupt vector numbers ****************/ #define VectorNumber_Vsi 119 #define VectorNumber_Vsyscall 118 #define VectorNumber_VReserved118 117 #define VectorNumber_VReserved117 116 #define VectorNumber_VReserved116 115 #define VectorNumber_VReserved115 114 #define VectorNumber_VReserved114 113 #define VectorNumber_VReserved113 112 #define VectorNumber_VReserved112 111 #define VectorNumber_VReserved111 110 #define VectorNumber_VReserved110 109 #define VectorNumber_VReserved109 108 #define VectorNumber_VReserved108 107 #define VectorNumber_VReserved107 106 #define VectorNumber_VReserved106 105 #define VectorNumber_VReserved105 104 #define VectorNumber_VReserved104 103 #define VectorNumber_VReserved103 102 #define VectorNumber_VReserved102 101 #define VectorNumber_VReserved101 100 #define VectorNumber_VReserved100 99 #define VectorNumber_VReserved99 98 #define VectorNumber_VReserved98 97 #define VectorNumber_Vatd0compare 96 #define VectorNumber_VReserved96 95 #define VectorNumber_VReserved95 94 #define VectorNumber_VReserved94 93 #define VectorNumber_VReserved93 92 #define VectorNumber_VReserved92 91 #define VectorNumber_VReserved91 90 #define VectorNumber_VReserved90 89 #define VectorNumber_VReserved89 88 #define VectorNumber_VReserved88 87 #define VectorNumber_VReserved87 86 #define VectorNumber_VReserved86 85 #define VectorNumber_VReserved85 84 #define VectorNumber_VReserved84 83 #define VectorNumber_VReserved83 82 #define VectorNumber_VReserved82 81 #define VectorNumber_VReserved81 80 #define VectorNumber_VReserved79 79

相关主题
文本预览
相关文档 最新文档