MSP430单片机的通用IO接口.ppt

MSP430单片机的通用IO接口.ppt

ID:56443649

大小:373.50 KB

页数:42页

时间:2020-06-18

MSP430单片机的通用IO接口.ppt_第1页
MSP430单片机的通用IO接口.ppt_第2页
MSP430单片机的通用IO接口.ppt_第3页
MSP430单片机的通用IO接口.ppt_第4页
MSP430单片机的通用IO接口.ppt_第5页
资源描述:

《MSP430单片机的通用IO接口.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第3章MSP430单片机的通用IO接口I/O口是单片机控制系统对外沟通的最基本部件,从基本的键盘、LED显示到复杂的外设芯片等,都是通过I/O口的输入、输出操作来进行读取或控制的。为满足单片机系统对外部设备控制的需要,MSP430提供了许多功能强大、使用方便灵活的输入/输出接口。为了减少芯片引脚的数量以降低芯片的成本,又提供更多功能的I/O口,现在许多单片机都采用了I/O口复用技术,即端口可作为通用的I/O口使用,也可作为某个特殊功能的端口使用,用户可根据系统的实际需要来定义使用。这样就为设计开发提供了方便,简化了单片机系统的硬件设计工作。MSP430F249单

2、片机的每组I/O口都有4个控制寄存器,分别为方向控制寄存器PxDIR、输入寄存器PxIN、输出寄存器PxOUT和功能选择寄存器PxSEL,此处,小写字母“x”表示6组I/O口的数字序号,x=1~6,即P1口的方向控制寄存器为P1DIR,P6口的方向控制寄存器为P6DIR。另外,P1和P2口还具有3个中断寄存器,分别为中断允许寄存器PxIE、中断沿选择寄存器PxIES和中断标志寄存器PxIFG,此处,x=1~2。Px口的每个引脚都可以单独配置成输入或者输出方向的控制。需要注意的是:MSP430系列单片机端口输出电流最大为6mA,当需要驱动比较大的负载的时候,需要利

3、用三极管或者缓冲器来提高端口的驱动能力。MSP430单片机的I/O口为双向I/O口,因此在使用I/O口前首先要用方向选择寄存器来设置每个I/O口的方向,在程序运行中还可以动态改变I/O口的方向。例如P1.0、P1.1、P1.2接有按键,P1.4、P1.5、P1.6接有LED,通用I/O接口应用示例如图3.1所示。P1DIR

4、=BIT4+BIT5+BIT6;//P1.4、P1.5、P1.6设为输出P1DIR&=~(BIT0+BIT1+BIT2);//P1.0、P1.1、P1.2设为输入(可省略)图3.1通用I/O接口应用示例图P1OUT=BIT4+BIT5+BIT

5、6;//P1.4~P1.6输出高电平//二极管阳极接高电平,二极管不发光if((P1IN&BIT0)==0)P1OUT

6、=BIT4;//P1.4输出低电平点亮LED实例3.1彩灯控制任务要求:利用MSP430F249单片机的P1口控制8个发光二极管LED1~LED8,P1口接入三个开关K1~K3,当K1闭合时,LED1和LED4闪烁,闪烁时间1s;当K2闭合时,LED2和LED5闪烁,闪烁时间2s;当K3闭合时,LED1~LED8循环闪烁,闪烁时间1s。分析说明:发光二极管LED是一种半导体器件,当两端压降大于1V时,通过5mA左右的导通电流时即可发光。导通电流

7、越大,亮度越高,但若电流过大,会烧毁二极管,一般我们控制在3~20mA。在这里,给发光二极管串联一个电阻的目的就是为了限制通过发光二极管的电流不要太大,因此这个电阻又称为“限流电阻”,通常取300~1000Ω。MSP430F249单片机的I/O口输出电流最大为6mA,所有电流之和不超过48mA。且当其I/O口输出“0”时,可以吸收最大40mA的电流。因此采用单片机I/O口控制发光二极管负极的设计。图3.2实例3-1彩灯控制硬件电路图#include#defineucharunsignedchar#defineuintunsignedi

8、nt/*********软件延迟ms子程序*********/voiddelayus(uintt){uinti;while(t--)for(i=1300;i>0;i--);}voidmain(void){uintmask=0x01;WDTCTL=WDTPW+WDTHOLD;//关闭看门狗P1DIR=0xFF;//设置方向为输出P1SEL=0x00;//设置为普通I/O口P1OUT=0xFF;//LED输出全部关闭while(1){if((P2IN&0x07)==0x06)//K1开关闭合{P1OUT^=(BIT0+BIT4);//LED0,LED4闪烁delay

9、us(100);//延迟0.1s}elseif((P2IN&0x07)==0x05)//K2开关闭合{P1OUT^=(BIT1+BIT5);//LED1,LED5闪烁delayus(200);//延迟0.2s}elseif((P2IN&0x07)==0x03)//K3开关闭合{P1OUT=~mask;//LED逐个点亮delayus(100);//延迟0.1smask+=mask;//mask的值从0x01,0x02,0x04...0x80,对应8个LEDif(mask==0x100)//恢复到0x01mask=0x01;}if((P2IN&0x07)==0x0

10、7)P1OUT=0xFF

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。