📄 调试成功程序1102.txt
字号:
//二次成功程序,11.02
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 ;250HZ
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
MOV A,#38H ;选择数据寄存器
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
MOV 30H,A ;保存高字节
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
RET
INIT_COM: ;串口初始化子程序
MOV SCON,#50H ;串口方式1,8位有效数据位,无校验
;MOV PCON,#80H ;SMOD=1
MOV TMOD,#20H ;选择定时计数器1,工作方式2,自动装载初值
MOV TH1,# 0F3H; 0FDH IS 192000,0E6H IS 1200 ; 0F9H IS 9600 ;0F3H IS 2400
MOV TL1,# 0F3H; 00H
SETB TR1
RET
RS232: ;串口通信子程序
MOV R0,#30H
MOV R5,#2
LOOP:
MOV A,@R0
MOV SBUF,A
WAIT:
JBC TI,CONT
SJMP WAIT
CONT:
INC 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 + -