<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > PWM控制LED臺(tái)燈程序帶紅外遙控

          PWM控制LED臺(tái)燈程序帶紅外遙控

          作者: 時(shí)間:2012-10-31 來源:網(wǎng)絡(luò) 收藏

          ;/*************************************************
          ;* 標(biāo)題: 程序*
          ;* 文件: .asm *
          ;* 日期: 2008-12-18 *
          ;* 版本: 1.0*
          ;* 作者: *
          ;****************************************************
          ; 程序帶有功能*
          ; 利用定時(shí)器控制產(chǎn)生占空比可變的PWM 波*
          ; 按K1,PWM 值增加,則占空比減小,LED 燈漸暗。*
          ; 按K2,PWM 值減小,則占空比增加,LED 燈漸亮。*
          ; 我的5644遙控器上的0~9數(shù)字鍵對(duì)應(yīng)10個(gè)亮度等級(jí)。*
          ; 當(dāng)PWM 值增加到最大值或減小到最小值時(shí),蜂鳴器將報(bào)警*
          ; 資源:p1 口,數(shù)碼管。p3.4,p3.5 亮度控制按鍵P3.0 PWM端口,p3.1 蜂鳴器報(bào)警*
          ;*********************************************************
          LEVEL0EQU2FH;亮度等級(jí)9
          LEVEL1EQU4FH;亮度等級(jí)8
          LEVEL2EQU6FH;亮度等級(jí)7
          LEVEL3EQU8FH;亮度等級(jí)6
          LEVEL4EQU0AFH;亮度等級(jí)5
          LEVEL5EQU0BFH;亮度等級(jí)4
          LEVEL6EQU0CFH;亮度等級(jí)3
          LEVEL7EQU0DFH;亮度等級(jí)2
          LEVEL8EQU0EFH;亮度等級(jí)1
          LEVEL9EQU0FFH;亮度等級(jí)0

          PWM EQU 7FH ;PWM 賦初始值

          LED_RAMEQU30H
          IRCOM EQU 50H;50H-53H IR 使用
          IR_NEWEQU 60H;新的遙控代碼值用

          LED_PORTEQUP1 ;數(shù)碼管接口,共陰極
          PWM_OUT EQU P3.0 ;輸出接口
          INCKEY EQU P3.5 ;K1,PWM 值增加鍵。
          DECKEY EQU P3.4 ;K2,PWM 值減小鍵。
          BEEP EQU P3.1 ;蜂鳴器
          IRINEQU P3.2

          ;---------------------------
          ORG 0000H
          SJMP START
          ORG 0003H
          LJMP REMOT;IRF
          ORG 000BH
          SJMP INTT0
          ORG 001BH
          SJMP INTT1
          ORG 0030H
          ;---------------------------
          ;主程序
          ;定時(shí)器0 工作在模式1,定時(shí)器1 工作在模式2。
          ;---------------------------

          START:
          MOV SP,#30H
          MOV TMOD,#21H
          MOV IP,#00001010B
          MOV TH1,PWM ;脈寬調(diào)節(jié)
          MOV TL1,#00H

          MOV TH0,#0FEH ;1ms 延時(shí)常數(shù)0FC
          MOV TL0,#0CH ;頻率調(diào)節(jié)066

          SETB EA;開總中斷
          SETB ET0 ;定時(shí)器0允許
          SETB ET1 ;定時(shí)器1允許
          SETB TR0 ;定時(shí)器0啟動(dòng)
          SETB EX0;外中斷0打開
          SETB IT0;外中斷0采用脈沖方式 ;
          LOOP:
          LCALL DISPLAY
          MOV A,PWM ;
          JB INCKEY,LOOP1 ;增加鍵是否按下?
          CALL DELAY ;延時(shí)去抖動(dòng)
          JB INCKEY,LOOP1
          CJNE A,#0FFH,PWMINC ;是否到最大值?
          CALL BEEP_BL ;是,蜂鳴器報(bào)警。
          SJMP LOOP

          PWMINC: INC PWM ;調(diào)節(jié)脈寬(脈寬減小)
          SJMP LOOP

          LOOP1: JB DECKEY,LOOP2 ;減小鍵是否按下?
          CALL DELAY ;延時(shí)去抖動(dòng)
          JB DECKEY,LOOP2
          CJNE A,#01H,PWMDEC ;是否到最小值?
          CALL BEEP_BL ;是,蜂鳴器報(bào)警。
          SJMP LOOP

          PWMDEC: DEC PWM ;調(diào)節(jié)脈寬(脈寬增加)
          LOOP2: SJMP LOOP

          ;-----------------------------
          ;T0 中斷服務(wù)子程序(頻率)
          ;控制定時(shí)器1 中斷
          ;-----------------------------
          INTT0:
          CLR TR1
          MOV TH0,#0FEH ;1ms 延時(shí)常數(shù)
          MOV TL0,#0CH ;頻率調(diào)節(jié)
          MOV TH1,PWM
          SETB TR1
          CLR PWM_OUT ;啟動(dòng)輸出
          RETI

          ;-----------------------------
          ;T1 中斷服務(wù)子程序(脈寬)
          ;控制PWM 脈沖寬度
          ;-----------------------------
          INTT1:
          CLR TR1 ;脈寬調(diào)節(jié)結(jié)束
          SETB PWM_OUT ;結(jié)束輸出
          RETI

          ;-----------------------------
          ;************************有接收到遙控器信號(hào)*******
          REMOT:
          CLR EA
          PUSH ACC
          PUSH PSW
          SETB PSW.3;選擇工作寄存器組1(SETB PSW.3)
          CLR PSW.4; (CLR PSW.4)
          MOV R0,#IRCOM
          I1: JNB IRIN,I2 ;等待IR 信號(hào)出現(xiàn)
          JMP IR_SHOW1;I1;原值I1
          I2: MOV R4,#20
          I20: CALL DEL
          DJNZ R4,I20
          JB IRIN,IR_SHOW1;I1 ;確認(rèn)IR 信號(hào)出現(xiàn)
          I21: JB IRIN,I3 ;等IR 變?yōu)楦唠娖?BR>CALL DEL
          JMP I21
          I3: MOV R3,#0 ;8 位數(shù)清為0
          LL:JNB IRIN,I4 ;等IR 變?yōu)榈碗娖?BR>CALL DEL
          JMP LL
          I4: JB IRIN,I5 ;等IR 變?yōu)楦唠娖?BR>CALL DEL
          JMP I4
          I5: MOV R2,#0 ;0.14ms 計(jì)數(shù)
          L1: CALL DEL
          JB IRIN, N1 ;等IR 變?yōu)楦唠娖?IR=0,檢查R2 中的計(jì)數(shù)值
          MOV A,#8
          CLR C
          SUBB A,R2 ;判斷高低位;IF C=0 BIT=0
          MOV A,@R0
          RRC A
          MOV @R0,A ;處理完一位
          INC R3
          CJNE R3,#8,LL ;需處理完8 位
          MOV R3,#0
          INC R0
          CJNE R0,#54H,LL ;收集到4 字節(jié)了
          JMP IR_SHOW
          N1: INC R2
          CJNE R2,#30,L1 ;30--0.14ms 計(jì)數(shù)過長則時(shí)間到自動(dòng)離開
          JMP IR_SHOW1

          紅外遙控器相關(guān)文章:紅外遙控器原理

          pwm相關(guān)文章:pwm原理


          蜂鳴器相關(guān)文章:蜂鳴器原理

          上一頁 1 2 下一頁

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();