关于流水灯, 下面有我用过的三种方法, 供参考.
C 语言
方法一:
- #include <at89x51.h> //head file
- #include<stdio.h>
- unsigned long a;
- void delay(void) // 延时函数
- {
- unsigned char h,i,j,k;
- for(h=5;h>0;h--)
- for(i=4;i>0;i--)
- for(j=116;j>0;j--)
- for(k=50;k>0;k--);
- }
- void main()
- {
- int c[8]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};
- int i;
- while(1){
- i=0;
- while(i<=7)
- {
- P2=c[i];
- i++;
- delay();
- }
- }
- }
方法二:
- #include<at89x51.h>
- #include<intrins.h>
- void delay(void)
- {
- unsigned char h,i,j,k;
- for(h=5;h>0;h--)
- for(i=4;i>0;i--)
- for(j=116;j>0;j--)
- for(k=50;k>0;k--);
- }
- void main(){
- int i;
- i=0;
- P2=0xFE;
- while(1)
- {
- P2=0xFE;
- i=0;
- while(i<8)
- {
- delay();
- P2=_crol_(P2,1);
- i++;
- }
- }
- }
汇编语言:
- ORG 0000H
- MAIN:MOV P2,#0xFE
- MOV A,P2
- LOOP: RL A
- MOV P2,A
- DELAY: MOV R7,#250 ;
- D1: MOV R6,#250
- D2: DJNZ R6,D2 ;
- DJNZ R7,D1 ;
- JMP LOOP
- END
流水灯
来源: http://www.bubuko.com/infodetail-3218745.html