码迷,mamicode.com
首页 > 其他好文 > 详细

重拾单片机 第一天 LED灯

时间:2015-10-26 11:43:59      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:

 

技术分享

由图知道 低电平 亮,高电平 灭

 

控制第一个 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灯 亮。

 

重拾单片机 第一天 LED灯

标签:

原文地址:http://www.cnblogs.com/shengruxiahua/p/4910456.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!