日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

pmw调光c语言程序,51单片机led灯渐变PWM调光(渐亮渐灭)C语言和汇编源程序

發(fā)布時間:2025/3/15 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pmw调光c语言程序,51单片机led灯渐变PWM调光(渐亮渐灭)C语言和汇编源程序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

; PWM 控制 LED 燈漸亮漸滅程序

; 適用 ME500 開發(fā)系統(tǒng)

; 晶振為11.0592M

; 利用定時器控制產生占空比可變的 PWM 波

; 按K1,PWM值增加,則占空比減小,LED 燈漸暗。

; 按K2,PWM值減小,則占空比增加,LED 燈漸亮。

; 當PWM值增加到最大值或減小到最小值時,蜂鳴器將報警。

;----------------------------

PWM? ?EQU??7FH? ?? ?? ?? ?;PWM賦初始值

OUT? ?EQU??P0? ?? ?? ?? ? ;8個LED燈的接口

INCKEY EQU??P1.4? ?? ?? ? ;K1,PWM值增加鍵。

DECKEY EQU??P1.5? ?? ?? ? ;K2,PWM值減小鍵。

BEEP? ?EQU??P3.7

;----------------------------

ORG? ?0000H

SJMP??START

ORG? ?000BH

SJMP??INTT0

ORG? ?001BH

SJMP??INTT1

ORG? ?0030H

;----------------------------

;主程序

;定時器0工作在模式1,定時器1工作在模式2。

;----------------------------

START:

MOV??SP,#30H

MOV TMOD,#21H

MOV TH1,PWM? ?? ?? ?? ???;脈寬調節(jié)

MOV TL1,#00H

MOV TH0,#0FCH? ?? ?? ?? ? ;1ms延時常數

MOV TL0,#066H? ?? ?? ?? ? ;頻率調節(jié)

SETB EA

SETB ET0

SETB ET1

SETB TR0

LOOP:? ???MOV A,PWM? ?? ?? ?? ?? ? ;

JB INCKEY,LOOP1? ?? ?? ? ;增加鍵是否按下?

CALL DELAY? ?? ?? ?? ?? ?;延時去抖動

JB INCKEY,LOOP1

CJNE A,#0FFH,PWMINC? ?? ?;是否到最大值?

CALL??BEEP_BL? ?? ?? ?? ?;是,蜂鳴器報警。

SJMP LOOP

PWMINC:

INC PWM? ?? ?? ?? ?? ?? ?;調節(jié)脈寬(脈寬減小)

SJMP LOOP

LOOP1:? ? JB DECKEY,LOOP2? ?? ?? ? ;減小鍵是否按下?

CALL DELAY? ?? ?? ?? ?? ?;延時去抖動

JB DECKEY,LOOP2

CJNE A,#02H,PWMDEC? ?? ? ;是否到最小值?

CALL??BEEP_BL? ?? ?? ?? ?;是,蜂鳴器報警。

SJMP LOOP

PWMDEC:

DEC PWM? ?? ?? ?? ?? ?? ?;調節(jié)脈寬(脈寬增加)

LOOP2:? ? SJMP LOOP

;------------------------------

;T0中斷服務子程序? ?(頻率)

;控制定時器1中斷

;------------------------------

INTT0:

CLR??TR1

MOV TH0,#0FCH? ?? ?? ?? ? ;1ms延時常數

MOV TL0,#066H? ?? ?? ?? ???;頻率調節(jié)

MOV??TH1,PWM

SETB TR1

MOV??OUT,#00H? ?? ?? ?? ? ;啟動輸出

RETI

;------------------------------

;T1中斷服務子程序? ?? ?(脈寬)

;控制PWM脈沖寬度

;------------------------------

INTT1:

CLR??TR1? ?? ?? ?;脈寬調節(jié)結束

MOV??OUT,#0FFH? ?;結束輸出

RETI

;------------------------------

;10ms延時子程序

;------------------------------

DELAY:

MOV R6,#50

DELAY1:

MOV R7,#100

DJNZ R7,$

DJNZ R6,DELAY1

RET

;-----------------------------------------------

;蜂鳴器響一聲子程序

;-----------------------------------------------

BEEP_BL:

MOV? ?R6,#100

BL1:? ???CALL??BL2

CPL? ?BEEP

DJNZ??R6,BL1

MOV? ?R5,#25

CALL??DELAY2

RET

BL2:? ???MOV? ?R7,#180

BL3:? ???NOP

DJNZ??R7,BL3

RET

DELAY2:? ?? ?? ?? ?? ?? ???;延時R5×10MS

MOV? ?R6,#50

BL4:? ???MOV? ?R7,#100

BL5:? ???DJNZ??R7,BL5

DJNZ??R6,BL4

DJNZ??R5,DELAY2

RET

;---------------------------------------------------

END

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的pmw调光c语言程序,51单片机led灯渐变PWM调光(渐亮渐灭)C语言和汇编源程序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。