📄 m147b.asm
字号:
;/* 这是被CALL147.C调用的MAX147汇编程序,文件名为M147B.ASM */
;/* 功能:本程序主要是读出输入通道CH0(或CH1,CH2,..CH8)的模数转换值,*/
;/* 转换值放在寄存器R6,R7中,R6放高位。MAX147芯片的8个通道 */
;/* 可编程为单极性/双极性和差动/单端工作, 这里采用单端\单极性 */
;/* 输入。MAX147有内部时钟和外部时钟两种工作模式。这里采用内 */
;/* 部时钟模式 */
NAME MAX147B
?PR?_a_func?MAX147B SEGMENT CODE
?DT?_a_func?MAX147B SEGMENT DATA OVERLAYABLE
?DT?MAX147B SEGMENT DATA
PUBLIC chai
PUBLIC ?_a_func?BYTE
PUBLIC _a_func
RSEG ?DT?_a_func?MAX147B
?_a_func?BYTE:
aa:DS 1
RSEG ?DT?MAX147B
chai:DS 2
RSEG ?PR?_a_func?MAX147B
_a_func:
SI EQU P1.0
SO EQU P1.1
SCK EQU P1.2
CS EQU P1.3
MOV aa,R7 ;R7中放传递进来的字符型参数
MOV A,aa
CLR SCK
CLR CS
;MOV A,#08EH ;08EH-选择CH0,单端,单极性,内部时钟模式
LCALL BYTE_OUT
SETB CS
NOP
NOP
NOP
CLR CS
LCALL BYTE_IN
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 ;R7中放返回转换值低8位
MOV A,R6
ANL A,#0FH
MOV R6,A ;R6中放返回转换值高4位。
RET
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 + -