查看: 3658|回复: 0

LL16库IO操作说明

[复制链接]
  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2010-5-11 11:50:28 | 显示全部楼层 |阅读模式
    /**************** registers I/O map ****************/ 
    I/O地址寄存器,这个用来读取和设置IO电平,高或者低
     
    /*** PTAD - Port A Data Register; 0x00000000 ***/
    typedef union {
      byte Byte;
      struct {
        byte PTAD0       :1;                                       /* Port A Data Register Bit 0 */
        byte PTAD1       :1;                                       /* Port A Data Register Bit 1 */
        byte PTAD2       :1;                                       /* Port A Data Register Bit 2 */
        byte PTAD3       :1;                                       /* Port A Data Register Bit 3 */
        byte PTAD4       :1;                                       /* Port A Data Register Bit 4 */
        byte PTAD5       :1;                                       /* Port A Data Register Bit 5 */
        byte PTAD6       :1;                                       /* Port A Data Register Bit 6 */
        byte PTAD7       :1;                                       /* Port A Data Register Bit 7 */
      } Bits;
    } PTADSTR;
    extern volatile PTADSTR _PTAD @0x00000000;
    #define PTAD                            _PTAD.Byte
    #define PTAD_PTAD0                      _PTAD.Bits.PTAD0
    #define PTAD_PTAD1                      _PTAD.Bits.PTAD1
    #define PTAD_PTAD2                      _PTAD.Bits.PTAD2
    #define PTAD_PTAD3                      _PTAD.Bits.PTAD3
    #define PTAD_PTAD4                      _PTAD.Bits.PTAD4
    #define PTAD_PTAD5                      _PTAD.Bits.PTAD5
    #define PTAD_PTAD6                      _PTAD.Bits.PTAD6
    #define PTAD_PTAD7                      _PTAD.Bits.PTAD7
    #define PTAD_PTAD0_MASK                 1
    #define PTAD_PTAD1_MASK                 2
    #define PTAD_PTAD2_MASK                 4
    #define PTAD_PTAD3_MASK                 8
    #define PTAD_PTAD4_MASK                 16
    #define PTAD_PTAD5_MASK                 32
    #define PTAD_PTAD6_MASK                 64
    #define PTAD_PTAD7_MASK                 128

    /*** PTADD - Port A Data Direction Register; 0x00000001 ***/
    PTADD:Port A数据方向寄存器
    这个主要用来设置IO的方向,0位输出,1位输入。

    typedef union {
      byte Byte;
      struct {
        byte PTADD0      :1;                                       /* Data Direction for Port A Bit 0 */
        byte PTADD1      :1;                                       /* Data Direction for Port A Bit 1 */
        byte PTADD2      :1;                                       /* Data Direction for Port A Bit 2 */
        byte PTADD3      :1;                                       /* Data Direction for Port A Bit 3 */
        byte PTADD4      :1;                                       /* Data Direction for Port A Bit 4 */
        byte PTADD5      :1;                                       /* Data Direction for Port A Bit 5 */
        byte PTADD6      :1;                                       /* Data Direction for Port A Bit 6 */
        byte PTADD7      :1;                                       /* Data Direction for Port A Bit 7 */
      } Bits;
    } PTADDSTR;
    extern volatile PTADDSTR _PTADD @0x00000001;
    #define PTADD                           _PTADD.Byte
    #define PTADD_PTADD0                    _PTADD.Bits.PTADD0
    #define PTADD_PTADD1                    _PTADD.Bits.PTADD1
    #define PTADD_PTADD2                    _PTADD.Bits.PTADD2
    #define PTADD_PTADD3                    _PTADD.Bits.PTADD3
    #define PTADD_PTADD4                    _PTADD.Bits.PTADD4
    #define PTADD_PTADD5                    _PTADD.Bits.PTADD5
    #define PTADD_PTADD6                    _PTADD.Bits.PTADD6
    #define PTADD_PTADD7                    _PTADD.Bits.PTADD7
    #define PTADD_PTADD0_MASK               1
    #define PTADD_PTADD1_MASK               2
    #define PTADD_PTADD2_MASK               4
    #define PTADD_PTADD3_MASK               8
    #define PTADD_PTADD4_MASK               16
    #define PTADD_PTADD5_MASK               32
    #define PTADD_PTADD6_MASK               64
    #define PTADD_PTADD7_MASK               128
    8位系列的芯片,IO口的操作是类似的,所以这里以LL16为例说明。在使用IO的时候,必须要先设置方向,再设置和读取IO口电平。
    例如:
    void IO_INI(void)
    {
       PTADD_PTADD0=0;//设置PTAD0的0脚为输出
      PTADD_PTADD1=1;//设置PTAD0的1脚为输入
      //或者设置PTADD=0X02;
    }
    void main()
    {
    EnableInterrupts;
    IO_INI();
    for(;;)
     {
       PTADD_PTADD0= ~PTADD_PTADD0;
    }
     }
     
     
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-18 12:43 , Processed in 0.078757 second(s), 19 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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