?? 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 + -