📄 ad7705.asm
字号:
SCLK BIT P1 .5
DATAP BIT P1 .6
DRDYP BIT P1 .7
DCLK BIT P1.0
DIN BIT P1.1
LOAD BIT P1.2
DOUT BIT P1.3
TIMER1 DATA 3AH
TIMER2 DATA 39H
TIMER3 DATA 38H
;一一一一一一一Init7705一一一一一一一
;初始化7705
ININ_7705:
MOV A, # 20H; 选择时钟寄存器
LCALL Write7705
MOV A, # 0CH; 50Hz的转换频率
LCALL Write7705
MOV A,#10H ; 选择设置寄存器
LCALL Write7705
MOV A, # 44H; 自校准模式,增益为1
LCALL Write7705
RET
;一一一一一一一一一一Init7705一一一一一一一_
;一一一一一一一一一一Write7705一一一一一一一
;输出一个字节到7705
Write7705:
CLR SCLK
MOV R7,#7
W7705_ 1:
MOV C,ACC .7
MOV DATAP,C
RL A
NOP
SETB SCLK
NOP
NOP
CLR SCLK
DJNZ R7, W7705_ 1
MOV C,ACC .7
MOV DATAP, C
RL A
NOP
SETB SCLK
SETB DATAP
RET
;一一一一一一一一Write7705一一一一一一__
;一一一一一一一一Read7705一一一一一一__
;读7705的转换结果
Read7705:
PUSH PSW
PUSH 7
MOV A , # 38H;选择数据寄存器
LCALL Write7705
MOV R7, # 8;读取高位字节
R7705_ 1:
NOP
NOP
CLR SCLK
NOP
NOP
SETB SCLK
NOP
MOV C,DATAP
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,DATAP
RLC A
DJNZ R7, R7705_2
MOV 31H,A ;保存低位字节
POP 7
POP PSW
RET
;-------------Read7705---------
;-------------ExtInt 1-----------
;外部中断1的中断例程。当AD7705的AD转换结
束后便会发生中断。
Extlnt 1:
PUSH ACC
LCALL Read7705
POP ACC
RET;---------------FxtTnt 1----------------
;延时子程序
;**********************************************
DELAY2:MOV R5,#01H
H0: MOV R7,#0FFH
H1: DJNZ R7,H1
DJNZ R5,H0
RET
;*********************************************************
; 初始化CH451子程序
;*********************************************************
INIT_451:
MOV SP,#60H
CLR DIN ;先低后高,输出上升沿通知CH451选择4线串行接口
NOP
SETB DCLK ;置为默认的高电平
SETB DIN
SETB LOAD
SETB DOUT
RET
;***********************************
;数码管显示程序
;***********************************
START:
MOV B,#04H ;设置CH451
MOV A,#07H ;关看门狗开显示键盘
NOP
LCALL WRITE
MOV B,#05H;设置显示参数
MOV A,#080H;BCD译码
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -