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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

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

( p8 y& ~  g7 ], W) U. C4 C- C

该用户从未签到

2#
发表于 2021-9-6 11:05 | 只看该作者

# I5 K7 B* J  j" i. P输出占空比可调的PWM脉冲

该用户从未签到

3#
发表于 2021-9-6 14:39 | 只看该作者
好家伙  我程序都给你发出来) u" h+ U; r2 o/ i$ J9 {8 r, P$ e
#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
! ~; O, S, B' n9 W' K) G  q( b9 u; B  L. ]
sbit LED0=P1^0;// 用sbit 关键字 定义 LED到P1.0端口,LED是自己任意定义且容易记忆的符号
1 W1 p: K' B+ F3 a2 j1 G( V2 H; n2 R
void Delay(unsigned int t); //函数声明3 ?7 S' W" z5 g' X6 ?
/*------------------------------------------------! s! a% W- s6 D$ z: U7 T
                    主函数0 U! A1 E% a* e6 _9 Z' |+ P: [
------------------------------------------------*/
% b, h5 E3 C. k8 |9 pvoid main (void)$ ]+ x' d2 T. f( D" Z
{& i- s& ~+ K- J3 A
                                                                               # [7 C8 ~4 A1 s1 d% `
        unsigned int CYCLE=600,PWM_LOW=0;        //定义周期并赋值1 A0 S- j. L& F8 p" |! p5 i" Z
        while (1)                                                                         //主循环5 e; m: r" w7 X0 y$ }  h
                        {4 N7 v- k4 ^2 ]( h! v
                                 LED0=1;+ ]1 e3 q5 o9 K
                                 Delay(60000);                                //特意加延时,可以看到熄灭的过程
6 N' l: n$ [% ?                                 for(PWM_LOW=1WM_LOW<CYCLEWM_LOW++)//PWM_LOW表示低
$ _* I- t" G' B2 V                                        {
& Z: e7 L  x, Q% e                                 //电平时间,这个循环中低电平时长从1累加到CYCLE(周期)的值,即600次6 m" p: J) h- n
                                                        LED0=0;        //点亮LED  % U8 H2 @/ E5 I1 p- y- b
                                                        Delay(PWM_LOW);//延时长度,600次循环中从1加至599+ F: J5 w1 E1 o3 _
                                                        LED0=1;        //熄灭LED$ ]6 r# P, N6 h/ r6 c
                                                        Delay(CYCLE-PWM_LOW);//延时长度,600次循环中从599减至1
4 f( e# R- n/ x( X% r" V                                        }) j; A" ^  B" p$ M4 ?( S$ t; C+ e
                                        LED0=0;
! ~% o' \/ Y& @! y                                        for(PWM_LOW=CYCLE-1WM_LOW>0;PWM_LOW--)" T0 J$ b' ?" N5 R5 [
                                        { //与逐渐变亮相反的过程
  L4 D& N5 n) m- l) Z/ }                                                LED0=0;7 G: D- S& d: I% ?# x( c
                                                Delay(PWM_LOW);* T; j9 w7 r0 ]
                                                LED0=1;; [$ W* @' I/ ?( U4 C( O
                                                Delay(CYCLE-PWM_LOW);' z/ Z1 p" @4 f- e" P
                                        }                                                 0 k, J2 D  G' \1 \; ]
                        }% M6 [) X' o; t: d# ^. a
}
" h' N4 k& U8 c6 ]/*------------------------------------------------( _; T1 W) v# k& s
延时函数,含有输入参数 unsigned int t,无返回值
1 H# F' r- C" r' @2 a9 u# f( Qunsigned int 是定义无符号整形变量,其值的范围是7 A; o& W4 v; {% t2 O4 E9 ~9 \
0~65535
1 g( {6 q8 E. }$ S, N$ T------------------------------------------------*/
3 f9 V' k- d; }( l" u( a# {5 b7 jvoid Delay(unsigned int t). k1 I- F/ ~/ p+ `
{  L2 z0 j# V( t' w
while(--t);( q; c! k. n2 G# P8 K% K! s
}

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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