📄 3208.txt
字号:
MCP3204/3208 测试程序
0
推荐一段 MCP3208 的51程序 ; Microchip 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 ;通道一控制字送ACC
MOV R0,#30H ;R0指向12位AD转换结果
ACALL READ ;读AD转换值
MOV A,#CHANNEL1 ;通道二控制字送ACC
MOV R0,#32H ;R0指向12位AD转换结果
ACALL READ ;读AD转换值
MOV A,#CHANNEL2 ;通道三控制字送ACC
MOV R0,#34H ;R0指向12位AD转换结果
ACALL READ ;读AD转换值
MOV A,#CHANNEL3 ;通道四控制字送ACC
MOV R0,#36H ;R0指向12位AD转换结果
ACALL READ ;读AD转换值
MOV A,#CHANNEL4 ;通道五控制字送ACC
MOV R0,#38H ;R0指向12位AD转换结果
ACALL READ ;读AD转换值
MOV A,#CHANNEL5 ;通道六控制字送ACC
MOV R0,#3AH ;R0指向12位AD转换结果
ACALL READ ;读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 ; 发送 5 Bits
; 分别为 Start.SGL/DIFF.D2.D1.D0
MOV DIN,C
CLR CLK
SETB CLK
DJNZ R2,READ1
CLR CLK
SETB CLK
CLR CLK
MOV C,DOUT ; 读 Null Bit
JC READER ; 无 Null Bit 转出错
MOV R2,#4
CLR A
READ2: SETB CLK ; 读 4 Bits
; 分别为 B11.B10.B9.B8
CLR CLK
MOV C,DOUT
RLC A
DJNZ R2,READ2
MOV @R0,A ; R0 指向AD转换结果的高4位
INC R0 ; R0+1
MOV R2,#8
READ3: SETB CLK ; 读 8 Bits
; 分别为 B7.B6.B5.B4.B3.B2.B1.B0
CLR CLK
MOV C,DOUT
RLC A
DJNZ R2,READ3
MOV @R0,A ; R0 指向AD转换结果的低8位
SETB CLK
SETB CS
CLR CS
CLR A
RET
READER: CLR A
DEC A
SETB CLK
SETB CS
RET
END
Alin 发表于 2007-12-21 21:18:00 阅读全文(328) | 回复(0) |反映问题 | 引用通告(0) | 编辑
上一篇:普通单片机I/O实现多路低成本A/D方法
下一篇:HT1621的PIC单片机源代码
发表评论:
昵称:
密码: (游客无须输入密码)
主页:
标题:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -