MSP单片机硬件设计及接口技术ppt课件

上传人:新** 文档编号:570138731 上传时间:2024-08-02 格式:PPT 页数:90 大小:4.46MB
返回 下载 相关 举报
MSP单片机硬件设计及接口技术ppt课件_第1页
第1页 / 共90页
MSP单片机硬件设计及接口技术ppt课件_第2页
第2页 / 共90页
MSP单片机硬件设计及接口技术ppt课件_第3页
第3页 / 共90页
MSP单片机硬件设计及接口技术ppt课件_第4页
第4页 / 共90页
MSP单片机硬件设计及接口技术ppt课件_第5页
第5页 / 共90页
点击查看更多>>
资源描述

《MSP单片机硬件设计及接口技术ppt课件》由会员分享,可在线阅读,更多相关《MSP单片机硬件设计及接口技术ppt课件(90页珍藏版)》请在金锄头文库上搜索。

1、1单片机与通讯系统2内容简介内容简介nMSP430F149单单片机最小系片机最小系统设计统设计nMSP430F149单单片机片机电电平平转换电转换电路路设计设计nMSP430F149单单片机片机显显示器件接口示器件接口设计设计nMSP430F149单单片机片机键盘键盘接口接口设计设计nMSP430F149单单片机串行通片机串行通讯讯接口接口设计设计nMSP430F149单单片机功率接口技片机功率接口技术术MSP430F149单片机最小系统设计单片机最小系统设计单片机电源电路设计单片机电源电路设计复位电路设计复位电路设计时钟电路设计时钟电路设计JTAG接口电路设计接口电路设计 单片机电源电路的设

2、计是单片机硬件单片机电源电路的设计是单片机硬件系统中首先要思索的一个问题。单片机系统中首先要思索的一个问题。单片机芯片及其外围接口电路芯片对电源的供芯片及其外围接口电路芯片对电源的供电要求是单片机电源电路设计的根底。电要求是单片机电源电路设计的根底。MSP430系列单片机在任务电压为系列单片机在任务电压为+1.8V+3.6V之间时均可正常任务,之间时均可正常任务,假设要进展假设要进展FLASH擦写操作那么电源电擦写操作那么电源电压应坚持在压应坚持在2.7V以上。普通电源电压为以上。普通电源电压为+3.3V。单片机电源电路设计单片机电源电路设计由于由于MSP430内部有内部有AD转换模块,数字电

3、转换模块,数字电源和模拟电源需求分别供电,并且电源衔接源和模拟电源需求分别供电,并且电源衔接接地点的旁路电容采用钽电容和磁片电容并接地点的旁路电容采用钽电容和磁片电容并联的方式,大大减少了噪声的影响,提高了联的方式,大大减少了噪声的影响,提高了供电质量及供电质量及A/D转换精度。在模拟地和数字转换精度。在模拟地和数字地之间接入反向并联的二极管对,以消除低地之间接入反向并联的二极管对,以消除低于于700mV的电压差。或者在模拟地和数字的电压差。或者在模拟地和数字地之间接入一个地之间接入一个0欧姆的电阻,以减少模拟欧姆的电阻,以减少模拟地对数字地带来的噪声干扰,为单片机的稳地对数字地带来的噪声干扰

4、,为单片机的稳定任务提供了良好的环境。定任务提供了良好的环境。单片机电源电路设计单片机电源电路设计由于大部分数字系统都采用由于大部分数字系统都采用+5V作为主供电系统,因此作为主供电系统,因此+3.3V电源普通都是从主供电电源电源普通都是从主供电电源+5V经过调压电路得到的。经过调压电路得到的。这个调压电路可以用简单的分别器件构成,例如采用这个调压电路可以用简单的分别器件构成,例如采用3个二个二极管串联即可产生极管串联即可产生2.1V的压降,使电压从的压降,使电压从+5V降到降到+2.9V。但是单片机的供电要求,除了电压幅度的要求以外,往往对但是单片机的供电要求,除了电压幅度的要求以外,往往对

5、供电电流、电压稳定性等有要求,因此,普通的单片机系统供电电流、电压稳定性等有要求,因此,普通的单片机系统都采用集成供电系统提供电源供电,这些集成电路供电系统都采用集成供电系统提供电源供电,这些集成电路供电系统称之为电源管理芯片。称之为电源管理芯片。常用的常用的+5V转转+3.3V电源管理芯片有:电源管理芯片有:TI公司的公司的TPS7133、TPS7233、TPS7333和和TPS75733;MAXIN公司的公司的MAX604、MAX748;NS公司的公司的LP2980等。等。单片机电源电路设计单片机电源电路设计LP2980典型电路LP2980封装方式TPS75733典型电路TPS75733封

6、装图REG1117-3.3典型电路REG1117-3.3封装电路复位电路设计复位电路设计复位电路是单片机系统中不可短少的部分,其好坏影响整个单片机运用系统的可靠性。同时,复位电路非常容易遭到外部噪声干扰。因此,复位电路的设计首先要求保证整个运用系统的可靠性,其次是具有抗干扰才干。复位电路的根本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。RC复位电路为提高系统设计的可靠性,也可以采用公用集成电路提供复位。这种集成电路普通除了可以提供上电复位信号,还可以提供按键手动复

7、位和定时自动复位信号。由于MSP430系列单片机都有片内看门狗定时器可以实现看门狗功能,因此MSP430系列单片机只需求提供上电复位和按键手动复位即可。常用的主要有maxin公司的MAX809、MAX810、MAX811、MAX812等。公用集成电路MAX809/MAX810典型电路MAX809/MAX810封装时钟电路设计时钟电路设计晶体振荡器是非常容易受干扰的部分,在PCB规划时也要特别留意,晶体应该尽量接近单片机本身,时钟信号走线长度应尽能够短,线宽尽能够大,紧靠器件规划布线,必要时可以走内层,并用地线包围。JTAG接口电路设计接口电路设计上位机(IAR)仿真软件JTAG仿真器MSP43

8、0单片机并口线或 USB线JTAG衔接线JTAGnJTAG(JOINT TEST ACTION GROUP)n结合测试行动小组,是一种国际规范测试结合测试行动小组,是一种国际规范测试协议,主要用于芯片内部的测试。协议,主要用于芯片内部的测试。nJATG根本原理是在芯片内部定义一个测试根本原理是在芯片内部定义一个测试访问接口,经过公用的访问接口,经过公用的JATG测试工具进展测试工具进展内部节点的测试。内部节点的测试。JTAG接口引脚陈列图接口引脚陈列图信号名称引脚序号含义仿真器状态设备状态TDO1JTAG数据从目标CPU输出输入(I)输出(O)VCC2目标CPU供电电源,可以通过此引脚用仿真器

9、给目标CPU供电。输出(O)输入(I)TDI3JTAG数据输入到目标CPU输出(O)输入(I)Vsense4目标电压监视,管理目标CPU电压输入(I)输出(O)TMS5目标CPU输入模式设置输出(O)输入(I)TCK7JTAG时钟信号输出(O)输入(I)TEST8模式选择信号输出(O)输入(I)GND9接地RESET11目标CPU复位信号输出(O)输入(I)NC6,10,12,13,14无连接JTAG接口引脚阐明接口引脚阐明JTAG接口电路设计接口电路设计6.2 电平转换电路设计电平转换电路设计加到输入和输出引脚上允许的最大电压限制问题。器件对加到输入或者输出脚上的电压通常是有限制的。这些引脚

10、有二极管或者分别元件接到 Vcc。假设接入的电压过高,那么电流将会经过二极管或者分别元件流向电源。例如在3.3V器件的输入端上加上5V的信号,那么5V电源会向3.3V电源充电。继续的电流将会损坏二极管和其它电路元件。 两个电源间电流的互串问题。在等待或者掉电方式时,3.3V电源降落到0V,大电流将流通到地,这使得总线上的高电压被下拉到地,这些情况将引起数据丧失和元件损坏。必需留意的是:不论在3.3V的任务形状还是在0V的等待形状都不允许电流流向Vcc。 接口输入转换门限问题。用5V的器件来驱动3.3V的器件有很多不同的情况,同样TTL和CMOS间的转换电平也存在着不同情况。驱动器必需满足接纳器

11、的输入转换电平,并且要有足够的容限以保证不损坏电路元件。 比 较 项 目GNDVOLVILVtVIHVOHVcc5V COMS00.51.52.53.54.4455V TTL00.40.81.522.453.3V TTL,LVC,ALVT等00.40.81.522.43.3 MSP430与与5V电平接口的电平接口的4种情形种情形 (1) 5V CMOS器件驱动MSP430。由于5VCMOS和3.3V的电平转换规范是一样的。5V CMOS器件输出的典型值为3.6V。因此,假设3.3V器件可以接受5V的电压,那么从电平上来说是完全可以直接相连的。但是,由于驱动器构造会有所不同,因此必需求对加到MS

12、P430输入端的电压进展控制,使其不超越3.6V,以防万一; MSP430与与5V电平接口的电平接口的4种情形种情形 (2) MSP430驱动5V CMOS器件。由于3.3V 和5V CMOS电平转换规范是一样的,因此不需求额外的器件就可以将二者直接相连。不需求额外的电路直接从MSP430驱动5V的器件,看起来是不可思议的,但是3.3V器件的VOH和VOL电平分别是2.4V和0.4V,5V CMOS器件的VIH 和VIL 电平分别是2V和0.8V。而MSP430 实践上能输出3V摆幅的电压,显然5V CMOS器件可以正确识别MSP430的输入电平; MSP430与与5V电平接口的电平接口的4种

13、情形种情形 (3) 5V TTL器件驱动MSP430。显然,5V TTL与3.3V的转换电平是不一样的。进一步分析5V TTL的VOH 和VOL以及3.3V的VIH 和VIL 的转换电平可以看出,虽然两者存在一定的差别,但是可以接受5V电压的3.3V器件可以正确识别5V器件送来的电平值。所以可以接受5V电压的3.3V 器件的输入端可以直接与5V器件的输出端接口。但是MSP430没有5V容限,不能直接与5V器件的输出端接口; MSP430与与5V电平接口的电平接口的4种情形种情形 (4) MSP430驱动5V TTL。3.3V与5V TTL的电平转换规范是不一样的,从表2中可以看出,3.3V输出

14、的高电压的最低电压值VOH = 2.4V输出的最高电压可以到达3.3V,而5V CMOS器件要求的高电平最低电压VIH = 3.5V,因此MSP430的输出不能直接与5V CMOS器件的输入相衔接。 由以上分析可知,在5V CMOS器件驱动MSP430或者MSP430与5V TTL器件接口时,二者是不能直接相连的。在这种情况下,必需求经过3.3V与5V电平的相互转换。可以采用双电压一边是3.3V,另一边是5V供电的双向驱动器来实现电平转换。如TI的SN74ALVC164245、SN74ALVC4245等芯片,可以较好地处理3.3V与5V电平的转换问题。对于5V TTL驱动MSP430时的情况,

15、也可以采用一个简单的方法就是电阻分压。MSP430与串口接口问题与串口接口问题MSP430系列微控制器都自带串行通讯口,有几款还有两个串口。这样就方便了与PC机接口,加强了与外界通讯的才干。不过串口的电平和逻辑关系与MSP430存在很大的差别。以广泛运用的EIA - RS - 232C规范为例,对于数据信息码:逻辑“1传号的电平为-3V -15V,逻辑“0空号的电平为+3V +15V;对于控制信号:接通形状ON,即信号有效的电平为+3V +15V,断开形状(OFF),即信号无效的电平为-3V -15V。也就是说当传输电平的绝对值介于3V 15V时,以为是有效信号,其它电平均以为是无效的。而MS

16、P430输出的电平却在0 3V左右,因此要想与PC串口接口或者其它带有串口的终端接口,必需求进展EIA-RS-232C与MSP430电平和逻辑关系的转换。实现这种变换的方法很多,可用分别元件,也可用集成电路。目前较为广泛地运用集成电路转换器件,MAX232/MAX232A、MAX3221/MAX3223 等芯片可完成多路3V 5V电平与串口电平的双向转换。在MSP430与PC串口接口时,用MAX232A电路比较简单只需外接几个电容,而且这款芯片可以实现两路变换,价钱也较廉价。MSP430F149单片机显示器件接口设计单片机显示器件接口设计n1.1 MSP430驱动发光二极管驱动发光二极管n1.

17、2 MSP430驱动七段数码管驱动七段数码管n1.3 MSP430驱动驱动8*8 LED点阵点阵n1.4 MSP430 驱动液晶显示驱动液晶显示321.1 MSP430驱动发光二极管驱动发光二极管331、发光二极管阴极接地、发光二极管阴极接地MSP430 点亮发光二极管点亮发光二极管的程序:的程序:P3DIR|=BIT1;P3OUT|=BIT1;MSP430 熄灭发光二极管熄灭发光二极管的程序:的程序:P3DIR|=BIT1;P3OUT&=BIT1;2、发光二极管阳极接、发光二极管阳极接VCCMSP430 点亮发光二极管的程序:点亮发光二极管的程序:P3DIR|=BIT1P3OUT&=BIT1

18、;MSP430 熄灭发光二极管的程序:熄灭发光二极管的程序:P3DIR|=BIT1;P3OUT|=BIT1;1.1 MSP430驱动发光二极管驱动发光二极管n1.发光二极管的两根引线中较长的一根为正极,应接电源正极。有的发光二极管的两根引线中较长的一根为正极,应接电源正极。有的发光二极管的两根引线一样长,但管壳上有一凸起的小舌,接近小舌发光二极管的两根引线一样长,但管壳上有一凸起的小舌,接近小舌的引线是正极。的引线是正极。n2.用万用表丈量发光二极管的正负极用万用表丈量发光二极管的正负极n3.红色和黄色的发光二极管的任务电压是红色和黄色的发光二极管的任务电压是2伏的,其他颜色的任务电伏的,其他

19、颜色的任务电压都是压都是3伏的普通的发光二极管的任务电流是伏的普通的发光二极管的任务电流是20毫安,假设接在五伏毫安,假设接在五伏的电源上,电源电压减二极管的任务电压就是分压电阻要分掉的电压,的电源上,电源电压减二极管的任务电压就是分压电阻要分掉的电压,再用这个电压除以二极管任务的电流就能计算出这个电阻的阻值。比再用这个电压除以二极管任务的电流就能计算出这个电阻的阻值。比如说如说3伏的二极管伏的二极管5-3/0.02=100欧,欧,2伏的二极管伏的二极管5-2/0.02=150欧,但是不是一切的发光二极管的任务电流都是欧,但是不是一切的发光二极管的任务电流都是20毫安,毫安,有的大一点有的小一

20、点,实践运用的时候也可以用整流二极管来分压,有的大一点有的小一点,实践运用的时候也可以用整流二极管来分压,一只二极管的压降是一只二极管的压降是0.7伏,用伏,用3只串联分掉的电压就是只串联分掉的电压就是2.1伏,剩下伏,剩下的正好是的正好是3.1伏或者用四个串联剩下伏或者用四个串联剩下2.2伏伏35用三极管驱动发光二极管用三极管驱动发光二极管3637PNP型型 901238NPN型型 901339用数字万用表的二极管档位丈量二极管用数字万用表的二极管档位丈量二极管n测二极管二极管时,运用万用表的二极管的档位。假,运用万用表的二极管的档位。假设将将红表笔接二极管阳正极,黑表笔接二极管表笔接二极管

21、阳正极,黑表笔接二极管阴阴负极,那么二极管极,那么二极管处于正偏,万用表有一于正偏,万用表有一定数定数值显示。假示。假设将将红表笔接二极管阴极,黑表表笔接二极管阴极,黑表笔接二极管阳极,二极管笔接二极管阳极,二极管处于反偏,万用表高位于反偏,万用表高位显示示为“1或很大的数或很大的数值,此,此时阐明二极管是好明二极管是好的。的。 在丈量在丈量时假假设两次的数两次的数值均很小,那么二极管内均很小,那么二极管内部短路;假部短路;假设两次两次测得的数得的数值均很大或高位均很大或高位为“1,那么二极管内部开路,那么二极管内部开路 402用数字万用表丈量三极管用数字万用表丈量三极管 n1用数字万用表的二

22、极管档位丈量三极管用数字万用表的二极管档位丈量三极管的类型和基极的类型和基极b 判别时可将三极管看成是一个背靠背的判别时可将三极管看成是一个背靠背的PN结,按照判别二极管的方法,可以判别出结,按照判别二极管的方法,可以判别出其中一极为公共正极或公共负极,此极即其中一极为公共正极或公共负极,此极即为基极为基极b。对。对NPN型管,基极是公共正极;型管,基极是公共正极;对对PNP型管那么是公共负极。因此,判别型管那么是公共负极。因此,判别出基极是公共正极还是公共负极,即可知出基极是公共正极还是公共负极,即可知道被测三极管是道被测三极管是NPN或或PNP型三极管。型三极管。41n2发射极射极e和集和

23、集电极极c的判的判别 利用万用表丈量利用万用表丈量HFE值的档位,判的档位,判别发射极射极e和集和集电极极c。将档位旋至。将档位旋至MFE基极基极插入所插入所对应类型的孔中,把其于管脚分型的孔中,把其于管脚分别插入插入c、e孔察看数据,再将孔察看数据,再将c、e孔中的管孔中的管脚脚对调再看数据,数再看数据,数值大的大的阐明管脚插明管脚插对了。了。 42n3判别三极管的好坏判别三极管的好坏 测试时用万用表测二极管的档位分别测试测试时用万用表测二极管的档位分别测试三极管发射结、集电结的正、反偏能否正三极管发射结、集电结的正、反偏能否正常,正常的三极管是好的,否那么三极管常,正常的三极管是好的,否那

24、么三极管已损坏。假设在丈量中找不到公共已损坏。假设在丈量中找不到公共b极、该极、该三极管也为坏管子。三极管也为坏管子。431.2 MSP430驱动数码管驱动数码管n数码管有数码管有7段数码管和段数码管和8段数码管之分。段数码管之分。7段段数码管由数码管由7个发光二极管组成,而个发光二极管组成,而8段数码段数码管那么是在管那么是在7段发光二极管的根底上再加一段发光二极管的根底上再加一个圆点型发光二极管个圆点型发光二极管(在图中以在图中以dp表示,表示,用于显示小数点。用于显示小数点。8段数码管中发光二极管段数码管中发光二极管的陈列外形如以下图的陈列外形如以下图a所示。所示。 4445LED显示器

25、显示原理显示器显示原理1.段码段码所谓段码就是为数码管显示提供的各段形状所谓段码就是为数码管显示提供的各段形状组合,即字形代码。组合,即字形代码。7段数码管的段码为段数码管的段码为7位,位,8段数码管的段码为段数码管的段码为8位,用一个字位,用一个字节即可表示。在段码字节中代码位与各段节即可表示。在段码字节中代码位与各段发光二极管的对应关系如下:发光二极管的对应关系如下: 段码D7D6D5D4D3D2D1D0段名dpgfedcba段码的值与数码管公共引脚的接法段码的值与数码管公共引脚的接法(共阳极和共阴共阳极和共阴极极)有关。以有关。以8段数码管为例,显示十六进制数的段数码管为例,显示十六进制

26、数的段码值在下表中。段码值在下表中。数字共阳极段码共阴极段码数字共阳极段码共阴极段码0C0H3FH990H6FH1F9H06HA88H77H2A4H5BHB83H7CH3B0H4FHCC6H39H499H66HDA1H5EH592H6DHE86H79H682H7DHF8EH71H7F8H07H灭FFH00H880H7FHnLED的运用方法可以分为静态显示和动态的运用方法可以分为静态显示和动态扫描显示两种。扫描显示两种。n1静态显示就是运用静态显示就是运用8个口线控制个口线控制LED的的8个段,这种方式简单易用,但是占用口个段,这种方式简单易用,但是占用口线较多线较多4849n假假设显示字符示字

27、符“1,那么程序如下:,那么程序如下:nP4DIR=0xFF;nP4OUT=0x06;n假好像假好像时点亮小数点,那么程序点亮小数点,那么程序为nP4OUT=BIT7+0x06;50n假设选用共阳极数码管,字形码应为共阴假设选用共阳极数码管,字形码应为共阴极的补数,表示方式:极的补数,表示方式:nP4DIR=0xFF;nP4OUT=0xF9;n或者或者nP4DIR=0xFF;nP4OUT=0x060xFF;软件怎样编写?软件怎样编写?Const char tab_seg = 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f,0

28、x77,0x7c,0x39,0x5e,0x79,0x71/从从0到到9循环显示循环显示P4DIR = 0xFF;For(int j = 0 ; j = 9; j+)for(int I = 0 ; I = 0x0FFF; I + );P4OUT = tab_segj+; /共阴极共阴极/假设共阳极怎样办?假设共阳极怎样办?52n(2)动态显示示n在在实践运用中普通采用践运用中普通采用动态扫描的方法,描的方法,扫描描显示是基于人眼的示是基于人眼的“视觉暂留来留来实现的,的,经过不断地不断地显示不同示不同LED使人使人觉得几得几个不同的个不同的LED在在显示。示。5354例:在例:在8个数个数码管上

29、分管上分别显示示0,1,27,共阴极接法共阴极接法const char tab_seg = 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71P2DIR = 0xFF;P4DIR = 0xFF;for(int i = 0 ; i = 7; i+)P2OUT = i&0x07;/选择位码选择位码P4OUT = tab_segi;P2OUT |= BIT0; /锁存器不锁存锁存器不锁存For(int i = 0; i = 0xFF; i+ );P2OUT &= BIT0;

30、/锁存器锁存锁存器锁存For(int i = 0;i = 0xFF; i+ );551.3 MSP430驱动驱动8*8LED点阵点阵6061点点阵LED普通采用普通采用扫描式描式显示,示,实践运用分践运用分为三种方式:三种方式: 1点点扫描;描; 2行行扫描;描; 3列列扫描。描。 假假设运用第一种方式,其运用第一种方式,其扫描描频率必需大于率必需大于1664=1024Hz,周期小于,周期小于1ms即可。即可。假假设运用第二和第三种方式,那么运用第二和第三种方式,那么频率必需大于率必需大于168=128Hz,周期小于,周期小于7.8ms即可符合即可符合视觉暂留要求。留要求。此外一次此外一次驱动

31、一列或一行一列或一行8颗LED时需外加需外加驱动电路路提高提高电流,否那么流,否那么LED亮度会缺乏。亮度会缺乏。62令令P1.01.7分别与分别与LED点阵的行线点阵的行线07相连,相连,P2.02.7分别与分别与LED点阵的列线点阵的列线AH相连。相连。显示第一列:显示第一列:P2OUT=BIT0,P1OUT=0x7C,delay显示第二列:显示第二列:P2OUT=BIT1,P1OUT=0x48,delay显示第三列:显示第三列:P2OUT=BIT2,P1OUT=0x48,delay显示第四列:显示第四列:P2OUT=BIT3,P1OUT=0xFF,delay显示第五列:显示第五列:P2O

32、UT=BIT4,P1OUT=0x48,delay显示第六列:显示第六列:P2OUT=BIT5,P1OUT=0x48,delay显示第七列:显示第七列:P2OUT=BIT6,P1OUT=0x7C,delay显示第八列:显示第八列:P2OUT=BIT7,P1OUT=0x00,delay留意中间要加限流电阻。留意中间要加限流电阻。#includeunsigned char seg68=0x7C,0x48,0x48,0xFF,0x48, 0x48,0x7C,0x00, /中中0xFF,0x85,0XD5,0xFD,0xDD, 0xDD,0x81,0xFF, /国国0x8C,0x98,0xFF,0x92

33、,0x92, 0x92,0x9F,0x80, /石石0XB3,0XD4,0x7F,0x4A,0xFE, 0x4A,0x4A,0x3F, /油油0x21,0x22,0x24,0XF8,0x2C, 0x22,0x23,0x20, /大大0x64,0XD4,0x55,0xDF,0x5C, 0XD4,0x44,0x24 /学学void disp(unsigned char n) unsigned char column=BIT0; for(int i=0;i8;i+) P2OUT=(column1); P1OUT=segni; delay(500); void main(void) WDTCTL=WD

34、TPW+WDTHOLD; P1DIR=0xFF; P2DIR=0xFF; for(;) for(int k=0;k6;k+) for(int j=0;j0xFF;j+) disp(k); n问题:问题:n1、I/O端口驱动才干有限,要加驱动电路才干保端口驱动才干有限,要加驱动电路才干保证字符亮度,驱动电路可运用三极管放大,也可证字符亮度,驱动电路可运用三极管放大,也可以运用驱动才干强的锁存芯片,比如以运用驱动才干强的锁存芯片,比如74HC373等。等。n2、占用单片机端口太多,实践运用、占用单片机端口太多,实践运用74HC大功大功率三极管进展列线选择,占用率三极管进展列线选择,占用3根口线;运

35、用根口线;运用74HC595进展行驱动,占进展行驱动,占3根口线包括串行数根口线包括串行数据输出、移位存放器时钟输出、存贮存放器时钟据输出、移位存放器时钟输出、存贮存放器时钟输出;共占输出;共占6根线。根线。n3、改良的程序可以在以上程序根底上修正。、改良的程序可以在以上程序根底上修正。662.做为输入接口做为输入接口2.1 独立按独立按键键式式键盘键盘2.2 行列行列扫扫描式描式键盘键盘2.3 N型型N(N-1)键盘键盘672.1 独立式按键独立式按键n这种键盘运用单片机的这种键盘运用单片机的I/O口线直接衔接,口线直接衔接,每个按键对应一根口线,如图每个按键对应一根口线,如图1所示,键盘所

36、示,键盘的任务原理:设置各个口线为输入方式,的任务原理:设置各个口线为输入方式,经过中断方式或者软件查询方式获取各个经过中断方式或者软件查询方式获取各个口线能否有键按下,在图口线能否有键按下,在图1中所示的键盘中,中所示的键盘中,有键按下那么口线端电平为高,否那么为有键按下那么口线端电平为高,否那么为低电平,独立按键式键盘运用简单,但是低电平,独立按键式键盘运用简单,但是每根口线只对应一个按键,假设系统需求每根口线只对应一个按键,假设系统需求较多按键,往往不能满足需求,因此这种较多按键,往往不能满足需求,因此这种方式适用于需求按键较少的运用。方式适用于需求按键较少的运用。6869键输入的软件问

37、题键输入的软件问题n1.中断与查询中断与查询n2. 去抖动问题去抖动问题701.中断与查询中断与查询什么时候用中断?什么时候用查询?什么时候用中断?什么时候用查询?中断程序怎样写?中断程序怎样写?#pragma vector = PORT1_VECTOR /P1中断效力子程序中断效力子程序 _interrupt void P1_Interrupt(void) if (P1IFG & 0x80) /假设假设P1.7中断中断 P1IFG=0x00; / 中断中断标志去除标志去除 P3OUT = 0x08; / P3.3输出变化输出变化 else P1IFG=0x00; /非非p1.7中断处置中断处

38、置 71查询程序怎样写?查询程序怎样写?查询程序怎样写?查询程序怎样写?P1DIR = 0x00;Now = 0x00;Last = 0x00;Result = 0x00;For(;)for(int I = 0; I = 0xFF; i+);now = P1IN;result = (now last) &last;last = now;If (result & 0x01)端口端口P1.0出现按键处置程序。出现按键处置程序。732. 去抖动问题去抖动问题n在实践运用过程中,由于在按键的前后会在实践运用过程中,由于在按键的前后会有抖动,因此在判别键值前要消除抖动,有抖动,因此在判别键值前要消除抖动

39、,普通消除抖动的方法有延时法和硬件消抖普通消除抖动的方法有延时法和硬件消抖动两种。动两种。74延时的方法就是经过延时来等候信号稳定,在信号延时的方法就是经过延时来等候信号稳定,在信号稳定以后再去识别键码。其过程是在检查到有键按稳定以后再去识别键码。其过程是在检查到有键按下以后延时一段时间下以后延时一段时间5ms20ms,再检查一,再检查一次看能否有按键按下。假设这一次检查不到,那么次看能否有按键按下。假设这一次检查不到,那么阐明前一次结果为干扰或者抖动。假设这一次检查阐明前一次结果为干扰或者抖动。假设这一次检查到有按键按下,那么阐明信号曾经稳定,然后判别到有按键按下,那么阐明信号曾经稳定,然后

40、判别闭合按键的键码。当闭合按键的键码确定以后,再闭合按键的键码。当闭合按键的键码确定以后,再去检查按键能否释放,待按键释放以后再进展处置,去检查按键能否释放,待按键释放以后再进展处置,这样就能够消除释放抖动的干扰。延时的方法可以这样就能够消除释放抖动的干扰。延时的方法可以采用软件延时法和定时中断法两种。采用软件延时法和定时中断法两种。75n另一种是硬件消抖动另一种是硬件消抖动:即在键开关与计算机即在键开关与计算机接口之间加一个消抖动电路,如双稳电路、接口之间加一个消抖动电路,如双稳电路、单稳电路输出脉宽要大于抖动时间、单稳电路输出脉宽要大于抖动时间、RC滤波电路等。由于硬件去抖动添加了电滤波电

41、路等。由于硬件去抖动添加了电路的复杂性,每个按键都要一个去抖动电路的复杂性,每个按键都要一个去抖动电路,所以这种方法只适用于键数目较少的路,所以这种方法只适用于键数目较少的场所。在键数目较多时,大多采用软件延场所。在键数目较多时,大多采用软件延时法去抖动。时法去抖动。76n例:独立按键识别。硬件电路如上图所示。三个按键经过例:独立按键识别。硬件电路如上图所示。三个按键经过P1.1P1.3输入,键值分别为输入,键值分别为1、2、3;当某个按键被;当某个按键被按下时获取对应的键值,并根据键值让相应的按下时获取对应的键值,并根据键值让相应的P3.1P3.3口线上的发光二极管发光。口线上的发光二极管发

42、光。nunsigned char keyvalue; /键值键值nunsigned char checkkey(void) n/判别能否有键按下判别能否有键按下nn return(P1IN&0x0E); nnunsigned char getkeyvalue(void) n/获取键值获取键值nn unsigned char value; n if(P1IN&BIT1)n value=1;n if(P1IN&BIT2)n value=2;n if(P1IN&BIT3)n value=3;n return(value); nnunsigned delayXms(unsigned int x) ;

43、/延时函数,略。延时函数,略。void main(void) WDTCTL=WDTPW+WDTHOLD; P1DIR=0x00; P3DIR=BIT1+BIT2+BIT3; while(1) delayXms(20); if(checkkey) delayXms(20); if(checkkey) keyvalue=getkeyvalue(); switch(keyvalue) case1:P3OUT=BIT1;break; case2:P3OUT=BIT3;break; case3:P3OUT=BIT3;break; default:break; n上例上例为行列式行列式键盘扫描程序,任描程

44、序,任务在在查询方式,方式,单片机不片机不断在断在查询有没有有没有键被按下,效率很低。被按下,效率很低。n为了提高了提高单片机效率,也可以采用定片机效率,也可以采用定时器中断的方式器中断的方式实现键盘输入。入。n思思绪:n设定定定定时器定器定时时间为扫描周期,也就是消除抖描周期,也就是消除抖动的的时间,如如10ms。设置两个置两个标志位:志位:nFF1消除抖消除抖动标志,志,FF2按按键识别完成完成标志。志。n初始初始值都是都是0,表示没有消除抖,表示没有消除抖动和完成按和完成按键识别。n当定当定时器器计时到到10ms时,进入中断,假入中断,假设FF1=0,那么没有消,那么没有消除抖除抖动,读

45、取端口取端口值,判,判别能否有能否有键被按下;如有,被按下;如有,设置置FF1=1,并退出中断,等待下一次中断。,并退出中断,等待下一次中断。n假假设再次中断,那么再次中断,那么继续判判别能否有能否有键被按下,如有,被按下,如有,阐明是真明是真正的按正的按键被按下,而且已是被按下,而且已是键盘的的稳定期;定期;n调用用键码识别子程序得到子程序得到键值,设置置FF2=1,表示完成了按,表示完成了按键的的识别。n假假设没有按没有按键被按下,那么被按下,那么阐明是抖明是抖动,设置置FF1=0,退出。,退出。n假假设下次中断下次中断还是是检查到有到有键被按下,被按下,显然都是同一次按然都是同一次按键,

46、FF2=1,阐明没有松开按明没有松开按键。n直到按直到按键被松开被松开时,设置置FF1=0和和FF2=0,为再次按再次按键做做预备。行列扫描式键盘行列扫描式键盘n图2所示所示键盘运用运用P1.0P1.6共共7根口根口线接接12个按个按键。键盘为34格局,格局,P1.0、P1.1、P1.2为行行线,P1.3、P1.4、P1.5、P1.6为列列线。列。列线分分别由上拉由上拉电阻上拉到阻上拉到VCC,在行,在行线与列与列线的每一个交界的每一个交界处有个按有个按键,按,按键的两的两端分端分别接在行接在行线和列和列线上。上。8182键值判别原理键值判别原理P1DIR = 0x07; P1OUT = 0x

47、00;Iskeydown = 0x00;Keyvalue = 0;For(;)P1OUT = 0x00;for(int I = 0;I = 0xFF; I + );if (P1IN & 0x78) /有有键键被按下被按下iskeydown = 0x01;P1OUT = BIT0; /第一行第一行if(P1IN & BIT3)keyvalue = “0 /第一列第一列if(P1IN & BIT 4)keyvalue = “1/第二列第二列 if(P1IN & BIT 5)keyvalue = “2/第三列第三列 if(P1IN & BIT 6)keyvalue = “3/第四列第四列/第二行第二行/第三行第三行83N型型N(N-1)键盘843.功率驱动功率驱动n1.继电器继电器n2.可控硅可控硅n3.固态继电器固态继电器853.1 MSP430单片机控制继电器单片机控制继电器868788MSP430驱动可控硅驱动可控硅89固态继电器固态继电器90

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号