noname1.asm

来自「使用AT89C51模拟SPI接口驱动ADS7835进行AD转换」· 汇编 代码 · 共 277 行

ASM
277
字号
org 0000h
ajmp main
 org 0030h
C1 bit p1.0
D1 bit p1.1
C2 bit p1.2
D2 bit p1.3
C3 bit p1.4
D3 bit p1.5
clk bit p1.7
main:
clr p1.6
mov TMOD,#20H
mov TL1,#0fdH
mov TH1,#0Fdh
;setb p1.5
;mov PCON,#80H
mov SCON,#40H
setb C1 
setb C2
setb C3
loop:
mov r0,#20H
mov r1,#06
;setb es
;setb ea
;clr p1.5
clr clk
clr A
clr C
clr C1   ;AD转换1开始读数
nop
nop
setb clk ;第一个周期不做操作
nop
nop
clr clk
nop
setb clk
nop
nop
clr clk
mov C,D1 ;读入MSB(D11)位
setb clk
rlc A
nop
clr clk
mov C,D1 ;读入D10位
setb clk
rlc A
nop
clr clk
mov C,D1 ;读入D9位
setb clk
rlc A
nop
clr clk
mov C,D1 ;读入D8位
setb clk
rlc A
anl A,#0FH
clr clk
mov C,D1 ;读入D7位
setb clk
rlc A
orl A,#00H
clr clk
mov C,D1 ;读入D6位
setb clk
rlc A
mov 20H,A
clr clk
mov C,D1 ;读入D5位
setb clk
rlc A
nop
clr clk
mov C,D1 ;读入D4位
setb clk
rlc A
nop
clr clk
mov C,D1 ;读入D3位
setb clk
rlc A
nop
clr clk
mov C,D1 ;读入D2位
setb clk
rlc A
anl A,#0FH
clr clk
mov C,D1 ;读入D1位
setb clk
rlc A
orl A,#00H
clr clk
mov C,D1 ;读入D0位
setb clk
rlc A
nop
clr clk
setb C1  ;AD转换1完成读数,启动下一次转换
setb clk
mov 21H,A
clr A
clr clk
clr C2   ;AD转换2开始读数
setb clk ;第一个周期不做操作
nop
nop
clr clk
nop
setb clk
nop
nop
clr clk
mov C,D2 ;读入MSB(D11)位
setb clk
rlc A
nop
clr clk
mov C,D2 ;读入D10位
setb clk
rlc A
SETB C1
clr clk
mov C,D2 ;读入D9位
setb clk
rlc A
nop
clr clk
mov C,D2 ;读入D8位
setb clk
rlc A
anl A,#0FH
clr clk
mov C,D2 ;读入D7位
setb clk
rlc A
orl A,#20H
clr clk
mov C,D2 ;读入D6位
setb clk
rlc A
mov 22H,A
clr clk
mov C,D2 ;读入D5位
setb clk
rlc A
nop
clr clk
mov C,D2 ;读入D4位
setb clk
rlc A
nop
clr clk
mov C,D2 ;读入D3位
setb clk
rlc A
nop
clr clk
mov C,D2 ;读入D2位
setb clk
rlc A
anl A,#0FH
clr clk
mov C,D2 ;读入D1位
setb clk
rlc A
orl A,#20H
clr clk
mov C,D2 ;读入D0位
setb clk
rlc A
setb p1.5
clr clk
setb C2  ;AD转换2完成读数,启动下一次转换
setb clk
mov 23H,A
clr A  
clr clk
clr C3   ;AD转换3开始读数
setb clk ;第一个周期不做操作
nop
nop
clr clk
nop
setb clk
nop
nop
clr clk
mov C,D3 ;读入MLB(D11)位
setb clk
rlc A
nop
clr clk
mov C,D3 ;读入D10位
setb clk
rlc A
nop
clr clk
mov C,D3 ;读入D9位
setb clk
rlc A
nop
clr clk
mov C,D3 ;读入D8位
setb clk
rlc A
anl A,#0FH
clr clk
mov C,D3 ;读入D7位
setb clk
rlc A
orl A,#40H
clr clk
mov C,D3 ;读入D6位
setb clk
rlc A
mov 24H,A
clr clk
mov C,D3 ;读入D5位
setb clk
rlc A
nop
clr clk
mov C,D3 ;读入D4位
setb clk
rlc A
nop
clr clk
mov C,D3 ;读入D3位
setb clk
rlc A
nop
clr clk
mov C,D3 ;读入D2位
setb clk
rlc A
anl A,#0FH
clr clk
mov C,D3 ;读入D1位
setb clk
rlc A
orl A,#40H
clr clk
mov C,D3 ;读入D0位
setb clk
rlc A
nop
clr clk
setb C3  ;完成AD转换3读数,启动下一次转换
mov 25H,A
setb tr1
send:
mov A,@r0
mov sbuf,A
jnb TI,$     
clr TI
inc r0
djnz r1,send
;clr es
;clr ea
ajmp loop



;ret

end


 


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?