51单片机实现led灯亮度变化!

简介: 51单片机实现led灯亮度变化!

其实很简单就是通过亮灭的时间占比来实现的,我们肉眼分辨不出它瞬间的亮灭,只会合成一个亮度

所以通过此方法能实现功能。这边就直接贴代码了。

1. #include <STC15F2K60S2.H>
2. 
3. unsigned int count=0;
4. unsigned int num=10;
5. #define  k1   P33
6. #define  k2   P32
7. void Delay5ms()        //@11.0592MHz
8. {
9. unsigned char i, j;
10. 
11.     i = 54;
12.     j = 199;
13. do
14.     {
15. while (--j);
16.     } while (--i);
17. }
18. 
19. 
20. void Timer0Init(void)        /16 1T
21. {
22.     AUXR |= 0x80;        //?????1T??
23.     TMOD &= 0xF0;        //???????
24.     TMOD |= 0x01;        //???????
25.     TL0 = 0xD7;        //??????
26.     TH0 = 0xFD;        //??????
27.     TF0 = 0;        //??TF0??
28.     TR0 = 1;    
29.   EA=1;
30.   ET0=1;    //???0????
31. }
32. 
33. 
34. 
35. void main()
36. {
37. Timer0Init();
38. 
39.     P2=P2&0x1f|0x80;
40.         P0=0xff;
41. while(1)
42.     { 
43. if(k1==0){
44. Delay5ms(); if(k1==0)    
45.           num=10;
46. 
47.     } 
48. 
49. if(k2==0){
50. Delay5ms(); if(k2==0)
51.           num=20;    
52.       }
53. 
54. 
55. if(P31==0){
56. Delay5ms(); if(P31==0)
57.                 num=30;
58.             }
59. 
60. if(P30==0){
61. Delay5ms();
62. if(P30==0)
63.            num=40;
64. 
65.          }
66. 
67.     }
68. 
69. 
70. 
71. 
72. 
73. void timer0() interrupt 1
74. {
75.       TL0 = 0xD7;        //??????
76.       TH0 = 0xFD;        //50us
77.     count++;
78. 
79. if(count>num)count=0;
80. 
81. if(count>=10)
82.     {
83.    P2=P2&0x1f|0x80;
84.       P02=1;
85. 
86.     }
87. else
88.      {
89.          P2=P2&0x1f|0x80;
90.            P02=0;
91. 
92.        }
93. 
94. 
95. 
96. }
97. 
98.
目录
相关文章
|
8月前
4-2 51单片机点亮LED
4-2 51单片机点亮LED
73 2
|
8月前
|
数据格式
用C51单片机制作LED流水的灯
用C51单片机制作LED流水的灯
【51单片机】Kn独立按键控制【LED亮灭】【LED状态】【LED二进制式显示】【LED不断移位】(4)
【51单片机】Kn独立按键控制【LED亮灭】【LED状态】【LED二进制式显示】【LED不断移位】(4)
|
8月前
|
编译器 C语言 C++
【51单片机】LED的三个基本项目(LED点亮&LED闪烁&LED流水灯)(3)
【51单片机】LED的三个基本项目(LED点亮&LED闪烁&LED流水灯)(3)
定时器+按键控制LED流水灯模式+定时器时钟——“51单片机”
定时器+按键控制LED流水灯模式+定时器时钟——“51单片机”
|
8月前
|
C语言
独立按键控制LED亮灭、独立按键控制LED状态、独立按键控制LED显示二进制、独立按键控制LED移位——“51单片机”
独立按键控制LED亮灭、独立按键控制LED状态、独立按键控制LED显示二进制、独立按键控制LED移位——“51单片机”
|
8月前
|
C语言
点亮一个LED+LED闪烁+LED流水灯——“51单片机”
点亮一个LED+LED闪烁+LED流水灯——“51单片机”
|
8月前
|
传感器 物联网 C语言
单片机在智能家居中的应用:以LED灯控制为例
单片机在智能家居中的应用:以LED灯控制为例
250 0
单片机在智能家居中的应用:以LED灯控制为例
|
8月前
51单片机实现led灯亮度变化!
51单片机实现led灯亮度变化!
84 0
|
8月前
|
C语言
###51单片机学习-----如何通过C语言运用延时函数设计LED流水灯
###51单片机学习-----如何通过C语言运用延时函数设计LED流水灯
301 0