山东大学飞思卡尔单片机教学_Freescale_单片机概
- 格式:ppt
- 大小:785.00 KB
- 文档页数:29
Freescale Semiconductor, Inc.Document Number: 用户指南 Rev. 0, 09/2014Confidentiality statement, as appropriate to document/part status.___________________________________________________________________飞思卡尔单片机快速上手指南作者:飞思卡尔半导体IMM FAE 团队飞思卡尔半导体是全球领先的单片机供应商,其单片机产品包含多种内核,有数百个系列。
为支持用户使用这些产品,飞思卡尔提供了丰富的网站资源、文档及软硬件工具,另外,我们还有众多的第三方合作伙伴及公共平台的支持。
对于不熟悉飞思卡尔产品和网站的初学者来说,了解和使用这些资源这无疑是一个令人望而生畏的浩瀚工程。
本指南的目的,就是给初学者提供一个指导,让他们不被这些海量信息淹没;用户根据本指导提供的操作步骤,能迅速找到所需的资源,了解如何使用相关的工具。
在本指南中,我们以飞思卡尔的新一代Kinetis 单片机K22系列为例,介绍了如何获取与之相关的资源,如何对其进行软硬件设计和开发。
实际上,这些方法也适用于其它的单片机系列。
当然,对于其它有较多不同之处的产品,我们也会继续推出相应的文档,供广大用户参考。
目录1 如何获取技术资料与支持 ..........................................................2 2 如何选择产品、申请样片及购买少量芯片和开发工具 ........... 93 飞思卡尔单片机的开发环境、开发工具和生态系统 ............. 224 如何阅读飞思卡尔的技术文档 ................................................ 45 5 飞思卡尔单片机硬件设计指南 ................................................ 55 6飞思卡尔单片机软件开发指南 (67)飞思卡尔单片机快速上手指南, Rev. 1, 09/20142Freescale Semiconductor, Inc.1 如何获取技术资料与支持1.1 概述当用户使用飞思卡尔单片机芯片时,如何获取芯片的数据手册(Datasheet )、参考设计(Reference Manual )和官方例程等资源呢?另外当用户遇到了技术问题该如何获得帮助和解答呢?这里以Kinetis 的K22系列芯片为例为大家介绍如何解决这些问题。
HCS12微控制器系列教程---第一讲:PWM 模块介绍该教程以MC9S12DG128单片机为核心进行讲解,全面阐释该16位单片机资源。
本文为第一讲,开始介绍S12 MCU的PWM模块。
PWM 调制波有8 个输出通道,每一个输出通道都可以独立的进行输出。
每一个输出通道都有一,一个周期控制寄存器和两个可供选择的时钟源。
每一个PWM 输出个精确的计数器(计算脉冲的个数)通道都能调制出占空比从0—100% 变化的波形。
PWM 的主要特点有:1、它有8 个独立的输出通道,并且通过编程可控制其输出波形的周期。
2、每一个输出通道都有一个精确的计数器。
3、每一个通道的PWM 输出使能都可以由编程来控制。
4、PWM输出波形的翻转控制可以通过编程来实现。
5、周期和脉宽可以被双缓冲。
当通道关闭或PWM计数器为0时,改变周期和脉宽才起作用。
6、8 字节或16 字节的通道协议。
,他们提供了一个宽范围的时钟频率。
7、有4 个时钟源可供选择(A、SA、B、SB)8、通过编程可以实现希望的时钟周期。
9、具有遇到紧急情况关闭程序的功能。
10、每一个通道都可以通过编程实现左对齐输出还是居中对齐输出。
HCS12微控制器系列教程---第二讲:PWM 寄存器简介1、PWM启动寄存器PWMEPWME 寄存器每一位如图1所示:复位默认值:0000 0000B图1 PWME 寄存器每一个PWM 的输出通道都有一个使能位PWMEx 。
它相当于一个开关,用来启动和关闭相应通道的PWM 波形输出。
当任意的PWMEx 位置1,则相关的PWM输出通道就立刻可用。
用法:PWME7=1 --- 通道7 可对外输出波形PWME7=0 --- 通道7 不能对外输出波形注意:在通道使能后所输出的第一个波形可能是不规则的。
当输出通道工作在串联模式时(PWMCTL寄存器中的CONxx置1),那么)使能相应的16位PWM 输出通道是由PWMEx的高位控制的,例如:设置PWMCTL_CON01 = 1,通道0、1级联,形成一个16位PWM 通道,由通道1 的使能位控制PWM 的输出。
第一章单片机概论1.1概述在近20年的时间里,计算机得到迅速发展,单片机也得到飞速发展。
世界主要单片机供应商有Freescale、Atmel、Philips、Microchip、SST、TI等,其中Freescale 于2004年从Motorola公司分离出来,成立了独立的Freescale公司,其前身为Motorola的半导体部。
单片机的应用领域非常广泛,所以系列众多,每个系列又有繁多的品种。
随着技术的发展,单片机的功能也越来越多,不断有新的单片机问世。
MCU的基本含义是:在一块芯片上集成了中央处理单元(CPU)、存储器(RAM/ROM等)、定时器/计数器及多种输入输出(I/O)接口的比较完整的数字处理系统。
图1-1给出了典型的MCU组成框图。
单片机是在计算机制造技术发展到一定阶段的背景下出现的,它使计算机从科学计算领域进入到智能化控制领域。
从此,计算机技术在两个重要领域——通用计算机领域和嵌入式(Embedded)计算机领域都获得了极其重要的进展,为计算机的应用开辟了更广阔的空间。
就单片机组成而言,虽然它只是一块芯片,但包含了计算机的基本组成单元,仍由运算图1-1 一个典型的MCU内部框图器、控制器、存储器、输入设备、输出设备五部分组成,只不过这些都集成在一块芯片上,这种结构使得单片机成为具有独特功能的计算机。
由于单片机具有体积小、价格低、稳定可靠等优点,它的出现与迅速发展,是控制系统领域的一场技术革命。
单片机以其较高的性能价格比、灵活性等特点,在嵌入式微控制系统中具有十分重要的地位。
1.2 单片机发展概况单片机作为微型计算机的一个重要分支,其应用范围很广,发展也很快,本节简要叙述单片机的发展历程以及在我国的应用概况,以便了解单片机的发展脉络。
1.2.1 单片机的发展简史1971年Intel公司首次宣布4004的4位微处理器,1974年12月Fairchild(仙童)公司即推出了8位单片机F8,开创了单片机的初级阶段。
飞思卡尔单片机课程设计一、课程目标知识目标:1. 理解飞思卡尔单片机的基本结构、工作原理及功能特点;2. 掌握飞思卡尔单片机的编程语言和开发环境;3. 学会使用飞思卡尔单片机进行简单的电路设计和控制。
技能目标:1. 能够运用所学知识,设计并实现基于飞思卡尔单片机的实际应用项目;2. 培养学生动手操作、调试程序的能力;3. 提高学生团队协作、问题解决的能力。
情感态度价值观目标:1. 培养学生对电子技术、编程的兴趣和热情;2. 培养学生严谨的科学态度,养成良好的实验习惯;3. 增强学生的创新意识,鼓励他们勇于尝试、探索新知。
课程性质:本课程为实践性较强的课程,旨在让学生通过动手实践,掌握飞思卡尔单片机的应用。
学生特点:学生具备一定的电子技术基础知识,对编程有一定了解,但实践经验不足。
教学要求:教师需引导学生主动参与实践,注重启发式教学,关注学生的个体差异,提供针对性的指导。
1. 熟悉飞思卡尔单片机的硬件结构和编程方法;2. 能独立完成简单的飞思卡尔单片机项目设计;3. 具备一定的编程调试能力,能够解决实际应用中的问题;4. 增强团队合作意识,提高沟通与协作能力。
二、教学内容1. 飞思卡尔单片机基础知识:介绍飞思卡尔单片机的硬件结构、工作原理、性能参数等,对应教材第一章内容。
2. 飞思卡尔单片机编程环境:学习飞思卡尔单片机的编程语言和开发工具,如CodeWarrior、Kinetis Design Studio等,对应教材第二章内容。
3. 基本I/O口编程:讲解如何控制飞思卡尔单片机的输入输出口,实现LED 灯、按键等基础控制功能,对应教材第三章内容。
4. 中断与定时器编程:学习中断处理程序编写和定时器使用,掌握时间控制、事件响应等技巧,对应教材第四章内容。
5. 串行通信编程:介绍飞思卡尔单片机串行通信接口的使用,包括UART、SPI、I2C等,对应教材第五章内容。
6. 模拟量与数字量转换:学习ADC、DAC等模块的使用,实现模拟量与数字量的相互转换,对应教材第六章内容。
三种排序对比:选择法,插入法,冒泡法2008年05月21日星期三 09:22三种排序对比:选择法,插入法,冒泡法三种排序都是最基本的,时间复杂度最大为O(n*n)的排序方法。
这里给出的是采用数组形式的简单序列排序(从小到大)。
/*选择法*//*选择法的基本思路:第一次,从第一个记录后面待排序的的记录中,选出最小的,和第一个交换。
然后,循环做n次,这样排完后成序*//*选择法排序是不稳定的:因为两个相同的记录恰恰要反序放置*/#include<stdio.h>int main(){int a[10]={4,6,8,2,0,1,5,7,3,9};/*定义数组*/int i,j,k;for(j=0;j<9;j++)for(i=j+1;i<9;i++) /* i=j+1; 表示每次排好后的记录就不需要再判断了。
*/if(a[i]<a[j]){k=a[i];a[i]=a[j];;a[j]=k;}/*用中间变量k做交换*/for(j=0;j<=9;j++)printf("%d\n",a[j]);system("pause");}/*冒泡法*//*冒泡法的基本思路和选择法不同,如下程序,第一次,通过记录的“两两”比较将所有记录中最大的记录放到最后去。
然后循环9次即可*//*冒泡法排序是稳定的:冒泡的过程中相同的记录位置不会变*/#include<stdio.h>int main(){int a[10]={4,6,8,2,0,1,5,7,3,9};int i,j,k;for(j=0;j<9;j++)for(i=0;i<9-j;i++) /*很显然,已经放到后面的无需再参加冒泡了。
i<9-j;的意思就是*/if(a[i]>a[i+1]){k=a[i];a[i]=a[i+1];a[i+1]=k;}for(j=0;j<=9;j++)printf("%d\n",a[j]);system("pause");}/*插入法*//*插入法的的意思就和我们抓牌一样,把记录分为有序和无序两区。
第二章Freescale 8位单片机概述2.1 08系列MCU的概述Freescale的08系列单片机型号有一百多种。
在这些不同型号的单片机中,资源各不相同,即使是同一种型号的单片机,也有多种封装形式,其I/O口数目也不相同。
表4-1表现了几种08系列单片机的资源差异情况。
表4-1 08系列单片机的资源差异情况表从表4-1可以看出08系列单片机内置资源差异很大,内存容量(RAM)最大的达到4K字节,而最少的只有128个字节;最多的I/O口数有56个,最少的只有6个;闪存(FLASH)最大的达到了60K字节,而最少的只有1.5K字节。
这种差异非常适合于各种不同的应用系统。
在实际应用开发过程中,选择合适的单片机是非常重要的。
HC08系列MCU有很多类型,各种类型除了拥有HC08系列的共同特点外,又具有其自身的特点,可以满足特定的实际需求,如表4-2所示。
表4-2 MC68HC08系列MCU的类型及特点2.2 MC68HC908QY4 MCU的性能概述MC68HC908QY4是MC68HC08 微控制器系列中的产品,MC68HC08 是一种高性能的8位单片机系列,具有速度快、功能强、价格低等特点。
采用高性能的MC68HC08中央处理器与MC68HC05指令代码完全向上兼容5V或3V的工作电压(VDD)5V工作电压时内部总线频率最高为8MHZ,3V时内部总线频率最高为4MHZ8位字节可调整的内置振荡器,可产生3.2MHZ的总线频率,可调范围±5%由STOP状态可以自动唤醒通过CONFIG寄存器可以对MCU进行配置,包括低电压禁止(LVI)设置具有片内FLASH,具有FLASH存储器在线编程功能和保密功能(FLASH编程/擦除的电压由芯片内部电荷泵产生)MC68HC908QY4的FLASH的存储器大小为4096字节128字节的片内ROM双通道16位定时器模块(TIM)MC68HC908QY4具有4路8位模数转换器(ADC)13个双向I/O口,一个单向输入口:所有I/O口都具有很强的吸电流和放电流能力所有I/O口内部上拉电阻6位键盘中断,具有唤醒的特点低电压禁止模块(LVI)具有软件可选的特点,由CONFIG寄存器进行设置系统保护特性:设计算机工作正常(COP)复位低电压检测复位非法指令码检测复位非法地址检测复位IRQ),此引脚与通用输入引脚复用带有内部上拉的外部异步中断引脚(复位引脚(RST),与通用I/O复用上电复位RST和IRQ引脚的内部上拉可以降低外围路的复杂性存储器映射I/O寄存器WAIT和STOP低功耗模式MC68HC908QY4 具有以下封装:16引脚PDIP、SOIC、TSSOP2.3内部结构简图MC68HC908QY4系列结构框图如图2-1所示。
体值,而无需用户自己计算。
由于复位矢量位于Flash空间,并且每个复位/中断矢量占用2字节的Flash空间,因此用DC.W伪指令定义。
注意不能用DS伪指令定义Flash常量。
对于有中断服务子程序的源程序,为了在发生中断时能够响应中断进入相应的中断服务子程序,和填写复位向量类似,只需将中断服务子程序的入口地址填入对应的中断复位向量区即可。
3.6.3汇编程序设计3.6.3.1算术/逻辑运算程序设计MCU主要用于控制目的,其数据运算、处理的能力并不强。
但由于HCS08系列MCU具有相应的算术、逻辑指令,因此它可以完成一些简单的算术/逻辑运算功能。
[例3.1] 若字变量Data1和Data2分别存放着两个16位无符号数,编写求这两个数之和的子程序,并将和存放到Sum字节存储空间中。
两个16位无符号数相加,和为17位,至少需要3个字节的存储空间,和按照从高位到低位的顺序依次存放在以Sum为首地址的字节存储单元中。
Add_Pro:CLC ; 清进位标志位LDA Data1+1ADD Data2+1 ; 两数低八位相加STA Sum+2 ; 存低八位之和LDA Data1ADC Data2 ; 高八位带低八位进位加STA Sum+1 ; 存高八位之和ROLAAND #01HSTA Sum ; 存高八位进位位RTS3.6.3.2查表和散转程序HCS08具有变址寻址方式,实现查表操作非常方便。
利用查表可以实现转换、计算等各种功能。
散转是指根据输入数据的不同跳转到不同的程序入口进行处理。
[例3.2] 单字节变量Hex_Byte中存放了一十六进制数,编写子程序将其转换为两位ASCII码,并将结果存至以Result开首的字节存储单元中。
例如4AH的ASCII码为3441H,$F9的ASCII码为4639H。
……ORG 0070H ; 用户变量一定要定位在Ram区域Hex_Byte DS.B 1Result DS.B 2……ORG 0870HASCII_Table DC.B ‘0123456789ABCDEFG’; 常数表格、代码一定要定位在Flash区域……Hex_To_Ascii:LDA Hex_ByteAND #$F0 ; 取出高4位NSA ; (A[3:0]:A[7:4])→ATAX ; A→XLDA ASCII_Table,X ; 查表,得高4位的ASCII码STA Result ; 存高4位的ASCII码LDA Hex_ByteAND #$0F ; 取出低4位TAX ; A→XLDA ASCII_Table,X ; 查表,得低4位的ASCII码STA Result+1 ; 存低4位的ASCII码RTS[例3.3] 设字节变量Num存放在Ram的0070H单元,取值范围为0T~9T,编写查表子程序,查出变量的立方值,并存入Cube字节变量中。