原创 【小雨的成长】 用C玩别样流水灯

2009-4-17 16:13 2365 6 6 分类: MCU/ 嵌入式

首先了。要感谢论坛的朋友给我帮助。。。通过他们的指教。。让我明白 了很多,他们细心的为我解答我不懂的地方。。而且是不厌其烦。。。 
        呵呵。。cepark都成了我的家啦!!!1


下面的程序是念漠给我的。。通过分析他们的程序也学到了不少东西!!  
程序功能:流水灯由快到慢,然后又由慢到快!
#include<reg51.H>
#include<intrins.h>
#define Move_Right(x)  _cror_(x,1)
#define Move_Left(x)  _crol_(x,1)
#define _Data P1
#define MAX_VALUE 60
#define MIN_VALUE 5
void delay10ms(unsigned char count);
void run(unsigned char delay_time,unsigned char i);
void main()
{
unsigned char i = 7;
unsigned char delay_time=5;
while(1)
{
       while(delay_time>MIN_VALUE)
    {
     run(delay_time,i);
     delay_time-=5;
    }
    while(delay_time<=MAX_VALUE)
    {
     run(delay_time,i);
     delay_time+=5;
    }
}
}
void run(unsigned char delay_time,unsigned char i)
{
unsigned char m,n;
m=i;
n=i;
_Data=0xFE;
while(m>0)
{
  _Data=Move_Left(_Data);
  delay10ms(delay_time);
  m--;
}
while(n>0)

  _Data=Move_Right(_Data);
  delay10ms(delay_time);
  n--;
}
}
void delay10ms(unsigned char count)
{
unsigned char i;
unsigned int j;
for(i=0;i<count;i++)
  for(j=0;j<3000;j++);
}


好了,我现在来给大家分析一下!! 
#include<intrins.h>  这个库函数。。比较不好说,待会我用其他的帖子讲这个函数的具体内容。
#define Move_Right(x)  _cror_(x,1)       //这个是调用了intrins.h这个函数。相当于对括号里的x字符数据右移一位
#define Move_Left(x)  _crol_(x,1)       //就是左移以为,改_crol_(x,1)里的1为2就是移动两位
#define _Data P0                             // 这个就是相当如_Data 可以在以后代表P0口.和汇编的EQU相识。
#define MAX_VALUE 60
#define MIN_VALUE 5                  
void delay10ms(unsigned char count);
void run(unsigned char delay_time,unsigned char i);   //以上两条就是申明全局变量


    这一部分相当如汇编你的初始化部分吧!!新手可不要被他给吓到了。。其实我也是新手。。我不怕你们也不要怕什么的。。对不?


    我感觉C的一个好处就是层次分明。如上面的程序。就是由一个主函数,一个run函数,一个延时函数组成。就好比汇编里的标号。AJMP LOOP  就是跳到LOOP去执行那里的程序。
象上面的主程序 run(delay_time,i);执行到这里。就想到于跳转到run函数去执行。执行完了就返回。。


  恩啊。。。其他具体的执行过程就不多说了。。呵呵。。慢慢看。。。


记得昨天,sunhm给我说过新手接触单片机时,不要贪快。开始慢点不要紧的。主要是弄懂!!
其实我也是从昨天开始接触keil c编程的。当然,之前看了几天的C的书。现在C的水平就是知道哪里不懂能在书上找到!! 。。。嘻嘻


      呵呵。。我们大家一起努力吧!!   希望大家又什么不懂的就要及时的提出。这样才能更快的提升自己。


                               我的口号是:我是新手我怕谁!!


[ 本帖最后由 hnrain 于 2008-12-4 22:42 编辑 ]

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
6
关闭 站长推荐上一条 /3 下一条