找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3875|回复: 1
打印 上一主题 下一主题
收起左侧

AVR_点亮LED程序

[复制链接]
跳转到指定楼层
楼主
ID:80436 发表于 2015-5-22 01:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
//++++++++++++++++++++++++++++++++++
很纠结的用ICC AVR写了个程序。调试通过,木有仿真下载线。貌似挺贵,
穷人家的孩子买不起。钻研下做个AVR ISP还是比较靠谱,加油!
+++++++++++++++++++++++++++++++++++//
#include <iom16v.h>
#include <macros.h>
#define  uchar unsigned char
#define  uint  unsigned int
void delay(uint ms)
{
    uint i,j;
for(i=0;i<ms;i++)
    {
    for(j=0;j<1141;j++);
       }
}
void main()
{
   uchar k;
   DDRA|=BIT(2);
   PORTA|=BIT(2);//我表示AVR的位操作比51单片机更加复杂,|运算是关键
   
   DDRB=0XFF;
   PORTB=0XFF;
   while(1)
   {
   for(k=0;k<8;k++) //for语句
   {
   PORTB&=~BIT(k);//取反操作
   delay(500);//延时500ms
   
   PORTB|=BIT(k);
   delay(500);
   }
   }
}//我靠!写完了。滚床睡觉,很晚了, 明天是该死的体育考试,oh my god

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:80436 发表于 2015-5-22 01:17 | 只看该作者
  1. #include <iom16.h>

  2. #include <macros.h>


  3. /* This seems to produce the right amount of delay for the LED to be

  4. * seen

  5. */

  6. void Delay()

  7. {

  8. unsigned char a, b;


  9. for (a = 1; a; a++)

  10. for (b = 1; b; b++)

  11. ;

  12. }


  13. void LED_On(int i)

  14. {

  15. PORTB = ~BIT(i);        /* low output to turn LED on */

  16. Delay();

  17. }


  18. void main()

  19. {

  20. int i;

  21. DDRB = 0xFF;        /* output */

  22. PORTB = 0xFF;        /* all off */


  23. while (1)

  24. {

  25. /* forward march */

  26. for (i = 0; i < 8; i++)

  27. LED_On(i);

  28. /* backward march */

  29. for (i = 8; i > 0; i--)

  30. LED_On(i);

  31. /* skip */

  32. for (i = 0; i < 8; i += 2)

  33. LED_On(i);

  34. for (i = 7; i > 0; i -= 2)

  35. LED_On(i);

  36. }

  37. }
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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