2024年11月6日发(作者:圭语诗)
MCP3204/3208 测试程序
CS EQU P1.0 ; MCP3204/3208 CS脚
DIN EQU P1.1 ; MCP3204/3208 DIN脚
DOUT EQU P1.2 ; MCP3204/3208 DOUT脚
CLK EQU P1.3 ; MCP3204/3208 CLK脚
CHANNEL0 EQU 0C0H ; MCP3204/3208 第一个通道控制字
CHANNEL1 EQU 0C8H ; MCP3204/3208 第二个通道控制字
CHANNEL2 EQU 0D0H ; MCP3204/3208
CHANNEL3 EQU 0D8H ; MCP3204/3208
CHANNEL4 EQU 0E0H ; MCP3208
CHANNEL5 EQU 0E8H ; MCP3208
CHANNEL6 EQU 0F0H ; MCP3208
CHANNEL7 EQU 0F8H ; MCP3208
ORG 0000H
AJMP INIT
ORG 0100H
INIT: MOV A,#CHANNEL0 ;
MOV R0,#30H ;R0
ACALL READ ;
MOV A,#CHANNEL1 ;
MOV R0,#32H ;R0
ACALL READ ;
MOV A,#CHANNEL2 ;
MOV R0,#34H ;R0
ACALL READ ;
MOV A,#CHANNEL3 ;
MOV R0,#36H ;R0
ACALL READ ;
MOV A,#CHANNEL4 ;
MOV R0,#38H ;R0
ACALL READ ;
MOV A,#CHANNEL5 ;
MOV R0,#3AH ;R0
ACALL READ ;
第三个通道控制字
第四个通道控制字
第五个通道控制字
第六个通道控制字
第七个通道控制字
第八个通道控制字
通道一控制字送ACC
指向12位AD转换结果
读AD转换值
通道二控制字送ACC
指向12位AD转换结果
读AD转换值
通道三控制字送ACC
指向12位AD转换结果
读AD转换值
通道四控制字送ACC
指向12位AD转换结果
读AD转换值
通道五控制字送ACC
指向12位AD转换结果
读AD转换值
通道六控制字送ACC
指向12位AD转换结果
读AD转换值
MOV A,#CHANNEL6 ;通道七控制字送ACC
MOV R0,#3CH ;R0指向12位AD转换结果
ACALL READ ;读AD转换值
MOV A,#CHANNEL7 ;通道八控制字送ACC
MOV R0,#3EH ;R0指向12位AD转换结果
ACALL READ ;读AD转换值
SJMP $
READ: MOV R2,#5
SETB CS
CLR CS
READ1: RLC A ;
;
MOV DIN,C
CLR CLK
SETB CLK
DJNZ R2,READ1
CLR CLK
SETB CLK
CLR CLK
MOV C,DOUT ;
JC READER ;
MOV R2,#4
CLR A
READ2: SETB CLK ;
;
CLR CLK
MOV C,DOUT
RLC A
DJNZ R2,READ2
MOV @R0,A ; R0
INC R0 ; R0+1
MOV R2,#8
READ3: SETB CLK ;
;
CLR CLK
MOV C,DOUT
RLC A
DJNZ R2,READ3
MOV @R0,A ; R0
发送 5 Bits
分别为 /DIFF.D2.D1.D0
;上升沿输入
读 Null Bit
无 Null Bit 转出错
读 4 Bits
分别为 B11.B10.B9.B8
;下降沿输出
指向AD转换结果的高4位
读 8 Bits
分别为 B7.B6.B5.B4.B3.B2.B1.B0
指向AD转换结果的低8位
SETB CLK
SETB CS
CLR CS
CLR A
RET
READER: CLR A
DEC A
SETB CLK
SETB CS
RET
END
2024年11月6日发(作者:圭语诗)
MCP3204/3208 测试程序
CS EQU P1.0 ; MCP3204/3208 CS脚
DIN EQU P1.1 ; MCP3204/3208 DIN脚
DOUT EQU P1.2 ; MCP3204/3208 DOUT脚
CLK EQU P1.3 ; MCP3204/3208 CLK脚
CHANNEL0 EQU 0C0H ; MCP3204/3208 第一个通道控制字
CHANNEL1 EQU 0C8H ; MCP3204/3208 第二个通道控制字
CHANNEL2 EQU 0D0H ; MCP3204/3208
CHANNEL3 EQU 0D8H ; MCP3204/3208
CHANNEL4 EQU 0E0H ; MCP3208
CHANNEL5 EQU 0E8H ; MCP3208
CHANNEL6 EQU 0F0H ; MCP3208
CHANNEL7 EQU 0F8H ; MCP3208
ORG 0000H
AJMP INIT
ORG 0100H
INIT: MOV A,#CHANNEL0 ;
MOV R0,#30H ;R0
ACALL READ ;
MOV A,#CHANNEL1 ;
MOV R0,#32H ;R0
ACALL READ ;
MOV A,#CHANNEL2 ;
MOV R0,#34H ;R0
ACALL READ ;
MOV A,#CHANNEL3 ;
MOV R0,#36H ;R0
ACALL READ ;
MOV A,#CHANNEL4 ;
MOV R0,#38H ;R0
ACALL READ ;
MOV A,#CHANNEL5 ;
MOV R0,#3AH ;R0
ACALL READ ;
第三个通道控制字
第四个通道控制字
第五个通道控制字
第六个通道控制字
第七个通道控制字
第八个通道控制字
通道一控制字送ACC
指向12位AD转换结果
读AD转换值
通道二控制字送ACC
指向12位AD转换结果
读AD转换值
通道三控制字送ACC
指向12位AD转换结果
读AD转换值
通道四控制字送ACC
指向12位AD转换结果
读AD转换值
通道五控制字送ACC
指向12位AD转换结果
读AD转换值
通道六控制字送ACC
指向12位AD转换结果
读AD转换值
MOV A,#CHANNEL6 ;通道七控制字送ACC
MOV R0,#3CH ;R0指向12位AD转换结果
ACALL READ ;读AD转换值
MOV A,#CHANNEL7 ;通道八控制字送ACC
MOV R0,#3EH ;R0指向12位AD转换结果
ACALL READ ;读AD转换值
SJMP $
READ: MOV R2,#5
SETB CS
CLR CS
READ1: RLC A ;
;
MOV DIN,C
CLR CLK
SETB CLK
DJNZ R2,READ1
CLR CLK
SETB CLK
CLR CLK
MOV C,DOUT ;
JC READER ;
MOV R2,#4
CLR A
READ2: SETB CLK ;
;
CLR CLK
MOV C,DOUT
RLC A
DJNZ R2,READ2
MOV @R0,A ; R0
INC R0 ; R0+1
MOV R2,#8
READ3: SETB CLK ;
;
CLR CLK
MOV C,DOUT
RLC A
DJNZ R2,READ3
MOV @R0,A ; R0
发送 5 Bits
分别为 /DIFF.D2.D1.D0
;上升沿输入
读 Null Bit
无 Null Bit 转出错
读 4 Bits
分别为 B11.B10.B9.B8
;下降沿输出
指向AD转换结果的高4位
读 8 Bits
分别为 B7.B6.B5.B4.B3.B2.B1.B0
指向AD转换结果的低8位
SETB CLK
SETB CS
CLR CS
CLR A
RET
READER: CLR A
DEC A
SETB CLK
SETB CS
RET
END