Freescale-AW60单片机作业整理.docx
谟水线技木 ( 指令分支JW <ttw>.i>ttiR DB-回IStJ CB.I中”泾卜II AB (*Irw4 II限制条件(整线卜Dtt%S- 4茨核多色(井行T.AB I第一章AW60的微处理骞工作过程:程序的执行过程;设程序的指令代码已存放在存贮器中。为执行程序,CPU按照时钟节拍.产生一系列做操作控制信号,有规则地电史进行以下过程(DBlU从存贮器中取出条指令码存入指令队列.(2) EU从指令队列取指令码并执行指令.BlU利用总线空闲时间.从内存取第二条指令或取第三条指令存入指令队列.(3) EUikkE条指令.如果前面条指令有写存贮器的要求,则通知BlU把前条指令结果写到存公器中,然后再取指令存入指令队列.1,何为CPU?如何理解CPU?课程的核心框架:计诧机E大部分:Cro(运“冰捽制制)、存储器(RAlI、ROMk1/0(输入议稿、输出设着)以卜是一个计力机或Ma的核心框架:-1-指令IF存215J!i85tiW5J.指令注码三J鼠IJtaJ-M*三M«S三M:二;二林媳、胞址、悻志有存箫事存mr)三、一8位MCU命名法说MC9S08AW60XXXE产Ml配级:CPU内核:产从系£L_AW/DZ/DV/DN/ENflUSL/SGILit岫Al.60表示60KBHttJSit:i;iMC片全丛版保土XC修分MJK保”Ktti11ikKMC-HJjlKXCW当9*1Mh8>EEPR0M7=0TPROMSO8三HCO8S08三HCS08RS08=RS08C=-40-8SVA40105VM=-40"125CPU=IQFPFU-QFPFD=QFNFG-IQFP3 .MCU是英文MiCroCOntroHerUnit的飨写,中文含义是t控文暑,4 .MCU选型时主要应该注京舞三方面的因素?各自含义的什么?MCU的适用性:MCU的适用性主要是考虑MCU的片内资源能否满足实际需求MCU的可开发性:MCU的可开发性是指所选择的MCU是否有足够的开发手段.MCU的可购买性:MCU是否容易购买:是否有足够的供应量:是否仍然在生产中:是否在改进中.S-FreescaleS08系列MCU的HCS08核由暮些部分组成?CPU寄存叁有鼻几个、位皴是什么、各有什么作用?HCS08CPU:背景调试控制器:支持高达32个中断/更位源的中断/史位机制:片级地址M码器.CPU寄作器"5个:累加器A(8位):是主要的数据寄存器.用于存储算术茯转小元的输入参数或运M结果程序计数器PC(16位):用于存放下一个倏取指令或操作数的地址变址寄存器H:X(16位)堆栈指针SP(16位):当子程序最后执行返回指令时,该返回地址会门动从堆校中恢复.并由此从先前行停的指令处继续执行程序条件码寄存卷CCR(8位)5、比较MeU与CPU的区别与联系。答:CPU是个单.独的PC处理器.而MCU则有微处理器,存储器(RAM/ROM等)、定时器/计数器及多种输入输出(I/O)接口的比较完整的数字处理系统.所以可以这么说,MCU是个包含微处理器的战入式系统,而CPU紧龄是个处理器而已.条件码寄存器iS州借立标志C(Cany)*标志Z(Zero)他标志N(Negative)中断M蔽位I(IntenUPtmask)半进位标态H(Half-carry)溢出标志V(Overflow):AW60的功能结构及其存储播映像.AW60最小系统及其构成内容。模块寄存器、RAM.FLASH占用同$0000$FFFF存储空间的不同范围,分段使用:$0000S006F$0070S086F $0870SFFBF SFFCO$FFFF3、FreescaleS08系列MCU复位时SP的初值为$00FF,PC会自动装入位于$FFFE和$FFFF存储单元中的复位向量值,MCU产生中断时CPU寄存器自动入栈顺序从先到后依次是程序计数器的低字节PCL、程序计数器的高字节PcH、变址寄存器的低字节X累加器A、CCR寄存器,为了和HC08系列保持兼容,旦寄存器并不会被自动压入堆栈。6FreescaleS08系列MCU的最高总线时钟速率可以达到Q_MHz,内部CPU的最高工作时钟速率可以达到40MHz.HCSoS系列的CPU时钟速率是总线时钟嫉率的倍.HCS08系列MCU的总线时钟除了可以对外接高频时钟里一分叛得到外,也可以利用内部ICG模块P30.31u外接的32lkHz低频范用时钟或l16MHz力频苑用时钟进行倍频得到.7.FreescaleS08系列MCU复位时SP的初值为$086F.PC会白动装入位SFFFE和3££E_存储单元中的狂位向量值,MCU产生中断时CPU存储器口动入栈喉序从先到后依次星_程忤泞数器的低PCL、程择计数器的7*PCH、变址寄作器的低7:HX_、_累加器A_、_CCR寄器一,为了和HCo8系列保持兼容,-JL_寄存器并不会被口动压入堆栈.8 .CCR中的I位为_Q_表示CPU允许中断I位为工去示CPU禁止中断I位的上电复位默认值为一1一在响应中断时,CCR被自动入枝保存后I位会被白动设为_1_以用止不必螯的中断嵌套.9 .如何把SP初始化到RAM末地址?一般初始化SP的值指向片内RAM空间的末字节,以便料放出0页地址空间的一些存储单元作为通用作为通用存储区使用.1.DHX0S086FlTXS10 .MC9S08AW60内部集成了鼻些模块?片内RAM存储号容量多大?FlaSh容量又有多大?AD转换叁.内部时钟生成器,HC.键盘中断.小行通信接口,邪行外国接口.定时器脓宽调制器,中央处理器,调试模块2KB的RAM存储器60KB的Flash存储器其他:1.给出AW60存储器映像的简要说明。答:所谓存储器映像,是指地址$0000$FFFF这个64KB空间,哪些地址被何种存储器所占用,或者说AW60的RAM、Flash.I/O映像寄存器各使用$0000$FFFF这个64KB空间中的哪些地址。简单地说,就是$0000$FFFF这个64KB空间是如何分配的。2.嵌入式系统中RAM和FlaSh作用分别是什么?答:一般来说RAM这个区域安排用户数据(主要是全局变量)和堆栈空间;Flash要用于存储程序、常数、中断向量等。3.给出AW60的硬件最小系统。答:AW60芯片的硬件最小系统包括电源及其滤波电路、复位电路、晶振电路及PLL波电路、写入器接口电路。:CPU和数字电路复位的不同点和相同点CPU的空位有两个要索:创始化和启动程序复位:所谓程序执行,从WJ件用应就是给出入11地址.例女位矢吊:ORG$FFFEDWMainlnit第一早1、存储器独立编址和统一编址的含义是什么?各有什么特点?存储器独立编址方式:哈佛结构。RAM和Flash的地址各自独立编址。如MCS-51系列MCUo独立编址的好处是可以生成双倍的存储器空间,独立编址的寄存器地址出现重叠,但通过不同的控制线并配合不同的指令就可以区分不同存储器。例如在MCS-51指令系统中,用MOVC指令访问Flash存储器,用MOV或MOVX指令访问RAM存储器。存储器统一编址方式:普林斯顿结构。RAM和Flash的统一编址在一个地址范围内,分段使用。如Freescale的08、So8、S12等系列MCU,Microchip的PIC系列MCU0统一地址所获得的存储器空间比分离编址减半,但通过同一指令再配合不同地址参数就可以区分不同存储器。2 .MCU内部的RAM的作用主要是什么?FlaSh的主要作用是什么?内部寄存者的主要作用是什么?CPU如何访问片内外国模块?RAML要用户存放用户程序中的各种变呈,堆栈也处-RAM空间FIaSh匕饕用作程序存储器,存放用户程序机码和常数,表格等CPU读,;存储器需要通过存储器的地址来进行读写.CPU和片内外用模块通信需要通过外用模块的地址(寄存器地址)来进行访问.CPU和存储器、外围模块通信本质上都是CPU和不同地址通信,不同地址可以代表不同对象。3 .MC9S08AW60的整个$00OgFFFF范阳64KB的空间分成寄存器、RAM、Flash;大区域,寄存器乂分为三坦:“接页寄存器(地址从SOooO到SOoeF)、高页寄存器(地加从S1800到S185F)和火件寄存器(地址从SFFBO到SFFBF),FlaSh乂分为2两维:_用户程序FIash区(地W从$0870_MSl7FF_、从$1860到i SFFAF )和中断且位矢量区(地址从SFFCo钊SFFFF4非易失性寄存叁NVPROT和NVOPT的作用是什么?在上电复位时,非易失性寄存器NVPROT和NVOPT中的值被传送到地址为$1821的高页寄存器FPROT里和地址为$1824的高页寄存器FOPT ¾.用于控制块保护和加密.5.S08系列MCU的每个中断向量表占用 2一字节,其中的中断短位向量地址为.$FFFE_ 和$FFFF6.MC9S08AW60内部地址从到上J的区旗的每f 位都可以理过位,作指令进行访 凡$860 到SFFAF )和中断丁位欠新区(地址从SFFCO 到SFFFF ).7 .写出把SP初始化为$086F的指令代码.LDHX ffS086F*lTXS8 .若MC9S08AW60上电制位之后PC=I 860H, FFFEK存单元中的值为18H . FFFFH 存储单元中的值为 上H_第三章:LIXLIX2,1X3,三种寻址方式有何不同(1).无偏移M:变址J址(IX).无偏移H变址寻址方式丈mi. (2).8仰偏移/变址J址(IXl).在8位1移中佥址J址方A中.就是间接J址A. HCSo8CPU的变址寄存器扩展到16位. 高位称为H寄存器,低位称为X寄存器,允许用户访问64KB 的内存空何.如果指令没"修改H寄存器中的内容,WJH.仃效地址是无符号的16位变址后曷<H: X)的内容。愫作码 后的1字“无符。整数之和.它可用从 个仃N个儿。的&中 及打第K个元这时,K的你放住H, X'l>.而指令中8位偏移 *Mtt.例如:";中的他珞默认为$00.这样就确保了' jCPU05指令的完CLR $10,X:把以变址有般(H: X)加上$10为地址的羊元全兼容.无偏移盘的变址J址折令可以移动链&指针.或齐的内部消零(3). 16位偏移M变址JhIaX2) 16位伯林中安址我址指令为3 锁定.个经常使用的RAM地址或输入.W出地址.它们均为例地.为无符,;的侬划附,器(H X)的内小字节折令.例如:CLR ,X :把以变址寄存器(H: X)为地址的作储用元的 内容清零再叮掇件必Vi的27 N16他无符号整数之和.例如:STA$0100, X:妃索加JBA的内容送刎以变址商存51 (Hs X)加卜$0100为地址的小兀内容补充:10.1数制表示1)规定在数字前面加前绢,表示立即效(若无则表示地址)例:IDAMIoIoll(HOl将二进IM数OlOllOlo送到累加器A中IDA#|10I将十六进制数$10送到累加JRA中2)括号'或“"表示雌个AsQl码字符巾或字符巾3)用符号图作为操作数时表示当前存储器地址4)符号处于汇ft诺句中第列时表示该行为为注界丽句10.2 汇端语句格式标号操作码操作数注野10.3 汇编指令的机器码和执行周期的关系例如:LDA#$10:机器码A610H,2个总线周期(查阅书本P365)若上述指令为2个字节,表面它要占用2B的程序FIASH空间(1800HOFFFRO,若总线时Vh4MHZ,则上述指令需要l42三O.5US时间才能执行完10.4寻址方式P521)指令中操作数的类型,单片机指令系统中的操作数类型有3种.即立即数操作数、寄存器操作数(有时间接)和存储器操作数2)寸址方式的概念所谓寻址方式,就是J找指令中操作数所在地址的方式3)寻址方式乂可以从二方面看:源和日的操作数看.多种寻址方式是为了编程的方便.微控制器常用的寻址方式有:陷含寻址、立即寻址、直接寻址、寄存器间接寻址、变址寻址、相对寻址和位寻址七种方式.指令是指示微控制瑞执行操作的命令.微控制器全部指令的集合称为指令系统。例如:MOV谶操作数.目的操作数11,根据基本指令的功能,将它们分为以卜各大类:数据传送类指令、算术运算类指令、逻辑操作类指令.位操作类指令、转移类指令、堆栈相关指令K其他指令P63:MCU能停直接识别和执行的都是机器指令码.12、映像寄存海地址的定义P42(掌掷表格中地址为$0000一$OooD)数据方向寄存器(D触发器)PTADD equ $0001PTBDD equ $0003PTCDD equ $0005b BCLR 0. PTBDD : i殳翼 PTB.BSETl. PTBDD :设置 PTB.数据寄存器(三态门)PTAD equ $0000PTBD equ $0002PTCD equ $00040为输入1为输出第四章:MCU工作模式1、MC9S08系列的MCU通常具有RUN模式、活动背景调试模式、Wait模式、StOP模式等工作模式。其中,RUN模式功耗最大,Stop模式功耗最小,Run模式是MCU的正常工作模式,也就是MCU复位后进入的模式。2、MC9S08系列的MCU具有的四种低功耗模式,分别是StoPl模式、StOP2模正、Stop3模式和Wait模式。其中的Wait模式功耗最大,StoPI模式功耗最小。3.如何进入S08单片机的活动背IHIl试模式?BKGD/MS用脚在reset的上升沿为低:通过BKGD用脚接受到BACKGROUND命令:执行BGND指令:遇到BDC断点:谓到DBG断点:4、当系统选项寄存器SOPT中的STOPE位为1时,执行指令SToP会使得MC9S08AW60进入Stop模式,至于是进入Stop2还是Stop3模式,通过设定寄存器SPMSC2中的PPDC位来决定,该位为一则进入Stop2模式,该位为2则进入Stop3模式。5、MC9S08AW60处于Stop2模式时,只要发生下列任何一个唤醒事件:RESETIRQ或RTl中断,MCU就会从Stop2模式唤醒。6、MC9S08AW60处于Stop3模式时,只要发生下列任何一个唤醒事件:RESETRTI、LVD、ADC、IRQ或KBl,MCU就会从Stop3模式唤7、如果要想禁止在StoP模式下使用LVD必须通过设定寄存器SPMSCl中的LVDSE=0或者LVDE=0e如果在Stop模式下允许LVD,不管PPDC为何值,执行STOP指令都会使MCU进入Stop3模式。第五章:复位、中断和MCLK输出1、MC9S08AW60系列MCU的一种外部复位为RESET引脚复位,六种内部复位分别为上电(PoR,PoWered-OnReSet)复位、看门狗(CoP)复位、低电压检测(LVD)复位、非法操作码复位、背景调试强制复位、时钟发生器时钟失锁和时钟丢失复位。2、MC9S08AW60系列MCU发生复位后fPC从复位向量$FFFEMFFFF处载入地址值,CCR中的I位为1,SP的复位值为$00FF,总线时钟频率约为MHZ,CPU时钟频率约为MHz,同时还会把寄存器35中的相应标志位自动置Io4、COP具有两种溢出周期,分别是213和218个BUSCLK周期,通过SOPT(系统选项)寄存器中的COPT位进行选择,此位为时选择溢出短周期,此位为工时选择溢出长周期,此位的复位默认值为1。5、允许COP需要设定SOPT寄存器中的CoPE位为1来实现,COP在复位之后COPE位默认状态是1具溢出周期为218个BUSCLK周期。为了防止COP计数器溢出需要使用指令STASRS周期性清零COP计数器也可以设置COPE位为O来禁止COP010、CCR中的I位在复位之后默认为1,开总中断指令为CLl.11、当寄存器寄QSC中的IRQPE位为1时允许IRQ引脚功能,若要将IRQ引脚设为仅为上升沿触发,需要分别设定IRQEDG位为1,设定IRQMoD位为0_oIRQ的中断向量表首地址为$FFFA。清零IRQF位时需要向IRQACK位写1来实现。12、RTI模块的状态和控制寄存器SRTISC中的RTIS2:0在MCU上电复位后的默认值为0:0:0,说明RTI模块在MCU上电复位后是禁止(禁止或允许)的13、COP能够使得MCU在程序跑飞之后自动恢复正常运行的原理是什么?CoP实质上是一个计数器,它从O开始对总线时钟BUSCIK脉冲加1计数,即时每一个BUSCLK脓冲.CoP汁数器加1.当CoP计数器计满2-13个或278个BUSCLK脓冲.就会产生COP身位,使得MCU重新开始执行程序.第六章内部时钟生成器:1、HCS08系列单片机的CPU时钟频率是总线频率的2倍,HCS08系列单片机的最高总线频率可达20MHZ,CPU频率最高可达40MHZ。2、除了关断模式外,ICG模块具有四种工作模式:SCM、FEl、FBE和FEE。MCU上电复位之后的默认模式是SCM,此时不需要外接晶振,CPU频率约为8MHz,总线频率约为4MHz。3、ICG模块的输出有四个时钟:ICGoUT、FFE、ICGLCLK和ICGERCLK,其中的ICGOUT用于生成CPU时钟和系统总线时钟。4、ADC模块可以选择两个时钟源作为ADC时钟:ICGERCLK和BUSCLK。9、什么是实时中断(RTI,Real-TimeInterrupt)?相关寄存器是什么?(1)如何使能实时中断?(2)如何设置实时中断时钟源?(3)如何清零实时中断标志位?(4)如何设置实时中断周期?第七章:并行输入扁出1.MC9S08AW60系列的MCUjI有7个I/O端口.64用脚的封水具行54个I/O引脚.48小脚的封装从"3个I/O引脚,44引脚的时装“仃个I/O引脚.3.MCU采用5V供电情况下所有I/O满口总电流不能超过IOomA若采用3V供电则所有I/O端U总电流不能小过.60mA第,1章:键盘中断模块1.MC9S08AW60的8个键盘引脚中,KBIP3KBIPO总是下降沿/低电平触发,KBIP7KBIP4可以被配置成上升沿僖电平触发或者下降沿/低电平触发。2、MC9S08AW60的KBI功能允许后,只要键盘引脚有按键按下,寄询KBnSC中的KBF位就变为1,要清零该标志位,需要向该寄存器中的KBACK位写1来实现,对应指令为:BSET2,KBIISC。第九章:定时计数器TPM1、MC9S08AW60内部具有2个16位的TPM模块,每个模块都支持传统的四种功能:计数定时、输入捕捉、输出比较和脉宽调制PWM.2、MC9S08AW60复位之后,CLKSBCLKSA=0:0,因此没有选中TPM时钟源,TPM不工作。通常设定CLKSBCLKSA=0:1,让总线时钟驱动定时器。每一个TPM模块的时钟源能够独立选定三种时钟源总线时钟、固定系统时钟或外部时钟。3.TPMX模块允许的最大外部时钟频率是总线速率的一四分之一_4TPMx模块,顶时钟源后,还可以对时钟源进一步分频后再作为TPMX计数时钟,其中的分领系数可以为-J、2_、4_、8_、16_,32_、_64_、128它们由寄器JPMxSC中的2O位设定.5、MC9S08AW60包含两个独立的TPM模块:TPMl和TPM2,TPMl具有6个通道,TPM2具有2个通道。每个模块的每一个通道引脚都可以单独配置为般插捉输出比较或带缓冲的边缘对齐PWM功能。每个模块的所有通道引脚都可以配置为带缓冲的中心对齐PWM功能。6、TPM具有两种PWMS:边沿对齐PWM和中心对齐PWM,具体受寄存器TPMXSC中CPWMS位的控制。7、当CPWMS=O时,TPMxCNT从0开始每隔一个TPMx计数周期就加1计数,加到OXFFFF或TPM模数寄存器中的值时,重新从OXOOoo开始加1计数。8、当CPWMS=I时,TPMxCNT从0开始每隔一个TPMx计数周期就加1计数,加到结束值时,进行减1计数直到OXOOOO,然后又开始加1计数。9、当计数器溢出标志ToF为1时,若中断信号TOIE=1则允许向CPU产生中断请求。10、若要将TPMxCHn引脚设为仅在上升沿输入捕捉,则需要将寄存器TPMXSC中的CPWMS位设为0,同时还需要将寄存器TPMXCnSC中的MSnB:A位设OO、ELSnB:A位设为01。14、边沿对齐PWM模式中,PWM信号的周期决定于寄存器模数寄存器中的设定值,占空比取决于寄存器通道值中的设定值,极性取决于ELSnB:A控制位的设定。15、中心对齐PWM模式中,TPMxMOD的设定值应该在OXoOol至U0x7FFF之间。16、清零TPM中断标志位通过两个步骤完成:首先读标志位,然后写。到标定时器X状摊制寄存器(TPMxSC)第十章:AD转换1、S08系列MCU内部的模数转换器ADC(Analog-to-DigitalConVerter)是一个逐次逼近型坨亶ADG它集成在MCU内部,支持生仝独立的模拟输入(ADO-AD27)。2ADC转换器的输入阻抗值为:AADiN_MaX=.在外接信号时需要注意阻抗匹配.yADC对哪一个通道上的电压进行转换,由寄。器中的位设定.,ADC的时钟ADCK可以选择F列四种时钟之作为时怦源:.,J和«时钟源通过寄存器中的位选定;选定的时钟源经过分频得到、或:为了保证ADC正常工作,ADeK的频率在ADC为高速模式时,ADC的时钟ADCK,分频因子由寄存器中的位设定,可以设为、岖我频率需要设定在范围内,在ADC为电耗模式时,其频率需要设定c在范围内.、/SlA设定,该ADC采用8位工作模式还是10位工作模式,由寄存器.7位为_QJW用8位模式,为-1_则用10位模式.d6 .寄存器中的位设为0,则ADC采用软件触发方式.7 .ADC】SCl寄存器中的位设为。则ADC采用单次转换方式,若还选用软件触发方式,那么每写一次寄存器就启动一次AD转换.ADC转换结束时,寄存詈中的标志位自动变为1.若要允许ADC中断,可.位为1要清零ADC完成标志位,可以通过写寄存器或者读寄存器来完成.10.ADC模块还具有自动比较功能,通过设定寄存器中的位为来允许此功能.11/初始化ADC模块可以遵循我四个顺序?n.利用ADC内部的温度传感器,设计一个温度指示系统,当温度低于201C时亮一个LED,在20C到3(C之间亮两个LED,高于30C时亮三个LED.第十一章:串行通信接口2、SCl模块采用总线时钟(BUSCLK)作为时钟源,3、若要允许SCI的发送器,可以设置寄存器SClXC2中TE位为I0允许发送器之后,寄存器SQXSI中TDRE位为1时就可以写发送数据到寄存器SClXD中,寄存器SCIXSl中TC位为O时表明正在发送,为1表明发送完成。4、若要允许SCI的接收器,可以设置寄存器SClXC2中RE位为I0允许接收器之后,寄存器SClXSl中RDRF位为1时表明SCI接收到了数据。5、每一个SCI模块具有SCl发送中断、SCl接收中断和SCI错误中断三种中断,可以根据实际灵活选用。6、如何清零RDRF标志位?RDRF是SCI状态寄存器1(SCIxSl)的标志位,为"接收数据寄存器满标志"。当一个字符从接收移位寄存器传送到接收数据寄存器SCIxD时,该位变为L在8位模式中,要清零RDRF,可以在RDRF=I时,先读SCIxSl,然后读SCI数据寄存器SCIxDo例如,在SCI2接收中断服务子程序中:1.DASCI2S11.DASCI2D补充:1、已知MC9S08AW60单片机系统的总线时钟频率为4MHz,写出利用TPMl模块精确定时500ms的初始化子程序,并解释。答:选定总线时钟作为TPMl的时钟源,需要设定TPMlSC中的CLKSBCLKSA=Ol,若选取分频因子为64,即PS2:0=110,那么TPMl的计数脉冲周期为644MHz=16s,500ms需要500ms16s=32250=7A12H个计蜩期,这就需期TPM1M0D设置为7A12H,Tpmimodh和Tpmimodl两个寄存器都要写。当TPMlCNT计数值和TPM1M0D值相等时,TPM1CNT在下一个计数周期回到0重新开始计数,同时TOF位为1,如果允许TPMl溢出中断,将向CPU产生TPMl溢出中断请求。TPMLInit:;TPMl模块中断方式初始化子程序IMOV#$4E,TPMlSC;BUSCLK为TPMl中断源,64分频,;允许TPMl中断Mov#$7A,TpmimodhMov#$12,Tpmimodl;50OmS对应的模数值CLI;开总中断RTS2、如何理解FreeSCale单片机中汇编工程的执行过程?(见教材P97)3、给出SCI编程的通用模型。(很重要,见教材P115-U6)答:从基本原理的角度看,串行通信SCI接口的主要功能是:接收时,把外部的单线输入的数据变成一个字节的并行数据送入MCU内部;发送时,把需要发送的一个字节的并行数据转换为单线输出。为了设置波特率,SCI应具有波特率寄存器。为了设置通信格式、是否校验、是否允许中断等,SQ应具有控制寄存器。而要知道串口是否有数据可收、数据是否发送出去等,需要有SQ状态寄存器。编程时,程序员并不直接与"发送移位寄存器"和"接收移位寄存器"打交道,只与数据寄存器打交道,所以MCU中没有设置"发送移位寄存器"和"接收移位寄存器”的映像地址。发送时,程序员通过判定状态寄存器的相应位,了解是否可以发送一个新的数据。若可以发送,则将待发送的数据放入SCI数据寄存器中,剩下的工作由MCU自动完成:将数据从,SCI数据寄存器"送到"发送移位寄存器",硬件驱动将"发送移位寄存器”的数据一位一位地按照规定的波特率送到发送引脚TxD,供对方接收。接收时,数据T立T立地从接收引脚RXD进入"接收移位寄存器",当收到一个完整字节时,MCU会自动将数据送入"SQ数据寄存器,并将状态寄存器的相应位改变,供程序员判定并取出数据。4、简述中断的作用与处理过程。(见教材P131-132)5、S08系列MCU都有哪些中断源?(见教材P133-134)6、S08系列MCU的中断执行过程是怎样的?(见教材P132-133)答:CPU每执行完一条指令,若程序有开放某些中断及总中断,则CPU按照优先级次序查询所有中断标志位,若某个中断已发送,则响应该中断请求。当CPU收到一个许可的中断请求后,它在相应中断之前要完成当前指令。中断顺序遵守与SWI指令相同的循环顺序,包括:(1)在堆栈中保存CPU寄存器:CPU内的寄存器PCL、PCH.X、A、CCR依次进栈(注意H未被保护,必要时,H应由用户中断服务程序保护。建议中断服务例程ISR开始把H压到堆栈中,在用从ISR中返回的RTI之前恢复H(2)CCR中的I位置1,即自动关总中断(相当于自动执行SEI指令),防止其他中KHS入。(3)在目前等待的中断中取出最高优先级中断的中断向量,从相应的中断向量地址取出中断向量(即中断服务程序的入口地址)送给PCo(4我行中断服务程序直到执行中断返回指令RTIoRTI指令从堆栈中依次弹出CCR.A、X、PCH.PCL,使CPU返回原来中断处继续执行。(5)若中断过程也允许响应新的中断,可在中断服务程序中用CLl指令开放中断。7、给出AW60中断编程框架及基本步骤。(见教材P134-136)答:在CW环境下使用AW60芯片中断的步骤是:在main.c中,依照关总中断T开模块中断T开总中断”的顺序打开模块中断。在isr.c文件中,编写中断服务程序,修改中断向量表。AW60的中断编程可概括为下述3个步骤:新建(或者复制)一个isr.c文件,并加入工程中。定义中断向量表(复制isr.c的应修改中断向量表X中断向量表是一个指针数组,内容是中断函数的地址。首先要定义该中断向量表的地址,AW60的中断向量从OXFFCC开始,要使用预编译指令将中断向量表的首地址定义在OXFFCC。定义ISR并在中断向量表填入相应ISR的名称。8、如下图,说明键盘中断编程的原理是什么?键值又是如何计算的?4×4键盘与MCU接法示例(图1)键盘定义(图2)答:(1)键盘中断编程的原理:图1中列线(nln4)通过电阻接Vcc(÷5V),当键盘上没有键闭合时,所有的行线和列线断开,列线nln4都呈高电平。当键盘上某一个键闭合时则该键所对应的行线与列线短接。例如,第2排第3个按键被按下闭合时,彳亍线m2和列线n3短路,此时n3线上的电平由m2的电位所决定。那么如何确定键盘上哪个按键被按下呢?可以把列线nl-n4接到MCU的输入口,行线mlm4接至!|MCU的输出口,则在MCU的控制下,使行线ml为低电平(O),其余三根行线m2、m3、m4都为高电平(1),并读nl-n4状态。如果nl-n4都为高电平,则ml这一行上没有键闭合,如果读出列线nln4的状态不全为高电平,那么为低电平的列线和ml相交的键处于闭合状态。如果ml这一行上没有键闭合,接着使行线m2为低电平,其余行线为高电平,用同样的方法检查m2这一行上有无键闭合。以此类推,最后使行线m4为低电平,其余的行线为高电平,检查m4这一行上是否有键闭合。这种逐行逐列地检查键盘状态的过程称为对键盘的一次扫描。(2)键值计算:键盘与MCU接线见图1,图2给出了键的定义符号”0""9"、A"D、“、#"等。如何识别“1,键呢?这里将列线nln4分别接PTG4、PTD2、PTD3、PTD7目编程时将这四个引脚定义为输入并进行上拉彳亍线mlm4分别接PTG0-PTG3,且编程时将PTG0PTG3定义为输出,那么"1"键对应于按照PTD7、PTD3、PTD2、PTG4、PTG3、PTG2、PTGlxPTGO的顺序为11101110,即$££。"2"键对应于11011110,即$DE;"D"键对应于01110111,即$77。前者$EE、$DE、$77就是"键值",这种情况"键值"是一个字节。这样,按图1的接法可以得出键值表。键值可以通过扫描法获得,由键值通过查表法编程可得到键的定义值。