当前位置:首页 > 单片机 > 单片机
[导读]源程序 ORG 0000H AJMP MAIN ORG 0003H AJMP KEYPRESS ORG 000BH AJMP TIMEOUT ORG 001BH AJMP TIMEOUT SEN

源程序
         
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 

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭