99久久全国免费观看_国产一区二区三区四区五区VM_久久www人成免费看片中文_国产高清在线a视频大全_深夜福利www_日韩一级成人av

  • 回復
  • 收藏
  • 點贊
  • 分享
  • 發(fā)新帖

請教一個單片機控制發(fā)光二極管亮度的問題??

各位單片機高手:請教一個單片機控制發(fā)光二極管亮度的問題

我現在所用的芯片是AT89C2051芯片,發(fā)光二極管接在芯片的p1口,P1.0未接,共七個發(fā)光二極管,我想通過軟件控制二極管的亮度漸變,不知道有沒有辦法實現,怎么樣實現???

我找過很多關于PWM的調節(jié),據說這個PWM能夠實現我想要的,但本人不懂PWM的原理,所以也未能實現,請各們大哥多多指教!!
全部回復(15)
正序查看
倒序查看
gnlee
LV.5
2
2005-12-05 17:02
通俗點講就是象交流燈泡一樣,讓它閃亮,當頻率高了你就會覺得燈一直在亮,所謂pwm調節(jié)也就是在一個閃亮周期內亮的時間和滅的時間的分配,一周期內亮的時間越長宏觀上燈就顯得越亮.
0
回復
gnlee
LV.5
3
2005-12-05 17:06
對于你來講pwm調節(jié)就是調節(jié)再一個周期內led亮和滅的時間比
0
回復
lanpxr
LV.1
4
2005-12-08 09:40
@gnlee
對于你來講pwm調節(jié)就是調節(jié)再一個周期內led亮和滅的時間比
您好!我也剛學單片機,這是我用HT的單片機做的一個控制LED亮度的程序,由于我目前沒有條件搭線,所以想請高手幫忙指點一下.
看看小弟還有那些不足的地方.呵呵我還是個學生呢.
#include ht46r47.inc
;Pb2控制占空比
;Pc1,Pc2輸出PWM
;Pb1選擇Pc1或Pc2
data.section 'data'
t0  db ?;The cycle of PWM pulse
t10 db ?;Open time
aaa db ?;Open time control
bbb db ?;Close time control
sov db ?;Open time end
bov db ?;close time end
code.section 'code'
org  00h
clr  pbc
mov  a,02h
mov  pbc,a
jmp  start
org  08h
jmp  pwm
;+++++++++++++++++++++++++++++++++++++++++++++++
start:
mov  a,3       ;cycle of PWM pulse
mov  t0,a
mov  aaa,a
mov  a,1
set  sov
clr  bbb
clr  t10
;+++++++++++++++++++++++++++++++++++++++++++++
main:
mov  a,05h
mov  intc,a
mov  a,84h
mov  tmrc,a;fsys=32768Hz,rtc,t0=fsys/32=0.5ms
mov  a,0feh;The clock base this time
mov  tmr,a
set  tmrc.4
jmp  $
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++
sz   pb.1           ;判斷鍵是否按下
jmp  loop
call chou
loop:
sz   sov
jmp  next1
sz   bov
jmp  next2
jmp  loop
next1:
inc  t10
mov  a,aaa
sub  a,t10
mov  sov,a
sz   sov
reti
sz   bov
jmp  $1
set  sov
jmp  loop
$1:
cpl  pc
set  bov
reti
next2:
inc  t20
mov  a,bbb
mov  bov,a
sz   bov
reti
sz   sov
jmp  $1
jmp  loop
$1:
cpl  pc
set  sov
reti
;+++++++++++++++++++++++++++++++++++++++++++++++++
chou proc
sdz   aaa
jmp   $1
jmp   start
$1:
mov   a,t0
sub   a,aaa
mov   bbb,a
ret
chou endp
end
0
回復
dfstar
LV.2
5
2005-12-08 17:37
嘿嘿我做過一會,原理就是跟了3樓的你一樣.控制一個周期內LED亮和滅的時間比.
0
回復
zrz2008
LV.1
6
2005-12-09 16:08
@dfstar
嘿嘿我做過一會,原理就是跟了3樓的你一樣.控制一個周期內LED亮和滅的時間比.
OUTE BIT P1.7           ;單片機引腳定義
SDAT BIT P1.6
STRB BIT P1.5
SCLK BIT P1.4

ORG 0000H
AJMP MAIN
ORG 0080H
MAIN:
;============================
;============================
MOV P1,#0FFH

REDSHOW:                      ; 紅色漸變
MOV    R4,#80
ACALL  COLOR1
ACALL  LOOP0
ACALL  COLOR1
ACALL  LOOP2          ;將輸入數據送入鎖存器
       DJNZ   R4,$-8
ACALL START
ACALL LIGHTOUT
;============================
AJMP MAIN

START:               ;計數器亮度控制函數
        LCALL  DELAY05S
        CLR    TF0
        MOV    R1,#LOW(65535-10000)
        MOV    R2,#HIGH(65535-10000)
        MOV    TL0,R1
        MOV    TH0,R2
        MOV    R3,#LOW(65535-1)
        MOV    R4,#HIGH(65535-1)
        MOV    TL1,R3
        MOV    TH1,R4
RET
LIGHTOUT:                 ;二極管亮度控制
LOOPREDB:                 ;;二極管由暗到暗明
        SETB   TR0
        JNB    TF0,$
        CLR    TR0
        CLR    TF0
        CLR    OUTE           ;TIGER
SETB   TR1
JNB    TF1,$
        CLR    TR1
        CLR    TF1
        SETB   OUTE           ;STOP
        CLR    C
        MOV    A,R1
        ADD    A,#4
        MOV    R1,A
        MOV    A,R2
        ADDC   A,#0
        MOV    R2,A
        MOV    TL0,R1
        MOV    TH0,R2
CLR    C
        MOV    A,R3
        SUBB    A,#4
        MOV    R3,A
        MOV    A,R4
        SUBB   A,#0
        MOV    R4,A
        MOV    TL1,R3
        MOV    TH1,R4
        CJNE   R1,#0FFH,LOOPREDB
        CJNE   R2,#0FFH,LOOPREDB
        CLR    OUTE
        LCALL  DELAY2S
        MOV    TL0,R1
        MOV    TH0,R2
LOOPREDB1:                ;;二極管由明到暗      
        SETB   TR0
        JNB    TF0,$
        CLR    TR0
        CLR    TF0
        CLR    OUTE           ;TIGER
SETB   TR1
JNB    TF1,$
        CLR    TR1
        CLR    TF1
        SETB   OUTE           ;STOP
        CLR    C
        MOV    A,R1
        SUBB   A,#4
        MOV    R1,A
        MOV    A,R2
        SUBB   A,#0
        MOV    R2,A
        MOV    TL0,R1
        MOV    TH0,R2
CLR    C
        MOV    A,R3
        ADD    A,#2
        MOV    R3,A
        MOV    A,R4
        ADDC   A,#0
        MOV    R4,A
        MOV    TL1,R3
        MOV    TH1,R4
        CJNE   R1,#0EFH,LOOPREDB1
        CJNE   R2,#0D8H,LOOPREDB1
SETB   OUTE
RET
;======================================
COLOR0:           ;不亮
ACALL LOOP0
ACALL LOOP0
ACALL LOOP0
RET
COLOR1:              ;紅色
ACALL LOOP0
ACALL LOOP0
ACALL LOOP1
RET
COLOR2:              ;綠色
ACALL LOOP0
ACALL LOOP1
ACALL LOOP0
RET
COLOR3:              ;藍色
ACALL LOOP1
ACALL LOOP0
ACALL LOOP0
RET
COLOR4:
ACALL LOOP0
ACALL LOOP1
ACALL LOOP1
RET
COLOR5:
ACALL LOOP1
ACALL LOOP0
ACALL LOOP1
RET
COLOR6:
ACALL LOOP1
ACALL LOOP1
ACALL LOOP0
RET
COLOR7:
ACALL LOOP1
ACALL LOOP1
ACALL LOOP1
RET
;================================
LOOP0:                   ;輸入數據
        CLR    SDAT
        CLR    SCLK
        SETB   SCLK
RET
LOOP1:
        SETB   SDAT
        CLR    SCLK
        SETB   SCLK
RET
LOOP2:
        CLR    STRB
        SETB   STRB
RET
;==================================
delay:
mov r7,#10
mov r6,#10
mov r5,#10
djnz r5,$
djnz r6,$-2
djnz r7,$-4
ret
;==============================
DELAY05S:
        MOV   R5,#3        ;4
        MOV   R6,#250       ;230
        MOV   R7,#250
        DJNZ  R7,$
        DJNZ  R6,$-4
        DJNZ  R5,$-6
        RET
DELAY1S:
        MOV   R5,#3         ;4
        MOV   R6,#250       ;230
        MOV   R7,#250
        DJNZ  R7,$
        DJNZ  R6,$-4
        DJNZ  R5,$-6
        RET
;===================
DELAY2S:
        MOV   R5,#10         ;4
        MOV   R6,#250       ;230
        MOV   R7,#250
        DJNZ  R7,$
        DJNZ  R6,$-4
        DJNZ  R5,$-6
        RET
;===================

END
;============================
0
回復
zrz2008
LV.1
7
2005-12-09 16:10
@zrz2008
OUTEBITP1.7          ;單片機引腳定義SDATBITP1.6STRBBITP1.5SCLKBITP1.4ORG0000HAJMPMAINORG0080HMAIN:;============================;============================MOVP1,#0FFHREDSHOW:                      ;紅色漸變MOV    R4,#80ACALL  COLOR1ACALL  LOOP0ACALL  COLOR1ACALL  LOOP2          ;將輸入數據送入鎖存器      DJNZ  R4,$-8ACALLSTARTACALLLIGHTOUT;============================AJMPMAINSTART:              ;計數器亮度控制函數        LCALL  DELAY05S        CLR    TF0        MOV    R1,#LOW(65535-10000)        MOV    R2,#HIGH(65535-10000)        MOV    TL0,R1        MOV    TH0,R2        MOV    R3,#LOW(65535-1)        MOV    R4,#HIGH(65535-1)        MOV    TL1,R3        MOV    TH1,R4RETLIGHTOUT:                ;二極管亮度控制LOOPREDB:                ;;二極管由暗到暗明        SETB  TR0        JNB    TF0,$        CLR    TR0        CLR    TF0        CLR    OUTE          ;TIGERSETB  TR1JNB    TF1,$        CLR    TR1        CLR    TF1        SETB  OUTE          ;STOP        CLR    C        MOV    A,R1        ADD    A,#4        MOV    R1,A        MOV    A,R2        ADDC  A,#0        MOV    R2,A        MOV    TL0,R1        MOV    TH0,R2CLR    C        MOV    A,R3        SUBB    A,#4        MOV    R3,A        MOV    A,R4        SUBB  A,#0        MOV    R4,A        MOV    TL1,R3        MOV    TH1,R4        CJNE  R1,#0FFH,LOOPREDB        CJNE  R2,#0FFH,LOOPREDB        CLR    OUTE        LCALL  DELAY2S        MOV    TL0,R1        MOV    TH0,R2LOOPREDB1:                ;;二極管由明到暗              SETB  TR0        JNB    TF0,$        CLR    TR0        CLR    TF0        CLR    OUTE          ;TIGERSETB  TR1JNB    TF1,$        CLR    TR1        CLR    TF1        SETB  OUTE          ;STOP        CLR    C        MOV    A,R1        SUBB  A,#4        MOV    R1,A        MOV    A,R2        SUBB  A,#0        MOV    R2,A        MOV    TL0,R1        MOV    TH0,R2CLR    C        MOV    A,R3        ADD    A,#2        MOV    R3,A        MOV    A,R4        ADDC  A,#0        MOV    R4,A        MOV    TL1,R3        MOV    TH1,R4        CJNE  R1,#0EFH,LOOPREDB1        CJNE  R2,#0D8H,LOOPREDB1SETB  OUTERET;======================================COLOR0:          ;不亮ACALLLOOP0ACALLLOOP0ACALLLOOP0RETCOLOR1:              ;紅色ACALLLOOP0ACALLLOOP0ACALLLOOP1RETCOLOR2:              ;綠色ACALLLOOP0ACALLLOOP1ACALLLOOP0RETCOLOR3:              ;藍色ACALLLOOP1ACALLLOOP0ACALLLOOP0RETCOLOR4:ACALLLOOP0ACALLLOOP1ACALLLOOP1RETCOLOR5:ACALLLOOP1ACALLLOOP0ACALLLOOP1RETCOLOR6:ACALLLOOP1ACALLLOOP1ACALLLOOP0RETCOLOR7:ACALLLOOP1ACALLLOOP1ACALLLOOP1RET;================================LOOP0:                  ;輸入數據        CLR    SDAT        CLR    SCLK        SETB  SCLKRETLOOP1:        SETB  SDAT        CLR    SCLK        SETB  SCLKRETLOOP2:        CLR    STRB        SETB  STRBRET;==================================delay:movr7,#10movr6,#10movr5,#10djnzr5,$djnzr6,$-2djnzr7,$-4ret;==============================DELAY05S:        MOV  R5,#3        ;4        MOV  R6,#250      ;230        MOV  R7,#250        DJNZ  R7,$        DJNZ  R6,$-4        DJNZ  R5,$-6        RETDELAY1S:        MOV  R5,#3        ;4        MOV  R6,#250      ;230        MOV  R7,#250        DJNZ  R7,$        DJNZ  R6,$-4        DJNZ  R5,$-6        RET;===================DELAY2S:        MOV  R5,#10        ;4        MOV  R6,#250      ;230        MOV  R7,#250        DJNZ  R7,$        DJNZ  R6,$-4        DJNZ  R5,$-6        RET;===================END;============================
以上是我的程序,根據各位的意思,基本上是實現了,我十分高興,不過還有一個小小的問題,二極管很閃,很剌眼,該怎么辦
0
回復
gnlee
LV.5
8
2005-12-09 17:06
@zrz2008
以上是我的程序,根據各位的意思,基本上是實現了,我十分高興,不過還有一個小小的問題,二極管很閃,很剌眼,該怎么辦
閃?頻率低了吧
怎樣的閃法
0
回復
zrz2008
LV.1
9
2005-12-09 17:43
@gnlee
閃?頻率低了吧怎樣的閃法
理想的工作的狀態(tài)是由暗到明,再由明到暗的漸變,其中漸變的過程要很協調,很柔和,我說的閃就有點象日光燈啟動時的那樣,可以有辦法解決嗎
0
回復
zrz2008
LV.1
10
2005-12-09 17:45
@gnlee
閃?頻率低了吧怎樣的閃法
如果是頻率低,你幫我看看我的程序,什么地方需要改一下,程序比較亂,有什么地方看不明白請及時回復,謝謝!!!
0
回復
小雨
LV.5
11
2005-12-14 11:08
@zrz2008
如果是頻率低,你幫我看看我的程序,什么地方需要改一下,程序比較亂,有什么地方看不明白請及時回復,謝謝!!!
我一直在搞單片機,一般情況下我是這么處理:通過T/C產生PWM波,經過低通濾波器以后輸出一個電壓,這個電壓的大小可以通過調節(jié)占空比來實現,非常簡單易于實現,也就是大家常說的利用PWM做D/A轉換.希望對你有幫助
0
回復
gnlee
LV.5
12
2005-12-15 10:05
@小雨
我一直在搞單片機,一般情況下我是這么處理:通過T/C產生PWM波,經過低通濾波器以后輸出一個電壓,這個電壓的大小可以通過調節(jié)占空比來實現,非常簡單易于實現,也就是大家常說的利用PWM做D/A轉換.希望對你有幫助
這種方法效果會好,可以試試
0
回復
xaudream
LV.3
13
2005-12-21 17:11
@lanpxr
您好!我也剛學單片機,這是我用HT的單片機做的一個控制LED亮度的程序,由于我目前沒有條件搭線,所以想請高手幫忙指點一下.看看小弟還有那些不足的地方.呵呵我還是個學生呢.#includeht46r47.inc;Pb2控制占空比;Pc1,Pc2輸出PWM;Pb1選擇Pc1或Pc2data.section'data't0  db?;ThecycleofPWMpulset10db?;Opentimeaaadb?;Opentimecontrolbbbdb?;Closetimecontrolsovdb?;Opentimeendbovdb?;closetimeendcode.section'code'org  00hclr  pbcmov  a,02hmov  pbc,ajmp  startorg  08hjmp  pwm;+++++++++++++++++++++++++++++++++++++++++++++++start:mov  a,3      ;cycleofPWMpulsemov  t0,amov  aaa,amov  a,1set  sovclr  bbbclr  t10;+++++++++++++++++++++++++++++++++++++++++++++main:mov  a,05hmov  intc,amov  a,84hmov  tmrc,a;fsys=32768Hz,rtc,t0=fsys/32=0.5msmov  a,0feh;Theclockbasethistimemov  tmr,aset  tmrc.4jmp  $;+++++++++++++++++++++++++++++++++++++++++++++++++++++++sz  pb.1          ;判斷鍵是否按下jmp  loopcallchouloop:sz  sovjmp  next1sz  bovjmp  next2jmp  loopnext1:inc  t10mov  a,aaasub  a,t10mov  sov,asz  sovretisz  bovjmp  $1set  sovjmp  loop$1:cpl  pcset  bovretinext2:inc  t20mov  a,bbbmov  bov,asz  bovretisz  sovjmp  $1jmp  loop$1:cpl  pcset  sovreti;+++++++++++++++++++++++++++++++++++++++++++++++++chouprocsdz  aaajmp  $1jmp  start$1:mov  a,t0sub  a,aaamov  bbb,aretchouendpend
嘿嘿 小弟也做過一樣的東東
原理就是大家所說的  也通過電路實現了
不過還是想看看大家怎么做的
我看我得程序比較幼稚  像大家學習
我copy 了你的程序 回家看看
我也是個新手 學生
請大家多多指教
0
回復
sherlocked
LV.4
14
2014-04-24 21:30
@zrz2008
以上是我的程序,根據各位的意思,基本上是實現了,我十分高興,不過還有一個小小的問題,二極管很閃,很剌眼,該怎么辦
真,,哥們你竟然用的是匯編,,要是c的話我還能稍微幫點忙,,這下我就跪了,,
0
回復
2017-02-15 09:24
@zrz2008
以上是我的程序,根據各位的意思,基本上是實現了,我十分高興,不過還有一個小小的問題,二極管很閃,很剌眼,該怎么辦
加限流電阻,
0
回復
2017-02-15 09:25
@紅豆一馬薩
加限流電阻,
你說的閃那是頻率太低看起來在抖動.在閃快點
0
回復
發(fā)
主站蜘蛛池模板: 色姑娘久| 人妻av资源先锋影音av资源 | 00粉嫩高中生洗澡偷拍视频 | 成人软件在线观看 | 蜜桃视频网站在线观看 | 亚洲欧洲精品一区二区三区 | 2020亚洲一卡二卡三卡 | 18禁裸乳无遮挡自慰免费动漫 | 成人免费视频一区二区三区 | 国产成人AV片无码免费 | 中文字日产乱码六区中国有限公司 | 亚洲第一香蕉 | 一区二区三区亚洲精品国 | 久久婷婷成人综合色综合 | 日韩一区二区三区高清免费看看 | 99精品热 | 丁香五月综合缴清中文 | 久久婷婷人人澡人人爽人人爱 | 蜜臀AV无码一区二区三区 | 亚洲欧美在线播放 | 亚洲区精品3d国漫同人 | A级国产乱理论片在线观看 亚洲激情第一页 | 精品婷婷久久 | zzji亚洲日本少妇jizjⅰz | 无码国内精品人妻少妇蜜桃视频 | 国产午夜精品无码理论片 | 亚洲国产成人va在线观看 | 欧美性猛交xxxx乱大交退制版 | 精品乱码一区二区三四区视频 | 亚洲精品456在线播放第一页 | 中文字幕一区二区三A片 | 黑人巨大两根一起挤进交换 | 午夜片在线 | 蜜桃臀AV高潮无码 | 日韩不卡在线观看视频 | 啪啪网址大全 | 中文字幕漂亮人妻熟睡中被公侵犯 | 日本同性老头 | 人人超碰人人爱超碰国产 | 国产熟妇乱子伦hd | 亚洲综合站|