⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 toint.asm

📁 89c2051 外部中断检测 通过max232与PC通讯 发送数据
💻 ASM
字号:
            START_T EQU 6BH
            ORG 0000H
            LJMP STRT0_TIM
            org 0003h
            CPL P1.7
            LJMP INTORG
            ORG 00BH
            LJMP TO_STRT
            ORG 100H
STRT0_TIM:  MOV SP,#60H
            MOV TMOD,#21H
            MOV TL0,#0CBH
            MOV TH0,#5EH
            MOV 5EH,#08H
            ORL IE,#82H
            SETB EX0
            SETB IT0
            SETB TR0
            mov a,#0FFh
            CPL P1.4
WT_INTX:
 CPL P3.3
 lcall rec
 mov a,040h
 mov p1,a
 SJMP WT_INTX
TO_STRT:    CPL P1.5
 DJNZ   5EH,COMP_T0
            MOV TL0,#0CBH
            MOV TH0,#5EH
            MOV 5EH,#08H
            LJMP TO_GOON2
COMP_T0:    MOV TL0,#22H
            MOV TH0,#11H
            RETI
TO_GOON2:   CPL P1.6

            LCALL SEND

            MOV TL0,#0CBH
            MOV TH0,#5EH
            MOV 5EH,#08H
            SETB TR0
            RETI
send:
MOV SCON,#50H;设置成串口1方式
MOV TMOD,#21H;波特率发生器T1工作在模式2上
MOV PCON,#80H;波特率翻倍为2400x2=4800BPS
MOV TH1,#0FAH;预置初值(按照波特率2400BPS预置初值)F3为2400 FA为4800  FD为9600
MOV TL1,#0FAH;预置初值(按照波特率2400BPS预置初值)
SETB TR1;启动定时器T1
;以上完成通讯初始化设置
MOV A,r0;将16进制的字符AF发送到串口去
MOV SBUF,A;将AF通过串口发送出去
MOV R0,#0FFH
cpl p1.7

RET
INTORG:
  jnb p1.0,pp10
  jnb p1.1,pp11
  jnb p1.2,pp12
  jnb p1.3,pp13
  GOBACK:
  ;CLR A
  ;PUSH ACC
  ;PUSH ACC
  reti
 pp10:mov r0,#00h
  lCALL DELAY10;延时10毫秒消触点抖动
  JNB P1.0,$
  LCALL SEND
  LJMP GOBACK
  pp11:
  mov r0,#01h
  lCALL DELAY10;延时10毫秒消触点抖动
  JNB P1.1,$
  LCALL SEND
  LJMP  GOBACK
  pp12:
  mov r0,#02h
  ACALL DELAY10;延时10毫秒消触点抖动
  JNB P1.2,$
  LCALL SEND
  LJMP GOBACK
  pp13:
  mov r0,#03h
  ACALL DELAY10;延时10毫秒消触点抖动
  SETB TR0
  JNB P1.3,$
  ACALL SEND
  LJMP GOBACK
  ;10毫秒延时子程序
DELAY10:MOV R4,#20
D2:MOV R5,#248
DJNZ R5,$
DJNZ R4,D2
RET

REC:
MOV SCON,#50H;设置成串口1方式
MOV TMOD,#21H;波特率发生器T1工作在模式2上
MOV PCON,#80H;波特率翻倍为2400x2=4800BPS
MOV TH1,#0FAH;预置初值(按照波特率2400BPS预置初值)F3为2400 FA为4800  FD为9600
MOV TL1,#0FAH;预置初值(按照波特率2400BPS预置初值)
SETB TR1;启动定时器T1
;以上完成通讯初始化设置
MOV R0,#40H
MOV R7,#10H
RDS:
SETB REN
WAIT: JBC RI,REND
sjmp wait
REND: mov a,sbuf
MOV @R0,A
INC R0
DJNZ R7,RDS
RET






            end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -