51 单片机 跑马灯2
生活随笔
收集整理的这篇文章主要介绍了
51 单片机 跑马灯2
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
/*-----------------------------------------------名称:流水灯日期:2016.7.28修改:无内容:循环点亮P1口对应的8个LED灯,造成循环流水点亮的效果
------------------------------------------------*/
#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
/*------------------------------------------------延时子程序
------------------------------------------------*/
void delay(unsigned int cnt)
{while(--cnt);
}
/*------------------------------------------------主函数
------------------------------------------------*/main()
{char flag = 0; //设置一个位变量
P1=0x7f; //给初始化值 换算成二进制是0111 1111while(1) //当为1时 则无限循环 当为0时 则一次都不执行
{ if (flag == 0) //判断是否为0
{delay(30000); //延时程序P1 = P1 >> 1; //右移一位 该语句等效于 P1=P1>>1P1 |= 0x80; // 1000 0000if(P1==0xfe) //检测是否移到最左端?"=="表示检测符号2端的值是否相等
{ flag = 1; }}else if (flag == 1){delay(30000); //延时程序P1 = P1 << 2; //左移两位 该语句等效于 P1=P1<<2P1 |= 0x03; // 0000 0011if(P1==0xbf) //检测是否移到最左端?"=="表示检测符号2端的值是否相等
{ flag = 2;}}else{P1 = 0x00; // 灯将会全亮delay(30000); //延时程序
P1 = 0x7f; // 0111 1111flag = 0;}}
}
转载于:https://www.cnblogs.com/zengsf/p/5713757.html
总结
以上是生活随笔为你收集整理的51 单片机 跑马灯2的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: oracle按某个字段分组然后从每组取出
- 下一篇: 高斯消元法 专题