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

📄 max517a2.asm

📁 单片机C语言教程
💻 ASM
字号:
;/* 这是MAX517汇编程序,文件名为MAX517A2.ASM                   */
;/* 功能:本程序是实现MAX517芯片的D/A转换。程序中转换的十六    */
;/*   进制值依次为10H,20H,40H,80H,0FFH,00H, OUT脚输出转换后    */
;/*   的模拟信号,它既可用万用表的直流电压档测试,也可用示波器 */
;/*   的探头点在此处观察。                                     */

SDA   BIT P1.0
SCL   BIT P1.1

     ORG 0000H
     AJMP MAIN
     ORG 0013H
MAIN:             ;主程序
     LCALL DELAY
     MOV R0,#10H;
     LCALL DACOUT
     LCALL DELAY
     MOV R0,#20H;
     LCALL DACOUT
     LCALL DELAY
     MOV R0,#40H;
     LCALL DACOUT
     LCALL DELAY
     MOV R0,#80H;
     LCALL DACOUT
     LCALL DELAY
     MOV R0,#0FFH;
     LCALL DACOUT
     LCALL DELAY
     MOV R0,#0FFH
     LCALL DACOUT
     LCALL DELAY
     SJMP $

START:SETB SDA   ;发出一个启始位
      SETB SCL
      NOP
      CLR SDA
      NOP
      RET
STOP: CLR SDA   ;发出一个停止位
      SETB SCL
      NOP
      SETB SDA
      NOP
      RET
ACK:  CLR SDA   ;发出一个应答位
      NOP
      SETB SCL
      NOP
      CLR SCL
      RET
SHOUT:NOP        ;发送一个字节
      MOV B,#8
X42:  CLR SCL
      RLC A
      MOV SDA,C
      SETB SCL
      NOP
      DJNZ B,X42
      CLR SCL
      RET
DACOUT:NOP        ;串行DA转换
      LCALL START
      MOV A,#58H
      LCALL SHOUT
      LCALL ACK
      MOV A,#00H
      LCALL SHOUT
      LCALL ACK
      MOV A,R0
      LCALL SHOUT
      LCALL ACK
      LCALL STOP
      RET
DELAY:          ;延时程序
      MOV   R2, #10
      MOV   R1, #0
      MOV   R0, #0
DLP:
      DJNZ  R0, DLP
      DJNZ  R1, DLP
      DJNZ  R2, DLP
      RET
      END

⌨️ 快捷键说明

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