查看: 4059|回复: 4

ATmega328P按键控制灯的亮灭

[复制链接]
  • TA的每日心情
    奋斗
    2015-10-5 14:38
  • 签到天数: 175 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2015-1-28 23:02:35 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 强仔00001 于 2015-1-29 14:39 编辑

    今天花了几十分钟看看mega328pIO部分的内容,书册的GPIO部分看完了,这部分比较简单,在mega328p芯片中,每个IO口由3个寄存器控制,分别是PORTXDDRXPINXXBC或者D
    DDRX就是设置管脚的方向的,对它写1就是设置为输出,对它写0就是设置为输入。
    PORTX就是具体设置管脚的输出值,对它写1就是输出高电平(DDRX=1时),对它写0就是输出为低电平。
    PINX就是读引脚的状态。
    例如下面的例子:
             PORTB  |= 0x20;
             DDRB = 0x20;
    就是把PORTB5设为输出,输出初始电平是高电平。
    现在我来分享下ASF Wizard见模板的功能吧。首先我先要新建一个新的工程。
    QQ截图20150122221918.png
    上面画着红框的是工程的名字和存放的路径,大家工程存放的路径最好是全英文的路径,否则会出现意想不到的状况。
    QQ截图20150122222124.png
    QQ截图20150122222214.png
    器件要选择ATmega328P。
    QQ截图20150122222356.png
    新建好的工程如上图:
    现在工程里还没有相关的驱动库,现在就用ASF Wizard来添加。
    首先打开ASFWizard,在ASF->ASF Wizard打开,如下图:
    QQ截图20150128224733.png
    然后就会弹出一个页面,左边是没有添加进去相关的驱动库或者相关的API函数,我们可以点击ADD来添加到右边,如下图:
    QQ截图20150128224618.png
    点击ADD后就会添加到右边,注意现在显示绿色高亮,代表还没加入,我们可以点击Apply最后确定添加到你工程目录中,如下图:
    QQ截图20150128224646.png

    等进度条走完就可以了。
    QQ截图20150128224702.png
    现在高亮的绿色字没有了,代表已经添加到我们的工程中。
    QQ截图20150128224710.png
    现在贴出我按键控制LED亮灭的源代码吧:

    #include <asf.h>



    int main (void)

    {

             // Insert system clock initialization codehere (sysclk_init()).



             board_init();

             PORTB  |= 0x20;

             DDRB = 0x20;



             // Insert application code here, after theboard has been initialized.

             while(1)

             {







                       if(PINB & (0x80))

                       {

                                PORTB  |= 0x20;

                       }

                       else

                       {

                                PORTB &=~(0x20);

                       }





             }
    视频稍后奉上





    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2019-12-1 10:07
  • 签到天数: 1617 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    发表于 2015-1-28 23:30:27 | 显示全部楼层
    很详细了。不过添加了ASF,还是用寄存器在控制。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-12-10 15:56
  • 签到天数: 2675 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    发表于 2015-1-29 00:27:31 | 显示全部楼层
    很详细的教程
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2015-10-5 14:38
  • 签到天数: 175 天

    连续签到: 1 天

    [LV.7]常住居民III

     楼主| 发表于 2015-1-29 14:37:11 | 显示全部楼层
    shaoziyang 发表于 2015-1-28 23:30
    很详细了。不过添加了ASF,还是用寄存器在控制。

    今天就写个库控制还加个定时器
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2015-10-5 14:38
  • 签到天数: 175 天

    连续签到: 1 天

    [LV.7]常住居民III

     楼主| 发表于 2015-1-29 14:37:40 | 显示全部楼层
    slotg 发表于 2015-1-29 00:27
    很详细的教程

    谢谢支持
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

    手机版|小黑屋|与非网

    GMT+8, 2024-12-23 06:52 , Processed in 0.165050 second(s), 24 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.