|
发表于 2012-10-31 17:40:11
|
显示全部楼层
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit EN=P3^6;
void delay5ms();
void delay400ms();
void hy4(){//;花样4全亮
uchar a;
for(a=0; a<6; a++){
P2=a;
P0=0xff;
P2=0;
}
}
void hy3(){ //;花样3全灭
uchar a;
for(a=0; a<6; a++){
P2=a;
P0=0x00;
P2=0;
}
}
void hy2(){ //;花样2从左到右亮,然后从右到左灭
// mov a,#01h
// mov r6,#6
// hy21: mov dptr,#0000h
// hy22: mov r7,#8
// hy2lp: movx @dptr,a
// setb c
// rlc a
// lcall delay5ms
// djnz r7,hy2lp
// inc dph
// djnz r6, hy22
// lcall delay400ms
// mov a,#01h
// mov r6,#6
// hy21a: dec dph
// ; mov dptr,#0000h
// hy22a: mov r7,#8
// hy2lpa: movx @dptr,a
// clr c
// rrc a
// lcall delay5ms
// djnz r7,hy2lpa
// dec dph
// djnz r6, hy22a
// lcall delay400ms
}
void hy1(){//;花样1间隔亮 变换
uchar a, p;
for(p=0; p<0x10; p++){
for(a=0; a<=6; a++){
P2=a;
if( (p % 2)==0){
P0=0xAA;
}else{
P0=0x55;
}
P2=0;
}
delay400ms();
}
}
void delay5ms(){ //;延时子程序(5MS)
uchar i,j;
for(i=25;i>0;i--){
for(j=100; j>0; j--){
;
}
}
}
//;==============延时400毫秒
void delay400ms(){ //;延时子程序(400MS)
uchar i,j,k;
for(i=20;i>0;i--){
for(j=100; j>0; j--){
for(k=100; k>0; k--){
;
}
}
}
}
void main(){
delay400ms();
EN=0;
while(1){
hy1(); //;间隔亮10次
delay400ms();
hy3(); //;全灭
delay400ms(); //;延时
hy4(); //;全亮
delay400ms(); //;延时
hy3(); //;全灭
delay400ms(); //;延时
hy4(); //;全亮
delay400ms(); //
hy3(); //;全灭
delay400ms(); //
hy2(); //;从左到右亮,然后从右到左灭
hy2(); //
}
}
断断续续修改一下,还有一个函数,没改。 |
|