📄 m147.asm
字号:
;/* 这是MAX147的汇编程序, 文件名M147.ASM */
;/* 功能:本程序主要是读出输入通道CH0(或CH1,CH2,..CH8)的模数转换值,*/
;/* 转换值放在寄存器R6,R7中,R6放高位。MAX147芯片的8个通道 */
;/* 可编程为单极性/双极性和差动/单端工作, 这里采用单端\单极性 */
;/* 输入。MAX147有内部时钟和外部时钟两种工作模式,这里采用内 */
;/* 部时钟模式 */
SI EQU P1.0
SO EQU P1.1
SCK EQU P1.2
CS EQU P1.3
ORG 0000H
CLR EA
CLR SCK
CLR CS
MOV A,#08EH ;08EH-选择CH0,单端,单极性,内部时钟模式
LCALL BYTE_OUT ;0CEH-选择CH1,单端,单极性,内部时钟模式
SETB CS ;09EH-选择CH2,单端,单极性,内部时钟模式
NOP ;0DEH-选择CH3,单端,单极性,内部时钟模式
NOP ;0AEH-选择CH4,单端,单极性,内部时钟模式
NOP ;0EEH-选择CH5,单端,单极性,内部时钟模式
CLR CS ;0BEH-选择CH6,单端,单极性,内部时钟模式
LCALL BYTE_IN ;0FEH-选择CH7,单端,单极性,内部时钟模式
MOV R6,A
LCALL BYTE_IN
MOV R7,A
SETB CS
CLR C
MOV A,R6
RRC A
MOV R6,A
MOV A,R7
RRC A
MOV R7,A
CLR C
MOV A,R6
RRC A
MOV R6,A
MOV A,R7
RRC A
MOV R7,A
CLR C
MOV A,R6
RRC A
MOV R6,A
MOV A,R7
RRC A
MOV R7,A
MOV A,R6
ANL A,#0FH
MOV R6,A
LJMP $
BYTE_OUT: MOV R0,#08H ;发送单个字节到芯片串口
BOUT1: CLR SCK
RLC A
MOV SI,C
SETB SCK
DJNZ R0,BOUT1
CLR SI
RET
BYTE_IN: MOV R0,#08H ;从芯片串口取出单个字节
BIN1: SETB SCK
CLR SCK
MOV C,SO
RLC A
DJNZ R0,BIN1
CLR SCK
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -