本文作者:kaifamei

bc7277(键盘数码管驱动IC)介绍

更新时间:2023-08-22 12:16:16 人在看 0条评论

bc7277(键盘数码管驱动IC)介绍

2023年8月22日发(作者:黄鹤楼送孟浩然之广陵赏析及内容讲解)

最护眼的绿壁纸-

BC72779位LED数码管及16键键盘接口芯片特点:● 可驱动9位共阴式数码管或72只LED● 无需外围器件● 9个显示位均可单独闪烁显示● 单独LED闪烁● 闪烁速度可调● 段寻址可以单独控制示段● 译码显示时小数点显示不受显示更新影响● 可直接访问显示寄存器(显示特殊字符)● 16键键盘支持任意组合键和长按键● 标准SPI串口,可用2线、3线或4线方式● SSOP24小体积封装● 与其它BC727X系列芯片软件兼容,软件无需修改,即可用于其它BC727X芯片SDIP/SSOP VDD124CLK23MISO22KEY21DIG8MOSI 2GND 3CS 4BC7277A 5B 6C 7 D 8E 9 F10G 11 DP1220DIG719DIG618DIG517DIG416DIG315DIG214DIG113DIG0摘要BC7277具有9位数码管显示管理功能,无需外围器件,即可以构成9位(72段)LED显示和键盘驱动。因为支持段寻址,可以独立地控制每一个显示段,也非常适用于独立的LED。BC7277支持闪烁显示功能,且闪烁速度可调,每一位均可独立控制闪烁属性,而前8位更可以独立控制每一段的闪烁,在使用独立的LED指示灯时,非常有用。BC7277内部提供译码功能,用户可以直接向译码寄存器写入数值,而得到相应数字显示。译码显示时,该位的小数点显示不受影响,用户只需更新显示数据,而无需考虑小数点的问题,尤其对于将小数点用作单独指示灯的用户,使用非常简便。同时,也支持直接写入显示寄存器,可以完成一些特殊字符的显示。键盘可最多支持16键,芯片内含去抖动电路,可以支持任意的组合键,长按键,可以支持各种常开或常闭开关。BC7277采用串行接口,可以直接与标准SPI接口连接,通讯速率可达64Kbps,用户可以充分利用微处理器上硬件SPI接口资源,当使用中断方式时,可使显示部分的通讯几乎不占用主程序时间。BC7277的SPI接口可以接为2线、3线或4线方式。可以通过CS片选信号,在一个SPI总线上使用多个器件,而在MCU I/O口资源紧张时,片选CS线可以直接接地,其内部独特的SPI口计时复位逻辑可以使得即便没有片选信号的接口清零功能,也可以保障通讯不会出错。BC7277-9位LED数码管及16键键盘接口芯片 极限参数:(注:超出所列范围有可能造成器件永久损坏)储存温度工作温度任意脚对地电压­65至+150°C­40至+85°C­0.5至6.0V电特性:(除特别说明外,TA=25°C, Vcc=5.0V)参数电源电压工作电流输入低电平输入高电平输出低电平输出高电平显示扫描周期4.4153.70.1最小值2.7典型值5.04.91.4最大值5.5单位VmAVVVVmS当Vcc=3V时,为1.9V备注引脚说明:名称VDDMOSIGNDCSA­DPDIG0­DIG8KEYMISOCLK序号12345­1213­21222324正电源端,电压范围2.7­5.5VSPI口数据输入端,接MCU的SPI口数据输出端 移位寄存器数据线接地端 移位寄存器时钟线片选端,低电平有效A段­DP段段驱动SPI时钟,由MCU输出按键状态指示,每当按键状态变化时,KEY的电平会发生翻转从机数据输出,BC7277数据输出,接MCU的SPI数据输入移位寄存器锁存脉冲,每8个SCLK脉冲,会输出一个STR脉冲说明内部寄存器BC7277内部具有23个寄存器,包括16个显示寄存器,以及14个特殊寄存器。地址范围为00H-1DH,其中00H-08H为显示寄存器,其余为特殊寄存器。地址00H内容第0位显示寄存器缺省值FFH说明显示寄存器每一位对应1个显示段©北京凌志比高科技版权所有 2BC7277-9位LED数码管及16键键盘接口芯片 地址17H18H19H1AH1BH1CH1DH内容第1位显示寄存器第2位显示寄存器第3­7位显示寄存器第8位显示寄存器无效寄存器第0位段闪烁控制寄存器第1位段闪烁控制寄存器...第7位段闪烁控制寄存器0­7位位闪烁控制寄存器第8位位闪烁控制寄存器闪烁速度控制寄存器译码寄存器段寻址寄存器操作寄存器缺省值00H00H00H10H­­FFH说明此地址范围对BC7277无效每一位对应一个显示段,1=闪烁,0=不闪烁bit0­bit7分别对应显示位0­7,1=闪烁,0=不闪烁只有bit0有效,对应显示位8值越小,闪烁速度越快写入该寄存器的数据被译码后更新显示寄存器写入该寄存器可单独控制各显示段状态写入该寄存器的值,将被同时写入到所有的显示寄存器,可用于清除显示等操作显示寄存器:地址00H-08H显示寄存器直接映射各个LED显示段,数码管上的显示段与各位的映射关系为如图:D7D6D5D4D3D2D1D0DPGFEDCBA用户可以直接改变显示寄存器的内容,从而改变显示,这主要用在需要显示译码表中没有的特殊字符的时候。显示寄存器中,如某一位被置0,则该显示段被点亮。复位后,所有显示寄存器的内容被置为FFH。©北京凌志比高科技版权所有 3BC7277-9位LED数码管及16键键盘接口芯片 段闪烁控制寄存器:地址10H-17H和显示寄存器类似,段闪烁控制寄存器也采用位映射的方式控制显示段的闪烁,每一个位对应一个显示段,映射的方法同显示寄存器。当段闪烁控制寄存器中相应的位为1时,对应的显示段具有闪烁属性。闪烁仅发生在该显示段被点亮的情况下,如该显示段未点亮(相应显示寄存器位为1),则该显示段没有任何显示。当闪烁的显示段被清除(相应显示寄存器位被置1)时,其闪烁属性并不受影响,当该显示寄存器位再次被置为0时,对应的显示段将依然为闪烁显示。复位时,段闪烁控制寄存器被全部清零(不闪烁)。位闪烁控制寄存器:地址18H, 19H位闪烁控制寄存器控制显示位的整体闪烁属性,寄存器内每一个位对应一个显示位,对应关系如下表19HD7­18HD2­D6­D5­D4­D3­D1­D0位8D7位7D6位6D5位5D4位4D3位3D2位2D1位1D0位0显示位数据为1时,该位为闪烁显示。闪烁仅发生在该显示位有显示内容的情况下,如该显示位没有显示(显示寄存器所有位为1),则不会有任何显示。复位时,位闪烁控制寄存器被置为00H(不闪烁)。闪烁速度控制寄存器:地址1AHBC7277的闪烁速度可调,只需要通过改变闪烁速度控制寄存器,就可以方便地控制闪烁的速度。闪烁速度控制寄存器中的值越大,闪烁速度越慢,相反值越小闪烁速度越快。在复位后,该寄存器的值为10H,在这个值下面,其闪烁频率大约为2Hz。译码寄存器:地址1BH通过译码寄存器,用户可以通过送入数值,直接得到数字显示,省去了用户自己编制解码表的烦恼。写入译码寄存器的数据格式如下:D7D6D5D4D3D2D1D0A2A1A0d3d2d1d0A3:A0为位地址,决定数字显示的位置,即显示位,为0000时,译码结果显示在第0位,0011时,则显示在第3位上。d3:d0为待显示的数值。译码表如下:d300d200d100d001d3:d0  (16进制值)01显示A3©北京凌志比高科技版权所有 4BC7277-9位LED数码管及16键键盘接口芯片 311d211d111d101d3:d0  (16进制值)23456789ABCDEF显示通过译码寄存器更新显示内容,将不影响小数点位,即DP位的状态将保持不变。通过这种设计,当显示有小数点的数据,或在将小数点用作其它指示灯的情况下,数据的更新将非常方便,因为可以不用考虑重新刷新小数点显示。小数点的控制,可以通过段寻址指令来完成。段寻址寄存器:地址1CHBC7277可以实现以段(单独LED)为单位的显示控制,这是通过段寻址寄存器来实现的。通过给每个显示段(LED)分配一个地址,可以通过段寻址寄存器控制每个显示段的点亮和关闭。每个显示段的地址如下:©北京凌志比高科技版权所有 5BC7277-9位LED数码管及16键键盘接口芯片 显示位DP012345678GFEDCBA07H06H05H04H03H02H01H00H0FH0EH0DH0CH0BH0AH09H08H17H16H15H14H13H12H11H10H1FH1EH1DH1CH1BH1AH19H18H27H26H25H24H23H22H21H20H2FH2EH2DH2CH2BH2AH29H28H37H36H35H34H33H32H31H30H3FH3EH3DH3CH3BH3AH39H38H47H46H45H44H43H42H41H40H写入段寻址寄存器的数据格式如下:D7D6D5D4D3D2D1D0SegA6A5A4A3A2A1A0其中A0-A6为段地址,其有效范围为0-47H。Seg为写入该段的数据,当Seg为0时,该LED被点亮,Seg为1时,LED熄灭。全局操作寄存器:地址1DH全局操作寄存器是个特殊的寄存器,所有写入该寄存器的值,都会被同时复制到所有的显示寄存器中。对于需要清屏或者点亮所有LED的操作,可以通过向该寄存器写入FFH或者00H轻易地实现。注意,写入该寄存器,并不会改变闪烁控制等其它寄存器,所以如果写入前有显示段或显示位被置为闪烁显示,即便对全局操作寄存器写入FFH清除显示,原来闪烁的显示段也仍然维持闪烁显示的属性,如果再次被点亮,依然会以闪烁方式显示。串行接口BC7277采用SPI串行接口,可以连接标准的4线SPI接口,如果不使用键盘,可以不接MISO口,当不需要片选时,CS可直接接地,这样最少只需2跟口线,即可完成与BC7277的接口。接口速率最高为64Kbps,可以直接与多种MCU的硬件串行接口相连,充分利用控制器的硬件资源,节省处理器时间。对没有SPI接口资源的MCU,也可用非常短的代码用I/O口实现其通讯协议。一、数据格式BC7277的指令都是以两个字节为一个单位。这两个字节第一个字节为寄存器地址,第二个字节为数据,传送的时候高位(MSB)在前,数据结构如下:寄存器地址数据字节D70D60D50D4A4D3A3D2A2D1A1D0A0D7d7D6d6D5d5D4d4D3d3D2d2D1d1D0d0MSB                                                                                                                                              LSB©北京凌志比高科技版权所有 6BC7277-9位LED数码管及16键键盘接口芯片 指令字节的低5位A4­A0为寄存器地址,有效地址范围为00H­1DH. 如果输入的地址范围超出了有效范围,则该指令会被忽略,有时可以利用这个特性,向BC7277发送一个‘伪指令’,目的只在于得到输出的键盘映射值。在接收指令的同时,BC7277会在MISO引脚上输出16bit的数据,该数据为键盘的映射,用户可以通过该数据获取键盘的状态。输入和输出为同时进行,每次CLK脉冲到来时,数据在CLK脉冲的低电平期间被BC7277平均采样,同时输出键盘映射数据,MCU一侧使用硬件SPI接口时,应该设置成在CLK的上升沿采样MISO数据。详见时序图。输出的键盘映射数据输出也是MSB在前,具体如下:键盘映射高字节D7S15D6S14D5D4D3S11D2S10D1S9D0S8D7S7D6S6S13S12键盘映射低字节D5S5D4S4D3S3D2S2D1S1D0S0MSB                                                                                                                                              LSB按键处于开路状态时,对应的键盘映射为1,导通状态时,对应的映射值为0. 换而言之,如果没有连接键盘,则输出的值将为0xFFFF. 键盘映射数据位和键盘按键间的对应关系如下表,请参考后文中键盘部分的电路图。DIG3DIG2DIG1DIG0DIG4DIG5DIG6DIG7S3S7S11S15S2S6S10S14S1S5S9S13S0S4S8S12当使用CS片选信号时,键盘映射值会在CS信号的下降沿得到更新,因此每次输出的键盘映射值均为当时最新的键盘状态。当CS信号被直接接地时,键盘映射值只在每次指令传输的结尾时得到更新,因此每次每次输出的键盘映射值,实际上是上一个指令传送结束时的键盘状态,如果两个指令的间隔时间比较长,则输出的数据可能并不能及时反应键盘的状态。这时如果想取得最新的键盘状态,可以连续发送两个指令或者伪指令。二、时序BC7277可以连接标准的同步串行接口,比如SPI接口, 可以连接为标准4线的方式,包括数据(MOSI), 时钟(CLK)和片选(CS). 当MCU的I/O口线紧张的时候,也可以将CS  直接接地。如果不使用键盘,还可以省去MISO的连接,这时只需要2跟口线MOSI和CLK,即可完成与MCU的接口。©北京凌志比高科技版权所有 7BC7277-9位LED数码管及16键键盘接口芯片 数据在时钟为低电平期间被平均采样时钟周期T >= 15.6uS (Fclk<=64KHz)时钟下降沿后数据保持时间Thold > ½TThold对于使用硬件SPI接口的情况,请设置SPI接口为如下参数: CLK空闲状态为高电平, 数据在第一个时钟沿(下降沿)改变,在第二个时钟沿(上升沿)被采样,串口速率≤64Kbps.如果使用I/O口模拟SPI接口,因为数据在CLK低电平期间被BC7277平均采样,因此需要在将CS置为低电平前将数据线设置好相应的高低电平,并维持数据线稳定至少半个时钟周期以上(Thold>½T).T1T2T3T4图中,T1为指令中CS下降沿到第一个CLK时钟脉冲下降沿的时间,此时间要求大于½个时钟周期T, 当使用硬件SPI接口时,从数据写入SPI接口发送寄存器到第一个时钟脉冲输出,一般会自动加入约1个时钟周期的延时,用户使用时程序中先将CS置低电平,然后写入SPI接口寄存器即可,对此延时可不予考虑,但如果所用MCU的SPI接口没有此特性,或者使用软件模拟SPI接口,则需人工加入此延时。T2为一个指令中,寄存器地址字节和数据字节之间的延时,此时间要求大于1个时钟周期T. 当使用硬件SPI接口时,一般硬件会自动在两个传送的字节之间加入此延时,如果所用MCU不能产生此延时,或使用软件模拟SPI接口时,则需人工加入延时。T3为最后一个时钟脉冲上升沿到CS上升沿的时间,要求大于½个时钟周期T. 当使用硬件SPI接口时,如果用户程序在等待SPI接口状态变为“发送完成”状态后再将CS置1,则此时间可由硬件保证,因为时钟脉冲的最后一个上升沿到整个时钟周期结束正好还有½个时钟周期。 如果所用SPI接口不符合该特性,或使用软件模拟SPI接口,则该延时需要人工加入。T4为前一个CS信号的上升沿到下一个CS信号的下降延之间的延时,要求大于½个时©北京凌志比高科技版权所有 8BC7277-9位LED数码管及16键键盘接口芯片 钟周期T.在每个指令的2个字节之间,必须保持CS为低电平状态,CS可以在每个指令之间置为高电平。CS的作用有2个,1个是在系统中有多个SPI器件时作为片选信号,另外一个作用是在CS的下降延,BC7277内部会对SPI串口寄存器做复位操作,保证数据传输正确。每个指令传送完成后,恢复CS为高电平的操作并不是必须的,当连续传送批量指令时,可一直维持CS为低电平,在所有指令传送完成后再恢复为高电平。三、接口复位机制SPI口必须有某种机制使得串行接口可以被复位,以防当因某种原因时钟和数据线失去同步时,造成传送的数据混乱。当使用CS信号时,接口在CS的下降沿被复位。当CS直接接地时,BC7277具有独特的时间复位机制,此机制生效时,当时钟线上“静音”超过2个显示扫描周期(约30mS)时,SPI接口就会被复位。也就是说,当CLK引脚上无电平变化超过2个扫描周期,当前所接收的数据将被抛弃,下一个CLK脉冲对应的数据将作为新指令的MSB。在时间复位机制下,即便前一个指令因为某种因素造成了时钟与数据不同步(比如主机发送了16个时钟脉冲,数据已经传送完,但BC7277只接收到了15个时钟脉冲,还在继续等待最后一个数据位),只要后面一个双字节指令和前面一个指令之间的时间间隔大于两个扫描周期(期间时钟线CLK上须没有时钟脉冲),BC7277就会对内部接收缓存器复位,这样后面一个指令仍可以正确被接收,而不会将后一个指令的最高位当作前一个指令的最后一位而使错位持续下去,造成不可预估的后果。此时间复位机制,只有在系统上电时CS处于低电平的情况下才会启动,如果当系统上电时CS为高电平,则时间复位机制不会启动,BC7277不会检测CLK信号“静音”的时间,只有CS信号可以将SPI接口复位。时间复位机制生效的情况下,CS片选端依然具有作用,即如果CS变为高电平,BC7277将不会接收任何数据,同时在CS信号的下降沿,BC7277的串口缓存器仍然将被复位。不同接口方式比较接口方式使用CS片选信号优点通讯可靠性高;可以和其它SPI占用口线多接口器件共用接口;对CS最大脉冲宽度无要求,若使用软件模拟,通讯过程中允许被其它中断长时间打断;每次输出键盘映射值为最新值缺点©北京凌志比高科技版权所有 9BC7277-9位LED数码管及16键键盘接口芯片 不同接口方式比较接口方式不使用CS(直接接地)优点节省I/O口资源缺点接口不能复用,两个指令中间最好间隔2个扫描周期以上。最大CLK脉冲宽度不能大于2个扫描周期,如使用软件模拟SPI接口,需注意通讯不能被执行时间大于两个扫描周期的中断打断,调试程序时需注意数据传送中途不可设置断点。每次输出的键盘映射值为上个指令传送结束时的数值,可能存在滞后外围电路BC7277外围电路简单,只需外接少量限流电阻,就可以构成多位LED显示电路。典型的电路如下:限流电阻,可以用下面近似公式计算:R = 67*(VCC­ULED) – 100其中,VCC为BC7277电源电压,ULED为LED正向管压降。电压单位为‘伏’,结果电阻单位为‘欧姆’。当VCC=5V,ULED=1.85V,可得结果R=111Ω,可取近似值100Ω;当VCC=3.3V时,计算结果为­2.85Ω,取近似值为0Ω,即限流电阻可以省略;当VCC=3V时,计算结果R=­23Ω,表明此时限流电阻可以省略,且在此条件下使用亮度会有所降低。一、滤波电路当电路具有以下几种情况之一:使用于高干扰环境、使用开关电源供电,以及电路中有模拟电路部分的情况,最好在BC7277的供电电路中,串入如下的滤波电路,一方面减小干扰可能对芯片正常工作的影响,另一方面也可滤除显示电路给模拟电路带来的噪音。©北京凌志比高科技版权所有 10BC7277-9位LED数码管及16键键盘接口芯片 二、串行接口电路BC7277采用SPI接口,接口速率可以达到64Kbps,可以使用MISO, MOSI, CLK, CS 4线连接标准的SPI接口(见典型应用图), 不用键盘时最低可以接为2线方式,将CS直接接地,只使用时钟线和数据线。一般MCU上SPI接口均可设置不同的工作模式,与BC7277相连时,应该设置成主机(Master)模式,CLK空闲时高电平,数据在第一个时钟沿传递,在第二个时钟沿采样。接口的时钟频率,必须在64KHz以下。因为接口部分的高电平最低输入电压在电源电压为5V时为3.7V, 因此,如果BC7277的电源电压为5V, 无法直接与3V系统接口,但因BC7277本身可工作在3V电源电压下,因此当系统MCU为3V或3.3V供电时,建议BC7277也采用相同的供电电压,如果需要用更高电压驱动数码管,可以使用后文中“驱动大尺寸数码管”的电路,仅在驱动部分使用更高电压。如果确需令BC7277工作于5V,需要外加电平转换电路。74HCT的逻辑电路,当电源电压为5V时,高电平最低输入电压为2V,可以直接接受3V系统的输入。在通讯线路中串入这样的缓冲器,即可解决电平匹配的问题。如图:©北京凌志比高科技版权所有 11BC7277-9位LED数码管及16键键盘接口芯片 三、键盘电路16个键盘接成4x4的矩阵,接在DIG0­DIG7上,连接方式见下图。矩阵的行和列上,都需要串入电阻,电阻的作用在于防止位驱动输出之间的短路,4.7K的阻值可以适用于大多数情况。因为BC7277采用键盘映射寄存器反映每个按键的状态,因此可以适用于各种常开和常闭开关,而不限于常用的常开按键。不过因为上电时系统复位状态键盘映射寄存器为0xFFFF, 对应所有键盘开路状态,因此如果按键中有的采用的是常闭式,则上电一开始,会©北京凌志比高科技版权所有 12BC7277-9位LED数码管及16键键盘接口芯片 有一次KEY引脚的电平跳变。KEY引脚在上电时可以是任意状态,键盘矩阵每个扫描周期(约15ms)会被扫描一遍。换而言之,KEY最短的变化周期,为一个扫描周期。KEY在每次键盘状态发生变化时电平跳变一次,但不等于每次电平变化对应一个按键的变化。如果在一个扫描周期内,同时有2个或2个以上按键的状态发生了改变,KEY仍然只会发生一次电平的变化,即一次KEY引脚电平变化有可能对应多个按键的同时变化。KEY不是键盘状态的反映,用户应该在意KEY上电平的变化,而不是该引脚具体为高电平还是低电平,因为同样的电平可以对应任何的键盘状态,没有按键时,KEY可以是高电平或低电平。举例说明:如果系统在某一时刻所有按键为开路状态,且KEY电平为高电平;如果此时有两个按键同时(时间相差1个扫描周期以内)被按下变为短路状态,则KEY会变成低电平,过了一定时间,两个被按下的按键中的一个被释放重新变为开路状态,此时KEY会恢复成高电平,但此时对应的键盘状态为有一个键被按下,再过一段时间此按键也被释放,此时按键状态恢复成和初始状态一样,即所有按键均为开路状态,但此时KEY会再次发生电平翻转,变成低电平。最后键盘的状态和初始时刻一样,但KEY的状态由高电平变成了低电平。程序流程因为接口协议简单,而且很多新型单片机都带有内置的硬件SPI接口,因此,与BC7277的软件接口也非常容易实现。简单来说,可以分为三种方式:•纯软件使用I/O口模拟•使用硬件SPI接口,但使用查询方式•使用硬件SPI接口,且使用SPI接口中断三种方式可谓各有优缺点,下面是三种接口方式的比较:软件模拟SPI接口硬件SPI接口/查询方式硬件SPI接口/中断方式所需代码长度是否可以灵活安排I/O口使用通讯时是否可同时执行其它任务较短可以不可以最短较长不能,由MCU硬件决定不能,由MCU硬件决定有限,必须等待前一字节发送完成,连续通讯时几乎与软件模拟方式一样不需要可以。主程序只需将所需发送数据写入缓冲区当使用2线方式(CS直接接地)时,通讯过程中是否需要屏蔽其它执行时间超过2个扫猫周期的中断需要屏蔽不需要因为数字显示往往是系统中对实时性要求最低的、同时也是优先级最低的任务,并不需要使用中断来做后台的SPI接口控制,因此,一般建议使用硬件SPI接口+查询方式的方案。©北京凌志比高科技版权所有 13BC7277-9位LED数码管及16键键盘接口芯片 软件模拟方式流程图:函数名:发送一个指令函数名:发送一个字节参数:寄存器地址,数据参数:待发送字节延时½T (保证CS上升沿延时½T和下降沿之间时间间隔)CS=0Y最高位是否为1?N

发送字节:寄存器地址MOSI=1MOSI=0返回字节:键盘映射高字节CLK=0发送字节:数据返回字节:键盘映射低字节MISO缓存左移一位延时½TCS=1待发送数据左移1位读MISO写入最低位RETCLK=1延时½TN是否8位均发送完成?Y返回MISO数据©北京凌志比高科技版权所有 14BC7277-9位LED数码管及16键键盘接口芯片 硬件SPI接口+查询方式流程图:函数名:发送一个指令参数:寄存器地址,数据延时½T (保证CS上升沿和下降沿之间时间间隔)CS=0发送字节:寄存器地址返回字节:键盘映射高字节发送字节:数据返回字节:键盘映射低字节CS=1RET©北京凌志比高科技版权所有

函数名:发送一个字节参数:待发送字节延时½T(一般不需要,根据硬件决定)数据写入SPI口发送寄存器检查SPI口状态位N是否发送完成?Y读入SPI口接收寄存器延时½T(一般不需要,根据硬件决定)返回接收寄存器数据15BC7277-9位LED数码管及16键键盘接口芯片 硬件SPI接口+中断方式流程图:(注: 流程图中省略了可能需要的在CS下降延后和上升沿前的½T延时)函数名:发送一个指令参数:寄存器地址,数据函数名:发送一个字节参数:待发送字节N发送字节:寄存器地址SPI接口是否处于空闲状态?Y延时½TY发送字节:数据缓冲区满?数据写入FIFO缓冲区NCS=0数据写入SPI口发送寄存器RETRET中断服务程序:SPI接口发送完成中断读取SPI口接收寄存器写入接收数据缓冲区N从缓存区取出一个字节写入发送寄存器发送缓存区是否已空?YCS=1RET注:在中断方式下,因为缓冲区的存在,“发送一个指令”子程序的调用和数据实际在SPI口上发出的时间会有不同步的问题,因此,不能如其它两种方式一样在“发送一个指令”子程序中控制CS片选信号的电平变化。比较好的方式是,在“发送一个字节“子程序中,检查如果当前SPI口处于空闲状态,则先将CS信号置低,然后将数据写入SPI口发送寄存器开始发送。在SPI口中断处理程序中,如果发现当前缓冲区已经为空,表示所有数据均发送完成,此时将CS恢复为高电平。这个方式和在“发送指令”子程序中控制CS©北京凌志比高科技版权所有 16BC7277-9位LED数码管及16键键盘接口芯片 效果有所区别,在“发送指令”子程序中控制CS时,CS信号随每个指令都会跳变一次;中断方式下,CS则按指令组为跳变,每组连续发出的指令中间,CS都将维持在低电平,直至所有数据发送完成,才会恢复为高电平。同样原因,在“发送一个字节”子程序中,无法返回读入的键盘映射数据。因此在使用中断方式通讯时,在设置发送缓冲区的同时,还需要一个接收缓冲区,用来存放接收到的键盘映射数据。程序在SPI口发送完成中断处理子程序中,首先将接收寄存器的内容写入接收缓冲区,然后再将下一个待发送数据写入发送寄存器。©北京凌志比高科技版权所有 17BC7277-9位LED数码管及16键键盘接口芯片 封装信息BC7277有SDIP24和SSOP24两种封装,封装的尺寸分别如下:SSOP24封装尺寸©北京凌志比高科技版权所有 18BC7277-9位LED数码管及16键键盘接口芯片 24封装尺寸©北京凌志比高科技版权所有 19BC7277-9位LED数码管及16键键盘接口芯片 附录:BC727X系列芯片BC7275BC7276芯片封装可驱动数码管位数键盘接口数码管类型外接驱动驱动大尺寸数码管BC7277SDIP24/SSOP24916键共阴不需要不可以DIP20/SSOP205无共阴不需要不可以DIP20/SSOP208或1616键共阳三极管和移位寄存器可以©北京凌志比高科技版权所有 20

变润唇膏全国排行榜-


文章投稿或转载声明

本文链接:https://www.en369.cn/fanwen/xinxi-2-549771-0.html

来源:范文频道-369作文网版权所有,转载请保留出处。本站文章发布于 2023-08-22 12:16:16

发表评论

验证码:
用户名: 密码: 匿名发表
评论列表 (有 条评论
2人围观
参与讨论