MSP430单片机IO引脚的宏定义

发布者:WhisperingWind最新更新时间:2015-11-02 来源: eefocus关键字:MSP430  单片机  IO引脚  宏定义 手机看文章 扫描二维码
随时随地手机看文章
相信不少人都有在不同CPU间移植程序的经历,在移植过程中,对IO引脚的移植又占据了移植工作的大部分。那么,是否能在编码过程中采用一种较好的方法来减少将来移植中的工作量呢?
假设MSP430单片机的P40,P41,P42分别接在I2C的WP,SCK,SDL引脚上。通常,你可能会最先想到下面这种办法:
.H
 #define I2C_WP 1
 #define I2C_SCK 2
 #define I2C_SDA 4
 #define I2C_PDIR P4DIR
 #define I2C_POUT P4OUT
 #define I2C_PIN P4IN
.C
 I2C_PDIR |= (I2C_WP | I2C_SCK | I2C_SDA);
 I2C_POUT |= I2C_WP;
 ….

若WP是由P30经反相器接到WP脚上的,那么移植的工作量仍然是比较多,
 #define IO_I2C_WP(m) m(3, 0, Y)
 #define IO_I2C_SCK(m) m(4, 1, N)
 #define IO_I2C_SDA (m) m(4, 2, N)

 #define IO_SET(name) IO_##name(SET_)
 #define IO_SET_(port, bit, inv) IO_SET_##inv(port, bit)
 #define IO_SET_Y(port, bit) P##port##OUT &= ~(1<  #define IO_SET_N(port, bit) P##port##OUT |= (1<
 #define IO_CLR(name) IO_##name(CLR_)
 #define IO_CLR_(port, bit, inv) IO_CLR_##inv(port, bit)
 #define IO_CLR_Y(port, bit) P##port##OUT |= (1<  #define IO_CLR_N(port, bit) P##port##OUT &= ~(1<
 #define IO_DIR_O(name) IO_##name(DIR_O_)
 #define IO_DIR_I(name) IO_##name(DIR_I_)
 #define IO_DIR_O_(port, bit, inv) P##port##DIR |= (1<  #define IO_DIR_I_(port, bit, inv) P##port##DIR &=~ (1<
 #define IO_TEST(name) IO_#name(TEST_)
 #define IO_TEST_(port, bit, inv) IO_TEST_##inv(port, bit)
 #define IO_TEST_Y(port, bit) ((P##port##IN & (1<  #define IO_TEST_N(port, bit) ((P##port##IN & (1<
 #define IO_PORT(name) IO_##name(PORT_)
 #define IO_PORT_(port, bit, inv) port

 #define IO_BIT(name) IO_##name(BIT_)
 #define IO_BIT_(port, bit, inv) (1<
 #define IO_P4_MASK(m)
 (
  m(I2C_SCK)
  | m(I2C_SDA)
  )
…..
  如上所示,你可以按照上面的方式增加自己的功能。站长提示:其实不光MSP430单片机可以用这种方法,其它微处理器也可以这种方法。象8051单片机就可以这种方法来很好的实现。
关键字:MSP430  单片机  IO引脚  宏定义 引用地址:MSP430单片机IO引脚的宏定义

上一篇:HOLTEK ht67f50单片机timer0定时
下一篇:M30102F3FP型号M16C系列单片机参数

推荐阅读最新更新时间:2024-03-16 14:38

内嵌微控制器的无线数据发射器的特性及应用
    摘要: 简要介绍内嵌AVR RISC微控制器的无线数据发射器AT86RF401的功能、内部结构、引脚排列及典型的应用电路。     关键词: 线数据传输 无线发射器 微控制器 概 述 AT86RF401是单片机集成内嵌AVR RISC微控制器的RF无线数据发射器,输出频率范围为250~450MHz,最大输出功率+6dBm,发射率10Kband。芯片内嵌AVR RISC微控制器、2KB(1K×16b)的Flash程序存储器、128B(字节)的可下载的EEPROM数据存储器、128B的RISC SRAM、看门狗定时器、6个通用I/O、在系统可编程。工作电压2.0~
[应用]
基于51单片机的4×4矩阵键盘电子琴
前些日子,做而论道写了一篇关于单片机发音的文章,后来,就不断有网友来电询问单片机电子琴的设计方法。 以前制作过一个24键(独立按键)的,程序是用汇编语言写的,估计多数人看不了。 下面,把新设计的16按键的电子琴,公布给网友。 电路图如下: 制作说明:   单片机采用51系列的都行,AT89C2051也可;   图中没有画出复位和晶振电路,实际制作时,不可省略,晶振可以使用11.0592或12MHz;   扬声器应该按照图中给出的附图加上驱动电路;   显示器及七段译码器不接,单片机电子琴也可以正常工作。   74LS47 和数码管之间,应该接上“限流电阻”,约 470 欧姆即可。 C语言程序如下: /**********
[单片机]
基于51<font color='red'>单片机</font>的4×4矩阵键盘电子琴
基于ISD4004语音芯片和AT89S52单片机的语音播报记事器设计
引 言 本文介绍一种以语音存储与自动播放系统为基础的语音播报记事器设计。该设计以ISD4004语音 芯片 和AT89S52 单片机 为中心,很好地实现了语音存储与自动播放。 1 硬件设计原理 语音播报记事器的主要功能是实现语音存储与定时播放。要实现语音存储与定时播放的方法很多, MTD2002 可供选择的器件也很多。由于单片机等微控制器的出现和数字电路技术的发展,使得现在的语音存储与自动播放变得易于实现。本设计采用单片机作为微控制器。单片机的字长由4位、8位、16位发展到32位。目前这几种字长的单片机同时存在于市场,用户可以根据不同的需要进行选择。本系统选用字长为8位的AT89S52单片机作为控制器。
[单片机]
基于ISD4004语音芯片和AT89S52<font color='red'>单片机</font>的语音播报记事器设计
AVR单片机驱动CH451实例程序_C语言
1) CH451简介 CH451可用于LED数码管显示驱动、键盘扫描控制、μP监控电路等领域。芯片封装包括双列直插DIP28、SOP28以及DIP24S封装。其内置RC振荡电路,可以直接动态驱动8位数码管或者64位LED,具有BCD译码或不译码功能,可实现数据的左移、右移、左循环、右循环、各数字独立闪烁等控制功能。CH451内置大电流驱动级,段电流不小于30 m A,字电流不小于160mA,并有16级亮度控制功能。该器件内置64键键盘控制器,可实现8×8矩阵键盘扫描,并内置去抖动电路,可提供按键中断与按键释放标志位等功能。CH451可选择简洁的1线串行接口或高速4线串行接口,且内置上电复位,可提供高电平有效复位和低电平有效复位
[单片机]
AVR<font color='red'>单片机</font>驱动CH451实例程序_C语言
NXP P89LPC901单片机汽车起动保护控制器设计
1引言 汽车发动机的起动是通过起动机驱动发动机飞轮旋转实现的。由蓄电池驱动的起动机驱动齿轮产生机械运动;传动机构将驱动齿轮啮合入飞轮齿圈,同时能在发动机起动后自动脱开;起动机直流电动机的通断由电磁开关控制。汽车起动机属于汽车中的贵重部件,轻易不会损坏。但是,为了延长起动机的使用寿命,须有恰当的使用方法。由于误操作等原因,在汽车发动机起动时,若发动机起动后起动机不能及时断电.将烧毁起动机或损坏飞轮齿环;若起动时变速器不在空档,则会引发交通事故和人身安全。在起动发动机的过程中,起动机要从蓄电池引人300~400 Ah的电量,为了防止蓄电池出现过流或损坏现象,起动时间一般不应超过5 s;冬季容易出现起动困难的现象,多次起动时每次起动
[嵌入式]
单片机跑马灯程序
************************************************* ****************** ;此程序是用单片机的p1口接八个led灯作跑马灯试验,八个led依次亮了又熄灭,形成漂亮 ;的跑马灯。本人已经试验成功。 ;单片机教程网http://www.51hei.com 原创 ;该8路单片机跑马灯程序代码简单,电路也容易搭建,只需把led接在p1口上就可以了,希望大家能试验成功顺利的完成跑马灯报告 ;****************************************** ************************* org 0000h ajmp start;跳转到
[单片机]
MSP430单片机无线温度接收系统的设计
#include #defineucharunsignedchar #defineuintunsignedint uchardN[6];//要显示的6位温度数字 ucharscandata[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//数码管七段码;0--f ucharcnt=0;//数码管位选变量 ucharThermometer[1];//温度全局变量 intThermometer_1; voidinit_clock(void);// 时钟 模块初始化 voidinit_watchdog(v
[单片机]
<font color='red'>MSP430</font><font color='red'>单片机</font>无线温度接收系统的设计
基于51单片机的环境噪声测量仪的设计
  环境噪声监测,是人类提高生活质量,加强环境保护的一个重要环节,在各大城市的繁华街区和居民区,已有大型环境噪声显示器竖立街头。但目前国内的便携式噪声测试仪,多为价格昂贵的进口专用设备,除卫生、计量等环保专业部门拥有外,无法作为民用品推广普及。本文介绍一种以89C51单片机为核心,采用V/F转换技术构成的低成本、便携式数字显示环境噪声测量仪。该仪器工作稳定、性能良好,经校验定标后能满足一般民用需要,可广泛应用于工矿企业、机关学校等需要对环境噪声进行测量和控制的场合。   1 声压级的测量机理   人耳的听阈一般是20m Pa (微帕),痛阈一般是200Pa(帕),其间相差107倍,这样宽广的声压范围很不易测量,而且人耳对声压的
[单片机]
基于51<font color='red'>单片机</font>的环境噪声测量仪的设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved