initial.asm

来自「交流调功器的程序」· 汇编 代码 · 共 37 行

ASM
37
字号
INITIAL:MOV DPTR,#0FDFF     ;取拨码开关的地址
        MOVX A,@DPTR        ;将拨码开关的状态送入A
        PUSH  ACC           ;将状态备份
        ANL  A,#3F
        MOV  ADDR,A         ;将拨码开关的低六位作为本机地址存入地址寄存器
        POP ACC             ;取出备份
        ANL A,#0C0H
        SWAP  A
        RR A
        RR A                ;取出拨码开关的高两位用于波特率的的选择
        MOV TMOD,#21H       ;T0工作在方式1,T2工作在方式2
        MOV PCON,#00H       ;波特率不加倍
        CJNE A,#00H,IN1     ;拨码开关的低两位为00则波特率设为2400
        MOV TL1,#0F4H       ;
        MOV TH1,#0F4H
        SJMP IN4
IN1:    CJNE A,#01H,IN2     ;拨码开关的低两位为01则波特率设为4800
        MOV TL1,#0FAH       ;
        MOV TH1,#0FAH
        SJMP IN4
IN2:    CJNE A,#02H,IN3     ;拨码开关的低两位为10则波特率设为9600
        MOV TL1,#0FDH       ;
        MOV TH1,#0FDH
        SJMP IN4
IN3:    MOV PCON,#80H       ;拨码开关的低两位为11则波特率设为19200
        MOV TL1,#0FDH
        MOV TH1,#0FDH
IN4:    MOV  SCON,#0F0H     ;串口工作在方式3,允许串口接收
        SETB ES             ;开串口中断
        SETB TR1            ;启动T1
        SETB EA             ;开中断
        MOV TL0,#0E0H       ;T0定时20MS初始化
        MOV TH0,#0B1H
        CLR TF0
        RET
;作用:根据拨码开关的状态确定本机地址和485通信的波特率,并完成串口和20MS定时器的初始化

⌨️ 快捷键说明

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