由图知道 低电平 亮,高电平 灭
控制第一个 LED1 亮灭程序代码,如下
1 #include<reg52.h> 2 #define uchar8 unsigned char 3 #define uint16 unsigned int 4 sbit LED1=P1^0; 5 /*****************************/ 6 // 函数名称: DelayMS( ) 7 // 函数功能: 延时 8 // 入口函数: 延时毫秒 9 // 出口函数: 无 10 /********* *******************/ 11 void DelayMS(uint16 val) 12 { 13 uint16 i,j; 14 for(i=0;i<val;i++) 15 for(j=0;j<113;j++); 16 17 } 18 19 void main() 20 { 21 22 while(1) 23 { 24 LED1=0; 25 DelayMS(1000); 26 LED1=1; 27 DelayMS(1000); 28 29 } 30 31 }
————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
流水灯程序代码:
1 #include<reg52.h> 2 #include<intrins.h> 3 #define uchar8 unsigned char 4 #define uint16 unsigned int 5 #define LED P1 6 /*****************************/ 7 // 函数名称: DelayMS( ) 8 // 函数功能: 延时 9 // 入口函数: 延时毫秒 10 // 出口函数: 无 11 /********* *******************/ 12 void DelayMS(uint16 val) 13 { 14 uint16 i,j; 15 for( i=0;i<val;i++) 16 for(j=0;j<113;j++); 17 18 } 19 20 void main() 21 { 22 23 int i; 24 25 while(1) 26 { 27 LED=0xff ; // 这里端口全被设置为 1111 1111 ,相当于 全灭 28 29 for(i=0;i<8;i++) 30 { 31 32 LED=LED<<1; // 选择了左移循环 33 DelayMS(1000); 34 35 } 36 37 } 38 39 }
P1.7 | P1.6 | P1.5 | P1.4 | P1.3 | P1.2 | P1.1 | P1.0 |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 |
1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 |
1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 |
1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 |
1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 |
1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
实验板现象:
1号灯亮
1、2亮
1、2、3亮
1、2、3、4亮
。。。。。。
1、2、3。。。。。8 全部亮
——————————————————————————————————————————————————————————————————————————————————————————————
跑马灯程序代码:
1 #include<reg52.h> 2 #include<intrins.h> 3 #define uchar8 unsigned char 4 #define uint16 unsigned int 5 #define LED P1 6 /*****************************/ 7 // 函数名称: DelayMS( ) 8 // 函数功能: 延时 9 // 入口函数: 延时毫秒 10 // 出口函数: 无 11 /********* *******************/ 12 void DelayMS(uint16 val) 13 { 14 uint16 i,j; 15 for( i=0;i<val;i++) 16 for(j=0;j<113;j++); 17 18 } 19 20 void main() 21 { 22 23 LED =0xfe; 24 25 while(1) 26 { 27 LED=_crol_(LED,1); 28 DelayMS(1000); 29 30 } 31 32 }
只有一个LED灯 亮。
时间: 2024-10-12 12:54:19