嵌入式复习资料教学课件PPT.ppt_第1页
嵌入式复习资料教学课件PPT.ppt_第2页
嵌入式复习资料教学课件PPT.ppt_第3页
嵌入式复习资料教学课件PPT.ppt_第4页
嵌入式复习资料教学课件PPT.ppt_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

复 习 嵌入式应用基础 第1章 嵌入式系统(Embedded System)含义:面向测控对象,嵌入到实际应 用系统中,实现嵌入式应用的计算机称之为嵌入式计算机系统,简称嵌入 式系统。 MCU内部总线(控制总线、数据总线、地址总线) CPURAMFlash存储器 A/D转换接口 工作支撑模块 定时器接口串行通信接口其他I/O模块 一个典型的MCU内部框图 第1章 相关术语【重点】 并行通信:将数据的各位同时在多根并行传输线上进行传输。数据的各位 同时由源到达目的地。适合近距离、高速通信。常用有4位、8位、16位、 32位等同时传输 串行通信:数据在单线上按时间先后一位一位地传送,其优点是节省传输 线,但是数据传送速度较慢。在嵌入式系统中,串行通信一词一般特指用 串行通信接口SCI(Serial Communication Interface)与RS232芯片连接的通 信方式。I2C、USB等也是串行通信,但它们有专用名词。 串行外设接口(SPI,Serial Peripheral Interface):主从控制 I2C(Inter Integrated Circuit):I2C总线是一种由PHILIPS公司开发的两线式串 行总线,用于连接MCU及其外围设备。 中断:指中央处理器CPU正在处理某件事情的时候,外部发生了某一事件 ,请求CPU迅速去处理,CPU暂时中断当前的工作,转入处理所发生的事 件,处理完后,再回到原来中断的地方,继续原来的工作,这样的过程称 为中断。 4 图中断响应和处理过程 如果单片机没有中断系统,单片机的大量时间可能会浪费在查询是否有服务请求发生的 定时查询操作上。 采用中断技术完全消除了单片机在查询方式中的等待现象,大大地提高了单片机的工作 效率和实时性。 第1章 第1章 2.1.1 Freescale单片机,基本命名规则 (书P17) 指产品状态 存储器类型标志。 芯片内核。 型号标志。 存储器大小。 工作温度范围标志。 封装标志。 特别说明:Freescale HC08芯片以前命名中包含了“68HC”部分,如:MC908GP32 芯片以前的名称是MC68HC908GP32,在很多资料中对于HC08芯片都沿用了这种方法。 第2章 2.2.4 2.2.4 GP32GP32存储器组织存储器组织 CPU08可寻址64K地址空间, 地址范围是$0000$FFFF, 在寻址范围内分成多个不同 区段,每个区段的作用不同 。 MC68HC908GP32单片机的存储 器组织及地址分配见表2 第2章 RAM区域及其作用 RAM的地址范围:$0040$023F,共512字节。这个区域既是用户RAM ,也是堆栈RAM。空间较小,必须合理安排初始堆栈指针和用户数据 。 有192字节的RAM属于第0页,范围:$0040$00FF,第0页寻址方便 。 复位时 SP = $00FF。 实际编程时,堆栈使用的地址空间是$023F更低地址方向,用户数 据使用的地址空间是$0040更高地址方向。 要给堆栈留有足够的空间,否则运行时可能产生错误。 第2章 第3章 M68HC08系列单片机的各种型号CPU均使用HC08 CPU,有时也将HC08 CPU称为CPU08,它具有如下特点: 目标代码与M68HC05系列单片机向上兼容。 具有16位堆栈指针SP。 具有16位变址寄存器HX。 8MHz CPU内部总线频率。 64KB程序/数据存储器空间。 16种寻址方式。 不经过累加器A的存储器之间数据直接传送。 快速8位8位乘法指令、快速16位与8位相除指令,增强的BCD指令。 模块化结构,可扩展的内部总线定义可使寻址范围超过64KB。 低功耗的STOP、WAIT模式。 第3章 HC08中有5个寄存器【重点】 第3章 指令是对数据的操作,通常把指令中所要操作的数据称为操作数,HC08 CPU所需的操作数可能来自:寄存器、指令代码、存储单元。而确定指令 中所需操作数的各种方法称为寻址方式(Addressing Mode)。寻址方式越 多,指令系统的功能就越强,灵活性也越大。MC68HC08系列单片机的寻 址方式共有16种,比MC68HC05单片机增加了8种。 书书P35P35详释详释【重点】 第3章 取数指令 LDA、LDX(单字节)、LDHX(双字节) LDA #!43 将数据43存到累加器A中 LDX #!43 将数据43存到寄存器X中 LDHX #$0f43 将数据$0f43存到寄存器HX中,其中:H=$0f,X=$43 存数指令 STA、STX、STHX STA $43 将累加器A中的数据存到地址$43的位置中 STX $43 将寄存器X中的数据存到地址$43的位置中 STHX $43 将寄存器H中的数据存到地址$0043的位置中 将寄存器X中的数据存到地址$0044的位置中 第3章【重点】 内在寻址方式(INH,Inherent addressing mode) INCA(即:A=A+1) 立即寻址方式(IMM,Immediate addressing mode) LDA #$FC(即: A=$FC) 直接寻址方式(DIR,Direct addressing mode) LDA $60(即:A=($60) 扩展寻址方式(EXT,Extended addressing mode) LDA $023D 无偏移量变址方式(IX,) LDA ,X (即:A=(HX) 八位偏移量变址方式(IX1,) STA $80,X (即:A=(HX+$80) 十六位偏移量变址方式(IX2,Indexed,16-bit offset addressing mode) 相对变址寻址方式(REL, Relative addressing mode) BRA A1 存储器:直接地址直接地址寻址方式(DD) MOV N1,N2(即:N2=N1) 存储器:直接地址变址、变址加1的寻址方式(DIX+) MOV $80,X+ (即 :(HX)=($80),HX=HX+1) 存储器:立即数直接地址寻址方式(IMD) MOV #!86,N1(即:N1=86) 存储器:变址直接地址、变址加1的寻址方式(IX+D) MOV X+,$80 (即 :($80)=(HX),HX=HX+1) 第3章 思考:说明以下指令的寻址方式思考:说明以下指令的寻址方式 LDA $01 LDA ,X MOV Y,Z STA $01,X LDA #$01 关于堆栈 第3章 取数指令 LDA、LDX(单字节)、LDHX(双字节) 存数指令 STA、STX、STHX 堆栈操作指令【重点】 PSHA、PSHH、PSHX,其中:SP指针相应移动,总指向下一个堆栈地 址 PULA、PULH、PULX 寄存器间数据传送指令 TAP、TAX、【重点】 TXS H:X-1=SP TSX SP+1=HX 存储器间数据传送指令 MOV 第3章 思考2:RAM中一段地址的内容如下 $3203=$FD $A000=$23 $A001=$F2 $A002=$3E $A003=$15 $A004=$AA $A005=$55 $A006=$32 $A007=$00 分析下列语句执行过程中寄存器A,HX值的改变?执行后对RAM内存空间的影响? 1、LDA $A005 ; A=($A005 )地址内容=$55 STA $A007 ; ($A007 )地址内容=$55 2、LDHX #$A001 ; HX=$A001,其中H=$A0,X=$01 LDA $5,X ; A=($A001+ $5 )地址内容=$32 STX $A003 ; ($A003 )地址内容=$01 第3章:思考1 问:MCU晶振频率8MHZ,计算执行下面的语句时候所需的时间 (不用包含ldhx #0及rts指令运行的时间) delayldhx #0 loopnop ;执行1个周期 nop ;执行1个周期 aix #1 ;执行2个周期 cphx #$C000 ;执行3个周期 bne loop ;执行3个周期 rts 第3章:思考1【重点】 问:MCU晶振频率8MHZ,计算执行下面的语句时候所需的时间 (不用包含ldhx #0及rts指令运行的时间) delayldhx #0 loopnop ;执行1个周期 nop ;执行1个周期 aix #1 ;执行2个周期 cphx #$C000 ;执行3个周期 bne loop ;执行3个周期 rts 答案:一个时钟周期=1/8MHz = 0.125ms;查书表格每条指令执行 周期,一次循环执行 1+1+2+3+3=10个周期,$C000=49152次循环, 则共执行(49152次) X (一次10个周期)=491520个周期,耗时 491520 X 0.125ms= 61.44 ms 第3章:思考3 写程序,将内存地址的$0040 - $0080内容复制到$0090 - $00D0中 ,提示:子程序用到两个寄存器:累加器A和变址寄存器HX。在进 入子程序时候要先将它们压入堆栈,在出子程序时候要将他们出堆 栈。 第3章:思考3 写程序,将内存地址的$0040 - $0080内容复制到$0090 - $00D0中 ,提示:子程序用到两个寄存器:累加器A和变址寄存器HX。在进 入子程序时候要先将它们压入堆栈,在出子程序时候要将他们出堆 栈。 ENTERPSHH PSHX PSHA ;入栈 LDHX#$0040 LOOPLDA,X ;取$0040地址处的内容给A STA$50,X ;将A的内容复制到$0040+$50=$0090处 AIX#1 CPX#$81 ;循环从 $0040$0081 BNELOOP PULA PULX PULH ;出栈 RTS 第4章 I/O接口,即输入输出接口,是微控制器同外界进行交互的重要通道。这 些接口千变万化,种类繁多,有显而易见的人机交互接口,如操纵杆、键 盘、显示器;也有无人介入的接口,如网络接口、机器设备接口。 通用I/O: GPIO(General Purpose I/O),是I/O的最基本形式 ,它是一组输入或输出引脚,有时也称为并行I/O(parallel I/O)。 正逻辑: VCC:高电平,1 GND: 低电平 ,0 引脚作为输入时:MCU通过读取IO口寄存器获取引脚高(1)低(0)电平 引脚作为输出时: MCU通过设置IO口寄存器向引脚输出 第4章 输出引脚的基本接法 作为通用输出引脚,MCU内部程序向 该引脚输出高电平或低电平来驱动器 件工作,即开关量输出。如图4-2所示 。其中O1引脚是发光二极管LED的驱 动引脚,当O1引脚输出高电平时, LED不亮;当O1引脚输出低电平时, LED点亮。O2引脚接蜂鸣器驱动电路 ,当O2脚输出高电平时,蜂鸣器响; O2脚输出低电平时,蜂鸣器不响。 第4章 A口的8根引脚与键盘中断模块的引脚复用,这里只讨论A口作为普通I/O 口的功能。 (1)A口的寄存器 A口作为普通I/O口时,具有三个寄存器,它们是:A口数据方向寄存 器(DDRA)、A口数据寄存器(PTA)、A口上拉电阻允许寄存器( PTAPUE)。 A口数据方向寄存器(Data Direction Register A,DDRA) A口数据方向寄存器(DDRA)的地址是:$0004,DDRA的第70位 分别记为DDRA7DDRA0,这些位分别控制着A口引脚PTA7 PTA0是 输入还是输出,若DDRAx=0,则引脚PTAx为输入,若DDRAx=1,则引脚 PTAx为输出。复位时DDRA为$00。 记忆要点:数据方向寄存器的一位:0定义输入,1定义输出 第4章 A口数据寄存器(Port A Data Register,PTA) A口数据寄存器(PTA)的地址是:$0000,PTA的第70位分别记为 PTA7PTA0。若A口的某一引脚PTAx被定义成输出,程序使A口数据寄 存器PTA的相应位PTAx0,则引脚PTAx输出“低电平”;程序使PTAx1 ,则引脚PTAx输出“高电平”。若A口的某一引脚PTAx被定义成输入,程 序通过读取A口数据寄存器PTA,获得输入情况,0表示输入为“低电平”, 1表示输入为“高电平”。 记忆要点: 输出时:数据寄存器的一位:0输出低电平 1输出高电平 输入时:数据寄存器的一位:0代表外部输入低电平 1代表外部输入高电平 第4章 /小灯驱动 .include “LED.h“ /LEDinit:定义控制小灯的MCU引脚为输出-* /功能:定义控制小灯的MCU引脚为输出,并使小灯初始为暗 * /入口:无 * /出口:无 * /堆栈深度:2 * /-* LEDinit: BSET #Light_Pin,Light_D /令小灯引脚为输出 BSET #Light_Pin,Light_P /初始时,小灯“暗“ RTS /LED.h小灯驱动头文件-/小灯控制引脚宏定义 Light_P = PTA /灯(Light)接在PTA口 Light_D = DDRA /相应的方向寄存器 Light_Pin = 1 /所在的引脚 第4章 思考:【重点】 如何点亮? 用C语言如何实现? C语言的数据类型有基本类型和构造类型两大类。基本数据类型如表5-1所示。 注:08C语言的double类型长度为4字节。 构造类型有数组、结构、联合、枚举、指针和空类型。结构和联合是基本数据类型 的组合。枚举是一个被命名为整型常量的集合。空类型字节长度为0,主要有两个用途 :一是明确地表示一个函数不返回任何值;二是产生一个同一类型指针(可根据需要动 态地分配给其内存)。 表5-1 C语言基本数据类型 数据类型简明含义位数字节数值域 signed char有符号字节型81-128+127 unsigned char无符号字节型810255 signed short有符号短整型162-32768+32767 unsigned short无符号短整型162065535 signed int有符号短整型162-32768+32767 unsigned int无符号短整型162065535 signed long有符号长整型324-2147483648+2147483647 unsigned long无符号长整型32404294967295 float浮点型3243.4E-383.4E+38 double双精度型6481.7E-3121.7E+312 第5章 第5章 运算符 C语言的运算符与大多数计算机语言基本相同,分为算术、逻辑、关系和位运算 及一些特殊的操作符。表5-2列出了C语言的部分运算符及使用方法举例.见书P84 由于任意非0值都解释为值,所以条件中可以省略对0的冗余比较。 表5-3给出了08C位操作语句编译后的所对应的指令,从表中可以看出编译器在编译时,已经做了优化 ,将这些C语句变成了08CPU中的位指令,达到和汇编相同的执行效率。 表5-3 08C中的位操作语句及对应的编译后的指令 C语句编译后的汇编指令 PTA |=(17); / PTA的第7位置1Bset 7,0x00 PTA /PTA的第7位清0Bclr 7,0x00 PTA = 0x80; / PTA的第7位取反 LDA 0x00 EOR #-128 STA 0x00 if (PTA 串行发送A中的数 BRCLR 7,SCS1,* ;SCS1.7=0? 为0则等待 STA SCDR ;SCS1.7=1,可以发送数据 ;查询方式接收一个串行数据,接收的数据放入寄存器A中 BRCLR 5,SCS1,* ;SCS1.5=0? 为0则等待 LDA SCDR ;SCS1.5=1,可以取出数据 第8章 44键盘的结构 (键盘的识别方法:书P163) 5k4 列线 n1 n2 n3 n4 行线m1 m2 m3 m4 +5V 8.2 汇编语言键盘中断模块编程实例 VDD MCU 内部上拉电阻 PTA0 PTA1 PTA2 PTA3 PTA7 PTA6 PTA5 PTA4 列线 n1 n2 n3 n4 行线m1 m2 m3 m4 1 2 3 A 4 5 6 B 7 8 9 C * 0 # D 44键盘与单片机接法示例 8.2.1 按键识别与键盘定义子程序 1 EE 2 DE 3 BE A 7E 4 ED 5 DD 6 BD B 7D 7 EB 8 DB 9 BB C 7B * E7 0 D7 # B7 D 77 定义值 键值 (1)键值计算方法 按上图的接法可以得出键值表 ,如下图。键值可以通过扫描 法获得,由键值通过查表法编 程得到定义值。 ( (书书 P165)P165) (2)键盘编程汇编语言子程序 第9章 9.1数码管编程实例 9.1.1扫描法LED显示编程原理 8段数码管一般由8个发光二极管(Llight-emitting diode,LED)组成,每一个位段就 是一个发光二极管。一个8段数码管分别由a、b、c、d、e、f、g位段,外加上一个小 数点的位段h(或记为dp)组成。实物外型见下图。 数码管外形 a g d f ec b h 数码管 8段数码管可分为共阳极和共阴极两种,如下图所示。共阴极8段数码管的信号端高电 平有效,只要在各个位段上加上相应的信号即可使相应的位段发光,共阳极的8段数码 管则相反,在相应的位段加上低电平即可使该位段发光。 abc def gdp (a)共阴极 gnd Vcc abc def gdp (b) 共阳极 4连排数码管同时显示原理 4连排数码管,利用CS3 、CS2、CS1、CS0控制各个数码管的位选信号,每个时刻 只能让一个数码管有效,即CS3 、CS2、CS1、CS0只能有一个为0,例如令CS3=0 ,CS2、CS1、CS0=111,则数据线上的数据体现在第一个数码管上,其他则不受影 响。要让各个数据管均显示需要的数字,则必须逐个使相应位选信号为0,其他位选 信号为1,并将要显示的一位数字送到数据线上。这种方法叫“位选线扫描法”。虽然每 个时刻只有一个数码管有效,但只要延时适当,由于人眼的“视觉暂留效应”(约100ms 左右),看起来则是同时显示的。 4连排共阴极8段数码管 CS3 abcde f g dp CS2 abcde f g dp CS1 abcde f g dp CS0 abcde f g dp 9.1.2接口实例 一个4连排共阴极8段数码管的编程实例。 在硬件连接上,利用MCU的B口控制8个 位段(数据),用C口的低四位控制数码管 的位选信号。图中,PTB70分别接ha 位段,PTC30分别过1K电阻与CS30 位选端相接,这样PTB3就控制最左边一 个数码管的显示,PTC0则控制最右边一 个数码管的显示。接在位选线上的1K电阻 是限流电阻,避免电流过大烧坏数码管。 CS2CS1 a g d f ec b h abf CS0 PTC3 PTB6 PTB2 PTB7 PTB3 PTB4 1K 1K 1K 1K g c h d e 6 5 4 3 2 1 CS3 12 11 10 9 8 7 PTB1 PTC2 PTC1 PTB5 PTB0 PTC0 a g d f ec b h a g d f ec b h a g d f ec b h 思 考【重点】 按照书P178图9-4的连接。若要使第1个数码管显示数字0, 其它数码管不显示。则应该在PTC0-3,PTB0-7端口各自输 出什么电平信号? 思 考【重点】 按照书P178图9-4的连接。若要使第1个数码管显示数字0,其它数码管不显示。 则应该在PTC0-3,PTB0-7端口各自输出什么电平信号? 1-片选 CS3=0, CS2,CS1,CS0=1即:PTC3=0,PTC2,1,0=1 2-输出 abcdef点亮即输出高电平1,即PTB=0b 00111111 思考2:如果要输出数字 1234,该如何显示? 第9章 读LCD显示程序 第12章 MC68HC08系列的单片机可以提供多个独立的定时器,例如,GP32芯片 有两个定时器,分别叫定时器1、定时器2,它们的工作原理是一的,下面 的说明均以定时器1为例。 HC08系列的单片机定时器的核心是一个处于不断加1的16位计数寄存 器,简称为计数器。该计数器的时钟频率由外部晶振时钟(也可以是由锁 相环模块得到的总线时钟)经过预定的分频因子分频得到。 设定定时间隔:在定时器内部有个控制和状态寄存器,通过对它某些位 的设置,就可以确定多少时间计数器加1,即定时间隔。 设定溢出时间长度:在定时器内部有个预置寄存器,当计数器的值等于 预置寄存器的值时,称为计数器溢出,当计数器溢出时,计数器的值被赋 0,同时将计数器溢出标志等状态置于控制和状态寄存器中。 定时器的计数器溢出 :在定时器内部有个预置寄存器,当计数器的值等 于预置寄存器的值时,称为计数器溢出 第12章 MC68HC908GP32 MCU定时器基本功能及主要特征: HC08系列的单片机定时器具有输入捕捉、输出比较、PWM、脉冲输出 、DMA直接存储器访问等功能。 以下简要给出MC68HC908GP32的定时器的主要特征: 每个定时器具有两路独立的输入捕捉输出比较通道。 带缓冲(Buffered)和不带缓冲(Unbuffered)的脉宽 调制波。 七种可编程选择的分频因子。 预置计数。 计数器停止或清除。 16位输入捕捉和通道寄存器。 定时器溢出中断、每路通道的输入捕捉输出比较中断 。 12.2 定时器模块的编程基础(书P252) D7 TOF位:定时器溢出标志位 。当16位计数寄存器 T1CNT中的值达到设定值(在16位预置寄存器T1MOD中)时 ,TOF=1,同时T1CNT=$0000。 D6 TOIE位:定时器溢出中断允许位(Timer Overflow Interrupt Enable Bit)。该位用来设置是否允许 定时器溢出中断。TOIE=1,允许定时器溢出中断,TOIE=0 ,不允许定时器溢出中断。 12.2.1 定时器模块的3个基本寄存器 (1)T1状态和控制寄存器(Timer 1 Status and Control Register,T1SC) T1SC的地址:$0020,定义为: 数据位 D7 D6 D5 D4 D3 D2 D1 D0 定义 TOF TOIE TSTOP TRST - PS2 PS1 PS0 复位 0 0 1 0 0 0 0 0 第12章 (1)T1状态和控制寄存器(Timer 1 Status and Control Register,T1SC) D5 TSTOP位:定时器计数停止位(Timer Count Stop Bit)。该位用来控 制计数器的计数停止和恢复。对该位写入1,定时器的计数寄存器将保持当前的 值,停止计数。 D4 TRST位:定时器复位位(Timer Reset Bit )。向该位写入1将清除定时 器的计数寄存器和设定的分频因子,该位通常为0。 D3 未定义。 D2D0 PS2PS0位:定时器分频因子选择位(Timer Prescaler Select Bits)。这三位定义定时器的分频因子,记为:p,定义如下: PS2、PS1、PS0=000 001 010 011 100 101 110 111 p =1 2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论