1、第二章 相关常用寄存器介绍2.1 输入输出控制寄存器1. 端口A、B数据寄存器(PTAD、PTBD) 端口A数据寄存器PTAD =未实现或保留 表2-1 PTAD功能对照表位功能7:6未实现或保留位5只能作输入管脚4只能作输出管脚3:0PTADn当端口为输入管脚时,读返回管脚上的逻辑电平。当作为输出的管脚时,读返回最近写这个寄存器的值,写的值锁进寄存器的各个位。 端口B数据寄存器PTBD表2-2 PTBD功能对照表位功能7:0PTBDn当端口为输入管脚时,读返回管脚上的逻辑电平。当作为输出的管脚时,读返回最近写这个寄存器的值,写的值锁进寄存器的各个位。2. 端口A、B数据方向寄存器(PTADD
2、、PTBDD) 端口A数据方向寄存器PTADD表2-3 PTADD功能对照表位功能5:4PTA5只能作输入管脚,PTA4只能作输出管脚3:0PTADDn1使能为输出管脚0使能为输入管脚 端口B数据方向寄存器PTBDD表2-4 PTBDD功能对照表位功能7:0PTBDDn1使能为输出管脚0使能为输入管脚3. 端口A、B内部上拉使能寄存器(PTAPE、PTBPE) 端口A内部上拉使能寄存器PTAPE表2-5 PTAPE功能对照表位功能5:0PTAPEn0屏蔽端口A第n位的内部上拉功能。1使能端口A第n位的内部上拉功能。PTAPE4对只能作为输出口的PTA4管脚没有影响。 端口B内部上拉使能寄存器P
3、TBPE表2-6 PTBPE功能对照表位功能7:00屏蔽端口B第n位的内部上拉功能。1使能端口B第n位的内部上拉功能。2.2 键盘中断寄存器1. KBI状态和控制寄存器 (KBISC) 表2-7 KBISC寄存器功能对照表位功能7:4未用到寄存器位,读总为0。3KBF键盘中断标志KBF指示一个键盘中断是否被检测到。对KBF写操作没有影响。0没有检测到键盘中断1检测到键盘中断2KBACK键盘应答写1到KBACK是标志清除机制的一部分,KBACK读时总为0。1KBIE键盘中断使能 KBIE确定一个键盘中断是否允许请求。0键盘中断请求没有使能1键盘中断请求使能0KBIMOD键盘检测模式 KBMOD(
4、与BKEDG位一起)控制键盘中断管脚的检测模式。0键盘只检测边沿1键盘检测边沿和电平2. KBI管脚使能寄存器 (KBIPE)表2-8 KBIPE寄存器功能对照表位功能7:0KBIPEn键盘管脚使能每个KBIPEn位使能对应的键盘中断管脚0管脚没有使能键盘中断功能1管脚使能键盘中断功能3. KBI沿选择寄存器 (KBIES)表2-9 KBIES寄存器功能对照表位功能7:0KBEDGn键盘沿选择每个KBEDGn位选择相应管脚的下降沿/低电平或者上升沿/高电平功能0下降沿/低电平(触发中断)1上升沿/高电平(触发中断)2.3 定时器寄存器1. 八位定时模块MTIM MTIM状态与控制寄存器MTIM
5、SC表2-10 MTIMSC寄存器功能对照表位功能7TOF定时器溢出标志当计数器计数到与辅助寄存器MTIMMOD数值相等,并翻转到0时,该只读溢出标志TOF会被置“1”。该溢出标志的清除方法有三种:1 当TOF为“1”时,读MTIMSC,并给TOF重新写入“0”; 2 写“1” 给TRST; 3 给辅助寄存器MTIMMOD写入任何数值。6TOIE溢出中断允许如果该位设置为“1”,则当TOF置位时会产生中断。当TOF为“1”时不要设置该允许位,一般的做法是先清除TOF,然后再设置TOIE。即使该位没有设置,还是可以通过软件查询TOF的方法使用定时器的。5TRST定时器复位设置该位只能写入,读出总
6、为0,而且写0没有影响,写1时导致计数器为0x00,同时TOF也清零。4TSTP定时器停止设置当该位置“1”,会使计数器停止计数,计数数值保持不变,当清除该位时,计数器从当前数值继续计数。3:0未使用,读出总为0 MTIM时钟配置寄存器MTIMCLK表2-11 MTIMCLK寄存器功能对照表位功能7:6未使用,读出总为05:4CLKS计数器时钟源选择通过该两位设置,在四种时钟源中选择其一,改变时钟源时不会影响计数器计数,时钟源切换后,计数器会在新的时钟下继续计数。00选择总线时钟(BUSCLK);01固定频率时钟(XCLK);10外部时钟TCLK的下降沿;11外部时钟TCLK的上升沿。3:0P
7、S时钟预分频器该4位设置计数器输入时钟的预分频数,改变分频数不影响计数器计数,分频数切换后,计数器会在新的分频数下计数。0000分频数为1; 0001分频数为2; 0010分频数为4;0011分频数为8; 0100分频数为16; 0101分频数为32;0110分频数为64; 0111分频数为128; 大于等于1000分频数为256。 MTIM计数器MTIMCNT该计数器为只读,写入任何数值对其没有影响,复位时为0x00。 MTIM模寄存器MTIMMOD该8位可读写的寄存器保存的数值是计数器计数的最大值,当计数器计数到该最大值时会翻转到0,同时设置TOF标志。如果给该寄存器写入数值0x00,会导
8、致计数器成为一个没有约束的自由运行的计数器,给MTIMMOD写入数值回导致计数器回0x00,而且溢出标志TOF也会清零。MTIMMOD复位时为0x00。2. 十六位定时模块TPM TPM状态与控制寄存器TPMSC表2-12 TPMSC寄存器功能对照表位功能7TOF定时器溢出标志当计数器计数到模寄存器数值并翻转到0x0000时,该标志置1。当定时器设置为中间对齐的PWM(CPWM)工作模式时,计数器计数到模寄存器数值并开始减1时,该溢出标志置1。清除该标志分成两步,先读TPMSC,然后对TOF写0,如在这两步之间有其它定时器溢出,则清除动作取消。复位时清除TOF,对TOF写1没有影响。6TOIE
9、定时器中断允许该读/写位控制定时器的溢出中断。当TOIE设置为1时,如果TOF为1会产生中断。TOIE为0时,还是可以通过软件查询TOF的方法使用定时器的。5CPWMS中间对齐PWM模式选择位如果该位为0,定时器工作在加法计数器方式,此时计数器的独立通道可以工作在输入捕捉、输出比较和沿对齐PWM模式。该位设置为1,将使得定时器工作在加/减计数器方式,而且所有通道都必须工作在中间对齐的PWM模式下。该位复位时为0。4:3CLKSB:A定时器时钟源选择位该2位的设置可能停止定时器,也可能选择3种时钟源之一作为定时器的输入。00没有时钟输入,定时器停止; 01总线时钟BUSCLK;10固定系统时钟X
10、CLK; 11外部输入时钟TPMCLK。2:0PS2:0时钟预分频设置该3位设置定时器的分频器,对应关系如下:0001分频; 0012分频; 0104分频; 0118分频;10016分频;10132分频; 11064分频;111128分频。 TPM计数器TPMCNTH : TPMCNTLTPM计时寄存器高位TPMCNTH:TPM计时寄存器低位TPMCNTL:这是两个只读的8位寄存器,而且读取任何一个寄存器都会将这两个寄存器数值保存在某个缓冲中,直到另一个寄存器也被读取,至于哪个寄存器先被读取并不重要。该自动缓冲机制通过以下3种方法可以重新进入准备状态:1MCU复位;2对计数器TPMCNTH或T
11、PMCNTL写入任何数值;3对状态和控制寄存器TPMSC写入任何数值。 定时器模寄存器TPMMODH:TPMMODLTPM模寄存器高位TPMMODH:TPM模寄存器低位TPMMODL:该可读/写寄存器定义了计数器的最大数值,当计数器计数到与模寄存器数值相等时,对于加法计数器(CPWMS = 0)则翻转到0x0000,对于加/减计数器(CPWMS = 1),计数器开始递减。此时溢出标志TOF会被置1。对模寄存器的某个8位写入数值时会禁止TOF设置,同时也禁止了中断,直到另一个8位寄存器写入新值。复位时0x0000,此时如果启动定时器则计数器成为“自由计数器”。对模寄存器的更新操作最好在定时器溢出
12、中断中进行,这样比较容易保证在新的溢出之前,两个8位的寄存器数值更新已经完成。另外一个好的习惯就是在对模寄存器第一次写入数值前,先复位主计数器,以保证第一次溢出不会太快。 定时器通道n(n为0或1)对应的状态与控制寄存器TPMCnSC表2-13 TPMCnSC寄存器功能对照表位功能7CHnF通道n的中断标志如果通道n设置为输入捕捉,当外部管脚出现有效边沿,则该中断标志。当通道n设置为输出比较或是边沿对齐的PWM工作模式,当TPM计数器数值与通道n辅助寄存器数值一致时。对于中间对齐的PWM工作模式来说,该标志一般不使用,因为在一个周期中,脉冲有效的两个沿都会设置该标志(有两次比较匹配事件)。如果
13、通道n对应的中断被允许(CHnIE = 1),则标志CHnF置1时会产生中断。清除CHnF标志分两步,先读取TPMCnSC,然后对CHnF写0。在这两步之间如果有事件发生,需要设置CHnF,则清除标志的动作取消。对该标志写1没有影响。6(CHnIE)通道n中断允许置1该控制位将允许通道n的中断。5:4MSnB:MSnA通道工作模式选择控制位,MSnB决定对应的通道是否设置为PWM模式,而MSnA决定通道在不是PWM模式时,是输入捕捉还是输出比较。更详细用法参见表2-14。3:2ELSnB:ELSnA沿/电平选择控制位设置通道对应的外部管脚工作模式,具体用法参见表2-14。该控制位的设置需要参考
14、其它三个控制位CPWMS:MSnB:MSnA,对于输入捕捉而言,该控制选择上升沿还是下降沿,而对于输出比较而言,该控制选择比较匹配时,外部管脚被驱动成高电平还是低电平,对于PWM而言,该控制决定了脉宽有效期间对应外部管脚的电平状态。设置该两位为0:0时使得通道对应的外部管脚为通用I/O,该特性可用于临时取消输入捕捉功能,或者是通道设置成不需要外部管脚的软件定时器时,将对应的管脚作为通用I/O使用。对于TPMCH0被设置成外部脉冲输入管脚时,通道0对应的该控制位必须设置成0:0。1:0未使用的保留位。表2-14 通道模式对照表CPWMSMSnB:MSnAELSnB:ELSnA模式功能xxx00通
15、道未使用外部管脚,可能是管脚作为TPM的外部时钟输入或者是将管脚作为通用I/O使用。000011011输入捕捉仅上升沿捕捉仅下降沿捕捉上升沿或下降沿都捕捉0100011011输出比较仅软件比较,无管脚输出比较匹配时,外部管脚翻转比较匹配时,外部管脚清0比较匹配时,外部管脚置11x10x1边沿对齐PWM脉宽有效期间高电平(比较匹配时,外部管脚清0)脉宽有效期间低电平(比较匹配时,外部管脚置1)1xx10x1中间对齐PWM脉宽有效期间高电平(比较匹配时,外部管脚清0)脉宽有效期间低电平(比较匹配时,外部管脚置1) 2个独立通道对应的定时器通道数值寄存器TPMCnVH:TPMCnVL定时器通道数值寄
16、存器高位TPMCnVH:定时器通道数值寄存器高位TPMCnVL:这些可读/写寄存器用于在输入捕捉模式中保存捕捉的计数器数值,在输出比较和PWM模式中保存与主计数器比较的数值。复位时这些辅助寄存器被清零。对这些8位的寄存器读/写采用了自动锁定机制,以保证每次都能读/写一个完整的16位的数值。该锁定机制对组成16位数值的2个8位寄存器的读/写顺序没有要求,也就是说可以先读/写高8位,也可以先读/写低8位,直到另一个寄存器被读/写,自动解除锁定,也可以通过写TMPCnSC寄存器随时解除锁定状态。2.4 A/D转换寄存器1. 配置寄存器(ADCCFG)表2-15 ADCCFG寄存器功能对照表位功能7A
17、DLPC低功耗配置ADLPC 用于控制连续逼近转换器的速度和功耗配置。在这要求更高采样率时优化功耗。0高速配置 1低功耗配置,减小功耗的同时牺牲最大时钟速度。6:5ADIV时钟分频选择ADIV可选择ADC使用的时钟信号分频产生ADCK信号00clock 分频因子1 01clock 2 分频因子210clock 4 分频因子411clock 8 分频因子84ADLSMP采样时间配置ADLSMP在长和短的采样时间之间选择。调整采样周期,高阻输入能更精确的采样,低阻输入提高转换速度。如果不要求高的转换速率,长的采样时间也能在使能连续转换时减小整个电源功耗。0短的采样时间 1长的采样时间3:2MODE
18、转换模式选择MODE 用于在10位和8位运行之间选择。008位转换(N=8)01保留1010位转换(N=1 0)11保留1:0ADICLK输入时钟选择 ADICLK四种输入时钟源选择其一,以产生内部时钟输入至时钟分频器Clock Divide。00总线时钟01总线时钟除以210副时钟(ALTCLK) MC9S08QG8/4 MCU器件中没有使用副时钟ALTCLK11异步时钟(ADACK)2. 管脚使能控制寄存器1(APCTL1)表2-17 APCTL1寄存器功能对照表位功能7ADPC7管脚控制ADPC7用于控制通道AD7关联的管脚。0使能 AD7管脚和I/O控制。1屏蔽管脚I/O控制,只有AD
19、7输入功能。6 ADPC6管脚控制ADPC6用于控制通道AD7关联的管脚。0使能 AD6管脚和I/O控制。1屏蔽该管脚I/O控制,只有AD6输入功能。5ADPC5管脚控制ADPC5用于控制通道AD5关联的管脚。0使能 AD5管脚和I/O控制。1屏蔽该管脚 I/O控制,只有AD5输入功能。4ADPC4管脚控制ADPC4用于控制通道AD7关联的管脚。0使能 AD4管脚和I/O控制。1屏蔽该管脚I/O控制,只有AD4输入功能。3ADPC3管脚控制ADPC3用于控制通道AD3关联的管脚。0使能 AD3管脚和I/O控制。1屏蔽该管脚I/O控制,只有AD3输入功能。2ADPC2管脚控制ADPC2用于控制通
20、道AD2关联的管脚。0使能 AD2管脚和I/O控制。1屏蔽该管脚 I/O控制,只有AD2输入功能。1ADPC1管脚控制ADPC1用于控制通道AD1关联的管脚。0使能 AD1管脚和I/O控制。1屏蔽该管脚I/O控制,只有AD1输入功能。0ADPC0管脚控制ADPC0用于控制通道AD0关联的管脚。0使能 AD0管脚和I/O控制。1屏蔽该管脚 I/O控制,只有AD0输入功能。3. 状态控制寄存器(ADCSC1)表2-18 ADCSC1寄存器功能对照表位功能7COCO转换结束COCO 只读标志位1、当比较器被屏蔽(ACFE =0)时,在每次转换结束的时候被设置 1。2、当使用比较器(ACFE =1)时
21、,只有在比较结果为真时,COCO标志在转换结束时被设置 1,否则为 0。3、ADCSC1被写或者ADCRL数字结果寄存器被读,此位1被清除。0转换没有结束1转换结束6AIEN中断使能AIEN 用于转换结束申请中断。当 AIEN=1 为高时,COCO=1 声明申请中断。0屏蔽转换结束申请中断1使能转换结束申请中断5ADCO连续转换使能ADCO 用于使能连续转换。 写ADCS1寄存器软件触发;ADHWT产生硬件触发。0当选择软件触发运行转换或选择硬件触发运行转换时,进行一次转换。 1当选择软件触发运行转换或选择硬件触发运行转换时,连续转换。4-0ADCH输入通道选择ADCH 00000:INAD0
22、 00100:INAD4 内部通道自动连接参考电压 00001:INAD1 00101:INAD5 11101:VREFH (VDD)00010:INAD2 00110:INAD6 11110:VREFL (VSS)00011:INAD3 00111:INAD7* 11111:全为1时,隔离所有的输入通道信号及输入源,转换器子系统关闭, ADC处于低功耗状态。另:其他数字组合为保留通道为未知值。4. 状态和控制寄存器(ADCSC2)表2-19 ADCSC2寄存器功能对照表位功能7ADACT转换有效性ADACT指示正在进行中的一个转换状态。在一个转换开始时,ADACT=1;当一个转换已完成或取消
23、时 ADACT=0。0转换不在进行中1转换在进行中6ADTRG选择转换触发ADTRG 用于ADC选择开始转换的触发类型。可选择软件触发和硬件触发两种触发类型。0选择软件触发,当选择软件触发,写ADCSC1(给寄存器赋初值)。1选择硬件触发,当选择硬件触发,引发ADHWT事件。5ACFE比较器使能ACFE用于启动比较功能.0屏蔽比较功能,默认状态屏蔽比较器。1使能比较功能,启动比较器。4ACFGT比较器功能使能ACFGT用于配置比较器在监测的输入转换结果大于等于或小于比较值时被触发比较功能。默认被监测的转换结果小于比较值时触发。0当输入小于比较数字电平时触发。1当输入大于或等于比较数字电平时触发
24、。5. 数据结果寄存器(ADCRH、ADCRL)数据结果高位寄存器ADCRH:数据结果低位寄存器ADCRL:用于储存转换结果,属于只读寄存器,ADCRH在10位转换结果的情况下使用,用于储存转换结果的高两位。6. 比较值寄存器(ADCCVH、ADCCVL)比较值高位寄存器ADCCVH:比较值低位寄存器ADCCVL:7. 实时中断寄存器(SRTISC)表2-20 SRTISC寄存器功能对照表位功能 7 RTIF实时中断标志这个只读状态位指示周期唤醒定时器时间溢出0周期唤醒定时器还未时间溢出1周期唤醒定时器已经时间溢出 6 RTIACK实时中断应答这个只写位用来应答实时中断请求(写1清除RTIF)
25、.写0没有意义和影响.读总是返回0 5RTICLKS实时中断时钟选择这个读/写位选择实时中断的时钟源0实时中断请求时钟源为内部1kHz振荡器1实时中断请求时钟源为外部时钟 4RTIE实时中断使能这个读/写位使能实时中断 0屏蔽实时中断1使能实时中断2:0RTIS选择实时中断延迟这些读/写位选择RTI的周期.参看表2-21表2-21 实时中断周期表RTIS2:RTIS1 :RTIS0使用内部1kHz时钟源(*1 *2)使 用 外 部 时 钟源Period = text (*3)0:0:0屏蔽RTIDisable RTI0:0:18 mstext 2560:1:032 mstext 10240:1
26、:164 mstext 20481:0:0128 mstext 40961:0:1256 mstext 81921:1:0512 mstext 163841:1:11.024 stext 32768列中所示值基于tRTI = 1 ms初始的RTI时间溢出周期比规定时间少一个1kHz时钟周期text是外部晶体频率的周期2.5 异步串行通信SCI寄存器1. SCI波特率寄存器(SCIBDH,SCIBDL) SCI波特率高位寄存器SCIBDH:SCI波特率低位寄存器SCIBDL:波特率的计算公式是:Baud rateBusclk/(16*BR)这里Baud rate是指波特率,它的单位是bit/se
27、c;Busclk是指总线时钟频率,它的默认值是4MHz;BR是指由BR12:BR0计算出的十进制的分频值,它的范围是0-8191。2. SCI控制寄存器1(SCIC1)表2-22 SCIC1寄存器功能对照表位功能7LOOPS0正常操作,RxD和TxD 使用不同的管脚。1循环模式或单线模式,发送器输出内部连接于接收器输入。6SCISWAI0在等待模式下,SCI时钟继续运动,因而SCI可以作为唤醒CPU中断的源。1当CPU处于等待模式时,SCI时钟停止。5RSRC接收器源选择只有 LOOPS位被设置为1,该位才有意义或有效。当LOOPS = 1时,接收器输入与发送器输出内部连接。RSRC的作用是确
28、定此连接是否与TxD管脚连接。0此时LOOPS = 1,RSRC = 0选择内部回送模式,TxD管脚不与发送器输出和接收器输入连接。1此时LOOPS = 1,RSRC = 1为单线SCI模式,TxD管脚与发送器输出和接收器输入连接。4M0正常,起始位8个数据位(首先是LSB)停止位。1接收器和发送器使用9位数据字符。起始位8个数据位(首先是LSB)第9位数据位停止位。3WAKE接收器唤醒方法(一般用在多机处理系统中)0空闲线唤醒。1地址位唤醒。2ILT0空闲字符位计数在起始位后启动。1空闲字符位计数在停止位后启动。1PE0无硬件奇偶校验产生和检测。1奇偶校验被使能。0PT0偶校验。1奇校验。3
29、. SCI控制寄存器2(SCIC2)表2-23 SCIC2寄存器功能对照表位功能7TIE0不启动TDRE中断(使用查询方式)。1启动TDRE中断,当TDRE标志为1时,进行硬件中断请求。6TCIE0启动TC中断,当TC标志为1时,进行硬件中断请求1不启动TC中断(使用查询方式)5RIE0不启动RDRF中断(使用查询方式)。1启动RDRF中断,当RDRF标志为1时,进行硬件中断请求。4ILIE0来自 IDLE 的硬件中断被禁止(使用查询方式)。1当 IDLE 标志为1时,进行硬件中断请求。3TE0发送器关闭。1发送器打开。2RE0接收器关闭。1接收器打开。1RWU0正常 SCI 接收器操作。1S
30、CI接收器备用,等待唤醒条件。0SBK0正常发送器操作。1将中断字符(10位或11位的0)插进正在发送的数据流中。4. SCI状态寄存器1(SCIS1)表2-24 SCIS1寄存器功能对照表位功能7TDRE0发送数据寄存器(缓存区)满。1发送数据寄存器(缓存区)空,可以进行下一次发送。6TC0发送器激活(发送数据、或中断)。1发送器无效(发送操作结束)。TC=1时,通过对 SCIS1进行读操作,然后完成下列三件事情中的任何一件,可以自动清除TC:c1)写 SCI 数据寄存器,发送新数据;c2)通过将 TE 由0变为1,自动发送一个前导符;c3)通过向 SCIC2 的 SBK写1,自动发送一个中
31、断字符。5RDRF0接收数据寄存器空。1接收数据寄存器满,表示可以取出数据。RDRF=1 时,为了清除 RDRF,要读取 SCIS1然后再读取 SCI 数据寄存器(SCID)。4IDLE0无空闲线检测。1空闲线被检测。3OR0无丢包。1接收丢包(新SCI 数据丢失)。2NF0无噪声被检测到。1对SCID中的接收字符进行噪声检测后,有噪声被检测到。1FE0无帧错误被检测到。这并不保证没有由其它原因引起的帧错误。1帧错误。0PF0无奇偶校验错误。1奇偶校验错误。5. SCI状态寄存器2(SCIS2)表2-25 SCIS2寄存器功能对照表位描述2BRK130中断字符为10位周期(如果 M=1则为11
32、位)1中断字符为13位周期(如果 M=1则为14位)0RAF0SCI接收器空闲,等待一个起始位。1SCI接收器激活。6. SCI控制寄存器3(SCIC3)表2-26 SCIC3寄存器功能对照表位功能7R8接收器的第9个数据位当 SCI 配置为9个数据位时(M=1),R8可被认为是第9个接收数据位,在SCID寄存器内比缓存数据的 MSB还要高一位的一侧。当对第9位数据进行读取时,需要在读取 SCID之前先读取 R8,因为读取 SCID 操作会自动完成标志清除顺序,这将允许 R8 和 SCID 被新数据覆盖。6T8发送器的第9个数据位当 SCI 配置为9个数据位时(M=1),T8 可被认为是第9个
33、发送数据位,在 SCID寄存器内比数据的MSB还要高一位的一侧。当对第9位数据进行写操作时,在写 SCID操作后,全部9位数据值被转移至 SCI 移位寄存器,因此,对 T8 的写操作(如果需要改变其先前值)应该在对 SCID进行写操作之前进行。如果在新值中T8 的值不需要改变,则无需在每次写 SCID时,都对 T8 进行写操作。5TXDIR单线模式下TxD 管脚方向当SCI 被配置为单线半双工操作(LOOPS=RSRC=1)时,该位决定 TxD 管脚的数据方向。0单线模式下 TxD 管脚为输入。1单线模式下 TxD 管脚为输出。4TXINV0发送数据不倒置。1发送数据倒置。3ORIE0OR中断
34、禁止(使用查询方式)。1当OR=1时,进行硬件中断请求。2NEIE0NF中断禁止(使用查询方式)。1当NF=1时,进行硬件中断请求。1FEIE0FE中断禁止(使用查询方式)。1当 FE=1时,进行硬件中断请求。0PEIE0PF中断禁止(使用查询方式)。1当 PF=1时,进行硬件中断请求。7. SCI状态寄存器(SCID)此寄存器实际上是两个分开的寄存器。读操作从只读数据缓存区中读取数据,写操作对只写数据缓存区写入数据。2.6 同步串行通信SPI寄存器1. SPI控制寄存器1 (SPIC1)表2-27 SPIC1寄存器功能对照表位功能7SPIESPI 中断使能(对于SPRF 和 MODF)该域用
35、于 SPI 接收缓冲器满(SPRF)和模式故障(MODF)事件的中断使能。0禁止SPRF 和 MODF 中断(使用查询)1当 SPRF或 MODF 为1时,请求硬件中断6SPESPI系统使能禁用 SPI将使得任何正在进行的传输、清除数据缓冲器和初始化内部状态机制停止。SPRF被清空且 SPTEF被置位表示 SPI 传输数据缓冲器为空。0禁止 SPI 系统1使能 SPI 系统5SPTIESPI 发送中断使能该中断使能位用于 SPI 发送缓冲器空(SPTEF)。0禁止来自SPTEF的中断(使用查询)1当 SPTEF为1时,请求硬件中断4MSTR主/从模式选择0SPI 模块配置为从 SPI 器件1S
36、PI 模块配置为主 SPI 器件3CPOL时钟极性这个位可以设置时钟的有效电平0高电平有效(空闲时为低电平)1低电平有效(空闲时为高电平)2CPHA时钟相位位该位为不同类型的同步串行外围器件从两种时钟格式中选择其中之一。0SPSCK的第一个边沿出现在8个数据传送周期的第一个周期的中间1SPSCK的第一个边沿出现在8个数据传送周期的第一个周期的开始1SSOE从模式选择输出使能该位与 SPIC2中的模式故障使能(MODFEN)位和主/从(MSTR)控制位结合起来使用,用以确定 SS管脚功能。参见表2-28所示。0LSBFELSB优先(移位器方向)0SPI 串行数据传输以最高有效位开始1SPI 串行
37、数据传输以最低有效位开始表2-28 主从输入输出模式对照表MODFENSSOE主机模式从机模式00通用 I/O (非SPI)从模式选择输入01通用 I/O (非SPI)从模式选择输入10用于模式故障的 输入从模式选择输入11自动输出从模式选择输入2. SPI控制寄存器2(SPIC2)表2-29 SPIC2寄存器功能对照表位功能4MODFEN主模式故障功能使能当 SPI 被设置为从模式时,该位失去意义或无效。(SS 管脚为从模式选择输入)在主模式时,这个位决定如何使用管脚。见表2-28。0模式故障功能被禁用,主管脚恢复为通用 I/O,不受 SPI控制。1模式故障功能启用,主管脚用于模式故障输入或
38、者从模式选择输出。3BIDIROE双向模式输出使能当双向模式被 SPI 管脚控制0(SPC0=1)使能时,BIDIROE 决定 SPI数据输出驱动是否被使能为单个双向 SPI I/O管脚。取决于 SPI 被配置成主模式还是从模式,而分别使用 MOSI(MOMI)或 MISO(SISO)管脚作为单 SPI数据 I/O 管脚。当 SPC0 = 0,BIDIROE无意义或无效。0输出驱动器禁用,所以SPI数据I/O管脚作为输入端。1SPI I/O管脚启用,作为输出端。1SPISWAISPI 停止于等待模式0在等待模式,SPI时钟继续运行1当 MCU进入等待模式时,SPI时钟停止0SPC0SPI 管脚
39、控制0SPC0位用于选择单线双向模式。MSTR=0(从模式),SPI将 MISO(SISO)管脚用于双向 SPI数据传输。如果 MSTR=1(主模式),SPI 将 MOSI(MOMI)管脚用于双向 SPI数据传输。当 SPC0=1 时,BIDIROE被用于为单个双向 SPI I/O管脚使能或禁止输出驱动器。0SPI使用单独管脚用于数据输入或输出1SPI配置为单线双向操作。3. SPI波特率寄存器(SPIBR)表2-30 SPIBR寄存器功能对照表位功能6:4SPPR2:0SPI 波特率预定标因子该3-位域为波特率预定标器从8个除数中任选一个。预定标器的输入为波特率时钟(BUSCLK)。预定标器
40、的输出驱动 SPI 波特率分频器的输入。2:0SPR2:0SPI波特率因子该3-位域为 SPI 波特率分频器从8个因子中任选一个因子。分频器的输入来自 SPI波特率预定标器。主模式下,分频器的输出为 SPI 位速率时钟。表2-31 分频对照表SPPR2:SPPR1:SPPR0预分频因子SPR2:SPR1:SPR0波特率分频因子0:0:010:0:020:0:120:0:140:1:030:1:080:1:140:1:1161:0:051:0:0321:0:161:0:1641:1:071:1:01281:1:181:1:1256SPI模块波特率总线频率/(预分频因子波特率分频因子)4. SPI
41、状态寄存器(SPIS)表2-32 SPIS寄存器功能对照表位描述7SPRFSPI读缓冲器满标志在一次 SPI传输完成时,SPRF 被置位,表明接收到的数据可以从 SPI 数据寄存器(SPID)读取。当 SPRF 被置位时,通过读 SPRF,然后读取 SPI 数据寄存器,硬件可将其清除。0在接收数据缓冲器中无可用数据1在接收数据缓冲器中的数据可用5SPTEFSPI 传输缓冲器空标志当发送数据缓冲区有空间时,这个位被置位。PTEF 被置位时,通过读取 SPIS,然后向 SPID的发送缓冲器写入一个数值,可将其清除。SPTEF=1时,SPIS 必须在向 SPID 写入数据之前被读取,否则 SPID写操作将被忽略。如果 SPIC中的 SPTIE 位也被置位,SPTEF会产生一个 SPTEFCPU中断请求。当一个数据字节从发送缓冲器传输进入发送移位寄存器时,SPTEF被自动置位。对于一个空闲 SPI(在