嵌入式复习精华_第1页
嵌入式复习精华_第2页
嵌入式复习精华_第3页
嵌入式复习精华_第4页
嵌入式复习精华_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

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

文档简介

1、复复 习习嵌入式技术基础与实践嵌入式技术基础与实践第第1 1章章嵌入式系统(Embedded System)含义:面向测控对象,嵌入到实际应用系统中,实现嵌入式应用的计算机称之为嵌入式计算机系统,简称嵌入式系统。MCUMCU内部总线(控制总线、数据总线、地址总线)内部总线(控制总线、数据总线、地址总线)CPUCPURAMRAMFlashFlash存储器存储器A/DA/D转换接口转换接口工作支撑模块工作支撑模块定时器接口定时器接口串行通信接口串行通信接口其他其他I/OI/O模块模块一个典型的一个典型的MCUMCU内部框图内部框图第第1 1章章相关术语相关术语【重点重点】并行通信:将数据的各位同时

2、在多根并行传输线上进行传输。数据的各位同时由源到达目的地。适合近距离、高速通信。常用有4位、8位、16位、32位等同时传输 串行通信:数据在单线上按时间先后一位一位地传送,其优点是节省传输线,但是数据传送速度较慢。在嵌入式系统中,串行通信一词一般特指用串行通信接口SCI(Serial Communication Interface)与RS232芯片连接的通信方式。I2C、USB等也是串行通信,但它们有专用名词。串行外设接口(SPI,Serial Peripheral Interface):主从控制I2C(Inter Integrated Circuit):I2C总线是一种由PHILIPS公司开

3、发的两线式串行总线,用于连接MCU及其外围设备。中断:指中央处理器CPU正在处理某件事情的时候,外部发生了某一事件,请求CPU迅速去处理,CPU暂时中断当前的工作,转入处理所发生的事件,处理完后,再回到原来中断的地方,继续原来的工作,这样的过程称为中断。4图图中断响应和处理过程中断响应和处理过程如果单片机没有中断系统如果单片机没有中断系统,单片机的大量时间可能会浪费在查询是否有服务请求发生的,单片机的大量时间可能会浪费在查询是否有服务请求发生的定时查询操作上。定时查询操作上。采用中断技术完全采用中断技术完全消除了单片机在查询方式中的等待现象消除了单片机在查询方式中的等待现象,大大地提高了单片机

4、的,大大地提高了单片机的工作工作效率效率和和实时性实时性。第第1章章第第1 1章章 2.1.1 Freescale单片机,基本命名规则(书P17)指产品状态 存储器类型标志。 芯片内核。 型号标志。 存储器大小。 工作温度范围标志。 封装标志。 特别说明:Freescale HC08芯片以前命名中包含了“68HC”部分,如:MC908GP32芯片以前的名称是MC68HC908GP32,在很多资料中对于HC08芯片都沿用了这种方法。 第第2 2章章 CPU08可寻址64K地址空间,地址范围是$0000$FFFF,在寻址范围内分成多个不同区段,每个区段的作用不同。MC68HC908GP32单片机的

5、存储器组织及地址分配见 表表22第第2 2章章RAM区域及其作用RAM的地址范围:$0040$023F,共512字节。这个区域既是用户RAM,也是堆栈RAM。空间较小,必须合理安排初始堆栈指针和用户数据。有192字节的RAM属于第0页,范围:$0040$00FF,第0页寻址方便。复位时 SP = $00FF。实际编程时,堆栈使用的地址空间是$023F更低地址方向,用户数据使用的地址空间是$0040更高地址方向。要给堆栈留有足够的空间,否则运行时可能产生错误。第第2 2章章第第3 3章章M68HC08系列单片机的各种型号系列单片机的各种型号CPU均使用均使用HC08 CPU,有时也将,有时也将H

6、C08 CPU称为称为CPU08,它具有如下特点:,它具有如下特点:目标代码与目标代码与M68HC05系列单片机系列单片机向上兼容向上兼容。具有具有16位堆栈指针位堆栈指针SP。具有具有16位变址寄存器位变址寄存器HX。8MHz CPU内部总线频率。内部总线频率。64KB程序程序/数据存储器空间。数据存储器空间。16种寻址方式。种寻址方式。不经过累加器不经过累加器A的存储器之间数据直接传送。的存储器之间数据直接传送。快速快速8位位8位乘法指令、快速位乘法指令、快速16位与位与8位相除指令,增强的位相除指令,增强的BCD指令。指令。模块化结构,可扩展的内部总线定义可使寻址范围超过模块化结构,可扩

7、展的内部总线定义可使寻址范围超过64KB。低功耗的低功耗的STOP、WAIT模式。模式。第第3 3章章HC08中有中有5个寄存器个寄存器【重点重点】第第3 3章章指令是对数据的操作,指令是对数据的操作,通常把指令中所要操作的数据称为通常把指令中所要操作的数据称为操作数操作数,HC08 CPU所需的操作数可能来自:寄存器、指令代码、存储单元。而所需的操作数可能来自:寄存器、指令代码、存储单元。而确定指令中确定指令中所需操作数的各种方法称为所需操作数的各种方法称为寻址方式寻址方式(Addressing Mode)。寻址方式越多,。寻址方式越多,指令系统的功能就越强,灵活性也越大。指令系统的功能就越

8、强,灵活性也越大。MC68HC08系列单片机的寻址方式系列单片机的寻址方式共有共有16种,比种,比MC68HC05单片机增加了单片机增加了8种。种。【重点重点】 第第3 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中的数据

9、存到地址$0043的位置中 将寄存器X中的数据存到地址$0044的位置中第第3 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 无偏移量变址方式无偏移量变址方式

10、(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+) MO

11、V $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 3章章LDA $01 LDA ,XMOV Y,ZSTA $01,XLDA #$01关于堆栈关于堆栈第第3 3章章 取数指令 LDA、LDX(单字节)、LDHX(双字节) 存数指令 STA、STX、STHX 堆栈操作指令【重点重点】 PSHA、PSHH、

12、PSHX,其中:SP指针相应移动,总指向下一个堆栈地址 PULA、PULH、PULX 寄存器间数据传送指令 TAP、TAX、【重点重点】 TXS H:X-1=SP TSX SP+1=HX存储器间数据传送指令 MOV第第3 3章章思考思考2:RAM中一段地址的内容如下中一段地址的内容如下 $3203=$FD $A000=$23 $A001=$F2 $A002=$3E $A003=$15 $A004=$AA $A005=$55 $A006=$32 $A007=$00分析下列语句执行过程中寄存器分析下列语句执行过程中寄存器A,HX值的改变?执行后对值的改变?执行后对RAM内存空间的影响?内存空间的影

13、响?1、LDA $A005 ; A=($A005 )地址内容地址内容=$55 STA $A007 ; ($A007 )地址内容地址内容=$552、LDHX #$A001 ; HX=$A001,其中其中H=$A0,X=$01 LDA $5,X ; A=($A001+ $5 )地址内容地址内容=$32 STX $A003 ; ($A003 )地址内容地址内容=$01第第3 3章:思考章:思考1 1问:MCU晶振频率8MHZ,计算执行下面的语句时候所需的时间(不用包含ldhx #0及rts指令运行的时间)delayldhx #0loopnop ;执行1个周期nop ;执行1个周期aix #1 ;执行

14、2个周期cphx #$C000 ;执行3个周期bne loop ;执行3个周期rts第第3 3章:思考章:思考1 1【重点重点】问:MCU晶振频率8MHZ,计算执行下面的语句时候所需的时间(不用包含ldhx #0及rts指令运行的时间)delayldhx #0loopnop ;执行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

15、 (一次10个周期)=491520个周期,耗时491520 X 0.125ms= 61.44 ms第第3 3章:思考章:思考2 2 问:对下列语句进行解码?8000 4F 3F 4E 45 00 50 FB 24 03 3C 4E AF 01 A3 60 26 F5 B7 4F 81 查书P417表格对应指令以及寻址方式即可得出!第第3 3章:思考章:思考2 2 问:对下列语句进行解码?8000 4F 3F 4E 45 00 50 FB 24 03 3C 4E AF 01 A3 60 26 F5 B7 4F 81 答案:查书P417表格对应指令以及寻址方式即可得出!STARTCLRA ; 4F

16、 CLR $4E ; 3F 4ELDHX #$0050 ; 45 00 50LOOPADD ,X ;FBBCC CONT ;24 03 指定跳转位置从当前其向下INC $4E ;3C 4ECONTAIX #1 ;AF 01CPX #$60 ;A3 60BNE LOOP ;26 F5 表示-5,跳转从上一位置向上STA $4F ;B7 47RTS ;81第第3 3章:思考章:思考3 3【重点重点】写程序,将内存地址的$0040 - $0080内容复制到$0090 - $00D0中,提示:子程序用到两个寄存器:累加器A和变址寄存器HX。在进入子程序时候要先将它们压入堆栈,在出子程序时候要将他们出堆

17、栈。第第3 3章:思考章:思考3 3【重点重点】写程序,将内存地址的$0040 - $0080内容复制到$0090 - $00D0中,提示:子程序用到两个寄存器:累加器A和变址寄存器HX。在进入子程序时候要先将它们压入堆栈,在出子程序时候要将他们出堆栈。ENTERPSHHPSHXPSHA ;入栈LDHX#$0040LOOPLDA,X ;取$0040地址处的内容给ASTA$50,X ;将A的内容复制到$0040+$50=$0090处AIX#1CPX#$81 ;循环从 $0040$0081BNELOOPPULAPULXPULH ;出栈RTS第第4 4章章I/O接口,即输入输出接口接口,即输入输出接

18、口,是微控制器同外界进行交互的重要通道。这些接,是微控制器同外界进行交互的重要通道。这些接口千变万化,种类繁多,有显而易见的人机交互接口,如操纵杆、键盘、显口千变万化,种类繁多,有显而易见的人机交互接口,如操纵杆、键盘、显示器;也有无人介入的接口,如网络接口、机器设备接口。示器;也有无人介入的接口,如网络接口、机器设备接口。 通用通用I/O: GPIO(General Purpose I/O),是,是I/O的最基本形式,的最基本形式,它是一组输入或输出引脚,有时也称为并行它是一组输入或输出引脚,有时也称为并行I/O(parallel I/O)。正逻辑:正逻辑: VCC:高电平,:高电平,1 G

19、ND: 低电平低电平 ,0引脚作为输入时:引脚作为输入时:MCU通过读取通过读取IO口寄存器获取引脚高口寄存器获取引脚高(1)低低(0)电平电平引脚作为输出时:引脚作为输出时: MCU通过设置通过设置IO口寄存器向引脚输出口寄存器向引脚输出第第4 4章章输出引脚的基本接法输出引脚的基本接法作为通用输出引脚,作为通用输出引脚,MCU内部程序向该引内部程序向该引脚输出高电平或低电平来驱动器件工作脚输出高电平或低电平来驱动器件工作,即开关量输出。如图即开关量输出。如图4-2所示。其中所示。其中O1引引脚是发光二极管脚是发光二极管LED的驱动引脚,的驱动引脚,当当O1引脚输出高电平时引脚输出高电平时,

20、LED不亮;不亮;当当O1引引脚输出低电平时脚输出低电平时,LED点亮。点亮。O2引脚接引脚接蜂鸣器驱动电路,蜂鸣器驱动电路,当当O2脚输出高电平时脚输出高电平时,蜂鸣器响;蜂鸣器响;O2脚输出低电平时脚输出低电平时,蜂鸣器,蜂鸣器不响。不响。第第4 4章章A口的8根引脚与键盘中断模块的引脚复用,这里只讨论A口作为普通I/O口的功能。 (1)A口的寄存器 A口作为普通I/O口时,具有三个寄存器,它们是:A口数据方向寄存器(DDRA)、A口数据寄存器(PTA)、A口上拉电阻允许寄存器(PTAPUE)。 A口数据方向寄存器(Data Direction Register A,DDRA) A口数据方

21、向寄存器(DDRA)的地址是:$0004,DDRA的第70位分别记为DDRA7DDRA0,这些位分别控制着A口引脚PTA7 PTA0是输入还是输出,若DDRAx=0,则引脚PTAx为输入,若DDRAx=1,则引脚PTAx为输出。复位时DDRA为$00。 记忆要点:数据方向寄存器的一位:0定义输入,1定义输出 第第4 4章章 A口数据寄存器(Port A Data Register,PTA)A口数据寄存器(PTA)的地址是:$0000,PTA的第70位分别记为PTA7PTA0。若A口的某一引脚PTAx被定义成输出,程序使A口数据寄存器PTA的相应位PTAx0,则引脚PTAx输出“低电平”;程序使

22、PTAx1,则引脚PTAx输出“高电平”。若A口的某一引脚PTAx被定义成输入,程序通过读取A口数据寄存器PTA,获得输入情况,0表示输入为“低电平”,1表示输入为“高电平”。记忆要点: 输出时:数据寄存器的一位:0输出低电平 1输出高电平输入时:数据寄存器的一位:0代表外部输入低电平 1代表外部输入高电平 第第4 4章章/小灯驱动小灯驱动.include LED.h /LEDinit:定义控制小灯的定义控制小灯的MCU引脚为输出引脚为输出-*/功能功能:定义控制小灯的定义控制小灯的MCU引脚为输出引脚为输出,并使小灯初始为暗并使小灯初始为暗 */入口入口:无无 */出口出口:无无 */堆栈深

23、度堆栈深度: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 4章章思考:思考:【重点重点】如何点亮?如何点亮?用用C C语言如何实现?语言如何实现?C语言的数据类型有基本类型和构造类型两大类。基本数据类型如表语言的数据类型有基本类型和构造类型两大类

24、。基本数据类型如表5-1所示所示。 注注:08C语言的double类型长度为4字节。构造类型构造类型有数组、结构、联合、枚举、指针和空类型。结构和联合是基本数据类型的组合。枚举是一个被命名为整型常量的集合。空类型字节长度为0,主要有两个用途:一是明确地表示一个函数不返回任何值;二是产生一个同一类型指针(可根据需要动态地分配给其内存)。表表5-1 C语言基本数据类型语言基本数据类型数据类型数据类型简明含义简明含义位数位数字节数字节数值域值域signed char有符号字节型有符号字节型81-128+127unsigned char无符号字节型无符号字节型810255signed short有符号

25、短整型有符号短整型162-32768+32767unsigned short无符号短整型无符号短整型162065535signed int有符号短整型有符号短整型162-32768+32767unsigned int无符号短整型无符号短整型162065535signed long有符号长整型有符号长整型324-2147483648+2147483647unsigned long无符号长整型无符号长整型32404294967295float浮点型浮点型3243.4E-383.4E+38double双精度型双精度型6481.7E-3121.7E+312第第5 5章章第第5 5章章运算符 C语言的运

26、算符与大多数计算机语言基本相同,分为算术、逻辑、关系和位运算及一些特殊的操作符。表5-2列出了C语言的部分运算符及使用方法举例.见书P84由于任意非0值都解释为值,所以条件中可以省略对0的冗余比较。表5-3给出了08C位操作语句编译后的所对应的指令,从表中可以看出编译器在编译时,已经做了优化,将这些C语句变成了08CPU中的位指令,达到和汇编相同的执行效率。表表5-3 08C中的位操作语句及对应的编译后的中的位操作语句及对应的编译后的指令指令C语句语句编译后的汇编指令编译后的汇编指令PTA |=(17); / PTA的第的第7位置位置1Bset 7,0 x00 PTA &= (17); /PT

27、A的第的第7位清位清0Bclr 7,0 x00PTA = 0 x80; / PTA的第的第7位取反位取反LDA 0 x00EOR #-128STA 0 x00if (PTA & 0 x81) = 0) / 检查第检查第7位和第位和第0位是否为位是否为0LDA 0 x00BIT #-127BNE 0 x08C中除了上述的位操作的方法外,还可以综合共用体和位域等多种数据类型,中除了上述的位操作的方法外,还可以综合共用体和位域等多种数据类型,很直观地实现位操作,关于这部分的讲述读者参考本章的进一步讨论部分。很直观地实现位操作,关于这部分的讲述读者参考本章的进一步讨论部分。第第5 5章章【重点重点】7

28、.1.1 基本概念()异步串行通信的格式 SCI通常采用NRZ数据格式,即:standard non-return-zero mark/space data format,译为:“标准不归零传号/空号数据格式”。“不归零”的最初含义是:用正、负电平表示二进制值,不使用零电平。“mark/space”即“传号/空号”分别是表示两种状态的物理名称,逻辑名称记为“1/0”。下图给出了 8位数据、无校验情况的传送格式。第第0位位第第1位位第第2位位第第3位位第第 4位位第第5位位第第6位位第第7位位停止位停止位开始位开始位SCI数据格式第第7 7章章第第7 7章章波特率(baud rate):每秒内传

29、送的位数。 波特率单位是位/秒,记为bps。通常情况下,波特率的单位可以省略。通常使用的波特率有300、600、900、1200、1800、2400、4800、9600、19200、38400。 单工(Simplex):数据传送是单向的,一端为发送端,另一端为接收端。这种传输方式中,除了地线之外,只要一根数据线就可以了。有线广播就是单工的。 全双工(Full-duplex):数据传送是双向的,且可以同时接收与发送数据。这种传输方式中,除了地线之外,需要两根数据线,站在任何一端的角度看,一根为发送线,另一根为接收线。一般情况下,MCU的异步串行通信接口均是全双工的。 半双工(Half-duple

30、x):数据传送也是双向的,但是在这种传输方式中,除了地线之外,一般只有一根数据线。任何一个时刻,只能由一方发送数据,另一方接收数据,不能同时收发。在freescale的HC08系列MCU中,监控模式的通信就采用这种方式。 第第7 7章章 串行通信的传输方式7.2.2 SCI的基本编程原理SCI编程模型SCI 数据寄存器数据寄存器MCU MCU 的的 内内 部部 总总 线线 (Internal BusInternal Bus)接收移位寄存器发送移位寄存器接收引脚接收引脚RxD发送引脚发送引脚TxDSCI 控制寄存器控制寄存器SCI状态寄存器状态寄存器SCI波特率寄存器波特率寄存器返回返回7.3

31、GP32 SCI模块寄存器 SCI的寄存器 MC68HC908GP32的SCI有7个寄存器,地址为$0013$0019 。(1)SCI波特率寄存器(SCI Baud Rate Register,SCBR) SCBR的作用是设置串行通信的波特率 ,其地址是$0019。 D7、D6、D3:未定义; D5D4 SCP:波特率预分频位(SCI Baud Rate Prescaler Bits) SCP1、SCP0=00 01 10 11 PD= 1 3 4 13数据位数据位 D7 D6 D5 D4 D3 D2 D1 D0定义定义 x x SCP1 SCP0 x SCR2 SCR1 SCR0复位复位 0

32、 0 0 0 0 0 0 0 D2D0 SCR:波特率选择位(SCI Baud Rate Select Bits),定义波特率另一分频值,记为:BD,定义如下: SCR2、1、0 =000 001 010 011 100 101 110 111 BD = 1 2 4 8 16 32 64 128 设fSCI为串行通信时钟源频率,fSCI= fBUS或CGMXCLK,取决于CONFIG2的SCIBDSRC,一般设定SCIBDSRC=1,SCI用内部总线时钟,则fSCI= fBUS,则波特率的定义公式为: BtfBUS /(64PDBD)已知已知fbus=2.4576MHZ;SCBR=0b 001

33、00001。求波特率为多少?。求波特率为多少?Bt2457600 /(6442)=4800(1)SCI波特率寄存器(SCI Baud Rate Register,SCBR) 【重点重点】(2) SCI控制寄存器1(SCI Control Register 1,SCC1)SCC1的地址是:$0013 ,定义为: D7 D6 D5 D4 D3 D2 D1 D0 0 0 0 0 0 0 0 0复位 LOOPS ENSCI TXINV M WAKE ILTY PEN PTY定义数据位循环模式循环模式选择位选择位SCI允许位允许位奇偶校验奇偶校验允许位允许位空闲线空闲线类型位类型位唤醒条件位唤醒条件位模

34、式模式-字符字符长度选择位长度选择位发送反转发送反转标志位标志位奇偶校验类奇偶校验类型选择位型选择位(3) SCI控制寄存器2(SCI Control Register 2,SCC2)SCC2的地址是:$0014 ,定义为:发送中断发送中断允许位允许位 发送完成中发送完成中断允许位断允许位 接收器唤接收器唤醒位醒位发送器允许位发送器允许位 接收中断接收中断允许位允许位 0 0 0 0 0 0 0 0复位SCTIE TCIE SCRIE ILIE TE RE RWU SBK定义 D7 D6 D5 D4 D3 D2 D1 D0数据位空闲线中空闲线中断允许位断允许位接收器接收器允许位允许位 发送终止

35、位发送终止位 (4) SCI控制寄存器3(SCI Control Register 3,SCC3)SCC3的地址是:$0015 ,定义为: 0 0 0 0 0 0 0 0复位R8 T8 DMARE DMATE ORIE NEIE FEIE PEIE 定义 D7 D6 D5 D4 D3 D2 D1 D0数据位接收位接收位8 发送位发送位8 接收器帧接收器帧错误中断错误中断允许位允许位 接收器噪接收器噪声错误中声错误中断允许位断允许位 接收器溢出接收器溢出中断允许位中断允许位 DMA发送发送允许位允许位 DMA接收接收允许位允许位 接收器奇偶错接收器奇偶错误中断允许位误中断允许位 第第7 7章章发

36、送数据是通过判断状态寄存器SCS1的第7位(SCTE)进行的,而接收数据是通过判断状态寄存器SCS1的第5位(SCRF)进行的。不论是发送还是接收,均使用SCI数据寄存器SCDR。发送时,将要发送的数据送入SCDR即可,接收时,从SCDR中取出的即是收到的数据。 ;串行发送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键盘的结构键盘的

37、结构 (键盘的识别方法:书键盘的识别方法:书P163)5k4 列线 n1 n2 n3 n4行线m1m2m3m4+5V 8.2 8.2 汇编语言键盘中断模块编程实例汇编语言键盘中断模块编程实例VDD MCU内部上拉电阻PTA0PTA1PTA2PTA3PTA7PTA6PTA5PTA4 列线 n1 n2 n3 n4行线m1 m2m3m4 1 2 3 A 4 5 6 B 7 8 9 C * 0 # D44键盘与单片机接法示例 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

38、# B7 D 77定义值键值(1)键值计算方法)键值计算方法按上图的接法可以得出键值表,按上图的接法可以得出键值表,如下图。如下图。键值可以通过扫描法键值可以通过扫描法获得,由键值通过查表法编程获得,由键值通过查表法编程得到定义值。得到定义值。 (2)键盘编程汇编语言子程序)键盘编程汇编语言子程序第第9 9章章 9.19.1数码管编程实例数码管编程实例9.1.1扫描法LED显示编程原理 8段数码管一般由8个发光二极管(Llight-emitting diode,LED)组成,每一个位段就是一个发光二极管。一个8段数码管分别由a、b、c、d、e、f、g位段,外加上一个小数点的位段h(或记为dp)

39、组成。实物外型见下图。数码管外形数码管外形agdfecbh数码管数码管8段数码管可分为共阳极和共阴极两种,如下图所示。共阴极8段数码管的信号端高电平有效,只要在各个位段上加上相应的信号即可使相应的位段发光,共阳极的8段数码管则相反,在相应的位段加上低电平即可使该位段发光。abcdefgdp(a)共阴极gndVccabcdefgdp(b) 共阳极4 4连排数码管同时显示原理连排数码管同时显示原理4连排数码管,利用CS3 、CS2、CS1、CS0控制各个数码管的位选信号,每个时刻只能让一个数码管有效,即CS3 、CS2、CS1、CS0只能有一个为0,例如令CS3=0,CS2、CS1、CS0=111

40、,则数据线上的数据体现在第一个数码管上,其他则不受影响。要让各个数据管均显示需要的数字,则必须逐个使相应位选信号为0,其他位选信号为1,并将要显示的一位数字送到数据线上。这种方法叫“位选线扫描法”。虽然每个时刻只有一个数码管有效,但只要延时适当,由于人眼的“视觉暂留效应”(约100ms左右),看起来则是同时显示的。 4 4连排共阴极连排共阴极8 8段数码管段数码管 CS3abcdefg dpCS2abcdefg dpCS1abcdefg dpCS0abcdefg dp 9.1.29.1.2接口实例接口实例一个4连排共阴极8段数码管的编程实例。在硬件连接上,利用MCU的B口控制8个位段(数据),

41、用C口的低四位控制数码管的位选信号。图中,PTB70分别接ha位段,PTC30分别过1K电阻与CS30位选端相接,这样PTB3就控制最左边一个数码管的显示,PTC0则控制最右边一个数码管的显示。接在位选线上的1K电阻是限流电阻,避免电流过大烧坏数码管。CS2CS1agdfecbhabfCS0PTC3PTB6PTB2PTB7PTB3PTB41K1K 1K1 Kgchde654321CS3121110987PTB1PTC2PTC1PTB5PTB0PTC0agdfecbhagdfecbhagdfecbh思思 考考【重点重点】按照书P178图9-4的连接。若要使第1个数码管显示数字0,其它数码管不显示

42、。则应该在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=12-输出 abcdef点亮即输出高电平1,即PTB=0b 00111111思考2:如果要输出数字 1234,该如何显示?第第9 9章章读LCD显示程序【重点重点】第第1212章章MC68HC08系列的单片机可以提供多个独立的定时器,例如,系列的单片机可以提供多个独立的定时器,例如,GP32

43、芯片有芯片有两个定时器,分别叫定时器两个定时器,分别叫定时器1、定时器、定时器2,它们的工作原理是一的,下面的说,它们的工作原理是一的,下面的说明均以定时器明均以定时器1为例。为例。 HC08系列的单片机定时器的系列的单片机定时器的核心核心是是一个处于不断加一个处于不断加1的的16位计数寄存器,位计数寄存器,简称为计数器简称为计数器。该计数器的时钟频率由外部晶振时钟(也可以是由锁相环模。该计数器的时钟频率由外部晶振时钟(也可以是由锁相环模块得到的总线时钟)经过预定的分频因子分频得到。块得到的总线时钟)经过预定的分频因子分频得到。 设定定时间隔:设定定时间隔:在定时器内部有个控制和状态寄存器,通

44、过对它某些位的在定时器内部有个控制和状态寄存器,通过对它某些位的设置,就可以确定多少时间计数器加设置,就可以确定多少时间计数器加1,即定时间隔。,即定时间隔。 设定溢出时间长度:设定溢出时间长度:在定时器内部有个预置寄存器,当计数器的值等于预在定时器内部有个预置寄存器,当计数器的值等于预置寄存器的值时,称为计数器溢出,当计数器溢出时,计数器的值被赋置寄存器的值时,称为计数器溢出,当计数器溢出时,计数器的值被赋0,同,同时将计数器溢出标志等状态置于控制和状态寄存器中。时将计数器溢出标志等状态置于控制和状态寄存器中。 定时器的计数器溢出定时器的计数器溢出 :在定时器内部有个预置寄存器,当计数器的值

45、等于:在定时器内部有个预置寄存器,当计数器的值等于预置寄存器的值时,称为计数器溢出预置寄存器的值时,称为计数器溢出 第第1212章章MC68HC908GP32 MCUMC68HC908GP32 MCU定时器基本功能及主要特征:定时器基本功能及主要特征: HC08系列的单片机定时器具有系列的单片机定时器具有输入捕捉、输出比较、输入捕捉、输出比较、PWM、脉冲输出、脉冲输出、DMA直接存储器访问等功能。直接存储器访问等功能。 以下简要给出以下简要给出MC68HC908GP32的定时器的主要特征:的定时器的主要特征: 每个定时器具有两路独立的输入捕捉输出比较通道。 带缓冲(Buffered)和不带缓

46、冲(Unbuffered)的脉宽调制波。 七种可编程选择的分频因子。 预置计数。 计数器停止或清除。 16位输入捕捉和通道寄存器。 定时器溢出中断、每路通道的输入捕捉输出比较中断。12.2 定时器模块的编程基础(书P252) D7 TOF位:定时器溢出标志位位:定时器溢出标志位 。当。当16位计数寄存器位计数寄存器T1CNT中的值达到设定值中的值达到设定值(在在16位预置寄存器位预置寄存器T1MOD中中)时,时,TOF=1,同时,同时T1CNT=$0000。 D6 TOIE位:定时器溢出中断允许位(位:定时器溢出中断允许位(Timer Overflow Interrupt Enable Bit

47、)。该位用来设置是否允)。该位用来设置是否允许定时器溢出中断。许定时器溢出中断。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

48、 0第第1212章章(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)。这三位定义

温馨提示

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

评论

0/150

提交评论