📄 new61.asm
字号:
ORG 0000H
LJMP MAIN
ORG 0013H
LJMP LJBY
ORG 0050H
SCLK EQU P1.2
DATOUT EQU P1.3
DATIN EQU P1.4
DRDY EQU P1.5
RESETP EQU P1.6
MAIN:
LCALL INIT7705 ;AD7705初始化
LCALL INIT_COM ;串口初始化
MOV IE ,#84H ;中断初始化
SJMP $
INIT7705: ;AD7705初始化
CLR RESETP
MOV R7,#15
DJNZ R7,$
SETB RESETP ;复位7705
MOV A,#20H ;选择设置寄存器
LCALL WRITE7705
;MOV A,#0CH ; 50hz ,FCLK=4.9152 ;
MOV A,#0EH ; 0E 250HZ,0F 500hz
LCALL WRITE7705
MOV A,#10H ;选择设置寄存器
LCALL WRITE7705
MOV A,#40H ;自校正模式,增益1,双极模式
LCALL WRITE7705
RET
WRITE7705:
CLR SCLK
MOV R7,#7
W7705_1:
RLC A
MOV DATOUT,C
NOP
SETB SCLK
NOP
NOP ;DUO JIA JI GE NOP!
CLR SCLK
DJNZ R7,W7705_1
RLC A
MOV DATOUT,C
NOP
SETB SCLK
SETB DATOUT
RET
READ7705: ;读AD7705子程序
LJOK: MOV C,DRDY
JC LJOK ;若CY=1则转移到LJOK,查询DRDY
MOV A,#38H ;选择ad7705数据寄存器
LCALL WRITE7705
MOV R7,#8 ;读取高字节,设置读取次数
R7705_1:
NOP
NOP
CLR SCLK
NOP
NOP
SETB SCLK
NOP
MOV C,DATIN
RLC A
DJNZ R7,R7705_1 ;循环读8次
MOV 33H,A ;保存高字节;32H中保存高字节的低四位
ANL 33H,#0FH ;去掉32H的高四位
;MOV 33H,#42H ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
RR A ;右移四位
RR A
RR A
RR A
MOV 34H,A
ANL 34H,#0FH ;保存高字节;32H中保存高字节高四位
;MOV 34H,#42H ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV R7,#8 ;读取低字节
R7705_2:
NOP
NOP
CLR SCLK
NOP
NOP
SETB SCLK
NOP
MOV C,DATIN
RLC A
DJNZ R7,R7705_2
MOV 31H,A
ANL 31H,#0FH ;保存低字节;32H中保存低字节高四位
;MOV 31H,#42H ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
RR A
RR A
RR A
RR A
MOV 32H,A
ANL 32H,#0FH
;MOV 32H,#42H ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
RET
INIT_COM: ;串口初始化子程序
MOV SCON,#50H ;串口方式1,8位有效数据位,无校验
;MOV PCON,#80H ;SMOD=1
MOV TMOD,#20H ;选择定时计数器1,工作方式2,自动装载初值
MOV TH1,# 0FDH ; 0FDH IS 9600[11.0592],0E6H IS 1200 ; 0F9H IS 9600 ;0F3H IS 2400
MOV TL1,# 0FDH ; 00H
SETB TR1
RET
RS232: ;串口通信子程序
MOV 35H,#41H ;A ---- 41h
MOV R0,#35H ;帧头输入 ;数据发送低字节低四位在前-->高字节高四位
MOV R5,#5 ;上位机程序中先判断帧头
LOOP:
MOV A,@R0
MOV SBUF,A
WAIT:
JBC TI,CONT
SJMP WAIT
CONT:
DEC R0
DJNZ R5,LOOP
RET
LJBY: ;中断服务程序
PUSH PSW
PUSH ACC
LCALL READ7705
LCALL RS232
POP ACC
POP PSW
RETI
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -