查看: 6916|回复: 12

[原创] 【我眼中的LPC】51艰难转型M0+ Lite八位流水灯

[复制链接]
  • TA的每日心情
    开心
    2016-12-25 21:25
  • 签到天数: 7 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    3

    主题

    15

    帖子

    0

    注册会员

    Rank: 2

    积分
    67
    最后登录
    2016-12-25
    发表于 2016-11-27 12:04:09 | 显示全部楼层 |阅读模式
    Lite的厂家给的例程实在是太模块化啦,表示研究了好久都不能像51那样自己随手写个小程序了,于是按照51的思路——先找到芯片的头文件,终于在论坛里翻了好久找到一个还比较不错的头文件。有了头文件那写程序就好办啦,于是先用了最傻的办法写了一段流水灯的程序
    1. #include"LPC8xx.h"

    2. #define LED1_ON LPC_GPIO_PORT->PIN0 &= ~(1<<18)
    3. #define LED1_OFF LPC_GPIO_PORT->PIN0 |= (1<<18)
    4. #define LED2_ON LPC_GPIO_PORT->PIN0 &= ~(1<<28)
    5. #define LED2_OFF LPC_GPIO_PORT->PIN0 |= (1<<28)
    6. #define LED3_ON LPC_GPIO_PORT->PIN0 &= ~(1<<27)
    7. #define LED3_OFF LPC_GPIO_PORT->PIN0 |= (1<<27)
    8. #define LED4_ON LPC_GPIO_PORT->PIN0 &= ~(1<<19)
    9. #define LED4_OFF LPC_GPIO_PORT->PIN0 |= (1<<19)
    10. #define LED5_ON LPC_GPIO_PORT->PIN0 &= ~(1<<17)
    11. #define LED5_OFF LPC_GPIO_PORT->PIN0 |= (1<<17)
    12. #define LED6_ON LPC_GPIO_PORT->PIN0 &= ~(1<<16)
    13. #define LED6_OFF LPC_GPIO_PORT->PIN0 |= (1<<16)
    14. #define LED7_ON LPC_GPIO_PORT->PIN0 &= ~(1<<13)
    15. #define LED7_OFF LPC_GPIO_PORT->PIN0 |= (1<<13)
    16. #define LED8_ON LPC_GPIO_PORT->PIN0 &= ~(1<<7)
    17. #define LED8_OFF LPC_GPIO_PORT->PIN0 |= (1<<7)

    18. void delay()
    19. {
    20.         uint16_t i,j;
    21.         for(i=0;i<5000;i++)
    22.                 for(j=0;j<100;j++);
    23. }

    24. void led_int()
    25. {
    26.         LPC_SYSCON->SYSAHBCLKCTRL |= (1<<16);
    27.         LPC_IOCON->PIO0_18 &= ~0X07;
    28.         LPC_IOCON->PIO0_18 |=0X01;
    29.         LPC_IOCON->PIO0_28 &= ~0X07;
    30.         LPC_IOCON->PIO0_28 |=0X01;
    31.         LPC_IOCON->PIO0_27 &= ~0X07;
    32.         LPC_IOCON->PIO0_27 |=0X01;
    33.         LPC_IOCON->PIO0_19 &= ~0X07;
    34.         LPC_IOCON->PIO0_19 |=0X01;
    35.         LPC_IOCON->PIO0_17 &= ~0X07;
    36.         LPC_IOCON->PIO0_17 |=0X01;
    37.         LPC_IOCON->PIO0_16 &= ~0X07;
    38.         LPC_IOCON->PIO0_16 |=0X01;
    39.         LPC_IOCON->PIO0_13 &= ~0X07;
    40.         LPC_IOCON->PIO0_13 |=0X01;
    41.         LPC_IOCON->PIO0_7 &= ~0X07;
    42.         LPC_IOCON->PIO0_7 |=0X01;
    43.         LPC_SYSCON->SYSAHBCLKCTRL &= ~(1<<16);
    44.         LPC_GPIO_PORT->DIR0 |= (1<<18);
    45.         LPC_GPIO_PORT->PIN0 |= (1<<18);
    46.         LPC_GPIO_PORT->DIR0 |= (1<<28);
    47.         LPC_GPIO_PORT->PIN0 |= (1<<28);
    48.         LPC_GPIO_PORT->DIR0 |= (1<<27);
    49.         LPC_GPIO_PORT->PIN0 |= (1<<27);
    50.         LPC_GPIO_PORT->DIR0 |= (1<<19);
    51.         LPC_GPIO_PORT->PIN0 |= (1<<19);
    52.         LPC_GPIO_PORT->DIR0 |= (1<<17);
    53.         LPC_GPIO_PORT->PIN0 |= (1<<17);
    54.         LPC_GPIO_PORT->DIR0 |= (1<<16);
    55.         LPC_GPIO_PORT->PIN0 |= (1<<16);
    56.         LPC_GPIO_PORT->DIR0 |= (1<<13);
    57.         LPC_GPIO_PORT->PIN0 |= (1<<13);
    58.         LPC_GPIO_PORT->DIR0 |= (1<<7);
    59.         LPC_GPIO_PORT->PIN0 |= (1<<7);

    60. }

    61. int main()
    62. {
    63.         led_int();
    64.         while(1)
    65.         {
    66.                 delay();
    67.                 LED1_ON;
    68.                 LED2_OFF;
    69.                 LED3_OFF;
    70.                 LED4_OFF;
    71.                 LED5_OFF;
    72.                 LED6_OFF;
    73.                 LED7_OFF;
    74.                 LED8_OFF;
    75.                 delay();
    76.                 LED1_OFF;
    77.                 LED2_ON;
    78.                 LED3_OFF;
    79.                 LED4_OFF;
    80.                 LED5_OFF;
    81.                 LED6_OFF;
    82.                 LED7_OFF;
    83.                 LED8_OFF;
    84.                 delay();
    85.                 LED1_OFF;
    86.                 LED2_OFF;
    87.                 LED3_ON;
    88.                 LED4_OFF;
    89.                 LED5_OFF;
    90.                 LED6_OFF;
    91.                 LED7_OFF;
    92.                 LED8_OFF;
    93.                 delay();
    94.                 LED1_OFF;
    95.                 LED2_OFF;
    96.                 LED3_OFF;
    97.                 LED4_ON;
    98.                 LED5_OFF;
    99.                 LED6_OFF;
    100.                 LED7_OFF;
    101.                 LED8_OFF;
    102.                 delay();
    103.                 LED1_OFF;
    104.                 LED2_OFF;
    105.                 LED3_OFF;
    106.                 LED4_OFF;
    107.                 LED5_ON;
    108.                 LED6_OFF;
    109.                 LED7_OFF;
    110.                 LED8_OFF;
    111.                 delay();
    112.                 LED1_OFF;
    113.                 LED2_OFF;
    114.                 LED3_OFF;
    115.                 LED4_OFF;
    116.                 LED5_OFF;
    117.                 LED6_ON;
    118.                 LED7_OFF;
    119.                 LED8_OFF;
    120.                 delay();
    121.                 LED1_OFF;
    122.                 LED2_OFF;
    123.                 LED3_OFF;
    124.                 LED4_OFF;
    125.                 LED5_OFF;
    126.                 LED6_OFF;
    127.                 LED7_ON;
    128.                 LED8_OFF;
    129.                 delay();
    130.                 LED1_OFF;
    131.                 LED2_OFF;
    132.                 LED3_OFF;
    133.                 LED4_OFF;
    134.                 LED5_OFF;
    135.                 LED6_OFF;
    136.                 LED7_OFF;
    137.                 LED8_ON;
    138.         }
    139. }
    复制代码

    LPC8xx头文件.zip

    8.37 KB, 下载次数: 7, 下载积分: 威望 1

    LPC8xx.h

    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2021-11-30 16:16
  • 签到天数: 206 天

    连续签到: 1 天

    [LV.7]常住居民III

    74

    主题

    2793

    帖子

    5

    金牌会员

    Rank: 6Rank: 6

    积分
    7879
    最后登录
    2025-4-11
    发表于 2016-11-27 13:06:12 | 显示全部楼层
    不容易啊,你可以考虑用for循环+数组的办法,能简洁很多
    来根华子
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-2-7 09:36
  • 签到天数: 23 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    0

    主题

    340

    帖子

    0

    高级会员

    Rank: 4

    积分
    778
    最后登录
    2018-5-25
    发表于 2016-11-27 15:40:35 | 显示全部楼层
    真不容易,写出来。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-23 21:04
  • 签到天数: 103 天

    连续签到: 1 天

    [LV.6]常住居民II

    228

    主题

    5379

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    16702
    最后登录
    1970-1-1
    发表于 2016-11-27 23:20:01 来自手机 | 显示全部楼层
    不易哈  
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2017-1-18 20:00
  • 签到天数: 45 天

    连续签到: 1 天

    [LV.5]常住居民I

    17

    主题

    262

    帖子

    0

    高级会员

    Rank: 4

    积分
    533
    最后登录
    2024-11-23
    发表于 2016-12-10 18:55:12 | 显示全部楼层
    工程对应的system_LPC8XX.c与system_LPC8XX.h文件有吗,我利用你的头文件建立后这两个文件里面报错
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    35

    主题

    356

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    3261
    最后登录
    2023-6-23
    发表于 2016-12-12 22:13:15 | 显示全部楼层
    混森蓝兽 发表于 2016-11-27 13:06
    不容易啊,你可以考虑用for循环+数组的办法,能简洁很多

    看着是有点头晕哈,如果有错查起来也蛮费劲的
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-24 08:30
  • 签到天数: 50 天

    连续签到: 1 天

    [LV.5]常住居民I

    22

    主题

    817

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1713
    最后登录
    2019-12-7
    发表于 2016-12-13 11:37:03 | 显示全部楼层
    这样写的真不容易啊,
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-12-25 21:25
  • 签到天数: 7 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    3

    主题

    15

    帖子

    0

    注册会员

    Rank: 2

    积分
    67
    最后登录
    2016-12-25
     楼主| 发表于 2016-12-18 20:02:10 | 显示全部楼层
    云淡风轻1213 发表于 2016-12-10 18:55
    工程对应的system_LPC8XX.c与system_LPC8XX.h文件有吗,我利用你的头文件建立后这两个文件里面报错 ...

    前段时间学校事情一直比较多没看到你的回复,看到你的帖子啦,那我就不上传另外两个文件啦!谢谢支持
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-12-25 21:25
  • 签到天数: 7 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    3

    主题

    15

    帖子

    0

    注册会员

    Rank: 2

    积分
    67
    最后登录
    2016-12-25
     楼主| 发表于 2016-12-18 20:03:22 | 显示全部楼层
    混森蓝兽 发表于 2016-11-27 13:06
    不容易啊,你可以考虑用for循环+数组的办法,能简洁很多

    恩恩,前段时间学校事情多一直在忙,所以搞了半天的LPC都暂停了,接下来继续研究
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-12-25 21:25
  • 签到天数: 7 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    3

    主题

    15

    帖子

    0

    注册会员

    Rank: 2

    积分
    67
    最后登录
    2016-12-25
     楼主| 发表于 2016-12-18 20:04:11 | 显示全部楼层
    samhong 发表于 2016-11-27 15:40
    真不容易,写出来。

    学习嘛,第一次总是得傻一点
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-21 10:20 , Processed in 0.113894 second(s), 31 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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