找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机流水灯程序哪里错了啊?就是一直说LED=0xfe;和左移函数那里语法错误?

[复制链接]
楼主
ID:155507 发表于 2019-2-10 09:41 | 显示全部楼层
“_crol_” 与“_cror_”其实就是左右循环代码,其具有程序代码简单执行效率高的优点!
现实中的应用很多,例如我们经常见到的流水灯,广告牌,马路上的红绿灯 等。。。
下面是最基本的流水灯代码,流水灯移动的快慢可以改变“void delay()”子程序进行修改,例如:你选用的是20M的精震,你要改成一秒移动一格,那么你就将“for(x=50;x>0;x--)”和“for(y=100;y>0;y--)”的X值和Y值改成500!  改变方向更加简单,只需将“_crol_” 与“_cror_”的代码互换就可以了!

下面是程序代码“

  1. #include<reg52.h>
  2. #include<intrins.h>
  3. #define uint unsigned int
  4. #define uchar unsigned char
  5. uchar temp;
  6. uint temp1;
  7. uchar i;
  8. void delay();
  9. void main()
  10. {
  11.         temp=0xfe;
  12.         temp1=0x7f;
  13.         while(1)
  14.         {

  15.                 for(i=0;i<8;i++)
  16.                 {
  17.                         P2=temp;
  18.                         temp=_crol_(temp,1);
  19.                         delay();
  20.                 }
  21.                 for(i=0;i<8;i++)
  22.                 {
  23.                         P2=temp1;
  24.                         temp1=_cror_(temp1,1);
  25.                         delay();
  26.                         P2=temp;
  27.                 }
  28.         }
  29. }   
  30. void delay()
  31. {
  32.         uint x,y;
  33.         for(x=50;x>0;x--)
  34.            for(y=100;y>0;y--);
  35. }
复制代码
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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