📄 initial.asm
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -