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

📄 m147b.asm

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