打印

单片机新手,入门前的感悟第二篇。

[复制链接]
1917|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
suoma|  楼主 | 2010-1-2 23:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
单片机新手,入门前的感悟第二篇。跑马灯。
最近自学了通用IO口的基本结构与输出应用。里面有一个跑马灯的例子,我自己尝试编了一个程序,要求是这样的:设计一个四种闪烁方式交替循环的彩灯,闪烁方式如下:1.8个LED逐一点亮0.5秒左循环2轮(16次)2.8个LED逐一点亮0.5秒右循环2轮(16次)3.8个LED间隔点亮0.5秒明暗交替16次。4.8个LED随机点亮每次0.5秒,共16次。
我自己编了一个程序,第一次,应该有不少错误,请各位大虾多留言,批评指正。
#include <mega16.h>

#include<delay.h>
void F1()
{
  unsigned char position=0;
  int i=0;
  PORTA=0xFF;
  DDRA=0xFF;
  while(1)
  {PORTA=~(1<<position);
  if(++position>=8)
  {i=i++;
  if(i<=2)
  position=0;
  else
  break;}
  delay_ms(500);
  };
  }
void F2()
{
unsigned char position=0;
int i=0;
PORTA=0xFF;
DDRA=0xFF;
while(1)
{
PORTA=~(128>>position);
if(++position>=8)
{i=i+1;
if(i<=2)
position=0;
else
break;}
delay_ms(500);
};
}
void F3()
int i;
{PORTA=0xAA;
DDRA=0xFF;
for(i=1;i<=10;i++)
{PORTA=~PORTA;
delay_ms(500);};
}
void F4()
{
unsigned char position=0;
PORTA=0xFF;
DDRA=0xFF;
for(int i=0;i<=16;i++)
{ position=rand()%8;
cout<<position<<" ";
PORTA=~(1<<position);
delay_ms(500);}
}
void main(void)
{ F1;
F2;
F3;
F4;


while (1)
    {
    F1;
    F2;
    F3;
    F4;
    };
}
沙发
suoma|  楼主 | 2010-1-2 23:20 | 只看该作者
注意,这是没编译通过的

使用特权

评论回复
板凳
jerkoh| | 2010-1-2 23:26 | 只看该作者
F1;
    F2;
    F3;
    F4;
宏定义了吗? 没有的话 不能这么写函数的吧

使用特权

评论回复
地板
suoma|  楼主 | 2010-1-3 22:33 | 只看该作者
谢谢指点,第三篇是修改过得,请大侠过目

使用特权

评论回复
5
Karlshen| | 2010-1-3 23:06 | 只看该作者
看一下,正好自己也注意错误

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

82

主题

714

帖子

5

粉丝