Way1,
1 #include<reg52.h> 2 sbit LED0=P1^0; 3 void delay(float t) 4 { 5 unsigned int j,i; 6 j=t*100; 7 while(j--) // 150400-1 8 { 9 for(i=1505;i;i--); //1505-1=1504 1504-1=1503 10 } 11 } 12 void main() 13 { 14 while(1) 15 { 16 LED0=0; 17 delay(0.5); 18 LED0=1; 19 delay(0.5); 20 } 21 }
Way2,
1 #include<reg52.h> 2 sbit LED0=P1^0; 3 sbit LED1=P1^1; 4 sbit LED2=P1^2; 5 sbit LED3=P1^3; 6 sbit LED4=P1^4; 7 sbit LED5=P1^5; 8 sbit LED6=P1^6; 9 sbit LED7=P1^7; 10 11 void delay(float t) 12 { 13 unsigned int j,i; 14 j=t*100; 15 while(j--) // 150400-1 16 { 17 for(i=1505;i;i--); //1505-1=1504 1504-1=1503 18 } 19 } 20 void main() 21 { 22 while(1) 23 { 24 LED0=0; 25 delay(0.5); 26 LED0=1; 27 delay(0.5); 28 29 LED1=0; 30 delay(0.5); 31 LED1=1; 32 delay(0.5); 33 34 LED2=0; 35 delay(0.5); 36 LED2=1; 37 delay(0.5); 38 39 LED3=0; 40 delay(0.5); 41 LED3=1; 42 delay(0.5); 43 44 LED4=0; 45 delay(0.5); 46 LED4=1; 47 delay(0.5); 48 49 LED5=0; 50 delay(0.5); 51 LED5=1; 52 delay(0.5); 53 54 LED6=0; 55 delay(0.5); 56 LED6=1; 57 delay(0.5); 58 59 LED7=0; 60 delay(0.5); 61 LED7=1; 62 delay(0.5); 63 } 64 }
Way 3,
1 #include<reg52.h> 2 void delay(unsigned int t) //0-65535 3 { 4 while(--t); 5 } 6 void main() 7 { 8 unsigned char q;//0-255 9 P1=0xfe;//1111 1110 1111 1101 1111 1011 10 while(1) 11 { 12 for(q=0;q<8;q++) 13 { 14 delay(50000); 15 P1<<=1; 16 P1=P1|0X01; //0000 0001 17 } 18 } 19 }
Way 4
1 #include<reg52.h> //包含头文件,一般情况不需要改动, 2 //头文件包含特殊功能寄存器的定义 3 /*-------------------------IO口定义----------------------------*/ 4 sbit P20 = P2^0;//这是为了关闭开发板上的数码管实际应用去掉 5 sbit P21 = P2^1;//这是为了关闭开发板上的数码管实际应用去掉 6 sbit CS88 = P2^2;//这是为了关闭开发板上的点阵实际应用去掉 7 8 /*------------------------------------------------ 9 花样表格 10 ------------------------------------------------*/ 11 unsigned char code seg[]={0x7f,0xbf,0xdf,0xef, 12 0xf7,0xfb,0xfd,0xfe, 13 0xff,0xff,0x00,0x00, 14 0x55,0x55,0xaa,0xaa 15 };//rom允许情况可以无限添加 16 17 void Delay(unsigned int t); //函数声明 18 /*------------------------------------------------ 19 主函数 20 ------------------------------------------------*/ 21 main() 22 { 23 unsigned char i; //定义一个无符号字符型 24 //局部变量 i 取值范围 0~255 25 P1=0x00;//这是为了关闭开发板上的数码管实际应用去掉 26 P20=0; //这是为了关闭开发板上的数码管实际应用去掉 27 P21=0; //这是为了关闭开发板上的数码管实际应用去掉 28 CS88=0; //这是为了关闭开发板上的点阵实际应用去掉 29 P1=0xFF;//P1口置1 30 while(1) 31 { 32 P1=0xFE; //第1个LED亮 33 for(i=0;i<8;i++) 34 { 35 Delay(20000); 36 P1 <<=1; 37 } 38 39 P1=0x7F; //第8个LED亮 40 for(i=0;i<8;i++) 41 { 42 Delay(20000); 43 P1 >>=1; 44 } 45 46 P1=0xFE; //第1个LED亮 47 for(i=0;i<8;i++) 48 { 49 Delay(20000); 50 P1 <<=1; 51 P1 |=0x01; 52 } 53 54 P1=0x7F; //第8个LED亮 55 for(i=0;i<8;i++) 56 { 57 Delay(20000); 58 P1 >>=1; 59 P1 |=0x80; 60 } 61 //下面通过查表方法获得花样参数 62 for(i=0;i<16;i++)//查表可以简单的显示各种花样 实用性更强 63 { 64 Delay(20000); 65 P1=seg[i]; 66 } 67 } 68 69 } 70 71 /*------------------------------------------------ 72 延时函数,含有输入参数 unsigned int t,无返回值 73 unsigned int 是定义无符号整形变量,其值的范围是 74 0~65535 75 ------------------------------------------------*/ 76 void Delay(unsigned int t) 77 { 78 while(--t); 79 }
先写自己目前进度,稍后补。。。