DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 549|回复: 0
打印 上一主题 下一主题

[无线] 基于AT89C2051的红外遥控学习器源程序

[复制链接]
跳转到指定楼层
楼主
发表于 2011-4-28 18:55:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
源程序

ORG 0000H
AJMP MAIN
ORG 0003H
AJMP KEYPRESS
ORG 000BH
AJMP TIMEOUT
ORG 001BH
AJMP TIMEOUT
SENDDUAN BIT P3.0
JIEDUAN BIT P3.1
INTRPO BIT P3.2
JIEXUAN BIT P3.3
SENDLIGHT BIT P3.4
JIELIGHT BIT P3.5
CS BIT P3.7
DATADUAN BIT P1.6
CLK BIT P1.7
JIANWEI EQU R5
JIANMA EQU R6
SHANGJIAN EQU 07H;R7
OPENKEY EQU 81H
CLOSEKEY EQU 00H
CHUT0 EQU 11H
CHUT1 EQU 11H
BUFBEGIN EQU 18H
OPENT1 EQU 88H
CLOSET1 EQU 00H
OPENT0 EQU 82H
CLOSET0 EQU 00H
DATABEG1 EQU 0AAH
DATABEG2 EQU 33H
ORG 0030H
MAIN: MOV IE,#80H
MOV IP,#00H
MOV P3,#0FFH
CLR CS
SETB P1.0
SETB P1.1
SETB P1.2
CLR P1.3
CLR P1.4
CLR P1.5
CLR P1.6
CLR P1.7

MOV R3,#80H
MOV R0,00H
CYCLE1: MOV @R0,#00H
INC R0
DJNZ R3,CYCLE1

MOV PSW,#00H
MOV SP,#07H
MOV TMOD,#11H
MOV TCON,#00H
START: MOV SP,#07H
SETB SENDDUAN
CLR F0
SETB EXO
WAITKEY: MOV C,F0
JNC WAITKEY
CJNC JIANMA,#1BH,SEND
LCALL LEARNP
LJMP START
SEND: LCALL SENDP
LJMP START
SENDP: SETB SENDDUAN
CLR F0
MOV TMOD,#CHUT1
CLR SENDLIGHT
MOV A,JIANMA
CJNE A,SHANGJIAN,SAME
SAME: MOV R0,#BUFBEGIN
CLR TR1
LJMP NEXT3
RETURN: CLR ET1
SETB SENDDUAN
SETB SENDLIGHT
CLR F0
LCALL DELAY
RET
NEXT3: CPL F0
JB F0,SEND1
SEND0: CLR C ;1
MOV A,#0FFH
SUBB A,@R0
MOV R2,A ;1
INC R0 ;1
MOV A,#0FFH ;1
SUBB A,@R0 ;1
MOV R3,A
INC R0
CLR C
MOV A,#4FH
ADDC A,R2
MOV R2,A
MOV A,R3
ADDC A,#00H
MOV R3,A
MOV TL1,R2
MOV TH1,R3
SETB TR1 ;1
SETB ET1 ;1
SEND1: CLR C
MOV A,#0FFH
SUBB A,@RO
MOV TL1,A
INC R0
MOV A,#0FFH
SUBB A,@R0
MOV TH1,A
INC R0
SETB TR1
SETB ET1
NEXT6: CLR SENGGUAN
MOV R3,#03H
NEXT4: DJNZ R3,NEXT4
SETB SENDDUAN
MOV R3,#07H
NEXT5: DJNZ R3,#NEXT5
SJMP NEXT6
TIMA1OUT: CLR ET1 ;2
CLR TR1 ;2
SETB SENDDUAN ;1
CJNE@R0,#DATABEG2,TIM1NT2
MOV DPTR,#RETURN ;2
MOV R1,SP ;2
MOV @R1,DPH ;2
DEC R1 ;1
MOV @R1,DPL ;2
RETI ;2
TIM1NET2: DEC R0
TIM1NET1: CPL F0 ;1
JB F0,SEND11 ;2
SEND00: MOV DPTR,#SENDO ;11
MOV R1,SP
MOV @R1,DPH
DEC R1
MOV @R1,DPL
RETI
SEND11: MOV DPTR,#SEND1 ;11
MOV R1,SP
MOV @R1,DPH
DEC R1
MOV @R1,DPL
RETI
LEARNP: MOV R2,#02H
NEXT91: MOV R3,#0FFH
NEXT81: MOV R4,#0FFH
NEXT71: DJNZ R4,NEXT71
DJNZ R3,NEXT81
GJNZ R2,NEXT91
CLR F0
SETB EX0
MOV R2,#0AH
MEXT9: MOV R3,#0FFH
NEXT8: MOV R4,#0FFH
NEXT7: JB F0,NEXT10
DJNZ R4,NEXT7
DJNZ R3,MEXT8
DJNZ R2,NEXT9
CLR EX0
RET
NEXT10: CJNE JIANMA,#1BH,NEXT11
LJMP NEXT111
NEXT11: RET
NEXT111: CLR JIELIGHT
CLR JIEXUAN
CLR F0
MOV R0,#BUFBEGIN
SETB ET0
MOV TCON,#00H
MOV TMOD,#CHUT0
MOV TL0,#00H
MOV TH0,#00H
MOV R2,#02H
NEXT92: MOV R3,#0FFH
NEXT82: MOV R4,#0FFH
NEXT72: DJNZ R4,NEXT72
DJNZ R3,NEXT82
DJNZ R2,NEXT92
CLR TR0
L1: MOV C,JIEDUAN
JC L1
L4: SETB TR0
L2: MOV C,JIEDUAN
CLR TR0
MOV @R0,TL0
INC R0
MOV TH0,#00H
MOV TL0,#00H
L6: SETB TR0
L3: MOV C,JIEDUAN
JC L3
CLR TR0
CLR C
MOV A,TL0
ADDC A,#13H
MOV @R0,A
INC R0
MOV TH0,#00H
MOV TL0,#00H
SETB TR0
L5: MOV C,JIEDUAN
JNC L5
CLR TR0
CLR C ;1
MOV A,TL0 ;1
ADDC A,#13H ;1
MOV @R0,A ;2
INC R0
MOV A,TH0
ADDC A,#00H
MOV @R0,A
INC R0
MOV TH0,#00H
MOV TL0,#00H
SJMP L6
SHUJIAN: SETB JIEXUAN
MOV @R0,#DATABEG1
INC R0
MOV @R0,#DATABEG2
SETB EX0
CLR F0
NEXT13: JB F0,NEXT12
LJMP NEXT13
NEXT12: LCALL WRITEP
SETB JIELIGHT
RET
TIME0OUT CLR ET0
CLR TR0
MOV DPTR,#SHUJIAN
MOV @R1,DPH
DEC R1
MOV @R1,DPL
RETI
KEYPRESS: CLR EX0
MOV R3,#0DH
CYCLE3: MOV R4,#0FFH
CYCLE2: DJNZ R4,CYCLE2
DJNZ R3,CYCLE3
MOV C,INTRPO
JNC NEXT1
RETI
NEXT1: SETB F0
MOV C,P1.0
MOV ACC.0,C
MOV C,P1.1
MOV ACC.1,C
MOV C,P1.2
MOV ACC.2,C
CLR P1.0
CLR P1.1
CLR P1.2
SETB P1.3
SETB P1.4
SETB P1.5
MOV C,P1.3
MOV ACC.3,C
MOV C,P1.4
MOV ACC.4,C
MOV C,P1.5
MOV ACC.5,C
ANL A,300111111B
MOV JIANMA,A
SETB P1.0
SETB P1.1
SETB P1.2
CLR P1.3
CLR P1.4
CLR P1.5
LCALL JIANWEIP
RETI
JIANWEIP: CJNE JIANMA,#36H,NEXT14
MOV JIANWEI,#01H
LJMP LAST
NEXT14: CJNE JIANMA,#35H,NEXT15
MOV JIANWEI,#02H
LJMP LAST
NEXT15: CJNE JIANMA,#35H,NEXT16
MOV JIANWEI,#03H
LJMP LAST
NEXT16: CJNE JIANMA,#2EH,NEXT17
MOV JIANWEI,#04H
LJMP LAST
NEXT17: CJNE JIANMA,#2DH NEXT18
MOV JIANWEI, #05H
LJMP LAST
NEXT18: CJNE JIANMA,#2BH,NEXT19
MOV JIANWEL,#06H
LJMP LAST
NEXT19: CJNE JIANMA,#1EH,NEXT20
MOV JIANWEI,#07H
LJMP LAST
NEXT20: CJNE JIANMA,#1DH,NEXT21
MOV JIANWEL,#09H
LJMP LAST
NEXT21: CJNE JIANMA,#1BH,NEXT22
MOV JIANWEI,#09H
LJMP LAST
NEXT22: CLR FO
LAST: RET
READP: MOV RO,BUFBEGIN
MOV A,JIANWEI
MOV B,50
MUL AB
MOV R3,A
SHU JU DI ZHI
INC R3
LCALL READCOM
READNET2: MOV A,R3
LCALL WRITEADRESS
LCALL READBYTE
CJNE ,#DATABEG1,READNET1
MOV A R3
INC A
LACLL WRITEADRESS
LCALL READBYTE
CJNE A,#DATABEG2,READNET1
CLR CS
RET
READNET1: MOV @RO,A
INC RO
INC R3
LJMP READNET2
WRITEP: MOV RO,BUFBEGIN
MOV A,JIAWEI
MOV B,50
MUL AB
MOV R3,A ;KAI SHI SHU
JU DI ZHI
INC R3
LCALL EWEN
WRITNET1: LACLL WRITECOM
MOV,R3
LCALL WRITEADRESS
MOV A,@RO
CJNE A,#DATABEG1,WRITNET2
INC RO
MOV A,@RO
CJNE A,DATABEG2,WRITNET3
LCALL EWDS
CLR CS
RET
WRITNRT3: DEC RO
WRITNET2: LCALL WRITEBYTE
INC RO
INC R3
LJMP WRITNE1
RET
WRITBYTE: MOV R2,#08H
BOUT1: CLR CLK
RLC A
MOV DATADUAN,C
NOP
SETB CLK
NOPDJNZ R2,BOUT1
CLRDATADUAN
RET
READBYTE: SETB DATAUAN
MOV R2,#08H
BIN1: CLR CLK
NOP
SETB CLK
NOP
MOV C,DATADUAN
RLC A
DJNZ R2,BIN1
RET
READCOM: CLR CS
CLR CLK
SETB DATADUAN
SETB CS
NOP
SETB CLK ;1
NOP
CLR CLK
NOP
SETB CLK ;1
NOP
CLR DATAUAN
CLR CLK
NOP
SETB CLK ;0
RET
WRITECOM: CLR CS
NOP
CLR CLK
SETB DATADUAN
SETB CS
NOP
SETB CLK ;1
NOP
CLR DATADUAN
NOP
CLR CLK
NOP
SETB CLK ;0
NOP
SETB DATADUAN
NOP
CLR CLK
NOP
SETB CLK ;1
RET
WRITEADRESS: MOV R2,#07H
RLC A ;TIAO GUO
DI 7 WEI
BOUT2: CLR CLK
RLC A
MOV DATADUAN,C
NOP
DJNA R2,BOUT2
CLR DATAUAN
RET
EQEN: CLR CS
CLR CLK
SETB DATADUAN
SETB CS
SETB CLK ;1
NOP
CLR CLK
NOP
CLR DATADUAN
SETB CLK ;0
NOP
NOP
CLR CLK
NOP
SETB CLK ;0
NOP
NOP
SETB DATADUAN
CLR CLK
NOP
SETB CLK ;1
NOP
NOP
SETB CLK ;1
NOP
NOP
CLR CLK
NOP
NOP
CLR CS
RET
EWDS: CLR CS
CLR CLK
SETB DATADUAN
SETB CS
SETB CLK ;1
NOP
CLR CLK
NOP
CLR DATADUAN
SETB CLK ;0
NOP
NOP
CLR CLK
NOP
SETB CLK ;0
NOP
NOP
CLR CLK
NOP
NOP
RETB CLK ;0
NOP
NOP
SETB CLK ;0
NOP
NOP
CLR CLK
NOP
NOP
SETB CLK ;0
NOP
NOP
CLR CS
CLR CLK
RET
DELAY: MOV R3,#96H
DEL1: MOV R4,#OFFH
DEL2: DJNZ R4,DEL2
DJNZ R3,#DEL1
RET
END
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-6-12 07:27 , 耗时 0.092778 秒, 19 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表