|
最简单的程序-花样流水灯,心形流水灯 proteus仿真文件和源代码
- /*--------------------------------------------------
- 花样流水灯0
- Designed By:老彭
- Time:2017.2.1
- 说明:流水灯的各种接法,各种亮灯方式
- ---------------------------------------------------*/
- //52 单片机头文件,一般不要改动,里面包含特殊功能寄存器的定义
- #include<reg52.h>
- //将 unsigned char 定义为 uchar,简化输写。提高编程速度
- #define uchar unsigned char
- //将 unsigned char 定义为 uint,简化输写。提高编程速度
- #define uint unsigned int
- //定义八个灯的工作状态(可自己更改)。
- uchar code table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
- /*延时子程序*/
- void delay(uint time)
- {
- //当 time 的值为非 0 时,执行空语句。当 time 为 0 时,跳出 while 语句。
- while(--time);
- }
- /*主程序*/
- void main()
- {
- //定义一个无符号字符变量。
- uchar i;
- //做一个死循环,让程序永远在 while 下面的大括号里面运行。
- while(1)
- {
- /*流水灯从左向右快速流动*/
- for(i=0;i<8;i++)
- //for 语句判断条,i<8 成立时,执行大括号里面程序
- {
- //P2 口对应取值,八个灯的状态
- P2=table[i];
- //延时子程序调用
- delay(25000);
- }
- /*流水灯从右向左快速流动*/
- for(i=7;i>0;i--)
- //for 语句判断条,i>0 成立时,执行大括号里面程序
- {
- //P2 口对应取值,八个灯的状态
- P2=table[i];
- //延时子程序调用
- delay(25000);
- }
- /*流水灯间隔闪亮*/
- for(i=10;i>0;i--)
- {
- //2、4、6、8的LED亮
- P2=0x55;
- //延时子程序调用
- delay(25000);
- //1、3、5、7的LED亮
- P2=0xaa;
- //延时子程序调用
- delay(25000);
- }
- /*流水灯从左向右闪动*/
- for(i=0;i<8;i++)
- //for 语句判断条
- {
- //P2 口对应取值,八个灯的状态
- P2=table[i];
- //延时子程序调用
- delay(25000);
- //8个灯全亮
- P2=0xff;
- //延时子程序调用
- delay(25000);
- //P2 口对应取值,八个灯的状态
- P2=table[i];
- //延时子程序调用
- delay(25000);
- }
- /*流水灯从右向左闪动*/
- for(i=7;i>0;i--)
- //for 语句判断条
- {
- //P2 口对应取值,八个灯的状态
- P2=table[i];
- //延时子程序调用
- delay(25000);
- //8个灯全亮
- P2=0xff;
- //延时子程序调用
- delay(25000);
- //P2 口对应取值,八个灯的状态
- P2=table[i];
- //延时子程序调用
- delay(25000);
- }
- }
- }
复制代码
|
评分
-
查看全部评分
|