




全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学习过51单片机的同学都知道,IO口的操作是所有单片机系统的基本操作,单片机作为一个核心的运算和处理器件必须能够对外部的信号做出反应,那么如何让MSP430得知外部信号变化和做出反应就是我们今天要学习的主要内容这里还是以MSP430G2553单片机为例MSP430单片机的IO口都有以下几个相关的寄存器:1、PnDIR:输入输出方向寄存器0-输入1-输出2、PnOUT:输出寄存器0-低电平1-高电平3、PnIN:输入寄存器这是一个只读寄存器用来读取外部电平状态4、PnIFG:中断标志寄存器0-没有中断请求1-有中断请求该寄存器有8个标志位,对应相应的引脚是否有待处理的中断请求这8个中断标志共用一个中断向量,中断标志不会自动复位,必须软件复位外部中断时间的时间必须=1.5倍的MCLK时间以保证中断请求被接受5、PnIE:中断启用寄存器0-不启用中断1-启用中断6、PnIES:中断触发边沿选择寄存器0-上升沿中断1-下降沿中断7、PnSEL:功能选择寄存器0-选择引脚为普通IO口1-选择引脚为外围模块功能(第二功能引脚)8、PnSEL2:功能选择寄存器2和PnSEL共同作用选择不同功能,当选择引脚作为普通IO口使用时PnSEL和PnSEL2都应该清零(默认)9、PnREN:上拉/下拉电阻使能寄存器0-禁止1-使能OK,以上就介绍完了和IO口相关的寄存器,是不是觉得好多,头晕?不过头晕之余看看描述,还是能够理出一些思绪的。本篇我们只讨论IO作为普通输入输出口使用所以像PnSEL、PnSEL2、PnIE寄存器就直接写入0x00就好了,或者说可以默认不作修改。像PnIFG和PnIES寄存器那就和我们本篇完全无关了。让我们看看MSP430G2553这个单片机的管脚是如何分布的吧,好让大家有个IO口的存在概念:图片太小?符号密密麻麻看不清?OK,cloud用表格给大家划分一下最简单的引脚图:VCCMSP430G2553GNDP1.0P2.6/XINP1.1P2.7/XOUTP1.2TESTP1.3/RSTP1.4P1.7P1.5P1.6P2.0P2.5P2.1P2.4P2.2P2.3看了这张图大家应该都明白了我们的MSP430G2553单片机只引出了P1口和P2口。所以,我们就可以通过设置P1口相关寄存器和P2口相关寄存器来实现IO口的不同功能。比如,我们让P1口全部输出,P2口全部输入,而且将P2口采集的电平直接复制到P1口就可以如下编程:(为了教程简洁明了,这里只提供关键代码,详细编程请实际练习)P1DIR=0xFF;/设置P1口为全部输出P2DIR=0x00;/设置P2口为全部输入while(1)P1OUT=P2IN;是不是很简单?又比如我们可以对IO口的某一位或者某几位进行操作:P1DIR=0x40;/设置P1.6为输出其他为输入P1OUT=0x40;/设置P1.6为高电平P2DIR=BIT5+BIT4;/设置P2.4和P2.5为输出其他为输入P2OUT=BIT5;/设置P2.4为低电平P2.5为高电平这里出现了BIT4、BIT5这些新的“符号”,让我们来看看他们到底是什么,我们打开io430G2553.h这个头文件,前面几行中我们就找到了如下的类似定义:由这几个我们就可以知道所谓BITx其实就是使一个16位二进制数的第x位为高电平其他位置零。因为MSP430是16位单片机,这里不仅有0-7(),还有8-9,A-F。比如BIT9=0x0200=0000001000000000,BITC=0x1000=0001000000000000。这里再说明一下这些符号都由#define宏定义出来所以并不占用空间,C编译器在编译阶段自动会将这些符号替换为相应的常量。下面我们来讨论一下关于上/下拉电阻。我们打开G2553的数据手册看一下找到了P1口的内部结构图,MSP430的IO口结构图非常复杂,这里我们只对上拉/下拉电阻做简单分析:(这里需要一定逻辑分析能力和数电知识,不懂可以直接记住结论)首先我们找到一个电阻,用橙色方框框起来的那个,很明显这个就是我们要找的上拉/下拉电阻。往回看,红色方框(右)是一个开关,这个开关只有闭合才能接入这个电阻。再沿着红色线路找到左边的红色方框(左),这是一个选择器。由于这里我们设置IO口为普通IO口状态模式,所以PxSEL2和PxSEL都是0这样,红色选择器上面的与门就输出了0,此时,红色选择器选择0端也就是PxREN.y这个位,这样分析得出IO工作在普通模式下时,由PxREN来控制电阻是否接入(即开关是否闭合)。再看开关的另一头,是一个选择器,0的时候输出DVSS也就是GND,1的时候输出DVCC也就是VCC,它又由谁来控制呢?我们沿着蓝色的线路往回走,又遇到了一个选择器,别急,我们前面已经说过绿色线路的与门已经输出了0所以这里选择的是0端也就是PxOUT.y这个位。这样我们就分析清楚了,也就是说IO在普通模式下,有没有上拉由PxREN决定,是上拉还是下拉由PxOUT决定,1就是上拉,0就是下拉。再进一步说,即使IO口处在输入状态下,如果PxREN有效,PxOUT还是起作用的,它决定了IO口外部电平的默认状态(即没有任何器件连接时状态)。Cloud在实际电路中对以上过程做了实验,代码如下:P1DIR=0x00;P1OUT=0xF0;P1REN=0xFF;while(1)我把P1口设置为输入,开启上拉/下拉电阻,并使高4位为上拉,低4位为下拉。用万用表测量得到高4位都是高电平,低4位都是低电平(这里忽略了板子上LED等器件的影响,实际这种影响是存在的,比如P1.0由于存在一个LED,电平被拉高,P1.6有于存在一个LED,电压被钳位在1.7V左右)。这验证了我们对数据手册的分析。Cloud还测量了当上拉/下拉电阻打开时候,IO的电流状态,当上拉电阻打开时,若将该管脚直接接地,则IO输出电流约为96.2uA,由此我们可以测得上拉电阻阻值约为:R=3.561V96.2uA(这里MSP430使用的VCC为3.5V左右,cloud实际测量3.561V)R37K同理,下拉电阻我们测得的灌入电流也是96.2uA,所以下拉电阻大约也应该是这个值我们看一下数据手册中对上下拉电阻阻值的说明:这里我们测得的37K也在此范围内。Cloud还测试了IO口不配置上下拉电阻时的端口电压电流,外部开路状态下,端口电压在1.5V左右小幅浮动,接GND时电流为0.5uA接VCC时无法测出(一般小于0.1uA)。但IO口配置在输出状态时,上拉/下拉电阻却呈现了不同的现象(Cloud才疏学浅,暂时无法解释):经过实际测量,当PnREN.y置0时,IO口的输出电流能力可以达到65mA,灌入电流的能力可以达到55mA;当PnR
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年二级造价工程师土建专业考试高频考点梳理
- 2025年IT科技项目主管竞聘实战指南及模拟题答案详解
- 2025年企业青年团员思想引领模拟题及参考答案详解
- 2025年非临床安全性评价服务项目合作计划书
- 2025年兽用诊断制品项目建议书
- 2025年非接触式物位仪表合作协议书
- 2025年新闻采辑项目合作计划书
- 抗衰老医美提升沙龙课件
- 江苏省南京市励志高级中学2024-2025学年高二下学期第二次调研考试地理试题(含答案)
- 河南省新未来2025-2026学年高三上学期9月联合测评生物试题(含答案)
- 2025年新《公司法》知识竞赛题库(附含答案)
- 八年级心理健康体验式教学计划
- 二手房资金监管协议书
- 甘肃省会宁县2025年上半年公开招聘辅警试题含答案分析
- 消防监控考试题初级及答案
- 2025年太阳能海水淡化项目经济效益评估报告
- 2025年湖南湘西自治州州直事业单位招聘考试笔试试卷附答案
- 2025-2031年中国有源相控阵雷达行业市场发展形势及投资潜力研判报告
- 2025年物资保管岗位招聘面试实战指南及模拟题解析
- 大货车货运安全知识培训课件
- 消防车辆事故课件
评论
0/150
提交评论