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

📄 ad7705a.asm

📁 单片机C语言教程
💻 ASM
字号:
;/* 这是被CALL7705.C调用的AD7705汇编程序,文件名为AD7705A.ASM      */
;/* 功能:本程序主要是读出AD7705芯片输入通道CH0(或CH1)的模数转换   */
;/*    值,转换值放在寄存器R6,R7中,R6放高位。AD7705芯片的2个通道    */
;/*    可编程为单极性/双极性和差动/单端工作, 这里采用单端\单极性   */
;/*    输入。本例中AD7705连接的晶振为4MHZ,参考电压为5V,选择通道   */
;/*    增益为1,采用自校准方式 。                                  */

   NAME AD7705A
   ?PR?_a_func?AD7705A     SEGMENT CODE
   ?DT?_a_func?AD7705A     SEGMENT DATA OVERLAYABLE
   ?DT?AD7705A             SEGMENT DATA

   PUBLIC   chai
   PUBLIC   ?_a_func?BYTE
   PUBLIC    _a_func
   RSEG  ?DT?_a_func?AD7705A
	 ?_a_func?BYTE:
	 data_addr:DS 2
   RSEG  ?DT?AD7705A
	 chai:     DS 2
   RSEG  ?PR?_a_func?AD7705A
	 _a_func:
DRDY             BIT  P1.3
CS               BIT  P1.4
SO               BIT  P1.5
SCK              BIT  P1.6
SI               BIT  P1.7

     MOV data_addr,R7   ;R6和R7中放传递进来的整型参数
     MOV data_addr+1,R6

     MOV A,data_addr+1 ;AD7705初始化
    ; MOV A,#20H;
     LCALL WRADC
     MOV A,#04H;
     LCALL WRADC
     MOV A,data_addr
    ; MOV A,#10H;
     LCALL WRADC
     MOV A,#44H;#4CH,#54H
     LCALL WRADC
     JB DRDY,$      ;等待DRDY变低
     MOV A,#38H
     LCALL WRADC
     LCALL RDADC
     MOV R7,A       ;R7中放返回转换值低8位
     MOV A,B
     MOV R6,A       ;R6中放返回转换值高8位。
     RET

WRADC:             ;写一个字节子程序
     NOP
     SETB SCK
     CLR CS
     MOV R0,#08H
WRADC1:
     CLR SCK
     RLC A
     MOV SI,C
     SETB SCK
     DJNZ R0,WRADC1
     CLR SI
     SETB CS
     RET
RDADC:            ;读转换数据子程序
     NOP
     JB DRDY,$    ;等待DRDY变低
     CLR CS
     MOV R0,#08H
RDADC1:
     SETB SCK
     CLR SCK
     MOV C,SO
     RLC A
     DJNZ R0,RDADC1
     MOV B,A     ;高字节在寄存器B中
     MOV R0,#08H
RDADC2:
     SETB SCK
     CLR SCK
     MOV C,SO
     RLC A       ;低字节在寄存器A中
     DJNZ R0,RDADC2
     SETB CS
     RET
     END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -