⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 max1862.asm

📁 单片机C语言教程
💻 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 + -