找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 9238|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)PWM占空比控制LED燈亮度漸變匯編程序+電路圖

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:90014 發(fā)表于 2015-9-15 22:11 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式



/////////////////////////////////////////
匯編程序
/////////////////////////////////////////
/***********************************************************************/
/***名稱:PWM控制LED燈亮度漸變   ***************************************/
/***功能:亮度漸變                                                     */
/***********************************************************************/

/*---------------------------------------------------------------------*/
/*--   端口定義                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
PORT_2        EQU P2
PORT_1        EQU P1

LOOP_NUM1        EQU 30H
LOOP_NUM2        EQU 31H
LOOP_NUM3        EQU 32H
/*---------------------------------------------------------------------*/
/*--   程序開始                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
ORG 0000H
SJMP MAIN
ORG 0030H
/*---------------------------------------------------------------------*/
/*--   主程序                   ---------------------------------------*/
/*---------------------------------------------------------------------*/
MAIN:        MOV PORT_2,#00H         //端口初始化
        MOV PORT_1,#00H
START:        MOV LOOP_NUM3,#255
MOV LOOP_NUM2,#255
MOV LOOP_NUM1,#0
LOOP:        MOV A,LOOP_NUM1
CJNE A,LOOP_NUM2,LOOP2
LOOP2:   JC LOOP3
MOV PORT_2,#0FFH
SJMP EXIT
LOOP3:        MOV PORT_2,#00H
EXIT:        DJNZ LOOP_NUM2,LOOP
MOV LOOP_NUM2,#255
INC LOOP_NUM1               //變量
MOV A,LOOP_NUM1
CJNE A,#255,LOOP
SJMP START
/*---------------------------------------------------------------------*/
/*--   程序結(jié)束                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
END

回復(fù)95帖
2014/04/18 10:44:30 96帖 yueyunno1 師長
/////////////////////////////////////////////
C程序
/////////////////////////////////////////////

/***********************************************************************/
/***名稱:PWM控制LED燈亮度漸變   ***************************************/

/***功能:亮度漸變                                                     */
/***********************************************************************/
#include<reg51.h>
typedef unsigned char U8;
typedef unsigned int  U16;
/*---------------------------------------------------------------------*/
/*--   端口定義                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
#define PORT_2 P2
#define PORT_1 P1
sbit LED_RED  =P1^0;
sbit LED_GREEN=P1^1;
sbit LED_BLUE =P1^2;
/*---------------------------------------------------------------------*/
/*--   主程序                   ---------------------------------------*/
/*---------------------------------------------------------------------*/
void main()
{
U8 i,j;
PORT_2=0X00;
while(1)
{
for(i=255;i>0;i--)
PORT_2=(j<i)?0x00:0xff;
if(j<255)j++;else j=0;
}
}
/*---------------------------------------------------------------------*/
/*--   程序結(jié)束                 ---------------------------------------*/
/*---------------------------------------------------------------------*/
回復(fù)96帖
2018/04/18 12:59:15 101帖 yueyunno1 師長
主程序中用了C語言的三目運算,特別在復(fù)雜程序用用三目運算容易閱讀,一下貼出常規(guī)寫法
主程序也可以寫成這樣:
while(1)
{
for(i=255;i>0;i--)
{
        if(j<i)
        PORT_2=0X00;
        else
        PORT_2=0XFF;
}
if(j<255)
        j++;
else
        j=0;
}



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:151515 發(fā)表于 2016-12-1 19:12 | 只看該作者
你好,請問有完整的電路圖嗎,急需,謝謝
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表