ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:17.02KB ,
资源ID:13119600      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-13119600.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(PWM控制LED台灯程序带红外遥控.docx)为本站会员(b****8)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

PWM控制LED台灯程序带红外遥控.docx

1、PWM控制LED台灯程序带红外遥控PWM控制LED台灯程序带红外遥控 ;/* ;* 标题: LED台灯程序*;* 文件: LED台灯PWM控制带红外遥控.asm *;* 日期: 2008-12-18 *;* 版本: 1.0*;* 作者: *;*; LED台灯程序带有红外遥控功能*; 利用定时器控制产生占空比可变的PWM 波*; 按K1,PWM 值增加,则占空比减小,LED 灯渐暗。*; 按K2,PWM 值减小,则占空比增加,LED 灯渐亮。*; 我的5644遥控器上的09数字键对应10个亮度等级。*; 当PWM 值增加到最大值或减小到最小值时,蜂鸣器将报警*; 资源:p1 口,数码管。p3.4

2、,p3.5 亮度控制按键P3.0 PWM端口,p3.1 蜂鸣器报警*;*LEVEL0EQU2FH;亮度等级9LEVEL1EQU4FH;亮度等级8LEVEL2EQU6FH;亮度等级7LEVEL3EQU8FH;亮度等级6LEVEL4EQU0AFH;亮度等级5LEVEL5EQU0BFH;亮度等级4LEVEL6EQU0CFH;亮度等级3LEVEL7EQU0DFH;亮度等级2LEVEL8EQU0EFH;亮度等级1LEVEL9EQU0FFH;亮度等级0 PWM EQU 7FH ;PWM 赋初始值 LED_RAMEQU30H IRCOM EQU 50H;50H-53H IR 使用IR_NEWEQU 60H;

3、新的遥控代码值用 LED_PORTEQUP1 ;数码管接口,共阴极 PWM_OUT EQU P3.0 ;PWM控制输出接口INCKEY EQU P3.5 ;K1,PWM 值增加键。 DECKEY EQU P3.4 ;K2,PWM 值减小键。 BEEP EQU P3.1 ;蜂鸣器 IRIN EQU P3.2 ; ORG 0000HSJMP STARTORG 0003HLJMP REMOT;IRFORG 000BHSJMP INTT0ORG 001BHSJMP INTT1ORG 0030H;主程序;定时器0 工作在模式1,定时器1 工作在模式2。; START: MOV SP,#30HMOV TM

4、OD,#21HMOV IP,#00001010BMOV TH1,PWM ;脉宽调节MOV TL1,#00HMOV TH0,#0FEH ;1ms 延时常数0FCMOV TL0,#0CH ;频率调节066 SETB EA ;开总中断 SETB ET0 ;定时器0允许SETB ET1 ;定时器1允许SETB TR0 ;定时器0启动SETB EX0;外中断0打开SETB IT0 ;外中断0采用脉冲方式 ; LOOP:LCALL DISPLAYMOV A,PWM ;JB INCKEY,LOOP1 ;增加键是否按下?CALL DELAY ;延时去抖动JB INCKEY,LOOP1CJNE A,#0FFH,

5、PWMINC ;是否到最大值?CALL BEEP_BL ;是,蜂鸣器报警。SJMP LOOP PWMINC: INC PWM ;调节脉宽(脉宽减小) SJMP LOOP LOOP1: JB DECKEY,LOOP2 ;减小键是否按下? CALL DELAY ;延时去抖动JB DECKEY,LOOP2CJNE A,#01H,PWMDEC ;是否到最小值?CALL BEEP_BL ;是,蜂鸣器报警。SJMP LOOP PWMDEC: DEC PWM ;调节脉宽(脉宽增加) LOOP2: SJMP LOOP ; ;T0 中断服务子程序(频率);控制定时器1 中断;INTT0:CLR TR1MOV T

6、H0,#0FEH ;1ms 延时常数MOV TL0,#0CH ;频率调节MOV TH1,PWMSETB TR1CLR PWM_OUT ;启动输出RETI ; ;T1 中断服务子程序(脉宽);控制PWM 脉冲宽度;INTT1:CLR TR1 ;脉宽调节结束SETB PWM_OUT ;结束输出RETI ; ;*有接收到遥控器信号*REMOT:CLR EAPUSH ACCPUSH PSWSETB PSW.3;选择工作寄存器组1(SETB PSW.3)CLR PSW.4; (CLR PSW.4) MOV R0,#IRCOMI1: JNB IRIN,I2 ;等待IR 信号出现JMP IR_SHOW1;I

7、1;原值I1I2: MOV R4,#20I20: CALL DELDJNZ R4,I20JB IRIN,IR_SHOW1;I1 ;确认IR 信号出现I21: JB IRIN,I3 ;等IR 变为高电平CALL DELJMP I21I3: MOV R3,#0 ;8 位数清为0LL:JNB IRIN,I4 ;等IR 变为低电平CALL DELJMP LLI4: JB IRIN,I5 ;等IR 变为高电平CALL DELJMP I4I5: MOV R2,#0 ;0.14ms 计数L1: CALL DELJB IRIN, N1 ;等IR 变为高电平;IR=0,检查R2 中的计数值MOV A,#8CLR

8、 CSUBB A,R2 ;判断高低位;IF C=0 BIT=0MOV A,R0RRC AMOV R0,A ;处理完一位INC R3CJNE R3,#8,LL ;需处理完8 位MOV R3,#0INC R0CJNE R0,#54H,LL ;收集到4 字节了JMP IR_SHOWN1: INC R2CJNE R2,#30,L1 ;30-0.14ms 计数过长则时间到自动离开JMP IR_SHOW1;-IR_SHOW: ;使用我的5644遥控器。 MOV A,50H ; XRL A,#40H ;判断遥控器低8位地址是否正确(40H) JNZ IR_SHOW1 ; MOV A,51HXRL A,#3F

9、H ;再判断遥控器高8位地址是否正确(3FH) JNZ IR_SHOW1MOV A,52HCPL A ; 将52H 取反后和53H 比较 CJNE A,53H,IR_SHOW1 ;如果不等表示接收数据发生错误,放弃。CALL D1;解码成功则调用相应按键的处理程序+;MOV A,IR_NEW;CJNE A,#0FFH,IR_PWM;不是数字键则退出;JMP IR_SHOW1IR_PWM:MOV DPTR,#IR_ASCMOV A,IR_NEWMOVC A,A+DPTRMOV PWM,AIR_SHOW1:POP PSWPOP ACCSETB IRINSETB EARETI D1:MOV A,52

10、H CJNE A,#01H,D2 ;是数字键1吗?MOV IR_NEW,#01H;是则送数据01HCALL BEEP_BL ;蜂鸣器报警。RET D2:CJNE A,#02H,D3 ;是数字键2吗? MOV IR_NEW,#02H;是则送数据02HCALL BEEP_BL ;蜂鸣器报警。RET D3:CJNE A,#03H,D4 ;是数字键3吗? MOV IR_NEW,#03H;是则送数据03HCALL BEEP_BL ;蜂鸣器报警。RET D4:CJNE A,#04H,D5 ;是数字键4吗? MOV IR_NEW,#04H;是则送数据04HCALL BEEP_BL ;蜂鸣器报警。RET D5

11、:CJNE A,#05H,D6 ;是数字键5吗? MOV IR_NEW,#05H;是则送数据05HCALL BEEP_BL ;蜂鸣器报警。RET D6:CJNE A,#06H,D7 ;是数字键6吗? MOV IR_NEW,#06H;是则送数据06HCALL BEEP_BL ;蜂鸣器报警。RET D7:CJNE A,#07H,D8 ;是数字键7吗? MOV IR_NEW,#07H;是则送数据07HCALL BEEP_BL ;蜂鸣器报警。RET D8:CJNE A,#08H,D9 ;是数字键8吗? MOV IR_NEW,#08H;是则送数据08HCALL BEEP_BL ;蜂鸣器报警。RET D9

12、:CJNE A,#09H,D0 ;是数字键9吗? MOV IR_NEW,#09H;是则送数据09HCALL BEEP_BL ;蜂鸣器报警。RET D0:CJNE A,#00H,D15;是数字键0吗? MOV IR_NEW,#00H;是则送数据00HCALL BEEP_BL ;蜂鸣器报警。RET D13:CJNE A,#11H,D14;是音量加键吗?实现速度加 MOV IR_NEW,#0FFH;非数字键标示为0FFHINC PWMMOV A,PWMCJNE A,#00H,D13_OUTCALL BEEP_BL ;蜂鸣器报警。MOV PWM,#0FFHD13_OUT:RET D14:CJNE A,

13、#10H,D15;是音量减键吗?实现速度减 MOV IR_NEW,#0FFH;非数字键标示为0FFHDEC PWMMOV A,PWMCJNE A,#0FFH,D14_OUT;9CALL BEEP_BL ;蜂鸣器报警。MOV PWM,#01HD14_OUT:RETD15:;MOV IR_NEW,#0FFH;非数字键标示为0FFHRET;*;判断显示程序;-DISPLAY:DIS0:MOV A,PWMSUBB A,#LEVEL0JNC DIS1MOV LED_RAM,#9JMP LED_DISPDIS1:MOV A,PWMSUBB A,#LEVEL1JNC DIS2MOV LED_RAM,#8JM

14、P LED_DISPDIS2:MOV A,PWMSUBB A,#LEVEL2JNC DIS3MOV LED_RAM,#7JMP LED_DISPDIS3:MOV A,PWMSUBB A,#LEVEL3JNC DIS4MOV LED_RAM,#6JMP LED_DISPDIS4:MOV A,PWMSUBB A,#LEVEL4JNC DIS5MOV LED_RAM,#5JMP LED_DISPDIS5:MOV A,PWMSUBB A,#LEVEL5JNC DIS6MOV LED_RAM,#4JMP LED_DISPDIS6:MOV A,PWMSUBB A,#LEVEL6JNC DIS7MOV LE

15、D_RAM,#3JMP LED_DISPDIS7:MOV A,PWMSUBB A,#LEVEL7JNC DIS8MOV LED_RAM,#2JMP LED_DISPDIS8:MOV A,PWMSUBB A,#LEVEL8JNC DIS9MOV LED_RAM,#1JMP LED_DISP DIS9: MOV A,PWMSUBB A,#LEVEL9JNC LED_DISPMOV LED_RAM,#0 LED_DISP: MOV DPTR,#LED_ASCMOV A,LED_RAMMOVC A,A+DPTRMOV LED_PORT,ARET LED_ASC:;共阴极LED代码 DB 3FH,06H

16、,5BH,4FH,66H;0F代码DB 6DH,7DH,07H,7FH,6FHDB 77H,7CH,39H,5EH,79HDB 71HDB 0BFH,086H,0DBH,0CFH,0E6H;0.9.(带小数点)代码DB 0EDH,0FDH,087H,0FFH,0EFHDB 039H;字符“C”*IR_ASC:DB 0FAH,0EAH,0DAH,0CAH,0BAHDB 0A0H, 80H, 60H, 40H, 02H ;- ; DELAY R5*0.14MS DEL:MOV R5,#1 ;IR 解码使用DEL0: MOV R6,#2DEL1: MOV R7,#32DEL2

17、: DJNZ R7,DEL2 DJNZ R6,DEL1 DJNZ R5,DEL0 RET ; ;10ms 延时子程序,按键去抖动用DELAY:MOV R5,#50DELAY1:MOV R6,#100DJNZ R6,$DJNZ R5,DELAY1RET;-;蜂鸣器响一声子程序BEEP_BL:MOV R6,#100BL1:CALL BL2CPL BEEPDJNZ R6,BL1MOV R5,#25CALL DELAY2RETBL2:MOV R7,#180BL3:NOPDJNZ R7,BL3RETDELAY2: MOV R6,#50;延时R5×10MSBL4: MOV R7,#100BL5: DJNZ R7,BL5 DJNZ R6,BL4 DJNZ R5,DELAY2 RET ;-END

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2