📄 mcuad.asm
字号:
ORG 0000H
LJMP Start
ORG 000BH
LJMP T0INT
ORG 0100H
Start: MOV SP,#80H
MOV IE,#82H ;允许T0中断
MOV IP,#02H
MOV SCON,#0C0H ;串行口工作在模式3
MOV T2CON,#34H ;将T2设为波特率发生器
MOV RCAP2H,#0FFH ;设定波特率为172.8kbit/s
MOV RCAP2L,#0FEH
MOV TH2,#0FFH
MOV TL2,#0FEH ;启动T2计数
MOV TMOD,#01H ;T0作为定时器,工作在模式1
MOV TH0,#0FDH ;定时时间为625?s
MOV TL0,#0C0H
SETB TR0 ;启动定时器
MOV DPTR,#7E00H ;指向A/D端口
WAIT: SJMP WAIT ;等待定时时间到
T0INT: CPL P1.1
MOV TH0,#0FDH ;定时625?s
MOV TL0,#0C0H
CLR P1.1 ;指向A/D转化结果的低8位
MOV A,#5BH ;控制字送MAX197
MOVX @DPTR,A
MOV R2,#05H ;等待A/D转化完毕
DJNZ R2,$
MOVX A,@DPTR ;读入A/D转化结果的低8位
SETB P1.1 ;指向A/D转化结果的高4位
MOV 30H,A ;存入A/D转化结果的低8位
MOVX A,@DPTR ;存入A/D转化结果的高4位
CPL ACC.3 ;符号处理
MOV 31H,A ;存入A/D转换结果的高4位
MOV 2FH,#0EFH ;串行通信起始标志
MOV R0,#2FH ;发送采集数据
MOV R3,#03H
LP: MOV SBUF,@R0
JNB TI,$ ;等待发送完毕
CLR TI
INC R0
DJNZ R3,LP ;没有发送完毕,则继续发送
RETI
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -