打印

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

[复制链接]
1886|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
suoma|  楼主 | 2010-1-2 23:22 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
单片机新手,入门前的感悟第三篇。跑马灯的修改,我成功了。

我修改了程序,仿真成功。
#include <mega16.h>
#include<stdlib.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++;
  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()
{ int i;
unsigned char position=0;
PORTA=0xFF;
DDRA=0xFF;
for( i=0;i<=16;i++)
{ position=rand()%8;

PORTA=~(1<<position);
delay_ms(500);}
}
void main(void)
{ F1();
F2();
F3();
F4();


while (1)
    {
    F1();
    F2();
    F3();
    F4();
    };
}

通过编这个程序,学到些东西,和新手交流一下。
大家对比我这两个程序
1.函数调用要加括号,否则会出现expression with possibly no effect
2.int i;放在{}外了,于是出现undefined symbol ‘int’ 。 undefined symbol ‘i' 。declaration syntax error符号声明错误
3.两个随机函数的使用(见附件)cout<<position<<" "这句是c++里的,是把position的值输出到屏幕上,类似于printf,直接删掉就可以。注意多了一个头文件。
4.拿到Proteus中仿真(电路图见附件),右键点单片机选编辑属性,即可导入程序,如果要修改打开CVAVR修改,然后build一下,再在Proteus仿真就行了。
5.LED选LED-GREEN,别选LED,他不发光,另外仿真时红点表示高电平,蓝点表示低电平。
沙发
Karlshen| | 2010-1-3 23:00 | 只看该作者
总结的好细致

使用特权

评论回复
板凳
laslison| | 2010-1-4 22:03 | 只看该作者
楼主是自己写的吗?

使用特权

评论回复
地板
suoma|  楼主 | 2010-1-10 23:11 | 只看该作者
3# laslison
不是,找的

使用特权

评论回复
5
thf2008| | 2010-1-11 12:23 | 只看该作者
恩,写的挺好的吗

使用特权

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

本版积分规则

82

主题

714

帖子

5

粉丝