流水灯,初学之系列。
单片机源程序如下:
- /*--------------------------------------------------
- 文件名称:led.c
- 功能:利用LED实现跑马灯效果
- 说明:8个led灯自上而下循环,通过按键改变方向、速度。
- ---------------------------------------------------*/
- #include<reg52.h>
- #include<intrins.h>
- #define uchar unsigned char
- #define uint unsigned int
- unsigned char L[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
- sbit key1=P1^0;
- sbit key2=P1^1;
- sbit key3=P1^2;
- uint dir=0,n=2500;
- void delay(uint z)//延时函数
- {
- uint x,y;
- for(x=z;x>0;x--)
- for(y=100;y>0;y--);
- }
-
- void speedminus()//减速函数
- {
- if(n==5000) n=5000;//最慢4s
- else n=n+625;
- }
-
- void speedplus(){//加速函数
- if(n==625) n=625;//最快0.5s
- else n=n-625;
- }
-
- void main()//主函数
- {
- uint i=0;
-
- while(1){
- for(;i<8;){
- P0=L[i];
- delay(n);
- if(key1==0) dir=1-dir;//反向循环
- if(key2==0) speedminus();//按一次按键,延时时间变长
- if(key3==0) speedplus();//按一次按键,延时时间变短
- if(dir==0)
- {
- i++;
- if(i==8)//实现循环效果
- i=0;
- break;
- }
- else
- {
- i--;
- if(i>8)
- i=7;
- break;
- }
- }
- }
- }
复制代码
所有资料51hei提供下载:
新建 Microsoft Word 文档.docx
(13.13 KB, 下载次数: 19)
|