搜索
bottom↓
回复: 8

msp430的端口位操作

[复制链接]

出0入0汤圆

发表于 2010-4-21 23:27:23 | 显示全部楼层 |阅读模式
这是我自己使用的,很方便

#include "msp430x22x4.h"
//----------------------------------------------------
//Description:  msp430系列单片机常用端口位操作
//write by Meredith
//2007.5.1
//email:cyberkyg@163.com
//
//modify at 2010.4.21
//-----------------------------------------------------
#ifndef _MSP430_KYG_H_
#define _MSP430_KYG_H_

#define U8 unsigned char
#define U16 unsigned int
#define uint  unsigned int
#define uchar unsigned char

//----------------IO bits Set/Clr---------------------
#define ClrP1(n) P1OUT&=(~n)
#define SetP1(n) P1OUT|=n
#define ClrP2(n) P2OUT&=(~n)
#define SetP2(n) P2OUT|=n
#define ClrP3(n) P3OUT&=(~n)
#define SetP3(n) P3OUT|=n
#define ClrP4(n) P4OUT&=(~n)
#define SetP4(n) P4OUT|=n
#define ClrP5(n) P5OUT&=(~n)
#define SetP5(n) P5OUT|=n
#define ClrP6(n) P6OUT&=(~n)
#define SetP6(n) P6OUT|=n
//--------------------IO bits Input/Output--------------------------
#define SetInP1(n) P1DIR&=(~n)
#define SetOutP1(n) P1DIR|=n
#define SetInP2(n) P2DIR&=(~n)
#define SetOutP2(n) P2DIR|=n
#define SetInP3(n) P3DIR&=(~n)
#define SetOutP3(n) P3DIR|=n
#define SetInP4(n) P4DIR&=(~n)
#define SetOutP4(n) P4DIR|=n
#define SetInP5(n) P5DIR&=(~n)
#define SetOutP5(n) P5DIR|=n
#define SetInP6(n) P6DIR&=(~n)
#define SetOutP6(n) P6DIR|=n
//---------------------IO bits PULL Enabled/Disabled----------------
#define PullEnabledP1(n) P1REN|=n
#define PullDisabledP1(n) P1REN&=(~n)
#define PullEnabledP2(n) P2REN|=n
#define PullDisabledP2(n) P2REN&=(~n)
#define PullEnabledP3(n) P3REN|=n
#define PullDisabledP3(n) P3REN&=(~n)
#define PullEnabledP4(n) P4REN|=n
#define PullDisabledP4(n) P4REN&=(~n)
#define PullEnabledP5(n) P5REN|=n
#define PullDisabledP5(n) P5REN&=(~n)
#define PullEnabledP6(n) P6REN|=n
#define PullDisabledP6(n) P6REN&=(~n)
//---------------------IO bits PullUp/PullDown----------------------
#define PullDownP1(n) P1OUT&=(n)
#define PullUpP1(n) P1OUT|=n
#define PullDownP2(n) P2OUT&=(~n)
#define PullUpP2(n) P2OUT|=n
#define PullDownP3(n) P3OUT&=(~n)
#define PullUpP3(n) P3OUT|=n
#define PullDownP4(n) P4OUT&=(~n)
#define PullUpP4(n) P4OUT|=n
#define PullDownP5(n) P5OUT&=(~n)
#define PullUpP5(n) P5OUT|=n
#define PullDownP6(n) P6OUT&=(~n)
#define PullUpP6(n) P6OUT|=n
//------------------------IO bits Input-----------
#define P1Input(n) P1IN&n?1:0
#define P2Input(n) P2IN&n?1:0
#define P3Input(n) P3IN&n?1:0
#define P4Input(n) P4IN&n?1:0
#define P5Input(n) P5IN&n?1:0
#define P6Input(n) P6IN&n?1:0
//------------------------------------------------------------------------

#define DCO_F 16               //定义主时钟频率,1,8,12,16(MHZ)
#define _delay_us(n) __delay_cycles((float)(n)*DCO_F)   //20us以下误差较大
#define _delay_ms(n) __delay_cycles(n*(1000.0f)*DCO_F)

//----------------------------------------------------------------------------
void Init_CLK(unsigned char nDco);
#endif

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

 楼主| 发表于 2010-4-21 23:31:17 | 显示全部楼层
使用时只要将n换成相应的位就可以,比如ClrP1(BIT5);即p1.5=0;
再比如i=P1Input(BIT4);即i=p1.4;

出0入0汤圆

发表于 2010-4-23 10:07:59 | 显示全部楼层
mark一下

出0入0汤圆

发表于 2010-4-28 13:14:10 | 显示全部楼层
学习了~~~顶!!!

出0入0汤圆

发表于 2011-6-16 16:16:09 | 显示全部楼层
挺好的

出0入0汤圆

发表于 2011-8-20 18:21:50 | 显示全部楼层
就是做一下变换嘛,还是原型速度会快些把

出0入0汤圆

发表于 2011-8-25 17:18:24 | 显示全部楼层
学习了!!!

出0入0汤圆

发表于 2011-9-30 00:19:30 | 显示全部楼层
回复【6楼】wmyan2010
就是做一下变换嘛,还是原型速度会快些把
-----------------------------------------------------------------------

做了这个变换会方便很多啊,
宏定义会影响速度么?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-6 10:25

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表