📄 max1862.asm
字号:
;/* 这是MAX186的汇编程序, 文件名MAX1862.ASM */
;/* 功能:本程序主要是读出MAX186输入通道CH0,CH1,..CH7的模数转换值,*/
;/* 转换值放在内存30H和31H中,30H放高位。MAX186芯片的8个通道 */
;/* 可编程为单极性/双极性和差动/单端工作, 这里采用单端\单极性 */
;/* 输入。MAX186有内部时钟和外部时钟两种工作模式,这里采用内 */
;/* 部时钟模式。MAX186有内带4.096V的参考电压,也可用外部参考 */
;/* 电压,这里采用内带4.096V的参考电压。 */
CS EQU P1.0
SCLK EQU P1.1
DIN EQU P1.3
DOUT EQU P1.2
SSTRB EQU P1.4
ORG 0000H
AJMP MAIN
ORG 0030H
MAIN: MOV SP,#60H
CLR EA
MOV 30H,#00
MOV 31H,#00 ;清转换结果存放字节
MOV A,#08EH ;写控制字节:8EH,第1通道,单极性、单端、内部时钟方式
MOV R1,#8 ;写控制字节:CEH,第2通道,单极性、单端、内部时钟方式
LOOP: CLR CS ;置CS为有效
CLR C
RLC A
MOV DIN,C
CLR SCLK
SETB SCLK
DJNZ R1,LOOP
SETB SCLK
CLR SCLK
;DOG: JNB SSTRB,DOG ;用查询法等待转换完毕
; LCALL DELAY1 ;用延时法等待转换完毕
NOP
MOV R1,#4
MOV R0,#8
LOOP1: SETB SCLK ;读取高4位
CLR SCLK
MOV C,DOUT
MOV A,31H
RLC A
MOV 31H,A
DJNZ R1,LOOP1
LOOP2: SETB SCLK ;读取低8位
CLR SCLK
MOV C,DOUT
MOV A,30H
RLC A
MOV 30H,A
DJNZ R0,LOOP2
SETB CS
LJMP $
RET
DELAY1: MOV A,#1 ;延时1MS
DELAY11: MOV R0,#250
DLP1: NOP
NOP
DJNZ R0,DLP1
DJNZ ACC,DELAY11
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -