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

📄 mt8888.asm

📁 基于MT8888的电话远程控制器设计代码
💻 ASM
字号:
switch  bit     p3.3           ;提机高电平有效
IRQCP   BIT     p3.2           ;int0
;--------------------------------------------
;发送寄存器,接收寄存器地址:0000H
;控制寄存器、状态寄存器地址:0100H
;CS-----P2.1
;RS0----P2.0
;p1.0--p1.3为输入,p1.4--p1.7为输出
;--------------------------------------------
        org     0000h
        ljmp    start
        org     0100h
 start: clr    switch          ;断开电话线
        mov     dptr,#0100h     ;初始化MT8888
        movx    a,@dptr
        nop
        mov     a,#00h
        movx    @dptr,a         ;写CRA
        movx    @dptr,a         ;写CRA
        mov     a,#08h          ;允许写CRB
        movx    @dptr,a         ;写CRA
        mov     a,#00h
        movx    @dptr,a         ;写CRB
        nop
        movx    a,@dptr
        ;--------------
        mov     sp,#60h
        mov     p1,#0ffh        ;设置p1口为输入口
        nop
main:   lcall   sensor
        mov     r4,#160
        lcall   guaji            ;拨号10秒后挂机
        clr    switch           ;完毕反回
        ljmp    main
;=======================================================
;报警信号检测子程序 total:4 way 判断P1口是否有报警信号
;=======================================================
sensor: jnb     p1.0,sen1
        lcall   sen_del         ;调防误报延时子程序10ms
        jnb     p1.0,sen1
        lcall   yanwu           ;p1.0为‘1’烟雾警
sen1:   jnb     p1.1,sen2
        lcall   sen_del         ;调防误报延时子程序10ms
        jnb     p1.1,sen2
        lcall   fangdao         ;p1.1为‘1’盗警
sen2:   jnb     p1.2,sen3
        lcall   sen_del         ;调防误报延时子程序10ms
        jnb     p1.2,sen3
        lcall   meiqi           ;p1.1为‘1’煤气警
sen3:   jnb     p1.3,senback
        lcall   sen_del         ;调防误报延时子程序10ms
        jnb     p1.3,senback
        lcall   other1
senback:ret
;============================
;防误报延时子程序10ms
;============================
sen_del:mov     r7,#40
sen_dl1:mov     r6,#250
sen_dl0:djnz    r6,sen_dl0
        djnz    r7,sen_dl1
        ret
;============================
;各类报警处理子程序
;============================

yanwu:  lcall   yw30h
        mov     r0,#30h         ;电话号码存储单元起始地址
        mov     r1,#11          ;total11bit
        lcall   dail
        ret

fangdao:nop
        lcall   fd40h
        ret

meiqi:  nop
        lcall   mq50h
        ret

other1: nop
        ret
;===================================
;拨号子程序
;发送寄存器,接收寄存器地址:0000H
;控制寄存器、状态寄存器地址:0100H
;input:r0 电话号码存储单元起始地址
;      r1 电话号码位数
;===================================
dail:   push    acc
        setb     switch          ;接通电话线高电平有效
        mov     r4,#20
        lcall   guaji            ;1秒后拨号
        mov     dptr,#0100h
        mov     a,#0dh          ;写8888 CRA
        movx    @dptr,a
        mov     a,#02h
        movx    @dptr,a         ;写8888 CRB
dailop: mov     dptr,#0000h
        mov     a,@r0
        movx    @dptr,a
        mov     dptr,#0100h
dailop1:movx    a,@dptr         ;读状态寄存器
        jnb     acc.1,dailop1
        ;jb      p3.2,dailop1
        lcall   dal_del
        lcall   dal_del
        ;lcall   dal_del
        inc     r0
        djnz    r1,dailop       ;拨号完毕?

        pop     acc
        ret
;============================
;拨号延时子程序200ms(待用)
;============================
dal_del:mov     R5,#10
dal_dl2:mov     r7,#200
dal_dl1:mov     r6,#100
dal_dl0:djnz    r6,sen_dl0
        djnz    r7,sen_dl1
        djnz    r5,dal_dl2
        ret
;============================
guaji:  nop
gjlop:  lcall   dal_del
        djnz    r4,gjlop
        ret
;============================
;第一个号码
;============================
yw30h:  mov     30h,#1
        mov     31h,#3
        mov     32h,#6
        mov     33h,#5
        mov     34h,#8
        mov     35h,#0ah
        mov     36h,#6
        mov     37h,#4
        mov     38h,#3
        mov     39h,#5
        mov     3ah,#6

        ret
;============================
;第二个号码
;============================
fd40h:  mov     40h,#8
        mov     41h,#9
        mov     42h,#9
        mov     43h,#3
        mov     44h,#2
        mov     45h,#6
        mov     46h,#4
        mov     47h,#5

        ret
;============================
;第三个号码
;============================
mq50h:  mov     50h,#1
        mov     51h,#3
        mov     52h,#6
        mov     53h,#5
        mov     54h,#8
        mov     55h,#0
        mov     56h,#6
        mov     57h,#4
        mov     58h,#3
        mov     59h,#5
        mov     5ah,#6
        ret
        end


⌨️ 快捷键说明

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