当前位置:首页 > 单片机 > 单片机
[导读]源程序 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 

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

STM32与51单片机之间有什么差异呢?两者可以说是一场科技与性能的较量了。在科技飞速发展的今天,微控制器(MCU)已广泛应用于各类电子设备和系统中,发挥着举足轻重的作用。其中,STM32和51单片机作为两种常见的微控制...

关键字: STM32 51单片机 MCU

51单片机将是下述内容的主要介绍对象,通过这篇文章,小编希望大家可以对51单片机的相关情况以及信息有所认识和了解,详细内容如下。

关键字: 单片机 51单片机

在嵌入式系统开发中,单片机是不可或缺的重要组成部分。其中,STM32单片机和51单片机是两种常见的单片机芯片。本文将对比分析这两种单片机的区别,并探讨STM32单片机的优势。

关键字: stm32单片 51单片机

51单片机是指由美国INTEL公司生产的一系列单片机的总称,这一系列单片机包括了许多品种,如8031,8051,8751,8032,8052,8752等,其中8051是最早最典型的产品,该系列其它单片机都是在8051的基...

关键字: 51单片机 串行通信

51单片机是一种常见的微控制器,它具有串行通信接口(Serial Communication Interface,SCI)。通过串口通信接口,51单片机可以与其他设备或系统进行串行通信,实现数据传输和控制。

关键字: 51单片机 串口通信

Pic单片机和51单片机是两种应用广泛的微控制器,它们各自具有不同的特点和优势,选择哪种单片机取决于具体应用需求。下面将对Pic单片机和51单片机进行详细的介绍和对比。

关键字: PIC单片机 51单片机 单片机

随着科技的发展,无线遥控开关被广泛的使用,无线遥控开关是采用高科技的射频识别技术设计制作,用无线遥控开关设备控制各类灯饰、家电、门、窗帘等家居用品,是一种新型智能化开关,可对室内灯具、家电等进行无线控制,操作简单方便,性...

关键字: 无线遥控开关 红外遥控

随着电子信息技术的快速发展,串行通信在各种应用中得到了广泛的应用。其中,51单片机作为一种常见的嵌入式系统,具有低功耗、高性能、易于编程等特点,常用于各种自动化控制、数据采集等系统中。而PC机具有强大的数据处理能力和丰富...

关键字: 51单片机 PC机 串行通信

51 单片机内部有一个全双工串行接口。什么叫全双工串口呢?一般来说,只能接受或只能发送的称为单工串行;既可接收又可发送,但不能同时进行的称为半双工;能同时接收和发送的串行口称为全双工串行口。

关键字: 51单片机 串口通信 半双工

步进电机是一种无刷电机,可将电脉冲转换为机械旋转。顾名思义,它根据输入脉冲逐步旋转,是现代数字程序控制系统中的主要执行元件。

关键字: 51单片机 步进电机 无刷电机
关闭
关闭