找回密码
 注册
关于网站域名变更的通知
查看: 436|回复: 3
打印 上一主题 下一主题

单片机LED从暗到亮,请问大佬怎么控制?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-9-6 10:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
各位大佬,单片机控制LED灯怎样从暗到亮?  怎样编写LED灯可以从暗到亮的起动。用P3.7来控制PMOS管。

& [* f+ s" @* L1 d7 @

该用户从未签到

2#
发表于 2021-9-6 11:05 | 只看该作者
4 k$ H- p+ W. s) G' Z6 \
输出占空比可调的PWM脉冲

该用户从未签到

3#
发表于 2021-9-6 14:39 | 只看该作者
好家伙  我程序都给你发出来  M. L9 \8 b2 \
#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义* {' r. U' D7 O
, t. t2 {( x6 |# P# J( \6 P4 u: V4 Z
sbit LED0=P1^0;// 用sbit 关键字 定义 LED到P1.0端口,LED是自己任意定义且容易记忆的符号
) f( ]2 i1 R& a7 ^' w6 ?8 b* ?" m$ e. M" C
void Delay(unsigned int t); //函数声明. K+ P9 c" R; m" X3 G1 z& }
/*------------------------------------------------* t3 m8 v' p# [; F" s7 o! }
                    主函数
* f# U. Z0 C. |( n" ]1 @------------------------------------------------*/9 q( w  e) M4 |) m
void main (void)% @3 L7 |$ f1 m
{
2 K) F$ ~6 @8 W" O                                                                              
" D4 ?) }. x  P        unsigned int CYCLE=600,PWM_LOW=0;        //定义周期并赋值# p! l& {$ d; N
        while (1)                                                                         //主循环# s4 q( Y+ [" x
                        {& H+ x1 I3 \- N, `( u+ _5 s
                                 LED0=1;
8 {( }2 j) m# A' k9 r: b                                 Delay(60000);                                //特意加延时,可以看到熄灭的过程' D( K+ i0 R/ r$ m. v! K3 x
                                 for(PWM_LOW=1WM_LOW<CYCLEWM_LOW++)//PWM_LOW表示低
. d+ C+ ~1 P2 S  H; @                                        {1 ~& K  _8 F" J6 o  H2 K% K8 i7 Q
                                 //电平时间,这个循环中低电平时长从1累加到CYCLE(周期)的值,即600次
9 c2 W0 _1 S  K( _/ i% o                                                        LED0=0;        //点亮LED  
/ l  h( E8 n  ~/ F$ X                                                        Delay(PWM_LOW);//延时长度,600次循环中从1加至599# z: ?9 d7 r' L" @1 z
                                                        LED0=1;        //熄灭LED1 O3 I1 E. W3 V% b8 C% r
                                                        Delay(CYCLE-PWM_LOW);//延时长度,600次循环中从599减至1& D9 K6 F! R4 U+ G3 x9 f' b
                                        }/ r! E- d5 l/ E7 p2 K( a
                                        LED0=0;
& I- x" F& ]4 k" ?0 `2 i" s                                        for(PWM_LOW=CYCLE-1WM_LOW>0;PWM_LOW--)1 a$ q3 H% V7 G
                                        { //与逐渐变亮相反的过程2 J5 n" ~* a' N6 l* k* q* ^
                                                LED0=0;
: }  k. R' I9 j9 \                                                Delay(PWM_LOW);2 K  A7 i5 Q  A' k
                                                LED0=1;# n+ b9 x/ G4 u$ G9 P; ^5 L4 l& E
                                                Delay(CYCLE-PWM_LOW);( m( T5 ?3 C6 c
                                        }                                                 * `) I8 y- ]9 h, G! G& l# ~
                        }
5 D9 r: t4 A/ B: T& l8 {}3 f7 V$ C, o$ c- [5 p. F' _' o- {# P
/*------------------------------------------------
: k* _& t- N$ e; I( B' E1 m延时函数,含有输入参数 unsigned int t,无返回值
9 e1 L, D  P0 l0 d+ j, @, nunsigned int 是定义无符号整形变量,其值的范围是
; b. {$ Y* V! f3 U/ m; q$ E0~65535
+ S6 r1 D; Y# R! a: h9 z- o+ q------------------------------------------------*/
# T+ _+ `8 X7 X3 V# Q! Mvoid Delay(unsigned int t): _7 O" N& A- |% R4 `8 U
{% R; |. j3 H0 Y
while(--t);
/ X. j& L0 X+ d# s. v2 }}

该用户从未签到

4#
发表于 2021-9-8 11:32 | 只看该作者
可以用定时器做一个PWM 周期
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-24 10:27 , Processed in 0.140625 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表